TW201021466A - Data path acceleration of a network stack - Google Patents

Data path acceleration of a network stack Download PDF

Info

Publication number
TW201021466A
TW201021466A TW098125938A TW98125938A TW201021466A TW 201021466 A TW201021466 A TW 201021466A TW 098125938 A TW098125938 A TW 098125938A TW 98125938 A TW98125938 A TW 98125938A TW 201021466 A TW201021466 A TW 201021466A
Authority
TW
Taiwan
Prior art keywords
packet
custom
data
data packet
sequence
Prior art date
Application number
TW098125938A
Other languages
English (en)
Other versions
TWI423616B (zh
Inventor
Fabian A Gomes
Leo Kaplan
Original Assignee
Broadcom Corp
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 Broadcom Corp filed Critical Broadcom Corp
Publication of TW201021466A publication Critical patent/TW201021466A/zh
Application granted granted Critical
Publication of TWI423616B publication Critical patent/TWI423616B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • 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/12Protocol engines
    • 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
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

201021466 六、發明說明: 【發明所屬之技術領域】 本發明涉及祕堆㈣資料通道加速。 【先前技術】 · ❹ 資料包可觸廣_或局_傳輪。設縣實現網路 之間的連接’和/或實現網路與_個或多個設備的連接。例如, «網路中的設備或電_路_可以是—録端節點,用於 起始和/或終結連接。電腦網路中的設備或電腦網路系統也可 以是中間節點,負責將資料傳遞至該電腦網路中的另一節點。 資料包可通過這些作爲中間節點的設備傳輸。 ” 【發明内容】 下文結合_以及細書對其中—個或多個實施例進行 詳細闡述。 根據本發_-方φ ’本發明提$ 了-種裝置,用於網路 堆疊的資料通道加速,其包括: Q 流高速缓衝記憶體(flow cache)模組,用於在運行期間 使用特定連接的第一個資料包來獲得屬於所述特定連接的資 料包的代瑪段的自定義序列(custom sequence );和 解析器模組,用於使用資料包的互聯網協定(IP)元組 (tuple)來識別屬於所述特定連接的資料包; 其中’所述流高速缓衝記憶體模組將所述代碼段的自定義 序列應用於所述被識別的資料包。 作爲優選’所述流高速緩衝記憶體模組用於構建所述特定 201021466 連接的自定義堆疊。 作爲優選,所述流高速緩衝記憶體模組用於使用c語言 goto標簽變數(goto Labels as Values)來構建所述特定連接的 自定義堆疊,並將此自定義堆疊作爲線程代碼序列(threaded ' code sequence )。 作爲優選,所述解析器模組用於解析資料包的包頭,以提 取 IP 元組(IP tuple )。 作爲優選, 所述解析器模組還用於檢查資料包的包頭;且 ® 所述流高速緩衝記憶體模組還用於基於檢查過的包頭排 除屬於所述特定連接的某些資料包類型。 作爲優選,所述IP元組包括源地址、目的地址、協定類 型、源埠和目的埠。 根據本發明的又一方面’本發明提出了一種方法:包括 在運行期間’使用特定連接的第一個資料包來獲得屬於所 述特定連接的資料包的代碼段的自定義序列(cust〇m sequence); 響 使用資料包的互聯網協定元組(〗pt叩le)來識別屬於所述 特定連接的資料包;及 將所述代瑪段的自定義序列應用於所述被識別的資料包。 作爲優選’所述在運行期間獲得代碼段的自定義序列包括 構建所述特定連接的自定義堆叠。 作爲優選’所述在運行期間獲得代碼段的自定義序列包括 4 201021466 使用C語言goto標簽變數(goto Labels as Values )來構建所述 特定連接的自定義堆豐’並將此自定義堆疊作爲線程代碼序列 (threaded code sequence )。 作爲優選,識別資料包包括解析資料包的包頭,以提取IP 元組(IPtuple)。 作爲優選,該方法進一步包括: 檢查資料包的包頭;且
❹ 基於檢查過的包頭排除屬於所述特定連接的某些資料包 類型。 作爲優選,所述ΓΡ元組包括源地址。目的地址、協定類 型、源埠和目的埠。 。根據本發明的再-方面,提供了—種執行資料包加速 的電月®程式産σσ。所述電!&程^產品被切實的嵌人電腦可讀媒 介中’該電腦程式産品包括可執行代碼。當執行這些可執行代 碼時,使得至少一個資料處理設備執行以下任務: 在運仃期間’使用特定連接的第—個資料包來獲得屬於所 述特定連接的龍包的代碼段的自定餅列(cu_ sequence); 使用資料包的互聯網協定元組(lptuple)來酬屬於所述 特定連接的資料包;及 將所述代碼段的自定義相翻於所賴識綱資料包。 —作騎選’所述可執行代碼被配置用於使得資料處理裝置 構建所述特定連接的自定義堆疊。 201021466 作爲優選,所述可執行代碼被配置用於使得資料處理裝置 使用C語言goto標簽變數(g〇t〇 Labels as Values)來構建所述 特定連接的自定義堆疊’並將此堆疊作爲線程代碼序列 (threaded code sequence )。 作爲優選’騎可執械碼被配制於使得料處理裝置 解析資料包的包頭,以提取正元組(IPtuple)。 、 作爲優選,所述可執行代碼被喊驗使得轉處理裝 檢查資料包的包頭;且 類型 基於檢查過的包卿除屬於所述特定連接的某些資料包 協定類 作爲優選,所述IP元组包括源地址。目的地址、 型、源埠和目的埠。 以下將結合附圖通過具體實施鑛本發明進行 【實施方式】 θ 通系’系統用於路由和橋接網路之間通信 或路由和橋接網路與一個或多個設備之間通信二。: 如二系統可以對來自第—個網路並輸出至第二個網路的 進^路由和擒接。這㈣、統包括處理II,其躲通簡斷資二 特ΐ連接來決定是否加速通過設備的資料包 : 特定連接’則將碼段的自定義序列應用于資料 的自找糊是錢行_胁軸述特定連 貝科包的處理而獲得。以這種方式,被識別爲屬於 201021466 某-特定連接的資料包可以繞過作齡統網路堆疊並加速通 . 過所述設備,從而提高資料包的呑吐量。 ' 在其中一個優選實施例中,資料包可在廣域網(WAN) 和/或局域網(LAN)介面上接收。所述處理器通過使用流高 速缓衝記憶體軟體(例如,電腦程式産品)來實現資料包的加 速。該流高速緩衝記憶體軟體包括可執行代碼,用於加速通過 網路設備的資料包。 0 使用流高速缓衝記憶體軟體來處理資料包使能資料包處 理從網路堆疊中卸載。流高速緩衝記憶體軟體被配置用於處理 多資料包流和提供多種修改功能,包括網路位址轉換(NAT)、 乙太網點對點協定(PPPoE )終止(tenninati〇n )、虛擬局域網 (VLAN )橋接、多播、速率限制、顏色標記和修整(shaping )。 參考圖1,系統100用於處理資料包。系統1〇〇包括處理 器102和網橋(bridge) 104,網橋與處理器和其他組成部分通 信,使得處理器和其他組成部分(未示出)之間能夠通信。處 Θ 理器102包括作業系統106。網路1〇8與系統1〇〇通信。 在一個優選實施例中,系統1〇〇在單晶片上實現,用於多 個不同的設備和解決方案。例如,系統1〇〇爲高集成度的單晶 片綜合接入設備(IAD)解決方案,可用于閘道、路由器、網 橋、電纜數據機、數位用戶線路(DSL)數據機、及其它網路 設備和這些設備的一個或多個的任意組合。系統100可用於處 理多資料流程。在其他優選實施例中,系統1〇〇在多個共同配 合操作(operate in concert together )的晶片上實現。 7 201021466 網路刚包括一個或多個與系統通信連接的網路。例 如’網路108包括與系、统⑽通信連接的多個不同的網路。網 路 108 可包括 WAN、LAN、無源光網路(p0N,Passive〇ptical Network)、吉比特無源光網路(Gp〇N,gigabytepassive_eai network)以及任何其他類型的網路。系統1〇〇在不同的網路 108之間提供-個介面,以處理網路1〇8之間的上行資料包(例 如,LAN至WAN)和下行資料包(例如,獅至[颜)。 雖然圖1示出了網路1()8和系統⑽之間的一個入站資料通道 和-個出师料通道,可能會有多個獨的通道及有線和 無線埠與多個不同的網路108通信。 處理器102包括用於處理資料包的處理器。處理器1〇2用 於處理-個或多個資料包流。在一個實施例中,處理器搬包 括單線程(singlethreaded)、單處理器解決方案。在另一個實 %例中處理器1〇2包括多線程處理器解決 方案。處理器102除了處理資料包外還可實現其他功能。 處理器102包括作業系統(〇s) 106。例如,作業系統1〇6
包括 Linux OS、MAC OS、Microsoft 0S (諸如 windows OS 或VistaOS)、嵌入式可配置作業系統(冗〇5)、VxW〇rks、bsd (伯克利軟體套件’Berkeley Software Distribution)作業系統、 QNX作業系統,或任何其他類型的作業系統。 作業糸統106包括接收驅動器H0、解析器模組112、帶 有表格(table) 116的流高速緩衝記憶體(fl〇wcache)模組 114、緩衝器日誌(buffer log) 118、網路堆疊12〇和發送驅動 201021466 ί 請用於接收網路⑽發送至系謂的 貝枓包。接收驅動器11G包括用於存儲所接 的 緩衝器(未示出)。例如,資料緩衝器在—些0ss中被 麻Γ,或者在Li職ost被稱作‘,skbn_g 110可將資料包傳遞至解析器模組112。 解析器模組112使用資料包的互聯網協定元組 (IP tuple)
/識別資料包。IP元組包括—個❹個資料包域。在一個優選 實施例中,IP元組包括IP源位址、Ip目的地址、正協定類型、 源車目的埠。例如,源埠和目的埠是上層傳輪協定(例如, 傳輸控制協定(TCP)或肝㈣報協定(UDp))的源埠和 目的埠。 解析器模組112用於通過快速解析所接收的資料包包頭 來從資料包中提取IP元組。例如’解析器模組112從接收的 一層(layer-2)包頭中提取jp元組。解析器模組112可對ιρ 元組計异哈希函數(hash)。解析器模組112使用計算得出的 哈希函數來查找表格116,判斷表格116中是否存在此正元組 的記錄(entry)。表格116存儲其資料包可被流高速緩衝記憶 體模組114加速的連接’表格資訊可由應用於jp元組的哈希 函數訪問。如果表格116存在某記錄,則認爲是流緩存命中 (flow cache hit ),否則,認爲是流緩存丟失(n〇w cache miss )。 在另一個優選實施例中’元組爲一對二層域(acoupleoflayer2 fields) ’這裏的解析器模組in用於提取這些二層域。 如果表格116中不存在某記錄(entry),則資料包的資訊 9 201021466 就會被登錄入缓衝器日誌118中。例如,在一個實施例中,二 層包頭,所接收資料包中的IP包頭的偏移和該正包頭的特定 域隨同所接收包的IP元組哈希值一起被登錄入緩衝器日誌中, 這長的特疋域包括生存周期(time to live,簡稱TTL)域、DSCP 域和IP元組域。所接收的資料包進入網路堆疊12〇並沿著網 路堆疊中的正常路徑到達發送驅動器122。在發送驅動器122 中,如果資料包有相關的缓衝器日誌,則此資料包將被返回至 流高速缓衝記憶體模組114中。流高速緩衝記憶體模組114將 發送包頭登錄入緩衝器日誌中,使用接收和發送的已登錄 (logged)包資料來計算代碼段的自定義序列,並且在表格116 中創建與所接收的P元組哈希函數相對應的記錄,以包含代 碼段的自定義序列以及所接受和發送包頭的緩衝器日誌。之 後,資料包返回至發送驅動器122,後者將資料包轉發回網路 108以傳送至其下一個目的地。 如果表格116中不存在記錄’那麼所接收的資料包可能爲 一特定連接所接收的第一個資料包。如果該連接的第一個資料 包被喊涊爲流南速緩衝記憶體加速的物件,則表格中就會 創建一條記錄,這樣當解析器模組112檢查該記錄是否在表格 116中時,此特定連接的後續資料包就是流缓存命中(fl〇w cacheInt)。在資料包由網路堆疊12〇處理時會被打上標記並被 跟蹤,這樣可以確定該資料包處理步驟的順序。 緩衝器日誌118與接收的資料包直接或間接地相關。在一 個實施例中’接收驅動器〗10使用緩衝器日誌118來存儲資料 201021466 包。在一個直接相關的實施例中,缓衝器日誌118中有一些預 留餘量(headroom)。例如’如果資料緩衝器的最大缓存爲18〇〇 位το組(byte) ’那麼2048位元組的資料包暫存器能夠容納前 248位元組的缓衝器日誌和所接收資料包的資料存儲容量。緩 衝器日諸118被分配綱個對齊存儲㈤㈣麵町),使 得從:貝料緩衝器内的指標到緩衝器日鼓、的轉換變爲簡單的低 11位的清雜作。在個可替代的魏實關巾,緩衝器
❹ 日諸m能夠間接地與資料緩衝器關聯物件(c〇ntext〇bject) 相關。 —在檢查ip %組流緩存擊中之前,解析器模組112可檢查 與貝料包相關的其他資訊。例如,解析器模組112可檢查二/ 三層(layer2θ)的包頭,從是否在表格116怖在記錄的判 斷中排除m料包麵。例如,解析賴組ιΐ2可檢查二 -曰(layer2/3)包頭’以排除諸如廣播或多播資料包、有關 :層發現齡(di_erypiOt⑽!)的射袍、狀特定段的 =科匕啟動控制協疋㈤印沾抑⑺此御她CM)資料包、 分段(fragmented)資料包、和/或諸如Tcp協定中脱細 寺的握手(m hand)控制信令資料包。這些資料包類型被認 爲需要特定網路堆疊處理和嫌认p被便可直接傳遞至 =堆疊】20。it些資料包類型可成爲排除清單的—部分,解 =模=12在敕衫絲格116 t存在記狀前先檢查此 析^模組112可以在檢查祕附是否存在 5己錄的同時或臨近時刻檢查此排除清單。 201021466 不屬於此排除清單的、並有與其相關的緩衝器日資料 包被假定是流高賴衝鋪雜組114加迷(例如,軟體加速) 的物件。當雜包通過了稱堆疊跡這触定賴得益效; 例如如果資料包通過了諸如制層·的特定協定處理。在這 種方案下’缓衝ϋ日諸118被釋放(如果_目關),此資料 包被視作正常處理。 將要傳送到下-個節點的資料包被傳遞至發 122。在發送驅動器122處,如果㈣包仍崎標記爲:速的
物件^使贿個二層難(laye:2eneapsulatiQn)的協定域 來计异IP包頭的偏移。登觸的接收包職訊和發送包頭資 訊用於計算輸斷有關龍包的資訊。流高魏衝記憶體模組 m使用登錄接收包頭資訊和發送包頭資訊來邦定有關資 料包處理的資訊。 例如,如果TTL減少,流高速緩衝記憶體模組114就判 定資料包屬於被路由的(IOUted)連接。如果接收和發送㈣ 疋組不同,流高速緩衝記憶體模組⑴就判定資料包屬於網路 位址轉換(Network Add觀Translation,簡稱NATed)連接(即 進行網路位址轉換處理的連接)。如果二層包頭不同並且資料 包未被路由’職高賴衝記體歡114朗銳資料包屬 於網橋歧換(sw滅)連接。流高速緩衝記憶雜組⑽還 可判定㈣包需要狀QQk層顧〇ayef_2tagging)或 DSCPIP修改。流高速緩衝記憶體模組114還可以判定其他資 訊’諸如先前埠和目的埠、通道、發送仵列等資訊以及其他^ 12 201021466 訊。 、 ^高速緩衝記憶體模、组m祕將可應用的決定轉換爲 . 6域操作的相,該相需要_雜何被其π>元組蓉別 爲屬於該特定連接的未來龍包。流高速緩衝記紐模组ιΐ4 在運行期間’使用特定連接的第一個資料包資訊來獲得屬於此 特定連接的資料包的代碼段的自定義序列(cust〇m sequence)。操作序列和相關資料進入流高速緩衝記憶體物 〇 件’並使用接收的1p元組作爲哈希密鍮將其插入表格116中。 以這種方式,流高速缓衝記憶體模組114創建該特定連接的自 定義堆疊。 在接收驅動器110接收的、在流緩存表格116中有Ip元 組擊中的任何後續資料包將會執行存儲在表格116中的操作 的自定義序列。這樣,這些後續的資料包不需被網路堆疊12〇 處理’將旁路(bypass)網路堆疊120。在一個實施例中,代 馬'^的自定義序列中最後一個操作是對發送驅動器122的資 _ 料包進行仔列排序(enqueue )。 在一個實施例中,流高速緩衝記憶體模組114使用C語 。goto標簽變數(g〇t〇 Labels as Values)來構建此特定連接的 自疋義堆疊’並將此堆疊作爲線程(threaded)代碼序列。該 C语言編譯器支援C語言的擴展,稱作“標簽變數(Labels as Ues )。此構建允許c標簽構建用作變數。代碼段被定義爲 紐*C語句且由標簽獨一無二地識別。然後,一列標簽指定 將要執行的代碼段清單。代碼段中最後的C語句是專用g〇t〇 13 201021466 浯句’它的目的標簽是從一列標簽中的下一個指標取得,由此 來遍佈(threading)代碼段。一個特定代碼段被定義爲返回 (return),其識別標簽是一列標簽中的最後一個元素。 流高速緩衝記憶體模組114能夠執行幾個通用代碼段以 實現諸如以下操作:概全部二層(一2)包頭(heatos)、 插入新的二層包頭、替代特定偏移處位元組、減少TTL、損毀
(咖故)IPDSCP、損毁源網路位址轉換(S_e-NAT)、損 毀目的網路位址轉換(D抛τ)、遞增更新三層〇ayer3)校 驗和(checksum)、遞增更新四層(iayer4)校驗和、複製 (replicate) 料包、資料高速緩衝記憶體只將涉及到的資料 無效、在發送設備處财、返回以及其他操作,和上述操作的 组合。寫入缺乏任何條件測試或功能守叫的代竭段。使用接收 和發送的包頭資訊’可以推斷出—組合適的代碼序列組合,且 將其標簽的線程與每—代碼段所需要的其他資訊-起保存至 表格116中流高速緩衝記憶體的記錄裏。
/考圖2處理過知2〇〇帛於處理資料包。處理過程挪 ^括在運行』間’使用特定連接的第一個資料包來獲得屬於 該特定連接的資料包的代碼段的自定義相(⑽她 s—Ο (步驟202);使用資料包的互聯網協定(ιρ)元植 (tuple)來識別屬於該特定連接的資料包(步驟2〇4);將代 碼#又的自絲序列應用於該被識別的資料包(步驟施)。 在-個優選實施例中,過程2〇〇通過圖】中的解析器模組 m和流高速緩衝記憶體模组114來實現。在一個實施例中, 14 201021466 解析益模組m和流高速緩衝記,隨餘114通過軟體來實 ^ 現’錄體作用在資料包上使其加速通過系統100。 . ,如’流高速緩衝記憶體触114用於:在運行期間,使 用特疋連接的第-個資料包來獲得屬於此特定連接的資料包 =碼段的自定義序列_。以這種方·式,流高速缓衝記憶 -吴、、且114使用來自第一貧料包的接收包頭和發送包頭的資 訊來決定代碼段的自定義序列。流高逮緩衝記憶體模組m構 ❹ ^簡(雜的自疋彡堆疊’這樣使得此較連接的後續資料 包旁路(bypass)網路堆疊(例如圖i中的網路堆疊12〇)。 解析器輸112使用資料包的互聯網協定(ιρ)元組(_1〇 來識則於特定連接的資料包(2〇4 )。解析器模組〗丨2解析所 接收資料包的包頭從而提取出IP元組。解析器模組112使用 IP元組來計算哈希密鑰,並在查找表格116中檢查此哈希密 錄以判斷表格116中是否存在記錄。流高速缓衝記憶體模組 1U將代碼段的自定義序列應用於該被識別的資料包(2〇6)。 ® 在一個優選實施例中,在僅用網路堆疊來處理資料包的系 統上,使用包括解析器模組112和流高速緩衝記憶體模組114 的系統100以及處理過程200可實現6倍(6_f〇ld)的性能增 贫。動態構建自定義線程代碼序列的系統1〇〇,通過流緩存擊 中將所有後續的資料包改道(redirected)至自定義堆疊,在 1 OOMbits下游VDSL連接中能夠維持每秒123,000個資料包的 有線(wireline)下行速率。使用基於軟體加速的流缓存通過 DSL軟體參考(reference ) t常用的網路堆疊可以實現6倍 15 201021466 (6-fold)的性能增益。 這裏描述的多種技術方案的實施例可在數 或電腦硬體、_、軟體及其組合巾纽。實^^中 器可讀存儲設備)。該電腦程式由資料處理裝置例如機 程處理器、電腦、或數個冑腦)執行 丄’可編 寫’包括編·語該_性語言;並 〜烏
Q 包括獨立程式(她〜—^^式實現, 料鱗㈣合細於電崎^單元 祕式可運盯於-個醜(伽)的—個衫個電腦】 =佈在㈣細蝴恤連接的= :法步驟可由-個或多個編程處理絲執行,編程處理琴 執仃«程式㈣輸人簡作賴赶輸蜂完成雜 步驟也可由用料賴輯電路的裝縣執行, 鞋
t^FPGA (PieMPr〇TOableGateAlTay) (Application Specific Integrated Circuit)。 。適合於執行《程式的處理器包括諸如通用或專用微處 理器、-個或多個任意種類的數位鹤處理器。通常地,處理 器從唯讀記憶體(ROM)鱗機記鋪(RAM)或兩者中接 ㈣令(instruetion)和#料。電腦的組成部分包括至少一個 執行指令的處理器、-個❹個存職令和㈣的存館設備。 16 ❹
201021466 :般地,電·包括麵連接以接收來自 資,存储_資料,傳送麵:多:: :二?備’諸如磁月、磁光碟、或先碟。適於我入ΐ 體,包括例如料體記憶體設備、諸μ 的磁月、糊、辆唯細體(cd.rom)=2 ί:二:R0M)。半導體記憶體設備例如可擦除可編程唯 =己憶體(卿M)、電可讀寫福程唯讀記憶雜咖㈣ 舰設備。處理神記㈣可錢合併在專用邏 實施例可通過包括後端元件的電腦系統來實現,例如資料 飼服器;或通過包括中間件㈣腦系統來實現,例如應用舰 斋;或通過包括前後端元件㈣腦系統來實現,例如具有圖形 用戶介面(GUI试Web觀ϋ的客戶魏,μ可通過圖形用 戶介面或Web 器來交流;或通過諸如後端元件、中間件、 或前後端元件的㈣組合㈣·絲魏。元件可通過任意 形式或方法的數位資料通信(例如,通信網路)來相互連接。 通信網路的例子包括局域網和諸如因特網的廣域網。 本發明疋通過-些實施例進行描述的,本領域技術人員知 悉,在不脫離本發明的精神和範圍的情況下,可以對這些特徵 和實施例進行各種改變或等同替換。另外,在本發明^教導 下’可以對這些特徵和實施例進行修改以適應具體的情況及材 料而不會脫離本發明的精神和範圍。因此,本發明不受此處所 17 201021466 公開的具體實施酬_,所有落人材請的翻要求範圜内 的實施例都屬於本發明的保護範圍。 【圖式簡單說明】
圖1是資料包處理系統的示例性框圖; 圖2疋資料包處理過程的示例性流程圖 【主要元件符號說明】 系統 100 處理器 102 網橋(bridge) 104 作業系統 106 網路 108 接收驅動器 110 解析器模組 112 流高速缓衝記憶體(flowcache)模組114 表格(table) 116 緩衝器曰該(buffer log ) 網路堆疊 120 發送驅動器 122 118
18

Claims (1)

  1. 201021466 七、申請專利範圍: ; 卜一種裳置,用於'網路堆疊的資料通道加速,其特徵在於,所 : 述裝置包括: 々流高速缓娜髓额,驗在運行躺使用特定連接 的第-個資料包來獲得屬於所述特定連接的資料包的代瑪 段的自定義序列;和 解析器模組’用於使用資料包的互聯_定元組來識別 g 屬於所述特定連接的資料包; 其中,所述流高速緩衝記憶體模組將所述代碼段的自定 義序列應用於所述被識別的資料包。 2、 如申請專利範圍第丨項所述的裝置,其中,所述流高速緩衝 °己隐體权組用於構建所述特定連接的自定義堆疊。 3、 如申請專利範圍第1項所述的裝置,其中,所述流高速緩衝 雜織la祕制C語言gQtQ縣變絲驗所述特定 連接的自定義堆疊,並將此自定義堆疊作爲線程代瑪序列。 9 4、如申請專利範圍第i項所述的裝置,其中,所述解析器模組 用於解析所述資料包的包頭,以提取_網協定元組。 5、如申請專利範圍第1項所述的裝置,其中, 所述解析器模組還用於檢查資料包的包頭;且 所述流高速緩衝記憶體模組還用於基於檢查過的包碩 排除屬於所述特定連接的某些資料包類型。 6 -種方法,用於網路堆疊的資料通道加速,其特徵在於 述方法包括: 19 201021466 在運行期間’使用特定連接的第一個資料包來獲得屬於 所述特定連接的資料包的代碼段的自定義序列; 使用寊料包的互聯網協定元組來識別屬於所述特定連 接的資料包;及 將所述代碼段的自定義相應驗所賴識別的資料 包。 、如申專利翻第6項所述的方法,其t,所述在運行期間 獲,代碼段的自定義序列包括構建所述特定逹接的自定義 堆®。 、如申^專利範圍第6項所述的方法,其中,所述在運行期間 獲得代碼段的自定義序列包括使用c語言goto標簽變數來 2所述特定連接的自定義堆疊,並將此自定義堆疊作爲線 每代序列。 10 ‘ t請專利細第6輯賴方法,射,所频別資料包 匕括解析資料包的包頭,以提取互聯網協定元.組。 〇 =用於執行資料包加速的電腦程式産品,其特徵在於,所 :==:切嫩入電腦可讀的媒介中;所述電 於使得/丁代碼;所述可執行代碼在執行時,用 、使侍至〉、一個資料處理裝置完成以下任務: 所述用特定連接的第一個資料包來獲得屬於 特疋連接的貝料包的代碼段的自定義序列; 使用資料包的互聯網協定元組來識 接的資料包;及 、所補疋連 20 201021466 將所述代碼段的自定義序列應用於所述被識別的資料
    ❿ 21
TW098125938A 2008-07-31 2009-07-31 一種用於網路堆疊的資料通道加速的裝置及方法 TWI423616B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/183,935 US7908376B2 (en) 2008-07-31 2008-07-31 Data path acceleration of a network stack

Publications (2)

Publication Number Publication Date
TW201021466A true TW201021466A (en) 2010-06-01
TWI423616B TWI423616B (zh) 2014-01-11

Family

ID=41328548

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098125938A TWI423616B (zh) 2008-07-31 2009-07-31 一種用於網路堆疊的資料通道加速的裝置及方法

Country Status (5)

Country Link
US (1) US7908376B2 (zh)
EP (1) EP2150023B1 (zh)
KR (1) KR101115436B1 (zh)
CN (1) CN101645843B (zh)
TW (1) TWI423616B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660793B2 (en) 2006-11-13 2010-02-09 Exegy Incorporated Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
US20090092136A1 (en) * 2007-10-09 2009-04-09 Broadcom Corporation System and method for packet classification, modification and forwarding
WO2012079041A1 (en) 2010-12-09 2012-06-14 Exegy Incorporated Method and apparatus for managing orders in financial markets
US9716659B2 (en) 2011-03-23 2017-07-25 Hughes Network Systems, Llc System and method for providing improved quality of service over broadband networks
US9240950B2 (en) 2011-03-23 2016-01-19 Hughes Network Systems, Llc System and method for providing quality of service over dedicated local loop networks
US10637782B2 (en) 2011-03-23 2020-04-28 Hughes Network Systems, Llc System and method for policy-based multipath WAN transports for improved quality of service over broadband networks
US11436672B2 (en) 2012-03-27 2022-09-06 Exegy Incorporated Intelligent switch for processing financial market data
US10121196B2 (en) 2012-03-27 2018-11-06 Ip Reservoir, Llc Offload processing of data packets containing financial market data
US9990393B2 (en) 2012-03-27 2018-06-05 Ip Reservoir, Llc Intelligent feed switch
US9459076B2 (en) 2012-12-12 2016-10-04 Trackingpoint, Inc. Rifle scope, apparatus, and method including proximity detection and warning system
US10061808B2 (en) * 2014-06-03 2018-08-28 Sap Se Cached views
WO2018119035A1 (en) 2016-12-22 2018-06-28 Ip Reservoir, Llc Pipelines for hardware-accelerated machine learning
EP3367621A1 (en) * 2017-02-28 2018-08-29 Intel Corporation Method and apparatus for local traffic acceleration
US10178207B1 (en) * 2017-07-10 2019-01-08 Adtran, Inc. Optimized defragmentation of data packets in a passive optical network
CN110049386B (zh) * 2018-01-17 2022-02-25 华为技术有限公司 通信网络及相关设备
CN111355662B (zh) * 2018-12-24 2022-09-13 中移(杭州)信息技术有限公司 一种数据加速方法、装置、网关设备及可读存储介质
CA3135226A1 (en) 2019-05-14 2020-11-19 David Edward Taylor Methods and systems for low latency generation and distribution of trading signals from financial market data
CN112054868B (zh) * 2019-06-06 2021-11-19 中国移动通信有限公司研究院 一种光模块、管控信息处理方法及通信系统
US11631135B2 (en) 2021-02-16 2023-04-18 Exegy Incorporated Methods and systems for low latency automated trading using a canceling strategy

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389479B1 (en) 1997-10-14 2002-05-14 Alacritech, Inc. Intelligent network interface device and system for accelerated communication
US6339595B1 (en) * 1997-12-23 2002-01-15 Cisco Technology, Inc. Peer-model support for virtual private networks with potentially overlapping addresses
US6771646B1 (en) * 1999-06-30 2004-08-03 Hi/Fn, Inc. Associative cache structure for lookups and updates of flow records in a network monitor
US6496935B1 (en) * 2000-03-02 2002-12-17 Check Point Software Technologies Ltd System, device and method for rapid packet filtering and processing
US20040213189A1 (en) * 2001-01-25 2004-10-28 Matthew David Alspaugh Environmentally-hardened ATM network
US7042888B2 (en) * 2001-09-24 2006-05-09 Ericsson Inc. System and method for processing packets
US7269663B2 (en) * 2001-09-28 2007-09-11 Intel Corporation Tagging packets with a lookup key to facilitate usage of a unified packet forwarding cache
US7512129B1 (en) * 2002-02-19 2009-03-31 Redback Networks Inc. Method and apparatus for implementing a switching unit including a bypass path
US7340535B1 (en) * 2002-06-04 2008-03-04 Fortinet, Inc. System and method for controlling routing in a virtual router system
US7376125B1 (en) * 2002-06-04 2008-05-20 Fortinet, Inc. Service processing switch
US20040039940A1 (en) * 2002-08-23 2004-02-26 Koninklijke Philips Electronics N.V. Hardware-based packet filtering accelerator
US7266120B2 (en) * 2002-11-18 2007-09-04 Fortinet, Inc. System and method for hardware accelerated packet multicast in a virtual routing system
US7586920B2 (en) * 2003-05-30 2009-09-08 Calix Networks, Inc. Merging multiple data flows in a passive optical network
US7599361B2 (en) * 2004-07-02 2009-10-06 P-Cube Ltd. Wire-speed packet management in a multi-pipeline network processor
CA2589174C (en) * 2004-11-25 2012-10-30 Telecom Italia S.P.A. Joint ic card and wireless transceiver module for mobile communication equipment
WO2006080898A1 (en) 2005-01-26 2006-08-03 Infineon Technologies Ag Improvements in and relating to data processing
US8639837B2 (en) * 2006-07-29 2014-01-28 Blue Coat Systems, Inc. System and method of traffic inspection and classification for purposes of implementing session ND content control
US20090092136A1 (en) * 2007-10-09 2009-04-09 Broadcom Corporation System and method for packet classification, modification and forwarding

Also Published As

Publication number Publication date
US20100027545A1 (en) 2010-02-04
KR101115436B1 (ko) 2012-02-20
TWI423616B (zh) 2014-01-11
US7908376B2 (en) 2011-03-15
EP2150023B1 (en) 2015-09-09
EP2150023A2 (en) 2010-02-03
CN101645843A (zh) 2010-02-10
EP2150023A3 (en) 2014-08-27
KR20100014194A (ko) 2010-02-10
CN101645843B (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
TW201021466A (en) Data path acceleration of a network stack
US7742480B2 (en) Selective header field dispatch in a network processing system
KR100910818B1 (ko) 비-macsec 노드들을 통해 macsec 패킷들을터널링하기 위한 방법 및 시스템
JP4606678B2 (ja) ワイヤ速度のipマルチキャスト転送のための方法および装置
US9667442B2 (en) Tag-based interface between a switching device and servers for use in frame processing and forwarding
US7835370B2 (en) System and method for DSL subscriber identification over ethernet network
US9215093B2 (en) Encoding packets for transport over SDN networks
US6625650B2 (en) System for multi-layer broadband provisioning in computer networks
US7773510B2 (en) Application routing in a distributed compute environment
US6553028B1 (en) Method and apparatus for multicast switching using a centralized switching engine
US8718063B2 (en) Methods and apparatus related to route selection within a network
EP1875668B1 (en) Scalable system method for dsl subscriber traffic over an ethernet network
US20120158942A1 (en) Methods and apparatus for forwarding-state transport in a distributed control plane
US20090092136A1 (en) System and method for packet classification, modification and forwarding
JP2004503986A (ja) コンテンツ・アウェアネットワーク装置
CN110505147B (zh) 分组片段转发方法和网络设备
JP2006513590A (ja) インターネット通信の合法的傍受のための装置
US11314417B2 (en) Methods and systems for NVMe target load balancing based on real time metrics
JP4182180B2 (ja) ネットワーク中継装置及びネットワーク中継方法
WO2021083332A1 (zh) 发送报文的方法、装置及系统
JPWO2012032606A1 (ja) フレーム連結装置
CN104113513B (zh) 一种主机发现方法、装置及系统
CN112532468B (zh) 网络测量系统、方法、设备及存储介质
JP3645735B2 (ja) ネットワーク中継装置及びネットワーク中継方法
KR20070086871A (ko) 흐름 인식 이더넷 디지털 가입자 회선 액세스 멀티플렉서dslam

Legal Events

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