劉純麗 方元康
(1池州學院 現代傳媒系,安徽 池州 247000)
(2池州學院 數學計算機科學系,安徽 池州 247000)
(3南京航空航天大學 計算機科學與技術學院,江蘇 南京 210016)
TCP(Transmission Control Protocol,傳輸控制協議)[1]是為了實現在不可靠的網絡中提供可靠的端到端字節流傳輸而設計的,TCP協議通過數據的分段和重組,實現了流量控制[2]和擁塞控制[3]。
隨著無線網絡的日益發展,其高延遲和高誤碼率的特點,使得TCP協議的缺陷日益凸顯,各種基于傳統TCP協議的改進方案應運而生。1998年,Ratnam和Matta提出了適用于有線-無線混合網絡[4]的分段網絡的WTCP協議(Wireless Transmission Control Protocol,無線傳輸控制協議)[5],其優越性也得以顯示:
第一:WTCP協議保持TCP協議端到端的含義,對于有線-無線混合網絡,在有線網絡部分仍然使用TCP協議,對于無線網絡部分采用WTCP保證數據更好地傳輸。
第二:WTCP協議中,為了減少無線網絡的不穩定性對網絡傳輸的影響,提高整個混合網絡的傳輸效率,無線網絡的各種操作對于靜態主機是透明的。
第三:WTCP協議采取的基于速率的數據和ACK傳輸機制,大大提高了數據的傳輸效率,對于避免無效重傳具有一定的效果。
第四:WTCP協議為了實現擁塞控制與可靠性控制的分開處理,分別設置了擁塞控制序列號與可靠性序列號。
第五:基站承擔了數據重傳的功能,減少了鏈路的負載,提高了鏈路的使用效率。
WTCP工作過程如圖1所示。

Figure 1 WTCP protocol
由圖可知,數據報文首先由靜態主機發送至基站,再通過基站緩沖區存儲轉發至移動主機。作為發送方的靜態主機,通過判斷基站是否正確接收數據報文判斷數據是否正確傳送。作為中轉的基站,對于接收的數據,要記錄其到達時間和傳輸號,以便更好地轉發。作為接收方的移動主機,在正確接收到數據之后,通過ACK將數據接收情況反饋到基站。
為了遵循端到端的傳輸機制,WTCP協議中ACK的傳送完整路徑包含了無線網絡和有線網絡兩個部分。由于無線網絡狀況穩定性上不如有線網絡,這樣在RTT[6](Round-Trip Time,往返時延)的計算上,就存在一定的不穩定性。
WTCP協議為了遵循端到端的傳輸機制,在ACK傳輸機制上顯現了一定的缺陷。為了改進這一缺陷,NWTCP協議提出了一種適用于有線-無線混合網絡的基站管理機制。新算法在基站新建了存儲列表,并對采取了新的分段反饋機制(即對ACK傳輸做了改進),使得基站的功能得到更大發揮,在一定程度上提高了網絡的傳輸能力。仿真對比試驗表明:新的基站管理機制對于提高無線網絡的吞吐量起到了明顯的效果。
NWTCP協議仍然沿用WTCP協議中RTT值的計算方法,同時ACK中保留攜帶擁塞狀態信息位。對于網絡擁塞必須同時滿足擁塞控制標志位AE值為1和RTT>eRTT+sRTT

NWTCP協議通過增強基站管理能力,將有線-無線混合網絡分別管理,對于狀態穩定的有線網絡傳輸層仍然使用TCP協議進行管理,對于狀態不穩定的無線網絡傳輸層使用改進的WTCP協議進行管理。
增強站的存儲能力,新建一個存儲列表,列表采取數據結構體。每個從靜態主機傳送至基站的數據單元,都通過新建一個存儲單元添加至存儲列表,基站再根據接收的ACK更新存儲列表。在此過程中,基站不再只是承擔簡單的存儲轉發功能,同時具備一定的管理功能,對存儲列表采取滑動窗口機制進行管理,同時對于無線網絡采取一定的擁塞控制機制進行管理。其工作原理如圖2所示:

