区分在同一端口上复用的RTP和RTCP数据包

时间:2016-01-12 07:40:42

标签: networking rtp wireless tcp-ip libpcap

我正在使用Tcpdump来捕获网络接口上的数据包。在Wireshark我可以看到RTPRTCP交易在同一个端口上进行。我正在使用Libpcap编写一个解剖器,它将解析并保存不同文件中的所有RTPRTCP数据包。

问题

如何区分哪个是RTP数据包,哪个是RTCP数据包?

1 个答案:

答案 0 :(得分:2)

通常是RTP和RTCP are using a different port。但是,Duckduckgoing“同一端口上的RTP和RTCP”给了我Multiplexing RTP and RTCP on a Single PortRFC5761Section 4讨论了如何区分这两种类型的数据包:

  

当RTP和RTCP数据包复用到单个端口时,    RTCP数据包类型字段占据数据包中的相同位置    RTP标记(M)位和 RTP有效载荷类型的组合   (PT)。

     

[...]

     

允许此多路复用,将来的RTCP数据包类型分配   应该在209-223范围内的当前任务之后进行,   然后在194-199范围内,以便只有RTP有效载荷类型   在64-95范围内被阻止

AFAIU,这意味着当两个协议在同一个字段中复用时,如果RTP数据包类型是64-95,那么该数据包不是RTP数据包而是RTCP数据包。