国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      操作包含影子表的轉(zhuǎn)發(fā)元件的方法以及相關(guān)的轉(zhuǎn)發(fā)元件的制作方法

      文檔序號:7791870閱讀:183來源:國知局
      操作包含影子表的轉(zhuǎn)發(fā)元件的方法以及相關(guān)的轉(zhuǎn)發(fā)元件的制作方法
      【專利摘要】可提供方法來在包含轉(zhuǎn)發(fā)平面和控制平面的網(wǎng)絡的轉(zhuǎn)發(fā)平面中操作轉(zhuǎn)發(fā)元件。方法可包含通過轉(zhuǎn)發(fā)元件的輸入/輸出端口來接收分組并且嘗試匹配分組與轉(zhuǎn)發(fā)元件的流表。響應于分組未命中與流表的匹配,轉(zhuǎn)發(fā)元件可嘗試匹配分組與轉(zhuǎn)發(fā)元件的影子表。響應于分組與影子表匹配,可基于來自影子表的匹配的影子規(guī)則在流表中安裝新的流規(guī)則。還討論了有關(guān)的轉(zhuǎn)發(fā)元件。
      【專利說明】操作包含影子表的轉(zhuǎn)發(fā)元件的方法以及相關(guān)的轉(zhuǎn)發(fā)元件

      【技術(shù)領(lǐng)域】
      [0001] 本公開指向通信,并且更特別地指向網(wǎng)絡通信方法以及相關(guān)網(wǎng)絡元件。

      【背景技術(shù)】
      [0002] 大多數(shù)現(xiàn)代以太網(wǎng)轉(zhuǎn)發(fā)元件(例如,交換機和路由器)包含流表(通常從TCAM或三 元內(nèi)容可尋址存儲器建立),流表以線路速率運行來實現(xiàn)防火墻、NAT (網(wǎng)絡地址轉(zhuǎn)換)和QoS (服務質(zhì)量),并且收集統(tǒng)計。雖然不同供應商的流表可以不同,但是OpenFlow開發(fā)在許多 交換機和路由器中運行的一組公共功能。
      [0003] OpenFlow提供開放協(xié)議來對不同的轉(zhuǎn)發(fā)元件(例如,交換機和路由器)中的流表進 行編程。例如,網(wǎng)絡管理者可以將業(yè)務劃分成生產(chǎn)流和研究流,和/或研究員可以通過選擇 他們的分組遵循的路線以及他們接收的處理來控制他們自己的流。以此方式,研究員可以 嘗試新的路由協(xié)議、安全模型、尋址方案以及甚至IP (因特網(wǎng)協(xié)議)的備選。在相同的網(wǎng)絡 上,生產(chǎn)業(yè)務可以是傳統(tǒng)地隔離并且處理。
      [0004] OpenFlow轉(zhuǎn)發(fā)元件(例如,交換機)的數(shù)據(jù)路徑可包含流表,以及與包含在流表中 的每個流規(guī)則(也被稱作流條目)關(guān)聯(lián)的動作。OpenFlow轉(zhuǎn)發(fā)元件所支持的一組動作可以 是可擴展的。為了高性能和低成本,數(shù)據(jù)路徑可具有仔細劃定的靈活度,這可意味著放棄規(guī) 定每個分組的任意處理的能力并且尋求更有限的(但仍然有用的)動作范圍。
      [0005] OpenFlow轉(zhuǎn)發(fā)元件可包含具有多個流規(guī)則(具有與每個流規(guī)則關(guān)聯(lián)的動作)的流 表來告訴轉(zhuǎn)發(fā)元件如何處理相應流,將交換機連接到遠程OpenFlow控制器的安全信道(允 許使用OpenFlow協(xié)議(它為控制器提供與轉(zhuǎn)發(fā)元件通信的開放和標準方式)在控制器與轉(zhuǎn) 發(fā)元件之間發(fā)送命令和分組)。通過規(guī)定標準接口(OpenFlow協(xié)議)(可使得用外部控制器 通過標準接口來定義轉(zhuǎn)發(fā)元件流表中的規(guī)則/條目),研究員可不需要個別地對OpenFlow 轉(zhuǎn)發(fā)元件進行編程。
      [0006] OpenFlow轉(zhuǎn)發(fā)元件可包含一個或多個流表和組表(它們可執(zhí)行分組查找和轉(zhuǎn)發(fā)) 以及到外部OpenFlow控制器的OpenFlow信道。OpenFlow控制器經(jīng)由OpenFlow協(xié)議來管 理轉(zhuǎn)發(fā)元件。使用此協(xié)議,控制器可以添加、更新、并且刪除流規(guī)則/條目,反應性地(響應 于在轉(zhuǎn)發(fā)元件處接收的分組)和主動地(例如,對新的轉(zhuǎn)發(fā)元件的流表進行編程)。
      [0007] 轉(zhuǎn)發(fā)元件中的每個流表可包含一組規(guī)則/條目。每個流規(guī)則/條目可包含匹配的 字段、計數(shù)器和應用于匹配分組的一組指令。
      [0008] 在轉(zhuǎn)發(fā)元件處的匹配可開始于第一流表(也被稱作主流表)并且可繼續(xù)到轉(zhuǎn)發(fā)元 件的附加的流表。流規(guī)則/條目以優(yōu)先級次序匹配數(shù)據(jù)分組,使用每個表中的第一匹配規(guī) 則/條目。如果為流表中的數(shù)據(jù)分組找到匹配的規(guī)則/條目,則為數(shù)據(jù)分組執(zhí)行與具體流 規(guī)則/條目關(guān)聯(lián)的指令。如果沒有找到流表中的數(shù)據(jù)分組的匹配,則結(jié)果可取決于轉(zhuǎn)發(fā)元 件配置??稍贠penFlow信道上將數(shù)據(jù)分組轉(zhuǎn)發(fā)到控制器,可分出數(shù)據(jù)分組,或匹配數(shù)據(jù)分 組的嘗試可繼續(xù)到轉(zhuǎn)發(fā)元件的下一流表。
      [0009] 與每個流規(guī)則/條目關(guān)聯(lián)的指令描述數(shù)據(jù)分組轉(zhuǎn)發(fā)、數(shù)據(jù)分組修改、組表處理和 管線處理。管線處理指令允許數(shù)據(jù)分組被發(fā)送到后續(xù)表用于進一步處理并且允許信息(例 如,以元數(shù)據(jù)的形式)在表之間通信。當與匹配的流規(guī)則/條目關(guān)聯(lián)的指令集不規(guī)定下一表 時,可停止表管線處理。在此點上,通常可修改并且轉(zhuǎn)發(fā)數(shù)據(jù)分組。
      [0010] 流規(guī)則/條目可將相應數(shù)據(jù)分組轉(zhuǎn)發(fā)到端口。這通常是物理端口,但它還可以是 由交換機定義的虛擬端口或由OpenFlow交換機規(guī)范定義的預留虛擬端口。預留虛擬端口 可規(guī)定一般轉(zhuǎn)發(fā)動作,例如,使用非OpenFlow方法來發(fā)送到控制器、泛洪或轉(zhuǎn)發(fā),例如"正 常"交換機處理,而交換機定義的虛擬端口可規(guī)定鏈路聚合組、隧道或回送接口。
      [0011] 流規(guī)則/條目還可指向規(guī)定附加的處理的群組。群組表示用于泛洪的動作的集 合,以及更復雜的轉(zhuǎn)發(fā)語義(例如,多路徑、快速重新路由和鏈路聚合)。作為間接的一般層, 群組也使多個流能夠轉(zhuǎn)發(fā)到單個標識符(例如,轉(zhuǎn)發(fā)到公共下一跳的IP)。此抽象可允許有 效率地改變跨流的公共輸出動作。
      [0012] 組表可包含組條目,其中每個組條目包含動作欄目的列表(具有依賴于組類型的 具體語義)。一個或多個動作欄目中的動作適用于發(fā)送到群組的數(shù)據(jù)分組。
      [0013] 例如,在"OpenFlow交換機規(guī)范",實現(xiàn)版本1. 1. 0 (有線協(xié)議0x02),2011年2 月 28 日中,并且參考McKeown 等的標題為"OpenFlow :Enabling Innovation In Campus Networks",2008年3月14日,討論OpenFlow轉(zhuǎn)發(fā)元件(例如,交換機和/或路由器)、控制 器和協(xié)議。以上兩個參考的文檔的公開據(jù)此通過引用全部并入本文。
      [0014] OpenFlow信道是在OpenFlow接口上連接OpenFlow轉(zhuǎn)發(fā)元件與控制器的接口。接 口自身可以是具體的實現(xiàn),并且它可使用TCP (傳輸控制協(xié)議)連接或SCTP (流控制傳輸協(xié) 議)連接來實現(xiàn)。此外,TLS (傳輸層安全)可用于發(fā)送消息(消息是由控制器加密并且由轉(zhuǎn) 發(fā)元件解密)。
      [0015] 盡管有以上討論的網(wǎng)絡,在本領(lǐng)域中繼續(xù)存在對包含轉(zhuǎn)發(fā)元件和控制器的網(wǎng)絡中 的改進操作的需要。


      【發(fā)明內(nèi)容】

      [0016] 因此目標是處理上述缺點中的至少一些和/或改進網(wǎng)絡性能。
      [0017] 根據(jù)一些實施例,可提供方法來在包含轉(zhuǎn)發(fā)平面和控制平面的網(wǎng)絡的轉(zhuǎn)發(fā)平面中 操作轉(zhuǎn)發(fā)元件。方法可包含通過轉(zhuǎn)發(fā)元件的輸入/輸出端口來接收分組并且嘗試匹配分組 與轉(zhuǎn)發(fā)元件的流表。響應于分組未命中與流表的匹配,可執(zhí)行匹配分組與轉(zhuǎn)發(fā)元件的影子 表的嘗試。響應于分組與影子表匹配,可基于來自影子表的匹配的影子規(guī)則在流表中安裝 新的流規(guī)則。
      [0018] 此外,安裝新的流規(guī)則可包含基于來自影子表的匹配的影子規(guī)則在流表中安裝新 的流規(guī)則而不將分組從轉(zhuǎn)發(fā)元件傳送到網(wǎng)絡的控制平面??筛鶕?jù)來自影子表的匹配的影子 規(guī)則和/或根據(jù)新的流規(guī)則通過轉(zhuǎn)發(fā)元件來處理分組。通過使用影子規(guī)則來安裝流規(guī)則, 可減少轉(zhuǎn)發(fā)元件與控制平面之間的通信業(yè)務,和/或可減少在控制平面處的處理負擔。
      [0019] 響應于分組未命中與流表的匹配以及響應于分組未命中與影子表的匹配,可將分 組內(nèi)(packet-in)消息傳送到網(wǎng)絡的控制平面中的控制器,其中分組內(nèi)消息包含分組。
      [0020] 分組可以是數(shù)據(jù)分組,并且響應于數(shù)據(jù)分組未命中與流表的匹配以及響應于數(shù)據(jù) 分組未命中與影子表的匹配,轉(zhuǎn)發(fā)元件的學習表可更新為關(guān)聯(lián)數(shù)據(jù)分組的源與輸入/輸出 端口。此外,數(shù)據(jù)分組可以是第一數(shù)據(jù)分組。響應于從對應于分組內(nèi)消息的控制器接收影 子修改消息,可在影子表中安裝影子規(guī)則,它關(guān)聯(lián)來自由第一數(shù)據(jù)分組的目的地地址識別 的源的后續(xù)數(shù)據(jù)分組與轉(zhuǎn)發(fā)元件的虛擬內(nèi)部端口。在安裝影子規(guī)則之后,可通過轉(zhuǎn)發(fā)元件 的輸入/輸出端口來接收第二數(shù)據(jù)分組,第二數(shù)據(jù)分組具有匹配第一數(shù)據(jù)分組的目的地地 址的源地址??蓤?zhí)行匹配第二數(shù)據(jù)分組與轉(zhuǎn)發(fā)元件的流表的嘗試。響應于第二數(shù)據(jù)分組未 命中與流表的匹配,可執(zhí)行匹配第二數(shù)據(jù)分組與轉(zhuǎn)發(fā)元件的影子表的嘗試。響應于第二數(shù) 據(jù)分組與影子表的影子規(guī)則匹配,可基于來自影子表的匹配的影子規(guī)則在流表中安裝新的 流規(guī)則。可根據(jù)來自影子表的匹配的影子規(guī)則和/或根據(jù)新的流規(guī)則通過轉(zhuǎn)發(fā)元件來處理 第二數(shù)據(jù)分組。
      [0021] 分組可以是在轉(zhuǎn)發(fā)元件的控制端口處接收的第一控制分組,用于在客戶端裝置與 服務器裝置之間的會話。響應于從對應于分組內(nèi)消息的控制器接收影子修改消息,可在影 子表中安裝影子規(guī)則,影子規(guī)則匹配在控制端口處接收的并且具有匹配第一控制分組的源 地址和/或目的地地址的源地址和/或具有匹配第一控制分組的源地址和/或目的地地 址的目的地地址的后續(xù)控制分組,其中影子規(guī)則從匹配控制分組來識別端口命令。在安裝 影子規(guī)則之后,可通過轉(zhuǎn)發(fā)元件的控制端口來接收第二控制分組,第二控制分組具有匹配 第一控制分組的源地址和/或目的地地址的源地址和/或匹配第一控制分組的源地址和/ 或目的地地址的目的地地址??蓤?zhí)行匹配第二控制分組與轉(zhuǎn)發(fā)元件的流表的嘗試。響應 于第二控制分組未命中與流表的匹配,可執(zhí)行匹配第二控制分組與轉(zhuǎn)發(fā)元件的影子表的嘗 試。響應于第二控制分組匹配影子表的影子規(guī)則,可執(zhí)行影子規(guī)則的表達引擎來識別第二 控制分組的命令類型。響應于識別第二控制分組的命令類型,可基于第二控制分組的命令 類型在流表中安裝新的流規(guī)則??蓪⒌诙刂品纸M從轉(zhuǎn)發(fā)元件的輸入/輸出端口轉(zhuǎn)發(fā)到目 的地。
      [0022] 第二控制分組可包含端口命令控制分組,其識別用于在客戶端與服務器裝置之間 傳送的后續(xù)數(shù)據(jù)分組的數(shù)據(jù)端口,并且安裝新的流規(guī)則可包含安裝新的流規(guī)則來定義用于 在客戶端與服務器裝置之間傳送的后續(xù)數(shù)據(jù)分組的針孔。在安裝新的流規(guī)則之后,可接收 具有匹配第一控制分組的源地址和/或目的地地址的源地址和/或具有匹配第一控制分組 的源地址和/或目的地地址的目的地地址的數(shù)據(jù)分組??蓤?zhí)行匹配數(shù)據(jù)分組與轉(zhuǎn)發(fā)元件的 流表的嘗試,以及響應于數(shù)據(jù)分組與流表的新的流規(guī)則匹配,可根據(jù)由新的流規(guī)則定義的 針孔來處理數(shù)據(jù)分組。
      [0023] 分組可以是第一分組,并且響應于從對應于分組內(nèi)消息的控制器接收影子修改消 息,可在影子表中安裝影子規(guī)則,影子規(guī)則定義地址和/或端口的范圍/列表以及與第一分 組的源地址和/或目的地地址關(guān)聯(lián)的新的流規(guī)則。在安裝影子規(guī)則之后,可通過轉(zhuǎn)發(fā)元件 的輸入/輸出端口來接收第二分組,第二分組具有匹配第一分組的源地址和/或目的地地 址的源地址和/或匹配第一分組的源地址和/或目的地地址的目的地地址。
      [0024] 可執(zhí)行匹配第二分組與轉(zhuǎn)發(fā)元件的流表的嘗試,并且響應于第二分組未命中與流 表的匹配,可執(zhí)行匹配第二分組與轉(zhuǎn)發(fā)元件的影子表的嘗試。響應于第二分組匹配影子表 的影子規(guī)則,第二分組的源端口和/或目的地端口可與由影子規(guī)則定義的地址和/或端口 的范圍/列表比較。響應于第二分組的源端口和/或目的地端口匹配由影子規(guī)則定義的地 址和/或端口的范圍/列表,可在流表中安裝新的流規(guī)則用于具有匹配第一分組的源地址 和/或目的地地址的源地址和/或具有匹配第一分組的源地址和/或目的地地址的目的地 地址并且具有來自第二分組的地址和/或端口的分組??蓪⒌诙纸M從轉(zhuǎn)發(fā)元件的輸入/ 輸出端口轉(zhuǎn)發(fā)到目的地。在安裝新的流規(guī)則之后,可接收具有匹配第一分組的源地址和/ 或目的地地址的源地址和/或具有匹配第一分組的源地址和/或目的地地址的目的地地址 并且具有來自第二分組的地址和/或端口的第三分組??蓤?zhí)行匹配第三分組與轉(zhuǎn)發(fā)元件的 流表的嘗試,并且響應于數(shù)據(jù)分組與流表的新的流規(guī)則匹配,可根據(jù)新的流規(guī)則來處理數(shù) 據(jù)分組。
      [0025] 網(wǎng)絡可以是OpenFlow網(wǎng)絡,其中轉(zhuǎn)發(fā)平面作為OpenFlow轉(zhuǎn)發(fā)平面,其中轉(zhuǎn)發(fā)元 件作為OpenFlow轉(zhuǎn)發(fā)元件,其中控制平面作為OpenFlow控制平面,并且其中控制器作 為OpenFlow控制器。此外,將分組內(nèi)消息傳送到控制器可包含在OpenFlow轉(zhuǎn)發(fā)元件與 OpenFlow控制器之間的OpenFlow信道上傳送分組內(nèi)消息。此外,可響應于分組與流表匹配 根據(jù)流表的匹配的流規(guī)則通過轉(zhuǎn)發(fā)元件來處理分組。
      [0026] 根據(jù)一些其它實施例,可在包含轉(zhuǎn)發(fā)平面和控制平面的網(wǎng)絡的轉(zhuǎn)發(fā)平面中提供轉(zhuǎn) 發(fā)元件。轉(zhuǎn)發(fā)元件可包含多個輸入/輸出端口,配置為提供與轉(zhuǎn)發(fā)平面的其它轉(zhuǎn)發(fā)元件的 通信,以及處理器,耦合到多個輸入/輸出端口。處理器可配置為通過轉(zhuǎn)發(fā)元件的輸入/輸 出端口來接收分組;嘗試匹配分組與轉(zhuǎn)發(fā)元件的流表;響應于分組未命中與流表的匹配, 嘗試匹配分組與轉(zhuǎn)發(fā)元件的影子表;以及響應于分組與影子表匹配,基于來自影子表的匹 配的影子規(guī)則在流表中安裝新的流規(guī)則。

      【專利附圖】

      【附圖說明】
      [0027] 包含來提供本公開的進一步理解并且并入以及構(gòu)成本申請的一部分的附圖圖示 本發(fā)明的某些非限制性實施例。在圖中: 圖1是圖示根據(jù)一些實施例的包含控制器和轉(zhuǎn)發(fā)元件的網(wǎng)絡的框圖; 圖2是圖示根據(jù)一些實施例的圖1的轉(zhuǎn)發(fā)元件的框圖; 圖3是圖示根據(jù)一些實施例的圖1的控制器的框圖; 圖4-圖6是圖示根據(jù)一些實施例的轉(zhuǎn)發(fā)元件的操作的流程圖;以及 圖7是圖示在客戶端與服務器裝置之間雙向傳遞業(yè)務的規(guī)則的圖表。

      【具體實施方式】
      [0028] 現(xiàn)在將在下文中參考附圖更完整地描述本發(fā)明的實施例,附圖中示出本發(fā)明的實 施例的示例。然而,本發(fā)明可以用不同的形式來實現(xiàn)并且不應解釋為限制于本文闡述的實 施例。也應注意到這些實施例不是相互排斥的。來自一個實施例的部件可默認假定為在一 個或多個其它實施例中出現(xiàn)/使用。
      [0029] 根據(jù)在本文中討論的一些實施例,OpenFlow轉(zhuǎn)發(fā)元件103可稱合到在OpenFlow 信道上的單個OpenFlow控制器101。根據(jù)一些其它實施例,OpenFlow協(xié)議可擴展以提供 來自一個OpenFlow控制器的網(wǎng)絡轉(zhuǎn)發(fā)平面中的OpenFlow轉(zhuǎn)發(fā)元件到網(wǎng)絡控制平面中的另 一 OpenFlow控制器之間的連接的改變方向,如在美國申請?zhí)?3/369, 993,于2012年2月 9 日提交的,并且標題為 "Methods of Redirecting Network Forwarding Elements and Related Forwarding Elements and Controllers" 中討論的。
      [0030] 在一些OpenFlow網(wǎng)絡中,OpenFlow轉(zhuǎn)發(fā)元件具有包含多個流規(guī)則/條目的主流 表,并且OpenFlow管線定義在OpenFlow轉(zhuǎn)發(fā)元件內(nèi)如何處理分組。如果在主流表中分組 不匹配,則分組可視為表未命中。
      [0031] 當分組不匹配主流表的任何流規(guī)則/條目時,可發(fā)生主流表未命中,并且導致主 流表未命中的分組的處理可取決于主流表的配置。默認可以是使用分組內(nèi)消息將分組發(fā)送 到控制器或分出分組。在OpenFlowl. 1中,另一選項是如果在管線中有多于一個流表時,則 將繼續(xù)下一流表的分組處理。
      [0032] 在OpenFlowl. 1中,可節(jié)省到達入口端口(也被稱作輸入端口)的每個分組并且將 其傳遞到下一表用于進一步處理。分組與流表中的流規(guī)則/條目匹配,轉(zhuǎn)發(fā)元件對由匹配 分組的任何流規(guī)則/條目定義的分組執(zhí)行動作,并且可如以上所論述的處理導致表未命中 的分組。
      [0033] 可通過匹配分組的報頭與主流表中的流規(guī)則/條目來處理到達OpenFlow轉(zhuǎn)發(fā)元 件的入口 /輸入端口的分組。可根據(jù)OpenFlow規(guī)則來應用匹配準則。如果有匹配(也被稱 作命中),執(zhí)行匹配的流規(guī)則/條目的對應指令。如果分組不匹配主流表的任何流規(guī)則/條 目(也被稱作未命中),轉(zhuǎn)發(fā)元件可形成包含分組的分組內(nèi)消息并且然后將分組內(nèi)消息傳送 到控制器。
      [0034] 如上所述,OpenFlow控制器可在OpenFlow轉(zhuǎn)發(fā)元件的流表中對規(guī)則進行編程,并 且轉(zhuǎn)發(fā)元件可限制可包含在其流表中的流規(guī)則/條目的數(shù)量。因此,轉(zhuǎn)發(fā)元件可能無法存 儲用于它可能需要促進的所有可能的通信的流規(guī)則/條目。其結(jié)果是,一些流的分組(例 如,新的流的第一分組)可在轉(zhuǎn)發(fā)元件的主流表中未命中,并且未命中可觸發(fā)控制器將新的 流規(guī)則/條目編程到主流表(使用流修改消息)來通過轉(zhuǎn)發(fā)元件定義新的流。此外,可需要 控制器將未命中的分組從分組內(nèi)消息轉(zhuǎn)發(fā)到轉(zhuǎn)發(fā)元件的正確輸出端口。
      [0035] 因此,端點裝置之間的新的分組流的新的流規(guī)則/條目可用于控制端點裝置之間 的數(shù)據(jù)分組的流。在時間段到期而沒有接收到匹配新的流規(guī)則/條目的任何分組時,可從 主流表刪除流規(guī)則/條目來為其它流規(guī)則/條目騰出空間。
      [0036] 在一些OpenFlow網(wǎng)絡中,因此可需要控制器為每個新的分組流和過期的分組流 的每個后續(xù)發(fā)生編程并且重新編程主流表,并且還可需要控制器為每個新的分組流和過期 的分組流的每個后續(xù)發(fā)生將初始分組傳送到轉(zhuǎn)發(fā)元件的正確輸出端口。在一些部署場景和 /或業(yè)務狀況中,分組內(nèi)消息、流修改消息和在轉(zhuǎn)發(fā)元件與控制器之間的轉(zhuǎn)發(fā)的分組的此業(yè) 務會淹沒轉(zhuǎn)發(fā)元件與控制器之間的OpenFlow信道。
      [0037] 圖1是圖示網(wǎng)絡105的框圖,網(wǎng)絡105包含控制平面中的多個OpenFlow控制器 101-1到101-n (控制器)以及轉(zhuǎn)發(fā)平面中的多個OpenFlow轉(zhuǎn)發(fā)元件103-1到103-m (轉(zhuǎn) 發(fā)元件),OpenFlow控制器101-1到101-n與OpenFlow轉(zhuǎn)發(fā)元件103-1到103-m之間的通 信是根據(jù)OpenFlow協(xié)議通過其間的OpenFlow信道(信道)來提供。例如,可使用傳輸控制 協(xié)議(TCP)連接和/或流控制傳輸協(xié)議(SCTP)連接來實現(xiàn)OpenFlow信道,并且傳輸層安 全(TLS)可用于在相應控制器與轉(zhuǎn)發(fā)元件之間通信加密的消息。此外,可在轉(zhuǎn)發(fā)平面中的 OpenFlow轉(zhuǎn)發(fā)元件103-1到103-m之間提供通信路徑111 (與OpenFlow信道分開)來支 持轉(zhuǎn)發(fā)元件之間的數(shù)據(jù)分組的傳送。通信路徑111還可通過轉(zhuǎn)發(fā)元件103-1到103-m中 的一個或多個來提供兩個或者更多遠程通信裝置/節(jié)點(例如,客戶端裝置和服務器裝置) 之間的耦合。此外,可在控制平面中的控制器101-1到101-n之間提供通信路徑115 (與 OpenFlow信道分開)來支持控制器之間的協(xié)調(diào)。
      [0038] 圖2是圖示圖1的OpenFlow轉(zhuǎn)發(fā)元件103的元件的框圖。如所示的,每個轉(zhuǎn)發(fā)元 件103可包含耦合到一個或多個輸入/輸出端口 209的處理器207。存儲器211可耦合到 處理器207,并且存儲器211可用于存儲流表201、影子表221和/或?qū)W習表223。一個或多 個流表201可耦合到處理器207,每個流表可包含多個流規(guī)則/條目,并且每個流規(guī)則/條 目可定義用于處理/轉(zhuǎn)發(fā)匹配相應流規(guī)則/條目的數(shù)據(jù)分組的指令。換句話說,每個流規(guī) 則/條目可定義相應數(shù)據(jù)流的數(shù)據(jù)分組的處理。來自其它轉(zhuǎn)發(fā)元件的數(shù)據(jù)分組可在相應輸 入/輸出端口 209處接收,根據(jù)來自流表201的相應流規(guī)則/條目由處理器207處理,并且 從相應輸入/輸出端口 209傳送到其它轉(zhuǎn)發(fā)元件。此外,處理器207可耦合到一個或多個 影子表221和/或?qū)W習表223,并且處理器207還可包含處理機208,其配置為對影子編程、 轉(zhuǎn)發(fā)和/或?qū)W習表221/223和/或根據(jù)影子、轉(zhuǎn)發(fā)和/或?qū)W習表221/223來處理數(shù)據(jù)分組。
      [0039] 每個轉(zhuǎn)發(fā)元件103還可包含組表215和OpenFlow安全信道接口 203 (信道接口)。 更特別地,OpenFlow安全信道接口 203可通過圖1的OpenFlow信道來提供處理器207與相 應OpenFlow控制器101之間的通信。例如,OpenFlow安全信道接口 203可使用TLS來在 OpenFlow信道上將消息加密/發(fā)送到相應控制器和/或在OpenFlow信道上接收/解密由 相應控制器傳送的消息。例如,在通過輸入端口 205中的一個來接收數(shù)據(jù)分組并且處理器 207無法匹配數(shù)據(jù)分組與流表201和/或影子表221中的流規(guī)則/條目的情況下,處理器 207可在OpenFlow信道上通過OpenFlow安全信道接口 203將包含數(shù)據(jù)分組的分組內(nèi)消息 傳送到相應控制器。在另一方向中,處理器207可通過OpenFlow信道接口 203在OpenFlow 信道上從相應控制器接收消息來改變(例如,添加、更新和/或刪除)流表201的流規(guī)則/條 目和/或影子表221的影子規(guī)則/條目。
      [0040] 圖3是圖示圖1的OpenFlow控制器101的元件的框圖。如所示的,每個控制器 101可包含耦合在OpenFlow安全信道接口 303 (信道接口)與控制器接口 309之間的處理 器307。OpenFlow安全信道接口 303可通過圖1的OpenFlow信道來提供處理器307與相 應OpenFlow轉(zhuǎn)發(fā)元件103之間的通信。例如,OpenFlow安全信道接口 303可使用TLS在 OpenFlow信道上將消息加密/發(fā)送到相應轉(zhuǎn)發(fā)元件和/或在OpenFlow信道上接收/解密 由相應轉(zhuǎn)發(fā)元件傳送的消息。OpenFlow控制器101還可包含耦合到處理器307的存儲器 311。
      [0041] 以下將相對于圖4、圖5和圖6的流程圖來更詳細地討論圖1、圖2和圖3的 OpenFlow轉(zhuǎn)發(fā)元件103 (轉(zhuǎn)發(fā)元件)和OpenFlow控制器101 (控制器)的操作。此外,圖1 的每個轉(zhuǎn)發(fā)元件可具有如以上相對于圖2所論述的結(jié)構(gòu),并且圖1的每個控制器可具有如 以上相對于圖3所論述的結(jié)構(gòu)。
      [0042] 根據(jù)以上討論的OpenFlow協(xié)議,可默認使用分組內(nèi)消息將導致主流表在轉(zhuǎn)發(fā)元 件103處未命中的分組發(fā)送到對應控制器101。作為響應,控制器101可將流修改消息發(fā) 送到轉(zhuǎn)發(fā)元件來在主流表中對新的流規(guī)則進行編程,并且控制器101還可將未命中的分組 轉(zhuǎn)發(fā)到轉(zhuǎn)發(fā)元件103的適當端口。通過根據(jù)在本文中討論的實施例向轉(zhuǎn)發(fā)元件103提供一 些附加的信息,轉(zhuǎn)發(fā)元件103可作出更智能的決定來從控制器101卸載一些功能性并且減 少在OpenFlow信道上的轉(zhuǎn)發(fā)元件103與控制器101之間的通信業(yè)務。因此,可減少控制器 101處理負載和/或OpenFlow信道業(yè)務。
      [0043] 到達轉(zhuǎn)發(fā)元件103的端口 209的分組可分類為控制分組和數(shù)據(jù)分組。因為控制分 組旨在消耗在控制平面中,所以轉(zhuǎn)發(fā)元件103可必須將控制分組轉(zhuǎn)發(fā)到控制器101用于進 一步處理。如以下所論述的,還可將不匹配轉(zhuǎn)發(fā)元件103的流表201的數(shù)據(jù)分組轉(zhuǎn)發(fā)到控 制器101。
      [0044] 對于分組未命中,轉(zhuǎn)發(fā)元件103可生成分組內(nèi)消息(包含未命中的分組),并且將分 組內(nèi)消息傳送到控制器101。作為響應,控制器101生成流修改消息來在轉(zhuǎn)發(fā)元件103的流 表201中安裝流規(guī)則/條目,并且控制器101在OpenFlow信道上將流修改消息傳送到轉(zhuǎn)發(fā) 元件101。流修改消息包含整個流規(guī)則/條目連同將指向的匹配指令/動作(執(zhí)行匹配指令 /動作來在轉(zhuǎn)發(fā)平面中處理流的分組(包含未命中的分組))。此外,控制器101傳送包含未 命中的分組的分組外(packet-out)消息來將未命中的分組轉(zhuǎn)發(fā)到轉(zhuǎn)發(fā)元件103的正確輸 出端口 209。
      [0045] 取決于到達轉(zhuǎn)發(fā)元件103的新的流的速率,此序列可淹沒在轉(zhuǎn)發(fā)元件103與控制 器101之間的OpenFlow信道。實現(xiàn)特征(例如,防火墻和/或靈活的ACL (接入控制列表) 匹配)可增加在OpenFlow信道上的通信業(yè)務。以下將相對于在圖4、圖5和圖6的流程圖 中圖示的三個用例來更詳細地討論根據(jù)一些實施例的控制器卸載。
      [0046] 圖4是圖示在L2 (層2)橋接類型操作期間卸載控制器101操作的轉(zhuǎn)發(fā)元件103 的操作的流程圖。與此相反,如以下更詳細討論的,傳統(tǒng)的橋接算法作為在控制器101處的 應用來運行。
      [0047] 假定未知目的地來支持兩個遠程網(wǎng)絡節(jié)點(本文被稱作節(jié)點A和節(jié)點B)之間的媒 體接入控制(MAC)通信,由傳統(tǒng)的OpenFlow轉(zhuǎn)發(fā)元件和控制器來執(zhí)行下文的橋接操作。例 如,分組可到達轉(zhuǎn)發(fā)元件的端口 C,轉(zhuǎn)發(fā)元件具有以太網(wǎng)源地址A (指示節(jié)點A是分組的源) 并且具有以太網(wǎng)目的地地址B (指示節(jié)點B是分組的預期目的地)。轉(zhuǎn)發(fā)元件可使用目的地 地址B來嘗試匹配分組與主流表,但是因為轉(zhuǎn)發(fā)元件不知道目的地節(jié)點,所以在主流表處 可未命中分組(即,目的地地址B可不與主流表的任何流規(guī)則/條目匹配)。
      [0048] 傳統(tǒng)地,轉(zhuǎn)發(fā)元件可在OpenFlow信道上將分組內(nèi)消息發(fā)送到控制器,并且分組內(nèi) 消息可包含未命中的分組以及端口 C的識別(分組是通過端口 C從節(jié)點A接收)。在接收到 分組內(nèi)消息時,控制器可查找以太網(wǎng)源地址A,并且如果控制器沒有在控制器處的學習表中 的以太網(wǎng)源地址A,則源地址A連同端口 C的識別(通過端口 C來接收分組)一起記錄在學 習表中。
      [0049] 然后控制器生成兩個流修改消息,在OpenFlow信道上將流修改消息傳送到轉(zhuǎn)發(fā) 元件(流修改消息表示轉(zhuǎn)發(fā)元件的主流表的兩個新的規(guī)則)。第一流修改消息定義第一流規(guī) 則("以太網(wǎng)Src B :以太網(wǎng)Dst * ;動作:輸出控制器",其中*表示任何地址)使得使用分組 內(nèi)消息將具有B的源地址的任何分組(S卩,由節(jié)點B傳送的分組)轉(zhuǎn)發(fā)到控制器。第二流修 改消息定義第二流規(guī)則("以太網(wǎng)Dst A;以太網(wǎng)Src *;動作:輸出C",其中*表示任何地 址)使得將具有目的地地址A的任何分組(S卩,傳送到節(jié)點A的分組)轉(zhuǎn)發(fā)到端口 C (通過端 口 C從節(jié)點A接收原始分組)。
      [0050] 控制器也生成分組外消息(包含從節(jié)點A接收的原始分組),并且控制器在 OpenFlow信道上將分組外消息傳送到轉(zhuǎn)發(fā)元件,轉(zhuǎn)發(fā)元件將傳送自所有標準輸入/輸出端 口(包含輸入/輸出端口 C,通過它們從節(jié)點A接收原始分組)。響應于從控制器接收分組外 消息,轉(zhuǎn)發(fā)元件將分組泛洪到所有轉(zhuǎn)發(fā)元件的輸入/輸出端口(即,傳送來自所有輸入/輸 出端口的原始分組)。通過將分組泛洪到所有輸入/輸出端口,分組可到達節(jié)點B (預期目 的地),即使轉(zhuǎn)發(fā)元件和控制器都不知道節(jié)點B的位置在哪。
      [0051] 在節(jié)點B處接收到原始分組時,節(jié)點B可用包含以太網(wǎng)源地址B(指示節(jié)點B是第 二分組的源)和以太網(wǎng)目的地地址A (指示節(jié)點A是分組的預期目的地)的第二分組來回應 節(jié)點A??稍谵D(zhuǎn)發(fā)元件的端口 D處接收第二分組,并且因此第二分組(包含源地址B)可匹配 第一流規(guī)則。根據(jù)第一流規(guī)則("以太網(wǎng)Src B:以太網(wǎng)Dst *;動作:輸出控制器"),轉(zhuǎn)發(fā)元 件可將分組內(nèi)消息(包含第二分組)傳送到控制器,分組內(nèi)消息包含端口 D的識別(分組是通 過端口 D從節(jié)點B接收)。
      [0052] 響應于接收包含第二分組的分組內(nèi)消息,控制器可查找以太網(wǎng)源地址B,并且如果 控制器沒有在控制器處的學習表中的以太網(wǎng)源地址B,則源地址B連同端口 D的識別(第二 分組是在轉(zhuǎn)發(fā)元件處接收)一起記錄在學習表中。然后控制器可響應于來自節(jié)點B的分組 來生成兩個附加的流修改消息。
      [0053] 第一流修改消息可響應于來自節(jié)點B的分組而生成并且傳送到轉(zhuǎn)發(fā)元件來移除 流規(guī)則("以太網(wǎng)Src B:以太網(wǎng)Dst *;動作:輸出控制器"),該流規(guī)則以前是響應于來自節(jié) 點A的分組在轉(zhuǎn)發(fā)元件處編程到流表。第二流修改消息可響應于來自節(jié)點B的分組而生成 并且傳送到轉(zhuǎn)發(fā)元件來將流規(guī)則("以太網(wǎng)Dst B ;以太網(wǎng)Src 輸出端口 D")添加到轉(zhuǎn)發(fā) 元件的流表。
      [0054] 基于在控制器處的來自學習表的信息(關(guān)聯(lián)目的地地址與輸入/輸出端口 C),控 制器也生成分組外消息(包含從節(jié)點B接收的第二分組),并且控制器在OpenFlow信道上將 分組外消息傳送到轉(zhuǎn)發(fā)元件(轉(zhuǎn)發(fā)元件將從端口 C傳送(節(jié)點A連接到端口 C))。響應于從 控制器接收分組外消息,轉(zhuǎn)發(fā)元件從端口 C傳送分組(原始是從節(jié)點B傳送)。
      [0055] 因此,現(xiàn)在流表包含用于節(jié)點A與B之間的會話的兩個流規(guī)則,"以太網(wǎng)Dst A ;以 太網(wǎng)Src *;動作:輸出C"和"以太網(wǎng)Dst B;以太網(wǎng)Src *;輸出端口 D"。對于匹配流規(guī) 貝1J "以太網(wǎng)Dst A ;以太網(wǎng)Src 動作:輸出C"的任何分組(S卩,具有節(jié)點A的目的地地址 的任何分組),轉(zhuǎn)發(fā)元件將從端口 C傳送分組,并且對于匹配流規(guī)則"以太網(wǎng)Dst B ;以太網(wǎng) Src * ;輸出端口 D"的任何分組(S卩,具有節(jié)點B的目的地地址的任何分組),轉(zhuǎn)發(fā)元件將從 端口 D傳送分組。
      [0056] 在包含傳統(tǒng)的轉(zhuǎn)發(fā)元件和控制器的網(wǎng)絡中,可為每個新的以太網(wǎng)源/目的地對 (通過網(wǎng)絡為它建立通信會話)執(zhí)行以上討論的操作。在此場景中,在OpenFlow信道上將兩 個分組內(nèi)消息從轉(zhuǎn)發(fā)元件傳送到控制器,在OpenFlow信道上將四個流修改消息從控制器 傳送到轉(zhuǎn)發(fā)元件,并且在OpenFlow信道上將兩個分組外消息從控制器傳送到轉(zhuǎn)發(fā)元件。
      [0057] 根據(jù)在圖4的流程圖中圖示的實施例,可減少在轉(zhuǎn)發(fā)元件103與控制器101之間 的OpenFlow信道上傳送的通信數(shù)量和控制器101的處理負載。更特別地,將相對于在兩 個通信節(jié)點A與B之間建立通信會話來討論圖4的操作,其中通信節(jié)點A耦合到轉(zhuǎn)發(fā)元件 103的輸入/輸出端口 209的端口 C并且通信節(jié)點B耦合到轉(zhuǎn)發(fā)元件103的輸入/輸出端 口 209的端口 D。此外,將相對于在節(jié)點A與B之間的通信會話(轉(zhuǎn)發(fā)元件以前不支持)來 討論圖4的操作。
      [0058] 例如,在框401處,可在轉(zhuǎn)發(fā)元件401的端口 C處接收數(shù)據(jù)分組,轉(zhuǎn)發(fā)元件401具 有以太網(wǎng)源地址A (指示節(jié)點A是分組的源)和以太網(wǎng)目的地地址B (指示節(jié)點B是分組的 預期目的地)。在框405處,轉(zhuǎn)發(fā)元件103的處理器207可使用源地址A和/或目的地地址 B來嘗試匹配數(shù)據(jù)分組與主流表。在框407處,如果數(shù)據(jù)分組命中與(流表201的)主流表 的匹配(例如,因為數(shù)據(jù)分組的源地址和/或目的地地址匹配主流表的現(xiàn)存的流規(guī)則的的 準則),則在框423處,轉(zhuǎn)發(fā)元件處理器207可根據(jù)匹配的流規(guī)則來處理數(shù)據(jù)分組。
      [0059] 在框407處,如果數(shù)據(jù)分組未命中與(流表201的)主流表的匹配(例如,因為數(shù)據(jù) 分組的源地址和/或目的地地址不匹配主流表的現(xiàn)存的流規(guī)則的準則),則在框409處,轉(zhuǎn) 發(fā)元件處理器207可使用源地址A和/或目的地地址B來嘗試匹配數(shù)據(jù)分組與轉(zhuǎn)發(fā)元件 103的影子表221。在框411處,如果數(shù)據(jù)分組未命中與影子表221的匹配,則在框425處, 轉(zhuǎn)發(fā)元件處理器207可使用分組的源地址A和端口 C (通過端口 C來接收分組)來更新學習 表223 (在轉(zhuǎn)發(fā)元件103處)。更特別地,轉(zhuǎn)發(fā)元件處理器207可在轉(zhuǎn)發(fā)元件學習表223中 記錄源地址A連同端口 C的識別(通過端口 C來接收分組),因此關(guān)聯(lián)數(shù)據(jù)分組的源(例如, 節(jié)點A)與轉(zhuǎn)發(fā)元件103的輸入/輸出端口 209 (例如,端口 C),源(例如,節(jié)點A)耦合到輸 入/輸出端口 209。在圖4的實施例中,轉(zhuǎn)發(fā)元件103可提供/維持學習表使得可從控制器 101轉(zhuǎn)移此處理負擔。
      [0060] 在框427處,可在OpenFlow信道上將分組內(nèi)消息(包含從節(jié)點A接收的分組)從轉(zhuǎn) 發(fā)元件103傳送到控制器101。分組內(nèi)消息可包含未命中的分組和端口 C的識別(在轉(zhuǎn)發(fā)元 件103處通過端口 C從節(jié)點A接收分組)。響應于接收此分組內(nèi)消息,控制器101可生成兩 個新的影子修改消息,用于在影子表221中編程相應影子規(guī)則(影子表221是在OpenFlow 信道上傳送到轉(zhuǎn)發(fā)元件103)。
      [0061] 第一影子修改消息定義第一流規(guī)則("以太網(wǎng)Dst == MAC A ;動作:輸出端口 C", 其中MAC是節(jié)點A的MAC地址)使得在轉(zhuǎn)發(fā)元件103處接收的具有目的地地址A的任何數(shù) 據(jù)分組(即,數(shù)據(jù)分組傳送到節(jié)點A)是從端口 C (已知端口 C耦合到節(jié)點A)傳送。第二影 子修改消息定義第二流規(guī)則("以太網(wǎng)Src = MAC B ;動作:輸出端口本地",其中MAC B是節(jié) 點B的MAC地址,并且端口本地是與轉(zhuǎn)發(fā)元件處理器207的處理機208關(guān)聯(lián)的本地虛擬端 口,使得在轉(zhuǎn)發(fā)元件103接收的具有源地址B的任何數(shù)據(jù)分組(S卩,數(shù)據(jù)分組是由節(jié)點B傳 送)是經(jīng)由虛擬本地端口轉(zhuǎn)發(fā)到處理機208。響應于在OpenFlow信道上接收這些影子修改 消息(在框429處),轉(zhuǎn)發(fā)元件103可在影子表221中安裝相應影子規(guī)則(在框431處)。
      [0062] 控制器101還可生成分組外消息(包含從節(jié)點A接收的原始分組),并且控制器101 可在OpenFlow信道上將分組外消息傳送到轉(zhuǎn)發(fā)元件103,轉(zhuǎn)發(fā)元件103將傳送自所有標準 輸入/輸出端口(包含輸入/輸出端口 C,通過它們從節(jié)點A接收原始分組)。響應于從控制 器101接收分組外消息(在框433處),轉(zhuǎn)發(fā)元件處理器207可將分組泛洪到所有轉(zhuǎn)發(fā)元件 輸入/輸出端口 209 (在框435處)(S卩,傳送來自所有輸入/輸出端口的原始分組)。通過 將分組泛洪到所有輸入/輸出端口,分組可到達節(jié)點B (預期目的地),即使轉(zhuǎn)發(fā)元件103和 控制器101都不知道節(jié)點B的位置在哪。
      [0063] 在節(jié)點B處接收到原始分組時,節(jié)點B可用在轉(zhuǎn)發(fā)元件103處接收的第二分組來 回應節(jié)點A (在框401處)。更特別地,第二數(shù)據(jù)分組可包含以太網(wǎng)源地址B (指示節(jié)點B是 第二分組的源)和以太網(wǎng)目的地地址A (指示節(jié)點A是分組的預期目的地)??稍谵D(zhuǎn)發(fā)元件 輸入/輸出端口 209的端口 D處接收第二分組,并且處理器207可嘗試匹配第二分組與流 表201的主流表(在框405處)。因為沒有流規(guī)則與第二數(shù)據(jù)分組匹配,所以第二數(shù)據(jù)分組 可未命中匹配主流表(在框407處)。
      [0064] 因此,處理器207可嘗試匹配第二分組與影子表221 (在框411處)。如以上所論 述的,相對于框431,影子表221已經(jīng)編程有影子規(guī)則"以太網(wǎng)Dst == MAC A ;動作:輸出端 口 C"和"以太網(wǎng)Src = MAC B ;動作:輸出端口本地",并且第二分組(具有目的地地址A和 源地址B)匹配這兩個規(guī)則(引起在框411處命中)。
      [0065] 基于影子規(guī)則"以太網(wǎng)Src = MAC B;動作:輸出端口本地",處理器207可將第二 數(shù)據(jù)分組轉(zhuǎn)發(fā)到本地端口用于使用處理器207的處理機208來處理。更特別地,在框417 處,處理機208可使用分組的源地址B和端口 D (通過端口 D來接收第二數(shù)據(jù)分組)來更新 學習表223 (在轉(zhuǎn)發(fā)元件103處)。更特別地,處理機208可在轉(zhuǎn)發(fā)元件學習表223中記錄 源地址B連同端口 D的識別(通過端口 D來接收分組),因此關(guān)聯(lián)數(shù)據(jù)分組的源(例如,節(jié)點 B)與轉(zhuǎn)發(fā)元件103的輸入/輸出端口 209 (例如,端口 D),源(例如,節(jié)點B)耦合到輸入/ 輸出端口 209。在圖4的實施例中,轉(zhuǎn)發(fā)元件103可提供/維持學習表使得可從控制器101 轉(zhuǎn)移此處理負擔。
      [0066] 在框419處,處理機208還可在流表201的主流表中安裝下文的新的流規(guī)則:"以 太網(wǎng)Dst A ;以太網(wǎng)Src * ;動作:輸出C"和"以太網(wǎng)Dst B ;以太網(wǎng)Src * ;輸出端口 D"(其 中*表示允許與任何地址匹配的通配符地址)。對于匹配流規(guī)則"以太網(wǎng)Dst A ;以太網(wǎng)Src * ;動作:輸出C"的任何分組(S卩,具有節(jié)點A的目的地地址的任何分組),轉(zhuǎn)發(fā)元件處理器 207將從端口 C傳送分組,并且對于匹配流規(guī)則"以太網(wǎng)Dst B;以太網(wǎng)Src 輸出端口 D" 的任何分組(即,具有節(jié)點B的目的地地址的任何分組),轉(zhuǎn)發(fā)元件處理器207將從端口 D傳 送分組。因此可安裝這些新的流規(guī)則而不將第二數(shù)據(jù)分組傳送到控制器101。
      [0067] 因為這兩個新的流規(guī)則是由轉(zhuǎn)發(fā)元件處理器207安裝而不通知控制器101,所以 控制器101可不知道這兩個流規(guī)則已經(jīng)安裝在流表201中。因此,對于這兩個新的流規(guī)則中 的每個,可在流表201中安裝"無通知標志"使得在這些流規(guī)則中的任一個狀態(tài)改變時,沒 有通知被傳送到控制器101。例如,當這些流規(guī)則中的任一個超時時(由于節(jié)點A與B之間 的活動的缺乏超過超時時段),處理器207可從流表移除這些規(guī)則而不通知控制器101。與 此相反,可安裝流規(guī)則(響應于從控制器101接收的流修改消息而安裝)而沒有"無通知"標 志使得當從流表201移除這樣的流規(guī)則時(例如,響應于超時),將通知傳送到控制器101。
      [0068] 在框421處,基于影子表221中的影子規(guī)則"以太網(wǎng)Dst == MAC A ;動作:輸出端 口 C",處理機208可通過輸入/輸出端口 209的端口 C將第二數(shù)據(jù)分組轉(zhuǎn)發(fā)到節(jié)點A。備 選地,可根據(jù)新的流規(guī)則"以太網(wǎng)Dst A ;以太網(wǎng)Src * ;動作:輸出C"通過端口 C將第二數(shù) 據(jù)分組轉(zhuǎn)發(fā)到節(jié)點A。在任一,清況下,第二數(shù)據(jù)分組(從節(jié)點B傳送到節(jié)點A)可傳送自轉(zhuǎn)發(fā) 元件103而沒有將第二數(shù)據(jù)分組傳送到控制器101。
      [0069] 轉(zhuǎn)發(fā)元件處理器207可根據(jù)圖4的框401、405、407和423使用兩個新的流規(guī)則 ("以太網(wǎng)Dst A ;以太網(wǎng)Src 動作:輸出C"和"以太網(wǎng)Dst B;以太網(wǎng)Src 輸出端口 D")來處理在通信會話期間的在節(jié)點A與B之間的后續(xù)數(shù)據(jù)分組傳送。更特別地,在會話期 間的由節(jié)點A傳送到節(jié)點B的每個數(shù)據(jù)分組可在框401處接收,在框405和407處與流表 201的主流表的流規(guī)則"以太網(wǎng)Dst B;以太網(wǎng)Src 輸出端口 D"匹配,并且在框423處根 據(jù)匹配的規(guī)則傳送自端口 D。類似地,在會話期間的由節(jié)點B傳送到節(jié)點A的每個數(shù)據(jù)分組 可在框401處接收,在框405和407處與流表201的主流表的流規(guī)則"以太網(wǎng)Dst A ;以太 網(wǎng)Src * ;動作:輸出C"匹配,并且在框423處根據(jù)匹配的規(guī)則傳送自端口 C。
      [0070] 在節(jié)點A與B之間的通信中的間隔超過超時時段之后,處理器207可從流表201移 除兩個流規(guī)則來為其它流規(guī)則釋放存儲器空間。如果節(jié)點A與B之間的通信稍后恢復(在 超時時段之后),可重復框409、411、425、427、429、431、433、435、417、419和421的操作來為 節(jié)點A與B之間的新會話重新安裝流規(guī)則。在后續(xù)會話中,可減少所需操作的數(shù)量,例如, 如果在移除關(guān)于此的流規(guī)則之后在學習表223中維持關(guān)于節(jié)點A和B的信息。
      [0071] 按照圖4的操作,可減少在轉(zhuǎn)發(fā)元件103與控制器101之間的OpenFlow信道上的 通信的負載,并且可減少在控制器101處的處理負載。例如,圖4的操作可只需要一個分組 內(nèi)消息、一個分組外消息和兩個影子修改消息來建立節(jié)點A與B之間的會話。
      [0072] 圖5是圖示通過網(wǎng)絡101在客戶端裝置與服務器裝置之間的客戶端服務器通信期 間卸載控制器101操作的轉(zhuǎn)發(fā)元件103的操作的流程圖。更特別地,圖5圖示為由客戶端 和服務器裝置協(xié)商的轉(zhuǎn)發(fā)元件端口打開數(shù)據(jù)信道針孔的轉(zhuǎn)發(fā)元件103操作。
      [0073] 在文件傳輸協(xié)議(FTP)被動模式中,客戶端裝置使用轉(zhuǎn)發(fā)元件控制端口(例如,輸 入/輸出端口 209的端口 21)來為控制操作提供控制信道來從服務器裝置請求數(shù)據(jù),但 1024與65535之間的傳輸控制協(xié)議(TCP)端口用于接收從服務器裝置請求的數(shù)據(jù)。在控制 信道上(使用控制端口)交換P0RT/PASV命令來提供用于打開客戶端與服務器裝置之間的指 定數(shù)據(jù)信道(使用TCP端口 1024到65535中的一個或多個)的信息。當客戶端裝置在控制 信道上將數(shù)據(jù)請求傳送到服務器裝置時,服務器裝置可用PORT命令(識別用于數(shù)據(jù)信道的 轉(zhuǎn)發(fā)元件端口(例如,TCP端口 1024到65535中的一個))或PASV命令(要求客戶端裝置識 別用于數(shù)據(jù)信道的轉(zhuǎn)發(fā)元件端口(例如,TCP端口 1024到65535中的一個))來響應。如果 服務器裝置用PASV命令來響應,則然后客戶端裝置可傳送PORT命令(識別用于數(shù)據(jù)信道的 轉(zhuǎn)發(fā)元件端口(例如,TCP端口 1024到65535中的一個))。
      [0074] 根據(jù)一些實施例,控制器101可在影子表221中安裝影子規(guī)則(例如,提供在控制 信道上檢查分組內(nèi)容的輔助功能)來支持客戶端服務器通信,減少在控制器101處的處理負 擔,和/或減少在轉(zhuǎn)發(fā)元件103與控制器101之間的OpenFlow信道上的通信業(yè)務。這樣的 影子規(guī)則可起到有限狀態(tài)機(FSM)的作用,在控制信道上傳送的分組中搜索一組模式來識 別PORT命令并且采取動作來使用來自識別的PORT命令的端口信息打開適當?shù)臄?shù)據(jù)信道而 不需要轉(zhuǎn)發(fā)元件103與控制器101之間的通信。
      [0075] 在FTP應用中,提供輔助功能的影子規(guī)則可在控制信道上傳送的每個分組中查找 模式,其中模式獨特地識別PORT命令(響應于請求而發(fā)送來開始被動模式連接(例如,PASV 方法)。如果在控制信道上的分組中找到模式,則影子規(guī)則可以實現(xiàn)數(shù)據(jù)信道而不需要與控 制器101的通信。
      [0076] 例如,影子規(guī)則可提供常規(guī)表達(regex)引擎。響應于檢測到通過客戶端與服務 器裝置之間的轉(zhuǎn)發(fā)元件103在控制信道上傳送的TCP SYN (TCP同步)和SYN ACK (同步確 認)序列,控制器101可在轉(zhuǎn)發(fā)元件103中安裝用于輔助功能(包含常規(guī)表達引擎)的影子 規(guī)則。此機制可卸載從控制器101處看到的通信的消息。
      [0077] 可將與到達服務器裝置IP地址和客戶端裝置IP地址關(guān)聯(lián)的客戶端裝置IP地址、 服務器裝置IP地址、客戶端裝置TCP端口、服務裝置TCP端口和物理端口信息提供到轉(zhuǎn)發(fā) 元件103。可將此信息連同用于分析PORT/PASV命令的常規(guī)表達引擎從控制器101發(fā)送到 轉(zhuǎn)發(fā)元件103。用于識別來自有關(guān)的PASV/PORT命令的TCP端口的常規(guī)表達引擎(也被稱作 Regex引擎)可提供如下: \b(PORT | port | PASV | pasv)\b((25[0-5] | 2[0-4][0-9] | [01]?
      [0-9] [0-9]?,){3} \b (25 [0-5] I 2 [0-4] [0-9] I [01]? [0-9] [0-9]?) \b 此外,影子規(guī)則可在影子表221中(響應于來自控制器101的一個或多個影子修改消 息)編程如下: If (Src IP == Client IP and Src Port == Client TCP Port And Dest IP == Server IP And Dest Port == Server TCP Port) OR (Src IP == Server IP And Src Port == Server TCP Port And Dest IP == Client IP And Dest Port == Client Port), then Regex Engine (Regex Expression) 常規(guī)表達引擎嘗試匹配PORT和PASV串連同IP地址和端口數(shù)據(jù)來識別TCP端口(識別 用于客戶端與服務器裝置之間的數(shù)據(jù)信道)。數(shù)據(jù)端口連接連同其它信息(例如,服務器和 客戶端IP地址)可以被傳到控制器使得它可以安裝規(guī)則或使得轉(zhuǎn)發(fā)元件103可以安裝規(guī)則 而不涉及控制器101。
      [0078] 控制器101可提供充分的能力來確定會話/通信的類型并且構(gòu)建常規(guī)表達引擎來 分析會話/通信中的某些串??刂破?01可仍然智能地決定會話/通信的類型和要查找什 么。然后,當已經(jīng)建立會話時,控制器101可以使用影子修改消息在轉(zhuǎn)發(fā)元件103的影子表 221中安裝適當?shù)挠白右?guī)則??刂破?01可扮演重要角色,但轉(zhuǎn)發(fā)元件103可使用影子規(guī) 則來減少在控制器101處的處理負載。使用定義所希望的輔助功能的影子規(guī)則,轉(zhuǎn)發(fā)元件 103可(從控制器101)卸載檢查具體串的控制分組的操作,并且在識別到匹配時,轉(zhuǎn)發(fā)元件 103可通知控制器101需要打開的端口或轉(zhuǎn)發(fā)元件103可在流表201中自己安裝流規(guī)則而 不涉及控制器101。
      [0079] 圖5是圖示根據(jù)以上討論的一些實施例的支持客戶端與服務器裝置之間的FTP數(shù) 據(jù)信道通信的操作的流程圖。根據(jù)在圖5的流程圖中圖示的實施例,可減少在轉(zhuǎn)發(fā)元件103 與控制器101之間的OpenFlow信道上傳送的通信數(shù)量和控制器101的處理負載。更特別 地,將相對于在控制信道上通信的在客戶端與服務器裝置之間的TCP端口上建立數(shù)據(jù)信道 來討論圖5的操作。
      [0080] 例如,在框501處,可在轉(zhuǎn)發(fā)元件輸入/輸出端口 209的控制端口(例如,控制端口 21)處接收控制分組,并且控制分組可具有源(Src) IP地址(提供源裝置(客戶端或服務器 裝置中的一個)的IP地址)和目的地(dest) IP地址(提供目的地裝置(客戶端或服務器裝 置中的另一個)的IP地址)。此外,控制分組可以是在轉(zhuǎn)發(fā)元件的控制端口 103處接收的第 一控制分組,用于客戶端與服務器裝置之間的會話。
      [0081] 響應于接收控制分組,轉(zhuǎn)發(fā)元件處理器207可嘗試匹配控制分組與流表的主流表 (在框505處),但是因為只有數(shù)據(jù)分組可與流表201匹配,控制分組將未命中(在框507處)。 當在框507處的控制分組與(流表201的)主流表不匹配時(例如,因為控制分組不匹配流 表),在框509處,轉(zhuǎn)發(fā)元件處理器207可使用控制分組的IP源地址和目的地地址以及輸入 /輸出端口 209的控制信道端口(通過控制信道端口來接收控制分組)來嘗試匹配控制分組 與轉(zhuǎn)發(fā)元件103的影子表221。
      [0082] 如果在框511處的控制分組與影子表221不匹配(因為控制分組是在轉(zhuǎn)發(fā)元件 103處接收的用于在客戶端與服務器裝置之間的會話的第一控制分組(在已經(jīng)提供會話的 影子規(guī)則之前),則在框527處,轉(zhuǎn)發(fā)元件處理器207可在從轉(zhuǎn)發(fā)元件103到控制器101的 OpenFlow信道上傳送分組內(nèi)消息(包含控制分組)。分組內(nèi)消息可包含未命中的控制分組以 及端口的識別(通過該端口在轉(zhuǎn)發(fā)元件103處接收控制分組)。響應于接收此分組內(nèi)消息, 控制器101可將一個或多個影子修改消息傳送到轉(zhuǎn)發(fā)元件103來安裝影子規(guī)則(所述影子 規(guī)則識別用于客戶端與服務器裝置之間的會話的端口命令并且為會話的數(shù)據(jù)信道打開針 孔)。
      [0083] 響應于在框529處從控制器101接收影子修改消息,轉(zhuǎn)發(fā)元件處理器207可在框 531處為客戶端與服務器裝置之間的會話安裝影子規(guī)則。更特別地,影子規(guī)則可配置為識別 在控制信道端口(在其上接收第一控制分組)(例如,端口 21)上接收的并且具有匹配第一 控制分組的源IP地址的源IP地址或目的地IP地址中的一個并且具有匹配第一控制信道 的目的地IP地址的源IP地址或目的地IP地址中的另一個的后續(xù)控制分組,如下: If (Src IP == Client IP and Src Port == Client TCP Port And Dest IP == Server IP And Dest Port == Server TCP Port) OR (Src IP == Server IP And Src Port == Server TCP Port And Dest IP == Client IP And Dest Port == Client Port) 對于匹配這些地址準則的控制分組,影子規(guī)則還配置為執(zhí)行常規(guī)表達引擎來確定控制 分組是否是識別數(shù)據(jù)信道的端口的端口命令,如下: \b(P0RT | port | PASV | pasv)\b((25[0-5] | 2[0-4][0-9] | [01]?
      [0-9] [0-9]?,){3} \b (25 [0-5] I 2 [0-4] [0-9] I [01]? [0-9] [0-9]?) \b 在框501處在轉(zhuǎn)發(fā)元件103處接收到關(guān)于以上討論的客戶端與服務器裝置之間的會話 的第二控制分組時,轉(zhuǎn)發(fā)元件處理器207可嘗試匹配第二控制分組與流表201的主流表(在 框505處),并且因為控制分組可與流表不匹配,所以將在框507處發(fā)生未命中。在框509 處,處理器207可嘗試匹配第二控制分組與影子表221,并且因為第二控制分組匹配源IP地 址和目的地IP地址以及控制端口準則(相對于框531的影子規(guī)則以上討論的),所以將在框 511處發(fā)生命中。換句話說,用于客戶端與服務器裝置之間的會話的第二控制分組匹配用于 客戶端與服務器裝置之間的會話的第一控制分組的源IP地址和目的地IP地址以及控制端 □。
      [0084] 響應于影子表命中,處理器207將在框515處執(zhí)行來自影子表221中的影子規(guī)則 的常規(guī)表達引擎(相對于框531以上討論的)。常規(guī)表達引擎識別第二控制分組的類型,并且 如果第二控制分組類型不匹配感興趣的類型(例如,端口命令),則在框521處,處理器207 可將控制分組轉(zhuǎn)發(fā)到預期目的地(例如,如目的地IP地址指示的)而不安裝流規(guī)則或規(guī)則。 如果第二控制分組匹配感興趣的類型(例如,端口命令),則處理器207可在流表201的主流 表中安裝新的流規(guī)則(在框519處)并且將控制分組轉(zhuǎn)發(fā)到預期目的地(在框521處)。
      [0085] 在本文討論的實施例中,常規(guī)表達引擎可用于將端口命令(例如,PORT和/或PASV 命令)識別為感興趣的命令類型。當在框517處將第二控制分組識別為端口命令控制分組 時,影子表221的常規(guī)表達引擎可識別將用于客戶端與服務器裝置之間的數(shù)據(jù)信道的針孔 的包含在端口命令數(shù)據(jù)分組中的TCP端口,并且在框519處,處理器207可在流表201的主 流表中安裝流規(guī)則來支持使用識別的TCP端口的數(shù)據(jù)信道。因此,第二控制分組可以是識 別將用于在客戶端與服務器裝置之間傳送的后續(xù)數(shù)據(jù)分組的數(shù)據(jù)端口的端口命令控制分 組,并且在框519處安裝新的流規(guī)則可包含安裝新的流規(guī)則來定義將用于通過客戶端與服 務器裝置之間的轉(zhuǎn)發(fā)元件103而傳送的后續(xù)數(shù)據(jù)分組的針孔。此外,這些流規(guī)則可與無通 知標志一起安裝,使得當針孔數(shù)據(jù)信道超時時(由于活動中的間隔超過超時時段),可從流 表201移除流規(guī)則而不通知控制器101。
      [0086] 一旦已經(jīng)安裝定義數(shù)據(jù)信道針孔的流規(guī)則,則可在由流規(guī)則定義的數(shù)據(jù)信道針孔 上傳送在客戶端與服務器裝置之間傳送的后續(xù)數(shù)據(jù)分組。例如,可在客戶端與服務器裝置 之間傳送數(shù)據(jù)分組(例如,包含對應于客戶端與服務器裝置之間的會話的源地址和目的地 地址的數(shù)據(jù)分組),并且在框501處接收到此數(shù)據(jù)分組時,處理器207可嘗試匹配數(shù)據(jù)分組 與流表201的主流表。因為數(shù)據(jù)分組用于以上討論的客戶端與服務器裝置之間的會話,所 以數(shù)據(jù)分組可具有匹配第一和/或第二控制分組的源或目的地IP地址中的一個的源IP地 址,并且數(shù)據(jù)分組可具有匹配第一和/或第二控制分組的源或目的地IP地址中的另一個的 目的地IP地址。因此,當處理器207嘗試匹配數(shù)據(jù)分組與流表201的主表時,在框519處數(shù) 據(jù)分組將命中以上討論的定義數(shù)據(jù)信道針孔的流規(guī)則。因此,將根據(jù)匹配的流規(guī)則來處理 數(shù)據(jù)分組,使得使用由匹配的流規(guī)則定義的數(shù)據(jù)信道針孔通過轉(zhuǎn)發(fā)元件來傳送數(shù)據(jù)分組。 可使用數(shù)據(jù)信道針孔來傳送任何數(shù)量的后續(xù)數(shù)據(jù)分組,直到定義數(shù)據(jù)信道針孔的流規(guī)則超 時(由于在數(shù)據(jù)信道針孔上的活動的缺乏超過超時時段)或直到建立另一數(shù)據(jù)信道針孔。 [0087] 根據(jù)相對于圖5以上討論的實施例,轉(zhuǎn)發(fā)元件處理器207可因此搜集用于客戶端 與服務器裝置之間的數(shù)據(jù)通信的TCP數(shù)據(jù)端口,使用影子規(guī)則來監(jiān)測在客戶端與服務器裝 置之間傳送的控制信道分組。使用此信息,轉(zhuǎn)發(fā)元件處理器207可打開客戶端與服務器裝 置之間的數(shù)據(jù)信道針孔而不涉及控制器101。因此,控制器101可減輕監(jiān)測客戶端與服務器 裝置之間的通信/會話的每個控制分組的負擔和/或打開數(shù)據(jù)信道針孔的負擔。
      [0088] 圖6是圖示通過實現(xiàn)靈活的規(guī)則匹配來卸載控制器101操作的轉(zhuǎn)發(fā)元件103的操 作的流程圖。例如,在接入控制列表(ACL)類型實現(xiàn)中,輸入/輸出端口 209的范圍可用于 流表規(guī)則匹配。如果通過在50001-50010的范圍中的輸入/輸出端口而接收的分組應該命 中流表而沒有靈活的規(guī)則匹配,例如,相同的流規(guī)則可需要被編程10次,10個流規(guī)則中的 每個包含相同的源IP地址和目的地IP地址以及指定范圍中的10個端口的不同的一個。
      [0089] 以示例的方式,圖7圖示用于在兩個方向中在客戶端與服務器裝置之間傳送業(yè)務 的一個端口的兩個規(guī)則的流規(guī)則匹配準則而沒有靈活的規(guī)則匹配。在第一規(guī)則中,當分組 具有服務器裝置的IP源地址、客戶端裝置的IP目的地地址、50001的源端口和50002的目 的地端口時,發(fā)生匹配。在第二規(guī)則中,當分組具有客戶端裝置的IP源地址、服務器裝置的 IP目的地地址、50002的源端口和50001的目的地端口時,發(fā)生匹配。如果為一系列端口實 現(xiàn)流規(guī)則而沒有靈活的規(guī)則匹配,則可需要為范圍中的每個端口重復圖7的匹配規(guī)則,增 加實現(xiàn)的成本。在多個和非連續(xù)的一系列端口上的實現(xiàn)(也被稱作有洞的一系列)還可增加 成本。
      [0090] 例如,可使用關(guān)鍵詞(例如,"范圍"、"列表"和"排除"、"IP"(因特網(wǎng)協(xié)議)、"端口"、 "MAC"(媒體接入控制)地址、"源"地址和"目的地"地址)來表達靈活的規(guī)則匹配的流規(guī)則。 以示例的方式,排除的關(guān)鍵詞可以后跟具有任何其它關(guān)鍵詞的組合的范圍或列表。利用此 記號,可覆蓋多個情況來表達緊湊規(guī)則空間??衫每梢员磉_數(shù)據(jù)處理概念的數(shù)據(jù)結(jié)構(gòu)來 實現(xiàn)這些關(guān)鍵詞。這些機制可用于高效地實現(xiàn)規(guī)則,例如 : a source IP Destination IP Port range N1 to N2 exclude N, N1 < N < N2 source 172. 16. . 10. 100 dest 171. 16. 23. 1 dest port range 10 to 30 exclude port 20 b dest IP address Range A. B.C. 0/24 to A. B.C.D/24 exclude A. B.C.P,0〈P〈D source 172. 16. 10. 0/24 to 172. 16. 10. 20/24 exclude 172. 16. 10. 2 source port 049200 dest port 50,000 c list IP A.B.C.D,E.F.G.H,Al.BLCl.Dl port list pl,p2,p3 list ip 172.16.10.1,172.16.10.3,172. 16. 10.4 port list 22,23,24,25 地址或端口可以由源或目的地關(guān)鍵詞來限定。如果地址或端口不是由源或目的地關(guān)鍵 詞來限定,則地址或端口可解釋為目的地地址或端口。范圍指示具有高的標記和低的標記 的一系列端口。關(guān)鍵詞"列表"識別地址或端口的列表。
      [0091] "排除"關(guān)鍵詞排除涉及關(guān)鍵詞的每件事,并且"排除"關(guān)鍵詞可以與要排除的范圍 或列表關(guān)聯(lián)??山邮苡膳懦秶蛄斜硐薅ǖ娜魏问?。關(guān)鍵詞"IP"、"MAC"和"端口"分別 指代IP地址、MAC地址和TCP/UDP/SCTP端口。此ACL類型語言可以在轉(zhuǎn)發(fā)元件103處實 現(xiàn),通過使控制器101在影子修改消息中發(fā)送分析的規(guī)則來在轉(zhuǎn)發(fā)元件103處在影子表221 中安裝影子規(guī)則(具有范圍)。
      [0092] 以下相對于圖6更詳細地討論實現(xiàn)影子規(guī)則范圍的轉(zhuǎn)發(fā)元件103操作(關(guān)于通過 轉(zhuǎn)發(fā)元件103在客戶端與服務器裝置之間的通信)。
      [0093] 例如,在框601處,可在轉(zhuǎn)發(fā)元件輸入/輸出端口 209的端口處接收分組(例如,控 制或數(shù)據(jù)分組),并且分組可具有源(Src)IP地址(提供源裝置(客戶端或服務器裝置中的一 個)的IP地址)和目的地(dest) IP地址(提供目的地裝置(客戶端或服務器裝置中的另一 個)的IP地址)。此外,分組可以是用于在客戶端與服務器裝置之間的會話的在轉(zhuǎn)發(fā)元件 103處接收的第一分組。
      [0094] 響應于接收分組,轉(zhuǎn)發(fā)元件處理器207可嘗試匹配分組與流表的主流表(在框605 處),但是因為還沒有建立客戶端與服務器裝置之間的會話,分組可未命中(在框607處)。如 果在框607處控制分組與(流表201的)主流表不匹配(例如,因為分組不匹配流表201的任 何流規(guī)則),則轉(zhuǎn)發(fā)元件處理器207可使用控制分組的IP源地址和目的地地址來嘗試匹配 分組與轉(zhuǎn)發(fā)元件103的影子表221 (在框609處)。
      [0095] 如果在框611處控制分組與影子表221不匹配(因為它是用于在客戶端與服務器 裝置之間的會話的在轉(zhuǎn)發(fā)元件103處接收的第一分組(在已經(jīng)提供會話的影子規(guī)則之前)), 轉(zhuǎn)發(fā)元件處理器207可在OpenFlow信道上將分組內(nèi)消息(包含分組)從轉(zhuǎn)發(fā)元件103傳送 到控制器101 (在框627處)。分組內(nèi)消息可包含未命中的分組。響應于接收此分組內(nèi)消 息,控制器101可將一個或多個影子修改消息傳送到轉(zhuǎn)發(fā)元件103來安裝影子規(guī)則,影子規(guī) 則定義流規(guī)則并且識別與影子修改消息的流規(guī)則關(guān)聯(lián)的IP地址、MAC地址和/或TCP/UDP/ SCTP端口的范圍/列表。
      [0096] 響應于在框629處從控制器101接收影子修改消息,轉(zhuǎn)發(fā)元件處理器207可在框 631處安裝用于在客戶端與服務器裝置之間的會話的影子規(guī)則。更特別地,影子規(guī)則可配置 為使用以上討論的地址和/或端口的范圍/列表來識別在轉(zhuǎn)發(fā)元件103處接收的后續(xù)控制 分組??蛻舳伺c服務器裝置之間的通信會話的后續(xù)分組可因此觸發(fā)流表201的新的流規(guī)則 的生成,如果它匹配地址和/或端口的范圍/列表的話。
      [0097] 在安裝影子規(guī)則之后,可在框601處接收客戶端與服務器裝置之間的通信會話的 第二分組,并且處理器207可嘗試匹配第二分組與流表201的主流表(在框605處)。因為 還沒有安裝用于客戶端裝置與服務器裝置之間的通信會話的流規(guī)則,可在框607處發(fā)生未 命中。在框609處,處理器207可嘗試匹配第二控制分組與影子表221,并且因為第二分組 的源和/或目的地匹配第一分組的源地址和/或目的地地址(在框631處觸發(fā)影子規(guī)則的 安裝),可在框611處發(fā)生命中。
      [0098] 在框615處,響應于影子表命中,處理器207比較來自分組的地址和/或端口與影 子規(guī)則的地址/端口的范圍/列表。如果在框617處分組的地址/端口包含在影子規(guī)則的 范圍/列表中,處理器207可在流表的主流表中安裝流規(guī)則(在框619處),其中流規(guī)則包含 用于識別客戶端裝置與服務器裝置之間的通信會話的源地址和/或目的地地址(例如,觸 發(fā)流規(guī)則的生成的以上討論的兩個分組的源地址和目的地地址)以及第二分組的地址和/ 或端口(在框615和617處與范圍/列表匹配)的匹配準則。在框621處,處理器207可將 第二分組轉(zhuǎn)發(fā)到其預期目的地。如果在框617處分組的地址/端口不包含在影子規(guī)則的范 圍/列表中,可在框627處傳送分組內(nèi)消息,并且可如以上所論述的執(zhí)行框629和631的操 作。
      [0099] 一旦在框619處安裝新的流規(guī)則,則可在通信會話的持續(xù)時間內(nèi)根據(jù)框601、605、 607和623的操作來處理滿足流規(guī)則的所有準則的客戶端裝置與服務器裝置之間的通信的 后續(xù)分組。更特別地,當安裝新的流規(guī)則時,新的流規(guī)則可只應用于具有匹配范圍/列表的 地址/端口的通信會話的分組。因此,不具有匹配的地址/端口的通信的其它分組可與在框 609、611、615和617處的以前的影子規(guī)則比較。如果另一分組在框605和607處未命中但 在框611、615和617處匹配范圍/列表,則可創(chuàng)建具有流表匹配所需要的不同的地址/端 口(相對于以上討論的第一流規(guī)則的地址/端口)的另一流規(guī)則。如果另一分組在框605、 607、611和617處未命中,則可在框627處將分組內(nèi)消息傳送到控制器101來觸發(fā)另一影子 規(guī)則的生成。
      [0100] 根據(jù)相對于圖6以上討論的實施例,可安裝影子規(guī)則來在地址/端口的范圍/列 表上生成相同的流規(guī)則??芍粸閷嶋H用于客戶端裝置與服務器裝置之間的通信的特定地址 /端口生成流規(guī)則,而不為在范圍上的所有可能的地址/端口生成相同的流規(guī)則,因此減少 流表201所消耗的存儲器空間。此外,通過智能安裝影子規(guī)則來在地址/端口的指定范圍 /列表上生成相應流規(guī)則,可減少在轉(zhuǎn)發(fā)元件103與控制器101之間的OpenFlow信道上的 通信業(yè)務和/或可減少在控制器101處的處理負載。
      [0101] 以上討論的實施例可實現(xiàn)為基礎(chǔ)OpenFlow協(xié)議的修改和/或擴展。根據(jù)一些實 施例,實現(xiàn)可提供為OpenFlowl. 0、1. 1和/或1. 2的供應商具體擴展而不改變基礎(chǔ)協(xié)議。
      [0102] 相對于圖4、圖5和圖6以上討論的實施例可減少在轉(zhuǎn)發(fā)元件103與控制器101之 間的OpenFlow信道上的業(yè)務,和/或減少在控制器101處的負載。此外,可減少流表201 的大小和/或可改進/優(yōu)化流表規(guī)則空間的使用。通過在裝置(例如,客戶端裝置與服務器 裝置)之間的通信會話的配置時將這些流插入到影子表,可通過只允許真正的控制業(yè)務傳 到控制器101來改進/優(yōu)化OpenFlow信道的使用。
      [0103] 根據(jù)一些實施例,在流表201處的每個未命中可導致跨OpenFlow信道的四個或更 少的消息,使得跨OpenFlow信道的消息數(shù)量可減少到1/2或更少。通過在初始化時智能填 充影子/流表,可減小OpenFlow信道上的業(yè)務。
      [0104] 此外,因為打開的針孔可以是非常具體的并且可以相對晚地編程(當?shù)竭_的分組 在主流表中未命中時),所以圖5的實施例可提供改進的安全。
      [0105] 要理解,在本發(fā)明的各實施例的以上描述中,本文所使用的術(shù)語只是為了描述特 定實施例并且不旨在作為本發(fā)明的限制。除非以其它方式定義,本文所使用的所有術(shù)語(包 含技術(shù)和科學術(shù)語)具有與本領(lǐng)域技術(shù)人員所公知的相同意義。還將理解,術(shù)語(例如,在常 用詞典中定義的那些)應該解釋為具有與本說明書的上下文和有關(guān)領(lǐng)域中的它們的意義一 致的意義并且將不以本文清楚定義的理想化或太過正式的意義來解釋。
      [0106] 當元件被稱作與另一元件"連接"、"耦合"、"響應"或其變型時,它可以直接連接、 耦合或響應于另一元件或可出現(xiàn)中間元件。與此相反,當元件被稱作與另一元件"直接連 接"、"直接耦合"、"直接響應"或其變型時,不出現(xiàn)中間元件。全文中相似數(shù)字指代相似元 件。此外,如本文所使用的"耦合"、"連接"、"響應"或其變型可包含無線耦合、連接或響應 的。如本文所使用的,單數(shù)形式"一"和"該"旨在也包含復數(shù)個,除非上下文以其它方式清 楚地指示。用了簡潔和/或清楚,可能沒有詳細描述已知功能或構(gòu)造。術(shù)語"和/或"包含 關(guān)聯(lián)的列出的項目中的一個或多個的任何和所有組合。
      [0107] 如本文所使用的,術(shù)語"包括"、"包含"、"具有"或其變型是開放性的,并且包含一 個或多個表述的特征、整體、元件、步驟、部件或功能,但不排除一個或多個其它特征、整體、 元件、步驟、部件、功能或其組群的存在或添加。此外,如本文所使用的,"例如"可用于引入 或規(guī)定以前提及項目的一般示例,并且不旨在作為這樣的項目的限制。"即"可用于規(guī)定來 自一般敘述的特定項目。
      [0108] 本文參考計算機實現(xiàn)的方法的框圖和/或流程圖、設備(系統(tǒng)和/或裝置)和/或 計算機程序產(chǎn)品來描述示例實施例。要理解,框圖和/或流程圖的框以及框圖和/或流程 圖中的框的組合可以由計算機程序指令來實現(xiàn),計算機程序指令由一個或多個計算機電路 來執(zhí)行。這些計算機程序指令可提供給通用計算機電路、專用計算機電路的處理器電路和 /或其它可編程數(shù)據(jù)處理電路來產(chǎn)生機器,使得指令(其經(jīng)由計算機的處理器和/或其它可 編程數(shù)據(jù)處理設備執(zhí)行)轉(zhuǎn)換并且控制晶體管、在存儲器位置中存儲的值以及在這樣的電 路內(nèi)的其它硬件部件來實現(xiàn)在框圖和/或流程圖框中規(guī)定的功能/動作,并且因此創(chuàng)建用 于實現(xiàn)在框圖和/或流程圖框中規(guī)定的功能/動作的裝備(功能性)和/或結(jié)構(gòu)。
      [0109] 這些計算機程序指令還可存儲在有形的計算機可讀介質(zhì)中,它可以指引計算機或 其它可編程數(shù)據(jù)處理設備以特定方式工作,使得存儲在計算機可讀介質(zhì)中的指令產(chǎn)生包含 指令(實現(xiàn)在框圖和/或流程圖框中規(guī)定的功能/動作)的制品。
      [0110] 有形的、非暫時性計算機可讀介質(zhì)可包含電子、磁性、光、電磁或半導體數(shù)據(jù)存儲 系統(tǒng)、設備或裝置。計算機可讀介質(zhì)的更具體示例會包含下文的:便攜式計算機軟磁盤、隨 機存取存儲器(RAM)電路、只讀存儲器(ROM)電路、可擦除可編程只讀存儲器(EPR0M或閃速 存儲器)電路、便攜式壓縮盤只讀存儲器(CD-ROM)和便攜式數(shù)字視頻光盤只讀存儲器(DVD/ 藍光)。
      [0111] 計算機程序指令還可加載到計算機和/或其它可編程數(shù)據(jù)處理設備來在計算機 和/或其它可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的過程,使得在計算機或 其它可編程設備上執(zhí)行的指令提供用于實現(xiàn)在框圖和/或流程圖框中規(guī)定的功能/動作的 步驟。因此,本發(fā)明的實施例可實施在硬件和/或運行在處理器上(例如,數(shù)字信號處理器) 的軟件(包含固件、常駐軟件、微代碼等)中,它們可共同地被稱作"電路"、"模塊"或其變型。
      [0112] 也應注意到,在一些備選實現(xiàn)中,在框中提到的功能/動作可不以在流程圖中提 到的次序來發(fā)送。例如,示為連續(xù)的兩個框?qū)嶋H上可基本上并行執(zhí)行或有時可以相反次序 來執(zhí)行框,取決于涉及的功能性/動作。此外,流程圖和/或框圖的給定框的功能性可分成 多個框和/或流程圖和/或可至少部分地集成框圖的兩個或者更多框的功能性。最后,可 將其它框添加/插入在圖示的框之間。此外,雖然一些圖包含在通信路徑上的箭頭來示出 通信的主要方向,但是要理解,通信可發(fā)生在與描繪的箭頭相反的方向中。
      [0113] 已經(jīng)在本文中結(jié)合以上描述和附圖公開許多不同的實施例。將理解字面上描述并 且圖示這些實施例的每個組合和子組合會是不適當?shù)闹貜秃突煜R虼?,包含附圖的本說 明書應該視為組成實施例以及制作并且使用它們的方式和過程的各種示例組合和子組合 的完整書面描述,并且會將權(quán)利要求支持到任何這樣的組合或子組合。
      [0114] 可以對實施例作出許多變化和修改而基本上不背離本發(fā)明的原理。所有這樣的變 化和修改旨在在本發(fā)明的范圍內(nèi)包含于本文中。
      【權(quán)利要求】
      1. 一種在包含轉(zhuǎn)發(fā)平面和控制平面的網(wǎng)絡的所述轉(zhuǎn)發(fā)平面中操作轉(zhuǎn)發(fā)元件的方法, 所述方法包括: 通過所述轉(zhuǎn)發(fā)元件的輸入/輸出端口來接收分組; 嘗試匹配所述分組與所述轉(zhuǎn)發(fā)元件的流表; 響應于所述分組未命中與所述流表的匹配,嘗試匹配所述分組與所述轉(zhuǎn)發(fā)元件的影子 表;以及 響應于所述分組與所述影子表匹配,基于來自所述影子表的匹配的影子規(guī)則在所述流 表中安裝新的流規(guī)則。
      2. 根據(jù)權(quán)利要求1所述的方法,其中安裝所述新的流規(guī)則包括基于來自所述影子表 的所述匹配的影子規(guī)則在所述流表中安裝所述新的流規(guī)則而不將所述分組從所述轉(zhuǎn)發(fā)元 件傳送到所述網(wǎng)絡的控制平面。
      3. 根據(jù)權(quán)利要求1所述的方法,還包括: 根據(jù)來自所述影子表的匹配的影子規(guī)則和/或根據(jù)所述新的流規(guī)則通過所述轉(zhuǎn)發(fā)元 件來處理所述分組。
      4. 根據(jù)權(quán)利要求1所述的方法,還包括: 響應于所述分組未命中與所述流表的匹配以及響應于所述分組未命中與所述影子表 的匹配,將分組內(nèi)消息傳送到所述網(wǎng)絡的所述控制平面中的控制器,其中所述分組內(nèi)消息 包含所述分組。
      5. 根據(jù)權(quán)利要求4所述的方法,其中所述分組包括數(shù)據(jù)分組,所述方法還包括: 響應于所述數(shù)據(jù)分組未命中與所述流表的匹配以及響應于所述數(shù)據(jù)分組未命中與所 述影子表的匹配,更新所述轉(zhuǎn)發(fā)元件的學習表來關(guān)聯(lián)所述數(shù)據(jù)分組的源與所述輸入/輸出 端口。
      6. 根據(jù)權(quán)利要求5所述的方法,其中所述數(shù)據(jù)分組是第一數(shù)據(jù)分組,所述方法還包 括: 響應于從對應于所述分組內(nèi)消息的所述控制器接收影子修改消息,在所述影子表中安 裝影子規(guī)則,所述影子規(guī)則關(guān)聯(lián)來自由所述第一數(shù)據(jù)分組的目的地地址識別的源的后續(xù)數(shù) 據(jù)分組與所述轉(zhuǎn)發(fā)元件的虛擬內(nèi)部端口;以及 在安裝所述影子規(guī)則之后,通過所述轉(zhuǎn)發(fā)元件的輸入/輸出端口來接收第二數(shù)據(jù)分 組,其中所述第二數(shù)據(jù)分組具有匹配所述第一數(shù)據(jù)分組的所述目的地地址的源地址; 嘗試匹配所述第二數(shù)據(jù)分組與所述轉(zhuǎn)發(fā)元件的所述流表; 響應于所述第二數(shù)據(jù)分組未命中與所述流表的匹配,嘗試匹配所述第二數(shù)據(jù)分組與所 述轉(zhuǎn)發(fā)元件的所述影子表; 響應于所述第二數(shù)據(jù)分組與所述影子表的影子規(guī)則匹配,基于來自所述影子表的所述 匹配的影子規(guī)則在所述流表中安裝新的流規(guī)則;以及 根據(jù)來自所述影子表的匹配的影子規(guī)則和/或根據(jù)所述新的流規(guī)則通過所述轉(zhuǎn)發(fā)元 件來處理所述第二數(shù)據(jù)分組。
      7. 根據(jù)權(quán)利要求4所述的方法,其中所述分組是在所述轉(zhuǎn)發(fā)元件的控制端口處接收 的第一控制分組,所述第一控制分組用于在客戶端裝置與服務器裝置之間的會話,所述方 法還包括: 響應于從對應于所述分組內(nèi)消息的所述控制器接收影子修改消息,在所述影子表中安 裝影子規(guī)則,所述影子規(guī)則匹配在所述控制端口處接收的并且具有匹配所述第一控制分組 的源地址和/或目的地地址的源地址和/或具有匹配所述第一控制分組的所述源地址和/ 或目的地地址的目的地地址的后續(xù)控制分組,其中所述影子規(guī)則從匹配控制分組來識別端 口命令; 在安裝所述影子規(guī)則之后,通過所述轉(zhuǎn)發(fā)元件的所述控制端口來接收第二控制分組, 其中所述第二控制分組具有匹配所述第一控制分組的所述源地址和/或目的地地址的源 地址和/或具有匹配所述第一控制分組的所述源地址和/或目的地地址的目的地地址; 嘗試匹配所述第二控制分組與所述轉(zhuǎn)發(fā)元件的所述流表; 響應于所述第二控制分組未命中與所述流表的匹配,嘗試匹配所述第二控制分組與所 述轉(zhuǎn)發(fā)元件的所述影子表; 響應于所述第二控制分組匹配所述影子表的所述影子規(guī)則,執(zhí)行所述影子規(guī)則的表達 引擎來識別所述第二控制分組的命令類型; 響應于識別所述第二控制分組的命令類型,基于所述第二控制分組的所述命令類型在 所述流表中安裝新的流規(guī)則;以及 將所述第二控制分組從所述轉(zhuǎn)發(fā)元件的輸入/輸出端口轉(zhuǎn)發(fā)到目的地。
      8. 根據(jù)權(quán)利要求7所述的方法,其中所述第二控制分組包括端口命令控制分組,所述 端口命令控制分組識別用于在所述客戶端與服務器裝置之間傳送的后續(xù)數(shù)據(jù)分組的數(shù)據(jù) 端口,其中安裝所述新的流規(guī)則包括安裝所述新的流規(guī)則來定義用于在所述客戶端與服務 器裝置之間傳送的后續(xù)數(shù)據(jù)分組的針孔,所述方法還包括: 在安裝所述新的流規(guī)則之后,接收具有匹配所述第一控制分組的源地址和/或目的地 地址的源地址和/或具有匹配所述第一控制分組的所述源地址和/或目的地地址的目的地 地址的數(shù)據(jù)分組; 嘗試匹配所述數(shù)據(jù)分組與所述轉(zhuǎn)發(fā)元件的所述流表;以及 響應于所述數(shù)據(jù)分組與所述流表的所述新的流規(guī)則匹配,根據(jù)由所述新的流規(guī)則定義 的所述針孔來處理所述數(shù)據(jù)分組。
      9. 根據(jù)權(quán)利要求4所述的方法,其中所述分組是第一分組,所述方法還包括: 響應于從對應于所述分組內(nèi)消息的所述控制器接收影子修改消息,在所述影子表中安 裝影子規(guī)則,所述影子規(guī)則定義地址和/或端口的范圍/列表以及與所述第一分組的源地 址和/或目的地地址關(guān)聯(lián)的新的流規(guī)則; 在安裝所述影子規(guī)則之后,通過所述轉(zhuǎn)發(fā)元件的輸入/輸出端口來接收第二分組,其 中所述第二分組具有匹配所述第一分組的所述源地址和/或目的地地址的源地址和/或具 有匹配所述第一分組的所述源地址和/或目的地地址的目的地地址; 嘗試匹配所述第二分組與所述轉(zhuǎn)發(fā)元件的所述流表; 響應于所述第二分組未命中與所述流表的匹配,嘗試匹配所述第二分組與所述轉(zhuǎn)發(fā)元 件的所述影子表; 響應于所述第二分組匹配所述影子表的所述影子規(guī)則,比較所述第二分組的源端口和 /或目的地端口與由所述影子規(guī)則定義的所述地址和/或端口的范圍/列表; 響應于所述第二分組的所述源端口和/或目的地端口匹配由所述影子規(guī)則定義的所 述地址和/或端口的范圍/列表,在所述流表中安裝新的流規(guī)則用于具有匹配所述第一分 組的所述源地址和/或目的地地址的源地址和/或具有匹配所述第一分組的所述源地址和 /或目的地地址的目的地地址并且具有來自所述第二分組的所述地址和/或端口的分組; 以及 將所述第二分組從所述轉(zhuǎn)發(fā)元件的輸入/輸出端口轉(zhuǎn)發(fā)到目的地。
      10. 根據(jù)權(quán)利要求9所述的方法,所述方法還包括: 在安裝所述新的流規(guī)則之后,接收具有匹配所述第一分組的源地址和/或目的地地址 的源地址和/或具有匹配所述第一分組的所述源地址和/或目的地地址的目的地地址并且 具有來自所述第二分組的所述地址和/或端口的第三分組; 嘗試匹配所述第三分組與所述轉(zhuǎn)發(fā)元件的所述流表;以及 響應于所述數(shù)據(jù)分組與所述流表的所述新的流規(guī)則匹配,根據(jù)所述新的流規(guī)則來處理 所述數(shù)據(jù)分組。
      11. 一種在包含轉(zhuǎn)發(fā)平面和控制平面的網(wǎng)絡的所述轉(zhuǎn)發(fā)平面中的轉(zhuǎn)發(fā)元件,所述轉(zhuǎn)發(fā) 元件包括: 多個輸入/輸出端口,配置為提供與所述轉(zhuǎn)發(fā)平面的其它轉(zhuǎn)發(fā)元件的通信;以及 處理器,耦合到所述多個輸入/輸出端口,其中所述處理器配置為通過所述轉(zhuǎn)發(fā)元件 的輸入/輸出端口來接收分組;嘗試匹配所述分組與所述轉(zhuǎn)發(fā)元件的流表;響應于所述分 組未命中與所述流表的匹配,嘗試匹配所述分組與所述轉(zhuǎn)發(fā)元件的影子表;并且響應于所 述分組與所述影子表匹配,基于來自所述影子表的匹配的影子規(guī)則在所述流表中安裝新的 流規(guī)則。
      12. 根據(jù)權(quán)利要求11所述的轉(zhuǎn)發(fā)元件,其中所述處理器配置為基于來自所述影子表 的所述匹配的影子規(guī)則在所述流表中安裝所述新的流規(guī)則而不將所述分組從所述轉(zhuǎn)發(fā)元 件傳送到所述網(wǎng)絡的控制平面。
      13. 根據(jù)權(quán)利要求11所述的轉(zhuǎn)發(fā)元件,其中所述處理器還配置為根據(jù)來自所述影子 表的匹配的影子規(guī)則和/或根據(jù)所述新的流規(guī)則通過所述轉(zhuǎn)發(fā)元件來處理所述分組。
      14. 根據(jù)權(quán)利要求11所述的轉(zhuǎn)發(fā)元件,其中所述處理器還配置為:響應于所述分組未 命中與所述流表的匹配以及響應于所述分組未命中與所述影子表的匹配,將分組內(nèi)消息傳 送到所述網(wǎng)絡的所述控制平面中的控制器,其中所述分組內(nèi)消息包含所述分組。
      15. 根據(jù)權(quán)利要求14所述的轉(zhuǎn)發(fā)元件,其中所述分組包括數(shù)據(jù)分組,并且其中所述處 理器還配置為:響應于所述數(shù)據(jù)分組未命中與所述流表的匹配以及響應于所述數(shù)據(jù)分組未 命中與所述影子表的匹配,更新所述轉(zhuǎn)發(fā)元件的學習表來關(guān)聯(lián)所述數(shù)據(jù)分組的源與所述輸 入/輸出端口。
      16. 根據(jù)權(quán)利要求15所述的轉(zhuǎn)發(fā)元件,其中所述數(shù)據(jù)分組是第一數(shù)據(jù)分組,并且其中 所述處理器還配置為:響應于從對應于所述分組內(nèi)消息的所述控制器接收影子修改消息, 在所述影子表中安裝影子規(guī)則,所述影子規(guī)則關(guān)聯(lián)來自由所述第一數(shù)據(jù)分組的目的地地址 識別的源的后續(xù)數(shù)據(jù)分組與所述轉(zhuǎn)發(fā)元件的虛擬內(nèi)部端口;在安裝所述影子規(guī)則之后,通 過所述轉(zhuǎn)發(fā)元件的輸入/輸出端口來接收第二數(shù)據(jù)分組,其中所述第二數(shù)據(jù)分組具有匹配 所述第一數(shù)據(jù)分組的所述目的地地址的源地址;嘗試匹配所述第二數(shù)據(jù)分組與所述轉(zhuǎn)發(fā)元 件的所述流表;響應于所述第二數(shù)據(jù)分組未命中與所述流表的匹配,嘗試匹配所述第二數(shù) 據(jù)分組與所述轉(zhuǎn)發(fā)元件的所述影子表;響應于所述第二數(shù)據(jù)分組與所述影子表的影子規(guī)則 匹配,基于來自所述影子表的所述匹配的影子規(guī)則在所述流表中安裝新的流規(guī)則;并且根 據(jù)來自所述影子表的匹配的影子規(guī)則和/或根據(jù)所述新的流規(guī)則通過所述轉(zhuǎn)發(fā)元件處理 所述第二數(shù)據(jù)分組。
      17. 根據(jù)權(quán)利要求14所述的轉(zhuǎn)發(fā)元件,其中所述分組是在所述轉(zhuǎn)發(fā)元件的控制端口 處接收的第一控制分組,所述第一控制分組用于在客戶端裝置與服務器裝置之間的會話, 并且其中所述處理器還配置為:響應于從對應于所述分組內(nèi)消息的所述控制器接收影子修 改消息,在所述影子表中安裝影子規(guī)則,所述影子規(guī)則匹配在所述控制端口處接收的并且 具有匹配所述第一控制分組的源地址和/或目的地地址的源地址和/或具有匹配所述第一 控制分組的所述源地址和/或目的地地址的目的地地址的后續(xù)控制分組,其中所述影子規(guī) 則從匹配控制分組來識別端口命令;在安裝所述影子規(guī)則之后,通過所述轉(zhuǎn)發(fā)元件的所述 控制端口來接收第二控制分組,其中所述第二控制分組具有匹配所述第一控制分組的所述 源地址和/或目的地地址的源地址和/或具有匹配所述第一控制分組的所述源地址和/或 目的地地址的目的地地址;嘗試匹配所述第二控制分組與所述轉(zhuǎn)發(fā)元件的所述流表;響應 于所述第二控制分組未命中與所述流表的匹配,嘗試匹配所述第二控制分組與所述轉(zhuǎn)發(fā)元 件的所述影子表;響應于所述第二控制分組匹配所述影子表的所述影子規(guī)則,執(zhí)行所述影 子規(guī)則的表達引擎來識別所述第二控制分組的命令類型;響應于識別所述第二控制分組的 命令類型,基于所述第二控制分組的所述命令類型在所述流表中安裝新的流規(guī)則;并且將 所述第二控制分組從所述轉(zhuǎn)發(fā)元件的輸入/輸出端口轉(zhuǎn)發(fā)到目的地。
      18. 根據(jù)權(quán)利要求17所述的轉(zhuǎn)發(fā)元件,其中所述第二控制分組包括端口命令控制分 組,所述端口命令控制分組識別用于在所述客戶端與所述服務器裝置之間傳送的后續(xù)數(shù)據(jù) 分組的數(shù)據(jù)端口,其中所述處理器配置為安裝所述新的流規(guī)則包括安裝所述新的流規(guī)則來 定義用于在所述客戶端與所述服務器裝置之間傳送的后續(xù)數(shù)據(jù)分組的針孔;在安裝所述新 的流規(guī)則之后接收數(shù)據(jù)分組,其中所述數(shù)據(jù)分組具有匹配所述第一控制分組的源地址和/ 或目的地地址的源地址和/或具有匹配所述第一控制分組的所述源地址和/或目的地地址 的目的地地址;嘗試匹配所述數(shù)據(jù)分組與所述轉(zhuǎn)發(fā)元件的所述流表;并且響應于所述數(shù)據(jù) 分組與所述流表的所述新的流規(guī)則匹配,根據(jù)由所述新的流規(guī)則定義的所述針孔來處理所 述數(shù)據(jù)分組。
      19. 根據(jù)權(quán)利要求14所述的轉(zhuǎn)發(fā)元件,其中所述分組是第一分組,并且其中所述處理 器還配置為:響應于從對應于所述分組內(nèi)消息的所述控制器接收影子修改消息,在所述影 子表中安裝影子規(guī)則,所述影子規(guī)則定義地址和/或端口的范圍/列表以及與所述第一分 組的源地址和/或目的地地址關(guān)聯(lián)的新的流規(guī)則;在安裝所述影子規(guī)則之后,通過所述轉(zhuǎn) 發(fā)元件的輸入/輸出端口來接收第二分組,其中所述第二分組具有匹配所述第一分組的所 述源地址和/或目的地地址的源地址和/或具有匹配所述第一分組的所述源地址和/或 目的地地址的目的地地址;嘗試匹配所述第二分組與所述轉(zhuǎn)發(fā)元件的所述流表;響應于所 述第二分組未命中與所述流表的匹配,嘗試匹配所述第二分組與所述轉(zhuǎn)發(fā)元件的所述影子 表;響應于所述第二分組匹配所述影子表的所述影子規(guī)則,比較所述第二分組的源端口和 /或目的地端口與由所述影子規(guī)則定義的所述地址和/或端口的范圍/列表;響應于所述 第二分組的所述源端口和/或目的地端口匹配由所述影子規(guī)則定義的所述地址和/或端口 的范圍/列表,在所述流表中安裝新的流規(guī)則用于具有匹配所述第一分組的所述源地址和 /或目的地地址的源地址和/或具有匹配所述第一分組的所述源地址和/或目的地地址的 目的地地址并且具有來自所述第二分組的所述地址和/或端口的分組;并且將所述第二分 組從所述轉(zhuǎn)發(fā)元件的輸入/輸出端口轉(zhuǎn)發(fā)到目的地。
      20.根據(jù)權(quán)利要求19所述的轉(zhuǎn)發(fā)元件,其中所述處理器還配置為:在安裝所述新的流 規(guī)則之后,接收第三分組,其中所述第三分組具有匹配所述第一分組的源地址和/或目的 地地址的源地址和/或具有匹配所述第一分組的所述源地址和/或目的地地址的目的地地 址;嘗試匹配所述數(shù)據(jù)分組與所述轉(zhuǎn)發(fā)元件的所述流表;并且響應于所述數(shù)據(jù)分組與所述 流表的所述新的流規(guī)則匹配根據(jù)所述新的流規(guī)則來處理所述分組。
      【文檔編號】H04L12/717GK104145457SQ201380012982
      【公開日】2014年11月12日 申請日期:2013年3月1日 優(yōu)先權(quán)日:2012年3月5日
      【發(fā)明者】R.蘇布拉瑪尼亞姆, R.曼希爾馬拉尼 申請人:瑞典愛立信有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1