프로그래밍[Univ]/네트워크

[네트워크] 멀티미디어 네트워킹 Part 3

Cloud Travel 2012. 10. 19. 01:47

* SIP(Session Initiation Protocol)

 - 인터넷 전화에서 일반 전화의 Signalling 역할을 하는 프로토콜이다.

 - 호(일반 전화의 circuit)를 설정 할때 SIP은 다음과 같은 정보를 제공한다.

  > 상대방에게 자신이 전화를 걸겠다는 것을 알려준다.

  > 송수신자는 미디어 형태 및 코딩 방식을 합의, 설정한다.

  > 통화를 실시하며, 통화가 끝나면 호를 해제(자원을 회수)한다.

 - 상대방의 IP주소를 결정하는 역할을 한다.(마치 DNS Server처럼)

 - SIP 메세지는 TCP/UDP 어느 것으로 보내도 관계가 없다.

 - 통화중에 오는 호설정 메세지 처리를 한다.

  ※ 상대방의 IP주소를 기억하기는 힘들다. 따라서 다음과 같은 형식으로 대체하며, 각각은 특정 IP와 Mapping되있다.

   > Free Name : 사용자가 임의로 저장한 이름(핸드폰의 주소록)

   > E-mail : 상대방이 설정해 놓은 E-mail주소

   > Identified ID : ISP가 설정해준 특정 ID


* 호 설정(일반 전화의 circuit setting)

 1. 상대방 IP 주소를 알고 있는 경우

    i) SIP invite message를 이용하여 자신의 port번호, 자신의 IP주소, 원하는 코딩방식을 상대방에게 전송한다.

   ii) 상대방은 전화에 응답 의사가 있는 경우 200 OK message를 이용하여  자신의 포트번호, IP주소, 코딩방식을 전송한다.

  iii) 200 OK message 확인 후, 코딩방식이 일치하면 ACK을 보낸다. 

   - 호 설정이 끝나며 통화가 실행된다.

   - i)단계에서 보낸 코딩 방식을 상대방이 지원하지 않는다면, 상대방이 ii)단계에서 보낸 코딩방식 중에서 하나를 선택한다. 

      그 후 다시 i)단계로 돌아가 새로운 SIP invite message를 보낸다.

   - ii)단계에서 상대방이 요청을 거부하면 그에 대한 이유가 자신에게 돌아오게 된다.

   

 2. 상대방 IP 주소를 모를 경우 (이름 변환과 상대방 위치 찾기)

  - 상대방이 이동중일 경우에는 IP찾기가 힘들다.

  - SIP은 여러개의 서버를 가지고 있으며, 그 중에서 중요한 역할을 하는 것은 SIP 등록자 서버와 SIP 프록시 서버이다.

   i) SIP Registrar Server

    > Client가 인터넷 전화 관련 프로그램을 실행하면 Client는 SIP Register메세지를 SIP등록자 서버로 보낸다.

    > SIP 등록자 서버는 이 정보를 저장하고 있으며, IP Mapping시 사용한다.

  ii) SIP Proxy Server

   > SIP Proxy Server는 상대방에게 까지 가는 경로를 파악하여 SIP 메세지를 전달하는 역할을 한다.

   > 상황에 따라서 여러개의 Proxy Server를 거쳐서 도달 할 것이다.

   

   ⓐ 자신의 Proxy Server(myaddr.co.kr)로 Invite message를 보낸다.

   ⓑ Proxy server는 대상의 SIP Registrar Server(destiny.com)로 Invite message를 보낸다.

   ⓒ 대상의 SIP Registrar Server(destiny.com)는 현재 상대방이 있는 위치의 SIP registrar를 알려주며, 메세지를 반송한다.

   ⓓ SIP Proxy server는 건네 받은 SIP Registrar Server(current.co.jp)로 Invite message를 보낸다.

   ⓔ 건내받은 SIP Registrar Server는 상대방에게 메세지를 전송한다.

   ⓕ 상대방은 SIP invite message에 대한 대답을 자신이 현재 속해있는 SIP registrar server(current.co.jp)로 보낸다.

   ⓖ 전해받은 message를 SIP Proxy server(myaddr.co.kr)로 전송한다.

   ⓗ 전해받은 message가 200OK면 ⓘ단계로 간다. 그 외에는 호 설정이 해제된다.

   ⓘ 호가 설정되었으며, 서로 통화를 실시한다.


* H.323

 - SIP과 비슷한 역할을 하는 또 다른 실시간 대화형 프로토콜 이다.

 - 화상 회의까지 할 수 있게 필요한 모든 것을 규정한 완전 통합형 프로토콜로 덩치가 크다.

    (SIP보다 크다.)

 - H.323은 ITU(전화기반)에서 만들었다. 반면 SIP은 IETF에서 만들었다. 이에따라 HTTP에 기반을 두고 있다.

  > H.323은 전화 지향적, SIP은 Web 지향

 - SIP은 Keep it simple stupid(KISS)원칙을 사용하여 H.323보다 간단하다.


* 컨텐츠 분배 네트워크(CDNs)

 - 하나의 서버에서 스트림파일을 실시간으로 전송하는데는 한계가 있다.

 - 특히, Stream Server가 멀리 있다면, Router congestion이 걸릴 확률이 높다.

 - 이러한 까닭으로, Congestion을 줄이기 위해서 만든 방법이 CDNs이다.

 - Stream Server를 여러 곳에 두어서 Client는 가까이에 있는 Server의 서비스를 받게하는 기술이다.

  ex) Google과 같은 국제적 웹사이트는 각 대륙(작게는 나라안에도 몇개의)마다 

       Stream Server를 두어 양질의 서비스를 제공한다. 

 - CDNs를 구현하기 의해서는 2가지 문제점을 해결해야 한다.

  ⓐ 동기화 : 컨텐츠가 업데이트 될때마다 CDN의 모든 서버를 업데이트 한다.

  ⓑ DNS : Client는 본래 서버 주소만 알고 있다. 

              본래 서버는 Client의 IP를 통해 위치를 파악하여, 근처 CDN의 URL로 다시 연결 시켜준다.

              CDN을 지원하기 위한 DNS가 따로 존재한다.