數(shù)據(jù)包輸出控制方法及使用該方法的網(wǎng)絡(luò)裝置的制造方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及一種軟件定義網(wǎng)絡(luò)(SoftwareDefinedNetworking)(SDN)技術(shù),尤其是涉及一種處理用于數(shù)據(jù)包轉(zhuǎn)發(fā)的流表的流水線的技術(shù)、控制數(shù)據(jù)包輸出的方法、以及使用該方法的網(wǎng)絡(luò)裝置?!?br>背景技術(shù):
】[0002]軟件定義網(wǎng)絡(luò)(SDN)表示面向用戶的網(wǎng)絡(luò),其中不管路由器或交換機(jī)等基礎(chǔ)網(wǎng)絡(luò)設(shè)備,用戶具有控制權(quán)限,并且單獨(dú)的軟件控制器控制通信的流量。[0003]OpenFlow是SDN技術(shù)的一種,定義了連接路由器等硬件和在網(wǎng)絡(luò)操作系統(tǒng)(OS)中操作的控制器的界面,并且是一種協(xié)議,用于將用于控制如何通過網(wǎng)絡(luò)傳輸數(shù)據(jù)包的控制平面與物理網(wǎng)絡(luò)分離,并與用于數(shù)據(jù)傳輸?shù)臄?shù)據(jù)平面互動(dòng)。[0004]OpenFlow交換機(jī)可具有多個(gè)以流水線方式連接的流表,使得靈活并行處理成為可能,且OpenFlow交換機(jī)可具有效率和靈活性。[0005]當(dāng)數(shù)據(jù)包通過流水線被處理時(shí),由構(gòu)成流水線的各流表指示的動(dòng)作存儲(chǔ)于動(dòng)作列表中,并最終構(gòu)成位于流水線的最后流表的動(dòng)作集(act1nset)。并且,元數(shù)據(jù)消息在各流表中交換。[000?]當(dāng)數(shù)據(jù)包被輸入到交換機(jī)并通過各流表時(shí),匹配字段(matchfield)和動(dòng)作集基于在各流表中為各流定義的指令而更新。[0007]所述動(dòng)作可根據(jù)各流表的指令而立即執(zhí)行,也可在動(dòng)作集中累積。在后一種情況中,累積的動(dòng)作集在數(shù)據(jù)包通過所有流表后被最后執(zhí)行。[0008]同時(shí),用于流水線處理的輸出端動(dòng)作是最終將數(shù)據(jù)包轉(zhuǎn)發(fā)至外部實(shí)體的動(dòng)作。因此,一旦輸出端動(dòng)作被執(zhí)行,除了數(shù)據(jù)包輸出的任何進(jìn)一步動(dòng)作都不能在數(shù)據(jù)包上執(zhí)行。即,任何進(jìn)一步動(dòng)作都不能基于輸出端動(dòng)作的信息而連接。[0009]并且,用于通過多個(gè)輸出端傳輸數(shù)據(jù)包的多播操作的分組表(grouptable)也具有同樣的問題。一旦數(shù)據(jù)包被轉(zhuǎn)發(fā)到多個(gè)輸出端,除了數(shù)據(jù)包輸出的任何進(jìn)一步動(dòng)作都不能在數(shù)據(jù)包上執(zhí)行。即,任何進(jìn)一步動(dòng)作都不能基于分組表的執(zhí)行結(jié)果而連接。【
發(fā)明內(nèi)容】[0010]技術(shù)問題[0011]為解決上述問題,本發(fā)明的目的在于提供一種根據(jù)流的輸出端處理流的方法。[0012]并且,為解決上述問題,本發(fā)明的另一目的在于提供一種執(zhí)行根據(jù)流的輸出端處理流的方法的網(wǎng)絡(luò)裝置。[0013]技術(shù)方案[0014]為實(shí)現(xiàn)上述目的,本發(fā)明提供一種處理以流水線(pipeline)連接的多個(gè)(N,其中N為2以上的自然數(shù))流表(fIowtabIe)中的流(fIow)的方法。所述方法包括:在多個(gè)流表中將流的數(shù)據(jù)包(packet)從第一流表傳遞至第N-1流表;在數(shù)據(jù)包通過第N-1流表后處理由關(guān)于數(shù)據(jù)包的第N-1流表指引的輸出專用第N流表(出口表(egresstable));以及在處理出口表后輸出數(shù)據(jù)包。[0015]此處,所述方法可在支持軟件定義網(wǎng)絡(luò)(SDN)的網(wǎng)絡(luò)裝置中執(zhí)行。[0016]此處,在數(shù)據(jù)包通過第N-1流表后指定流的輸出端(outputport),并且出口表中待執(zhí)行的動(dòng)作根據(jù)指定的輸出端而確定。[0017]并且,處理出口表包括附加虛擬局域網(wǎng)(VLAN)標(biāo)簽至待通過指定的輸出端輸出的數(shù)據(jù)包。[0018]并且,處理出口表包括計(jì)算待通過指定的輸出端輸出的流的數(shù)據(jù)包。[0019]并且,當(dāng)流的數(shù)據(jù)包的計(jì)算值等于或大于預(yù)設(shè)閾值時(shí)改變輸出端。[0020]并且,處理出口表包括當(dāng)數(shù)據(jù)包的大小等于或大于預(yù)設(shè)閾值時(shí)數(shù)據(jù)包的分段(fragmentat1n)。[0021]為實(shí)現(xiàn)本發(fā)明上述的另一目的,本發(fā)明提供了一種網(wǎng)絡(luò)裝置,包括:流表存儲(chǔ)部,存儲(chǔ)以流水線連接的多個(gè)(N,其中N為2以上的自然數(shù))流表;流表處理部,在存儲(chǔ)于流表存儲(chǔ)部的多個(gè)流表中將流的輸入的數(shù)據(jù)包從第一流表傳遞至第N-1流表,并且在數(shù)據(jù)包通過第N-1流表后處理由關(guān)于數(shù)據(jù)包的第N-1流表指引的輸出專用第N流表(出口表);以及數(shù)據(jù)包輸出部,在流表處理部處理出口表后輸出流表的數(shù)據(jù)包。[0022]此處,所述網(wǎng)絡(luò)裝置是支持軟件定義網(wǎng)絡(luò)(SDN)的網(wǎng)絡(luò)裝置。[0023]此處,在數(shù)據(jù)包通過第N-1流表后指定流的輸出端,并且出口表中待執(zhí)行的動(dòng)作根據(jù)指定的輸出端而確定。[0024]并且,處理出口表包括附加虛擬局域網(wǎng)(VLAN)標(biāo)簽至待通過指定的輸出端輸出的數(shù)據(jù)包。[0025]并且,處理出口表包括計(jì)算待通過指定的輸出端輸出的流的數(shù)據(jù)包。[0026]并且,當(dāng)流的數(shù)據(jù)包的計(jì)算值等于或大于預(yù)設(shè)閾值時(shí)改變輸出端。[0027]并且,處理出口表包括當(dāng)數(shù)據(jù)包的大小等于或大于預(yù)設(shè)閾值時(shí)數(shù)據(jù)包的分段。[0028]有益效果[0029]基于流表的流水線處理,利用本發(fā)明的處理流的方法以及執(zhí)行該方法的網(wǎng)絡(luò)裝置,與由流表指定的輸出端匹配的進(jìn)一步動(dòng)作能利用作為輸出專用流表的出口表執(zhí)行。因此,最終數(shù)據(jù)包輸出能通過連接至關(guān)于輸出端的信息的各種動(dòng)作而靈活控制?!靖綀D說明】[0030]圖1和圖2是對(duì)以流水線方式處理流表的方法進(jìn)行說明的概念圖。[0031]圖3是根據(jù)本發(fā)明的示例性實(shí)施例對(duì)處理流的方法進(jìn)行說明的概念圖。[0032]圖4是根據(jù)本發(fā)明對(duì)根據(jù)處理流的方法的VLANID標(biāo)記的示例性實(shí)施例進(jìn)行說明的概念圖。[0033]圖5是根據(jù)本發(fā)明對(duì)根據(jù)處理流的方法的VLANID標(biāo)記的示例性實(shí)施例進(jìn)行說明的另一概念圖。[0034]圖6是根據(jù)本發(fā)明對(duì)基于利用處理流的方法的流計(jì)算的輸出端改變方法的示例性實(shí)施例進(jìn)行說明的概念圖。[0035]圖7是根據(jù)本發(fā)明對(duì)利用處理流的方法進(jìn)行數(shù)據(jù)包分段(packetfragmentat1n)的示例性實(shí)施例進(jìn)行說明的概念圖。[0036]圖8是根據(jù)本發(fā)明的示例性實(shí)施例對(duì)出口表中字段的配置進(jìn)行說明的概念圖。[0037]圖9是對(duì)出口表的匹配字段的配置進(jìn)行說明的概念圖。[0038]圖10是根據(jù)本發(fā)明對(duì)出口表中利用包含通配符(wildcard)的匹配字段的實(shí)例進(jìn)行說明的示例性示意圖。[0039]圖11是根據(jù)本發(fā)明對(duì)出口表中利用用于大小比較的匹配字段的實(shí)例進(jìn)行說明的示例性示意圖。[0040]圖12是根據(jù)本發(fā)明對(duì)出口表中利用用于流計(jì)算的匹配字段的實(shí)例進(jìn)行說明的示例性示意圖。[0041]圖13是根據(jù)本發(fā)明對(duì)用于執(zhí)行處理流的方法的網(wǎng)絡(luò)裝置的示例性實(shí)施例進(jìn)行說明的框圖。【具體實(shí)施方式】[0042]盡管本發(fā)明易受各種變型和替代形式影響,但僅在附圖中以示例的方式對(duì)其特定實(shí)施例進(jìn)行說明并作詳細(xì)描述。然而,應(yīng)當(dāng)理解本發(fā)明并不限于此處公開的特定形式,相反,本發(fā)明的保護(hù)范圍包括屬于本發(fā)明的發(fā)明構(gòu)思和范圍內(nèi)的所有改動(dòng)、替代物和變型。附圖中相同的標(biāo)記表示相同的元件。[0043]應(yīng)當(dāng)理解的是,盡管術(shù)語“第一”、“第二”、“A”、“B”等在此用于描述不同的元件,但是這些元件并不受限于這些術(shù)語。這些術(shù)語僅用于將一個(gè)元件與另一元件區(qū)分開來。例如,第一元件可叫做第二元件,并且,類似地,第二元件可叫做第一元件,而不脫離本發(fā)明的范圍。此處使用的術(shù)語“和/或”包括一個(gè)或多個(gè)所關(guān)聯(lián)的列舉項(xiàng)目的任一個(gè)或者它們的結(jié)合。[0044]應(yīng)當(dāng)理解的是,當(dāng)某一元件定義為“連接”或“耦合”至另一元件時(shí),它既可與另一元件直接連接或親合,也可通過中間元件連接或親合。相反,應(yīng)當(dāng)理解的是,當(dāng)某一元件定義為“直接連接”或“直接耦合”至另一元件時(shí),它們中間無中間元件。[0045]此處所用的術(shù)語的目的僅在于描述特定實(shí)施例,不對(duì)本發(fā)明的范圍進(jìn)行限制。除非文中清楚地作出相反指示,此處使用的單數(shù)形式“一”、“一個(gè)”和“所述”的含義包含其復(fù)數(shù)形式。應(yīng)當(dāng)進(jìn)一步理解的是,當(dāng)此處使用術(shù)語“包含”、“包括”、“組成為”和/或“由…組成”時(shí),表示存在闡明的特征、整體、步驟、操作、元件、和/或部件,但是并不排除還存在或附加一個(gè)或更多其它特征、整體、步驟、操作、元件、部件,和/或其組合。[0046]除非另有其它定義,否則此處使用的所有術(shù)語具有與本發(fā)明所屬
技術(shù)領(lǐng)域:
中普通技術(shù)人員通常理解的含義相同的含義。應(yīng)當(dāng)進(jìn)一步理解的是,除非此處另有明確定義,否則通常使用的字典中定義的術(shù)語應(yīng)當(dāng)理解為具有與本發(fā)明的相關(guān)領(lǐng)域中的含義相同的含義,并且不能理解為理想化或過度形式化的含義。[0047]下文將會(huì)參照附圖對(duì)本發(fā)明的具體實(shí)施例進(jìn)行更加詳細(xì)的敘述。[0048]作為在網(wǎng)絡(luò)裝置中執(zhí)行的以流水線形式處理流表的方法,有兩種方法。在第一種方法中,數(shù)據(jù)包通過各流表,并且數(shù)據(jù)包所屬的流的動(dòng)作在各流表中立即執(zhí)行。并且在第二種方法中,數(shù)據(jù)包所屬的流的動(dòng)作在動(dòng)作集中累積,所述動(dòng)作集在數(shù)據(jù)包通過所有流表后被執(zhí)行。[0049]圖1和圖2是對(duì)以流水線方式處理流表的方法進(jìn)行說明的概念圖。[0050]首先,圖1所示的情形中,為多個(gè)(N,其中N為2以上的自然數(shù))流表10卜1至1(Π-N中的最后第N流表的特定流執(zhí)行輸出動(dòng)作102或分組輸出動(dòng)作103。[0051]同時(shí),圖2所示的情形中,由累積在動(dòng)作集104中的指令所指示的動(dòng)作中輸出動(dòng)作105或分組輸出動(dòng)作106在特定流通過N流表101-1至101-Ν的最后第N流表后執(zhí)行。即,動(dòng)作集中的輸出動(dòng)作或分組輸出動(dòng)作最后執(zhí)行。[0052]上述兩種情形中,數(shù)據(jù)包所屬的流的輸出端通過輸出動(dòng)作或者分組輸出動(dòng)作而指定,并且屬于流的數(shù)據(jù)包通過指定的輸出端轉(zhuǎn)發(fā)。并且,一旦指定輸出端,任何進(jìn)一步動(dòng)作無法在流上執(zhí)行。即,任何進(jìn)一步動(dòng)作都不能基于指定的輸出端上的信息而連接。[0053]并且,流表如上文所述以流水線方式處理。這樣,流可通過利用“GoTo表”(GoToTable)指令而轉(zhuǎn)發(fā)至只存在于流水線的轉(zhuǎn)發(fā)方向的另一流表,并且這樣“GoTo表”指令無法在最后流表中使用。[0054]根據(jù)本發(fā)明處理流的方法[0055]為解決上述問題,根據(jù)本發(fā)明的示例性實(shí)施例的處理流表的方法可引入作為輸出專用流表的出口表。即,當(dāng)存在多個(gè)(N,其中N為2以上的自然數(shù))流表時(shí),最后流表(第N流表)可成為或包括出口表。[0056]圖3是根據(jù)本發(fā)明的示例性實(shí)施例對(duì)處理流的方法進(jìn)行說明的概念圖。[0057]參見圖3,根據(jù)本發(fā)明的交換機(jī)可具有N-1個(gè)流表301-1、301-2、…和301-(N-1),以及出口表305,并且它們以流水線方式連接。[0058]輸入至交換機(jī)的數(shù)據(jù)包可從第一流表301-1傳遞至第N-1流表301-(N_1)。之后可執(zhí)行累積的動(dòng)作集302。在最終執(zhí)行動(dòng)作集302中包含的輸出動(dòng)作304或者分組輸出動(dòng)作303后,數(shù)據(jù)包可被傳送至出口表305??蛇x擇性地,如圖1所示,分組輸出動(dòng)作或者輸出動(dòng)作的立即執(zhí)行可使流被傳送至出口表305而無需使用這種動(dòng)作集。[0059]在出口表305中,可執(zhí)行由分組輸出動(dòng)作303或輸出動(dòng)作304指定的輸出端的操作以使數(shù)據(jù)包通過指定的輸出端而被輸出。[0060]下文中,為根據(jù)本發(fā)明對(duì)上述處理流的方法作進(jìn)一步詳細(xì)描當(dāng)前第1頁(yè)1 2