关于Linux和Windows的TCP实现的性能


13

我了解Windows和Linux中TCP堆栈的实现有所不同。Windows使用一种称为TCP Reno的拥塞控制算法,而Linux使用Cubic。

当这两种协议共存于同一网络时如何比较?是真的说Cubic(Linux)更具攻击性,并可能最终获得更高的带宽份额?

Answers:


4

请注意,拥塞控制算法仅影响上游流量,因此仅影响上游带宽。

话虽这么说,Cubic实际上更具攻击性,尤其是对于具有高带宽延迟乘积的网络。在Linux实施中甚至内置了一个规则,以便在相同情况下永远不会使用比reno更低的发送速率:

Linux Cubic算法还包括确保三次算法至少与标准TCP一样积极的代码。

-Leith,Shorten,McCullagh,Cubic-TCP的实验评估

因此,在观看Youtube视频的同时下载Windows更新时,Youtube流量可能会饿死您的Microsoft流量,您对此无能为力。


12

首先,您说的话实际上是不正确的:

  • 缺省情况下,内核版本为2.6.18的Linux使用BIC
  • Linux内核2.6.19和更高版本默认情况下使用CUBIC
  • Linux的TCP拥塞控制机制是可插入的,例如,您可以立即更改它们。
  • Windows XP和更早版本使用TCP Reno(或New Reno
  • Windows Vista和更高版本还具有Compound TCP,默认情况下在Server 2008中启用此功能,并且可以根据需要在Vista和Windows 7中启用。

所有这些算法都是根据可用的网络带宽,延迟,可用的内存等进行自我调整的。它们还具有许多配置参数,可让您手动调整它们。

因此,如果不查看确切的特定网络拓扑,使用的硬件和软件等,就无法真正将两者进行比较。这并不是说一个比另一个要好,或者会占用更多的可用带宽。确实,CUBIC的攻击性不如BIC,但实际上,其他考虑因素通常比所使用的TCP拥塞算法更重要。

除非您试图调整到非常狭窄的范围和不寻常的网络场景,否则这些算法都可以很好地工作并且开箱即用。


网络场景是拥挤的1000台奇数计算机拥挤的100Mbps LAN,通过代理服务器的Internet连接,一些PC是Linux,而大多数PC是基于Windows的。看来在Linux中浏览速度更快。我正在尝试使这种观察合理化
AIB

如果不进行衡量,也就看不到网络中真正发生的事情,这很难说。但是我认为这是TCP拥塞算法差异的机会非常小,尤其是如果您的网络并非一直都处于100%拥塞的情况下。还有许多其他因素会影响浏览速度。
haimg 2011年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.