無標(biāo)題文章

背景

TCP協(xié)議增強器,是指將TCP/IP協(xié)議棧中傳輸層的TCP協(xié)議進(jìn)行增強,使之符合一些復(fù)雜網(wǎng)絡(luò)環(huán)境的參數(shù)要求(如時延、誤碼率、速率等)的一種應(yīng)用層軟件技術(shù),將TCP協(xié)議增強器編譯在PC上,可以作為一般網(wǎng)絡(luò)和復(fù)雜網(wǎng)絡(luò)通信的橋梁,或者說轉(zhuǎn)換網(wǎng)絡(luò)環(huán)境的網(wǎng)關(guān),其應(yīng)用示意圖如下:


上圖中,客戶端如果要訪問服務(wù)器網(wǎng)頁,由客戶端發(fā)送的連接請求經(jīng)過左邊的TCP協(xié)議增強器GW1增強,成功傳輸?shù)接疫叺腡CP協(xié)議增強器GW2,然后轉(zhuǎn)換成原來的TCP包再發(fā)送給服務(wù)器,這樣就能在復(fù)雜網(wǎng)絡(luò)環(huán)境下也能建立連接并進(jìn)一步傳輸數(shù)據(jù)。
TCP協(xié)議增強網(wǎng)絡(luò)系統(tǒng)的關(guān)鍵部分是TCP協(xié)議增強軟件,這是在github上可下載的開源軟件,實現(xiàn)在Linux平臺上,編譯后軟件運行在應(yīng)用層,將傳輸層的TCP協(xié)議進(jìn)行增強,轉(zhuǎn)換成復(fù)雜網(wǎng)絡(luò)環(huán)境需要的協(xié)議,適應(yīng)某些網(wǎng)絡(luò)環(huán)境的復(fù)雜性。本片博客中說明了該軟件的編譯和配置,并搭建模擬通信環(huán)境,對于TCP協(xié)議增強器的技術(shù)實現(xiàn)方案進(jìn)行測試和抓包驗證。

要求和術(shù)語

****TCP增強網(wǎng)絡(luò)系統(tǒng)的一般技術(shù)要求:(1)兩個增強器直連:網(wǎng)絡(luò)層Ping通,傳輸層正常進(jìn)行Socket通信,應(yīng)用層正常進(jìn)行HTTP傳輸;(2)兩個增強器通過網(wǎng)線連接同一個路由器,:網(wǎng)絡(luò)層Ping通,傳輸層正常進(jìn)行Socket通信,應(yīng)用層正常進(jìn)行HTTP傳輸;其中TCP協(xié)議增強器應(yīng)用軟件按照編譯方式的不同分為TUN模式和TAP模式,前者是點對點方式,后者是模擬以太網(wǎng)設(shè)備的方式,本博客主要介紹TUN方式。術(shù)語TCP:TCP(Transmission Control Protocol 傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,廣泛應(yīng)用與互聯(lián)網(wǎng)TCP/IP協(xié)議棧的傳輸層中。TAP:TCP協(xié)議增強器的TAP模式,也可說是以太網(wǎng)連接模式。此外TAP還是一種虛擬網(wǎng)卡模擬方式.TUN:TCP協(xié)議增強器的TUN模式,也可以說是一種點對點設(shè)備。此外TUN還是一種虛擬網(wǎng)卡模擬方式.Tap/Tun虛擬網(wǎng)卡工作原理:http://www.ibm.com/developerworks/cn/linux/l-tuntap/Namespace:一種虛擬空間的實現(xiàn)方式,簡單來說就是在一臺PC上可以實現(xiàn)類似于兩臺PC通信的效果,將TCP協(xié)議增強器應(yīng)用軟件放在客戶端虛擬空間內(nèi),然后虛擬空間外的瀏覽器就可以認(rèn)為TCP協(xié)議增強器是在另一臺PC上。在Linux上創(chuàng)建虛擬空間參考:http://blog.csdn.net/dog250/article/details/26147357

編譯

源碼編譯首先介紹TAP模式的TCP協(xié)議增強器源碼編譯過程:1 在Ubuntu平臺上解壓縮源碼包2 解壓后進(jìn)入source文件夾,修改Makefile.in文件中Versionondate\nCompile-time改為Version on date Compile-time,即用空格代替原來的”\n”2cd ../apps3./configure4cd ../source5./configure --gateway=yes –tap=yes6cd ..7make clean,make再介紹TUN模式的TCP協(xié)議增強器源碼編譯過程:1 在Ubuntu平臺上解壓縮源碼包2 解壓后進(jìn)入source文件夾,修改Makefile.in文件中Versionondate\nCompile-time改為Version on date Compile-time,即用空格代替原來的”\n”2cd ../apps3./configure4cd ../source5./configure --gateway=yes --tun=yes6cd ..7make clean,make

測試

4.1 TCP增強器軟件與客戶端獨立的方案4.1.1 測試拓?fù)?div id="2dz91gm" class="image-package">

4.1.2 測試步驟1.內(nèi)核配置。按照上述的內(nèi)核配置內(nèi)容修改rp_filter和reverse path2.源碼編譯配置。按照上述的源碼編譯內(nèi)容編譯成TUN模式。3.工具安裝。安裝必備工具brctl和Wireshark。4.網(wǎng)絡(luò)地址配置。按照下面的ip配置給各個網(wǎng)口分配ip地址


注意:服務(wù)器端要把相鄰網(wǎng)口的IP設(shè)為默認(rèn)網(wǎng)關(guān),這樣在Ping的時候才能讓網(wǎng)口找到不同網(wǎng)段的目的IP地址。5.TCP協(xié)議增強器的resource file(rfile)中綁定各個網(wǎng)口,并開啟,rfile配置見user_manual。6. IP和rfile確定正確配置完后,開啟兩個TCP協(xié)議增強器。7. 在客戶端上ping服務(wù)器地址192.168.2.2,能夠ping通則進(jìn)行下一步。在客戶端PC上運行socket程序客戶端并指定本機ip(192.168.1.2),同時在服務(wù)器PC上運行socket程序服務(wù)器端并指定本機ip(192.168.2.2)和對端ip(192.168.1.2),socket通信成功則進(jìn)行下一步(socket程序見其他博客)。在中間的PC上運行Wireshark抓包。8. 確保服務(wù)器端Apache開啟后,在客戶端PC的瀏覽器輸入服務(wù)器ip(192.168.2.2),能正確顯示預(yù)先寫好的服務(wù)器頁面,包括文字和圖片,并能下載服務(wù)器上的文件。這時同樣在服務(wù)器端PC上運行Wireshark抓包。4.2 TCP增強器軟件內(nèi)置于客戶端(虛擬空間內(nèi))4.2.1 測試拓?fù)?div id="hqqeggd" class="image-package">