【NS2】TCP相关计算

来源:互联网 发布:统计图用什么软件 编辑:程序博客网 时间:2024/05/15 13:00

如何计算广域网链路的 TCP 吞吐量

    刚刚点亮数据中心之间的高速网络(光线),但是你却恼怒的观察到高速广域网链路上的低的文件传输速度 - Bummer!在给思科一级支持工程师(Cicso TAC)电话和开始检修你的网络之前,快速计算一下从一个主机经过长距离的链路到另一个主机之间实际上你可以获得的 TCP 吞吐量是多少。

    使用 TCP 传输数据时,两个最重要的因素是 TCP 窗口大小 和 往返延迟。如果你知道这两个参数,你就可以计算出两个主机间的最大吞吐量,不管带宽是多少。

计算 TCP吞吐量的公式

   TCP窗口大小(bits) / 延迟(秒)  =  每秒吞吐量(bits)

    举一个简单的例子。从芝加哥到纽约有 1G 的以太网链路,往返延迟 30ms。如果使用 FTP 在芝加哥的一台服务器和纽约的一台服务器之间传输一个大文件,所能期望的最大吞吐量是多少?


    首先把 TCP窗口大小 从字节变成位。这个例子中我们使用 Windows 标准的 64K 窗口大小。

    64KB = 65536 Bytes.   65536 * 8 = 524288 bits

    接着,把用位表示的窗口大小除以用秒表示的往返延迟。延迟 30ms 的话,在计算中使用 0.03秒。

    524288 bits / 0.030 seconds = 17476266 bits per second throughput = 17.4 Mbps maximum possible throughput

    这样的话,尽管在数据中心之间我有 1G 的链路带宽,但是基于 给定的窗口大小 和 往返延迟,在传输文件时我所能期望的最大的吞吐量是 17.4 Mbps。

    做什么才能变快?  增加窗口大小 或 缩减延迟。

    为了增加 TCP窗口大小,可以在每个服务器上做出手动调整,传递更大的窗口大小。这产生了一个问题:你将使用多大的窗口大小?可以使用上面公式的反向计算来确定最优的窗口大小。

计算最优 TCP窗口大小 的公式

   带宽(bits每秒) * 往返延迟(秒) = TCP窗口大小(bits) / 8 = TCP窗口大小(字节)

    因此在芝加哥和纽约之间 1G 的带宽和 30ms 的延迟的例子中,可以计算如下:

    1,000,000,000 bps * 0.030 seconds = 30,000,000 bits / 8 = 3,750,000 Bytes

    因此为 FTP连接 配置 3750KB 的 TCP窗口大小,将会填充管道,获得 1Gbps  的吞吐量。


    服务器增加 TCP窗口大小,其中一个缺点是需要更多的缓冲内存,因为未应答的数据必须存储在内存中为了应对可能的重传。另一个潜在的缺陷是性能(是不是很讽刺),发生在包丢失时,因为窗口内任何的包丢失都会导致整个窗口重传 - 除非你的 TCP协议栈使用一种 TCP增强技术,叫做选择性应答(selective acknowledgements),但是大部分服务器没有使用此种技术。

    另一个选择就是在需要更大窗口的一端放置广域网加速器(WAN accelerator) 和 在加速器之间使用其他TCP优化,比如选择性应答,对服务器不需要特殊的调优或额外的内存。加速器可能也使用第7层应用具体的优化来减少往返次数。

    减少延迟?这怎么可能? 除非你能克服光速的限制,否则对于缩减延迟你什么都做不了。再一次,你有一个选择,就是设置加速器,加速器应答本地服务器的报文段,愚弄服务器让它认为看到非常低的局域网延迟。因为服务器看到非常快速的局域网应答,而不是等待远处的服务器应答,这就是为什么我们不需要调整服务器的窗口大小的原因。


    在这个例子中,最合适的广域网加速器是 Cisco 7371 WAAS Appliance。 WAAS指的是 Wide Area Application Services。

    WAAS设备将会使用 TCP优化,比如大的窗口 和 选择性应答。除此之外,WAAS设备会消除 TCP流 中的冗余信息,产生高的压缩比率。每个设备会记住之前看到的数据,如果再次看到相同的数据,这些数据将会被2个字节的符号替换。这个符号会被另一端的WAAS设备识别,在发送给服务器之前,它用原来的数据替换符号。

    这些优化的结果是:在芝加哥和纽约的服务器之间,服务器不需要任何调优,就会获得类似局域网的更高的吞吐量。

给定吞吐量计算最大延迟的公式

    在两个使用标准 64KB TCP窗口大小 的服务器之间,你可能想获的 10 Gbps FTP 吞吐量。为了达到10 Gbps,你所能有的最大延迟是多少?

    TCP窗口大小(bits) / 吞吐量(bits每秒) = 最大往返延迟时间

    524288 bits / 10,000,000,000 bits per second = 52.4 microseconds


原文地址:http://my.oschina.net/astute/blog/93132

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 怀疑老公有外遇他不承认怎么办 苹果手机锁屏密码忘了怎么办 黑色t恤洗了掉毛怎么办 老婆要和我离婚我该怎么办 发现老婆有外遇最明智的怎么办 高度近视怎么办我快一千度近 天刀耐久度为0了怎么办 新车被4s店装了怎么办 h面和w面联系线怎么办 造梦西游3到80级怎么办 加95的车加了92怎么办 95的车加92的油怎么办 宝宝六个月了奶水变少了怎么办 六个月的宝宝不爱吃奶粉怎么办 脸上挤黑头留下的小坑怎么办 小孩身上起红疙瘩很痒怎么办 肛门上长了个肉疙瘩怎么办 脚撞了一下肿了怎么办u 怀孕9个月同床了怎么办 结婚两年了都没怀孕怎么办 怀孕快40周了没有生的迹象怎么办 生完小孩掉头发很厉害怎么办 我27岁欠50多万怎么办 8岁童牙齿摔松了怎么办 我的眉毛后半边很稀少怎么办 剑三95修为满了怎么办 21三体综合症临界高风险怎么办 率土之滨没地了怎么办 老公有外遇怎么办他还舍不得小三 11选5输了6万 怎么办 k宝密码忘了怎么办5次 k宝密码输错5次怎么办 上火了牙疼怎么办怎样快速止疼 身体不吸收营养胖不起来怎么办 突然牙疼怎么办教你立刻止疼 蛀牙疼怎么办教你立刻止疼 做了牙套的牙疼怎么办 牙疼怎么办教你立刻止疼 七个月宝宝便秘拉不出来怎么办 喝酒脸上起了很多小红疙瘩怎么办 我的脸又痒又红怎么办