無標(biāo)題文章

背景

TCP協(xié)議增強(qiáng)器,是指將TCP/IP協(xié)議棧中傳輸層的TCP協(xié)議進(jìn)行增強(qiáng),使之符合一些復(fù)雜網(wǎng)絡(luò)環(huán)境的參數(shù)要求(如時(shí)延峦睡、誤碼率、速率等)的一種應(yīng)用層軟件技術(shù)权埠,將TCP協(xié)議增強(qiáng)器編譯在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é)議增強(qiáng)器GW1增強(qiáng)满俗,成功傳輸?shù)接疫叺腡CP協(xié)議增強(qiáng)器GW2转捕,然后轉(zhuǎn)換成原來的TCP包再發(fā)送給服務(wù)器作岖,這樣就能在復(fù)雜網(wǎng)絡(luò)環(huán)境下也能建立連接并進(jìn)一步傳輸數(shù)據(jù)。
TCP協(xié)議增強(qiáng)網(wǎng)絡(luò)系統(tǒng)的關(guān)鍵部分是TCP協(xié)議增強(qiáng)軟件五芝,這是在github上可下載的開源軟件痘儡,實(shí)現(xiàn)在Linux平臺上,編譯后軟件運(yùn)行在應(yīng)用層枢步,將傳輸層的TCP協(xié)議進(jìn)行增強(qiáng)沉删,轉(zhuǎn)換成復(fù)雜網(wǎng)絡(luò)環(huán)境需要的協(xié)議,適應(yīng)某些網(wǎng)絡(luò)環(huán)境的復(fù)雜性价捧。本片博客中說明了該軟件的編譯和配置丑念,并搭建模擬通信環(huán)境,對于TCP協(xié)議增強(qiáng)器的技術(shù)實(shí)現(xiàn)方案進(jìn)行測試和抓包驗(yàn)證结蟋。

要求和術(shù)語

****TCP增強(qiáng)網(wǎng)絡(luò)系統(tǒng)的一般技術(shù)要求:(1)兩個(gè)增強(qiáng)器直連:網(wǎng)絡(luò)層Ping通脯倚,傳輸層正常進(jìn)行Socket通信,應(yīng)用層正常進(jìn)行HTTP傳輸嵌屎;(2)兩個(gè)增強(qiáng)器通過網(wǎng)線連接同一個(gè)路由器推正,:網(wǎng)絡(luò)層Ping通,傳輸層正常進(jìn)行Socket通信宝惰,應(yīng)用層正常進(jìn)行HTTP傳輸植榕;其中TCP協(xié)議增強(qiáng)器應(yīng)用軟件按照編譯方式的不同分為TUN模式和TAP模式,前者是點(diǎn)對點(diǎn)方式尼夺,后者是模擬以太網(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é)議增強(qiáng)器的TAP模式慰毅,也可說是以太網(wǎng)連接模式。此外TAP還是一種虛擬網(wǎng)卡模擬方式.TUN:TCP協(xié)議增強(qiáng)器的TUN模式扎阶,也可以說是一種點(diǎn)對點(diǎn)設(shè)備汹胃。此外TUN還是一種虛擬網(wǎng)卡模擬方式.Tap/Tun虛擬網(wǎng)卡工作原理:http://www.ibm.com/developerworks/cn/linux/l-tuntap/Namespace:一種虛擬空間的實(shí)現(xiàn)方式,簡單來說就是在一臺PC上可以實(shí)現(xiàn)類似于兩臺PC通信的效果东臀,將TCP協(xié)議增強(qiáng)器應(yīng)用軟件放在客戶端虛擬空間內(nèi)着饥,然后虛擬空間外的瀏覽器就可以認(rèn)為TCP協(xié)議增強(qiáng)器是在另一臺PC上。在Linux上創(chuàng)建虛擬空間參考:http://blog.csdn.net/dog250/article/details/26147357

編譯

源碼編譯首先介紹TAP模式的TCP協(xié)議增強(qiáng)器源碼編譯過程: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é)議增強(qiáng)器源碼編譯過程: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增強(qiáng)器軟件與客戶端獨(dú)立的方案4.1.1 測試拓?fù)?div id="illaln2" 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配置給各個(gè)網(wǎng)口分配ip地址


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