| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> TCP滑动窗口辩证考 -> 正文阅读 |
|
[网络协议]TCP滑动窗口辩证考 |
做新传输协议,必须忘掉TCP。要是总记得TCP,就会潜意识中往TCP靠,TCP那些不合时宜的东西会影响认知和判断。 曾经我将TCP通告窗口标量化做隧道协议,效果不错,所以我想将TCP本身的通告窗口也标量化。标量化就是通告窗口不再和序列号相关,仅代表允许发送的配额。 要理解TCP滑动窗口为何不合时宜,要从最初开始。 TCP最初是纯粹的GBN(Go-back-N)协议,没有SACK,没有ofoq,为支持GBN,滑动窗口是端到端流控的唯一选择,若UNA丢失,在它之后发送的数据均不会被接收。 引入SACK后,接收端支持了ofoq,端到端流控就可以基于配额而非序列号了,基于配额的窗口就是标量窗口,基于序列号的窗口则可以理解为矢量窗口。 互联网一直是够用和极简,SACK仅作为TCP性能增强被引入,它是一个协商项,矢量滑动窗口必须保留。但实际上,你要知道自己在做什么,比如你在做一个双边隧道协议,就没必要考虑兼容。 有了SACK和ofoq,矢量滑动窗口是不必要的,为理解将窗口标量化的收益,得看一下矢量窗口的问题:
重点是标量化通告窗口之后,乱序传输成了可能。倒不是说发送端故意乱序,而是接收端会更宽容。这样做的意义在于:
结果是并行传输吞吐更高。但容忍乱序对发送端判定丢包提出了高要求,否则按TCP现有逻辑,乱序将会触发大量不必要重传挤兑带宽。 试着调大reordering,确实可容忍乱序,但无法快速触发重传真丢的包,这又是交易吗?其实快速重传本身也是应该忘掉的。 快速重传是怕窗口憋住,标量化通告窗口可容忍乱序,窗口自然就憋不住了,快速重传就再无必要。结论是:
取而代之的是:
如果和TCP对照,怎么都不行,比如接收端ofoq会破坏应用程序的流式体验,但TCP滑动窗口憋住不也如此吗?问题在于TCP那种精准丢包判定和重传只是企图,从来不准。 对容忍乱序的传输,只需保证在N(比如3~4)个RTT内补足空洞,应用程序只要N个RTT的buffer就可达到相当不错的流式体验。若是标准TCP,绝不敢如此保证。 要是空洞补不足怎么办?这是一个重要的问题。回答也不啰嗦:
网络质量是客观度量,不以算法为转移,网络质量很差的场景,任何规避的企图都是徒劳,硬怼或应对困境,还是改变目标适应困境,需要斟酌。 编程者们能接受JPEG这种主动有损压缩,却死活不能接受数据在不受控的网络上被动有损传输,也是有趣。 链路画像是多流竞争合作的博弈结果,链路状态不能维持,网络丢包原因不明,这是链路画像测不准的根源,端到端协议要接受这个事实。 个人心情,社会事件,天气变化均会影响到链路画像。这并不是一个在实验室拼几条流测出一个炸天数据的算法就能搞定的,所以那么多论文没一个能真打的。 柔性降级和有损传输不多说了,前面说过很多。确实需要应用程序配合改造,改就改呗,干嘛非要和TCP较劲。
浙江温州皮鞋湿,下雨进水不会胖。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 1:58:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |