本發(fā)明涉及通信路徑切換裝置、控制通信路徑切換裝置的方法以及計算機(jī)程序產(chǎn)品。
背景技術(shù):
在從例如公共線路的廣域通信和例如公司假定局域網(wǎng)(lan)的中等規(guī)模的區(qū)域通信直到在辦公室、會議室等連接用戶終端的短距離通信的通信網(wǎng)絡(luò)中,基于網(wǎng)絡(luò)協(xié)議(ip)的分組通信被提出并且其應(yīng)用在各領(lǐng)域都得到發(fā)展。發(fā)送ip數(shù)據(jù)包的媒介被大體上會聚到以太網(wǎng)(注冊商標(biāo))用于有線通信復(fù)旦,并大體上會聚到第三代(3g)/長期演進(jìn)(longtermevolution,lte)系統(tǒng)用于長距離無線通信以及會聚到被稱為無線保真度(wi-fi)的電子及電氣工程師協(xié)會(ieee)802.11無線局域網(wǎng)(lan)系統(tǒng)用于中距離和短距離無線通信。
近年來,被稱為軟件限定網(wǎng)絡(luò)(sdn)的概念已經(jīng)引起關(guān)注。sdn字面上表示網(wǎng)絡(luò)的操作被軟件描述限定,并且作為受到最多關(guān)注的主要技術(shù)組成部分,包括網(wǎng)絡(luò)的虛擬化、以及開放流(openflow)交換,開放流交換是控制虛擬通信的方法和協(xié)議中的一個,也是不依賴于供應(yīng)商開放規(guī)范。
openflow(注冊商標(biāo))是用于將通信定義為終端到終端流以及為每個流進(jìn)行路徑控制、負(fù)荷分配、最優(yōu)化等等的技術(shù),并且其標(biāo)準(zhǔn)化通過被稱為開放網(wǎng)絡(luò)基金會(onf)的非營利組織所發(fā)展。特別地,例如數(shù)據(jù)通信路徑的交換式集線器(交換機(jī))之類的中繼裝置不會以自主的分布的方式分析以及轉(zhuǎn)發(fā)每個數(shù)據(jù)包,但是被稱為控制器的裝置集中地控制中繼裝置。
openflow分離作為部件服務(wù)的控制面板用于分析數(shù)據(jù),判斷轉(zhuǎn)發(fā)目的地,以及控制控制來自簡單地作為部件服務(wù)的數(shù)據(jù)面板的判斷用于物理地轉(zhuǎn)發(fā)包。負(fù)責(zé)前者的openflow控制器(ofc)指示轉(zhuǎn)發(fā)規(guī)則,以及負(fù)責(zé)后者的openflow交換機(jī)(ofs)基于ofc的指令進(jìn)行轉(zhuǎn)發(fā),特別地,在ofs的流表上,ofc對流表附加并進(jìn)行重寫。這種機(jī)構(gòu)被用于將openflow作為控制網(wǎng)絡(luò)虛擬化的工具來利用。
在通信負(fù)載集中在ip通信網(wǎng)絡(luò)之間的網(wǎng)絡(luò)/云數(shù)據(jù)中心,通信載體主鏈之類的,例如網(wǎng)絡(luò)虛擬化和openflow之類的與sdn相關(guān)的技術(shù)被越來越多的利用,并且靈活的優(yōu)化控制實(shí)現(xiàn)通信量的效率,減少網(wǎng)絡(luò)裝置之類的數(shù)目,以及減少成本和能量之類。這種被稱為openflow的技術(shù)已經(jīng)被獲知。
專利文獻(xiàn)1公開了高次序協(xié)議信息被包含在傳輸控制協(xié)議(tcp)信息頭中,以便改善計算機(jī)系統(tǒng)的一致性以及提供能夠進(jìn)行與比tcp層的那個更高次序的協(xié)議相應(yīng)的流控制的計算機(jī)系統(tǒng)的通信方法之類的。
技術(shù)實(shí)現(xiàn)要素:
技術(shù)問題
當(dāng)在同一機(jī)器中開放流交換機(jī)(ofs)被連接到例如網(wǎng)絡(luò)接口卡(nic)的網(wǎng)絡(luò)接口時,ofs可以截取所有的通過nic接收的數(shù)據(jù)。結(jié)果,在ofs被連接到例如nic的網(wǎng)絡(luò)接口之前其他已經(jīng)正常接收和處理數(shù)據(jù)的服務(wù)或軟件不能接收數(shù)據(jù),并且已經(jīng)從nic常規(guī)獲取和使用特定數(shù)據(jù)的服務(wù)或軟件不能被正常處理。
在專利文獻(xiàn)1中公開的技術(shù)中,查看通信數(shù)據(jù)的信息頭的流控制被執(zhí)行。然而,其他在ofs被連接到例如nic的網(wǎng)絡(luò)接口之前已經(jīng)正常接收和處理數(shù)據(jù)的服務(wù)或軟件仍然不能接收和處理數(shù)據(jù),并且服務(wù)或軟件仍然不能被正常處理。
考慮到前述事項,本發(fā)明提供即使當(dāng)ofs被連接到網(wǎng)絡(luò)接口,仍然使正常執(zhí)行不將ofs連接到網(wǎng)絡(luò)接口的服務(wù)或軟件能夠正常地被執(zhí)行的通信路徑切換裝置。
解決問題的方案
根據(jù)本發(fā)明的實(shí)例實(shí)施例,提供一種通信路徑切換裝置,包括:應(yīng)用單元,應(yīng)用單元執(zhí)行與另一個通信裝置進(jìn)行無線通信的確定功能;數(shù)據(jù)切換單元,數(shù)據(jù)切換單元轉(zhuǎn)發(fā)數(shù)據(jù),以使應(yīng)用單元執(zhí)行確定功能;控制單元,控制單元進(jìn)行設(shè)置,以使數(shù)據(jù)切換單元轉(zhuǎn)發(fā)數(shù)據(jù);以及虛擬設(shè)備單元,虛擬設(shè)備單元基于控制單元完成的設(shè)置,將從數(shù)據(jù)切換單元轉(zhuǎn)發(fā)的數(shù)據(jù)轉(zhuǎn)發(fā)到應(yīng)用單元。
發(fā)明的有益效果
本發(fā)明能夠提供即使當(dāng)ofs被連接到網(wǎng)絡(luò)接口,仍然使正常執(zhí)行不將ofs連接到網(wǎng)絡(luò)接口的服務(wù)或軟件能夠正常地被執(zhí)行的通信路徑切換裝置。
附圖說明
【圖1】圖1為示出在通信路徑切換裝置上實(shí)現(xiàn)的通信功能被劃分為層次結(jié)構(gòu)的模型的示意圖。
【圖2a】圖2a為示出傳統(tǒng)的路徑交換交換機(jī)的配置的示意圖。
【圖2b】圖2b為示出openflow交換的配置的示意圖。
【圖3】圖3為示出存儲在openflow交換機(jī)(ofs)中的流表的配置的示意圖。
【圖4】圖4為示出根據(jù)本發(fā)明的實(shí)施例示出通信路徑切換裝置的示意性配置的硬件塊的實(shí)例的示意圖。
【圖5】圖5為示出根據(jù)實(shí)施例示出通信路徑切換裝置的示意性配置的功能塊的實(shí)例的示意圖。
【圖6】圖6為示出了示出局域網(wǎng)(lan)中的網(wǎng)絡(luò)配置的輪廓的特定的實(shí)例的示意圖。
【圖7】圖7為示出當(dāng)例如個人計算機(jī)(pc)的信息處理裝置利用傳輸控制協(xié)議(tcp)、網(wǎng)際協(xié)議(ip)之類的進(jìn)行通信時的處理的示意圖。
【圖8】圖8為示出數(shù)字裝備公司/英特爾/施樂(dix)以太網(wǎng)中的幀格式的示意圖。
【圖9】圖9為示出當(dāng)普通網(wǎng)絡(luò)接口卡(nic)接收數(shù)據(jù)時,包如何流過開放系統(tǒng)互連(osi)參考模型中的每個層的示意圖。
【圖10】圖10為示出當(dāng)ofs和openflow控制器(ofc)被添加到圖9時包如何流動的示意圖。
【圖11】圖11為示出基于局域網(wǎng)的擴(kuò)展認(rèn)證協(xié)議(eapol)包如何通過圖10中示出的配置中的虛擬nic流入特定的軟件之類的示意圖。
【圖12】圖12為示出實(shí)施例中的通信路徑切換裝置的操作的流程圖。
【圖13】圖13為示出實(shí)施例中的通信路徑切換裝置的操作的流程圖。
【圖14】圖14為示出nic被插在圖11中示出的配置中的ofc和ofs之間的配置的示意圖。
具體實(shí)施方式
在實(shí)施例的說明之前,先進(jìn)行關(guān)于openflow的說明。openflow交換是將通信定義為端到端流并且分離控制面板,控制面板作為部件服務(wù)用于分析數(shù)據(jù),判斷轉(zhuǎn)發(fā)目的地判斷,以及控制來自作為部件服務(wù)的數(shù)據(jù)面板的判斷用于物理地轉(zhuǎn)發(fā)包的技術(shù)。在這種技術(shù)中,控制控制面板的處理的openflow控制器(ofc)指示轉(zhuǎn)發(fā)目的地規(guī)則。負(fù)責(zé)數(shù)據(jù)面板的處理的openflow交換機(jī)(ofs)基于來自ofc的指令轉(zhuǎn)發(fā)包。特別地,ofc添加并且重寫ofs的流表項,并且ofs基于流表項轉(zhuǎn)發(fā)包。
在更詳細(xì)地描述這些思想以及協(xié)議之前,下文描述在通信路徑切換裝置上實(shí)現(xiàn)的通信功能被劃分為層次結(jié)構(gòu)的模型。圖1為示出在通信路徑切換裝置上實(shí)現(xiàn)的通信功能被劃分為層次結(jié)構(gòu)的模型的示意圖。這個模型是開放系統(tǒng)互連(osi)參考模型,有七層,從第一層的物理層到第七層的應(yīng)用層。
當(dāng)前用于交換網(wǎng)際協(xié)議(ip)包的通信方法的主流是橫向分工模型,此模型中ip即第三層被認(rèn)為是通用資源并且為每個層限定接口,每個層各自實(shí)施并且能夠彼此替換?;趇p數(shù)據(jù)包的應(yīng)用利用通過傳輸層即第四層指定的端口的概念在通信伙伴之間建立對話,并且進(jìn)行每個服務(wù)的數(shù)據(jù)通信。
服務(wù)的實(shí)例包括圖1中的第五層到第七層中示出的網(wǎng)絡(luò)、可擴(kuò)展置標(biāo)語言(xml)網(wǎng)絡(luò)服務(wù)、郵件、消息、文件共享以及文件轉(zhuǎn)發(fā)。只要提供服務(wù)的應(yīng)用使用第三和第四層中示出的傳輸控制協(xié)議/網(wǎng)際協(xié)議(tcp/ip)以及用戶數(shù)據(jù)報協(xié)議/ip(udp/ip),應(yīng)用不必意識到第一和第二層的通信比第三和第四層低。
相應(yīng)地,與例如傳統(tǒng)的電話交換網(wǎng)的縱向一體化模型相比,網(wǎng)絡(luò)和云服務(wù)的開發(fā)能夠被加速?;旧?,通信裝置可以具有常規(guī)硬件和軟件配置用于開發(fā)圖1中示出的基于ip數(shù)據(jù)包的通信應(yīng)用。
下文描述能夠在通信裝置上被實(shí)施的openflow交換的概念。從通信裝置發(fā)送的ip數(shù)據(jù)包通過有線和無線通信中的每個中繼裝置到達(dá)目標(biāo)接收者。圖2a和2b是分別示出傳統(tǒng)的路徑交換交換機(jī)的配置和openflow交換的配置的示意圖。在傳統(tǒng)方法中,如圖2a所示,每個中繼裝置以自主分布方式進(jìn)行路徑控制以及判斷包的轉(zhuǎn)發(fā)目的地。換句話說,每個交換機(jī)20作為中繼裝置有路徑控制和包轉(zhuǎn)發(fā)功能兩者,并且執(zhí)行兩個處理。
因此,路徑控制上的信息被固定,因?yàn)樗幻總€交換機(jī)20自己獲悉并且不通知其他交換機(jī)。對于每個交換機(jī)20的功能,各種通過裝置供應(yīng)商開發(fā)的功能必須被使用,并且功能不能被定制。
如圖2b所示,在openflow交換中,在openflow控制器(ofc)21上,每個交換機(jī)20的路徑控制功能被分離并且被實(shí)施,并且在每個作為交換機(jī)20的openflow交換機(jī)(ofs)22上,僅轉(zhuǎn)發(fā)包的功能被實(shí)施。ofc21控制關(guān)于路徑控制的所有信息,并且這種ofc21對每個ofs22的行為進(jìn)行中央控制以便能夠靈活控制。
上述描述表明控制可以利用能達(dá)到圖1中示出的osi參考模型中的第四層的各種條件自由地進(jìn)行。相應(yīng)地,在通常被用于超文本傳輸協(xié)議(http)的傳輸控制協(xié)議(tcp)端口80的通信中的線路的改變可以被控制。
下面參考圖3中示出的原理圖描述openflow交換的特定原理。圖3為示出存儲在ofs中的流表的配置的示意圖。ofs22基于圖3中示出的流表中的信息進(jìn)行例如幀的轉(zhuǎn)發(fā)的處理。
如圖3所示,流表包括代表幀控制規(guī)則的流表項。流表包括用于識別流表項的組成部分,相應(yīng)的三種信息是條件、統(tǒng)計信息和處理。組成部分包括用于輸入“流表項1”、“流表項2”等等的以便識別每項的區(qū)域。條件是頭字段并包括用于輸入圖8中示出的信息以便識別和指定通信的區(qū)域,該區(qū)域?qū)⑸院竺枋觥?/p>
統(tǒng)計信息包括用于管理多少滿足條件的通信出現(xiàn)和處理進(jìn)行到什么程度的區(qū)域。處理包括用于為幀定義處理的區(qū)域。處理的實(shí)例包括轉(zhuǎn)發(fā)幀(轉(zhuǎn)發(fā))、將幀排入指定隊列中(排隊)、拋棄幀(拋棄),以及修改指定區(qū)域的值(修改-區(qū)域)。實(shí)例同樣包括為指定群組(group)執(zhí)行預(yù)定的處理,以及增加標(biāo)識符和移除標(biāo)識符(push-tag和pop-tag)。此外,處理可以被更詳細(xì)地指定,并且在“轉(zhuǎn)發(fā)”處理中,轉(zhuǎn)發(fā)幀到所有的物理端口,將幀封裝并發(fā)送到控制器,等等可以被指定。
本發(fā)明的實(shí)施例現(xiàn)在將參考附圖被描述。在附圖中,類似或相應(yīng)的參考數(shù)字指示類似組成部分,并且重復(fù)的說明酌情被簡化或省略。下面描述實(shí)施例,但是實(shí)施例不局限于在下文描述一個。在下文描述的實(shí)施例描述了五個信息處理裝置(個人計算機(jī)(pcs)、平板、和智能手機(jī))被連接到局域網(wǎng)(lan)的實(shí)例,但是任何種類的和作何數(shù)量的信息處理裝置可以被連接到lan。
根據(jù)本發(fā)明,當(dāng)ofs被用于連接到作為從裝置外接收數(shù)據(jù)的網(wǎng)絡(luò)接口的一個例子服務(wù)的網(wǎng)絡(luò)接口卡(nic)時,ofs基于來自ofc的流表項設(shè)置將包轉(zhuǎn)發(fā)到虛擬nic。本發(fā)明在虛擬nic通過插座之類的利用特定的數(shù)據(jù)將數(shù)據(jù)轉(zhuǎn)發(fā)到服務(wù)或軟件方面具有特征。本發(fā)明的特征將利用下面的附圖具體地描述。
下面描述示出根據(jù)實(shí)施例的通信路徑切換裝置的示意性配置的硬件塊。圖4為示出根據(jù)實(shí)施例示出通信路徑切換裝置的示意性配置的硬件塊的實(shí)例的示意圖。
實(shí)施例中的通信路徑切換裝置包括中央處理單元(cpu)451、只讀存儲器(rom)452和隨機(jī)存取存儲器(ram)453。實(shí)施例中的通信路徑切換裝置同樣包括硬盤驅(qū)動器(hdd)454、顯示器455、輸入裝置456和通信接口458和459。
cpu451、rom452、ram453、hdd454、顯示器455、輸入裝置456以及通信接口458和459通過總線460彼此連接。
cpu451控制整個通信路徑切換裝置的操作。為了控制通信路徑切換裝置的操作,cpu451加載來自rom452的軟件程序,并利用ram453作為工作存儲器來執(zhí)行軟件程序。rom452是非易失性存儲器,并且其中存儲引導(dǎo)程序和各種計算機(jī)程序以及數(shù)據(jù)。ram453是易失性存儲器,并且其中暫時地存儲通過通信接口輸入的數(shù)據(jù),通信接口將稍后描述。hdd454是大容量非易失性存儲裝置。hdd中存儲要被轉(zhuǎn)發(fā)的數(shù)據(jù)之類的。
輸入裝置456是通信路徑切換裝置的操作單元以及用戶接口。輸入裝置456的實(shí)例包括按鈕和觸控面板,以及帶有發(fā)光二極管(led)、傳感器之類的輸入裝置。顯示器455包括液晶顯示器(lcd)之類的,并且當(dāng)輸入裝置456具有觸控面板配置時可以是用戶接口。
通信接口458和459連接設(shè)備驅(qū)動器、層2(l2)、nl80211_driver之類的,如稍后描述的那樣。設(shè)備驅(qū)動器和l2有點(diǎn)像以太網(wǎng)的包。nl80211_driver是無線lan的驅(qū)動,即用于無線lan的應(yīng)用程序接口(api)的延伸部。
下面描述示出根據(jù)實(shí)施例的通信路徑切換裝置的示意性配置的功能塊。圖5為示出根據(jù)實(shí)施例示出通信路徑切換裝置的示意性配置的功能塊的實(shí)例的示意圖。
實(shí)施例中的通信路徑切換裝置包括應(yīng)用單元551、數(shù)據(jù)切換單元552、虛擬設(shè)備單元553、控制器554、判斷單元555和確認(rèn)單元556。應(yīng)用單元551、數(shù)據(jù)切換單元552、虛擬設(shè)備單元553、控制器554、判斷單元555和確認(rèn)單元556通過總線557彼此連接。cpu451執(zhí)行寫入rom452的計算機(jī)程序以便實(shí)施應(yīng)用單元551、數(shù)據(jù)切換單元552、虛擬設(shè)備單元553、控制器554和判斷單元555。
應(yīng)用單元551是執(zhí)行確定的功能的應(yīng)用軟件,以及應(yīng)用單元551的實(shí)例包括nl80211_driver,nl80211_driver是執(zhí)行例如wi-fi的無線lan通信所必需的驅(qū)動(軟件)。數(shù)據(jù)切換單元552具有轉(zhuǎn)發(fā)數(shù)據(jù)使得應(yīng)用單元551執(zhí)行確定功能的功能,數(shù)據(jù)切換單元552的實(shí)例包括ofs,在ofs中作為例如包的轉(zhuǎn)發(fā)的指令信息服務(wù)的流表項被設(shè)置。虛擬設(shè)備單元553具有將從數(shù)據(jù)切換單元552轉(zhuǎn)發(fā)的數(shù)據(jù)轉(zhuǎn)發(fā)到應(yīng)用單元551的功能。虛擬設(shè)備單元553的實(shí)例包括虛擬nic,虛擬nic將通過nic接收的基于局域網(wǎng)的擴(kuò)展認(rèn)證協(xié)議(eapol)包轉(zhuǎn)發(fā)到應(yīng)用單元551。
是被用來認(rèn)證與另一個通信裝置無線通信的協(xié)議。eapol包是擴(kuò)展認(rèn)證協(xié)議(eap)的擴(kuò)展的協(xié)議,并且eapol包是用于eapol(協(xié)議)的包。
控制器554具有進(jìn)行設(shè)置使得數(shù)據(jù)切換單元552轉(zhuǎn)發(fā)數(shù)據(jù)以使得應(yīng)用單元551執(zhí)行確定功能的功能??刂破?54的實(shí)例包括ofc,ofc設(shè)置流表項作為例如將包轉(zhuǎn)發(fā)到ofs的指令信息服務(wù)。判斷單元555具有判斷通過數(shù)據(jù)切換單元552接收的數(shù)據(jù)是否是確定數(shù)據(jù)的功能,例如,判斷接收到數(shù)據(jù)是否是eapol包。當(dāng)數(shù)據(jù)不是確定數(shù)據(jù)時,確認(rèn)單元556具有確認(rèn)控制器554是否已經(jīng)進(jìn)行轉(zhuǎn)發(fā)通過數(shù)據(jù)切換單元552接收的數(shù)據(jù)的設(shè)置的功能。例如,當(dāng)通過ofs接收的數(shù)據(jù)不是eapol包時,確認(rèn)單元556確認(rèn)在ofs中用于轉(zhuǎn)發(fā)包的流表項是否被設(shè)置。
下面描述示出lan中的網(wǎng)絡(luò)配置的概要的具體實(shí)例。圖6為示出了示出lan中的網(wǎng)絡(luò)配置的概要的具體實(shí)例的示意圖。在圖6中,例如pc141和pc242的用戶終端通過導(dǎo)線被連接到層2(l2)交換機(jī)46。此外,例如平板電腦44、智能手機(jī)45、和pc343以無線方式被連接到無線局域網(wǎng)接入點(diǎn)(ap)48。l2交換機(jī)46和無線lanap48通過導(dǎo)線被連接到層3(l3)交換機(jī)47。
l2交換機(jī)46代表以太網(wǎng)作為osi參考模型中的數(shù)據(jù)鏈路層即第二層中的有線通信的一個例子。l3交換機(jī)47代表基于osi參考模型中的網(wǎng)絡(luò)層即第三層中的ip的分組通信。
下面描述當(dāng)例如pc的信息處理裝置利用tcp、ip之類的進(jìn)行通信時的處理。圖7是示出當(dāng)例如pc的信息處理裝置利用tcp、ip之類的進(jìn)行通信時的處理的示意圖。在圖7中,在例如ip(l3)503和ip(l3)506,以及以太網(wǎng)(l2)504和以太網(wǎng)(l2)505的每個塊中的層(l)對應(yīng)于形成osi參考模型的各自的層。
在圖7中,通過例如電纜以及無線通道之類的媒介,右側(cè)塊執(zhí)行應(yīng)用中的數(shù)據(jù)的發(fā)送處理,并且左側(cè)塊執(zhí)行數(shù)據(jù)的接收處理。在塊執(zhí)行發(fā)送處理中,發(fā)送處理以從作為上層服務(wù)的應(yīng)用層(l5和更高的)501到作為下層服務(wù)的以太網(wǎng)(l2)504的次序被執(zhí)行。在塊執(zhí)行接收處理中,接收處理以從作為下層服務(wù)的以太網(wǎng)(l2)505到作為上層服務(wù)的應(yīng)用層(l5和更高的)508的次序被執(zhí)行。
例如應(yīng)用(l5和更高的)501和應(yīng)用(l5和更高的)508,tcp(l4)502和tcp(l4)507,以及ip(l3)503和ip(l3)506的上層的處理通常利用cpu、存儲器之類的通過軟件處理被執(zhí)行。下層的處理經(jīng)常通過專用硬件被執(zhí)行。然而,層的處理可能是不同的,這取決于使用方面的差別,例如,pc和服務(wù)器。
下面描述在數(shù)字設(shè)備公司/英特爾/施樂(dix)以太網(wǎng)中的幀格式。圖8是示出在dix以太網(wǎng)中的幀格式的示意圖。有多種用于以太網(wǎng)幀格式的格式,但是只有典型的一個被選定并在下文描述。
在圖8中,前序61位于幀格式的開始位置。這是用于使連接到lan的接口識別幀的開始并給出同步定時的信號。在dix以太網(wǎng)中,前序61是尺寸為8八位字節(jié)(octets)(64比特)的區(qū)域,并且在該區(qū)域中1和0交替連續(xù)并且最后的比特(第64比特)是1。
發(fā)送目的地地址62是尺寸為6八位字節(jié)(48比特)的區(qū)域,并且設(shè)置發(fā)送目的地的位置的接口的媒介存取控制(mac)地址。發(fā)送目的地地址62可以設(shè)置發(fā)給多個接口的多點(diǎn)傳送地址。發(fā)送源地址63為尺寸為6八位字節(jié)(48比特)的區(qū)域,并且設(shè)置發(fā)送幀的接口的mac地址。
類型字段64是尺寸為2八位字節(jié)(16比特)的區(qū)域。類型字段64設(shè)置表明的上層協(xié)議存儲在下面的數(shù)據(jù)段中用于多路復(fù)用/多路分用的標(biāo)識符。例如,如果上層協(xié)議是eapol類型字段64包含數(shù)字0×888e,并且數(shù)據(jù)段65包含eap協(xié)議包。如果上層協(xié)議是網(wǎng)際協(xié)議版本(ipv)4,類型字段64包含數(shù)字0×0800,并且數(shù)據(jù)段65包含ipv4協(xié)議包。
數(shù)據(jù)段65中可以存儲從最小46八位字節(jié)到最大1500八位字節(jié)的可變長度信息。幀校驗(yàn)序列(fcs)66是用于檢測幀誤差的4-八位字節(jié)(4-octet)區(qū)域。fcs66設(shè)置從發(fā)送目的地地址62、發(fā)送源地址63、類型字段64和數(shù)據(jù)段65的每個區(qū)域計算出的循環(huán)冗余校驗(yàn)(crc)值。類似地,crc數(shù)值在接收側(cè)計算。當(dāng)在接收側(cè)的crc值不匹配在發(fā)送側(cè)的fcs66的crc值時,它被判斷為錯誤,相應(yīng)的幀被拋棄。
下面描述當(dāng)常規(guī)nic接收數(shù)據(jù)時,在osi參考模型中,包如何流過每個層。圖9為示出當(dāng)常規(guī)nic接收數(shù)據(jù)時,在osi參考模型中,包如何流過每個層的示意圖。描述將利用無線lan卡作為nic的一個例子服務(wù)來接收數(shù)據(jù)的具體實(shí)例進(jìn)行。nic是網(wǎng)絡(luò)接口卡的縮寫,但是在下文中,nic不僅包括傳統(tǒng)的硬件接口也包括軟件接口。
在設(shè)備驅(qū)動和層2(osi參考模型中的第二層,l2)702,創(chuàng)建包的處理被應(yīng)用于通過nic701接收的數(shù)據(jù)。隨后,在層3(l3)703和層4(l4)704中被執(zhí)行。設(shè)備驅(qū)動和l2702執(zhí)行l(wèi)2的處理,并且,舉例來說,有點(diǎn)像以太網(wǎng)包。
例如,在主機(jī)接入點(diǎn)守護(hù)進(jìn)程(hostapd)中,利用插座,l2702中的eapol包被轉(zhuǎn)發(fā)到nl80211_driver705。hostapd意味著對于無線lan之類的接入點(diǎn)的開源軟件實(shí)現(xiàn)。nl80211_driver705為無線lan驅(qū)動,即無線lan的api的擴(kuò)展。
當(dāng)處理被應(yīng)用于l3703和l4704中的包時,需要數(shù)據(jù)的軟件從設(shè)備驅(qū)動和l2702接收數(shù)據(jù)并執(zhí)行類似于nl80211_driver705的處理。圖8中示出的幀格式中的類型字段64的特征值可以用于分配從設(shè)備驅(qū)動和l2702到l3703的處理以及從設(shè)備驅(qū)動和l2702到nl80211_driver705的處理。
下面示出當(dāng)ofs和ofc被添加到圖9時,包如何流動。圖10為示出當(dāng)ofs和ofc被添加到圖9時包如何流動的示意圖。換句話說,ofs801和ofc802被添加到圖9中的配置中。
如圖10所示,利用ofs801使得通信中的例如包、幀之類的數(shù)據(jù)不流入虛線路徑顯示的l3703或nl80211_driver705。所有的數(shù)據(jù)流入通過實(shí)線路徑1顯示的ofs801。
例如,nl80211_driver705作為實(shí)施例如wi-fi的無線lan的功能所必需的驅(qū)動(軟件)服務(wù)被連接到ofs801。相應(yīng)地,所有的操作驅(qū)動所必需的信息流入ofs801并且不傳送到nl80211_driver705。
nl80211_driver705處于備用狀態(tài)以便在任何需要操作其本身的時候接收信息。如上,ofs801通過路徑@由ofc802控制。
下面描述eapol包如何通過圖10中示出的配置中的虛擬nic流入特定的軟件之類的。圖11為示出eapol包如何通過圖10中示出的配置中的虛擬nic流入特定的軟件之類的示意圖。
作為具體實(shí)例呈現(xiàn)的eapol是eap的擴(kuò)展的協(xié)議,并且eapol包是用于eapol(協(xié)議)的包。下面描述eapol包通過ofs801和虛擬nic901逐步流入nl80211_driver705的配置。
當(dāng)虛擬nic901,例如,tap設(shè)備即在l2中操作的虛擬設(shè)備被使用,并且基于處理的包,tun設(shè)備即在中l(wèi)3操作的虛擬設(shè)備同樣被使用。如圖3中描述的,通過路徑@,ofc802在ofs801的流表中設(shè)置表明所有的輸入ofs801的數(shù)據(jù)被轉(zhuǎn)發(fā)到虛擬nic901的流表項。ofc802同樣改變設(shè)置使得接收nl80211_driver705的eapol包的接口(例如,插座接口)從虛擬nic901接收數(shù)據(jù)。
用這樣的方式,所有的eapol包通過路徑1流入ofs801。ofs801通過路徑2將所有的輸入的eapol包轉(zhuǎn)發(fā)到虛擬nic901。此外,nl80211_driver705通過路徑3接收從虛擬nic901發(fā)送的eapol包。這種流使通過nic701接收的eapol包能夠被轉(zhuǎn)發(fā)到例如nl80211_driver705之類的執(zhí)行特殊功能的應(yīng)用軟件。
下面參考在圖11中示出的eapol包的流動的示意圖根據(jù)實(shí)施例描述通信路徑切換裝置的操作。圖12和13為示出實(shí)施例中的通信路徑切換裝置的操作的流程圖。
在圖12中,在步驟s111處,通信路徑切換裝置被初始化。在步驟s112,所有通信路徑切換裝置的處理塊被實(shí)現(xiàn)為可操作的。此外,必要時,在步驟s113,ofc802為ofs801預(yù)設(shè)流表項(例如包的轉(zhuǎn)發(fā)的指令信息)。
當(dāng)在圖13中通信路徑切換裝置在步驟s121被初始化時,在步驟s122,判斷包是否被接收。如果包被判斷為被接收(是),處理進(jìn)行到步驟s123處的處理。如果沒有(否),通信路徑切換裝置等待,直到包被接收。
當(dāng)包被接收時,處理被從層中的下層執(zhí)行。圖11中示出的從nic701到l2702的處理在步驟s123被執(zhí)行。在步驟s124,ofs801接收數(shù)據(jù)。在步驟s125,判斷接收到的數(shù)據(jù)是否為eapol包。如果數(shù)據(jù)被判斷為是eapol包(是),處理進(jìn)行到步驟s126的處理。如果不是(否),處理進(jìn)行到步驟s129的處理。
在步驟s126,ofs801將eapol包轉(zhuǎn)發(fā)到虛擬nic901。在步驟s127,虛擬nic901將eapol包轉(zhuǎn)發(fā)到nl80211_driver705。在步驟s128,nl80211_driver705處理eapol包,并且所有的處理結(jié)束。換句話說,如果數(shù)據(jù)是eapol包,基于ofs801的流表項,包以這種次序被轉(zhuǎn)發(fā)到ofs801、虛擬nic901、以及nl80211_driver705。
在步驟s129,確定ofc802是否已經(jīng)設(shè)置用于將包轉(zhuǎn)發(fā)到ofs801的流表項。如果流表項被確定為已經(jīng)被設(shè)定好(是),處理進(jìn)行到步驟s130處的處理,以及如果沒有(否),處理進(jìn)行到在步驟s131處的處理。
包基于在步驟s130設(shè)置的流表項被轉(zhuǎn)發(fā),并且處理結(jié)束。ofs801詢問ofc802處理包的方法,并且在步驟s131處理結(jié)束。基于實(shí)施ofs801的方法,詢問ofc802之后的處理和用于沒有流表項被預(yù)設(shè)到ofs801的情形的處理被執(zhí)行。
下面描述nic被插在圖11中示出的配置中的ofc和ofs之間的配置的示意圖。圖14為示出nic被插在圖11中示出的配置中的ofc和ofs之間的配置的示意圖。
在圖14中,nic101被插在圖11中示出的ofs801和ofc802之間。用這樣的方式,通信路徑切換裝置100可以通過通信路徑切換裝置100外提供的ofc802被控制,并且ofc802可以作為不同于ofs801的裝置被提供。類似于無線lanap的物品被假定為通信路徑切換裝置,并且這種無線lanap通過無線lanap外提供的ofc802被控制的特定實(shí)例可以被考慮。同樣假定多個通信路徑切換裝置100被提供,并且這些通信路徑切換裝置100-1,100-2,…,100-n可以通過來自外部提供的單個ofc802的命令被控制。
通常,當(dāng)ofs被連接到nic時,ofs直接取得所有的來自設(shè)備驅(qū)動和l2的數(shù)據(jù)。ofs用這樣的方式操作,因?yàn)楫?dāng)ofs在linux(注冊商標(biāo))的內(nèi)核的操作中被安裝和操作時,它阻止來自例如在l3和l4中執(zhí)行的流入ip數(shù)據(jù)包的處理的數(shù)據(jù)。當(dāng)無線lan的上層(nl80211_driver)的處理被執(zhí)行時,ofs經(jīng)常接收來自device_driver和l2的數(shù)據(jù)。
然而,如上所述,ofs取得所有的數(shù)據(jù),并且nl80211_driver不能從ofs接收數(shù)據(jù)復(fù)制的數(shù)據(jù)。因此,ofc為ofs設(shè)定轉(zhuǎn)發(fā)通過ofs獲取的數(shù)據(jù)的規(guī)則,并且改變nl80211_driver的設(shè)置使得數(shù)據(jù)從虛擬nic被傳送到nl80211_driver。簡而言之,數(shù)據(jù)被發(fā)送到ofs,并且數(shù)據(jù)穿過虛擬nic并再次被轉(zhuǎn)發(fā)到nl80211_driver。相應(yīng)地,只需要改變nl80211_driver的設(shè)置而無需改變ofs的內(nèi)部的實(shí)現(xiàn)。
用這樣的方式,在實(shí)施例中,當(dāng)ofs被連接到nic時,ofs被連接到虛擬nic,并且ofc為ofs設(shè)置流表項使得ofs將從nic接收的數(shù)據(jù)中的特定的數(shù)據(jù)轉(zhuǎn)發(fā)到虛擬nic。ofc同樣改變nl80211_driver的設(shè)置使得數(shù)據(jù)被從虛擬nic轉(zhuǎn)發(fā)到nl80211_driver。數(shù)據(jù)依次被轉(zhuǎn)發(fā)到nic、ofs和虛擬nic,并且虛擬nic將數(shù)據(jù)轉(zhuǎn)發(fā)到使用數(shù)據(jù)的服務(wù)或軟件。用這樣的方式,即使當(dāng)ofs和nic彼此連接時,在通常從nic獲取特定的數(shù)據(jù),并且使用和處理數(shù)據(jù)的服務(wù)或軟件中,處理可以被正常地執(zhí)行。
根據(jù)圖12和13中示出的實(shí)施例,計算機(jī)上的計算機(jī)程序可以執(zhí)行通信路徑切換裝置的操作流。換句話說,集成在形成通信路徑切換裝置的控制器554中的cpu451加載存儲在例如rom452的存儲單元中的計算機(jī)程序。計算機(jī)中的每個處理步驟被依次執(zhí)行以便執(zhí)行操作流。
本發(fā)明使得即使當(dāng)ofs被連接到網(wǎng)絡(luò)接口時,正常執(zhí)行不將ofs連接到網(wǎng)絡(luò)接口的服務(wù)或軟件能夠被執(zhí)行。相應(yīng)地,本發(fā)明可以提供不能通過常規(guī)方法獲得的可用的通信路徑切換裝置、用于控制通信路徑切換裝置的方法以及計算機(jī)程序產(chǎn)品。
盡管本發(fā)明就其公開的具體實(shí)施方式做出了完整而清晰的描述,其所附權(quán)利要求不是為了限定,而是應(yīng)當(dāng)解釋為包含本領(lǐng)域技術(shù)人員在以上描述的基礎(chǔ)上所做出的合理改進(jìn)和替換。
【附圖標(biāo)記列表】
20交換機(jī)
21、802ofc
22、801ofs
41pc1
42pc2
43pc3
44平板電腦
45智能手機(jī)
46l2交換機(jī)
47l3交換機(jī)
48無線lanap
61前序
62發(fā)送目的地地址
63發(fā)送源地址
64類型字段
65數(shù)據(jù)段
66fcs
100,100-1,100-2,...,100-n通信路徑切換裝置
101nic
451cpu
452rom
453ram
454hdd
455顯示器
456輸入裝置
458、459通信接口
460、557總線
501、508應(yīng)用(l5和更高的)
502、507tcp(l4)
503、506ip(l3)
504、505以太網(wǎng)(l2)
551應(yīng)用單元
552數(shù)據(jù)切換單元
553虛擬設(shè)備單元
554控制器
555判斷單元
556確認(rèn)單元
701nic
702設(shè)備驅(qū)動,l2
703l3
704l4
705nl80211_driver
901虛擬nic
[引用列表]
[專利文獻(xiàn)]
專利1:第2012/120990號國際公布文本