背景
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文件中Versionon
date\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文件中Versionon
date\nCompile-time改為Version
on date
Compile-time贱勃,即用空格代替原來的”\n”2cd ../apps3./configure4cd ../source5./configure --gateway=yes --tun=yes6cd ..7make clean,make