figure 2 storage list in Base
NWTCP協議,通過基站建立存儲列表,區分處理有線網絡和無線網絡的問題,減少不必要的有線網路重傳和ACK的傳送,降低了網絡負載,節省網絡開銷。存儲列表采取鏈表的管理方式,對于到達的數據分區進行數字重新數字編號,以便于基站和移動主機之間的ACK管理。
WTCP協議為了遵循端到端的含義,其RTT的計算包含了數據從靜態主機發送到移動主機以及ACK由移動主機返回到靜態主機的整個過程。在有線-無線混合的網絡中,由于無線網路的高延時和高誤碼率,以及路由更新、能量不足等不可預見的問題時,其性能無法與有線網絡相當,這樣使得RTT的計算存在很大的不穩定性。
在NWTCP協議中,通過分段反饋機制,增強基站的管理能力,有線網絡和無線網絡分段管理。對于有線網絡,當數據被基站正確接收,基站返回ACK通告靜態主機,靜態主機判斷數據數據被正確傳送;對于無線網絡,數據以及ACK的傳送發生在基站和移動主機之間,RTT值的計算只涉及這一過程。基站通過RTT值以及ACK攜帶的網絡狀態信息位的值,對網絡狀態進行判斷,選擇相應的鏈路管理I機制。
在NWTCP協議中,在基站新建了存儲列表,通過分段反饋機制,實現了有線網絡和無線網絡的分開管理。有線網絡部分采取成熟的TCP協議,采取相應的擁塞管理機制和ACK傳送機制,減少了不必要的重傳和ACK狀態信息的傳送,降低了網絡的負載,提高了網絡的效率。無線網絡由于其高延時、高誤碼率、路由更新、能量不足等非網絡擁塞引起的數據包丟失,通過相應的RTT值計算以及ACK攜帶的狀態信息位值,采取相應的擁塞管理機制。
通過有線-無線混合網絡,既發揮了有線網絡的穩定性優勢,有發揮了無線網絡的靈活性優勢,使數據能夠更好地傳輸。
NWTCP協議中,通過增加基站的存儲能力和增強基站的管理能力,采用存儲列表和ACK分段反饋機制,提高了網絡的吞吐量。核心偽代碼如下所述:
2:if ACK and ((AE=0)or(RTT>eRTT+sRTT))
3: SW=SW
4:endif
5:if ACK and ((AE=1) and (RTT<eRTT+sRTT))
6: SW+=1
7:endif
8:if(there is packet lost)and ((AE=0) or(RTT>ERTT+SRTT))
9: SW/=2
10:endif
11:if(there is packet lost) and ((AE=1) or(RTT<ERTT+SRTT))
12: SW+=4
13:endif
14:if(there is packet lost)and timeout
15: SW=0
16:endif
上述代碼中,SW表示基站中發送窗口大小。
本文進行的對比實驗均在Windows XP操作系統下安裝NS2.33[7]完成的。

Figure 3 simulation link topology diagram
實驗鏈路拓撲結構圖如圖3所示,實驗過程中采用NS2集成功能模塊實現各構件的功能。在無線網絡中,設置了不同移動速度的移動主機,驗證NWTCP協議吞吐量要優于WTCP協議。

Table 1 analog parameters set
仿真實驗中,設定的3個移動節點中任意選定一個作為移動主機,傳送的數據報文大小設定為1460字節的,設定最大8個數據報文段大小的發送窗口,通過FTP代理設置TCP鏈接傳送所需的數據流。
在仿真對比實驗中,首先對節點和鏈路進行定義。修改基站的TCP NewReno協議中tcp.h/tcp.cc文檔代碼,實現了WTCP協議和NWTCP協議的定義文檔wtcp.cc和nwtcp.cc。修改移動主機的tcp-sink.h/tcp-sink.cc文檔,完成移動主機的設置。
建立網絡鏈接。偽代碼如下:
set ns[new simulor]
set S1[ns node]
set B1[ns node]
set K1[ns node]
set K2[ns node]
set K3[ns node]
將需要的成員函數添加tcp.h的類中,實現分段反饋機制。
對移動終端的tcp_sink.h/tcp_sink.cc文件進行修改,以實現wtcp.cc和nwtcp.cc,實現相關協議的功能。
設置網絡鏈路帶寬與時延

設置FTP數據的起止時間

對比實驗分別在純無線網絡(既無擁塞,也無網絡差錯)、5%的信道誤差網絡、5%信道誤差且存在另外2條UDP數據流網絡三種環境下進行,實驗過程中逐漸增加移動主機的移動速度,WTCP協議和NWTCP協議分別產生了不同的網絡吞吐量,驗證表明改進協議具有一定的優越性是建立在一定的實驗環境中的。
通過make相關命令,使新的文件在NS實現,并利用數據庫技術來分析結果。
由于篇幅有限,在此并未完成列出新的協議。
首先在設置的不同無線網絡環境中,對NWTCP協議和WTCP協議的網絡吞吐量進行比較。

