调节网络参数、提高带宽利用率的方案
2011-12-08王欣
王 欣
(无锡职业技术学院,江苏 无锡 214121)
0 引言
当前,研究网络数据的高速传输,能够提升现有网络的实际性能,加速网络推广应用,为海量数据传输和灾难情况下的数据备份提供一个有效的网络存储途径。 要获得最大可能的网络数据传输速率,在硬件设备无法改变的前提下,可以有针对性地修改部分传输控制协议 (Transmission Control Protocol,TCP)的参数设置。 这些修改成本最低,但带来的效果却最明显。
1 TCP 窗口值和BDP 对网速的影响
1.1 TCP 窗口值对网络速率的影响
TCP 窗口就是在一个连接上能够缓存的没有经过确认的接收数据量。TCP 发送数据段的典型长度是1460 字节。 如果只允许发送端的发送窗口为1 个数据段,那么它每次就只能发送1 个数据段,然后等待这个数据段的确认。如果这种情况发生在高时延的网络上,那么网络的吞吐量会非常低。 因为每次传输时网络上只有一个数据段,发送端和接收端都浪费了大量的时间,在相应的端口上监听网络上的数据。 为了改变这一状况, 就必须提高发送端每次发送的数据量, 也涉及TCP 窗口是否允许在传输管道中有最大数据量。在传输阶段,窗口值逐渐增大,直到传输管道变满(此时可能会丢失数据段)。这时窗口值就不再增大,除非接收端增大窗口值。需要注意的是,接收端的窗口值表示接收端的有效缓存大小,决定了发送端每次发送数据的最大数量,这是一个硬性的限制,即使网络带宽很充裕也不会改变。
1.2 BDP 对提高网络传输速度的作用
要取得最好的网络性能,必须在通信期间保持通信管道的充盈,这就涉及带宽时延积(Bandwith Delay Product,简称BDP)了[1]。在一个连续的传输过程中,通信管道中的总的数据量就是带宽时延积的大小,它可以用“带宽×往返时延”来计算。 带宽可以从网络提供商那里获得,时延可以用ping 命令或traceroute 命令自己测得,一般WAN 的典型时延在10~100ms。
1.3 BDP 与窗口大小的关系
当网络的带宽很大时,往返时延(Round-Trip Time,简称RTT)也很高,这时,在满负荷通信管道中的数据量也一定很大, 相应的传输窗口值也很大,为BDP,即TCP 窗口值带宽×往返时延。 比如一个LAN 中的主机为百兆网卡, 往返时延为0.010s (10ms), 则 合 适 的 窗 口 值 约 为125kB(100000000×0.010/8=125kB), 这样才能使网络吞吐量接近极限。如果TCP 窗口值固定,带宽急剧增大, 这时哪怕极小的时延增大都会严重影响网络的吞吐量。
2 调节网络参数后的效率
2.1 测试条件
2.1.1 软件
操作系统为RedHat9(linux kernel 2.4),带宽测试程序为Iperf。 Iperf 是一种网络性能的测量工具,它从内存生成要传送的数据, 接收方无需写到磁盘,可直接丢弃。 这种方法能有效绕过测试机器磁盘读写速度对网络传输的影响[2]。
2.1.2 硬件
终端机器为IBM xSeries236(处理器Intel xeon 3.0G,主板 800M FSB,内存1G DDR2 400,硬盘SCSI 73G), 网 卡 为Intel PRO/10GbE LR。 Intel PRO/10GbE LR 是Intel 公司推出的面向企业级应用的10G 网卡,它支持TOE 技术以及巨幅帧,能最大限度地减轻网卡对服务器硬件的依赖。
2.1.3 连接模式
本次实验环境采用两台服务器用光纤直连的模式。 其主要原因为:(1)骨干路由器或交换机要达到10Gbit/s 的传输速度仍然十分遥远, 不具有普遍意义。 (2)能将硬件环境对网络传输的影响降到最低,更明显地看到网络参数的调节所带来的传输速率的巨大改善[3]。
2.2 调节测试步骤
(1)用ping 命令测试往返时延RTT。 依据具体环境而定(本实验由于是直连,所以时延基本上可以忽略不计),如果不到1ms,则计算BDP 值时RTT 值取1ms。 本实验使用的Intel 网卡带宽为10Gbps,因此BDP=10 Gbps×1ms=10 000 000 bit=1 250 000 byte=1.25M 字节。
(2)在系统默认配置下的测试。默认状态下系统的网络设置如表1 所示。
表1 系统默认状态下的网络情况Table 1 Network condition under system default state
在命令行模式下,运行iperf.exe,一台主机作为服务器端,另一台作为客户端。 在服务器端命令行提示符下输入iperf -s ,在客户端命令行提示符下输入iperf -c <服务器ip 地址>,测试10 次,结果如图1 所示。
图1 10G 带宽下主机相连未经优化的带宽Fig.1 Host machine direct-coupled bandwidth without optimization under 10G bandwidth
(3)对系统优化配置后的测试。 通常的广域网时延在70 ms,因此将窗口大小设置为10M 比较合适。同时,由于网卡本身支持巨幅帧,应将MTU 也设为9000 byte。 通过对系统进行优化配置,得到了稳定在5G 左右的网卡速率。
通过优化的配置,对二台主机测试10 次,结果如图2 所示。
图2 10G 带宽下主机相连最终优化结果Fig.2 Ultimate optimized results of host machine under 10G bandwidth
2.3 测试结论
通过本次实验,我们使两台主机间的传输速率从系统默认的900 Mbps 升到将近5 Gbps, 提高了5 倍多,但离理想速率10 Gbps 仍然有很大距离,这主要是由于主机的性能(CPU 处理能力、 主板FSB大小、内存读写能力等)影响。 如果采用具有支持巨幅帧、硬件检测校验等功能的高性能网卡,再对系统设置进行一些微调(比如调整系统支持的滑动窗口技术、选择性回复、快速重传等)我们就能使现有的网络设备发挥最大的效能,提高网络传输速率。
3 结语
本文主要论述通过软件或协议方面的调节来实现网络数据的高速传输,即通过调节软件方面来实现硬件的最充分利用,从而达到最高传输速率。 适当调节系统的网络参数,能较大幅度地提高远程主机间的传输速率,这也是解决远程主机随着距离增大传输速率复杂性增加问题的重要手段。
[1] Manish Jain, Ravi S. Prasad, Constantinos Dovrolis. The TCP Bandwidth-Delay Product revisited:network buffering cross traffic,and socket buffer auto-sizing[C]. Technical Report GIT -CERCS -03 -02,College of Computling,Georgia Tech,2003.
[2] 侯玮,窦睿彧,兰巨龙. FAST TCP 拥塞控制机制研究[J].微计算机信息,2005(8):10-12.
[3] 胡风华,侯紫峰,祝明发. toe 技术及其在IP 存储环境下的性能研究[J]. 徽电子学与计算机,2004(2):90-94.