일하다가 정리가 필요할 것 같아 급 포스팅.
SIP 기반의 VoIP 통신에서 SRTP를 이용할 때,
INVITE의 SDP - INVITE에 대한 200 OK의 SDP 를 통해 네고가 성립된다.
INVITE메시지의 밑단에는 다른 요청들과는 달리 "SDP"라는 내용이 딸려있다.
그중에서 유심히 봐야할 부분은 media field , attribute field 요 두녀석이다.
다음 내용은 Invite / 200 OK 의 Offer - Answer model에서 SDP만 따온 거다.
(위에껀 INVITE, 아래껀 200OK)
c=IN IP4 10.0.0.22 |
c=IN IP4 10.0.0.201 |
아..마치 TLS 핸드셰이킹을 보는것 같아 ㅋㅋㅋㅋ
우선 c 로 시작하는 부분은 RTP통신을 할 자기자신의 IP를 의미한다.
그리고 m 필드에는 미디어 타입(비디오, 오디오 등), 사용할 포트 번호, 프로토콜 .. 등으로 되어 있는데
SRTP 일 경우는 대개 RTP/SAVP로 간다.
보통때는 RTP/AVP . 근데 SAVP를 안쓰는 경우에는 SRTP를 쓰더라도 RTP/AVP가 가기도 하더라공. 이건 뭐 클라이언트마다 틀리다.
프로토콜이 이상한건지, 프로토콜을 안지킨건진 모르겠지만 (RFC에 아마 자세히 나올듯)..ㅎㅎ
* AVP를 찾아보니 Audio/Video Profile의 약자이긴 한데.. 이부분이 상세히 안나오네용 SAVP와 SRTP 차이점에 대해
아시는분은 저에게 댓글이나 쪽지좀!!!
그리고 INVITE를 보면, a 필드에 암호화할 알고리즘 및 keyring matrial이 나오는데, INVITE시에는 자신이 사용할 것을 여러 개 보낼 수 있다. 그러면 Answer는 이중 자신이 사용할 알고리즘을 고르고 keyring matrial을 생성하여 200OK의 a field에 붙여 보내게 되는거다.
여기서 Keyring matrial은 자신의 RTP 페이로드를 암호화 하고 복호화 하기 위해 사용될 키 값을 의미한다.
그다음부터는 골라진 알고리즘으로 RTP를 암호화 하여 보내고 받는 쪽에서 복호화 하면 끝!!
'Backend > Network' 카테고리의 다른 글
실시간 전송 프로토콜, RTP. (0) | 2011.05.13 |
---|---|
SRTP (0) | 2011.05.13 |
FEC (0) | 2011.05.13 |
SRTCP (0) | 2011.05.13 |
TLS Protocol (SSL) (0) | 2011.05.12 |