长肥网络与TCP的长肥管道

从文章ip网络的时延:传输时延(发送时延),传播时延,处理时延,排队时延我们已经知道了发送时延(传输时延)的定义: 传输时延=数据帧长度(b)/信道带宽(b/s),所以可知传输时延(发送时延)和带宽成反比

1、简化的理解网络模型

所以我们可以将一个不丢包,不抖动,不误码(出错误包),没有排队时延,没有处理时延的理想网络模型简化为二个特征:

  • 带宽(和传输时延(发送时延)成反比)
  • 传播时延

2、时延带宽积的定义

时延带宽积=传播时延*带宽

3、长肥网络与TCP长肥管道的定义

  • 长肥网络:
    时延带宽积很大的网络叫做长肥网络(LFN,long fat network的缩写)。
  • TCP长肥管道
    在LFN中建立的TCP链接叫做长肥管道。这里注意了,长肥管道是TCP专有的,UDP不具备这个概念。

可以将TCP的长肥管道理解为高速公路,而每个被传输的数据包都是一辆行驶的小汽车,如果一辆接一辆的排满汽车,并且所有汽车都以相同的速度开行,则高速公路上可以容纳很多的小汽车,但如果高速公路很长,每个小汽车从起点到终点还是要花费很多时间。

在这里插入图片描述

4、TCP长肥管道的特征及对TCP性能的影响

4.1、TCP长肥管道的二大特征:

  • 传输时延(发送时延)很小
    收发包速度很快,非常短的时间就能把大量的数据发送到网络上。
  • 传播时延很大
    数据包从发送到网络上开始,要给过很长的时间(相比于发送时延)才能传送到接收端

4.2、TCP长肥管道对TCP性能的影响:

  • 长肥管的带宽延时积很大(发送很快,传播到另外一端需要很长时间),
    导致会有大量的数据包正在传输途中,我们都知道,TCP流控算法会在窗口变成0时停止发送。但原始的TCP头部的窗口大小字段是16位的,因此窗口大小最大为65535字节,这就将发送方发送但未被确认的数据的总长度限制到了65536字节。参考计算 65535*8/1024/1024 = 0.5Mbps,那么假设发送速度足够快的前提下,在传播时延为100毫秒的网络里,只要5Mbps的带宽就可以做到在第一个bit还没有到达接收端时,发送端就已经发送完了最后一个bit, 然后窗口变成0,停止发送数据,还要等待至少100毫秒发送端才能收到接收端发回来的接收窗口通告,然后才能打开窗口继续发送,意味着最多只能使用到5Mbps的带宽,因此不能充分利用网络。------由此提出了窗口扩大选项以声明更大的窗口.

  • 长肥管的延时较高
    据TCP的拥塞控制,丢失分组会导致连接进行拥塞控制,即便是由于冗余ACK而进入了快速恢复,也会使得拥塞窗口降低一半,而如果是由于超时进入了慢启动,则拥塞窗口会变为1,无论是哪一种情形,发送方允许被发送的数据量都大量减小了,这会会使得管道枯竭(即网络通信速度急剧下降), 采用快重传快恢复算法可以部分解决这个问题。

  • 提高长肥管的吞吐量, 长肥管一般声明很大的窗口值, 而这样不利于RTT的测量
    按TCP协议,每个TCP连接只有一个RTT计时器, 同一时间,只有一个报文做RTT测量,启动RTT计时的数据在没有被ACK前, TCP无法进行下一次RTT的测量。而在长肥管道中,传播时延很大,这意味着RTT的测试周期很大。-----引入时间戳选项提高测试RTT的频率

  • 长肥管的发送速度非常快(发送时延)
    TCP对每个字节数据使用一个32bit无符号的序号来进行标识。TCP定义了最大的报文段生存时间(MSL)来限制报文段在网络中的生存时间。但是在LFN网络上,由于序号空间是有限的,在已经传输了4294967296个字节以后序号会被重用。如果网络快到在不到一个MSL的时候序号就发生了回绕,网络中就会有两个具有相同序号的不同的报文段,接收方将无法区分它们的顺序。在一个千兆比特网络(1000Mb/s)中只需要34秒就可以完成4294967296个字节的发送。------引入TCP的时间戳选项的PAWS(ProtectionAgainstWrappedSequencenumbers)算法(保护回绕的序号)。

5、TCP长肥管道中如何正确设置iperf3的参数

现在的网络,通常是大带宽的,如果有中间一些设备产生的延时,则很容易产生长肥管道的问题,通过本文,我们已经知道了TCP长肥管道中,TCP的性能很差,很难充分利用网络带宽,那么如果要对这样的网络进行测试,得到网络的最大吞吐量,我们应该如何设置iperf3的参数呢。
其实逻辑很简单,主要就是二个思路:

  1. 扩大TCP窗口,停止拥塞控制算法,以提高网络利用率
  2. 一条TCP连接无法占满整个带宽,那么就考虑同时使用多条TCP连接,使用更多的TCP连接去占满带宽
    具体参见文章长肥网络中如何正确的使用iperf3进行TCP最大吞吐量测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值