亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Android移動網(wǎng)絡(luò)終端的IPv6接入系統(tǒng)設(shè)計與實現(xiàn)

        2016-01-12 11:49:37周浩趙欽馬嚴
        軟件 2015年11期
        關(guān)鍵詞:設(shè)計與實現(xiàn)軟件工程

        周浩++趙欽++馬嚴

        摘 要:針對目前國內(nèi)3G/4G用戶無法接入IPv6網(wǎng)絡(luò)的問題,本文設(shè)計并實現(xiàn)了一種面向Android平臺的IPv6接入系統(tǒng)。該系統(tǒng)使用隧道技術(shù),將移動端的IPv6流量封裝進IPv4數(shù)據(jù)包中,并通過隧道傳輸至IPv6接入服務(wù)器,由IPv6接入服務(wù)器解封裝后轉(zhuǎn)發(fā)至IPv6網(wǎng)絡(luò),進而實現(xiàn)移動終端的IPv6接入能力。該系統(tǒng)利用第三方互聯(lián)網(wǎng)帳號進行接入認證,具備一定的適用性和簡易性。通過部署測試發(fā)現(xiàn),該系統(tǒng)可以方便有效地解決移動互聯(lián)網(wǎng)用戶接入IPv6的問題。

        關(guān)鍵詞:軟件工程;IPv6接入系統(tǒng);設(shè)計與實現(xiàn);Android;OpenVPN;

        中圖分類號:TP311.1

        文獻標識碼:A

        DOI: 10.3969/j.issn.1003-6970.2015.11.016

        0 引言

        如今,世界各地的高校、運營商以及部分商業(yè)公司已經(jīng)開始了IPv6的商業(yè)化進程。諸如Google,YouTube,百度,阿里巴巴等互聯(lián)網(wǎng)企業(yè)均已經(jīng)提供了IPv6服務(wù)讓用戶訪問。此外,六維空間,晨光BT等一大批IPv6站點開始走向用戶生活,受到越來越多的用戶的關(guān)注和追捧。

        然而,目前國內(nèi)的IPv6網(wǎng)絡(luò)建設(shè)仍處于一個初級階段,IPv6接入能力主要集中在面向教育網(wǎng)內(nèi)的高校。對于普通的移動網(wǎng)絡(luò)用戶而言,運營商僅僅向其提供IPv4網(wǎng)絡(luò)接入服務(wù),這對習(xí)慣了獲取IPv6資源的用戶,特別是對于長期使用教育網(wǎng)的用戶而言,是非常不便的。因此,為這些用戶提供一種簡單有效的從IPv4向IPv6的過渡技術(shù)就非常有價值。

        在目前常用的幾種過渡技術(shù)中,隧道技術(shù)由于其對網(wǎng)絡(luò)設(shè)備依賴性低,具備適用性廣和簡單易用等特點,受到不少用戶和研究人員的青睞。本文基于OpenVPN隧道技術(shù),設(shè)計并實現(xiàn)了一套針對Android平臺移動終端的IPv6接入系統(tǒng)。

        1 系統(tǒng)原理

        OpenVPN是一個開放源碼的基于SSL的隧道系統(tǒng),具備良好的安全性和極佳的跨平臺性,是實現(xiàn)隧道技術(shù)的一個理想方案。通過對OpenVPN以及Android系統(tǒng)的研究,本文提出了在移動網(wǎng)絡(luò)環(huán)境下,面向Android設(shè)備的IPv6接入系統(tǒng)。其核心原理是借助OpenVPN創(chuàng)建Android終端與IPv6接入服務(wù)器之間的IPv4隧道連接,將Android終端產(chǎn)生的所有IPv6流量通過這條隧道引導(dǎo)到IPv6網(wǎng)絡(luò)。同時,將IPv6網(wǎng)絡(luò)中流向Android終端的返回數(shù)據(jù)從這條隧道傳回至Android終端。OpenVPN的核心是虛擬網(wǎng)卡,在Android客戶端創(chuàng)建隧道連接時,OpenVPN會在Android設(shè)備中創(chuàng)建名為tun的虛擬網(wǎng)卡,作為系統(tǒng)的默認IPv6出口,并通過套接字編程接口讀寫該虛擬網(wǎng)卡,對流經(jīng)該網(wǎng)卡的數(shù)據(jù)包進行封裝或解封裝操作。

        其中,Android終端和IPv6接入服務(wù)器之間的數(shù)據(jù)交互流程如下所述,在本文,我們將Android客戶端程序稱為6in4程序:

        圖1展示的是Android終端發(fā)送IPv6數(shù)據(jù)包的流程:

        l.Android APP使用IPv6協(xié)議訪問IPv6資源,向協(xié)議棧提交一個IPv6數(shù)據(jù)包。

        2.Android系統(tǒng)協(xié)議棧將應(yīng)用程序提交的IPv6數(shù)據(jù)包發(fā)送到虛擬的tun接口。

        3.6in4程序接著可以從tun接口讀取該IPv6數(shù)據(jù)包,而后對其進行IPv4封裝,再提交到系統(tǒng)協(xié)議棧。

        4.協(xié)議棧根據(jù)路由表將IPv4數(shù)據(jù)包從IPv4接口發(fā)送出去。

        圖2展示的是IPv6接入服務(wù)器接收到Android端發(fā)來的數(shù)據(jù)后的處理流程:

        1.接入服務(wù)器的IPv4接口接收到封裝了IPv6數(shù)據(jù)的IPv4數(shù)據(jù)包,并提交到系統(tǒng)協(xié)議棧。

        2.系統(tǒng)協(xié)議棧將數(shù)據(jù)包上傳給OpenVPN服務(wù)端程序。

        3.OpenVPN服務(wù)端程序?qū)Pv6數(shù)據(jù)從IPv4包從提取出來,并再次提交到系統(tǒng)協(xié)議棧。

        4.系統(tǒng)協(xié)議棧根據(jù)路由表規(guī)則將IPv6數(shù)據(jù)包從IPv6接口發(fā)送出去。

        圖3展示的是IPv6接入服務(wù)器接收到外部設(shè)備發(fā)往Android終端的IPv6數(shù)據(jù)包時的處理流程:

        1.接入服務(wù)器的IPv6接口收到IPv6數(shù)據(jù)包,并提交到協(xié)議棧。

        2.協(xié)議棧根據(jù)路由規(guī)則將IPv6數(shù)據(jù)包轉(zhuǎn)發(fā)到tun接口。

        3.OpenVPN服務(wù)端程序從tun接口讀取IPv6數(shù)據(jù)包,并將其打包到IPv4數(shù)據(jù)包內(nèi),提交到系統(tǒng)協(xié)議棧。

        4.系統(tǒng)協(xié)議棧根據(jù)路由表規(guī)則將打包后的IPv4數(shù)據(jù)包從IPv4接口發(fā)出。

        圖4是Android接收IPv6響應(yīng)的處理流程:

        1.Android從網(wǎng)絡(luò)接口接收到IPv4數(shù)據(jù)包,根據(jù)數(shù)據(jù)包內(nèi)的IP地址信息,將該IPv4數(shù)據(jù)包轉(zhuǎn)發(fā)6in4程序。

        2.6in4程序?qū)?shù)據(jù)包解封裝,恢復(fù)成IPv6數(shù)據(jù)包,再將IPv6報文提交到協(xié)議棧。

        3.Android協(xié)議棧根據(jù)IPv6數(shù)據(jù)包的地址和端口信息,將數(shù)據(jù)包提交給應(yīng)用程序。

        通過以上四個過程,實現(xiàn)了Android終端對IPv6資源的訪問。

        2 系統(tǒng)設(shè)計

        2.1 系統(tǒng)設(shè)計

        通過對已有系統(tǒng)的研究和學(xué)習(xí),本文將接入系統(tǒng)分五個功能模塊,分別為IPv6接入模塊,認證模塊,API接口模塊,數(shù)據(jù)庫,Android端程序6in4,除客戶端程序外,各個模塊可以部署在單臺或多臺服務(wù)器上。這五個部分的組織結(jié)構(gòu)關(guān)系如圖5所示:

        其中,IPv6接入模塊與Android終端之間建立IPv4隧道連接,通過該隧道為其提供IPv6接入功能。在建立隧道連接時,IPv6接入模塊會對客戶端進行身份驗證,而驗證過程則依賴認證服務(wù)器為其提供的驗證接口。

        認證模塊基于FreeRadius搭建,對IPv6接人模塊提供身份驗證接口,對API接口模塊提供用戶注冊,查詢接口。

        API接口模塊面向Android客戶端程序6in4,為其提供RESTful API支持,包括賬號注冊,接入服務(wù)器信息查詢,日志上報,IPv6資源下發(fā)等功能。

        數(shù)據(jù)庫中存儲用戶的賬號信息,隧道連接信息,客戶端上報的日志信息等數(shù)據(jù),方便管理員了解整個系統(tǒng)的運行狀況。

        2.2 客戶端設(shè)計

        客戶端程序適配Android 4.0及以上版本。這是因為Android在4.0版本提供了VPN的相關(guān)編程接口,使得第三方應(yīng)用可以在未獲取Root權(quán)限的情況下,也能實現(xiàn)VPN相關(guān)的功能。此外,客戶端程序引入QQ和新浪微博賬號,方便用戶使用已有賬號進行使用。客戶端程序與服務(wù)端的交互流程如圖6所示:

        3 系統(tǒng)實現(xiàn)與部署

        3.1 認證服務(wù)器的安裝配置

        本系統(tǒng)中所有服務(wù)端程序都運行于CentOS 6.5版本系統(tǒng)。

        認證服務(wù)器基于FreeRadius搭建??梢酝ㄟ^包管理軟件yum進行radius的安裝,安裝前需確認MySQL數(shù)據(jù)庫已安裝。FreeRadius的安裝命令如下:

        $yum install -yfreeradius freeradius-mysql freeradius-utils

        安裝完畢后,需要修改Radius的配置,使其使用MySQL數(shù)據(jù)庫進行用戶數(shù)據(jù)的存儲。修改配置文件/etc/raddb/radius.conf,找到modules配置塊,刪除$INCLUDE sql.conf以及$INCLUDE sql/mysql/counter.conf前的“#”號,如下:

        修改/etc/raddb/sql.conf,配置成MySQL數(shù)據(jù)庫的地址和賬號和表名。

        3.2 OpenVPN安裝以及Radius插件配置

        OpenVPN可以使用yum命令進行安裝。

        $yum install openvpn -y

        OpenVPN的配置步驟中,比較重要的是CA證書的生成,可以借助easy-rsa工具,進入easy-rsa目錄下后執(zhí)行命令:

        $./clean-all #清除原有不需要的證書文件

        $./build-ca #生成證書

        創(chuàng)建服務(wù)端證書

        $./build-key-server server #這里指定服務(wù)端的證書名為server

        創(chuàng)建客戶端證書

        $./build-key client #這里指定客戶端的證書名為client

        $./build-dh #證書加密,dh指Diffie Hellman

        將以上步驟創(chuàng)建的證書都復(fù)制到/etc/openvpn/keys目錄下

        之后編譯Radius認證插件??梢詮墓倬W(wǎng)下載插件源代碼,根據(jù)文檔完成編譯,生成radiusplugin.so二進制文件,并將此二進制文件以及配置文件復(fù)制到OpenVPN安裝目錄下

        編輯radiusplugin.cnf配置文件,修改其中的端口,IP等參數(shù)。

        修改OpenVPN的配置文件server.cnf,如下:

        在配置文件中指定OpenVPN程序以server的形態(tài)運行,使用的端口號為1194,以及IPv4和IPv6地址。push參數(shù)用于向客戶端推送路由規(guī)則和DNS信息。plugin參數(shù)用于加載radiusplugin.so插件。log和status參數(shù)指定日志文件路徑。keepalive參數(shù)指定隧道的?;顣r間。

        完成以上配置后,重啟OpenVPN程序

        $ /etc/init.d/openvpn restart

        3.3 API接口服務(wù)器搭建

        API接口服務(wù)器使用Yii框架進行搭建,使用JSON格式數(shù)據(jù)與客戶端進行數(shù)據(jù)通訊,并對用戶名、密碼等敏感數(shù)據(jù)進行RSA加密。

        3.4 Android客戶端實現(xiàn)

        Android客戶端基于開源項目ics-openvpn進行深度定制與開發(fā),加入了QQ和新浪微博的賬號登錄,網(wǎng)絡(luò)環(huán)境診斷功能,IPv6資源推薦,用戶意見反饋,應(yīng)用分享等功能,內(nèi)置隧道鏈接配置文件,刪除了對配置文件的修改功能。

        其中,QQ和新浪微博賬號接入使用了ShareSDK進行整合,申請賬號授權(quán)代碼如下:

        此外,還需要在客戶端提供OpenVPN客戶端的配置文件,如下:

        Client

        dev tun

        remote<服務(wù)端IP地址><端口號>

        proto udp

        topology subnet

        resolv-retrv infinite

        nobind

        persist-key

        persist-tun

        auth-user-pass

        #此處填充具體的證書內(nèi)容

        ns-cert-type server

        cipher AES-128-CBC

        comp-lzo

        route-method exe

        route-delay 2

        verb 3

        tun-ipv6

        以上配置文件指定了VPN服務(wù)端的IP地址,端口,認證方式,連接協(xié)議等信息。Android端程序?qū)⒁罁?jù)此配置與服務(wù)端建立隧道連接。

        4 系統(tǒng)測試

        測試使用的設(shè)備為Nexus 5,系統(tǒng)版本為Android5.1.1,關(guān)閉手機的WIFI網(wǎng)絡(luò),僅接入北京聯(lián)通3G網(wǎng)絡(luò)。

        初始的IPv4路由表如下:

        IPv6路由表為空如下:

        訪問IPv4地址情況如下:

        訪問IPv6地址情況如下:

        顯示網(wǎng)絡(luò)不可達,因為北京地區(qū)的聯(lián)通3G網(wǎng)絡(luò)未提供IPv6接入能力。

        打開Android客戶端程序并建立隧道連接后,IP地址分配情況:

        可見OpenVPN在Android終端內(nèi)創(chuàng)建了名為tun的虛擬端口,其IP地址被設(shè)置為服務(wù)端指派的IP地址。

        再看IPv6路由表

        已將tun接口設(shè)置成默認的IPv6出口。

        訪問IPv6站點情況:

        同時也不影響IPv4的訪問

        在進過幾輪的測試后,測試設(shè)備與IPv6站點間的Ping延時如下:

        從測試結(jié)果看,本系統(tǒng)可以為移動網(wǎng)絡(luò)下的Android終端提供IPv6接入能力,但由于受限與隧道加解密處理,以及IPv6接入服務(wù)器的出口帶寬等物理因素,使得Android終端對IPv6資源的訪問速度有所下降。但從手機瀏覽器訪問IPv6網(wǎng)站的用戶體驗而言,依然處于一個可用的水平。

        目前,客戶端軟件已經(jīng)在百度應(yīng)用市場和騰訊應(yīng)用寶上架,截止2015年10月底,已經(jīng)有近1000次裝機量和500名左右注冊用戶,隧道連接的創(chuàng)建次數(shù)已經(jīng)超過了12000次。

        5 總結(jié)

        本文針對目前移動設(shè)備在3G/4G等移動網(wǎng)絡(luò)下無法接入IPv6網(wǎng)絡(luò)的問題,提出并實現(xiàn)了一種簡單、有效的IPv6接入系統(tǒng)。通過隧道的方式將用戶的IPv6流量封裝進IPv4數(shù)據(jù)包中,實現(xiàn)IPv6 over IPv4網(wǎng)絡(luò)的設(shè)計思路,并采用手機APP的形式,為用戶屏蔽了復(fù)雜的隧道配置過程和參數(shù)管理。同時,采用QQ,新浪微博等國內(nèi)用戶常用的互聯(lián)網(wǎng)賬號進行接入認證,更是降低了用戶的使用門檻。目前,Android4.0版本已經(jīng)占據(jù)了95%以上的份額,因此該方案也具備較廣泛的適用性,對iOS平臺下的實現(xiàn)方案也有很大的借鑒意義。

        然而,受限于IPv4帶寬,終端的IPv6接入速度和接入質(zhì)量相對于雙棧接入的用戶而言,有一定的下降,這個問題可以通過改善終端與IPv6接入服務(wù)器之間的線路質(zhì)量,降低隧道的數(shù)據(jù)處理開銷,引入IPv6接入服務(wù)器集群,增加接入服務(wù)器的IPv4帶寬資源等方法進行解決。

        猜你喜歡
        設(shè)計與實現(xiàn)軟件工程
        校園電商平臺的設(shè)計與實現(xiàn)
        中國市場(2016年41期)2016-11-28 06:09:30
        高校文化建設(shè)中視覺識別系統(tǒng)的設(shè)計和實現(xiàn)
        軟件開發(fā)信息管理系統(tǒng)的設(shè)計與實現(xiàn)
        依托工作室的軟件工程實踐教學(xué)研究
        科研院所科研信息化管理系統(tǒng)的設(shè)計與應(yīng)用
        基于工程教育認證的《軟件工程》課程教學(xué)質(zhì)量建設(shè)研究 
        關(guān)于提高軟件工程實踐教學(xué)質(zhì)量的幾點思考
        關(guān)于如何創(chuàng)新和完善計算機軟件工程管理的探討
        久久久精品2019免费观看| 五月天激情电影| 国产精品久久久久高潮| 美女视频黄的全免费视频网站 | 99久久精品费精品国产一区二| 日韩精品久久无码中文字幕| 亚洲五月天综合| 中文无码日韩欧免费视频| 国产极品嫩模大尺度在线播放| 99久久国产精品免费热| 无码人妻一区二区三区免费看| 最近中文字幕视频完整版在线看 | 黄片视频免费在线播放观看| 亚洲av无码国产精品永久一区| 97久久天天综合色天天综合色hd| 免费一级a毛片在线播出| 亚洲一区二区三区av天堂| 国产一区二区视频免费在| 狠狠色综合7777久夜色撩人| 99亚洲精品久久久99| 人妻丰满熟妇av一区二区 | 免费 无码 国产精品| 国产成人精品一区二三区在线观看 | 欧美h久免费女| 偷拍视频这里只有精品| 中文字幕av伊人av无码av| 性生交大片免费看淑女出招| 欧美精品aaa久久久影院| 一区二区三区在线观看视频免费| 国产精品成人一区二区不卡| 成人精品视频一区二区| 国产一在线精品一区在线观看| 人妖熟女少妇人妖少妇| 成人av毛片免费大全| 精品久久久久久久无码人妻热| 欧美日韩精品一区二区三区不卡| 中文字幕人妻系列一区尤物视频| 熟女免费观看一区二区| 欧美 日韩 人妻 高清 中文| 免费人成无码大片在线观看 | 中文字幕一区二区三区四区久久|