[통신] SIP 메시지 뜻
2021. 1. 7. 11:37SIP (Session Initiation Protocol)
한줄 요약
전화를 설정, 수정, 종료할 떄 보내는 메시지 프로토콜
(Session Initiation Protocol의 약자로 응용 계층의 시그널링을 담당하는 프로토콜입니다. SIP의 이름을 그대로 번역을 하면 “세션 설정 프로토콜”입니다.
얜 시그널링 프로토콜임
인터넷 전화 호(Call)와 같은 멀티미디어 세션을 설정, 수정, 종료할 수 있는 응용 계층의 시그널링 프로토콜.
즉, 전화를 설정, 수정, 종료하려면 어떤 메시지를 보내야할 거 아니야?
근데 그 메시지는 어떤 프로토콜(규약)을 따라야할거고 그게 SIP란 메시지이지.
즉, 일반 전화망에서 통화를 하기 위해 다이얼 번호를 누르고, 상대가 전화 수화기를 들기 전 까지 대기음을 듣고, 통화가 끝난 뒤 회선 자원을 반납하는 과정들이 시그널링을 통한 제어 메시지 전달이 있음.
SIP와 비슷한 것
IETF 원격 화상회의
SIP등장배경 H.323의 취약점.
SIP는 HTTP프로토콜을 모토로 만들었음.
SIP는 응용계층 프로토콜로서 TCP와 UDP 모두 사용 가능
Request/Response 구조.
HTTP와 SMTP의 상당수 구문을 그대로 사용
HTTP와 유사한 트랜잭션을 가짐
SIP Reuqest메시지 종류
1. INVITE
SIP 세션을 시작할 때, 콜을 만들 떄 클라이언트(UAC)가 서버 쪽을 전송하는 메시지.
2. ACK
UAC(콜을 만드는 클라이언트)는 invite 메시지에 대한 최종 Response 메시지를 받고 그 Response에 대해 ACK을 회신함. Response가 Succesㄴ이든 Fail이든 자기의 Invite에 대한 최종 Response에 대해 ACK로 회신함.
3. BYE
클라이언트가 콜을 종료할 때 서버에서 해당 콜이 종료되었음을 알릴 때 사용.
4. CANCLE
CANCLE은 앞서 요청되어 아직 완료되지 않은 Request 를 취소할 때 사용한다. 만약 서버로부터 Response 메시지를 받았다면 해당 Request 메시지는 취소될 수 없다.
5. OPTION
OPTION은 콜 셋업과 관계없이 서버에 대한 정보를 요구할 때 사용되는 Request 메시지이다. 예로써 서버가 Proxy 인지 Redirect 인지등…
6. Registrer
SIP 클라이언트들은 반드시 Registrar 서버에 자신의 위치 정보를 제공해야 한다. 즉, 자신의 SIP 어드레스와 IP 어드레스 정보 등을 등록해야 한다. REGISTER는 이때 사용되는 메시지이다.
SIP Response 메시지
1. 1XX
100번대 메시지는 Information 메시지이다. 클라이언트가 요청한 정보에 대한 응답으로 사용된다. 예를 들면 다음과 같다.
- 180 : Ringing 메시지 입니다. H.323 메시지로는 Alerting 메시지와 동일하다.
- 182 : 콜이 Queued 되었음을 알려준다. 이는 SIP 디바이스가 Busy일 경우 바로 처리되지 못하고 일단 대기하고 있음을 의미한다.
2. 2XX
Successful 메시지 입니다. 예를 들면 다음과 같다.
- 200 : OK 메시지이다. H.323 으로 보자면 Connect 메시지이다.
3. 3XX
Redirect 메시지이다. SIP Redirect 서버를 사용시 발생된다. 서버는 클라이언트의 INVITE 메시지에 대해 Redirect 메시지를 통해 목적지 클라이언트의 세션정보를 제공해 준다. 예를 들면 다음과 같다.
- 301 : redirect
4. 4XX
400번대 메시지는 클라이언트의 Request 메시지에 문제가 있음을 표시한다. 웹서버도 클라이언트의 요구에 문제가 있으면 400번대 메시지를 사용하는데 이들 웹서버의 메시지와 동일한 메시지가 사용된다. 예를 들면 다음과 같다.
- 400 : Bad Request 클라이언트의 Request 가 형식에 어긋났음을 의미한다.
- 404 : Not Found 클라이언트가 요구한 SIP 주소(URL 정보)를 찾을수 없다는 의미한다.
- 이외에도 인증되지 않은 클라이언트의 요구등 클라이언트의 여러 가지 잘못에 대해 서버는 400번대 메시지로 응답한다.
5. 5XX
500번대 메시지는 서버의 문제를 나타낸다. 서버가 동작하지 못할 때 또는 응답이 없을 때 사용된다. 예를 들면 다음과 같다.
- 505 : Internal Server Error 서버가 응답하지 않음을 의미한다.
6. 6XX
600 번대 메시지는 그 외 나머지 일반적인 에러를 표현한다.
SIP 메시지 구조
SIP는 각 사용자들을 구분하기 위해 이메일 주소와 비슷하게 되어있음.
사용자는 IP 주소에 종속되지 않고 서비스를 제공받을 수 있음. Register의 경우 "@"이 없는 Domain Name으로 설정함.
sip:alice@atlanta.com
sips:alice@atlanta.com?subject=project%20x&priority=urgent
sip:+1-212-555-1212:1234@gateway.com;user=phone
sips:1212@gateway.com
sip:alice@192.0.2.4
sip:atlanta.com;method=REGISTER?to=alice%40atlanta.com
Alice -> Bob (invite : media type에 대한 정보를 body실어 전달)
Bob -> Alice (Bob의 media type과 함께 전화 받으면 받았다고 전달)
Alice -> Bob (ACK 메시지를 Bob에게 전송.)
Bob -> Alice ( bye메시지가 Alice에게 전달, Bob이 먼저 끊음, Media Session을 종료함)
Alice -> Bob ( 200 OK 메시지를 전송함으로써 통화(Media Session) 이 종료.
호(Call) 란 뭐냐?
전화교환망에서 개개의 통신이 통신설비를 일시적을 점유하는 것.
즉, 사용자가 통화를 목적으로 통신 회선 또는 설비를 점유하는 개념 자체를 Call이라함.
참고 및 출처
blog.naver.com/cache798/130027007057