본문 바로가기
IT

RTP, RSTP 오디오/비디오 데이터 스트리밍 (UDP, TCP)

by 포스트맨. 2023. 7. 10.

RTP

RTP (Real-time Transport Protocol)는 IP 네트워크 상에서 실시간으로 오디오, 비디오 및 기타 다양한 데이터를 전송하기 위해 사용되는 프로토콜입니다. RTP는 멀티미디어 데이터의 전송과 타이밍, 순서 및 동기화를 관리하는 역할을 합니다.

RTP는 실시간 통신을 위한 여러 가지 기능을 제공합니다. 다음은 RTP의 주요 특징과 기능입니다:

패킷화: RTP는 오디오, 비디오 및 기타 미디어 데이터를 작은 패킷으로 분할하여 전송합니다. 패킷화는 효율적인 데이터 전송을 가능하게 하고, 오디오/비디오의 부드러운 재생을 위해 딜레이와 대역폭을 관리할 수 있습니다.

시간 정보: RTP는 패킷에 타임스탬프와 시퀀스 번호를 포함하여 데이터의 시간 정보를 유지합니다. 이를 통해 수신자는 패킷을 순서대로 재조립하고, 정확한 타이밍으로 재생할 수 있습니다.

동기화: RTP는 동기화를 유지하기 위해 RTCP (RTP Control Protocol)와 함께 사용됩니다. RTCP는 수신자와 송신자 간에 동기화 정보를 교환하고, 네트워크 상태를 모니터링하기 위한 제어 프로토콜입니다.

품질 관리: RTP는 QoS (Quality of Service) 요구사항을 충족시키기 위한 기능을 제공합니다. 패킷 우선순위, 대역폭 관리, 패킷 손실 복구 및 네트워크 혼잡 제어와 같은 기능을 통해 통신 품질을 최적화할 수 있습니다.

RTP는 인터넷 전화, 비디오 콘퍼런싱, IP TV, 스트리밍 서비스 등 다양한 실시간 멀티미디어 응용 프로그램에서 널리 사용됩니다. 프로토콜 자체는 데이터 전송에 관한 규칙을 정의하며, 실제 데이터의 압축이나 인코딩에는 다른 프로토콜이 함께 사용될 수 있습니다.

 

RTSP

RTSP (Real-Time Streaming Protocol)는 실시간 스트리밍 서비스를 위한 프로토콜로, 비디오, 오디오 및 다른 멀티미디어 데이터의 전송 및 제어를 위해 사용됩니다. RTSP는 클라이언트와 스트리밍 서버 간의 상호작용을 관리하며, 클라이언트가 스트리밍 미디어를 요청하고 제어할 수 있는 기능을 제공합니다.

RTSP는 다음과 같은 주요 특징과 기능을 가지고 있습니다:

스트리밍 제어: RTSP는 클라이언트가 스트리밍 서버에게 스트림 재생, 일시정지, 정지, 스킵 등의 명령을 보내는 제어 기능을 제공합니다. 이를 통해 클라이언트는 스트리밍 미디어를 제어하고 원하는 위치에서 재생을 시작하거나 일시 중지할 수 있습니다.

미디어 싱크 및 동기화: RTSP는 클라이언트와 서버 간의 미디어 싱크와 동기화를 위한 기능을 제공합니다. 클라이언트는 스트리밍 미디어의 타이밍 정보를 받아와 정확한 동기화를 유지하고, 여러 미디어 트랙을 동시에 재생할 수 있습니다.

다양한 미디어 형식: RTSP는 여러 가지 미디어 형식을 지원합니다. 비디오, 오디오, 이미지 및 기타 다른 미디어 형식을 스트리밍할 수 있으며, 클라이언트는 요청한 미디어 형식에 따라 서버로부터 해당 데이터를 수신합니다.

스트리밍 세션 관리: RTSP는 클라이언트와 서버 간의 스트리밍 세션 관리를 담당합니다. 클라이언트는 스트리밍 세션을 시작, 중지, 업데이트하거나 종료할 수 있으며, 서버는 이에 대응하여 적절한 동작을 수행합니다.

RTSP는 주로 IP 네트워크를 통해 실시간 스트리밍 서비스를 구현하기 위해 사용되며, RTSP를 지원하는 스트리밍 서버와 클라이언트 애플리케이션을 사용하여 사용자가 스트리밍 미디어를 제어하고 재생할 수 있습니다.

 

RTP와 RSTP의 차이점

RTP (Real-time Transport Protocol)와 RTSP (Real-Time Streaming Protocol)는 실시간 멀티미디어 전송과 관련된 프로토콜이지만, 목적과 기능 면에서 차이가 있습니다. 다음은 RTP와 RTSP의 주요 차이점을 설명합니다:

