首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

直播app开发,害怕拥塞控制又离不开拥塞控制

对直播app开发来说,拥塞控制是面对的难点之一,随着用户们对实时性的要求越来越高,自然直播平台对网络质量和实时性的依赖性也就更强,然而就在这种实时性要求下,直播app开发仍然使用着拥有拥塞控制的TCP协议,这是为什么呢?

一、TCP拥塞控制

与UDP协议不同。TCP协议可以说是自带拥塞控制,需要保障数据可靠传输,这主要是因为TCP协议具备重传机制,当直播app开发数据传输出错时,重传数据会延长数据到达的时间,同时因为高频率的重传,导致网络的拥塞得不到缓解,而且会导致拥塞越来越严重。

但为什么说直播app开发又离不开这个拥塞控制呢?TCP拥塞控制是让每个源口都能确定网络中有多少可用容量,这样能确定它可以接受多少数据,防止链路的过载。可以看出是牺牲了网络来保证链路的正常传输,毕竟网络是可变的,链路只有固定的几条,如果协调不好会出现更多的错误。

二、TCP拥塞控制算法

一般拥塞控制有两种实现方式:

1、端到端的拥塞控制,这种方式下,需要端口自己判断是否传输链路存在拥塞,然后自行调整速率

2、网络辅助的拥塞控制,由网络中的路由器来告诉发送方传输中是否存在用三个

基于复杂程度,直播app开发会用端到端的拥塞控制,因为后者需要网络设备的支持,所以平台投入比较多

三、TCP拥塞控制的几种不同实现形式

1、基于丢包的拥塞控制,将直播app开发的丢包现象视为出现拥塞,采取缓慢探测的方式,逐渐增大拥塞的窗口,当出现丢包时,将拥塞的窗口减少

2、基于延迟的控制,这种方法不是很推荐直播app开发使用,因为延迟状况出现频率比较高,延迟增长会增大拥塞窗口,延迟减少时会减少拥塞窗口

3、基于链路容量的控制,实时测量网络带宽和时延,不过效果如何就不好说了,要基于直播app开发自用的网络来判断

4、基于学习的控制,没有特定的拥塞信号,实现比较复杂

对于直播app开发来说,拥塞控制是无法避免的,倒不如选一个能自由控制,有自己方案的协议要好。

声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221019A04S3100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券