利用客戶端代理服務器和服務器端反向代理服務器,可以具備安全/可靠/快捷等優點,同時多路經傳輸可以加大傳輸速度和增強傳輸魯棒性。利用嵌入式開發板和linux系統,搭建網絡拓撲C--P==RP--S,其中C(Client)和S(Server)分別代表客戶端和服務器,P(Proxy)和RP(Reverse-proxy)代表代理和反向代理,在這個網絡拓撲上順利實現了代理和多徑技術的結合。
一.配置要求
1.兩臺PC(網絡拓撲中的C和S,爲了方便下文統一用代號表示),軟件平臺爲Ubuntu 13.04+
2.兩個嵌入式開發板mini2440(網絡拓撲中的P和RP,爲了方便下文統一用代號表示),軟件平臺爲linux 3.11.10
3.PC和開發板之間傳輸和控制的串口和網線
4.兩個代理之間通信的網線/無線網卡/3G模塊
5.最好兩人協作
二.環境搭建
1.PC環境
PC上必須安裝ubuntu便於和嵌入式開發板統一系統平臺,安裝過程網上有很多教程。
爲了達到在PC上的終端控制開發板的目的,要裝minicom,安裝比較順利,利用以下命令行即可
#apt-get install minicom
直接在終端輸入minicom可以啓動該程序
此外可以安裝bwm-ng,監測傳輸過程中的各個路徑速度,也是利用apt-get安裝
直接在終端輸入bwm-ng可以啓動該程序
S上要安裝apache服務器,安裝配置過程比較簡單
2.開發板環境
在兩個嵌入式開發板上安裝完linux 後在P上安裝tinyproxy,安裝及配置代理的過程參考博客點擊打開鏈接
RP上安裝反向代理tinyproxy-re跟tinyproxy過程類似,但有些許不同,參考點擊打開鏈接
在開發板P和RP上可以移植appweb(一個web服務器,不是必須項),這樣就可以方便地在PC端通過圖形看到各條路徑的傳輸狀態,移植過程參考點擊打開鏈接要熟悉appweb的demo開發流程,參考我的一篇博客,如果要進一步學習如何在appweb中嵌入javascript,參考點擊打開鏈接
三.實現流程
1.搭建網絡拓撲
首先是P和RP之間通過網線先連接上。C和P,S和RP,均是通過串口和網線連接。待C和S上的minicom啓動後,將P和RP通電,通電後在minicom上能看到P和RP的打印信息。
然後在minicom的界面上用命令ifconfig查看eth0的信息,在PC上同樣查看eth0的信息,ping對方eth0的ip可以檢查兩者是否成功連通。
接着就是P和RP之間多條網絡路徑的搭建了,由於網線已經連好,只要再在P和RP都插入無線網卡和3G模塊就行,插入後在minicom上有對應的USB口打印信息。
注意wifi要設置成同一個ssid才能設置連接,這裏可以在開發板上安裝wpa_supplicant實現。修改wpa_supplicant配置文件,實現P和RP上的SSID相同。輸入命令
#system/bin/wpa_supplicant -d -Dwext -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf------------------------>wpa_supplicant目錄不盡相同
我們在執行時加上了-c/data/misc/wifi/wpa_supplicant.conf,我們可以將我們要連接的AP的設置以一定的格式寫入wpa_supplicant.conf配置文件中即可。
eg.
ctrl_interface=DIR=/data/system/wpa_supplicant GROUP=system update_config=1
network={
ssid="my access point"
proto=WPA
key_mgmt=WPA-PSK
psk="you pass words"
}
具體的wpa_supplicant使用參考點擊打開鏈接
兩個3G模塊之間的通信比較複雜,可以參考點擊打開鏈接
2.設置每個網絡接口的ip
在root模式下利用命令ifconfig [itf] 192.168.*.*將指定interface設置成ip 192.168.*.*。在我的實現中,具體各個接口的ip設置如下:
每次重啓後都要手動設置一次ip比較麻煩,可以寫一個腳本。
3.設置代理
4.http傳輸測試
現在可以正式開始傳輸測試了,在C的瀏覽器端輸入S上面某文件的URL,S作爲服務器,但是URL中的ip是第3步設置的反響代理ip如果能順利下載文件即代表傳輸通過。
如果進一步地用appweb在瀏覽器前端顯示了各個網絡路徑的傳輸速率曲線,就更加直觀了。