标签:
杂谈 |
|文
大家都知道通用 CDN 大部分提供的是 RTMP 的方案以及 HLS 的方案。HLS 在手机 H5 里面的兼容性非常好,而 RTMP 是 Adobe 的协议,它在延迟、稳定性和分发质量方面平衡得很不错。但是当我们涉及会议场景时,基于 TCP 的协议就不能完全满足我们的要求了。
http://mmbiz.qpic.cn/mmbiz/OdIoEOgFgUHATrvbdMXvqJx8JJBNLR42EISm2CaueORKBLMTRPCceibDmyeAJ03Sd6Ez2aWibJrs64vp4XPDmrBQ/0?wx_fmt=png 图 2由此我们就能知道对丢包的处理,是网络协议对延迟影响最大的一个因素。可能有的协议或者有一些网络对丢包不在乎,有一个包能够到达目标地点就足够了,但并不是所有的协议都能这样。
http://mmbiz.qpic.cn/mmbiz/OdIoEOgFgUHATrvbdMXvqJx8JJBNLR42Au0ZugiaJQERVwZ8W0JLic0m7ZzqCYjMTwg8ZzbsNPsYWJic8EqsQe75A/0?wx_fmt=png 图 3 RTP 协议这个名字是 Real-Time刚刚介绍是 RTP,它正如表现的那样特别简单粗暴,几乎不提供什么支持。但是配合着它,我们这个组织还额外设置了一个协议,就是 RTCP,主要作用为了弥补 RTP 的不足,或者是 RTP 没有保证的东西,RTCP 进行额外的补充。
http://mmbiz.qpic.cn/mmbiz/OdIoEOgFgUHATrvbdMXvqJx8JJBNLR42r40UZDWSbFia6iaowrJUmw7AZ46CAlrm6CoPJGAdgDaiaBF3B12ib1hrWg/0?wx_fmt=png 图 6 RTCP 有 5 个类型数据包:发送方报告,接收方报告,源描述,结束,远程调用方法。在发送方报告中,最重要的是什么呢?发送者真正关心是发了多少数据,发的数据丢了多少,可能还包括发的数据到底过了多长时间我才能够收到,以及网络过程中的抖动。这里面我们看到它包含了好几个时间戳,包含好几个包的数量。它也列出了到底是哪一路流的发送方报告,还有丢失情况。(如图 6 所示)http://mmbiz.qpic.cn/mmbiz/OdIoEOgFgUHATrvbdMXvqJx8JJBNLR42YkJlV13OLf2HtWgF20xgkic9l9ptZ0O1iconeiaHph4CJLQgOLr8xI9QQ/0?wx_fmt=png 图 7 图 7 展示的是接收方的报告,接收方的报告比较明确。它主要反应发送方数据质量的信息,RTP 里面是有序号的,可以体现多少序号断的、没有收到。这里有一个抖动概念和——The End——
本文整理自 红点 CTO 王宇航 在“UPYUN Open Talk NO.22 ”上的主题演讲。
查看&下载本次大会全部讲师的演讲 SLIDES 及现场视频,请访问【阅读原文】
本文来自:加速会
后一篇:每个孕妇都会躺枪的26件事!