本發(fā)明專利技術(shù)提供一種用戶態(tài)以太網(wǎng)協(xié)議實現(xiàn)無線上網(wǎng)的方法,所述方法包括:linux內(nèi)核接收到無線網(wǎng)卡發(fā)送的802.11協(xié)議數(shù)據(jù)報文后,由linux內(nèi)核從802.11協(xié)議數(shù)據(jù)報文中截取802.3協(xié)議數(shù)據(jù)報文,并將截取到的802.3協(xié)議數(shù)據(jù)報文發(fā)送給linux用戶態(tài)程序進行處理;linux用戶態(tài)程序?qū)⑻幚砗蟮?02.3協(xié)議數(shù)據(jù)報文發(fā)送給linux內(nèi)核,由linux內(nèi)核將802.3協(xié)議數(shù)據(jù)報文封裝為802.11協(xié)議數(shù)據(jù)報文后發(fā)送給無線網(wǎng)卡進行轉(zhuǎn)發(fā)。本發(fā)明專利技術(shù)通過內(nèi)核對無線網(wǎng)卡的支持,使用tap/tun實現(xiàn)內(nèi)核與用戶態(tài)通信,在內(nèi)核中進行無線報文收發(fā)和報文協(xié)議轉(zhuǎn)換,在用戶態(tài)實現(xiàn)對無線流程控制以及數(shù)據(jù)報文處理,從而實現(xiàn)使原本僅支持802.3協(xié)議的用戶態(tài)程序?qū)崿F(xiàn)802.11無線兼容。
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)涉及網(wǎng)絡(luò)通信
,尤其涉及。
技術(shù)介紹
現(xiàn)有Iinux用戶態(tài)程序支持IEEE802.3協(xié)議,因此可以做到對802.3數(shù)據(jù)流量的處理以及功能的使用,但是用戶態(tài)程序不支持IEEE802.11等無線協(xié)議,也就無法處理802.11無線數(shù)據(jù)流量,而且因為流程較復(fù)雜,移植難度大,用戶態(tài)程序一般沒有進行兼容。隨著移動終端用戶的不斷增加,移動互聯(lián)網(wǎng)的不斷發(fā)展,無線用戶的比重逐年增加,用戶態(tài)支持無線上網(wǎng)已經(jīng)是必然考慮的趨勢,不支持無線將會無法滿足廣大用戶的需求。目前僅有極少部分用戶態(tài)程序?qū)o線數(shù)據(jù)流量處理進行了移植,但是由于整體無線流程太多,不同的無線網(wǎng)卡驅(qū)動對應(yīng)不同的自有驅(qū)動流程,所以一般只針對特定的無線網(wǎng)卡做特定處理。而用戶態(tài)移植了特定的無線網(wǎng)卡,雖滿足了用戶的需求,但是該功能與所支持的無線網(wǎng)卡形成了綁定關(guān)系,必然導(dǎo)致其兼容性,擴展性,可維護性不太好。
技術(shù)實現(xiàn)思路
為了解決Iinux用戶態(tài)程序無法處理802.11數(shù)據(jù)流量的問題,本專利技術(shù)提出了,具體方案如下: ,其特征在于,所述方法包括: Iinux內(nèi)核接收到無線網(wǎng)卡發(fā)送的802.11協(xié)議數(shù)據(jù)報文后,由Iinux內(nèi)核從802.11協(xié)議數(shù)據(jù)報文中截取802.3協(xié)議數(shù)據(jù)報文,并將截取到的802.3協(xié)議數(shù)據(jù)報文發(fā)送給Iinux用戶態(tài)程序進行處理; Iinux用戶態(tài)程序?qū)⑻幚砗蟮?02.3協(xié)議數(shù)據(jù)報文發(fā)送給Iinux內(nèi)核,由Iinux內(nèi)核將802.3協(xié)議數(shù)據(jù)報文封裝為802.11協(xié)議數(shù)據(jù)報文后發(fā)送給無線網(wǎng)卡進行轉(zhuǎn)發(fā)。優(yōu)選的,所述Iinux內(nèi)核接收到無線網(wǎng)卡發(fā)送的802.11協(xié)議數(shù)據(jù)報文后,由Iinux內(nèi)核從802.11協(xié)議數(shù)據(jù)報文中截取802.3協(xié)議數(shù)據(jù)報文具體為: 利用ieee80211_deliver_rx函數(shù)截取802.3協(xié)議數(shù)據(jù)報文并進行接收。優(yōu)選的,所述并將截取到的802.3協(xié)議數(shù)據(jù)報文發(fā)送給Iinux用戶態(tài)程序具體為: 利用虛擬網(wǎng)絡(luò)設(shè)備tun/tap進行發(fā)送。優(yōu)選的,所述Iinux用戶態(tài)程序?qū)⑻幚砗蟮?02.3協(xié)議數(shù)據(jù)報文發(fā)送給Iinux內(nèi)核具體為: 利用虛擬網(wǎng)絡(luò)設(shè)備tun/tap進行發(fā)送。優(yōu)選的,所述由Iinux內(nèi)核將802.3協(xié)議數(shù)據(jù)報文封裝為802.11協(xié)議數(shù)據(jù)報文后發(fā)送給無線網(wǎng)卡進行轉(zhuǎn)發(fā)具體為: 利用ieee80211_subif_start_xmit函數(shù)截取802.3協(xié)議數(shù)據(jù)報文并進行發(fā)送。本專利技術(shù)利用Iinux內(nèi)核對無線網(wǎng)卡的支持,由內(nèi)核提取無線數(shù)據(jù)流量中的相關(guān)數(shù)據(jù),通過內(nèi)核與用戶態(tài)的通信交換相關(guān)數(shù)據(jù)等特性,在用戶態(tài)實現(xiàn)對無線流程控制以及數(shù)據(jù)報文處理,實現(xiàn)了 Iinux操作系統(tǒng)中僅支持802.3用戶態(tài)協(xié)議類型的用戶態(tài)程序可以達到使用無線WIFI上網(wǎng)的目的?!揪唧w實施方式】為使本專利技術(shù)實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本專利技術(shù)實施例,對本專利技術(shù)實施例中的技術(shù)方案進行清楚、完整的描述,顯然,所描述的實施例僅僅是本專利技術(shù)一部分實施例,而不是全部的實施例。基于本專利技術(shù)的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他的實施例,都屬于本專利技術(shù)保護的范圍。本專利技術(shù)提供的,具體方法如下所述: Iinux內(nèi)核接收到無線網(wǎng)卡發(fā)送的802.11協(xié)議數(shù)據(jù)報文后,由Iinux內(nèi)核從802.11協(xié)議數(shù)據(jù)報文中截取802.3協(xié)議數(shù)據(jù)報文,并將截取到的802.3協(xié)議數(shù)據(jù)報文發(fā)送給Iinux用戶態(tài)程序進行處理; Iinux用戶態(tài)程序?qū)⑻幚砗蟮?02.3協(xié)議數(shù)據(jù)報文發(fā)送給Iinux內(nèi)核,由Iinux內(nèi)核將802.3協(xié)議數(shù)據(jù)報文封裝為802.11協(xié)議數(shù)據(jù)報文后發(fā)送給無線網(wǎng)卡進行轉(zhuǎn)發(fā)。其中,所述Iinux內(nèi)核接收到無線網(wǎng)卡發(fā)送的802.11協(xié)議數(shù)據(jù)報文后,由Iinux內(nèi)核從802.11協(xié)議數(shù)據(jù)報文中截取802.3協(xié)議數(shù)據(jù)報文具體為:利用ieee80211_deliver_rx函數(shù)截取802.3協(xié)議數(shù)據(jù)報文并進行接收。在Iinux內(nèi)核接收到來自無線網(wǎng)卡的IEEE802.11協(xié)議的數(shù)據(jù)報文后,由于Iinux用戶態(tài)程序不支持處理IEEE802.11協(xié)議的數(shù)據(jù)報文,僅支持處理IEEE802.3協(xié)議的數(shù)據(jù)報文,因此需要由Iinux內(nèi)核將IEEE802.11協(xié)議的數(shù)據(jù)報文轉(zhuǎn)化為IEEE802.3協(xié)議的數(shù)據(jù)報文,這里通過利用net/mac80211/rx.c中的ieee80211_deliver_rx函數(shù)來截取并接收IEEE802.3協(xié)議的數(shù)據(jù)報文。其中,所述并將截取到的802.3協(xié)議數(shù)據(jù)報文發(fā)送給Iinux用戶態(tài)程序具體為:利用虛擬網(wǎng)絡(luò)設(shè)備tun/tap進行發(fā)送。在Iinux內(nèi)核截取到的802.3協(xié)議的數(shù)據(jù)報文后,利用虛擬網(wǎng)絡(luò)設(shè)備tun/tap與Iinux用戶態(tài)進行通信,依靠tun_net_xmit函數(shù)即可將截取到的802.3協(xié)議的數(shù)據(jù)報文發(fā)送給Iinux用戶態(tài)程序。其中,所述Iinux用戶態(tài)程序?qū)⑻幚砗蟮?02.3協(xié)議數(shù)據(jù)報文發(fā)送給Iinux內(nèi)核具體為:利用虛擬網(wǎng)絡(luò)設(shè)備tun/tap進行發(fā)送。Iinux用戶態(tài)程序?qū)μ幚砗蟮?02.3協(xié)議數(shù)據(jù)報文進行發(fā)送給Iinux內(nèi)核同樣是利用虛擬網(wǎng)絡(luò)設(shè)備tun/tap與Iinux用戶態(tài)進行通信,Iinux內(nèi)核通過tun_get_usr函數(shù)接收處理后的802.3協(xié)議的數(shù)據(jù)報文。其中,所述由Iinux內(nèi)核將802.3協(xié)議數(shù)據(jù)報文封裝為802.11協(xié)議數(shù)據(jù)報文后發(fā)送給無線網(wǎng)卡進行轉(zhuǎn)發(fā)具體為:利用ieee80211_subif_start_xmit函數(shù)截取802.3協(xié)議數(shù)據(jù)報文并進行發(fā)送。在Iinux內(nèi)核接收到來自Iinux用戶態(tài)程序的IEEE802.3協(xié)議的數(shù)據(jù)報文后,也同樣需要由Iinux內(nèi)核將IEEE802.3協(xié)議的數(shù)據(jù)報文轉(zhuǎn)化為IEEE802.11協(xié)議的數(shù)據(jù)報文,再由無線網(wǎng)卡轉(zhuǎn)發(fā)出去,這里通過利用net/mac80211/tx.c中的ieee80211_subif_start_xmit函數(shù)來截取并發(fā)送IEEE802.3協(xié)議的數(shù)據(jù)報文。具體實施例: 首先在硬件中添加無線網(wǎng)卡,在對應(yīng)的Iinux內(nèi)核(下述簡稱內(nèi)核)配置中打開無線網(wǎng)卡驅(qū)動支持,如rtl8188無線網(wǎng)卡,在內(nèi)核編譯menuconfig時開啟driver下wireless中對應(yīng)的rt18188\rt18192項,然后可使內(nèi)核上支持該無線網(wǎng)卡的無線功能。無線網(wǎng)卡的內(nèi)核驅(qū)動會注冊網(wǎng)口,這里注冊的網(wǎng)口為wlanO,由于無線網(wǎng)卡的報文需要發(fā)送到Iinux用戶態(tài)程序(下述簡稱用戶態(tài))來完成相關(guān)業(yè)務(wù),所以需要提供給用戶態(tài)對應(yīng)的操作網(wǎng)口,那么需要在內(nèi)核網(wǎng)口注冊后,在用戶態(tài)對應(yīng)注冊同名網(wǎng)口,即wlanO,同時保證內(nèi)核與用戶態(tài)對應(yīng)接口的索引、配置(ip、mac等)一致。內(nèi)核與用戶態(tài)的報文拷貝通過虛擬網(wǎng)卡tun/tap實現(xiàn),tun/tap在內(nèi)核和用戶態(tài)都有對應(yīng)的報文的讀出和寫入,從而實現(xiàn)內(nèi)核與用戶態(tài)通信;在用戶態(tài)注冊wlanO對應(yīng)的tap_wlan,使它們有對應(yīng)關(guān)系,彼此可以互相找到,在tap_wlan0接口上無配置信息,只作為連接內(nèi)核與用戶態(tài)的通道。配置完成后,wlanO對應(yīng)的數(shù)據(jù)報文的接收和發(fā)送都會走net/mac80211/rx.c中的 ieee80211_deliver_rx 和 net/mac80211/tx.c 中的 ieee80211_s本文檔來自技高網(wǎng)...
【技術(shù)保護點】
一種用戶態(tài)以太網(wǎng)協(xié)議實現(xiàn)無線上網(wǎng)的方法,其特征在于,所述方法包括:linux內(nèi)核接收到無線網(wǎng)卡發(fā)送的802.11協(xié)議數(shù)據(jù)報文后,由linux內(nèi)核從802.11協(xié)議數(shù)據(jù)報文中截取802.3協(xié)議數(shù)據(jù)報文,并將截取到的802.3協(xié)議數(shù)據(jù)報文發(fā)送給linux用戶態(tài)程序進行處理;linux用戶態(tài)程序?qū)⑻幚砗蟮?02.3協(xié)議數(shù)據(jù)報文發(fā)送給linux內(nèi)核,由linux內(nèi)核將802.3協(xié)議數(shù)據(jù)報文封裝為802.11協(xié)議數(shù)據(jù)報文后發(fā)送給無線網(wǎng)卡進行轉(zhuǎn)發(fā)。
【技術(shù)特征摘要】
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:高福亮,李悅磊,
申請(專利權(quán))人:北京漢柏科技有限公司,
類型:發(fā)明
國別省市:北京;11
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。