TCP拥塞控制和宽容
前面提到过TCP对网络乱序不宽容以及乱序传输:
TCP和宽容
TCP乱序传输
但也只提到了保序导致的不宽容。但拥塞控制对网络也不宽容。
传统拥塞控制的基本假设是拥塞点位于到达接收端的固定路径上。这个假设使路径调度很难展开。
基于包的负载均衡无法实施,不仅因乱序问题,还因一条流的数据包分散在多条路径,拥塞更难识别。
flowlet调度无法实施,若捕捉到流的flowlet gap,并将其调度到另外路径,则影响拥塞控制所做测量的准确性。
SDN无法实施调度流量,原因同上,这会影响发送端测量值的准确性。
若一条流在一个buffer发生了溢出,而该溢出并非该流主动所为,可能是其它突发流量导致,若SDN控制器将该流实时调度到其它路径,此前的溢出事件依然会被发送端捕获并实施收敛。这并不是所希望的行为。
在一条固定路径上堵到死,这是传统拥塞控制的基本假设,几乎所有拥塞控制措施都基于此而定,比如BBR的lt限速,这种后天的假设本身就与分组交换网的基本属性相悖。
纵容固定路径假设的除了TCP保序传输,还有最短路径路由。若只有最短路径可选,即使最短路径已经开始拥塞,次优路径以及次次优路径资源也只能浪费,没有任何临时绕路的措施。
TCP保序和最短路径路由减少了传输的很多可能性。
有一种办法可随时启用次优路径,使用流体渗透路由模型替代最短路径模型,所有的路径均可被充分利用:
IDC网络传输新方法-流体渗透原理
IDC网络低时延无阻塞拥塞控制随想
但在公网,除非采用具有全局视角的SDN控制器,否则依靠分布式洪泛,实时排队延时参与加权的路由算法很难快速收敛,还是滞后性难题,等待路由重新收敛时,拥塞可能已经结束。
说完网络再说端。
传统拥塞控制旨在获得最大单流吞吐,最高总带宽利用率,最佳公平性,但这仅仅是文件下载场景的需求。
其它场景,比如音视频流传输只需适配码率,数据同步需求只需适配直到落盘整个过程的最慢环节。
以音视频传输为例,传统拥塞控制的AI,MD,probe 25%,drain 25%,probertt 4 inflights,这些主动的探测和收敛行为与固定编解码速率相冲突,需要buffer来平滑主动引入的抖动。
无论在网络还是在端,buffer都是拥塞控制所必须。网络buffer检测拥塞,端buffer平滑检测拥塞所做的收敛,二者神奇抵消。这本质上是由于拥塞控制既不认识网络,也不认识端。
拥塞控制自决是另一种方案。初始传输速率由应用显式指定,网络尽力传输,若无法满足,由端识别并协商降速或降级。按照编码速率传输,若不成,一起降低编码速率,就好过多了。
底层仅做兜底收敛,用于惩戒恶意连接。
TCP虽可恶,但已经成为事实上的传输标准,没办法。竟然有(我可没说全部)音视频流采用这种丢一个包就卡一个RTT的协议,对于很多业务流,真是一个字节也不能丢吗?我想是CDN纵容了HTTP。虽然HTTP本不限用TCP传输,但大家已经默认HTTP下面是TCP了,因此HTTP-Based基本也就是TCP-Based了。当大家都在无条件使用TCP的时候,也就接受了它的一切,包括缺陷,甚至新的QUIC协议也copy很多TCP feature,所谓优化版TCP。本系列专门抓一些TCP的不好,说说看。
浙江温州皮鞋湿,下雨进水不会胖。
TCP拥塞控制和宽容相关推荐
- tcp拥塞控制编程实验c语言代码,C语言 计算机网络TCP拥塞控制模拟程序
帮助你更好地认识TCP拥塞控制的机制 #include "stdio.h" #include "stdlib.h" void show() { //system ...
- TCP流量控制-TCP拥塞控制 拥塞控制与流量控制的区别
拥塞控制与流量控制的区别: 拥塞控制是让网络能够承受现有的网络负荷,是一个全局性的过程,涉及所有的主机.所有的路由器,以及与降低网络传输性能有关的所有因素. 相反,流量控制往往是指点对点的通信量的控制 ...
- 5.3.5 TCP拥塞控制
5.3.5 TCP拥塞控制
- 【计算机网络】传输层 : 总结 ( TCP / UDP 协议 | 寻址与端口 | UDP 协议 | TCP 协议特点 | TCP 连接释放 | TCP 流量控制 | TCP 拥塞控制 ) ★★★
文章目录 一.传输层 TCP / UDP 协议 ★ 二.寻址端口号 ★ 三.UDP 协议特点 四.UDP 协议首部格式 五.UDP 校验 六.TCP 协议 特点 ★ 七.TCP 报文段首部格式 八.T ...
- 【计算机网络】传输层 : TCP 拥塞控制 ( 慢开始 | 拥塞避免 | 快重传 | 快恢复 )
文章目录 一.TCP 拥塞控制 二.TCP 拥塞控制算法 三.慢开始 和 拥塞避免 算法 四.快重传 和 快回复 算法 一.TCP 拥塞控制 TCP 拥塞控制 : ① 拥塞出现表现 : 资源需求总和 ...
- 计算机网络-基本概念(9)【传输层】TCP拥塞控制 【网络层】拥塞避免
TCP拥塞控制 对网络中某一资源的需求超过了该资源(带宽.交换节点中的缓存.处理机)所能提供的可用部分.防止过多的数据注入网络中,防止路由器或链路过载,是属于全局性的过程,包括主机.路由器.链路等设备 ...
- s6-8 TCP 拥塞控制
TCP 拥塞控制 虽然网络层也试图管理拥塞,但是,大多数繁重的任务是由TCP来完成的,因为针对拥塞的真正解决方案是减慢数据率 分组守恒:当有一个老的分组离开之后才允许新的分组注入网络 TC ...
- TCP 拥塞控制详解
作者:engleliu,腾讯 PCG 开发工程师 本文主要介绍 TCP 拥塞控制算法,内容多来自网上各个大佬的博客及<TCP/IP 详解>一书,在此基础上进行梳理总结,与大家分享.因水平有 ...
- tcp拥塞控制_网络TCP的拥塞控制算法简介
作为网络中使用最广泛的传输协议,TCP的拥塞控制机制是学术界和工业界关注的焦点问题之.然而,目前广泛使用的TCP传输协议的拥塞控制算法仍然使用相对固定的窗口调节策略,无法根据动态变化的场景自适应地调整 ...
最新文章
- How to recover from 'programmers burnout(转)
- lovely desktop
- 服务器上flash不显示动画,win10电脑在线预览不能加载flash
- deb php7 fileinfo,linux安装php7.2扩展fileinfo
- UVA11876 N + NOD (N)【欧拉筛法+前缀和】
- 那些年,我考过的IT证书
- java web实现文件下载的注意事项
- Android Eclipse 处理重构“AndroidPackageNameRefactoring”时捕获到异常
- 阿里的Atlas组件化框架
- JAVA毕业设计婚纱摄影网设计计算机源码+lw文档+系统+调试部署+数据库
- 【建议收藏】三月份开始,二十二个爬虫项目,无套路,附上源码 全部拿走
- 课程设计:波形发生器
- 中国建设银行信息技术类校招笔试心得
- 利用vim编辑器创建和编辑正文文件
- python项目--O2O优惠券线下使用情况数据分析
- MiniUI Api 方法
- Tair分布式锁 实践经验
- 从头开始,彻底理解服务端渲染原理
- IEEE754 详点
- win7所有视频格式都不显示缩略图的解决方法
热门文章
- 转: 多益网络2013校园招聘第二轮笔试题目
- COMBINING LABEL PROPAGATION AND SIMPLE MODELS OUT-PERFORMS GRAPH NEURAL NETWORKS(CorrectSmooth)阅读笔记
- Scrapy中的item和pipline
- adams语句_ADAMS模态力 - MSC技术文章 - 中国仿真互动网(www.Simwe.com)
- 超级时尚炫酷快速图文展示PR2021模板MOGRT|AE模板
- linux磁盘阵列教程,RAID 磁盘阵列简述
- 一次控制文件control file sequential read 等待性能案例分析
- 让你的应用完美适配平板
- 怎么将知网论文caj导出word文件
- linux上使用FTP下载远程PTF远程文件