Figure 4 mobile environment the comparison of the NWTCP protocol and WTCP protocol
如圖4所示,純無線網絡環境中,在速度小于5m/s的低速情況下,NWTCP協議與WTCP協議在吞吐量方面相當。當速度不斷增加,尤其是高于10m/s的情況下,NWTCP協議吞吐量下降要緩于WTCP協議。這是由于NWTCP協議中增加了基站的存儲與管理能力,減少了網路重傳的時間,降低了網絡開銷的原因。
無線網絡中鏈路差錯設定中,通過丟棄數據包實現數據包的丟失。在基站處設置好將要發送的數據包的erro_標志位,移動主機通過Agent函數實現數據包的丟棄處理。偽代碼描述如下


Figure 5 mobile environment(5%channel error)the comparison of the NWTCP protocol and the WTCP protocol
圖5顯示了5%信道誤差的無線網絡中,隨著移動速度的不斷增加,NWTCP協議與WTCP所表現的不通網絡吞吐量。圖5與圖4從縱向上相比,增加網絡誤差的網絡環境中,兩個協議的網絡吞吐量比純無線網絡環境都有所下降。從圖5同時可以看出在5%信道誤差的網絡環境中,隨著移動主機速度的增加,NWTCP的網路吞吐量比WTCP的網絡吞吐量下降要慢。這是由于在5%信道誤差的網絡中,基站良好的存儲與管理能力的優越性得以凸顯,完成了快速的數據重傳功能。
在該實驗中通過對err函數中5%(set rate_0.05)的誤差完成實驗環境的設置。
在圖5設置的5%信道誤差的基礎上,在無線網絡中增加兩條傳輸速率為150kbps的UDP/CBR數據流,時間設置在[50,150]、[130,200]之間,得到如圖6的實驗結果。具體偽代碼實現如下:
…… //在B1和K1間建立一條TCP連接的FTP數據流
set udp(1)[new Agent/UDP]//在B1和K2間建立一條UDP連接和CBR數據流

set udp(1)[new Agent/UDP]//在B1和K3間建立一條UDP連接和CBR數據流
……

如圖6所示,隨著移動主機節點速度不斷降低,NWTCP中吞吐量下降的速度要慢于WTCP協議。這是由于無線網絡在高速狀況下會出現路由更新以及鏈路中斷,同時又有其它數據流的競爭,NWTCP協議由于增強的基站存儲轉發能力,提高了網絡的重傳效率;同時分段反饋機制,減少了網絡數據以及ACK傳輸量,節省了網絡開銷。同時WTCP協議中當鏈路出現切換時,立即啟動慢啟動,也對吞吐量產生了一定的影響。

Figure 6 mobile environment(5%channel error and 2UDP/CBR flow)the comparison of the NWTCP protocol and the WTCP protocol
綜合3個對比實驗可以得出,在無線網絡環境中,隨著移動主機速度的增加,本文提出的NWTCP協議在性能方面較WTCP協議有所改善。
本文提出了應用于有線-無線混合網絡環境的基站管理機制,新算法新建了存儲列表,同時通過分段反饋改進ACK傳輸機制。對比實驗表明:在有線-無線混合網絡中,隨著信道誤差的增加和數據流量增加,本文提出的NWTCP協議較之WTCP協議,在移動主機速度不斷增加情況下,對于網絡吞吐量方面有一定的改善。
[1] 邱贅,張穎.TCP/IP在無線傳感器網中的應用研究[J].傳感器與微系統,2007,26(12):22-24.
[2] I.Abdeljaouad.Performance analysis of modern TCP variants:A comparison of Cubic[J].Compound and New Reno.Proc QBSC.2010,(27):80.
[3] Molnár S.A comprehensive TCP fairness analysis in high speed networks[J].Computer Communications,2009,(32):1460-1484.
[4] Padhye J,Firoiu V,Towsley D F,et al.Modeling TCP Reno performance:a simple model and its empirical validation[J].IEEE/ACM Transactions on Networking(TON),2000,(2):133-145.
[5] K.Brown and S.Singh,WTCP:An Efficient Mechanism for Improving TCP Performance over Wireless Links Proceedings of IEEE Symposium on Computers and Communications[J].Athens,Greece,1998,(2):74-78.
[6] 劉偉,王輝,范志輝,等.一種適用于有線-無線混合網絡的性能增強代理[J].傳感器與微系統,2011,(11):31-34.
[7] The Network Simulator-NS2[EB.OL].[2010-10-25].http://www.isi.edu/nsnam/ns