본문 바로가기
컴퓨터 네트워크

컴퓨터 네트워크 29장 - RTP 프로토콜 -

by ChocoPeanut 2017. 5. 3.

컴퓨터 네트워크 29

- RTP 프로토콜 -

 

실시간 서비스로 멀티미디어 서비스 환경에 변화가 생겼다. 기존에는 비디오, 오디오 파일 전체를 다운받은 후 서비스를 받는 것이었다면 실시간 스트리밍 서비스의 등장으로 실시간으로 다운로드하며 재생하는 시대로 바뀌었다. 이로 인해 데이터를 전송하는 방식에서 데이터 변형/분실 오류를 복구하는 기능이 상대적으로 덜 중요하고 도착순서나 패킷의 지연 간격, 데이터 압축 등이 더 중요하게 되었다.


이런 멀티미디어의 서비스를 제공하기 위해서 프로토콜이 필요한데 TCP는 패킷의 순서와 신뢰성에 지나치게 강조를 하여 재전송 기능, 복잡한 흐름 제어 기능으로 인해 실시간 환경에서는 부적합하다. UDP의 경우 기능이 단순하여 빠른 전송을 할 수 있지만 데이터그램을 보낼 때 순서를 고려하지 않으므로 순서에 대한 보장을 할 수 없다. 따라서 가장 현실적인 대안은 UDP에 순서번호 기능을 추가하여 순서대로 전송을 하는 방법이었다. 이에 초점을 맞춘 프로토콜이 바로 RTP 프로토콜이다.


RTPReal Time Protocol의 약자로 실시간 데이터 전송 프로토콜을 의미한다. RTP는 불규칙하게 수신되는 데이터의 순서를 정렬하기 위해 타임스탬프 방식을 사용하고 프로토콜의 동작이 응용 프로그램의 라이브러리 형태로 구현되는 ALF 방식을 사용하기 때문에 프로토콜 내부에 위치하는 버퍼의 크기를 각 응용 프로그램마다 별도로 관리하기가 용이하다. RTP는 유니 캐스팅뿐만 아니라 멀티캐스팅도 지원한다.


일반 데이터 서비스 환경인 파일 전송이나 전자 메일 등에서는 성능과 지연 문제 보다는 신뢰성에 대한 중요도가 높다. 하지만 실시간 데이터 서비스 환경에서는 신뢰성보다 정해진 시간 내에 도착하는지의 여부가 매우 중요하다. 특정 시간 내에 도착하지 못하는 데이터는 무용지물이 되기 때문이다.


송신자는 일정한 간격으로 데이터를 송신하지만 인터넷이라는 망의 환경에 의해 지연이 다르게 되어 가변적인 간격으로 도착을 하게 된다. 영향을 끼치는 종류로는 대역폭, 네트워크 구조, 라우팅 방식, 전송 프로토콜의 종류가 될 수 있다. 하지만 실시간 환경에서는 수신 프로세스에 도착하는 전송 간격이 그대로 유지 되는 것이 중요하므로 버퍼라는 도구를 사용한다. 가변적인 간격으로 도착하는 데이터를 즉시 수신사에 보내지 않고 지연 버퍼를 통해 다시 일정한 간격으로 보정을 하는 역할을 수행한다.



지터는 데이터그램의 도착 지연 시간의 분포를 나타내는 값이다. 도착시간이 일정하지 않고 불규칙적으로 도착하는 정도이다.



RTP의 데이터 전송 프로토콜을 살펴보자. RTP 프로토콜은 작고 빠른 전송 기능을 지원하기 위해 UDP 프로토콜 위에서 구현이 된다. 데이터그램의 분실이나 도착순서 변경 등의 오류를 RTP에서 해결하는 구조이다. 포트주소 기능을 이용하여 송수신 프로세스간의 연결을 관리한다. 프로그램 하나를 단위로 하지 않고, 일부 기능이 개별적으로 구현된다. 응용 서비스의 종류에 따라 요구 조건이 다른 기능을 추가되는 형식을 취한다. 다수의 사용자가 하나의 세션을 사용하여 실시간 데이터 전송이 가능하게 만들어져 있다.



RTP는 두 종류의 RTP 릴레이를 지원한다. 믹서트랜슬레이터이다. 릴레이는 데이터 전송 과정에서 송수신 프로세스가 직접 데이터를 전송할 수 없는 상황인 방화벽 사용이나 데이터 형식의 상이한 경우 데이터를 중개하는 기능을 의미한다. 믹서는 여러 송신 프로세스의 데이터그램을 적절히 조합하여 새로운 데이터그램을 생성한다. 예를 들어 영상과 음성을 믹싱하여 새로운 동영상을 만드는 것이다. 트랜슬레이터는 입력된 각 RTP 데이터그램을 하나 이상의 출력용 데이터그램으로 만들어 주는 것으로 수신자의 환경에 맞게 바꾸어 주는 것을 의미한다.




출처 - 데이터 통신과 컴퓨터 네트워크