컴퓨터 네트워크

RTP, RTCP

kimjy 2023. 1. 25. 23:19

RTP

개요

  • 실시간 음성 혹은 영상 전송에서 데이터 변형이나 분실 오류 복원은 상대적으로 중요하지 않음.
  • 대신 데이터의 도착 순서나 수신 패킷의 지연 간격 그리고 데이터 압축에 의한 전송 정보량의 최소화가 중요함.
  • 일반적으로 널리 사용되는 TCP/UDP는 실시간 서비스의 특성을 충분히 지원하지 못함
  • TCP의 경우에는 패킷 순서와 신뢰성이 지나치게 강조되어 재전송 기능과 복잡한 흐름 제어 기능으로 인해 실시간 환경에서는 적합하지 않음
  • UDP는 기능이 단순하지만, 데이터의 순서 보장을 충분히 지원하지 못함
  • 따라서 UDP에 데이터 순서 번호 기능을 추가한 프로토콜인 RTP를 실시간 서비스에서 사용할 수 있음

특징

  • 타임스탬프 방식을 사용하여 데이터의 순서를 정렬
  • 프로토콜 내부에 위치하는 버퍼의 크기를 각 응용프로그램마다 별도로 관리하기 용이함. 버퍼 크기를 개별적으로 조절할 수 있음.
  • RTP 패킷은 UDP 프로토콜에 의해 캡슐화되어 전송됨(RTP 패킷이 UDP 패킷의 위에 존재하는 형태)
  • QoS는 제공하지 않음

헤더

 

  • V: RTP의 버전번호, 현재는 2
  • P: RTP 페이로드의 마지막에 패딩데이터가 존재하는지 여부를 나타냄. 응용환경에서 페이로드의 크기가 특정 배수가 되어야 할 때 사용
  • X: Extension header 유무를 표기
  • CC: CSRS의 개수
  • M: 임의의 표식. 페이로드의 유형에 의해 값의 의미가 결정. 보통 데이터 스트림의 경계점을 표시하는 데에 사용. 비디오 페이로드에서는 프레임의 마지막을 표시하기 위해 1로 지정
  • PT: 페이로드 타입. RTP 페이로드의 유형을 나타냄. 오디오 혹은 비디오의 인코딩을 표기
  • Sequence Number: Timestamp 필드 값이 동일한 페이로드에 대해 패킷 손실이나 순서 변경과 같은 오류 검출을 위해 전송. 일반적으로 동시에 생성된 일련의 연속 패킷은 동일한 timestamp 값을 가지며, 순서번호는 RTP 패킷 단위로 1씩 증가
  • Timestamp: RTP 페이로드에 포함된 데이터의 생성 시기를 나타냄. 송신 프로세스에서 사용하는 클록에 의해 발생함.
  • SSRC: 임의의 세션 내에서 RTP 페이로드의 발신지가 어디인지 나타내는 고유번호. 랜덤하게 생성되는 32비트의 숫자로 구성
  • CSRC: 믹서가 제공하는 구분자

RTCP

개요

  • RTCP는 제어와 관련된 역할을 수행하는 프로토콜
  • UDP를 하부 전송 계층으로 사용

QoS(Quality of Service)와 혼잡제어 수행

  • 데이터 분배 과정에서 발생하는 서비스 품질에 대한 피드백 기능을 제공
  • 멀티캐스팅 과정에서 세션 멤버의 데이터 송수신 과정이 어떻게 이루어졌는 지 판단 이를 위해 송수힌 프로세스 보고서 작성
  • 송신 프로세스는 전송률 등의 정보가 포함
  • 수신 프로세스에서는 패킷 분실이나 지터등의 정보가 포함

패킷 종류

  • Sender Report, Receiver Report: 데이터 전송 품질을 피드백하기 위한 용도
  • Goodbye: 송신 프로세스가 더이상 존재하지 않음. 수신 프로세스가 송신프로세스를 무한정 기다리지 않기 위함. 네트워크 오류가 아닌 송신 프로세스가 더 이상 참가하고 있지 않기 때문을 알려줌

'컴퓨터 네트워크' 카테고리의 다른 글

NGINX  (0) 2022.04.08
REST API  (0) 2022.03.10