RTP (Real-time Transport Protocol)
오디오/비디오와 같은 실시간 데이터를 멀티캐스트 혹은 유니캐스트 네트워크를 통해 전송하는데 적합한 단말 대 단말(end-to-end) 전송 프로토콜입니다. RTP 프로토콜은 자원 예약을 준비하지 않으며, 실시간 서비스에 대한 QoS 를 보장하지 않
습니다.
RTP header, version 2:
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
V | P | X | CC | M | PT | Sequence Number | |||||||||||||||||||||||||
Timestamp | |||||||||||||||||||||||||||||||
Synchronization Source (SSRC) identifier | |||||||||||||||||||||||||||||||
Contributing Source (CSRC) identifier [0..15] … |
V (Version) : 2bit
-
RTP 버전을 나타냅니다. RFC 3550 일 경우 2 입니다. (RFC 1889 는 1)
- P (Padding) : 1bit
페이로드의 일부가 아닌 패딩 바이트가 있는지를 나타냅니다. 패딩의 마지막 바이트에는 무시해야 하는 패딩 바이트의 길이에 대한 정보가 있습니다.
- X (Extension) : 1bit
고정 RTP 헤더(12bytes) 이후에 하나의 확장 헤더가 있는지를 나타냅니다.
- CC (CSRC Count) : 4bits
고정 RTP 헤더 이후에 있는 CSRC의 수를 나타냅니다.
- M (Marker) : 1bit
패킷 스트림 내에서 프레임의 경계와 같은 중요한 이벤트를 표시하는데 사용합니다.
- PT (Payload Type) : 7bits
RTP 페이로드의 형식을 나타냅니다. (RFC 3551) 수신하는 측에서는 모르는 형식을 경우 무시해야 합니다.
- Sequence Number : 16bits
RTP 데이터 패킷을 보낼 때 마다 하나씩 증가시키는 순서 번호입니다. 수신측에서는 이 값을 이용하여 패킷 손실을 감지하고, 패킷 순서 복구에 사용합니다. 순서 번호 초기 값은 보안상의 이유로 무작위하게 생성합니다.
- Timestamp : 32bits
RTP 데이터 패킷의 샘플링 순간을 나타냅니다. 샘플링 순간은 단조롭고 선형적인 시간이어야 합니다. 예를 들어 샘플링이 160 단위로 발생한다면, 각 블락은 160 단위로 증가할 것입니다.
- SSRC (Synchronization Source) : 32bits
동기화 소스에 대한 식별자입니다. 값은 무작위한 값을 사용하며, 같은 RTP 세션 내에서는 유일해야 합니다.
- CSRC (Contributing Source) : 32bits
해당 RTP 패킷의 페이로드를 구성하는데 기여한 SSRC 의 리스트를 나타냅니다. 최대 갯수는 15개 입니다. CSRC 는 mixer에 의해 추가됩니다