王 欣
(無錫職業(yè)技術(shù)學(xué)院,江蘇 無錫 214121)
當(dāng)前,研究網(wǎng)絡(luò)數(shù)據(jù)的高速傳輸,能夠提升現(xiàn)有網(wǎng)絡(luò)的實(shí)際性能,加速網(wǎng)絡(luò)推廣應(yīng)用,為海量數(shù)據(jù)傳輸和災(zāi)難情況下的數(shù)據(jù)備份提供一個(gè)有效的網(wǎng)絡(luò)存儲途徑。 要獲得最大可能的網(wǎng)絡(luò)數(shù)據(jù)傳輸速率,在硬件設(shè)備無法改變的前提下,可以有針對性地修改部分傳輸控制協(xié)議 (Transmission Control Protocol,TCP)的參數(shù)設(shè)置。 這些修改成本最低,但帶來的效果卻最明顯。
TCP 窗口就是在一個(gè)連接上能夠緩存的沒有經(jīng)過確認(rèn)的接收數(shù)據(jù)量。TCP 發(fā)送數(shù)據(jù)段的典型長度是1460 字節(jié)。 如果只允許發(fā)送端的發(fā)送窗口為1 個(gè)數(shù)據(jù)段,那么它每次就只能發(fā)送1 個(gè)數(shù)據(jù)段,然后等待這個(gè)數(shù)據(jù)段的確認(rèn)。如果這種情況發(fā)生在高時(shí)延的網(wǎng)絡(luò)上,那么網(wǎng)絡(luò)的吞吐量會非常低。 因?yàn)槊看蝹鬏敃r(shí)網(wǎng)絡(luò)上只有一個(gè)數(shù)據(jù)段,發(fā)送端和接收端都浪費(fèi)了大量的時(shí)間,在相應(yīng)的端口上監(jiān)聽網(wǎng)絡(luò)上的數(shù)據(jù)。 為了改變這一狀況, 就必須提高發(fā)送端每次發(fā)送的數(shù)據(jù)量, 也涉及TCP 窗口是否允許在傳輸管道中有最大數(shù)據(jù)量。在傳輸階段,窗口值逐漸增大,直到傳輸管道變滿(此時(shí)可能會丟失數(shù)據(jù)段)。這時(shí)窗口值就不再增大,除非接收端增大窗口值。需要注意的是,接收端的窗口值表示接收端的有效緩存大小,決定了發(fā)送端每次發(fā)送數(shù)據(jù)的最大數(shù)量,這是一個(gè)硬性的限制,即使網(wǎng)絡(luò)帶寬很充裕也不會改變。
要取得最好的網(wǎng)絡(luò)性能,必須在通信期間保持通信管道的充盈,這就涉及帶寬時(shí)延積(Bandwith Delay Product,簡稱BDP)了[1]。在一個(gè)連續(xù)的傳輸過程中,通信管道中的總的數(shù)據(jù)量就是帶寬時(shí)延積的大小,它可以用“帶寬×往返時(shí)延”來計(jì)算。 帶寬可以從網(wǎng)絡(luò)提供商那里獲得,時(shí)延可以用ping 命令或traceroute 命令自己測得,一般WAN 的典型時(shí)延在10~100ms。
當(dāng)網(wǎng)絡(luò)的帶寬很大時(shí),往返時(shí)延(Round-Trip Time,簡稱RTT)也很高,這時(shí),在滿負(fù)荷通信管道中的數(shù)據(jù)量也一定很大, 相應(yīng)的傳輸窗口值也很大,為BDP,即TCP 窗口值帶寬×往返時(shí)延。 比如一個(gè)LAN 中的主機(jī)為百兆網(wǎng)卡, 往返時(shí)延為0.010s (10ms), 則 合 適 的 窗 口 值 約 為125kB(100000000×0.010/8=125kB), 這樣才能使網(wǎng)絡(luò)吞吐量接近極限。如果TCP 窗口值固定,帶寬急劇增大, 這時(shí)哪怕極小的時(shí)延增大都會嚴(yán)重影響網(wǎng)絡(luò)的吞吐量。
2.1.1 軟件
操作系統(tǒng)為RedHat9(linux kernel 2.4),帶寬測試程序?yàn)镮perf。 Iperf 是一種網(wǎng)絡(luò)性能的測量工具,它從內(nèi)存生成要傳送的數(shù)據(jù), 接收方無需寫到磁盤,可直接丟棄。 這種方法能有效繞過測試機(jī)器磁盤讀寫速度對網(wǎng)絡(luò)傳輸?shù)挠绊慬2]。
2.1.2 硬件
終端機(jī)器為IBM xSeries236(處理器Intel xeon 3.0G,主板 800M FSB,內(nèi)存1G DDR2 400,硬盤SCSI 73G), 網(wǎng) 卡 為Intel PRO/10GbE LR。 Intel PRO/10GbE LR 是Intel 公司推出的面向企業(yè)級應(yīng)用的10G 網(wǎng)卡,它支持TOE 技術(shù)以及巨幅幀,能最大限度地減輕網(wǎng)卡對服務(wù)器硬件的依賴。
2.1.3 連接模式
本次實(shí)驗(yàn)環(huán)境采用兩臺服務(wù)器用光纖直連的模式。 其主要原因?yàn)椋海?)骨干路由器或交換機(jī)要達(dá)到10Gbit/s 的傳輸速度仍然十分遙遠(yuǎn), 不具有普遍意義。 (2)能將硬件環(huán)境對網(wǎng)絡(luò)傳輸?shù)挠绊懡档阶畹?,更明顯地看到網(wǎng)絡(luò)參數(shù)的調(diào)節(jié)所帶來的傳輸速率的巨大改善[3]。
(1)用ping 命令測試往返時(shí)延RTT。 依據(jù)具體環(huán)境而定(本實(shí)驗(yàn)由于是直連,所以時(shí)延基本上可以忽略不計(jì)),如果不到1ms,則計(jì)算BDP 值時(shí)RTT 值取1ms。 本實(shí)驗(yàn)使用的Intel 網(wǎng)卡帶寬為10Gbps,因此BDP=10 Gbps×1ms=10 000 000 bit=1 250 000 byte=1.25M 字節(jié)。
(2)在系統(tǒng)默認(rèn)配置下的測試。默認(rèn)狀態(tài)下系統(tǒng)的網(wǎng)絡(luò)設(shè)置如表1 所示。
表1 系統(tǒng)默認(rèn)狀態(tài)下的網(wǎng)絡(luò)情況Table 1 Network condition under system default state
在命令行模式下,運(yùn)行iperf.exe,一臺主機(jī)作為服務(wù)器端,另一臺作為客戶端。 在服務(wù)器端命令行提示符下輸入iperf -s ,在客戶端命令行提示符下輸入iperf -c <服務(wù)器ip 地址>,測試10 次,結(jié)果如圖1 所示。
圖1 10G 帶寬下主機(jī)相連未經(jīng)優(yōu)化的帶寬Fig.1 Host machine direct-coupled bandwidth without optimization under 10G bandwidth
(3)對系統(tǒng)優(yōu)化配置后的測試。 通常的廣域網(wǎng)時(shí)延在70 ms,因此將窗口大小設(shè)置為10M 比較合適。同時(shí),由于網(wǎng)卡本身支持巨幅幀,應(yīng)將MTU 也設(shè)為9000 byte。 通過對系統(tǒng)進(jìn)行優(yōu)化配置,得到了穩(wěn)定在5G 左右的網(wǎng)卡速率。
通過優(yōu)化的配置,對二臺主機(jī)測試10 次,結(jié)果如圖2 所示。
圖2 10G 帶寬下主機(jī)相連最終優(yōu)化結(jié)果Fig.2 Ultimate optimized results of host machine under 10G bandwidth
通過本次實(shí)驗(yàn),我們使兩臺主機(jī)間的傳輸速率從系統(tǒng)默認(rèn)的900 Mbps 升到將近5 Gbps, 提高了5 倍多,但離理想速率10 Gbps 仍然有很大距離,這主要是由于主機(jī)的性能(CPU 處理能力、 主板FSB大小、內(nèi)存讀寫能力等)影響。 如果采用具有支持巨幅幀、硬件檢測校驗(yàn)等功能的高性能網(wǎng)卡,再對系統(tǒng)設(shè)置進(jìn)行一些微調(diào)(比如調(diào)整系統(tǒng)支持的滑動(dòng)窗口技術(shù)、選擇性回復(fù)、快速重傳等)我們就能使現(xiàn)有的網(wǎng)絡(luò)設(shè)備發(fā)揮最大的效能,提高網(wǎng)絡(luò)傳輸速率。
本文主要論述通過軟件或協(xié)議方面的調(diào)節(jié)來實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)的高速傳輸,即通過調(diào)節(jié)軟件方面來實(shí)現(xiàn)硬件的最充分利用,從而達(dá)到最高傳輸速率。 適當(dāng)調(diào)節(jié)系統(tǒng)的網(wǎng)絡(luò)參數(shù),能較大幅度地提高遠(yuǎn)程主機(jī)間的傳輸速率,這也是解決遠(yuǎn)程主機(jī)隨著距離增大傳輸速率復(fù)雜性增加問題的重要手段。
[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ī)制研究[J].微計(jì)算機(jī)信息,2005(8):10-12.
[3] 胡風(fēng)華,侯紫峰,祝明發(fā). toe 技術(shù)及其在IP 存儲環(huán)境下的性能研究[J]. 徽電子學(xué)與計(jì)算機(jī),2004(2):90-94.