목적: RTP는 실시간 멀티미디어 데이터를 전송하는 프로토콜로, 데이터의 패킷화, 시간 정보 및 동기화 기능을 제공합니다. 주로 데이터 전송에 초점을 두고 있으며, 응용 프로그램에서 실시간 오디오 및 비디오 스트림을 처리하는 데 사용됩니다.

제어: RTP는 데이터 전송에 대한 제어 기능을 제공하지 않습니다. 데이터 전송에 관련된 시간 정보와 패킷화만 담당하며, 데이터의 실제 제어는 다른 프로토콜이나 시스템에서 처리합니다.

프로토콜 종속성: RTP는 미디어 데이터를 전송하기 위한 프로토콜로, 일반적으로 UDP (User Datagram Protocol)와 함께 사용됩니다. RTP는 데이터를 패킷화하여 UDP 패킷에 실어 보내며, 네트워크 상에서 신뢰성 있는 전송을 보장하지 않습니다.

명령 및 제어: RTSP는 클라이언트와 스트리밍 서버 간의 상호작용을 제어하는 프로토콜입니다. RTSP는 클라이언트가 스트리밍 미디어를 요청하고 제어하는 데 사용됩니다. 클라이언트는 스트림 재생, 일시정지, 정지, 스킵 등의 명령을 보낼 수 있고, 서버는 이에 따라 적절한 동작을 수행합니다.

미디어 세션 관리: RTSP는 스트리밍 세션을 시작, 중지, 업데이트 또는 종료하는 기능을 제공하여 클라이언트와 서버 간의 세션 관리를 담당합니다.

요약하면, RTP는 실시간 멀티미디어 데이터의 전송을 위한 프로토콜로, 데이터의 패킷화와 시간 정보를 다룹니다. 반면에 RTSP는 스트리밍 서비스의 제어와 관리를 위한 프로토콜로, 클라이언트와 서버 간의 명령 및 세션 관리에 중점을 둡니다. RTP는 미디어 데이터의 전송에 초점을 두고 있고, RTSP는 스트리밍 서비스의 제어와 관리를 담당합니다.

 

RTP 전송

RTP over UDP

  • UDP를 통한 RTP는 UDP를 저수준 전송 프로토콜로 사용한다.
  • UDP는 전송된 패킷이 올바르게 도착한다고 보장하지 않는다.
  • UDP의 가장 큰 단점은 방화벽과 라우터 제한으로 인해 인터넷과 같은 이기종 네트워크를 통해 전송하는 것이 종종 불가능하다는 사실이다.
  • RTP over UDP로 패킷 전달 시 UDP는 항상 최소 2개의 채널을 설정.

RTP over TCP

  • RTP는 TCP를 통해서도 전송될 수 있다.
  • RTSP SETUP 요청에서 클라이언트에 의해 TCP 방식으로 선택되면 스트리머는 RTSP 통신을 위해 이미 설정된 TCP 연결을 통해 RTP 패킷을 보낸다.
  • TCP 전송은 UDP와 비교하여 프로토콜에 약간의 오버헤드가 있다.
  • TCP는 신뢰할 수 있는 전송 프로토콜이며, 데이터가 클라이언트에 도착하도록 보장한다.
  • TCP는 RTSP(제어)와 RTP(미디어) 모두 하나의 채널만 사용한다.

UDP와 TCP

특징 UDP TCP
연결 지향성 X O
신뢰성 X O
흐름 제어 및 혼잡 제어 X O
전송 속도 빠름 상대적으로 느림
대역폭 사용 적음 많음

UDP (User Datagram Protocol)와 TCP (Transmission Control Protocol)는 인터넷 프로토콜 스위트의 일부로, 데이터 전송을 위해 사용되는 두 가지 주요 프로토콜입니다. UDP와 TCP는 다음과 같은 차이점을 가지고 있습니다:

연결 지향성TCP는 연결 지향 프로토콜입니다. 이는 통신이 전송되기 전에 수신자와 송신자 간에 연결을 설정해야 한다는 것을 의미합니다. 연결 설정 단계에서는 송신자와 수신자 간에 초기 설정 및 동기화가 이루어지며, 데이터 전송 후에는 연결을 정상적으로 종료합니다. UDP는 비연결형 프로토콜로, 송신자와 수신자 간에 미리 설정된 연결 없이 데이터를 전송합니다.

