專利名稱::基于Linux內(nèi)核網(wǎng)絡(luò)子系統(tǒng)的虛擬網(wǎng)絡(luò)塊框架的構(gòu)建方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于計算機操作系統(tǒng)及計算機網(wǎng)絡(luò),具體地講是基于Linux內(nèi)核網(wǎng)絡(luò)子系統(tǒng)的虛擬網(wǎng)絡(luò)塊框架的構(gòu)建方法。
背景技術(shù):
:在通信網(wǎng)絡(luò)日益復(fù)雜,各種網(wǎng)絡(luò)設(shè)備和新業(yè)務(wù)大量涌現(xiàn),網(wǎng)絡(luò)正在進化成一個可以提供數(shù)據(jù)、語音和視頻內(nèi)容的多元混合體,對網(wǎng)絡(luò)業(yè)務(wù)流量的處理能力提出了更高的要求。虛擬網(wǎng)絡(luò)塊(virtualnetworkblock)框架建立在Netgraph機制上,Netgraph機制是一個遵循Unix頭見范的內(nèi)核子系統(tǒng),它由許多模塊組成,每個模塊完成一定的功能。它由nodes和edges纟且成,數(shù)才居5危沿著edge從一個node力充向另夕|^一個node。當node收到數(shù)據(jù)包的時候,執(zhí)行一定的數(shù)據(jù)包處理操作,然后轉(zhuǎn)發(fā)數(shù)據(jù)包到另外一個node。在這個數(shù)據(jù)包處理才喿作中,可以是簡單的添加和刪除數(shù)據(jù)包頭,也可以添加更具體的處理操作(例如數(shù)據(jù)包的內(nèi)容合成,4交,驗等)。Netgraph系統(tǒng)設(shè)計思想采用了SystemV的流,技術(shù),因此具有更快的速度、靈活性和更高的處理效率。Netgraph運行速度快是因為它完全運行在內(nèi)核里,在ether-input接受到網(wǎng)卡傳遞過來的數(shù)據(jù)包以后就交給了netgraph,利用內(nèi)核的高優(yōu)先級,在盡可能的^f氐層截獲數(shù)據(jù)包進^f亍處理。另外它采用了函數(shù)式調(diào)用,數(shù)據(jù)包在從一個node傳遞到另外一個node的時候不需要數(shù)據(jù)包的復(fù)制操作,而只是傳遞了存放數(shù)據(jù)包內(nèi)容的內(nèi)存的地址,這樣就增加了系統(tǒng)設(shè)計的靈活性同時也提高了運行速度。
發(fā)明內(nèi)容本發(fā)明的目的是提供一種面向?qū)ο蟮脑O(shè)計方法引入內(nèi)核設(shè)計中,所有的網(wǎng)絡(luò)操作處理都是模塊化,通過不同模塊之間的組合實現(xiàn)網(wǎng)絡(luò)子系統(tǒng)的高效靈活,采用"低層處理,,的策略,提高內(nèi)核處理核心數(shù)據(jù)的能力,有效的提升各種應(yīng)用的性能的基于Linux內(nèi)核網(wǎng)絡(luò)子系統(tǒng)的虛擬網(wǎng)絡(luò)塊框架的構(gòu)建方法為了實現(xiàn)上述目的,本發(fā)明所采用的方法是第一步驟虛擬網(wǎng)絡(luò)塊框架的構(gòu)成每一個虛擬網(wǎng)絡(luò)塊由一個處理單元(TU)節(jié)點和一個或多個互連單元(IU)鉤子組成凄t據(jù)包通過雙向的互連單元從一個處理節(jié)點流向另一個處理節(jié)點,每一個虛擬網(wǎng)絡(luò)塊實例節(jié)點處理接受到的數(shù)據(jù)包,然后傳遞到下一個節(jié)點,每個節(jié)點是一個簡單的包處理過程,如果要在網(wǎng)絡(luò)軟件框架中實現(xiàn)復(fù)雜的處理過程需要多個虛擬網(wǎng)絡(luò)塊模塊組合完成,通過不同的配置實現(xiàn)重用虛擬網(wǎng)絡(luò)塊模塊;鉤子作為互連單元(UT)將不同的虛擬網(wǎng)絡(luò)塊進行連接,處理單元(TU)通過鉤子來實現(xiàn)數(shù)據(jù)流和控制消息在虛擬網(wǎng)絡(luò)塊節(jié)點之間的傳遞;第二步驟虛擬網(wǎng)絡(luò)塊框架的數(shù)據(jù)流及接口構(gòu)成虛擬網(wǎng)絡(luò)塊框架中數(shù)據(jù)流通過兩類API來傳遞控制消息和數(shù)據(jù)消息1)數(shù)據(jù)API:在內(nèi)核或用戶空間之間交換凝:據(jù)包,數(shù)據(jù)包沿著鉤子從一個節(jié)點傳遞到另一個節(jié)點,每一個節(jié)點決定如何處理來至于自己鉤子的數(shù)據(jù)包;2)控制API:在內(nèi)核或用戶空間之間傳遞控制消息進行虛擬網(wǎng)絡(luò)塊的管理,節(jié)點通過控制API向另一個節(jié)點直接發(fā)送消息或ASCII指令。在虛擬網(wǎng)絡(luò)塊框架中,虛擬網(wǎng)絡(luò)塊的控制包括虛擬網(wǎng)絡(luò)塊節(jié)點之間的控制和用戶空間虛擬網(wǎng)絡(luò)塊控制進程對內(nèi)核內(nèi)虛擬網(wǎng)絡(luò)塊的控制;第三步驟構(gòu)建虛擬網(wǎng)絡(luò)塊框架的核心模塊第四步驟構(gòu)建虛擬網(wǎng)絡(luò)塊框架首先使用(:或0++開發(fā)滿足特性需求的虛擬網(wǎng)絡(luò)塊模塊;第二步,在控制平面或數(shù)據(jù)平面中開發(fā)相應(yīng)的控制模塊;然后,定義控制^f莫塊與內(nèi)核內(nèi)虛擬網(wǎng)絡(luò)塊節(jié)點以及虛擬網(wǎng)絡(luò)塊節(jié)點之間的控制消息;最后,建立起虛擬網(wǎng)絡(luò)塊節(jié)點之間的圖形方案,并建立起與功能對應(yīng)的虛擬網(wǎng)絡(luò)塊框架。本發(fā)明基于Linux內(nèi)核的網(wǎng)絡(luò)子系統(tǒng),進行了模塊化的虛擬網(wǎng)絡(luò)塊框架設(shè)計,其主要技術(shù)優(yōu)勢如下1)在內(nèi)核空間內(nèi),虛擬網(wǎng)絡(luò)塊作為內(nèi)核內(nèi)的網(wǎng)絡(luò)子系統(tǒng),^f吏用網(wǎng)絡(luò)協(xié)議模塊的概念設(shè)計高效的內(nèi)核,所有的操作處理都是模塊化,每個模塊完成一定的功能,執(zhí)行一定的數(shù)據(jù)包處理操作,通過不同模塊之間的組合實現(xiàn)網(wǎng)絡(luò)子系統(tǒng)的高效靈活,同時任何模塊的處理可以動態(tài)的增加到內(nèi)核模塊中。2)虛擬網(wǎng)絡(luò)塊運行速度快是因為它完全運行在內(nèi)核里,利用內(nèi)核的高優(yōu)先級,在盡可能的低層截獲數(shù)據(jù)包進行處理。整個過程中采用了"低層處理"的策略,盡可能在最低層能夠把非法的數(shù)據(jù)包屏蔽掉,在最低層對內(nèi)存進行釋放。整個核心數(shù)據(jù)處理流程全部工作在內(nèi)核一級,包括在物理層、IP層、TCP層,把相對耗費時間的匹配過程交給了用戶進程去處理。3)虛擬網(wǎng)絡(luò)塊的設(shè)計采用了面向?qū)ο蟮腲:計,整個數(shù)據(jù)的處理過程采用了UnixSystemV的流技術(shù),所有數(shù)據(jù)包處理過程中都沒有復(fù)制的操作。數(shù)據(jù)包的傳送過程全部依靠指針的調(diào)用來定位。圖1為本發(fā)明虛擬網(wǎng)絡(luò)塊框架組成圖。圖2為本發(fā)明虛擬網(wǎng)絡(luò)塊消息接口圖。圖3為本發(fā)明數(shù)據(jù)流流入虛擬網(wǎng)絡(luò)塊流程圖。圖4為本發(fā)明數(shù)據(jù)包流出虛擬網(wǎng)絡(luò)塊流程圖。圖5為本發(fā)明NG—RAW框圖。圖6為本發(fā)明PPP輸入過程的虛擬網(wǎng)絡(luò)塊框架圖。圖7為本發(fā)明PPP輸出過程的虛擬網(wǎng)絡(luò)塊框架圖。圖8為本發(fā)明不同模塊特性下虛擬網(wǎng)絡(luò)塊模塊框圖。其中a-NG—SOCKET、b-NG—ETHER、c-NG—TEE、d-NG—IFACE、e-NG—EIFACE、f-NG—KS0CKET、g-NG—ETF、h-NG—VLAN。圖9為本發(fā)明在不同NGCTL命令下虛擬網(wǎng)絡(luò)塊框圖。其中a-MKPEER、b-N廳、c-C0NNECT、d-SHUTD0WN、e-MSG。具體實施方式下面結(jié)合附圖對本發(fā)明作進一步的詳細描述本發(fā)明虛擬網(wǎng)絡(luò)塊(virtualnetworkframework)框架建立在Linuxkernl的網(wǎng)絡(luò)子系統(tǒng)基礎(chǔ)上,整個數(shù)據(jù)的處理過程采用了UnixSystemV的流技術(shù),所有數(shù)據(jù)包處理過程中都沒有復(fù)制的操作。數(shù)據(jù)包的傳送過程全部依靠指針的調(diào)用來定位。在整個過程中我們采用了"低層處理"的策略,盡可能在最低層能夠把非法的數(shù)據(jù)包屏蔽掉,在最低層對內(nèi)存進行釋放。整個核心數(shù)據(jù)處理流程全部工作在內(nèi)核一級,包括在物理層、IP層、TCP層,把相對耗費時間的匹配過程交給了用戶進程去處理。虛擬網(wǎng)絡(luò)塊框架的構(gòu)成虛擬網(wǎng)絡(luò)塊類似于一個網(wǎng)絡(luò)拓樸圖,所有的數(shù)據(jù)包從一個地方流向另一個地方,可以根據(jù)需要增加和刪除node,數(shù)據(jù)以數(shù)據(jù)流的形式進行傳遞。而且如果需要添加新的過濾策略,加密算法,還有其他特殊處理的時候,只需要在虛擬網(wǎng)絡(luò)塊系統(tǒng)中增加一個新的node,在這個node里邊加入一些特殊的操作,就可以實現(xiàn)這樣的功能。正是因為虛擬網(wǎng)絡(luò)塊良好的擴展性,我們可以很方便地提供多協(xié)議的支持。虛擬網(wǎng)絡(luò)塊框架作為內(nèi)核內(nèi)的網(wǎng)絡(luò)子系統(tǒng),使用網(wǎng)絡(luò)協(xié)議才莫塊的概念設(shè)計高效的內(nèi)核,所有的操作處理都是模塊化,通過不同模塊之間的組合實現(xiàn)網(wǎng)絡(luò)子系統(tǒng)的高效靈活,同時任何模塊的處理可以動態(tài)的增加到內(nèi)核模塊中。每一個虛擬網(wǎng)絡(luò)塊由一個處理單元(TU)節(jié)點和一個或多個互連單元(IU)鉤子組成。數(shù)據(jù)包通過雙向的互連單元從一個處理節(jié)點流向另一個處理節(jié)點,沒一個虛擬網(wǎng)絡(luò)塊實例節(jié)點處理接受到的數(shù)據(jù)包,然后傳遞到下一個節(jié)點,每個節(jié)點是一個簡單的包處理過程,如果要在網(wǎng)絡(luò)軟件框架中實現(xiàn)復(fù)雜的處理過程需要多個虛擬網(wǎng)絡(luò)塊模塊組合完成,通過不同的配置實現(xiàn)重用虛擬網(wǎng)絡(luò)塊模塊。鉤子作為互連單元(UT)將不同的虛擬網(wǎng)絡(luò)塊進行連接,處理單元(TU)通過鉤子來實現(xiàn)數(shù)據(jù)流和控制消息在虛擬網(wǎng)絡(luò)塊節(jié)點之間的傳遞(圖1)。虛擬網(wǎng)絡(luò)塊處理單元-實例節(jié)點需要滿足下列屬性1、每個虛擬網(wǎng)絡(luò)塊的實例在某一時刻僅i^能處理一個數(shù)據(jù)包。2、每個虛擬網(wǎng)絡(luò)塊實例節(jié)點參數(shù)是局部變量。3、虛擬網(wǎng)絡(luò)塊實例節(jié)點根據(jù)節(jié)點參數(shù)的不同來定義操作4、虛擬網(wǎng)絡(luò)塊實例節(jié)點處理簡單的操作,例如去掉或增加報文頭、根據(jù)相關(guān)的表確定數(shù)據(jù)包的流向。5、虛擬網(wǎng)絡(luò)塊實例節(jié)點至少有一個鉤子連接到另一個激活的節(jié)點時,節(jié)點才能激活。虛擬網(wǎng)絡(luò)塊連接單元-鉤子需要滿足下列屬性1、每個激活節(jié)點至少連接有一個鉤子。2、鉤子與使用鉤子的節(jié)點是完全獨立的。3、鉤子必須保證虛擬網(wǎng)絡(luò)塊實例節(jié)點在某一時刻4又僅處理一個數(shù)據(jù)包。虛擬網(wǎng)絡(luò)塊框架的數(shù)據(jù)流及接口虛擬網(wǎng)絡(luò)塊框架中數(shù)據(jù)流通過兩類API來傳遞控制消息和數(shù)據(jù)消息1、數(shù)據(jù)API:在內(nèi)核或用戶空間之間交換數(shù)據(jù)包,數(shù)據(jù)包沿著鉤子從一個節(jié)點傳遞到另一個節(jié)點,每一個節(jié)點決定如何處理來至于自己鉤子的數(shù)據(jù)包。2、控制API:在內(nèi)核或用戶空間之間傳遞控制消息進行虛擬網(wǎng)絡(luò)塊的管理,節(jié)點通過控制API向另一個節(jié)點直接發(fā)送消息或ASCII指令。在虛擬網(wǎng)絡(luò)塊框架中,虛擬網(wǎng)絡(luò)塊的控制包括虛擬網(wǎng)絡(luò)塊節(jié)點之間的控制和用戶空間虛擬網(wǎng)絡(luò)塊控制進程對內(nèi)核內(nèi)虛擬網(wǎng)絡(luò)塊的控制。上述的兩類API,既可以在用戶空間控制內(nèi)核內(nèi)的虛擬網(wǎng)絡(luò)塊,并且與虛擬網(wǎng)絡(luò)塊交換數(shù)據(jù);又可以在內(nèi)核內(nèi)直接在互連的虛擬網(wǎng)絡(luò)塊之間交換數(shù)據(jù),并且在不同的虛擬網(wǎng)絡(luò)塊之間傳遞控制命令??刂葡⒑蛿?shù)據(jù)消息又根據(jù)運行的空間不同分為用戶空間API和內(nèi)核API。用戶空間的API基于BSD套接字API,用來配置虛擬網(wǎng)絡(luò)塊節(jié)點并在節(jié)點之間傳遞數(shù)據(jù)包,使用新的協(xié)議簇PF-NETGRAPH以及新的sockaddr-ng數(shù)據(jù)結(jié)構(gòu)。對于使用NGCTL構(gòu)建虛擬網(wǎng)絡(luò)塊框架使用libnetgraph庫,使用NG-S0CKET通過內(nèi)核API在虛擬網(wǎng)絡(luò)塊節(jié)點之間傳遞數(shù)據(jù)包。內(nèi)核API在內(nèi)核空間內(nèi)不同的虛擬網(wǎng)絡(luò)塊節(jié)點之間傳輸數(shù)據(jù)并傳輸控制消息。虛擬網(wǎng)絡(luò)塊框架的核心模塊表l虛擬網(wǎng)絡(luò)塊核心模塊表<table>complextableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>虛擬網(wǎng)絡(luò)塊框架的構(gòu)建方法為了發(fā)揮虛擬網(wǎng)絡(luò)塊高效、高性能的特點,在本發(fā)明的軟件框架中,提供了一系列的標準虛擬網(wǎng)絡(luò)塊節(jié)點(如上所述),構(gòu)建虛擬網(wǎng)絡(luò)塊框架首先要根據(jù)功能特性,使用C或0++開發(fā)滿足特性需求的虛擬網(wǎng)絡(luò)塊模塊;第二步,在控制平面或數(shù)據(jù)平面中開發(fā)相應(yīng)的控制模塊;然后,定義控制模塊與內(nèi)核內(nèi)虛擬網(wǎng)絡(luò)塊節(jié)點以及虛擬網(wǎng)絡(luò)塊節(jié)點之間的控制消息;最后,建立起虛擬網(wǎng)絡(luò)塊節(jié)點之間的圖形方案,并建立起與功能對應(yīng)的虛擬網(wǎng)絡(luò)塊框架。本發(fā)明利用NGGT命令集構(gòu)建虛擬網(wǎng)絡(luò)塊框架,這些命令用于管理棋塊,可以避免內(nèi)核開發(fā)過程中難以測試和調(diào)試的問題。利用虛擬網(wǎng)絡(luò)塊框架,本發(fā)明可以動態(tài)的修改內(nèi)核并開發(fā)自動測試腳本。構(gòu)建虛擬網(wǎng)絡(luò)塊框架的主要命令如下表2所列。表2虛擬網(wǎng)絡(luò)塊框架建立命令表<table>tableseeoriginaldocumentpage12</column></row><table>虛擬網(wǎng)絡(luò)塊框架的網(wǎng)絡(luò)應(yīng)用設(shè)計方法虛擬網(wǎng)絡(luò)塊在軟件框架中的多個層次有不同的應(yīng)用,它適合在下列的開發(fā)場景中使用。1)在虛擬網(wǎng)絡(luò)塊框架中,內(nèi)核在數(shù)據(jù)平面里可以輕松的實現(xiàn)各種協(xié)議的封裝,例如GRE、基于Teredo隧道機制的IPv6轉(zhuǎn)換機制、PPPoE/PPPoA、VLAN、MPLS、ATM、UDP等等。2)控制平面應(yīng)用的性能優(yōu)化通過虛擬網(wǎng)絡(luò)塊框架,控制平面中的應(yīng)用能夠在內(nèi)核實現(xiàn),對于某些性能敏感的應(yīng)用如netflow,可以在控制平面實現(xiàn)來驗證實現(xiàn),而后利用虛擬網(wǎng)絡(luò)塊在內(nèi)核中優(yōu)化性能;利用虛擬網(wǎng)絡(luò)塊中的注冊機制集成不同網(wǎng)絡(luò)接口的驅(qū)動。連接物理層的虛擬網(wǎng)絡(luò)塊模塊虛擬網(wǎng)絡(luò)塊框架提供注冊機制將原始的網(wǎng)絡(luò)設(shè)備驅(qū)動轉(zhuǎn)變成虛擬網(wǎng)絡(luò)塊使能的驅(qū)動,為了實現(xiàn)虛擬網(wǎng)絡(luò)塊與網(wǎng)絡(luò)設(shè)備的連接,網(wǎng)絡(luò)設(shè)備必須為可加載的內(nèi)核^t塊,它將在內(nèi)核加載虛擬網(wǎng)絡(luò)塊才莫塊后加載。同時,網(wǎng)絡(luò)驅(qū)動必須作為標準的net-device網(wǎng)絡(luò)i殳備凄史據(jù)結(jié)構(gòu)注冊,利用標準的Linux隊列才幾制,例如通過netif-rx()向上層發(fā)送數(shù)據(jù)包,通過dev_queue_xmit()從上層接受的數(shù)據(jù)包并進行處理。在net—device網(wǎng)絡(luò)設(shè)備注冊過程中,通過擴展集成在內(nèi)核內(nèi)的net—device數(shù)據(jù)結(jié)構(gòu)存儲虛擬網(wǎng)絡(luò)塊的私有數(shù)據(jù)。其中,VNB_ops的^U居結(jié)構(gòu)定義如下a)VNB-node:連接到網(wǎng)絡(luò)設(shè)備的虛擬網(wǎng)絡(luò)塊節(jié)點。b)VNB-input():數(shù)據(jù)包通過虛擬網(wǎng)《各塊節(jié)點時,由netif—receive—skb()調(diào)用。c)VNB-input—orphan():數(shù)據(jù)流處理過程中,對未在虛擬網(wǎng)絡(luò)塊中定義類型的報文調(diào)用此函數(shù)。d)VNB—output():^t才居包流出虛擬網(wǎng)纟備塊時,由dev_queue_xmit()調(diào)用。網(wǎng)絡(luò)設(shè)備在注冊機制中集成虛擬網(wǎng)絡(luò)塊私有數(shù)據(jù)后,網(wǎng)絡(luò)設(shè)備同時也在虛擬網(wǎng)絡(luò)塊框架中注冊,并自動的生成NG-RAW于網(wǎng)絡(luò)設(shè)備連接,NG—RAW節(jié)點名字將作為此網(wǎng)絡(luò)設(shè)備名。數(shù)據(jù)包通過NG-RAW的lower鉤子輸入與之連接的虛擬網(wǎng)絡(luò)塊節(jié)點;同樣,從虛擬網(wǎng)絡(luò)塊節(jié)點接受的數(shù)據(jù)包也通過lower鉤子,通過調(diào)用dev—queue-xmit()傳遞到網(wǎng)絡(luò)設(shè)備。對于那些虛擬網(wǎng)絡(luò)塊節(jié)點無法處理的數(shù)據(jù)包(例如協(xié)議處理類型不匹配),通過u卯er鉤子將這些數(shù)據(jù)包分離到傳統(tǒng)的內(nèi)核處理路徑。根據(jù)(圖5)上面輸入、^T出過程的描述,以標準的PPP協(xié)議過程為例,設(shè)計的PPP輸入過程能夠如圖6所示;PPP輸出過程如圖6-7所示。本說明書中未作詳細描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。權(quán)利要求1.一種基于Linux內(nèi)核網(wǎng)絡(luò)子系統(tǒng)的虛擬網(wǎng)絡(luò)塊框架的構(gòu)建方法,采用的方法是第一步驟虛擬網(wǎng)絡(luò)塊框架的構(gòu)成每一個虛擬網(wǎng)絡(luò)塊由一個處理單元(TU)節(jié)點和一個或多個互連單元(IU)鉤子組成數(shù)據(jù)包通過雙向的互連單元從一個處理節(jié)點流向另一個處理節(jié)點,每一個虛擬網(wǎng)絡(luò)塊實例節(jié)點處理接受到的數(shù)據(jù)包,然后傳遞到下一個節(jié)點,每個節(jié)點是一個簡單的包處理過程,如果要在網(wǎng)絡(luò)軟件框架中實現(xiàn)復(fù)雜的處理過程需要多個虛擬網(wǎng)絡(luò)塊模塊組合完成,通過不同的配置實現(xiàn)重用虛擬網(wǎng)絡(luò)塊模塊;鉤子作為互連單元(UT)將不同的虛擬網(wǎng)絡(luò)塊進行連接,處理單元(TU)通過鉤子來實現(xiàn)數(shù)據(jù)流和控制消息在虛擬網(wǎng)絡(luò)塊節(jié)點之間的傳遞;第二步驟虛擬網(wǎng)絡(luò)塊框架的數(shù)據(jù)流及接口構(gòu)成虛擬網(wǎng)絡(luò)塊框架中數(shù)據(jù)流通過兩類API來傳遞控制消息和數(shù)據(jù)消息1)數(shù)據(jù)API在內(nèi)核或用戶空間之間交換數(shù)據(jù)包,數(shù)據(jù)包沿著鉤子從一個節(jié)點傳遞到另一個節(jié)點,每一個節(jié)點決定如何處理來至于自己鉤子的數(shù)據(jù)包;2)控制API在內(nèi)核或用戶空間之間傳遞控制消息進行虛擬網(wǎng)絡(luò)塊的管理,節(jié)點通過控制API向另一個節(jié)點直接發(fā)送消息或ASCII指令。在虛擬網(wǎng)絡(luò)塊框架中,虛擬網(wǎng)絡(luò)塊的控制包括虛擬網(wǎng)絡(luò)塊節(jié)點之間的控制和用戶空間虛擬網(wǎng)絡(luò)塊控制進程對內(nèi)核內(nèi)虛擬網(wǎng)絡(luò)塊的控制;第三步驟構(gòu)建虛擬網(wǎng)絡(luò)塊框架的核心模塊第四步驟構(gòu)建虛擬網(wǎng)絡(luò)塊框架首先使用C或C++開發(fā)滿足特性需求的虛擬網(wǎng)絡(luò)塊模塊;第二步,在控制平面或數(shù)據(jù)平面中開發(fā)相應(yīng)的控制模塊;然后,定義控制模塊與內(nèi)核內(nèi)虛擬網(wǎng)絡(luò)塊節(jié)點以及虛擬網(wǎng)絡(luò)塊節(jié)點之間的控制消息;最后,建立起虛擬網(wǎng)絡(luò)塊節(jié)點之間的圖形方案,并建立起與功能對應(yīng)的虛擬網(wǎng)絡(luò)塊框架。全文摘要本發(fā)明涉及一種基于Linux內(nèi)核網(wǎng)絡(luò)子系統(tǒng)的虛擬網(wǎng)絡(luò)塊框架的構(gòu)建方法,采用的方法是第一構(gòu)成虛擬網(wǎng)絡(luò)塊框架;第二構(gòu)成虛擬網(wǎng)絡(luò)塊框架的數(shù)據(jù)流及接口;第三構(gòu)建虛擬網(wǎng)絡(luò)塊框架的核心模塊;第四構(gòu)建虛擬網(wǎng)絡(luò)塊框架。本發(fā)明基于Linux內(nèi)核的網(wǎng)絡(luò)子系統(tǒng),進行了模塊化的虛擬網(wǎng)絡(luò)塊框架設(shè)計,對Linux操作系統(tǒng)的內(nèi)核進行了內(nèi)核優(yōu)化,設(shè)計實現(xiàn)內(nèi)核虛擬網(wǎng)絡(luò)框架。通過本發(fā)明可以實現(xiàn)復(fù)雜協(xié)議的在內(nèi)核內(nèi)以面向?qū)ο蟮哪K形式進行輕松的封裝實現(xiàn),并可以對用戶空間的性能實現(xiàn)“內(nèi)核實現(xiàn)”,利用內(nèi)核的高效率實現(xiàn)高速處理能力,并將復(fù)雜的應(yīng)用層協(xié)議與內(nèi)核的高效結(jié)合起來,實現(xiàn)層三到層七應(yīng)用功能的性能提升。文檔編號H04L29/06GK101370009SQ20081004704公開日2009年2月18日申請日期2008年3月12日優(yōu)先權(quán)日2008年3月12日發(fā)明者李臘元,蔣漢平申請人:武漢理工大學(xué)