TCP協議增強器的應用實踐

1 背景

TCP協議增強器,是指將TCP/IP協議棧中傳輸層的TCP協議進行增強,使之符合一些複雜網絡環境的參數要求(如時延、誤碼率、速率等)的一種應用層軟件技術,將TCP協議增強器編譯在PC上,可以作爲一般網絡和複雜網絡通信的橋樑,或者說轉換網絡環境的網關,其應用示意圖如下:


上圖中,客戶端如果要訪問服務器網頁,由客戶端發送的連接請求經過左邊的TCP協議增強器GW1增強,成功傳輸到右邊的TCP協議增強器GW2,然後轉換成原來的TCP包再發送給服務器,這樣就能在複雜網絡環境下也能建立連接並進一步傳輸數據。


TCP協議增強網絡系統的關鍵部分是TCP協議增強軟件,這是在github上可下載的開源軟件,實現在Linux平臺上,編譯後軟件運行在應用層,將傳輸層的TCP協議進行增強,轉換成複雜網絡環境需要的協議,適應某些網絡環境的複雜性。本片博客中說明了該軟件的編譯和配置,並搭建模擬通信環境,對於TCP協議增強器的技術實現方案進行測試和抓包驗證。

2 要求和術語


TCP增強網絡系統的一般技術要求:

(1)兩個增強器直連:網絡層Ping通,傳輸層正常進行Socket通信,應用層正常進行HTTP傳輸;

(2)兩個增強器通過網線連接同一個路由器,:網絡層Ping通,傳輸層正常進行Socket通信,應用層正常進行HTTP傳輸;

其中TCP協議增強器應用軟件按照編譯方式的不同分爲TUN模式和TAP模式,前者是點對點方式,後者是模擬以太網設備的方式,本博客主要介紹TUN方式。

術語

TCP:TCP(Transmission Control Protocol 傳輸控制協議)是一種面向連接的、可靠的、基於字節流的傳輸層通信協議,廣泛應用與互聯網TCP/IP協議棧的傳輸層中。

TAP:TCP協議增強器的TAP模式,也可說是以太網連接模式。此外TAP還是一種虛擬網卡模擬方式.

TUN:TCP協議增強器的TUN模式,也可以說是一種點對點設備。此外TUN還是一種虛擬網卡模擬方式.Tap/Tun虛擬網卡工作原理:http://www.ibm.com/developerworks/cn/linux/l-tuntap/

Namespace:一種虛擬空間的實現方式,簡單來說就是在一臺PC上可以實現類似於兩臺PC通信的效果,將TCP協議增強器應用軟件放在客戶端虛擬空間內,然後虛擬空間外的瀏覽器就可以認爲TCP協議增強器是在另一臺PC上。在Linux上創建虛擬空間參考:http://blog.csdn.net/dog250/article/details/26147357


3 編譯


 源碼編譯

首先介紹TAP模式的TCP協議增強器源碼編譯過程:

1 在Ubuntu平臺上解壓縮源碼包

2 解壓後進入source文件夾,修改Makefile.in文件中Version` on`date`\nCompile-time改爲Version` on `date` Compile-time,即用空格代替原來的”\n”

2cd ../apps

3./configure

4cd  ../source

5./configure --gateway=yes –tap=yes

6cd ..

7make clean,make



再介紹TUN模式的TCP協議增強器源碼編譯過程:

1 在Ubuntu平臺上解壓縮源碼包

2 解壓後進入source文件夾,修改Makefile.in文件中Version` on`date`\nCompile-time改爲Version` on `date` Compile-time,即用空格代替原來的”\n”

2cd ../apps

3./configure

4cd  ../source

5./configure --gateway=yes --tun=yes

6cd ..

7make clean,make

 

4   測試

4.1    TCP增強器軟件與客戶端獨立的方案

4.1.1  測試拓撲


4.1.2  測試步驟

1.內核配置。按照上述的內核配置內容修改rp_filter和reverse path

2.源碼編譯配置。按照上述的源碼編譯內容編譯成TUN模式。

3.工具安裝。安裝必備工具brctl和Wireshark。

4.網絡地址配置。按照下面的ip配置給各個網口分配ip地址



注意:服務器端要把相鄰網口的IP設爲默認網關,這樣在Ping的時候才能讓網口找到不同網段的目的IP地址。

5.TCP協議增強器的resource file(rfile)中綁定各個網口,並開啓,rfile配置見user_manual。

6. IP和rfile確定正確配置完後,開啓兩個TCP協議增強器。

7. 在客戶端上ping服務器地址192.168.2.2,能夠ping通則進行下一步。在客戶端PC上運行socket程序客戶端並指定本機ip(192.168.1.2),同時在服務器PC上運行socket程序服務器端並指定本機ip(192.168.2.2)和對端ip(192.168.1.2),socket通信成功則進行下一步(socket程序見其他博客)。在中間的PC上運行Wireshark抓包。

8. 確保服務器端Apache開啓後,在客戶端PC的瀏覽器輸入服務器ip(192.168.2.2),能正確顯示預先寫好的服務器頁面,包括文字和圖片,並能下載服務器上的文件。這時同樣在服務器端PC上運行Wireshark抓包。

4.2   TCP增強器軟件內置於客戶端(虛擬空間內)

4.2.1  測試拓撲


4.2.2 測試步驟

1.內核配置。按照上述的內核配置內容修改rp_filter和reverse path

2.源碼編譯配置。按照上述的源碼編譯內容編譯成TUN模式。

3.工具安裝。安裝必備工具tunctl/brctl和Wireshark在客戶端PC上創建Namespace,並在虛擬空間Namespace上啓動TCP協議增強器(還有一種方案是在虛擬空間Namespace上創建虛擬網卡)

4.網絡地址配置。按照下面的ip配置給各個網口分配ip地址:


5.在TCP協議增強器的resource file(rfile)中綁定各個網口,並開啓,rfile配置見用戶手冊。

6. IP和rfile確定正確配置完後,開啓兩個TCP協議增強器。在這裏將4和6所述的操作都寫在一個shell腳本中,只需執行這個腳本文件即可。

7. 在客戶端上ping服務器地址192.168.2.2,能夠ping通則進行下一步。在客戶端PC上運行socket程序客戶端並指定本機ip(192.168.1.2),同時在服務器PC上運行socket程序服務器端並指定本機ip(192.168.2.2)和對端ip(192.168.1.2),socket通信成功則進行下一步(socket程序見其他博客)。在中間的PC上運行Wireshark抓包。

8. 確保服務器端Apache開啓後,在客戶端PC的瀏覽器輸入服務器ip(192.168.2.2),能正確顯示預先寫好的服務器頁面,包括文字和圖片,並能下載服務器上的文件。這時同樣在中間的PC上運行Wireshark抓包。


5  功能配置/注意事項


在測試過程中,如果發現傳輸速率過慢,則可以在rfile配置中對傳輸速率進行更改,如果發現傳輸到一部分斷開傳輸,則對緩衝區進行調整。具體調整見TCP協議增強器目錄下內置的配置手冊。

 

發佈了39 篇原創文章 · 獲贊 17 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章