TWI520530B - 封包交換裝置及方法 - Google Patents

封包交換裝置及方法 Download PDF

Info

Publication number
TWI520530B
TWI520530B TW102117576A TW102117576A TWI520530B TW I520530 B TWI520530 B TW I520530B TW 102117576 A TW102117576 A TW 102117576A TW 102117576 A TW102117576 A TW 102117576A TW I520530 B TWI520530 B TW I520530B
Authority
TW
Taiwan
Prior art keywords
packet
flow table
forwarding engine
identification code
header
Prior art date
Application number
TW102117576A
Other languages
English (en)
Other versions
TW201445930A (zh
Inventor
郭慧真
Original Assignee
智邦科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 智邦科技股份有限公司 filed Critical 智邦科技股份有限公司
Priority to TW102117576A priority Critical patent/TWI520530B/zh
Priority to CN201310216799.3A priority patent/CN104168170B/zh
Priority to US14/185,940 priority patent/US9736073B2/en
Publication of TW201445930A publication Critical patent/TW201445930A/zh
Application granted granted Critical
Publication of TWI520530B publication Critical patent/TWI520530B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Description

封包交換裝置及方法
本發明是有關於一種封包交換技術,且特別是有關於一種封包交換裝置及方法。
因應日趨複雜的網路環境,傳統網路交換器與路由器的功能繁多,致使網路傳輸效能低落,而且受到網路硬體設備的作業系統侷限,管理者難以依照需求自由管理網路封包傳遞路徑。因此,2008年美國史丹佛大學(Stanford University)開始推動一項實驗性技術「OpenFlow」,期望能夠以開放式網路管理架構來提高網路效能與彈性應用需求,協助網路服務供應商更為精確的網路管理能力。
OpenFlow的技術內容指的是將過去統一由網路交換器/路由器執行的網路路徑控管與資料封包傳輸功能區分開來,讓網路路徑控管的功能另外以安裝OpenFlow控制軟體的控制伺服器來決定,其中控制伺服器以管理流程表(flow table)內包含的匹配條件(match)與對應處理動作(action)來控制OpenFlow交換器,而資料封包傳輸則由OpenFlow交換器來執行,依據的規則(rule)是若封包符合流程表之匹配條件時,則執行對應的處理動作。
然而,現有的硬體架構下,一般OpenFlow交換器處理封包僅能支援單流程表,而無法對多流程表進行查詢,亦即每一個封包只能比對一次流程表,對應的處理動作不能再指引到其他流程表進行比對。而在可支援多流程表的OpenFlow 1.1新技術中,現有的硬體架構卻無法支援,而需要花費額外的重新設計成本來符合新技術的規範。
因此,如何在現有規格下設計新的封包交換裝置及方法,以解決上述的問題,為業界亟待解決的問題。
本發明之一態樣是提供一種封包交換裝置,包含:輸入埠、回送埠(Loop Back Port)、儲存模組以及轉送引擎。輸入埠接收封包。儲存模組儲存複數封包流程表(flow table),各封包流程表包含至少一匹配條件(match)與至少一處理動作(action)。轉送引擎判斷封包是否包含流程檔頭(header),當封包不包含流程檔頭時,轉送引擎根據封包流程表之預設流程表比對封包。其中轉送引擎依據預設流程表之至少一匹配條件比對封包,且於符合匹配條件時執行對應之處理動作。當處理動作包含比對另一封包流程表時,轉送引擎於封包加入流程檔頭,以設定流程檔頭之流程辨識碼,並藉由回送埠使封包回送至轉送引擎。
依據本發明一實施例,當封包包含流程檔頭時,轉送引擎根據流程檔頭之流程辨識碼自封包流程表擷取對應流程表與封包進行比對,並依據對應流程表之至少一匹配條件比對封包,且於符合匹配條件時執行對應之處理動作。其中,當處理動作包含比對封包流程表時,轉送引擎對應修改流程辨識碼,且藉由回送 埠使封包回送至轉送引擎,其中修改後之流程辨識碼大於修改前之流程辨識碼。
依據本發明另一實施例,其中儲存模組為一三元內容定址記憶體(Ternary Content Addressable Memory;TCAM)。
依據本發明又一實施例,更包含輸出埠,其中當封包不符合預設流程表或對應流程表之至少其中之一匹配條件時,轉送引擎直接根據預設流程表或對應流程表之次一封包流程表比對封包、捨棄該封包或將封包藉由輸出埠向外傳送。
依據本發明再一實施例,當封包不符合預設流程表或對應流程表之至少一匹配條件時,轉送引擎直接根據目前封包流程表之次一封包流程表比對封包、捨棄封包或將封包藉由輸出埠向外傳送。
依據本發明更有之一實施例,其中匹配條件包含至少一封包內部資訊或至少一封包外部資訊。其中封包內部資訊包含網際網路協定(Internet Protocol;IP)位址、虛擬網路(Virtual Local Area Network;VLAN)辨識碼、服務類別(Class of Service;CoS)、差分服務代碼點(Differentiated Services Code Point;DSCP)或其排列組合。封包外部資訊包含封包來源、輸入埠之埠號或其排列組合。
本發明之另一態樣提供一種封包交換方法,應用於封包交換裝置,包含:以轉送引擎判斷封包是否包含流程檔頭,當封包不包含流程檔頭時,轉送引擎根據複數封包流程表之一預設流程表比對封包,其中各封包流程表包含至少一匹配條件與至少一處理動作;轉送引擎依據預設流程表之匹配條件比對封包,且於符合時執行對應之處理動作;以及當處理動作包含比對另一封包 流程表時,轉送引擎於封包加入流程檔頭,以設定流程檔頭之流程辨識碼,並藉由回送埠回送封包至轉送引擎。
依本發明一實施例,當封包包含流程檔頭時,更包含:當封包包含流程檔頭時,根據流程檔頭之流程辨識碼自封包流程表擷取對應流程表與封包進行比對;以及依據對應流程表之匹配條件比對封包,且於符合匹配條件時執行對應之處理動作,其中,當處理動作包含比對另一封包流程表時,轉送引擎對應修改流程辨識碼,且藉由回送埠回送封包至該轉送引擎,其中修改後之流程辨識碼大於修改前之流程辨識碼。
依據本發明另一實施例,封包交換方法更包含使控制伺服器更新封包流程表。
本發明之又一態樣提供一種封包交換方法,應用於封包交換裝置,包含:以轉送引擎判斷封包是否包含流程檔頭,當封包不包含流程檔頭時,轉送引擎加入流程檔頭至封包,以設定流程辨識碼。轉送引擎根據流程辨識碼自封包流程表擷取對應流程表與封包進行比對,其中各封包流程表包含至少一匹配條件與至少一處理動作;轉送引擎更依據對應流程表之匹配條件比對封包,且於符合匹配條件時執行對應之處理動作;以及當處理動作包含比對另一封包流程表時,轉送引擎對應修改流程辨識碼,且藉由回送埠回送封包至轉送引擎,其中修改後之流程辨識碼大於修改前之流程辨識碼。
依據本發明一實施例,封包交換方法更包含:當封包不符合預設流程表或對應流程表之匹配條件時,使轉送引擎直接使封包根據預設流程表或對應流程表之次一封包流程表進行比對、捨棄封包或將封包藉由輸出埠對外傳送。
本發明之封包交換裝置及方法之優點在於可使用原本僅支援單流程表的現今硬體架構,藉由流程辨識碼及回送埠的設計,達到支援多流程表的目的,避免重新設計硬體架構的成本。
1‧‧‧封包交換裝置
10‧‧‧輸入埠
11‧‧‧封包
12‧‧‧儲存模組
120‧‧‧控制伺服器
13‧‧‧封包流程表
14‧‧‧轉送引擎
16‧‧‧輸出埠
18‧‧‧回送埠
2‧‧‧外部網路裝置
300、400‧‧‧封包交換方法
301-310、401-410‧‧‧步驟
第1圖為本發明一實施例中,封包交換裝置之方塊圖。
第2圖為本發明一實施例中,複數封包流程表的示意圖。
第3圖為本發明一實施例中,一種封包交換方法之流程圖。
第4圖為本發明一實施例中,一種封包交換方法之流程圖。
請參照第1圖。第1圖為本發明一實施例中,封包交換裝置1之方塊圖。封包交換裝置1包含:輸入埠10、儲存模組12、轉送引擎14、輸出埠16以及回送埠18。
輸入埠10、回送埠18與輸出埠16分別包含接收單元RX10、RX18、RX16以及傳送單元TX10、TX18、TX16,輸入埠10藉由接收單元RX10接收封包11。
儲存模組12儲存有複數封包流程表13(flow table)。於一實施例中,儲存模組12是一三元內容定址記憶體(Ternary Content Addressable Memory;TCAM),而封包流程表13為一三元內容定址記憶體(Ternary Content Addressable Memory;TCAM)規則表,值得說明的是,三元內容定址記憶體中能定義三種狀態,即傳統的1跟0兩種位元狀態分別可以是為具備與不具備外,尚另有不計(don’t care)的狀態以增加判斷條件在比對上之彈性。封包流程 表13則包含至少一匹配條件(match)與對應之至少一處理動作(action)。
事實上,在OpenFlow的規格下,封包流程表(flow table)係以包含的每一個流程項目(flow entry)支援三個部分的內容,即匹配條件,處理動作跟狀態。其中,匹配條件可簡單的分類以依據封包內部資訊決定之匹配條件以及依封包外部資訊決定之條件。
舉例來說,封包內部資訊可包含例如,但不限於網際網路協定(Internet Protocol;IP)位址、網際網路協定類型(IP type)、虛擬網路(Virtual Local Area Network;VLAN)辨識碼、服務類別(Class of Service;CoS)、差分服務代碼點(Differentiated Services Code Point;DSCP)、甚至是包含封包檔頭(header)與否、封包檔頭內容或其排列組合。
而封包外部資訊可包含例如,但不限於封包來源、輸入埠之埠號或其排列組合,但本發明並不以上述列舉項目為限,其他的一般網路設定與資訊,如乙太網路類型(Ether Type)、來源媒體存取控制(source media access control,Src MAC)位址、目的媒體存取控制(destination media access control,Dst MAC)位址、來源IP(source IP,Src IP)、目的IP(destination IP,Dst IP)、L4 Source Port或L4 Destination Port等,均得作為比對之條件。
由於前述三元內容定址記憶體之特性,因此本發明得以同時設定多種條件的組合進行比對,令某些條件必須具備,假設是位元1的狀態,某些條件必須不具備,假設是位元0的狀態,以及某些條件不計,即don’t care的狀態,使得本發明的封包流程表13得以相當彈性的進行各種設定。
處理動作則是當此封包在符合至少一匹配條件時,轉送 引擎14可據以進行對應處理的動作。詳細的封包流程表13將於後續的段落說明。
於一實施例中,封包流程表13可由一個控制伺服器120進行管理與更新,值得說明的是,凡具有網路通訊界面,支援OpenFlow協定規格者即可作為控制伺服器120,最簡單的態樣可以是一部個人電腦(PC),或者,也可以是一部網路伺服器(server),但本發明不以此為限。
轉送引擎14首先判斷封包11是否包含流程檔頭(header)。當封包11未包含流程檔頭時,轉送引擎14判斷此封包11為第一次接收到的封包。因此,於一實施例中,轉送引擎14在封包11未具有流程檔頭的情形下,直接自儲存模組12中擷取一個預設流程表進行比對,以判斷封包11是否符合預設流程表中至少一匹配條件。目前OpenFlow的規格中,多個封包流程表是以順序編號的方式,由0開始排序,其中,常見將編號0的封包流程表設定為未具有流程檔頭封包之預設流程表,但本發明不以此為限。當封包11符合至少其中之一匹配條件時,轉送引擎14將根據對應的處理動作對封包11進行處理。本發明的轉送引擎14是一般網路通訊裝置,如交換器(switch)或路由器(router)中,具有封包處理功能的模組或單元而可以收發、比對與編輯封包者,因此轉送引擎14可以是交換器或路由器內的網路處理器(processor)、處理晶片組(chip set),或者也可以是一微控器(micro-controller),但本發明不以此為限。
於一實施例中,轉送引擎14是藉由處理動作是否對封包11進行對另一封包流程表的比對來判斷是否對封包11進行流程辨識碼的設定。此流程辨識碼的設定可以使封包11在下一階段的 比對中,依此流程辨識碼擷取對應之流程表進行比對。目前OpenFlow的規格中,多個封包流程表是以順序編號的方式,由0開始排序,因此當轉送引擎14判斷處理動作之一包含比對另一封包流程表時,將附加流程檔頭於封包11中,並將流程檔頭內的流程辨識碼設定為一個指定值,以對應另一待比對之封包流程表。
接著,轉送引擎14將藉由回送埠18使封包11回送至轉送引擎14,以進行下階段的比對。回送之封包11將由回送埠18的傳送單元TX18傳輸至接收單元RX18後,再傳輸至轉送引擎14。值得注意的是,本發明的回送埠18可以是一實體的連接埠,也可以是一內部的連接埠,而且本發明的回送埠18可以是一保留的連接埠,也可以是一使用中的連接埠,本發明的回送埠18不以此為限。
同樣地,轉送引擎14於此階段比對仍先判斷封包11是否包含流程檔頭。由於在前一階段中,轉送引擎14已附加流程檔頭於封包11,因此封包11包含流程檔頭,而非第一次接收到的封包。轉送引擎14因而依據流程檔頭中,設定為指定值的流程辨識碼,自儲存模組12擷取對應流程辨識碼的一個對應流程表進行比對。同樣地,轉送引擎14亦判斷封包11是否符合對應流程表中至少一個匹配條件。如有符合的匹配條件,則轉送引擎14將根據對應的處理動作對封包11進行處理。而如果處理動作之一是再指向另一封包流程表進行比對時,轉送引擎14將修改流程檔頭,將流程辨識碼設定為新的指定值,再次地藉由回送埠18使封包11回送至轉送引擎14,以進行再下階段的比對,比對的過程則如前述,依據流程辨識碼擷取對應的一個對應流程表進行比對,於此不再贅述。
於一實施例中,若其處理動作包含結束比對,即轉送引擎14判斷封包11所對應的處理動作並未包含再指向另一封包流程表進行比對時,則轉送引擎14的處理動作將至少包含:放棄此封包11,或者是使封包11藉由輸出埠16傳送至外部網路裝置2或控制伺服器120,其中,控制伺服器120更可設定處理動作之各種內容,例如,令轉送引擎14編輯封包內容,如修改檔頭等,再加以轉送,但本發明不以此為限。封包11將藉由輸出埠16的傳送單元TX16傳送至一個指定的外部網路裝置2或者是控制伺服器120。於不同實施例中,外部網路裝置2可為目標端的主機,亦可為下一個封包交換裝置。
於一實施例中,如果封包11並不符合任何的封包流程表之任一匹配條件,即miss match時,則轉送引擎14的處理動作將包含:直接使此封包11根據目前比對之封包流程表的下一封包流程表進行比對,如前述,OpenFlow的規格中,多個封包流程表示以順序編號的方式,在此即指下一編號的封包流程表;或者是,直接捨棄封包11;或者是,轉送引擎14將封包11藉由輸出埠16傳送至控制伺服器120,由控制伺服器120進行其他可能的處理動作,例如針對此封包11的相關條件對封包流程表13中加以編輯處理。需注意的是,封包11不符合任何封包匹配條件時,處理動作會隨著封包11目前所比對的封包流程表不同,而有不同的選擇,而指定下一封包流程表進行比對的技術則依據前述設定流程辨識碼再回傳之技術,在此不再贅述。
本發明之封包交換裝置,可支援的封包流程表數目決定於三元內容定址記憶體(TCAM)的記憶空間大小。
另一實施例中,當轉送引擎14於初次接收到封包11並 判斷封包11未包含流程檔頭時,更先直接附加流程檔頭於封包11,以將流程檔頭中的流程辨識碼設定為預設值,例如對應目前OpenFlow的規格中,常見將編號0的封包流程表設定為未具有流程檔頭封包之預設流程表,而將流程辨識碼之預設值設為0,以對應擷取編號0的封包流程表。因此,本實施例中,轉送引擎14在封包11已被加入流程檔頭,且流程辨識碼為預設值的情形下,將根據此流程辨識碼自儲存模組12中擷取對應流程表進行比對,以判斷封包11是否符合預設流程表中至少一個匹配條件。並且,在轉送引擎14判斷封包11符合至少一個匹配條件,且其對應的處理動作為進行另一封包流程表之比對時,轉送引擎14進而修改流程檔頭,以將流程辨識碼設定為對應另一封包流程表之指定值後,藉由回送埠18回送封包11至轉送引擎14進行下階段另一封包流程表的比對。
請參照第2圖。第2圖為本發明一實施例中,其中複數封包流程表13的示意圖。
如第2圖所示,複數封包流程表13所記錄的各列欄位分別代表對應不同流程辨識碼之封包流程表與其所包含之匹配條件以及處理動作。其中,「是否傳送至回送埠」的欄位實際上為處理動作的一部份,即代表是否比對另一封包流程表之動作。在此為便於說明,而獨立繪示為一個欄位,於實作中,係可將此部份整合入處理動作的欄位中。
於本實施例中,複數封包流程表13第一列欄位記錄的是,當封包11符合「不具有封包檔頭」的匹配條件時,應進行「對封包11的目的IP進行修改,且將流程辨識碼設定為指定值1」,並須傳送到回送埠與另一封包流程表比對的處理動作。因此,如 封包11符合不具備封包檔頭之匹配條件時,轉送引擎14除將修改目的IP,更修改封包11之流程檔頭中的流程辨識碼為1,並傳送封包11至回送埠18。複數封包流程表13第二列欄位記錄的是,當封包11之流程辨識碼為1,便對應此封包流程表的比對,且封包11符合虛擬網路辨識碼(VLAN-ID)為1的匹配條件時,應進行「對封包11的虛擬網路辨識碼進行修改,且將流程辨識碼設定為指定值2」,並傳送到回送埠與另一封包流程表比的處理動作。因此,如封包11之流程辨識碼為1且符合此對應封包流程表之匹配條件時,轉送引擎14除將修改虛擬網路辨識碼,更修改封包11之流程檔頭中的流程辨識碼為2,並傳送封包11至回送埠18。
複數封包流程表13第三列的各欄位記錄的是,當封包11之流程辨識碼為2,便對應此封包流程表的比對,且封包11符合網際網路協定(IP)位址為10.1.0.1」的匹配條件時,應進行「對封包11的服務類別(CoS)進行修改,且將流程辨識碼設定為指定值3」並傳送到回送埠與另一封包流程表比對的處理動作。因此,如封包11目前的流程辨識碼為2且符合此對應封包流程表之匹配條件時,轉送引擎14除將修改服務類別,更修改設定封包11之流程檔頭中的流程辨識碼為3,並傳送封包11至回送埠18。
複數封包流程表13第四列的各欄位記錄的是,當封包11之流程辨識碼為3,便對應此封包流程表的比對,且封包11符合差分服務代碼點(DSCP)為63的匹配條件時,應進行「對此封包11的差分服務代碼點進行修改,且經由特定輸出埠傳送至一外部網路裝置」的處理動作。因此,如封包11目前的流程辨識碼為3且符合此封包流程表之匹配條件時,轉送引擎14除將修改差分服務代碼點,而改由輸出埠16傳送出去,而不使封包11傳送至 回送埠18。需注意的是,如前所述,於其他實施例中,處理動作亦可能有其他的處理方式,並不限於將封包11由輸出埠16傳送出去的實施方式,如丟棄封包,另外,當全部的匹配條件都不符時,也有對應的處理動作,在此則不贅述。
需注意的是,第2圖所繪示的封包流程表13僅為一供說明的簡單範例,本發明並不以此限,本發明之封包流程表於不同的實施例中可包含不同數量的匹配條件以及處理動作。舉例來說,於部份實施例中,封包11在同時符合兩個以上的條件(如虛擬網路辨識碼為1且網際網路協定位址為10.1.0.1)才可進行某特定之處理動作。於部份實施例中,處理動作亦可同時對兩種以上的封包內容進行修改(如同時對服務類別與差分服務代碼點進行修改),如前所述,由於三元內容定址記憶體的特性,不僅可以設定多種匹配條件,更可以針對各匹配條件設定具備、不具備或不計之不同判別標準,因此,對應於特定流程辨識碼的欄位,例如對應流程辨識碼為1的列數會因為對應數個條件而有數列,也同時對應不同處理動作,這些流程辨識碼為1的各列均可以視為對應於流程辨識碼為1之封包流程表,不為上述實施例的內容所限。
於一實施例中,封包流程表13可具有一隨比對階段遞增的階層關係。在轉送引擎14設定或修改流程辨識碼為預設值或指定值時,將使設定後或修改後的流程辨識碼始終大於設定前或修改前的流程辨識碼。
舉例來說,封包11在剛進入封包交換裝置1時,如以預設值0做為流程辨識碼,對編號0之封包流程表進行比對後,若要再以另一封包流程表進行比對,處理動作將設定流程辨識碼為大於0的值,例如1、2或3,以對應到編號1、編號2或編號3 之封包流程表進行後續的查詢比對流程。如果此封包11的流程辨識碼被指定為1時,其在對表格1完成查詢比對後,若要再以另一封包流程表進行比對,處理動作將設定流程辨識碼為大於1的值,例如4或5,以對應到編號4或編號5之封包流程表進行後續查詢比對流程。因此,隨著查詢比對之次數遞增,其指定值亦將隨之增加,以使封包11向後比對後續的封包流程表。需注意的是,此增加除有規律的遞增外,如逐次向次一封包流程表進行比對,亦可包含不規律的增加。增加流程辨識碼之指定值係可使比對流程持續向後續的封包流程表進行,而不會造成由於反向比對而產生無窮迴圈的狀況。
需注意的是,上述的表格結構僅為一實施方式之說明。於其他實施例中,亦可依據不同的匹配條件與對應處理動作而採用其他的結構,以達到最佳的查詢效果。
請參照第3圖。第3圖為本發明一實施例中,一種封包交換方法300之流程圖。封包交換方法300可應用於如第1圖所示的封包交換裝置1。封包交換方法300包含下列步驟。
於步驟301,自輸入埠10接收封包11。於步驟302,轉送引擎14判斷封包11是否包含流程檔頭。
當封包不含流程檔頭時,轉送引擎14於步驟303擷取預設流程表。封包包含流程檔頭時,轉送引擎14於步驟304依流程檔頭的流程辨識碼擷取對應之封包流程表。
於步驟303及304後,轉送引擎14於步驟305比對封包11是否符合預設流程表或對應封包流程表之至少之一匹配條件。當封包11符合至少其中之一匹配條件時,轉送引擎14於步驟306執行對應之處理動作。
接著,轉送引擎14於步驟307判斷處理動作是否包含比對另一封包流程表,若處理動作包含比對另一封包流程表時,在步驟308設定流程檔頭之流程辨識碼為對應此待比對之封包流程表的指定值,並藉由回送埠18使封包11回送至轉送引擎14。流程將回至步驟302,以依據流程辨識碼對對應之封包流程表進行比對。
當步驟307判斷處理動作並非比對另一封包流程表時,轉送引擎14將判斷處理動作其中之一為結束此封包流程表之比對,並於步驟309執行其他的處理動作,如將封包11捨棄,或藉由輸出埠16傳送至外部網路裝置2或控制伺服器120等,如前所述,控制伺服器120更可設定處理動作之各種內容,本發明不以此為限。
而當於步驟305中,轉送引擎14判斷封包11不符合任何匹配條件時,將於步驟310直接使封包11根據目前比對之封包流程表之下一封包流程表進行比對、捨棄封包11或將封包11藉由輸出埠16傳送至控制伺服器120。此部分技術已於前說明而不再贅述。
請參照第4圖。第4圖為本發明另一實施例中,一種封包交換方法400之流程圖。封包交換方法400可應用於如第1圖所示的封包交換裝置1。本實施例之封包交換方法400與前述之封包交換方法300之技術內容相似,所不同者,乃是在當封包11不包含流程檔頭時,轉送引擎14於步驟403設定流程檔頭之流程辨識碼為一預設值,接著在步驟404依據流程檔頭的流程辨識碼擷取對應之封包流程表。之後的步驟與其他技術內容便如前述之封包交換方法300,在此則不再贅述。
雖本揭示內容已以實施方式揭露如上,然其並非用以限定本揭示內容,任何熟習此技藝者,在不脫離本揭示內容之精神和範圍內,可作各種之更動與潤飾,故本揭示內容之保護範圍當視後附之申請專利範圍所界定者為準。
1‧‧‧封包交換裝置
10‧‧‧輸入埠
11‧‧‧封包
12‧‧‧儲存模組
120‧‧‧控制伺服器
13‧‧‧封包流程表
14‧‧‧轉送引擎
16‧‧‧輸出埠
18‧‧‧回送埠
2‧‧‧外部網路裝置

Claims (10)

  1. 一種封包交換裝置,包含:一輸入埠,接收一封包;一回送埠(Look Back Port);一儲存模組,儲存複數封包流程表,各該等封包流程表包含至少一匹配條件與至少一處理動作;以及一轉送引擎,判斷該封包是否包含一流程檔頭(header),當該封包不包含該流程檔頭時,該轉送引擎根據該等封包流程表之一預設流程表比對該封包;其中該轉送引擎依據該預設流程表之該匹配條件比對該封包,且於符合該匹配條件時執行對應之該處理動作;當該處理動作包含比對另一該封包流程表時,該轉送引擎於該封包加入該流程檔頭,以設定該流程檔頭之一流程辨識碼,並傳送給該回送埠,藉由該回送埠使該封包回送回該轉送引擎。
  2. 如請求項1所述之封包交換裝置,當該封包包含該流程檔頭時,該轉送引擎根據該流程檔頭之該流程辨識碼自該等封包流程表擷取一對應流程表與該封包進行比對,並依據該對應流程表之該匹配條件比對該封包,且於符合該匹配條件時執行對應之該處理動作,其中,當該處理動作包含比對另一該封包流程表時,該轉送引擎對應修改該流程辨識碼,且藉由該回送埠使該封包回送至該轉送引擎,其中修改後之該流程辨識碼大於修改前之該流程辨識碼。
  3. 如請求項1所述之封包交換裝置,其中該儲存模組為一三 元內容定址記憶體(Ternary Content Addressable Memory;TCAM)。
  4. 如請求項2所述之封包交換裝置,更包含一輸出埠,其中當該封包不符合該預設流程表或該對應流程表之該匹配條件時,該轉送引擎直接根據該預設流程表或該對應流程表之次一該封包流程表比對該封包、捨棄該封包或將該封包藉由該輸出埠向外傳送。
  5. 如請求項1所述之封包交換裝置,其中該等匹配條件包含至少一封包內部資訊以及至少一封包外部資訊,其中該封包內部資訊包含一網際網路協定(Internet Protocol;IP)位址、一虛擬網路(Virtual Local Area Network;VLAN)辨識碼、一服務類別(Class of Service;CoS)、一差分服務代碼點(Differentiated Services Code Point;DSCP)或其排列組合,該封包外部資訊包含一封包來源、該輸入埠之一埠號或其排列組合。
  6. 一種封包交換方法,應用於一封包交換裝置,包含:以一轉送引擎判斷一封包是否包含一流程檔頭,當該封包不包含該流程檔頭時,該轉送引擎根據複數封包流程表之一預設流程表比對該封包,其中各該等封包流程表包含至少一匹配條件與至少一處理動作;該轉送引擎依據該預設流程表之該匹配條件比對該封包,且於符合該匹配條件時執行對應之該處理動作;以及當該處理動作包含比對另一該封包流程表時,該轉送引擎於該封包加入該流程檔頭,以設定該流程檔頭之一流程辨識碼,並 傳送給一回送埠,以藉由該回送埠回送該封包至該轉送引擎。
  7. 如請求項6所述之封包交換方法,更包含:當該封包包含該流程檔頭時,該轉送引擎根據該流程檔頭之該流程辨識碼自該等封包流程表擷取一對應流程表與該封包進行比對;以及依據該對應流程表之該匹配條件比對該封包,且於符合該匹配條件時執行對應之該處理動作,其中,當該處理動作包含比對另一該封包流程表時,該轉送引擎對應修改該流程辨識碼,且藉由該回送埠回送該封包至該轉送引擎,其中修改後之該流程辨識碼大於修改前之該流程辨識碼。
  8. 如請求項6所述之封包交換方法,其中更包含使一控制伺服器更新該等封包流程表。
  9. 一種封包交換方法,包含:以一轉送引擎判斷一封包是否包含一流程檔頭,當該封包不包含該流程檔頭時,該轉送引擎加入該流程檔頭至該封包,以設定一流程辨識碼;該轉送引擎根據該流程辨識碼自該等封包流程表擷取一對應流程表與該封包進行比對,其中各該等封包流程表包含至少一匹配條件與至少一處理動作;該轉送引擎更依據該對應流程表之該匹配條件比對該封包,且於符合該匹配條件時執行對應之該處理動作;以及當該處理動作包含比對另一該封包流程表時,該轉送引擎對 應修改該流程辨識碼,並傳送給一回送埠,以藉由該回送埠回送該封包至該轉送引擎,其中修改後之該流程辨識碼大於修改前之該流程辨識碼。
  10. 如請求項9所述之封包交換方法,更包含:當該封包不符合該預設流程表或該對應流程表之該匹配條件時,使該轉送引擎直接使該封包根據該預設流程表或該對應流程表之次一該封包流程表進行比對、捨棄該封包或將該封包藉由一輸出埠對外傳送。
TW102117576A 2013-05-17 2013-05-17 封包交換裝置及方法 TWI520530B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW102117576A TWI520530B (zh) 2013-05-17 2013-05-17 封包交換裝置及方法
CN201310216799.3A CN104168170B (zh) 2013-05-17 2013-06-03 封包交换装置及方法
US14/185,940 US9736073B2 (en) 2013-05-17 2014-02-21 Packet switch device and method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW102117576A TWI520530B (zh) 2013-05-17 2013-05-17 封包交換裝置及方法

Publications (2)

Publication Number Publication Date
TW201445930A TW201445930A (zh) 2014-12-01
TWI520530B true TWI520530B (zh) 2016-02-01

Family

ID=51895693

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102117576A TWI520530B (zh) 2013-05-17 2013-05-17 封包交換裝置及方法

Country Status (3)

Country Link
US (1) US9736073B2 (zh)
CN (1) CN104168170B (zh)
TW (1) TWI520530B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9692684B2 (en) * 2014-09-05 2017-06-27 Telefonaktiebolaget L M Ericsson (Publ) Forwarding table precedence in SDN
CN104518970B (zh) * 2014-12-12 2018-12-25 北京智谷睿拓技术服务有限公司 流表更新方法、装置及控制器
CN104518969B (zh) * 2014-12-12 2018-12-25 北京智谷睿拓技术服务有限公司 数据报文处理方法、装置及交换机
US9473404B2 (en) * 2015-01-23 2016-10-18 Telefonaktiebolaget Lm Ericsson (Publ) Symmetric flow processing in a software-defined networking (SDN) system
CN104702524B (zh) * 2015-03-13 2018-07-31 北京佳讯飞鸿电气股份有限公司 一种调度台多归属的组网方法及网络系统
WO2016195621A1 (en) * 2015-05-29 2016-12-08 Hewlett Packard Enterprise Development Lp Determining actions to be immediately performed on a network packet with an application specific integrated circuit
US9692690B2 (en) * 2015-08-03 2017-06-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for path monitoring in a software-defined networking (SDN) system
TWI633776B (zh) * 2016-11-09 2018-08-21 英業達股份有限公司 交換機存取資料的方法
KR101924712B1 (ko) * 2017-01-24 2018-12-03 건국대학교 산학협력단 패킷 전송 방법 및 오픈플로우 스위치
CN109787877B (zh) * 2017-11-10 2020-12-25 智邦科技股份有限公司 箱型交换机、网络接口卡、及封包转送的管理方法
CN109995674B (zh) * 2017-12-29 2021-06-29 中国科学院沈阳自动化研究所 一种可编程sdn交换机系统
CN110661733B (zh) * 2018-06-29 2021-07-30 智邦科技股份有限公司 网络接口卡、交换卡及线路卡
US20210409336A1 (en) * 2020-06-30 2021-12-30 Amazon Technologies, Inc. Validating network flows in a multi-tenanted network appliance routing service
TWI778716B (zh) * 2020-07-23 2022-09-21 美商光禾科技股份有限公司 根據查表處理封包的方法和系統
CN113556327B (zh) * 2021-06-29 2022-09-20 中国人民解放军战略支援部队信息工程大学 基于区块链的虚假流规则注入攻击检测与预防系统和方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7460534B1 (en) * 1998-06-03 2008-12-02 3Com Corporation Method for statistical switching
US6636501B1 (en) * 1998-12-11 2003-10-21 International Business Machines Corporation High-speed digital network node communication system and method
WO2010103909A1 (ja) * 2009-03-09 2010-09-16 日本電気株式会社 OpenFlow通信システムおよびOpenFlow通信方法
CN102648455B (zh) * 2009-12-04 2015-11-25 日本电气株式会社 服务器和流控制程序
KR101422381B1 (ko) * 2010-04-19 2014-07-22 닛본 덴끼 가부시끼가이샤 스위치 및 플로우 테이블 제어 방법
US8964563B2 (en) 2011-07-08 2015-02-24 Telefonaktiebolaget L M Ericsson (Publ) Controller driven OAM for OpenFlow
US8521905B2 (en) * 2011-12-22 2013-08-27 Telefonaktiebolaget L M Ericsson (Publ) System for flexible and extensible flow processing in software-defined networks
US8705536B2 (en) * 2012-03-05 2014-04-22 Telefonaktiebolaget L M Ericsson (Publ) Methods of operating forwarding elements including shadow tables and related forwarding elements
CN102868578A (zh) * 2012-10-11 2013-01-09 盛科网络(苏州)有限公司 Openflow交换机表项容量的测试方法及测试系统
CN102946365B (zh) * 2012-11-09 2015-06-17 清华大学 一种基于软件定义网络的保持流表更新一致性的方法

Also Published As

Publication number Publication date
US9736073B2 (en) 2017-08-15
CN104168170A (zh) 2014-11-26
TW201445930A (zh) 2014-12-01
US20140341030A1 (en) 2014-11-20
CN104168170B (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
TWI520530B (zh) 封包交換裝置及方法
US9876701B1 (en) Arrangement for efficient search and retrieval of indexes used to locate captured packets
US8284776B2 (en) Recursive packet header processing
EP2926513B1 (en) Packet prioritization in a software-defined network implementing openflow
US9548896B2 (en) Systems and methods for performing network service insertion
CN104821890A (zh) 一种基于普通交换芯片的OpenFlow多级流表的实现方法
US7149216B1 (en) M-trie based packet processing
US9590922B2 (en) Programmable and high performance switch for data center networks
TWI635726B (zh) 巨網路流量偵測方法與軟體定義網路交換器
US11368357B2 (en) Service fault locating method and apparatus
CN105706391A (zh) 通过索引的本地化来增加组播规模
CN1333617A (zh) 基于mac地址的通信限制方法
RU2602333C2 (ru) Сетевая система, способ обработки пакетов и носитель записи
US7561585B2 (en) Manufacture and method for accelerating network address translation
WO2020134144A1 (zh) 数据或报文转发的方法、节点和系统
US11165682B2 (en) Session aware adaptive packet filtering
US9356838B1 (en) Systems and methods for determining network forwarding paths with a controller
US9667540B2 (en) Fiber channel over ethernet (FCoE) frame forwarding system
US11689464B2 (en) Optimizing entries in a content addressable memory of a network device
US20180069789A1 (en) Data Packet Forwarding Method and Network Device
TWI572169B (zh) 封包交換系統、方法及其非暫態電腦可讀取記錄媒體
US20220393979A1 (en) System and method for programming packet forwarding hardware
US9152494B2 (en) Method and apparatus for data packet integrity checking in a processor
US11962501B2 (en) Extensible control plane for network management in a virtual infrastructure environment
US20220345370A1 (en) Ordering possible device locations on the network by port-of-entry likelihood

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees