既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
RTCP 与 RTP 联合工作:RTP 进行实际数据的传输;RTCP 负责将控制包送至参与通信的每个人,并针对 RTP 正在提供的服务质量做出反馈。
RTP 及 RTCP 在网络协议层中的位置,如下图1-1所示:
RTP 为数据提供了具有实时特性的端到端传送服务,例如在组播或单播网络服务下的交互式视频音频或模拟数据。RTP 本身并不为按顺序传送数据包提供可靠的传送机制,也不提供如流量控制、拥塞控制等服务质量(QoS)保证,这些服务质量的保证由 RTCP 来提供。
RTP 采用“有序传送”方式传输数据,允许数据接收方重组发送方的包序列,同时序列号也可用于决定包的位置。
2 主要功能
RTP 用于实时数据的传输,该协议提供的信息包括:时间戳(用于同步)、序列号(用于丢包和重排序检测)、以及负载格式(用于说明数据的编码格式);
RTCP 用于QoS反馈和同步媒体流。相对于 RTP 来说,RTCP 所占的带宽非常小,通常只有5%。
对于实时多媒体流应用来说,及时传送信息是首要目标,为达到这个目标可以忍受少量丢包问题。例如,在音频传输过程中出现了一次丢包,可能会损失音频数据中的一秒内容,不过这个问题很容易通过合适的隐藏算法掩盖过去,从而不被人注意。由于 TCP 更注重网络传输的可靠性而不是及时性,所以在 RTP 应用中很少使用 TCP,大部分 RTP 的实现都是基于 UDP 的。RTP 和 RTCP 使用的UDP端口范围是“1024至65535”。形成会话的端口由其他协议(例如 RTSP 或 SIP)来协商。
每一个多媒体流都会建立一个RTP会话,一个RTP会话使用两个端口地址(以下称为“UDP端口对”):一个给 RTP、一个给 RTCP。RTP 使用偶数端口号接收发送数据,相应的 RTCP 则使用相邻的下一位奇数端口号。RTP 的会话过程如下:
- RTP 从上层接收流媒体信息码流(如 H.263),封装成RTP数据包;RTCP 从上层接收控制信息,封装成RTCP控制包;
- RTP 将RTP数据包发往UDP端口对中的偶数端口;RTCP 将RTCP控制包发往UDP端口对中的下一位奇数端口。
3 常见问题
- 接收端如何重组接收到的乱序数据包?
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**