網(wǎng)標(biāo)識vlanid。
[0044]具體的,本發(fā)明實施例中所述接收下聯(lián)端口發(fā)送的數(shù)據(jù),是指接入點,比如瘦接入點等路由設(shè)備。所述下聯(lián)端口,是指在網(wǎng)絡(luò)中的靠近用戶側(cè)的一端,而在網(wǎng)絡(luò)中靠近服務(wù)器的一端,則為本發(fā)明實施例中所述的上層網(wǎng)絡(luò)。
[0045]所述協(xié)議棧的封包流程,是指協(xié)議棧按照協(xié)議層的規(guī)定,對數(shù)據(jù)進行層層封包,即數(shù)據(jù)進入到每一個協(xié)議棧層時,按照該層的協(xié)議對數(shù)據(jù)添加包頭信息。在本發(fā)明實施例中忽略協(xié)議棧封包流程,可以通過修改數(shù)據(jù)進行封包的標(biāo)識信息實現(xiàn),當(dāng)然也可以通過其它方式不進行封包指令的觸發(fā),實現(xiàn)對協(xié)議棧封包流程的忽略。
[0046]在忽略所述封包流程后,將數(shù)據(jù)發(fā)送至上層網(wǎng)絡(luò)時,根據(jù)數(shù)據(jù)中的標(biāo)識信息,獲取數(shù)據(jù)對應(yīng)的虛擬局域網(wǎng)標(biāo)識vlanid,并將所述虛擬局域網(wǎng)標(biāo)識vlanid添加至所述數(shù)據(jù),從而可以將包括標(biāo)識的數(shù)據(jù)準(zhǔn)確的發(fā)送至目標(biāo)位置,并且可減少對數(shù)據(jù)的封包操作。
[0047]在步驟S102中,當(dāng)接收到上層網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)時,對接收的數(shù)據(jù)進行解析得到虛擬局域網(wǎng)標(biāo)識vlanid,并根據(jù)所述虛擬局域網(wǎng)標(biāo)識vlanid將所述數(shù)據(jù)轉(zhuǎn)發(fā)至對應(yīng)的端口。
[0048]在接收到由上層網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)時,需要對數(shù)據(jù)的目標(biāo)位置進行解析,本發(fā)明根據(jù)接收的數(shù)據(jù)解析得到虛擬局域網(wǎng)標(biāo)識vlanid,根據(jù)預(yù)設(shè)的所述虛擬局域網(wǎng)標(biāo)識與端口的對應(yīng)關(guān)系,從而將數(shù)據(jù)轉(zhuǎn)發(fā)至對應(yīng)的端口。
[0049]比如,可以根據(jù)數(shù)據(jù)解析得到源物理MAC地址以及網(wǎng)卡設(shè)備名稱,根據(jù)網(wǎng)卡設(shè)備名稱以及源物理MAC地址,結(jié)合預(yù)設(shè)的對應(yīng)關(guān)系,可以得到數(shù)據(jù)所對應(yīng)的端口,從而將數(shù)據(jù)進行分離。
[0050]本發(fā)明實施例在接收到下聯(lián)端口的數(shù)據(jù)時,忽略協(xié)議棧的封包流程,在將數(shù)據(jù)發(fā)送至上層網(wǎng)絡(luò)時,根據(jù)數(shù)據(jù)確定對應(yīng)的虛擬局域網(wǎng)標(biāo)識,并對所述數(shù)據(jù)添加所述虛擬網(wǎng)標(biāo)識,當(dāng)接收到上層網(wǎng)絡(luò)的數(shù)據(jù)時,對接收的數(shù)據(jù)進行解析得到虛擬局域網(wǎng)標(biāo)識,根據(jù)所述虛擬局域網(wǎng)標(biāo)識將數(shù)據(jù)轉(zhuǎn)發(fā)至對應(yīng)的端口,從而可以避免對數(shù)據(jù)進入?yún)f(xié)議棧封包和解包操作,提高了數(shù)據(jù)的處理效率,減少了系統(tǒng)資源的消耗,從而能夠更好的適應(yīng)多用戶同時使用的要求。
[0051]實施例二:
[0052]圖2示出了本發(fā)明第二實施例提供的根據(jù)接收的數(shù)據(jù)確定對應(yīng)的虛擬局域網(wǎng)標(biāo)識vlanid的實現(xiàn)流程,在實施例一的基礎(chǔ)上,對該步驟進行具體的介紹說如下:
[0053]在步驟S201中,在接收的數(shù)據(jù)中提取源MAC地址和源網(wǎng)卡設(shè)備名稱。
[0054]具體的,在接收的數(shù)據(jù)中提取源MAC地址和源網(wǎng)卡設(shè)備名稱,可以在網(wǎng)卡接口出口模塊添加add_vlan代碼,在sk_buff的data部分中提取源mac地址字段和源網(wǎng)卡設(shè)備名稱的字段。其中,所述sk_buff是TCP/IP協(xié)議棧最重要的結(jié)構(gòu),它是網(wǎng)絡(luò)數(shù)據(jù)報在內(nèi)核中的表現(xiàn)形式,可在其中的data數(shù)據(jù)部分中提取對應(yīng)的源mac地址和源網(wǎng)卡設(shè)備名稱的信息。
[0055]在步驟S202中,判斷所述源網(wǎng)卡設(shè)備名稱是否和預(yù)設(shè)的網(wǎng)卡設(shè)備名稱相同。
[0056]在本發(fā)明實施例中,預(yù)先設(shè)定有線網(wǎng)卡設(shè)備名稱,比如,所述預(yù)設(shè)的網(wǎng)卡設(shè)備名稱可以為Ethl,那么通過網(wǎng)卡設(shè)備名稱的比較,即可快速的進行有線網(wǎng)口的識別。
[0057]在步驟S203中,如果所述源網(wǎng)卡設(shè)備名稱和預(yù)設(shè)的網(wǎng)卡設(shè)備名稱相同,則所述虛擬局域網(wǎng)標(biāo)識vlanid為有線接口虛擬局域網(wǎng)標(biāo)識vlanid。
[0058]由于預(yù)先設(shè)定所有的有線網(wǎng)卡的名稱相同,那么,如果網(wǎng)卡設(shè)備名稱識別為預(yù)設(shè)選定的名稱,則可以快速的對有線網(wǎng)口進行識別。
[0059]通過對有線網(wǎng)卡名稱的識別,可以克服現(xiàn)有技術(shù)中對于有線用戶與無線用戶進行識別困難的問題。在現(xiàn)有技術(shù)中,對于瘦接入點所連接的有線口和無線口的數(shù)據(jù),都是統(tǒng)一轉(zhuǎn)發(fā),這樣也給管理帶來很多的不便,如果我們要提取無線用戶,就必須從用戶列表里面剔除有線用戶,以此來獲得無線用戶,再者,當(dāng)今的fitAP設(shè)備一般至少有一個無線接入點,大多數(shù)都集中在2-10個無線接入點之間,這樣分離不同的接入點用戶就更加艱難。而本發(fā)明通過網(wǎng)卡設(shè)備名稱的識別,即可快速的識別有線接口。
[0060]比如,如果預(yù)設(shè)的源網(wǎng)卡設(shè)備名稱為Ethl,當(dāng)解析所述設(shè)備的網(wǎng)卡設(shè)備名稱為Ethl時,則根據(jù)所述網(wǎng)卡設(shè)備名稱即可確定該接口為有線口 Ethl的vlanid。
[0061]在步驟S204中,如果所述源網(wǎng)卡設(shè)備名稱和預(yù)設(shè)的網(wǎng)卡設(shè)備名稱不同,則根據(jù)所述源MAC地址查找對應(yīng)的無線接口,根據(jù)所述無線接口確定對應(yīng)的虛擬局域網(wǎng)標(biāo)識
vlanido
[0062]如果比較得到網(wǎng)卡設(shè)備名稱與預(yù)設(shè)的網(wǎng)卡設(shè)備名稱不同,則表示當(dāng)前接口為無線接口,則需要進一步根據(jù)源mac地址與虛擬局域網(wǎng)標(biāo)識vlanid的對應(yīng)關(guān)系,進一步確定無線接口的虛擬局域網(wǎng)標(biāo)識vlanid。即不同的源mac地址對應(yīng)不同的虛擬局域網(wǎng)標(biāo)識vlanid。從而能夠?qū)⒉煌臒o線接口進行區(qū)分。
[0063]在區(qū)分有線接口的虛擬局域網(wǎng)標(biāo)識vlanid,以及不同的無線接口的虛擬局域網(wǎng)標(biāo)識vlanid,還包括進一步將數(shù)據(jù)添加虛擬局域網(wǎng)標(biāo)識vlanid的步驟,包括:
[0064]在數(shù)據(jù)存儲區(qū)中,將所述數(shù)據(jù)向后推移,在數(shù)據(jù)存儲區(qū)的數(shù)據(jù)存儲位置之前得到結(jié)構(gòu)控制頭空間;將所述結(jié)構(gòu)控制頭空間清零賦值,寫入對應(yīng)的虛擬局域網(wǎng)標(biāo)識vlanid。
[0065]可以通過skb_push指令將數(shù)據(jù)區(qū)向后推,為添加vlan_ethhdr結(jié)構(gòu)控制頭存儲空間,對vlan_ethhdr結(jié)構(gòu)控制頭清空賦值后,將相應(yīng)的虛擬局域網(wǎng)標(biāo)識vlanid寫入至h_vlan_TCI元素中即可完成對數(shù)據(jù)添加虛擬局域網(wǎng)標(biāo)識vlanid。
[0066]與實施例一中步驟S102對應(yīng)的,所述當(dāng)接收到上層網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)時,對接收的數(shù)據(jù)進行解析得到虛擬局域網(wǎng)標(biāo)識vlanid,并根據(jù)所述虛擬局域網(wǎng)標(biāo)識vlanid將所述數(shù)據(jù)轉(zhuǎn)發(fā)至對應(yīng)的端口步驟包括:
[0067]當(dāng)接收到上層網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)時,解析所述數(shù)據(jù)的結(jié)構(gòu)控制頭,得到所述數(shù)據(jù)對應(yīng)的網(wǎng)絡(luò)接口 ;將所述數(shù)據(jù)發(fā)送至對應(yīng)的網(wǎng)絡(luò)接口。
[0068]與上述添加虛擬局域網(wǎng)標(biāo)識vlanid相對應(yīng)的,對于接收的數(shù)據(jù)進行解析時,根據(jù)結(jié)構(gòu)控制頭的結(jié)構(gòu),在網(wǎng)卡接口接入添加remove_vlan代碼,當(dāng)網(wǎng)絡(luò)設(shè)備入口收到數(shù)據(jù)包時,先提取結(jié)構(gòu)控制頭的結(jié)構(gòu)數(shù)據(jù),根據(jù)提取的數(shù)據(jù)中的虛擬局域網(wǎng)標(biāo)識vlanid確定是發(fā)往哪個網(wǎng)絡(luò)接口,比如有線網(wǎng)絡(luò)接口以及具體的無線網(wǎng)絡(luò)接口等,將數(shù)據(jù)轉(zhuǎn)發(fā)至對應(yīng)的網(wǎng)絡(luò)接口。
[0069]本發(fā)明實施例在實施例一的基礎(chǔ)上,進一步對有線網(wǎng)絡(luò)接口數(shù)據(jù)與無線網(wǎng)絡(luò)接口數(shù)據(jù),以及不同的無線網(wǎng)絡(luò)接口數(shù)據(jù)進行區(qū)分,在有效的減少網(wǎng)絡(luò)設(shè)備的系統(tǒng)資源消耗的同時,也提高了數(shù)據(jù)區(qū)分的便利性。
[0070]實施例三:
[0071]圖3示出了本發(fā)明第三實施例提供的端口數(shù)據(jù)分離的結(jié)構(gòu)示意圖,詳述如下:
[0072]本發(fā)明實施例所述端口數(shù)據(jù)分離裝置,包括:
[0073]標(biāo)識添加單元301,用于在接收到下聯(lián)端口發(fā)送的數(shù)據(jù)時,忽略協(xié)議棧封包流程,并在將所述數(shù)據(jù)發(fā)送至上層網(wǎng)絡(luò)時,根據(jù)接收的數(shù)據(jù)確定對應(yīng)的虛擬局域網(wǎng)標(biāo)識vlanid,并將所述數(shù)據(jù)添加虛擬局域網(wǎng)標(biāo)識vlanid ;
[0074]標(biāo)識解析單元302,用于當(dāng)接收到上層網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)時,對接收的數(shù)據(jù)進行解析得到虛擬局域網(wǎng)標(biāo)識vlanid,并根據(jù)所述虛擬局域網(wǎng)標(biāo)識vlanid將所述數(shù)據(jù)轉(zhuǎn)發(fā)至對應(yīng)的端口。
[0075]優(yōu)選的,所述標(biāo)識添加單元包括:
[0076]提取子單元,用于在接收的數(shù)據(jù)中提取源MAC地址和源網(wǎng)卡設(shè)備名稱;
[0077]判斷子單元,用于判斷所述源網(wǎng)卡設(shè)備名稱是否和預(yù)設(shè)的網(wǎng)卡設(shè)備名稱相同;
[0078]第一標(biāo)識子單元,用于如果所述源網(wǎng)卡設(shè)備名