신뢰성TCP는 신뢰성 있는 데이터 전송을 보장합니다. 이를 위해 패킷 손실, 패킷 순서 변경 및 중복 패킷 등과 같은 문제를 검출하고 복구합니다. 패킷 손실이나 오류가 발생하면 재전송을 통해 데이터의 정확성과 순서를 보장합니다. UDP는 데이터 전송에 대한 신뢰성을 보장하지 않습니다. 패킷 손실이나 오류 발생 시, 해당 패킷은 손실되거나 오류가 있는 채로 전송될 수 있습니다.

흐름 제어와 혼잡 제어: TCP는 흐름 제어와 혼잡 제어 메커니즘을 갖추고 있습니다. 흐름 제어는 수신자와 송신자 사이의 데이터 흐름을 조절하여 수신자의 처리 능력을 초과하지 않도록 합니다. 혼잡 제어는 네트워크 혼잡 상태를 감지하고 트래픽을 조절하여 네트워크 혼잡을 최소화합니다. UDP는 이러한 흐름 제어 및 혼잡 제어 기능을 제공하지 않습니다.

전송 속도와 대역폭TCP는 신뢰성과 연결 설정에 추가 오버헤드가 발생하므로 전송 속도가 상대적으로 느릴 수 있습니다. UDP는 비연결형이며, 신뢰성 및 추가적인 제어 메커니즘의 부담이 없기 때문에 전송 속도가 빠릅니다. UDP는 실시간 응용 프로그램이나 대량의 데이터 전송에 적합한 경우가 많습니다.

TCP와 UDP는 각각 다른 용도와 요구 사항을 가지고 있습니다. TCP는 신뢰성이 중요하고 데이터의 정확성과 순서를 보장해야 하는 경우에 적합하며, 웹 브라우징, 이메일, 파일 전송 등에 주로 사용됩니다. UDP는 실시간 응용 프로그램, 스트리밍, DNS(Domain Name System) 등에서 패킷 손실이나 소량의 데이터 손실이 허용되는 경우에 적합합니다.

 

Payload type

Payload type(페이로드 유형)은 RTP(Real-time Transport Protocol) 패킷에 담을 수 있는 오디오 또는 비디오 형식을 나타냅니다. 일반적으로 오디오 및 비디오 데이터는 압축된 형식으로 전송되기 때문에 Payload type은 해당 데이터의 압축 형식인 코덱을 식별하는 역할을 합니다.

Payload는 RTP 패킷에서 전송하려는 데이터의 코덱 유형에 따라 Payload type을 할당합니다. RTP는 각 코덱에 대해 패킷화하는 방법을 표준으로 정의하고 있습니다. 각 형식에 따라 데이터를 RTP 패킷에 넣는 규칙이 다르게 정의되어 있습니다.

즉, Payload type은 RTP 패킷에서 실제 오디오 또는 비디오 데이터를 식별하고 처리하기 위해 필요한 정보입니다. 코덱에 따라 페이로드 타입이 지정되어 해당 데이터의 압축 형식과 패킷화 방법을 알 수 있습니다.

 

RTP Packetization

RTP Packetization은 이미지 데이터가 RTP 패킷보다 큰 경우 데이터를 여러 조각으로 나누어 RTP 패킷에 담는 과정을 의미합니다.

각각의 데이터는 RTP 패킷으로 래핑되어 있으며, RTP 헤더와 이미지 데이터 조각으로 구성됩니다. RTP 헤더는 12바이트 길이를 가지며, 다음과 같은 정보를 포함합니다:

  • RTP 프로토콜 버전: RTP 프로토콜의 버전을 나타냅니다.
  • 패킷(시퀀스) 카운터: 패킷 손실을 감지하기 위한 패킷의 일련 번호를 나타냅니다.
  • 타임스탬프: 재생 시간 제어를 위해 사용되는 타임스탬프를 포함합니다.
  • RTP 스트림의 고유 식별자: RTP 스트림을 식별하는 고유한 식별자를 나타냅니다.

RTP 헤더 다음에는 이미지 데이터 조각이 위치하며, 예를 들어 JPEG 데이터인 경우 8바이트의 JPEG 전용 헤더가 포함됩니다. JPEG 전용 헤더는 너비, 높이, 품질, 색상 형식 등의 메타데이터 정보를 포함하며, 이미지가 RTP 패킷으로 분할되어 전송되는 경우 이미지 조각의 위치를 나타내는 fragment offset 정보도 포함됩니다.

이렇게 RTP 패킷화는 큰 이미지 데이터를 작은 조각으로 나누어 전송하기 위한 방법으로, RTP 헤더와 해당 이미지 데이터 조각으로 구성되어 있습니다.

댓글