感觉单纯看理论没啥意思,结合RTCP、RTP来看一看抓包详解
RTP
实时传输协议RTP(Realtime Transport Protocol):是针对Internet上多媒体数据流的一个传输协议, 由IETF作为RFC1889发布,现在最新的为RFC3550。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP的典型应用建立在UDP上,但也可以在TCP等其他协议之上工作。RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。
RTP报文头格式
之前曾经写过一个RTP报文:https://blog.youkuaiyun.com/Magic_o/article/details/130059383?spm=1001.2014.3001.5501
RTP报文头格式(见RFC3550 Page12):

PT(Payload Type 负载类型)的值定义如下

除了上表中明确指定PT值的负载类型,还有些负载类型由于诞生的较晚,没有具体的PT值,
只能使用动态(dynamic)PT值,即96到127,这就是为什么大家普遍指定H264的PT值为96。
重新抄一遍:
Version (V)
Version 总是 2。
Padding §
Padding 是控制有效载荷是否具有填充值的布尔值。
有效负载的最后一个字节包含添加了多少填充字节的计数。
Extension (X)

本文深入介绍了RTP和RTCP协议,包括它们在多媒体数据传输中的作用、报文头格式和关键字段,如PayloadType、序列号和时间戳。同时,通过抓包分析展示了如何理解和解析RTP与RTCP报文,特别是NACK机制在处理丢包问题上的应用。
最低0.47元/天 解锁文章
5万+

被折叠的 条评论
为什么被折叠?



