基于vpdn專網(wǎng)的無線通訊方法
【專利摘要】本發(fā)明公開了一種基于VPDN專網(wǎng)的無線通訊方法,由發(fā)射端設(shè)備的3G模塊通過后端路由器進(jìn)行專網(wǎng)撥號(hào),通過預(yù)先在服務(wù)端設(shè)定的賬號(hào)、密碼與服務(wù)端進(jìn)行chap認(rèn)證或者pap認(rèn)證,認(rèn)證通過后進(jìn)入專用網(wǎng)絡(luò),利用發(fā)射端設(shè)備中安裝的vpn軟件通過IKE進(jìn)行協(xié)商,采用國密對稱密碼SM1分組算法,對密鑰協(xié)商數(shù)據(jù)以及報(bào)文數(shù)據(jù)進(jìn)行加密保護(hù),采用預(yù)共享密鑰進(jìn)行終端合法校驗(yàn)、采用DH算法進(jìn)行密鑰交換;采用密碼雜湊算法MD5對對稱密鑰生成以及完整性進(jìn)行校驗(yàn);協(xié)商完成后建立安全通訊隧道,數(shù)據(jù)傳輸通過ipsec esp協(xié)議認(rèn)證算法MD5認(rèn)證,通過專線傳輸。本發(fā)明由于采用國密算法,且在vpdn專網(wǎng)通信的基礎(chǔ)上實(shí)現(xiàn)無線加密通信,安全性高,可用于手機(jī)、PDA設(shè)備等。
【專利說明】
基于VPDN專網(wǎng)的無線通訊方法
技術(shù)領(lǐng)域
[0001]本發(fā)明屬于通訊技術(shù)領(lǐng)域,具體涉及一種基于VPDN專網(wǎng)的無線通訊方法。
【背景技術(shù)】
[0002]目前無線通信雖然較有線帶來了許多方便,但它在安全性方面也領(lǐng)人擔(dān)憂,特別是商業(yè)領(lǐng)域,如銀行、軍方對數(shù)據(jù)的保密性要求很高,無線加密傳輸剛好彌補(bǔ)了它的不足,目前無線加密傳輸主要應(yīng)用在路由行業(yè),路由對路由通過點(diǎn)對點(diǎn)或者一點(diǎn)對多點(diǎn)數(shù)據(jù)傳輸,然而在手持設(shè)備上無法嵌入路由進(jìn)行通信,而且目前android系統(tǒng)所用到的加密算法主要包含對稱性加密(DES、AES)、非對稱性加密,其算法公開、計(jì)算量小、安全性得不到保證,易被人攔截、破解。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是提供一種基于VPDN專網(wǎng)的無線通訊方法,是在安全傳輸數(shù)據(jù)之后采用國密算法進(jìn)行密鑰協(xié)商,協(xié)商完成建立安全通訊隧道后,采用ESP安全封裝協(xié)議進(jìn)行數(shù)據(jù)傳輸。
[0004]本發(fā)明是這樣實(shí)現(xiàn)的:一種基于VPDN專網(wǎng)的無線通訊方法,由發(fā)射端設(shè)備的3G模塊通過后端路由器進(jìn)行專網(wǎng)撥號(hào),通過預(yù)先在服務(wù)端設(shè)定的賬號(hào)、密碼與服務(wù)端進(jìn)行chap認(rèn)證或者pap認(rèn)證,認(rèn)證通過后進(jìn)入專用網(wǎng)絡(luò),利用發(fā)射端設(shè)備中安裝的vpn軟件通過IKE進(jìn)行協(xié)商,采用國密對稱密碼SMl分組算法,對密鑰協(xié)商數(shù)據(jù)以及報(bào)文數(shù)據(jù)進(jìn)行加密保護(hù),采用預(yù)共享密鑰進(jìn)行終端合法校驗(yàn)、采用DH算法進(jìn)行密鑰交換;采用密碼雜湊算法MD5對對稱密鑰生成以及完整性進(jìn)行校驗(yàn);協(xié)商完成后建立安全通訊隧道,數(shù)據(jù)傳輸通過ipsec esp協(xié)議認(rèn)證算法MD5認(rèn)證,通過專線傳輸。
[0005]進(jìn)一步地,所述報(bào)文數(shù)據(jù)通過UDP協(xié)議500端口傳輸?shù)倪^程,包括兩個(gè)階段,第一階段為身份認(rèn)證,采用公私鑰密鑰對方式,發(fā)射端設(shè)備與接收端設(shè)備根據(jù)對稱密碼算法SMl預(yù)先配置好對方的公鑰和自身的私鑰;第二階段為消息的完整性檢驗(yàn)和數(shù)據(jù)源的身份驗(yàn)證,利用hash進(jìn)行,將hash載荷添加在ISAKMP頭之后,使用對稱密碼算法的CBC模式對ISAKMP之后的載荷nonce、ID進(jìn)行加密。
[0006]進(jìn)一步地,所述安全通訊隧道中信號(hào)發(fā)送由虛擬網(wǎng)卡驅(qū)動(dòng),所述虛擬網(wǎng)卡驅(qū)動(dòng)由Tun/tap 驅(qū)動(dòng)。
[0007]進(jìn)一步地,所述Tun/tap驅(qū)動(dòng)實(shí)現(xiàn)虛擬網(wǎng)卡驅(qū)動(dòng)的處理為:當(dāng)打開一個(gè)tun/tap設(shè)備時(shí),open函數(shù)將調(diào)用tun_Chr_0pen()函數(shù),以完成初始化過程,包括設(shè)置網(wǎng)卡驅(qū)動(dòng)的初始化函數(shù)、網(wǎng)絡(luò)緩沖區(qū)鏈表的初始化以及等待隊(duì)列的初始化;Tun/tap驅(qū)動(dòng)中網(wǎng)卡的注冊被嵌入了字符驅(qū)動(dòng)的1ct I例程中,通過對字符設(shè)備文件描述符利用自定義的1ctl設(shè)置標(biāo)志TUNSETIFF完成網(wǎng)卡注冊;使用1ctl()函數(shù)操作字符設(shè)備文件描述符,將調(diào)用字符設(shè)備中tun_chr_1ctl來設(shè)置已經(jīng)open好的tun/tap設(shè)備,如果設(shè)置標(biāo)志為TUNSETIFF,則調(diào)用tun_set_iff ()函數(shù),對網(wǎng)卡驅(qū)動(dòng)進(jìn)行注冊register_netdev(&tun_>dev),網(wǎng)卡驅(qū)動(dòng)的各個(gè)處理例程的掛接在open操作時(shí)由tun_chr_open()函數(shù)初始化好了。
[0008]進(jìn)一步地,Tun/tap設(shè)備的工作過程為:Tun/tap設(shè)備驅(qū)動(dòng)通過字符設(shè)備文件來實(shí)現(xiàn)數(shù)據(jù)從用戶區(qū)獲取,發(fā)送數(shù)據(jù)時(shí)tun/tap設(shè)備是通過字符設(shè)備發(fā)送至用戶區(qū),再由用戶區(qū)程序通過其他渠道發(fā)送。
[0009]進(jìn)一步地,tun/tap設(shè)備發(fā)送數(shù)據(jù)過程為:tun/tap網(wǎng)卡的程序經(jīng)過協(xié)議桟把數(shù)據(jù)傳送給驅(qū)動(dòng)程序,驅(qū)動(dòng)程序調(diào)用注冊好的hard_start_xmit函數(shù)發(fā)送,hard_start_xmit函數(shù)又會(huì)調(diào)用tun_net_xmit函數(shù),skb被加入到skb鏈表,然后喚醒被阻塞的使用tun/tap設(shè)備字符驅(qū)動(dòng)讀數(shù)據(jù)的進(jìn)程,接著tun/tap設(shè)備的字符驅(qū)動(dòng)部分調(diào)用其tun_chr_read()過程讀取skb鏈表,并將每一個(gè)讀到的skb發(fā)往用戶區(qū),完成虛擬網(wǎng)卡的數(shù)據(jù)發(fā)送。
[00?0]進(jìn)一步地,Tun/tap設(shè)備接收數(shù)據(jù)過程為:當(dāng)使用¥1^6()系統(tǒng)調(diào)用向1:1111八3?設(shè)備的字符設(shè)備文件寫入數(shù)據(jù)時(shí),tun_chr_write函數(shù)將被調(diào)用,使用tun_get_user從用戶區(qū)接受數(shù)據(jù),并將數(shù)據(jù)存入skb中,然后調(diào)用關(guān)鍵的函數(shù)netif_rx(skb)將skb送給tcp/ip協(xié)議桟處理,完成虛擬網(wǎng)卡的數(shù)據(jù)接收。
[0011]進(jìn)一步地,所述發(fā)射端設(shè)備包括手機(jī)、PDA設(shè)備。
[0012]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果:在安全傳輸數(shù)據(jù)之后采用國密算法進(jìn)行密鑰協(xié)商,協(xié)商完成建立安全通訊隧道后,采用ESP安全封裝協(xié)議進(jìn)行數(shù)據(jù)傳輸;由于采用國密算法即國家密碼局認(rèn)定的國產(chǎn)密碼算法安全性高,不易被破解;另外在vpdn專網(wǎng)通信的基礎(chǔ)上實(shí)現(xiàn)無線加密通信,安全性更高,可用于在手機(jī)、PDA設(shè)備等;其通過直接連接到路由器,使用方便。
【附圖說明】
[0013]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖只是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0014]圖1是本發(fā)明基于VPDN專網(wǎng)的無線通訊系統(tǒng)結(jié)構(gòu)示意圖;
[0015]圖2是本發(fā)明Tun/tap驅(qū)動(dòng)程序示意圖;
[0016]圖3是本發(fā)明Tun/tap驅(qū)動(dòng)中實(shí)現(xiàn)的網(wǎng)卡驅(qū)動(dòng)的處理例程;
[0017]圖4是本發(fā)明Tun/tap設(shè)備發(fā)送和接收數(shù)據(jù)程序示意圖。
【具體實(shí)施方式】
[0018]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例只用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0019]需要說明的是,當(dāng)元件被稱為“固定于”或“設(shè)置于”另一個(gè)元件,它可以直接在另一個(gè)元件上或者可能同時(shí)存在居中元件。當(dāng)一個(gè)元件被稱為是“連接于”另一個(gè)元件,它可以是直接連接到另一個(gè)元件或者可能同時(shí)存在居中元件。
[0020]還需要說明的是,本發(fā)明實(shí)施例中的左、右、上、下等方位用語,僅是互為相對概念或是以產(chǎn)品的正常使用狀態(tài)為參考的,而不應(yīng)該認(rèn)為是具有限制性的。
[0021 ] 如圖1所示,一種基于VPDN專網(wǎng)的無線通訊系統(tǒng),包括TOA設(shè)備I,3G站點(diǎn)2、路由器3和服務(wù)器LPDA設(shè)備I的3G模塊通過3G站點(diǎn)2與路由器4相連,PDA設(shè)備I進(jìn)行專網(wǎng)撥號(hào)時(shí),通過在TOA設(shè)備I上輸入賬號(hào)、密碼的方式在服務(wù)端4進(jìn)行chap認(rèn)證或者pap認(rèn)證,當(dāng)認(rèn)證通過后,進(jìn)入專用網(wǎng)絡(luò),在專用網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行vpn ipsec協(xié)議封裝。
[0022]PDA設(shè)備I中安裝的vpn軟件通過IKE進(jìn)行協(xié)商,采用國密對稱密碼SMl分組算法,對密鑰協(xié)商數(shù)據(jù)以及報(bào)文數(shù)據(jù)進(jìn)行加密保護(hù),采用預(yù)共享密鑰進(jìn)行終端合法校驗(yàn)、采用DH算法進(jìn)行密鑰交換;采用密碼雜湊算法MD5對對稱密鑰生成以及完整性進(jìn)行校驗(yàn)。
[0023]在安全傳輸數(shù)據(jù)之后采用國密算法進(jìn)行密鑰協(xié)商,協(xié)商完成建立安全通訊隧道后,采用ESP安全封裝協(xié)議進(jìn)行數(shù)據(jù)傳輸。
[0024]密鑰協(xié)商的主要功能就是在通信雙方協(xié)商SA;在傳輸數(shù)據(jù)之前,需經(jīng)過密鑰協(xié)商。
[0025]密鑰交換技術(shù)主要用于協(xié)商、建立、修改和刪除安全聯(lián)盟。
[0026]報(bào)文是通過UDP協(xié)議500端口進(jìn)行傳輸,其過程分為兩個(gè)階段,第一階段用于保護(hù)PDA設(shè)備I與接收端設(shè)備之間的通訊而使用的共享策略和密鑰,實(shí)現(xiàn)通訊雙方的身份認(rèn)證和密鑰協(xié)商,得到工作密鑰,建立ISAKMP SA,第二階段是使用第一階段建立的ISAKMP SA建立IPSEC SA,確定通訊雙方的IPSEC安全策略和會(huì)話密鑰。
[0027]第一階段身份認(rèn)證采用公私鑰密鑰對方式,通訊雙方都事先配置好對方的公鑰和自己的私鑰,此過程使用了對稱密碼算法SMl。
[0028]第二階段使用了hash進(jìn)行消息的完整性檢驗(yàn)和數(shù)據(jù)源的身份驗(yàn)證,將hash載荷添加在ISAKMP頭之后,ISAKMP之后的載荷nonce、ID等都使用對稱密碼算法的CBC模式加密。
[0029]如果設(shè)備是穿越NAT,則在第一階段部分消息需要發(fā)送NAT_D載荷,其他載荷不變。響應(yīng)方接收此包解密并認(rèn)證通過后,要將原來處理500端口狀態(tài)改為處理4500端口,后續(xù)的協(xié)商過程都使用4500端口進(jìn)行,以后500端口收到的不是新協(xié)商的包都將被丟棄。
[0030]數(shù)據(jù)傳輸采用的ESP封裝協(xié)議,該協(xié)議提供了數(shù)據(jù)的機(jī)密性、數(shù)據(jù)源鑒別、無連接的完整性、抗重放攻擊及有限信息流量的保護(hù)等,使工業(yè)設(shè)備得到很好的安全保障及數(shù)據(jù)傳輸?shù)陌踩?br>[0031]安全通訊隧道中信號(hào)發(fā)送由虛擬網(wǎng)卡驅(qū)動(dòng),所述虛擬網(wǎng)卡驅(qū)動(dòng)由Tun/tap驅(qū)動(dòng)。
[0032]做為虛擬網(wǎng)卡驅(qū)動(dòng),Tun/tap驅(qū)動(dòng)程序的數(shù)據(jù)接收和發(fā)送并不直接和真實(shí)網(wǎng)卡打交道,而是通過用戶態(tài)來轉(zhuǎn)交。在Iinux下,要實(shí)現(xiàn)核心態(tài)和用戶態(tài)數(shù)據(jù)的交互,有多種方式:可以通用socket創(chuàng)建特殊套接字,利用套接字實(shí)現(xiàn)數(shù)據(jù)交互;通過proc文件系統(tǒng)創(chuàng)建文件來進(jìn)行數(shù)據(jù)交互;還可以使用設(shè)備文件的方式,訪問設(shè)備文件會(huì)調(diào)用設(shè)備驅(qū)動(dòng)相應(yīng)的例程,設(shè)備驅(qū)動(dòng)本身就是核心態(tài)和用戶態(tài)的一個(gè)接口,Tun/tap驅(qū)動(dòng)就是利用設(shè)備文件實(shí)現(xiàn)用戶態(tài)和核心態(tài)的數(shù)據(jù)交互。
[0033]從結(jié)構(gòu)上來說,Tun/tap驅(qū)動(dòng)并不單純是實(shí)現(xiàn)網(wǎng)卡驅(qū)動(dòng),同時(shí)它還實(shí)現(xiàn)了字符設(shè)備驅(qū)動(dòng)部分。以字符設(shè)備的方式連接用戶態(tài)和核心態(tài)。
[0034]如圖2所示,Tun/tap驅(qū)動(dòng)程序中包含兩個(gè)部分,一部分是字符設(shè)備驅(qū)動(dòng),還有一部分是網(wǎng)卡驅(qū)動(dòng)部分。利用網(wǎng)卡驅(qū)動(dòng)部分接收來自TCP/IP協(xié)議棧的網(wǎng)絡(luò)分包并發(fā)送或者反過來將接收到的網(wǎng)絡(luò)分包傳給協(xié)議棧處理,而字符驅(qū)動(dòng)部分則將網(wǎng)絡(luò)分包在內(nèi)核與用戶態(tài)之間傳送,模擬物理鏈路的數(shù)據(jù)接收和發(fā)送,Tun/tap驅(qū)動(dòng)很好的實(shí)現(xiàn)了兩種驅(qū)動(dòng)的結(jié)合。
[0035]如圖3所示,Tun/tap驅(qū)動(dòng)中實(shí)現(xiàn)網(wǎng)卡驅(qū)動(dòng)的處理例程為:當(dāng)打開一個(gè)tun/tap設(shè)備時(shí),open函數(shù)將調(diào)用tUn_Chr_0pen()函數(shù),以完成一些重要的初始化過程,包括設(shè)置網(wǎng)卡驅(qū)動(dòng)部分的初始化函數(shù)、網(wǎng)絡(luò)緩沖區(qū)鏈表的初始化以及等待隊(duì)列的初始化。Tun/tap驅(qū)動(dòng)中網(wǎng)卡的注冊被嵌入了字符驅(qū)動(dòng)的1ctl例程中,它是通過對字符設(shè)備文件描述符利用自定義的1ctl設(shè)置標(biāo)志TUNSETIFF完成網(wǎng)卡的注冊的。使用1ct 1函數(shù)操作字符設(shè)備文件描述符,將調(diào)用字符設(shè)備中tun_chr_1ctl來設(shè)置已經(jīng)open好的tun/tap設(shè)備,如果設(shè)置標(biāo)志為TUNSETIFF,則調(diào)用tun_set_iff O函數(shù),此函數(shù)將完成很重要的一步操作,就是對網(wǎng)卡驅(qū)動(dòng)進(jìn)行注冊:register_netdev(&tun_>dev),網(wǎng)卡驅(qū)動(dòng)的各個(gè)處理例程的掛接在open操作時(shí)由tun_chr_open()函數(shù)初始化好了。
[0036]Tun/tap設(shè)備的工作過程:Tun/tap設(shè)備提供的虛擬網(wǎng)卡驅(qū)動(dòng),從tcp/ip協(xié)議桟的角度而言,它與真實(shí)網(wǎng)卡驅(qū)動(dòng)并沒有區(qū)別。從驅(qū)動(dòng)程序的角度來說,它與真實(shí)網(wǎng)卡的不同表現(xiàn)在tun/tap設(shè)備獲取的數(shù)據(jù)不是來自物理鏈路,而是來自用戶區(qū),Tun/tap設(shè)備驅(qū)動(dòng)通過字符設(shè)備文件來實(shí)現(xiàn)數(shù)據(jù)從用戶區(qū)的獲取。發(fā)送數(shù)據(jù)時(shí)tun/tap設(shè)備也不是發(fā)送到物理鏈路,而是通過字符設(shè)備發(fā)送至用戶區(qū),再由用戶區(qū)程序通過其他渠道發(fā)送。
[0037]如圖4所示,tun/tap設(shè)備發(fā)送數(shù)據(jù)過程:使用tun/tap網(wǎng)卡的程序經(jīng)過協(xié)議棧把數(shù)據(jù)傳送給驅(qū)動(dòng)程序,驅(qū)動(dòng)程序調(diào)用注冊好的hard_start_xmit函數(shù)發(fā)送,hard_start_xmit函數(shù)又會(huì)調(diào)用tun_net_xmit函數(shù),其中skb將會(huì)被加入skb鏈表,然后喚醒被阻塞的使用tun/tap設(shè)備字符驅(qū)動(dòng)讀數(shù)據(jù)的進(jìn)程,接著tun/tap設(shè)備的字符驅(qū)動(dòng)部分調(diào)用其tun_chr_readO過程讀取skb鏈表,并將每一個(gè)讀到的skb發(fā)往用戶區(qū),完成虛擬網(wǎng)卡的數(shù)據(jù)發(fā)送。
[0038]如圖4所示,tun/tap設(shè)備接收數(shù)據(jù)過程:當(dāng)使用write()系統(tǒng)調(diào)用向tun/tap設(shè)備的字符設(shè)備文件寫入數(shù)據(jù)時(shí),tun_chr_write函數(shù)將被調(diào)用,它使用tun_get_user從用戶區(qū)接受數(shù)據(jù),其中將數(shù)據(jù)存入skb中,然后調(diào)用關(guān)鍵的函數(shù)netif_rx(skb)將skb送給tcp/ip協(xié)議棧處理,完成虛擬網(wǎng)卡的數(shù)據(jù)接收。
[0039]整個(gè)數(shù)據(jù)傳輸過程:首先通過TOA設(shè)備的vpn軟件跟服務(wù)端路由將vpn隧道建立,然后TOA設(shè)備采集數(shù)據(jù)通過串口將數(shù)據(jù)發(fā)給3g模塊,3g模塊再通過專網(wǎng)vpn隧道將數(shù)據(jù)發(fā)到服務(wù)端,整個(gè)過程vpn實(shí)現(xiàn)了無線數(shù)據(jù)的加解密處理,確保數(shù)據(jù)的安全可靠。
[0040]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換或改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于VPDN專網(wǎng)的無線通訊方法,其特征在于,由發(fā)射端設(shè)備的3G模塊通過后端路由器進(jìn)行專網(wǎng)撥號(hào),通過預(yù)先在服務(wù)端設(shè)定的賬號(hào)、密碼與服務(wù)端進(jìn)行chap認(rèn)證或者pap認(rèn)證,認(rèn)證通過后進(jìn)入專用網(wǎng)絡(luò),利用發(fā)射端設(shè)備中安裝的vpn軟件通過IKE進(jìn)行協(xié)商,采用國密對稱密碼SMl分組算法,對密鑰協(xié)商數(shù)據(jù)以及報(bào)文數(shù)據(jù)進(jìn)行加密保護(hù),采用預(yù)共享密鑰進(jìn)行終端合法校驗(yàn)、采用DH算法進(jìn)行密鑰交換;采用密碼雜湊算法MD5對對稱密鑰生成以及完整性進(jìn)行校驗(yàn);協(xié)商完成后建立安全通訊隧道,數(shù)據(jù)傳輸通過ipsec esp協(xié)議認(rèn)證算法MD5認(rèn)證,通過專線傳輸。2.根據(jù)權(quán)利要求1所述的基于VPDN專網(wǎng)的無線通訊方法,其特征在于,所述報(bào)文數(shù)據(jù)通過UDP協(xié)議500端口傳輸?shù)倪^程,包括兩個(gè)階段,第一階段為身份認(rèn)證,采用公私鑰密鑰對方式,發(fā)射端設(shè)備與接收端設(shè)備根據(jù)對稱密碼算法SMl預(yù)先配置好對方的公鑰和自身的私鑰;第二階段為消息的完整性檢驗(yàn)和數(shù)據(jù)源的身份驗(yàn)證,利用hash進(jìn)行,將hash載荷添加在ISAKMP頭之后,使用對稱密碼算法的CBC模式對ISAKMP之后的載荷nonce、ID進(jìn)行加密。3.根據(jù)權(quán)利要求1所述的基于VPDN專網(wǎng)的無線通訊方法,其特征在于,所述安全通訊隧道中信號(hào)發(fā)送由虛擬網(wǎng)卡驅(qū)動(dòng),所述虛擬網(wǎng)卡驅(qū)動(dòng)由Tun/tap驅(qū)動(dòng)。4.根據(jù)權(quán)利要求3所述的基于VPDN專網(wǎng)的無線通訊方法,其特征在于,所述Tun/tap驅(qū)動(dòng)實(shí)現(xiàn)虛擬網(wǎng)卡驅(qū)動(dòng)的處理例程為:當(dāng)打開一個(gè)tun/tap設(shè)備時(shí),open函數(shù)將調(diào)用tun_Chr_open()函數(shù),以完成初始化過程,包括設(shè)置網(wǎng)卡驅(qū)動(dòng)的初始化函數(shù)、網(wǎng)絡(luò)緩沖區(qū)鏈表的初始化以及等待隊(duì)列的初始化;Tun/tap驅(qū)動(dòng)中網(wǎng)卡的注冊被嵌入了字符驅(qū)動(dòng)的1ctl例程中,通過對字符設(shè)備文件描述符利用自定義的1ctl設(shè)置標(biāo)志TUNSETIFF完成網(wǎng)卡注冊;使用1ctlO函數(shù)操作字符設(shè)備文件描述符,將調(diào)用字符設(shè)備中tun_Chr_1Ctl來設(shè)置已經(jīng)open好的tun/tap設(shè)備,如果設(shè)置標(biāo)志為TUNSETIFF,則調(diào)用tun_set_iff()函數(shù),對網(wǎng)卡驅(qū)動(dòng)進(jìn)行注冊register_netdev(&tun_>dev),網(wǎng)卡驅(qū)動(dòng)的各個(gè)處理例程的掛接在open操作時(shí)由tun_chr_open()函數(shù)初始化好了。5.根據(jù)權(quán)利要求3所述的基于VPDN專網(wǎng)的無線通訊方法,其特征在于,Tun/tap設(shè)備的工作過程為:Tun/tap設(shè)備驅(qū)動(dòng)通過字符設(shè)備文件來實(shí)現(xiàn)數(shù)據(jù)從用戶區(qū)獲取,發(fā)送數(shù)據(jù)時(shí)tun/tap設(shè)備是通過字符設(shè)備發(fā)送至用戶區(qū),再由用戶區(qū)程序通過其他渠道發(fā)送。6.根據(jù)權(quán)利要求3所述的基于VPDN專網(wǎng)的無線通訊方法,其特征在于,tun/tap設(shè)備發(fā)送數(shù)據(jù)過程為:tun/tap網(wǎng)卡的程序經(jīng)過協(xié)議棧把數(shù)據(jù)傳送給驅(qū)動(dòng)程序,驅(qū)動(dòng)程序調(diào)用注冊好的 hard_start_xmit 函數(shù)發(fā)送,hard_start_xmit 函數(shù)又會(huì)調(diào)用tun_net_xmit函數(shù),skb 被加入到skb鏈表,然后喚醒被阻塞的使用tun/tap設(shè)備字符驅(qū)動(dòng)讀數(shù)據(jù)的進(jìn)程,接著tun/tap設(shè)備的字符驅(qū)動(dòng)部分調(diào)用其tun_chr_read()過程讀取skb鏈表,并將每一個(gè)讀到的skb發(fā)往用戶區(qū),完成虛擬網(wǎng)卡的數(shù)據(jù)發(fā)送。7.根據(jù)權(quán)利要求3所述的基于VPDN專網(wǎng)的無線通訊方法,其特征在于,Tun/tap設(shè)備接收數(shù)據(jù)過程為:當(dāng)使用write()系統(tǒng)調(diào)用向tun/tap設(shè)備的字符設(shè)備文件寫入數(shù)據(jù)時(shí),tun_chr_write函數(shù)將被調(diào)用,使用tun_get_user從用戶區(qū)接受數(shù)據(jù),并將數(shù)據(jù)存入skb中,然后調(diào)用關(guān)鍵的函數(shù)netif_rx( skb)將skb送給tcp/ip協(xié)議桟處理,完成虛擬網(wǎng)卡的數(shù)據(jù)接收。8.根據(jù)權(quán)利要求1所述的基于VPDN專網(wǎng)的無線通訊方法,其特征在于,所述發(fā)射端設(shè)備包括手機(jī)、PDA設(shè)備。
【文檔編號(hào)】H04L29/06GK105915511SQ201610228433
【公開日】2016年8月31日
【申請日】2016年4月13日
【發(fā)明人】劉連生
【申請人】深圳市融鈔科技有限公司