




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021软件水平测试:TCP协议的部分解析端到端意义上的TCPB议效率1.三个问题以及处理问题1描述:接收端处理慢,导致接收窗口被填满这明显是速率不婚配引发的问题, 然而即便速率不婚配,只需 滑动窗口能协调好它们的速率就好,要快都快,要慢都慢,现实上滑 动窗口在这一点上做的很好。但是假如我们不得不从效率上来考虑问 题的话,现实就不那么乐观了。考虑此时接收窗口已然被填满,慢速 的应用程序慢腾腾的读取了一个字节,空出一个位置,然后通告给 TCP的发送端,发送端得知空出一个位置,立即发出一个字节,又将 接收端填满,然后接收应用程序又一次慢腾腾 这就是糊涂窗口综 合症,一个大多数人都很生疏的词。这个问
2、题极大的铺张了网络带宽, 降低了网络利用率。好比从大同拉 100吨煤到北京需要一辆车,拉 1Kg煤到北京也需要一辆车(超级夸张的一个例子,请不要信任),但 是一辆车开到北京的开销是确定的问题1处理:窗口通告对于问题1,很明显问题出在接收端,我们没有方法限制发送 端不发送小分段,但是却可以限制接收端通告小窗口,这是合理的, 这并不影响应用程序,此时经典的延迟/吞吐量反比律将不再适用,由于接收窗口是满的,具空出一半空间表示还有一半空间有数据没有 被应用读取,和其空出一个字节的空间的效果是一样的,因而可以限制接收端当窗口为。时,直接通告给发送端以阻挠其连续发送数据, 只需当其接收窗口再次达到MSS勺
3、一半大小的时候才通告一个不为 0 的窗口,此前对于全部的发送端的窗口probe分段(用于探测接收端窗口大小的probe分段,由TCP标准规定),全部通告窗口为0,这 样发送端在收到窗口不为0的通告,那么确定是一个比较大的窗口, 因而发送端可以一次性发出一个很大的 TC阴段,包含大量数据,也 即拉了好几十吨的煤到北京,而不是只拉了几公斤。即,限制窗口通告时机,处理糊涂窗口综合症 问题2描述:发送端持续发送小包,导致窗口闲置 这明显是发送端引起的问题,此时接收端的窗口开得很大,然 而发送端却不积累数据,还是一味的发送小块数据分段。只需发送了 任和的分段,接收端都要无条件接收并且确认,这完全符合TC
4、骑范, 因而必定要限制发送端不发送这样的小分段。问题2处理:Nagle算法Nagel算法很简约,标准的Nagle算法为: IF数据的大小和窗口的大小都超过了 MSS Then发送数据分段ELSEIF还有发出的TCP分段的确认没有到来 Then积累数据到发送队列的末尾的TCP分段ELSE发送数据分段EndIFEndIF可是后来,这个算法变了,变得愈加灵敏了,其中的:IF还有发出的TCP分段的确认没有到来变成了IF还有发出的不足MS歆小的TC阴段的确认没有到来这样假如发出了一个MS耿小的分段还没有被确认,后面也是 可以随时发送一个小分段的,这个改进降低了算法对延迟时间的影响。 这个算法体现了一种自
5、顺应的策略,越是确认的快,越是发送的快, 虽然Nagle算法看起来在积累数据添加吞吐量的同时也加大的时延, 可现实上,假如对于类似交互式的应用,时延并不会添加,由于这类 应用回复数据也是很快的,比如 Telnet之类的服务必定需要回显字 符,因而能和对端进行自顺应协调。留意,Nagle算法是默认开启的,但是却可以关闭。假如在开 启的情况下,那么它就严格依据上述的算法来执行。问题3.确认号(ACK)本身就是不含数据的分段,因而大量的确 认号消耗了大量的带宽这是TCP为了确保牢靠性传输的规范,然而大多数情况下,ACK 还是可以和数据一起捎带传输的。 假如没有捎带传输,那么就只能单 独回来一个ACK
6、假如这样的分段太多,网络的利用率就会下降。从大同用火车拉到北京100吨煤,为了确认煤已收到,北京需要派一辆 同样的火车空载开到大同去复命,由于没有别的交通工具,只需火车。 假如这位复命者刚开着一列火车走, 又从大同来了一车煤,这拉煤的 哥们儿又要开一列空车去复命了。问题3的处理:RFC建议了一种延迟的ACK也就是说,ACK在收到数据后并 不立即回复,而是延迟一段可以接受的时间, 延迟一段时间的目的是 看能不能和接收方要发给发送方的数据一起回去,由于TCPB议头中 总是包含确认号的,假如能的话,就将 ACKH起捎带回去,这样网络 利用率就提高了。往大同复命的确认者不必开一辆空载火车回大同了, 此
7、时北京正好有一批货物要送往大同,这位复命者搭着这批货的火车 前往大同。假如等了一段可以接受的时间,还是没有数据要发往发送端, 此时就需要单独发送一个ACKT,然而即便如此,这个延迟的AC。 然没有等到可以被捎带的数据分段,也可能等到了后续到来的TCP分 段,这样它们就可以取者一起前往了,要晓得, TCP的确认号是收到 的按序报文的最终一个字节的后一个字节。最终,RFC建议,延迟的ACK!多等待两个分段的积累确认。2.分析三个问题之间的关联三个问题导致的结果是相同的,但是要晓得它们的缘由本质上 是不同的,问题1几乎总是消逝在接收端窗口满的情况下,而问题 2 几乎总是发生在窗口闲置的情况下, 问题
8、3看起来是最无聊的,然而由于TCP的要求,必需要有确认号,而且一个确认号就需要一个TCP分段,这个分段不含数据,无疑是很小的。三个问题都导致了网络利用率的降低。虽然两个问题导致了同 样的结果,但是必需熟识到它们是不同的问题, 很自然的将这些问题 的处理方案汇总在一起,构成一个全局的处理方案,这就是如今的操 作系统中的处理方案。3.问题的杂糅情况疑问杂症11:糊涂窗口处理方案和 Nagle算法糊涂窗口综合症患者希望发送端积累 TC阴段,而Nagle算法 的确保证了确定的TCP分段在发送端的积累,另外在延迟ACK勺延迟 的那一会时间,发送端会利用这段时间积累数据。 然而这却是三个不 同的问题。Na
9、gle算法可以缓解糊涂窗口综合症,却不是治本的良药。疑问杂症12: Nagle算法和延迟ACK延迟AC哙延长ACK8U达发送端的时间,由于标准Nagle算法 只允许一个未被确认的TCP分段,那无疑在接收端,这个延迟的 ACK 是毫无希望等待后续数据到来最终进行积累确认的,假如没有数据可 以捎带这个ACK那么这个ACKR需在延迟确认定时器超时的时候才 会发出,这样在等待这个 ACK勺过程中,发送端又积累了一些数据, 因而延迟ACK5?际上是在添加延迟的代价下加强了 Nagle算法。在延 迟ACKJ口 Nagle算法的情况下,接收端只需不断有数据要发回,才能 同时既保证了发送端的分段积累, 又保证
10、了延迟不添加,同时还没有 或者很少有空载的ACK要晓得,延迟ACM口 Nagle是两个问题的处理方案。疑问杂症13:毕竟何时可以发送数据毕竟何时才能发送数据呢?假如单从Nagle算法上看,很简约, 然而现实证明,情况还要更简洁些。假如发送端已经陈设了3个TCP分段,分段1,分段2,分段3依次被排入,三个分段都是小分段(不 符合Nagle算法中立刻发送的标准),此时已经有一个分段被发出了, 且其确认还没有到来,请问此时能发送分段1和2吗?假如依据Nagle 算法,是不能发送的,但实际上它们是可以发送的,由于这两个分段 已经没有任何机会再积累新的数据了,新的数据确定都积累在分段3 上了。问题在于,分段还没有积累
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代理签约合同样本
- 农村建房承揽合同样本一
- 分期买号合同样本
- 冻库入股合同标准文本
- 外科护理学:胃溃疡穿孔
- 入职担保合同样本
- 出口订单合同样本样本
- 保安个人劳务合同样本
- 农村木房出售合同标准文本
- 中标检测仪器合同标准文本
- 抗日英雄人物杨靖宇介绍
- AI驱动的可持续能源发展
- 整本书阅读《林海雪原》【知识精研】六年级语文下册 (统编版五四制2024)
- 健康日用品设计与研发趋势
- 【化学】常见的盐(第1课时)-2024-2025学年九年级化学下册(人教版2024)
- 新人教版初中英语七至九年级全部课本单词
- 宜宾市新能源产业有限公司招聘笔试冲刺题2025
- 数字化背景下国有企业财会监督体系的构建与实践创新
- 龙游经济开发区下属国资公司招聘笔试冲刺题2025
- 《海上风电设备运输规范》
- 工业园物业管理方案参考范本
评论
0/150
提交评论