TWI411279B - 封包聚合的方法與系統 - Google Patents
封包聚合的方法與系統 Download PDFInfo
- Publication number
- TWI411279B TWI411279B TW100134801A TW100134801A TWI411279B TW I411279 B TWI411279 B TW I411279B TW 100134801 A TW100134801 A TW 100134801A TW 100134801 A TW100134801 A TW 100134801A TW I411279 B TWI411279 B TW I411279B
- Authority
- TW
- Taiwan
- Prior art keywords
- packet
- header
- network
- transmission control
- packets
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Internal Circuitry In Semiconductor Integrated Circuit Devices (AREA)
- Wire Bonding (AREA)
- Telephonic Communication Services (AREA)
Description
本發明有關於封包聚合的方法與系統。
網路使電腦與其他裝置能夠通訊。舉例來說,網路能夠運送表示視訊、聲訊、電子郵件等之資料。典型來說,傳送於網路上之資料係藉由稱為封包的較小訊息(message)所承載。以此類推,封包幾乎就像被丟入信箱中之信封。封包典型包括“酬載(payload)”與“標頭”。封包的“酬載”類似於信封內的信。封包的“標頭”幾乎就像寫在信封本身上的資訊。標頭能包括幫助網路裝置適當地處理封包的資訊。
一些網路協定(例如“協定堆疊(a protocol stack)”)合作,以處理複雜的網路通訊。舉例來說,被稱為傳輸控制協定(TCP)的傳送協定提供具有簡單機制應用程式(application),以在網路上建立流(flow)與傳輸資料。事實上,TCP透通地處理種種的通訊事項,例如資料再傳輸、適應網路流量壅塞等。
為了提供這些服務,TCP以被稱為段(segment)的封包為單位運作。一般而言,TCP段行進經過網路,該TCP段係在例如網際網路通訊協定(IP)資料報(datagram)的較大封包內所“包住(encapsulated)”。經常地,舉例來說,在區域網路(LAN)中,IP資料報進一步由更大的
封包(例如乙太網路幀(frame))所包住。TCP段的酬載承載為應用程式所運送於網路上的資料串流(stream)之一部份。接收器能藉由重新組合所接收的段,而恢復原始的資料串流。為了准許所接收的資料之重組(reassembly)與應答(ACK)返回傳送端,TCP將序列號碼相關至各個酬載位元組。
許多應用程式接收與處理大量的網路資料。桌上型電腦的應用程式之範例包括網頁瀏覽器、串流媒體播放器、以及網路檔案分享應用程式。伺服器應用程式包括網頁伺服器、檔案伺服器、儲存伺服器、電子郵件伺服器、以及資料庫後端(back-ends)。典型來說,內涵的(underlying)協定堆疊(例如TCP/IP堆疊)接收許多封包並個別地處理,即使部分或全部的這些封包是相同之流的部分。與每個封包的處理相關的是一些處理損耗(overhead),舉例來說,由於分析(parsing)標頭、識別(identifying)與更新流狀態資訊、產生ACK訊息等。
第1A至1C圖係顯示將用於給定流之多封包聚合成單一封包的技術之樣品實施法。顯示於第1A至1C圖之樣品系統包括處理器104與記憶體102。該系統亦包括網路介面控制器(NIC)(稱為網路介面卡)100,該NIC從網路接收封包。除了將所接收的每一封包寫入記憶體102內作後續處理外,該控制器100以聚合封包的邏輯112為特徵。此邏輯
112結合屬於相同流之不同的封包之TCP酬載並對於所結合的TCP酬載準備單一TCP標頭與單一IP標頭。IP標頭、TCP標頭、以及所結合的TCP酬載之結合形成單一聚合的封包。該協定堆疊能因此執行較少但較大的封包的接收處理,降低每個封包所發生之處理懲罰(penalty)。
為了說明聚合,第1A圖顯示由該網路介面控制器100所接收之具有TCP與IP標頭106a以及TCP酬載106b之封包106。該控制器100可執行許多任務,包括將該封包106從幀中拆封(de-encapsulating)、驗證幀核對和、以及其他鏈結層操作。
如圖所示,該封包屬於流(第1A圖中任意標為“1”)。封包流能藉由控制器100以標頭中的資料所指明。舉例來說,TCP/IP流能藉由元組(tuple)來指明,該元組係藉由該TCP標頭中的IP來源與目的地位址以及來源與目的地埠號碼之結合所形成。元組可不包括所有的這些標頭欄且可包括其他資訊(例如協定識別符(identifier))。
於第1A圖中,該控制器100儲存該所接收的封包106之標頭106a與酬載106b,以用來與後來所接收的封包之作可能的聚合。舉例來說,如圖所示,該控制器100可儲存該封包106之酬載106b於記憶體102(例如透過一個或多個直接記憶體存取(DMA)操作)並儲存該標頭106a於控制器100表。該表亦可包括其他用於聚合處理的資訊。記憶體中用以寫入酬載資料106b的位置可由描述符所指定,該描述符係被運作於處理器104上之驅動程式所傳送至該控制
器100上。該描述符亦可包括其他欄(例如用以儲存封包標頭的位置之記憶體位址),以支援標頭切開(header splitting)。
於第1B圖中,該控制器100接收第二封包108,該第二封包屬於與第1A圖中所接收的封包之相同流(“1”)。除了將該封包簡單寫入記憶體102外,該控制器100將封包106與108之兩個酬載106b、108b結合在一起成整體的(monolithic)酬載110b。結合可涉及實際將酬載位元106b、108b鄰接地儲存在一起。或者,結合可涉及例如將酬載106b、108b相關為在鏈結名單中之節點。此酬載之結合可持續用於此流,所接收之其他封包。
除了收集不同的酬載以外,該控制器100亦準備單一IP標頭與單一TCP標頭110a給該聚合的封包110,該聚合封包110反映該結合的TCP酬載110b。舉例來說,該控制器100可查詢有關該流之TCP/IP標頭106a並修改該IP標頭的長度欄,以反映該結合酬載之長度。該控制器100亦可修正該TCP標頭的核對和。此外,該控制器100可改變該TCP標頭的ACK序列號碼,以聚合進來的(incoming)ACK訊息。此更新可當各個酬載結合時執行。或者,該更新可例如被延遲一段時間。
最後(例如在聚合窗結束後),如第1C圖所示,該控制器100可將該聚合的封包之標頭110a與該流的描述符寫入記憶體102。該控制器100接著可發出中斷訊號,以開始該聚合的封包100之接收處理(例如網路與/或傳輸層處
理)。舉例來說,TCP接收處理能包括重新組合、重新排序、ACK的產生、導航(navigating)於流中之TCP狀態機等。
聚合之封包的數量與/或用以聚合封包的時間可為可設定的。舉例來說,典型地,網路介面控制器使用一種稱為中斷緩和(interrupt moderation)的技術,以將在一些時間窗(window of time)中所接收的封包以一次一批的方式發出訊號。該控制器能使用中斷緩和窗,以儘可能聚合流之越多封包。為了允許聚合損耗(overhead)(例如標頭準備),該控制器100可使用少於中斷緩和窗之時間窗(聚合窗),以聚合封包。在聚合窗期間,該控制器100獲得用於流之描述符(該流在聚合視窗期間接收資料)(例如藉由自佇列移除(dequeue)由控制器100裝置驅動器所提供之描述符),並且大致上保留該描述符直到該聚合窗過期(expire)或該控制器100接收不符合聚合標準(將說明於後文)之流封包,或是該酬載之尺寸超過該描述符所指明之封包緩衝器中可用的空間為止。在該聚合窗過期後,該控制器100準備標頭、將描述符寫入記憶體、在中斷緩和時間結束時發出中斷訊號、以及清除在前面的窗期間用以聚合封包的資料。該聚合處理接著開始新的一個處理。
為了簡明說明的目的,顯示於第1A至1C圖的系統不包括許多典型平台的習知元件(例如晶片組與/或將處理器104、記憶體102、以及NIC100互相連接的I/O控制集線
器)。此外,顯示於第1A至1C圖的架構於不同的系統中可作相當大變化。舉例來說,給定系統可以多處理器(分離的處理器與/或處理器核心集成於相同晶粒中)、多NIC、與/或各種記憶體裝置(例如單一、雙埠、或四埠記憶體)為特徵。同樣地,該控制器100可集成於處理器104、晶片組(未圖示)、或其他電路中。此外,該系統可包括TCP/IP卸載引擎(TCP/IP offload engine,TOE),該TOE能執行上述之任務,如由該NIC100或處理器104所處理。
第2圖係顯示更詳細的網路介面控制器200之樣品架構。雖然所示為處理從網路來的進入(ingress)封包,但該控制器200亦可處理至網路之外出(egress)封包。
如圖所示,該控制器200能包括實體層裝置(PHY)202,該實體層裝置介接(interface)至通訊媒體(例如纜線或無線電設備)。該PHY202能轉換於通訊媒體的類比訊號與用以處理封包的數位位元之間。如圖所示,媒體存取控制器(MAC)204收集由PHY202所輸出的位元(例如經由FIFP佇列)。MAC204能執行許多的鏈結-層(link-layer)操作(例如驗證乙太網路核對和等)。聚合電路206運作於MAC204所輸出的封包(如第1A至1C圖所示)。聚合電路206可為“硬體連接(hard-wired)”電路,例如特殊應用積體電路(ASIC)。或者,該電路206可以可程式化引擎為特徵,該引擎執行指令以處理封包。如圖所示,該電路206經由DMA控制器210介接至主系統。
該聚合電路206可以用許多方式來實施聚合。舉例來
說,如第3圖所示,該電路206可建立一表212,該表212可追蹤正在進行的(on-going)聚合。如圖所示,此表212可將一流ID(例如TCP/IP元組或TCP/IP元組的雜湊(hash))與封包的開始位元組序列號碼、酬載位元組的號碼、封包描述符的位址、酬載緩衝的位址、以及標頭緩衝的位址相關。該表212可儲存其他資料(未圖示),例如用於該流的標頭欄。舉例來說,該表212可儲存IP來源、IP目的地、IP識別碼與版本、IPv6流ID與優先權、TCO來源埠、TCP目的地埠、TCP序列號碼、TCP ACK號碼、TCP核對和、與/或TCP時間戳(timestamp)。該表212亦可記錄對於流進行聚合,以稍後將此資訊傳遞至TCP/IP堆疊的封包之數量(例如經由描述符中的一欄)、聚合的ACK段之數量,並可儲存老化(aging)計數器,以支援“描述符老化(descriptor aging)”(將說明於後文),其被用以在聚合窗結束之前關閉閒置的描述符。
用於給定流的該表212資料被修改為聚合程序。舉例來說,可調整位元組的數量,以反映最近結合的酬載之其他位元組。同樣地,聚合酬載之數量可隨每個其他TCP酬載之結合而增加。該表212資料能用以準備用於聚合的封包之標頭與準備相對應的描述符。同樣地,該表212資料可在例如聚合窗結束之後清除。
該控制器可包括其他元件(未圖示)。舉例來說,該控制器可包括暫存器,該暫存器致能(enable)例如驅動器,以致能或去能(disable)該聚合。
第4圖係顯示聚合封包之過程流程圖。如圖所示,該過程在256結合相同流中之封包的酬載,並在258準備單一TCP段標頭與單一IP標頭給結合的酬載。藉由TCP/IP堆疊,接著可產生中斷,以起始該聚合的封包之處理。
如圖所示,在254某些封包不考慮聚合。舉例來說,封包需要滿足一個或多個標準。舉例來說,聚合可僅執行於TCP段具有有效的核對和時。此外,根據標頭資訊(例如指明該段為控制段(例如RST、FIN、SYN、SYN-ACK、URG旗標設定)之資訊),甚至有效TCP段亦可排除與前一接收封包聚合。在這些情況中,對於此流的先前之正在進行的聚合可終止(例如可準備IP與TCP標頭並寫入記憶體給任何先前結合的流酬載與寫入的相對應之描述符資料)。
某些情況中,TCP/IP封包可能不按照次序接收(亦即接收封包的序列號碼不匹配流之下一個連續的序列號碼)。在此情況中,可開始新的聚合封包(例如獲得的描述符與寫入的表項目(table entry))。亦即,給定的流可在流的位元組序列中之多個點具有進行中的(in-progress)聚合。此後,對於給定流,流封包的酬載可根據接收的封包序列號碼而增加至許多進行聚合之封包的其中一個。或者,為了簡明起見,對於流的先前之正在進行的封包聚合可在封包不按照次序接收之後終止。
其他配置也可影響封包聚合。舉例來說,若封包的TCP標頭表示“PUSH”旗幟已設定,則對於此流的聚合可在
聚合接收的封包之後完成,而對於此流之後續封包將使用新的描述符加以聚合。同樣地,若進來的封包之酬載的聚合超過指定緩衝器中之可用空間,則控制器能終止(例如產生單一TCP與單一IP標頭並寫入相對應的描述符)目前之正在進行的聚合並對於該流重新開始新的聚合(例如寫入新的表項目並獲得新的描述符)。
第5圖係顯示封包聚合的樣品實施法。於所示之實施中,若封包300在302為IP資料報(例如IPv4或IPv6資料報)或包住IP資料報之幀,則在304檢驗該IP標頭是否有標頭選項(option)與/或分離(fragmentation)。若有任一種情況存在,則在308聚合不會發生,而該封包可照慣例般處理(例如獲得描述符、寫回、以及將該封包作DMA入記憶體)。否則,該處理在306試圖證實該TCP段在該IP封包中是否有效(例如藉由決定是否該TCP段標頭核對和為有效的)。若該TCP段不是有效的,同樣地,在308沒有聚合發生於該封包。
對於有效的TCP段,該處理在310決定流ID,例如根據該封包的TCP/IP元組。若在312該TCP段為資料段(例如IPheader.total_len-Ipheader.header_len-TCPheader.Data_Offset>0),則在314、316檢驗該TCP段標頭是否有時間戳選項以外的選項、以及是否有ACK與/或PSH以外的選項。若在312、314、316有這些情況的任何一種情況存在,則在308沒有聚合發生。此外,若聚合已經開始於該流,則在332藉由產生該TCP與IP標頭、停止用以對於該流聚合封包之
該描述符、以及使該流的表項目無效,而使現存的聚合暫停(halt)。
假設滿足情況302、304、306、312、314、316,該處理在320決定是否該流已經執行聚合。若否,且該TCP PSH旗標未被設定,則該處理能(在326表空間允許)對於該流初始化(initialize)表輸入、讀取描述符、以及在330開始對於該流聚合目前的封包。若在326中該表不存在足夠的空間以用於額外的項目,則可犧牲先前寫入的項目(未圖示),舉例來說,使用最近最少使用(Least Recently Used)演算法,以選擇一項目來刪除以及關閉相關的描述符。
若在320聚合已經建立於此流,則該處理能根據其序列號碼而在324決定是否該TCP段按照次序接收。若在324該段沒有按照次序接收,則在332可終止對於該流之正在進行的聚合。若在324該段按照次序取回且在334該酬載緩衝具有足夠的空間以用於額外的TCP酬載,則該處理能藉由在336以決定的偏移量(offset)在328複製該酬載資料至由該流的描述符所指定的酬載緩衝器中以及更新用於該流的項目資料(例如更新聚合的封包之數量、下一個預期要發生的序列號碼、酬載位元組的數量等),而結合該接收的TCP段之酬載與先前接收的TCP段之酬載於該流中。若在338設定用於目前的段之該PSH旗標,則在342聚合可在這些操作後終止。
若在334中用以儲存酬載之緩衝器沒有足夠的空間,
以加入目前的封包之TCP酬載,則可在340準備該TCP與IP標頭並關閉流描述符。於此情況中,若在346設定該PSH旗標,則該封包按照慣例來處理。否則,獲得新的讀取描述符以用於該流,且在348再一次開始聚合此封包。
在處理該封包後,若聚合窗過期,則準備封包描述符與標頭並寫入記憶體,且清出(flush)表內容。否則,重複第5圖所示之處理以用於另一個封包。
可實施如第5圖所示之許多不同的變化之樣品處理。舉例來說,為了防止未完成的描述符阻礙較晚的描述符(例如若NIC驅動器依序地讀取描述符),即使該聚合窗還沒有過期,該處理能在若干固定時間後關閉老化的描述符,而沒有接收其他之後續封包。或者,當較晚的描述符完成時,可關閉較早的描述符。
儘管第1至5圖與對應的本文說明簡單的實施,許多的其他實施可使用一個或多個的上述之技術。舉例來說,代替聚合該封包於記憶體,該控制器可在傳輸封包至記憶體之前,聚合封包於其擁有的內部緩衝中。此外,該技術可用以實施其他傳輸層協定、於網路協定堆疊中之其他層中的協定、TCP與IP以外的協定,且用以處理其他協定資料單元。舉例來說,代替乙太網路幀,該封包可由HDLC或PPP幀運送。此外,專業用語“IP”包含IPv4與IPv6兩者的實施。
此處所使用的專業用語“電路”包括硬體連接電路、數位電路、類比電路、可程式化電路等。該可程式化電路可
運作於配置在製造物品上之可執行指令(例如非揮發性記憶體,如唯讀記憶體)。
其他實施例係在後述之申請專利範圍之範疇內。
100‧‧‧控制器
102‧‧‧記憶體
104‧‧‧處理器
106‧‧‧封包
106a‧‧‧TCP與IP標頭
106b‧‧‧酬載
108‧‧‧第二封包
108b‧‧‧酬載
110‧‧‧聚合的封包
110a‧‧‧單一IP標頭與單一TCP標頭
110b‧‧‧整體的酬載
112‧‧‧邏輯
200‧‧‧網路介面控制器
202‧‧‧實體層裝置
204‧‧‧媒體存取控制器
206‧‧‧聚合電路
210‧‧‧DMA控制器
212‧‧‧表
第1A至1C圖係顯示封包聚合的範例;第2圖係網路介面控制器的示意圖;第3圖係由網路介面控制器所使用之用以聚合封包的表;以及第4與第5圖係顯示封包聚合的流程圖。
Claims (46)
- 一種用於封包聚合之方法,包括下列步驟:接收多進入網際網路協定封包,各個多進入網際網路協定封包具有網際網路協定標頭與具有傳輸控制協定標頭與傳輸控制協定酬載之傳輸控制協定段,該等多封包屬於相同的傳輸控制協定/網際網路協定流;準備網際網路協定封包,其具有單一網際網路協定標頭與具有單一傳輸控制協定標頭與單一酬載之單一傳輸控制協定段,該單一酬載係藉由結合該等多網際網路協定封包之傳輸控制協定段酬載而形成;以及產生訊號,該訊號造成該網際網路協定封包之接收處理。
- 如申請專利範圍第1項之方法,更包含下列步驟:開始至少一個直接記憶體存取,以儲存該單一傳輸控制協定標頭、該單一網際網路協定標頭、以及該等傳輸控制協定段之酬載至記憶體。
- 如申請專利範圍第2項之方法,更包含下列步驟:鄰接地儲存該等酬載至該記憶體。
- 如申請專利範圍第1項之方法,其中,該準備步驟包含:決定位元組長度,以儲存至該單一網際網路協定標頭中。
- 如申請專利範圍第1項之方法,其中,該準備步驟包含: 調整所接收的該等多封包之其中一個的至少一個標頭的至少一個值。
- 如申請專利範圍第1項之方法,其中,該準備步驟包含:決定該單一傳輸控制協定標頭之經應答的序列號碼。
- 如申請專利範圍第1項之方法,其中,該流至少部分由該所接收的網際網路協定封包之包括於該網際網路協定封包的網際網路協定標頭之網際網路協定來源與目標位址,以及包括於該網際網路協定封包中之該傳輸控制協定段標頭的該傳輸控制協定來源與目標埠號碼所識別。
- 如申請專利範圍第1項之方法,其中,該接收、準備、以及產生的步驟包括藉由網路介面控制器接收、準備、以及產生。
- 如申請專利範圍第1項之方法,更包含基於由下列之群組所選擇的至少一個,從該等多封包排除至少一個屬於該相同流之封包的步驟:該至少一個封包包括無效的傳輸控制協定核對和;該至少一個封包不包括傳輸控制協定資料段;該至少一個封包包括不按順序接收的傳輸控制協定段;以及該至少一個封包包括傳輸控制協定緊急旗標設定。
- 如申請專利範圍第1項之方法,更包含下列步驟:保持識別不同流之表,該表將各別的流與下列之群組 所選擇的至少一個相關聯:序列號碼、酬載位元組編號、封包描述符之位址、酬載之位址、以及標頭之位址。
- 如申請專利範圍第1項之方法,其中,該準備步驟包括:基於視窗時間少於中斷緩和視窗時間而準備。
- 如申請專利範圍第1項之方法,更包含:經由描述符表示所結合的傳輸控制協定段酬載之編號。
- 如申請專利範圍第12項之方法,更包含:經由該描述符表示所聚合的ACKs之編號。
- 一種網路介面控制器,該控制器包括:至少一介面,連接至通訊媒體;至少一媒體存取控制器;以及電路,該電路係用以:接收多進入網際網路協定封包,各個多進入網際網路協定封包具有網際網路協定標頭與具有傳輸控制協定標頭與傳輸控制協定酬載之傳輸控制協定段,該等多封包屬於相同的傳輸控制協定/網際網路協定流;準備網際網路協定封包,其具有單一網際網路協定標頭與具有單一傳輸控制協定標頭與一酬載之單一傳輸控制協定段,該酬載係藉由結合該等多網際網路協定封包之傳輸控制協定段酬載而形成;以及產生訊號,該訊號造成該網際網路協定封包之接收處理。
- 如申請專利範圍第14項之控制器,更包含:電路,該電路係用以開始至少一個直接記憶體存取,以儲存該單一傳輸控制協定標頭、該單一網際網路協定標頭、以及該等傳輸控制協定段之酬載至記憶體。
- 如申請專利範圍第14項之控制器,其中,該用以準備的電路包括:電路係用以決定位元組長度,以儲存至該單一網際網路協定標頭中。
- 如申請專利範圍第14項之控制器,其中,該用以準備的電路包括:電路係用以調整所接收的該等多封包之其中一個的至少一個標頭的至少一個值。
- 如申請專利範圍第14項之控制器,其中,該用以準備的電路包括:電路,該電路係用以決定該單一傳輸控制協定標頭之經應答的序列號碼。
- 如申請專利範圍第14項之控制器,其中,流包括一流,該流至少部分由該所接收的網際網路協定封包之包括於該網際網路協定封包的網際網路協定標頭之網際網路協定來源與目標位址以及包括於該網際網路協定封包中之該傳輸控制協定段標頭的該傳輸控制協定來源與目標埠號碼所識別。
- 如申請專利範圍第14項之控制器,其中,該等所接收的進入封包包括在少於網路介面控制器之中斷緩和時 段之時段內所接收之封包。
- 如申請專利範圍第14項之控制器,其中,該電路更包含用以基於由下列之群組所選擇的至少一個,從該等多封包排除至少一個屬於該相同流之封包的電路:該至少一個封包包括無效的傳輸控制協定核對和;該至少一個封包不包括傳輸控制協定資料段;該至少一個封包包括不按順序接收的傳輸控制協定段;以及該至少一個封包包括傳輸控制協定緊急旗標設定。
- 如申請專利範圍第14項之控制器,其中,該至少一個媒體存取控制器包括乙太網路媒體存取控制器。
- 一種用於聚合封包成單一封包之系統,包括:至少一個處理器;記憶體;至少一個介面,連接至通訊媒體;以及電路,該電路係用以:接收多進入網際網路協定封包,各個多進入網際網路協定封包具有網際網路協定標頭與具有傳輸控制協定標頭與傳輸控制協定酬載之傳輸控制協定段,該等多封包屬於相同的傳輸控制協定/網際網路協定流;準備網際網路協定封包,其具有單一網際網路協定標頭與具有單一傳輸控制協定標頭與一酬載之單一傳輸控制協定段,該酬載係藉由結合該等多網際網路協定封包之傳輸控制協定段酬載而形成;以及 產生訊號,該訊號引起該網際網路協定封包之接收處理。
- 如申請專利範圍第23項之系統,更包含:電路,該電路係用以開始至少一個直接記憶體存取以儲存該單一傳輸控制協定標頭、該單一網際網路協定標頭、以及該等傳輸控制協定段之該酬載至記憶體。
- 如申請專利範圍第23項之系統,其中,該用以準備的電路包括:電路,該電路係用以:決定位元組長度,以儲存至該單一網際網路協定標頭中。
- 如申請專利範圍第23項之系統,其中,該用以準備的電路包括:電路,該電路係用以調整所接收的該等多封包之其中一個的至少一個標頭的至少一個值。
- 如申請專利範圍第23項之系統,其中,該用以準備的電路包括:電路,該電路係用以決定該單一傳輸控制協定標頭之經應答的序列號碼。
- 如申請專利範圍第23項之系統,其中,該流包括至少部分由該所接收的網際網路協定封包之網際網路協定來源與目標位址以及包括於該網際網路協定封包中之該傳輸控制協定段標頭的該傳輸控制協定來源與目標埠號碼所識別之流。
- 如申請專利範圍第23項之系統,其中,該等所接收的進入封包包括在少於網路介面控制器之中斷緩和時段之時段內所接收之封包。
- 如申請專利範圍第23項之系統,其中,該電路更包含用以基於由下列之群組所選擇的至少一個,從該等多封包排除至少一個屬於該相同流之封包的電路:該至少一個封包包括無效的傳輸控制協定核對和;該至少一個封包不包括傳輸控制協定資料段;該至少一個封包包括不按順序接收的傳輸控制協定段;以及該至少一個封包包括傳輸控制協定緊急旗標設定。
- 如申請專利範圍第23項之系統,其中,該電路包括該處理器之一部份。
- 一種用於封包聚合的方法,包含步驟:接收透過網路傳送至主機的網路封包,該等網路封包的多數封包具有與屬於個別流的網路封包的各個多數網路封包內的相同組的多數標頭結構;對於多數個別流的網路封包,至少維持:(1)對應於該流的網路封包的酬載名單;及(2)包含於該名單中之若干酬載;決定該接收網路封包之一係為一匹配該多數個別流的一流的一流;將該接收網路封包的該一網路封包的該酬載加入至對應於該個別流的網路封包的該酬載名單; 增量包含在對應於該相關流的名單中的酬載的數量;決定主機協定堆疊應處理對應於該個別流之至少之一流的網路封包的資料;根據決定該主機協定堆疊應處理對應於該個別流的至少一流的網路封包的資料,產生網路封包,該網路封包具有:(1)在各個該多數網路封包內所找到的相同組的多數標頭結構;及(2)由維持用於個別流的該酬載名單中的網路封包的酬載組合所形成之酬載;及造成所產生之網路封包的主機協定堆疊處理,而不是相關該流的多數接收網路封包被處理。
- 如申請專利範圍第32項所述之方法,其中該多數標頭結構包含網際網路協定(IP)標頭及傳輸控制協定(TCP)標頭;及其中該流包含由在標頭結構內的資料所決定的流。
- 如申請專利範圍第32項所述之方法,其中該多數標頭結構包含至少兩標頭結構。
- 如申請專利範圍第32項所述之方法,其中該產生該網路封包步驟包含決定用於該等標頭結構內的欄位的新值。
- 如申請專利範圍第32項所述之方法,其中該決定該主機協定堆疊應處理該等封包的該等酬載包含: 決定接收網路封包匹配該等流之一流;及決定不將該接收網封包的該一封包的該酬載加至對應於該流的網路封包的酬載名單。
- 一種具有電腦程式之電腦可讀取儲存媒體,其包含指令以使得一裝置:接收透過網路傳送至主機的網路封包,該等網路封包的多數封包具有與屬於個別流的網路封包的各個多數網路封包內的相同組的多數標頭結構;對於多數個別流的網路封包,至少維持:(1)對應於該流的網路封包的酬載名單;及(2)包含於該名單中之若干酬載;決定該接收網路封包之一係為一匹配該多數個別流的一流的一流;將該接收網路封包的該一網路封包的該酬載加入至對應於該個別流的網路封包的該酬載名單;增量包含在對應於該相關流的名單中的酬載的數量;決定主機協定堆疊應處理對應於該個別流之至少之一流的網路封包的資料;根據決定該主機協定堆疊應處理對應於該個別流的至少一流的網路封包的資料,產生網路封包,該網路封包具有:(1)在各個該多數網路封包內所找到的相同組的多數標頭結構;及(2)由維持用於個別流的該酬載名單中的網路封包 的酬載組合所形成之酬載;及造成所產生之網路封包的主機協定堆疊處理,而不是相關該流的多數接收網路封包被處理。
- 如申請專利範圍第37項所述之電腦可讀取儲存媒體,其中該多數標頭結構包含網際網路協定(IP)標頭及傳輸控制協定(TCP)標頭;及其中該流包含由在標頭結構內的資料所決定的流。
- 如申請專利範圍第37項所述之電腦可讀取儲存媒體,其中該多數標頭結構包含至少兩標頭結構。
- 如申請專利範圍第37項所述之電腦可讀取儲存媒體,其中該等指令使得該裝置產生該網路封包包含指令以決定用於該等標頭結構內的欄位的新值。
- 如申請專利範圍第37項所述之電腦可讀取儲存媒體,其中該等指令使得該裝置決定該主機協定堆疊應處理該等封包的該等酬載包含使得該裝置:決定接收網路封包匹配該等流之一流;及決定不將該接收網封包的該一封包的該酬載加至對應於該流的網路封包的酬載名單。
- 一種網路裝置,包含電路被架構以:接收透過網路傳送至主機的網路封包,該等網路封包 的多數封包具有與屬於個別流的網路封包的各個多數網路封包內的相同組的多數標頭結構;對於多數個別流的網路封包,至少維持:(1)對應於該流的網路封包的酬載名單;及(2)包含於該名單中之若干酬載;決定該接收網路封包之一係為一匹配該多數個別流的一流的一流;將該接收網路封包的該一網路封包的該酬載加入至對應於該個別流的網路封包的該酬載名單;增量包含在對應於該相關流的名單中的酬載的數量;決定主機協定堆疊應處理對應於該個別流之至少之一流的網路封包的資料;根據決定該主機協定堆疊應處理對應於該個別流的至少一流的網路封包的資料,產生網路封包,該網路封包具有:(1)在各個該多數網路封包內所找到的相同組的多數標頭結構;及(2)由維持用於個別流的該酬載名單中的網路封包的酬載組合所形成之酬載;及造成所產生之網路封包的主機協定堆疊處理,而不是相關該流的多數接收網路封包被處理。
- 如申請專利範圍第42項所述之網路裝置,其中該多數標頭結構包含網際網路協定(IP)標頭及傳輸控制協定(TCP)標頭;及 其中該流包含由在標頭結構內的資料所決定的流。
- 如申請專利範圍第42項所述之網路裝置,其中該多數標頭結構包含至少兩標頭結構。
- 如申請專利範圍第42項所述之網路裝置,其中該電路被架構以產生該網路封包包含電路被架構以決定用於該等標頭結構內的欄位的新值。
- 如申請專利範圍第42項所述之網路裝置,其中該電路被架構以決定該主機協定堆疊應處理該等封包的該等酬載包含電路被架構以使該裝置:決定接收網路封包匹配該等流之一流;及決定不將該接收網封包的該一封包的該酬載加至對應於該流的網路封包的酬載名單。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/991,239 US7620071B2 (en) | 2004-11-16 | 2004-11-16 | Packet coalescing |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201208324A TW201208324A (en) | 2012-02-16 |
TWI411279B true TWI411279B (zh) | 2013-10-01 |
Family
ID=35965914
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100134801A TWI411279B (zh) | 2004-11-16 | 2005-11-08 | 封包聚合的方法與系統 |
TW094139145A TWI354473B (en) | 2004-11-16 | 2005-11-08 | Packet coalescing |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW094139145A TWI354473B (en) | 2004-11-16 | 2005-11-08 | Packet coalescing |
Country Status (7)
Country | Link |
---|---|
US (7) | US7620071B2 (zh) |
EP (1) | EP1813084B1 (zh) |
CN (2) | CN101044737B (zh) |
AT (1) | ATE388574T1 (zh) |
DE (1) | DE602005005219T2 (zh) |
TW (2) | TWI411279B (zh) |
WO (1) | WO2006055494A1 (zh) |
Families Citing this family (110)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6957281B2 (en) | 2002-01-15 | 2005-10-18 | Intel Corporation | Ingress processing optimization via traffic classification and grouping |
US7620071B2 (en) | 2004-11-16 | 2009-11-17 | Intel Corporation | Packet coalescing |
US7404040B2 (en) * | 2004-12-30 | 2008-07-22 | Intel Corporation | Packet data placement in a processor cache |
US8457131B2 (en) * | 2005-02-18 | 2013-06-04 | Broadcom Corporation | Dynamic table sharing of memory space within a network device |
US20070022212A1 (en) * | 2005-07-22 | 2007-01-25 | Fan Kan F | Method and system for TCP large receive offload |
US8311059B2 (en) * | 2005-09-07 | 2012-11-13 | Emulex Design & Manufacturing Corporation | Receive coalescing and automatic acknowledge in network interface controller |
US20070219663A1 (en) * | 2006-01-03 | 2007-09-20 | Eddy Verstraeten | Tracking an Item on a Packaging Line |
US20080095165A1 (en) * | 2006-02-16 | 2008-04-24 | Intelliserv, Inc. | Net-Layer Parsing and Resynchronization |
US8102842B2 (en) | 2006-08-04 | 2012-01-24 | Broadcom Corporation | Integrated switch |
US7987307B2 (en) * | 2006-09-22 | 2011-07-26 | Intel Corporation | Interrupt coalescing control scheme |
US8165133B2 (en) * | 2006-12-22 | 2012-04-24 | Broadcom Corporation | Physical layer device with integrated switch |
US7769892B2 (en) | 2007-08-27 | 2010-08-03 | International Business Machines Corporation | System and method for handling indirect routing of information between supernodes of a multi-tiered full-graph interconnect architecture |
US7769891B2 (en) * | 2007-08-27 | 2010-08-03 | International Business Machines Corporation | System and method for providing multiple redundant direct routes between supernodes of a multi-tiered full-graph interconnect architecture |
US7958183B2 (en) | 2007-08-27 | 2011-06-07 | International Business Machines Corporation | Performing collective operations using software setup and partial software execution at leaf nodes in a multi-tiered full-graph interconnect architecture |
US7822889B2 (en) * | 2007-08-27 | 2010-10-26 | International Business Machines Corporation | Direct/indirect transmission of information using a multi-tiered full-graph interconnect architecture |
US7840703B2 (en) * | 2007-08-27 | 2010-11-23 | International Business Machines Corporation | System and method for dynamically supporting indirect routing within a multi-tiered full-graph interconnect architecture |
US7904590B2 (en) | 2007-08-27 | 2011-03-08 | International Business Machines Corporation | Routing information through a data processing system implementing a multi-tiered full-graph interconnect architecture |
US7958182B2 (en) | 2007-08-27 | 2011-06-07 | International Business Machines Corporation | Providing full hardware support of collective operations in a multi-tiered full-graph interconnect architecture |
US7809970B2 (en) | 2007-08-27 | 2010-10-05 | International Business Machines Corporation | System and method for providing a high-speed message passing interface for barrier operations in a multi-tiered full-graph interconnect architecture |
US8140731B2 (en) | 2007-08-27 | 2012-03-20 | International Business Machines Corporation | System for data processing using a multi-tiered full-graph interconnect architecture |
US7793158B2 (en) * | 2007-08-27 | 2010-09-07 | International Business Machines Corporation | Providing reliability of communication between supernodes of a multi-tiered full-graph interconnect architecture |
US8014387B2 (en) * | 2007-08-27 | 2011-09-06 | International Business Machines Corporation | Providing a fully non-blocking switch in a supernode of a multi-tiered full-graph interconnect architecture |
US8108545B2 (en) | 2007-08-27 | 2012-01-31 | International Business Machines Corporation | Packet coalescing in virtual channels of a data processing system in a multi-tiered full-graph interconnect architecture |
US8185896B2 (en) * | 2007-08-27 | 2012-05-22 | International Business Machines Corporation | Method for data processing using a multi-tiered full-graph interconnect architecture |
US8427951B2 (en) * | 2007-08-30 | 2013-04-23 | International Business Machines Corporation | Method, system, and apparatus for reliable data packet recovery in a link layer of a data center ethernet network |
US7827428B2 (en) | 2007-08-31 | 2010-11-02 | International Business Machines Corporation | System for providing a cluster-wide system clock in a multi-tiered full-graph interconnect architecture |
US7921316B2 (en) | 2007-09-11 | 2011-04-05 | International Business Machines Corporation | Cluster-wide system clock in a multi-tiered full-graph interconnect architecture |
US7738471B2 (en) | 2007-09-14 | 2010-06-15 | Harris Corporation | High speed packet processing in a wireless network |
US8661167B2 (en) * | 2007-09-17 | 2014-02-25 | Intel Corporation | DMA (direct memory access) coalescing |
US8001278B2 (en) * | 2007-09-28 | 2011-08-16 | Intel Corporation | Network packet payload compression |
US7916728B1 (en) | 2007-09-28 | 2011-03-29 | F5 Networks, Inc. | Lockless atomic table update |
US20090086736A1 (en) * | 2007-09-28 | 2009-04-02 | Annie Foong | Notification of out of order packets |
US7779148B2 (en) | 2008-02-01 | 2010-08-17 | International Business Machines Corporation | Dynamic routing based on information of not responded active source requests quantity received in broadcast heartbeat signal and stored in local data structure for other processor chips |
US8077602B2 (en) * | 2008-02-01 | 2011-12-13 | International Business Machines Corporation | Performing dynamic request routing based on broadcast queue depths |
US20090198956A1 (en) * | 2008-02-01 | 2009-08-06 | Arimilli Lakshminarayana B | System and Method for Data Processing Using a Low-Cost Two-Tier Full-Graph Interconnect Architecture |
CN101500341B (zh) * | 2008-02-02 | 2011-02-02 | 上海贝尔阿尔卡特股份有限公司 | 基于窗的内容同步的网关和基站及其方法 |
US8306036B1 (en) | 2008-06-20 | 2012-11-06 | F5 Networks, Inc. | Methods and systems for hierarchical resource allocation through bookmark allocation |
US8341286B1 (en) * | 2008-07-31 | 2012-12-25 | Alacritech, Inc. | TCP offload send optimization |
US8769681B1 (en) | 2008-08-11 | 2014-07-01 | F5 Networks, Inc. | Methods and system for DMA based distributed denial of service protection |
US8160060B2 (en) * | 2008-11-10 | 2012-04-17 | Infosys Technologies Limited | System and method for transferring data using variance based messaging |
US8447884B1 (en) | 2008-12-01 | 2013-05-21 | F5 Networks, Inc. | Methods for mapping virtual addresses to physical addresses in a network device and systems thereof |
US8495403B2 (en) * | 2008-12-31 | 2013-07-23 | Intel Corporation | Platform and processor power management |
US8880632B1 (en) | 2009-01-16 | 2014-11-04 | F5 Networks, Inc. | Method and apparatus for performing multiple DMA channel based network quality of service |
US9152483B2 (en) | 2009-01-16 | 2015-10-06 | F5 Networks, Inc. | Network devices with multiple fully isolated and independently resettable direct memory access channels and methods thereof |
US8112491B1 (en) | 2009-01-16 | 2012-02-07 | F5 Networks, Inc. | Methods and systems for providing direct DMA |
US8880696B1 (en) | 2009-01-16 | 2014-11-04 | F5 Networks, Inc. | Methods for sharing bandwidth across a packetized bus and systems thereof |
US8103809B1 (en) | 2009-01-16 | 2012-01-24 | F5 Networks, Inc. | Network devices with multiple direct memory access channels and methods thereof |
US8693688B2 (en) * | 2009-03-03 | 2014-04-08 | Intel Corporation | Adaptive packet ciphering |
US9313047B2 (en) | 2009-11-06 | 2016-04-12 | F5 Networks, Inc. | Handling high throughput and low latency network data packets in a traffic management device |
US8417778B2 (en) | 2009-12-17 | 2013-04-09 | International Business Machines Corporation | Collective acceleration unit tree flow control and retransmit |
US8949210B2 (en) * | 2010-05-13 | 2015-02-03 | Microsoft Corporation | Analysis stack for complex event flows |
US8537815B2 (en) * | 2010-06-17 | 2013-09-17 | Apple Inc. | Accelerating data routing |
US10135831B2 (en) | 2011-01-28 | 2018-11-20 | F5 Networks, Inc. | System and method for combining an access control system with a traffic management system |
US8996718B2 (en) * | 2012-02-02 | 2015-03-31 | Apple Inc. | TCP-aware receive side coalescing |
US9036822B1 (en) | 2012-02-15 | 2015-05-19 | F5 Networks, Inc. | Methods for managing user information and devices thereof |
US8863307B2 (en) * | 2012-06-05 | 2014-10-14 | Broadcom Corporation | Authenticating users based upon an identity footprint |
US8824508B2 (en) * | 2012-06-21 | 2014-09-02 | Breakingpoint Systems, Inc. | High-speed CLD-based TCP assembly offload |
US8848741B2 (en) | 2012-06-21 | 2014-09-30 | Breakingpoint Systems, Inc. | High-speed CLD-based TCP segmentation offload |
US9130879B2 (en) * | 2012-08-24 | 2015-09-08 | Vmware, Inc. | Methods and systems for offload processing of encapsulated packets |
US9351196B2 (en) * | 2012-08-31 | 2016-05-24 | International Business Machines Corporation | Byte caching in wireless communication networks |
JP6024318B2 (ja) * | 2012-09-10 | 2016-11-16 | 富士通株式会社 | 無線lan基地局、無線lan端末、及びパケット転送方法 |
US10033837B1 (en) | 2012-09-29 | 2018-07-24 | F5 Networks, Inc. | System and method for utilizing a data reducing module for dictionary compression of encoded data |
DE112012006928T5 (de) * | 2012-10-18 | 2015-06-11 | Hewlett-Packard Development Company, L.P. | Kommunikation von Tupeln in einer Nachricht |
US9047417B2 (en) | 2012-10-29 | 2015-06-02 | Intel Corporation | NUMA aware network interface |
JP2014090241A (ja) * | 2012-10-29 | 2014-05-15 | Fujitsu Ltd | トンネル通信システム |
US9270602B1 (en) | 2012-12-31 | 2016-02-23 | F5 Networks, Inc. | Transmit rate pacing of large network traffic bursts to reduce jitter, buffer overrun, wasted bandwidth, and retransmissions |
US10375155B1 (en) | 2013-02-19 | 2019-08-06 | F5 Networks, Inc. | System and method for achieving hardware acceleration for asymmetric flow connections |
US9300578B2 (en) * | 2013-02-21 | 2016-03-29 | Applied Micro Circuits Corporation | Large receive offload functionality for a system on chip |
CN103297430B (zh) * | 2013-05-24 | 2017-04-26 | 华为技术有限公司 | 数据传输方法及设备 |
US10684973B2 (en) | 2013-08-30 | 2020-06-16 | Intel Corporation | NUMA node peripheral switch |
US9864606B2 (en) | 2013-09-05 | 2018-01-09 | F5 Networks, Inc. | Methods for configurable hardware logic device reloading and devices thereof |
US9635024B2 (en) | 2013-12-16 | 2017-04-25 | F5 Networks, Inc. | Methods for facilitating improved user authentication using persistent data and devices thereof |
US10015143B1 (en) | 2014-06-05 | 2018-07-03 | F5 Networks, Inc. | Methods for securing one or more license entitlement grants and devices thereof |
US11838851B1 (en) | 2014-07-15 | 2023-12-05 | F5, Inc. | Methods for managing L7 traffic classification and devices thereof |
US10182013B1 (en) | 2014-12-01 | 2019-01-15 | F5 Networks, Inc. | Methods for managing progressive image delivery and devices thereof |
US11895138B1 (en) | 2015-02-02 | 2024-02-06 | F5, Inc. | Methods for improving web scanner accuracy and devices thereof |
JP2017046325A (ja) * | 2015-08-28 | 2017-03-02 | 株式会社東芝 | 通信装置、通信方法およびプログラム |
US9876613B2 (en) | 2015-08-28 | 2018-01-23 | Qualcomm Incorporated | Transport protocol communications reduction |
US9749266B2 (en) | 2015-08-28 | 2017-08-29 | International Business Machines Corporation | Coalescing messages using a network interface controller |
TWI580199B (zh) | 2015-12-18 | 2017-04-21 | 瑞昱半導體股份有限公司 | 接收裝置及其封包處理方法 |
US10521283B2 (en) * | 2016-03-07 | 2019-12-31 | Mellanox Technologies, Ltd. | In-node aggregation and disaggregation of MPI alltoall and alltoallv collectives |
US10212623B2 (en) * | 2016-12-28 | 2019-02-19 | Intel IP Corporation | Apparatus, system and method of packet coalescing |
US10972453B1 (en) | 2017-05-03 | 2021-04-06 | F5 Networks, Inc. | Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof |
US10645200B2 (en) * | 2017-08-16 | 2020-05-05 | Qualcomm Incorporated | Alternate acknowledgment (ACK) signals in a coalescing transmission control protocol/internet protocol (TCP/IP) system |
US20190124180A1 (en) * | 2017-10-20 | 2019-04-25 | Hewlett Packard Enterprise Development Lp | Packet compression and decompression |
US11855898B1 (en) | 2018-03-14 | 2023-12-26 | F5, Inc. | Methods for traffic dependent direct memory access optimization and devices thereof |
JP7102936B2 (ja) * | 2018-05-23 | 2022-07-20 | 日本電信電話株式会社 | パケット処理装置およびパケット処理方法 |
US11277455B2 (en) | 2018-06-07 | 2022-03-15 | Mellanox Technologies, Ltd. | Streaming system |
KR102619952B1 (ko) | 2018-08-08 | 2024-01-02 | 삼성전자주식회사 | 데이터 패킷을 처리하기 위한 장치 및 방법 |
CN110958213B (zh) * | 2018-09-27 | 2021-10-22 | 华为技术有限公司 | 处理tcp报文的方法、toe组件以及网络设备 |
KR102608382B1 (ko) * | 2018-10-18 | 2023-12-01 | 삼성전자주식회사 | 데이터를 처리하는 방법 및 이를 수행하는 전자 장치 |
US11537716B1 (en) | 2018-11-13 | 2022-12-27 | F5, Inc. | Methods for detecting changes to a firmware and devices thereof |
US10757166B2 (en) * | 2018-11-20 | 2020-08-25 | International Business Machines Corporation | Passive re-assembly of HTTP2 fragmented segments |
US11625393B2 (en) | 2019-02-19 | 2023-04-11 | Mellanox Technologies, Ltd. | High performance computing system |
EP3699770A1 (en) | 2019-02-25 | 2020-08-26 | Mellanox Technologies TLV Ltd. | Collective communication system and methods |
US11805081B2 (en) | 2019-03-04 | 2023-10-31 | Intel Corporation | Apparatus and method for buffer management for receive segment coalescing |
JP7143808B2 (ja) * | 2019-04-23 | 2022-09-29 | 日本電信電話株式会社 | パケット処理装置およびパケット処理方法 |
WO2020236277A1 (en) | 2019-05-23 | 2020-11-26 | Cray Inc. | System and method for facilitating tracer packets in a data-driven intelligent network |
US11528641B2 (en) * | 2019-07-26 | 2022-12-13 | Qualcomm Incorporated | Transmission control protocol (TCP) and/or user datagram protocol (UDP) receive offloading |
US11750699B2 (en) | 2020-01-15 | 2023-09-05 | Mellanox Technologies, Ltd. | Small message aggregation |
US11252027B2 (en) | 2020-01-23 | 2022-02-15 | Mellanox Technologies, Ltd. | Network element supporting flexible data reduction operations |
KR20210137702A (ko) * | 2020-05-11 | 2021-11-18 | 삼성전자주식회사 | 전자 장치 및 전자 장치에서 수신된 데이터 패킷을 처리하는 방법 |
US11876885B2 (en) | 2020-07-02 | 2024-01-16 | Mellanox Technologies, Ltd. | Clock queue with arming and/or self-arming features |
US11922207B2 (en) * | 2020-08-13 | 2024-03-05 | Advanced Micro Devices, Inc | Network command coalescing on GPUs |
WO2022073460A1 (en) * | 2020-10-06 | 2022-04-14 | Mediatek Singapore Pte. Ltd. | Pdu rate reduction in mobile communications |
US11556378B2 (en) | 2020-12-14 | 2023-01-17 | Mellanox Technologies, Ltd. | Offloading execution of a multi-task parameter-dependent operation to a network device |
US20230102614A1 (en) * | 2021-09-27 | 2023-03-30 | Qualcomm Incorporated | Grouping data packets at a modem |
US11909851B2 (en) * | 2021-10-04 | 2024-02-20 | Nxp B.V. | Coalescing interrupts based on fragment information in packets and a network controller for coalescing |
US11922237B1 (en) | 2022-09-12 | 2024-03-05 | Mellanox Technologies, Ltd. | Single-step collective operations |
TWI820977B (zh) | 2022-10-21 | 2023-11-01 | 中原大學 | 封包排序與重組電路模組 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6246683B1 (en) * | 1998-05-01 | 2001-06-12 | 3Com Corporation | Receive processing with network protocol bypass |
US20030108044A1 (en) * | 2001-12-11 | 2003-06-12 | Roland Hendel | Stateless TCP/IP protocol |
US20030182614A1 (en) * | 2002-03-22 | 2003-09-25 | Schroeder Jacob J. | Method and apparatus to perform error control |
Family Cites Families (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3749845A (en) | 1971-08-27 | 1973-07-31 | Bell Telephone Labor Inc | Digital data communication system |
US6490248B1 (en) | 1995-09-18 | 2002-12-03 | Kabushiki Kaisha Toshiba | Packet transfer device and packet transfer method adaptive to a large number of input ports |
US6021263A (en) | 1996-02-16 | 2000-02-01 | Lucent Technologies, Inc. | Management of ATM virtual circuits with resources reservation protocol |
US6185209B1 (en) * | 1997-07-11 | 2001-02-06 | Telefonaktiebolaget Lm Ericsson | VC merging for ATM switch |
US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US5937169A (en) * | 1997-10-29 | 1999-08-10 | 3Com Corporation | Offload of TCP segmentation to a smart adapter |
US6351474B1 (en) | 1998-01-14 | 2002-02-26 | Skystream Networks Inc. | Network distributed remultiplexer for video program bearing transport streams |
US6453360B1 (en) | 1999-03-01 | 2002-09-17 | Sun Microsystems, Inc. | High performance network interface |
US6389468B1 (en) * | 1999-03-01 | 2002-05-14 | Sun Microsystems, Inc. | Method and apparatus for distributing network traffic processing on a multiprocessor computer |
US6804237B1 (en) * | 1999-06-23 | 2004-10-12 | Nortel Networks Limited | Method, devices and signals for multiplexing payload data for transport in a data network |
US6427169B1 (en) * | 1999-07-30 | 2002-07-30 | Intel Corporation | Parsing a packet header |
US6633576B1 (en) | 1999-11-04 | 2003-10-14 | William Melaragni | Apparatus and method for interleaved packet storage |
US6564267B1 (en) * | 1999-11-22 | 2003-05-13 | Intel Corporation | Network adapter with large frame transfer emulation |
US7050437B2 (en) * | 2000-03-24 | 2006-05-23 | International Business Machines Corporation | Wire speed reassembly of data frames |
US7136377B1 (en) * | 2000-03-31 | 2006-11-14 | Cisco Technology, Inc. | Tunneled datagram switching |
US6574195B2 (en) | 2000-04-19 | 2003-06-03 | Caspian Networks, Inc. | Micro-flow management |
US6715005B1 (en) * | 2000-06-29 | 2004-03-30 | International Business Machines Corporation | Method and system for reducing latency in message passing systems |
US6718326B2 (en) | 2000-08-17 | 2004-04-06 | Nippon Telegraph And Telephone Corporation | Packet classification search device and method |
US6708292B1 (en) | 2000-08-18 | 2004-03-16 | Network Associates, Inc. | System, method and software for protocol analyzer remote buffer management |
US20020031126A1 (en) * | 2000-09-12 | 2002-03-14 | Crichton James Conrad | Bit synchronizer and internetworking system and method |
US6665495B1 (en) | 2000-10-27 | 2003-12-16 | Yotta Networks, Inc. | Non-blocking, scalable optical router architecture and method for routing optical traffic |
US6618793B2 (en) | 2000-12-18 | 2003-09-09 | Redback Networks, Inc. | Free memory manager scheme and cache |
US6665755B2 (en) | 2000-12-22 | 2003-12-16 | Nortel Networks Limited | External memory engine selectable pipeline architecture |
US7079501B2 (en) * | 2001-01-31 | 2006-07-18 | International Business Machines Corporation | Method and system for efficiently delivering content to multiple requesters |
EP1382165A2 (en) | 2001-04-13 | 2004-01-21 | MOTOROLA INC., A Corporation of the state of Delaware | Manipulating data streams in data stream processors |
US6816455B2 (en) | 2001-05-09 | 2004-11-09 | Telecom Italia S.P.A. | Dynamic packet filter utilizing session tracking |
US7164680B2 (en) | 2001-06-04 | 2007-01-16 | Koninklijke Philips Electronics N.V. | Scheme for supporting real-time packetization and retransmission in rate-based streaming applications |
US7076560B1 (en) * | 2001-06-12 | 2006-07-11 | Network Appliance, Inc. | Methods and apparatus for storing and serving streaming media data |
US7170893B2 (en) * | 2001-06-15 | 2007-01-30 | Lucent Technologies Inc. | Technique for selecting the number of packets to be concatenated |
US7590143B2 (en) * | 2001-07-05 | 2009-09-15 | Qualcomm Incorporated | System and method for voice over IP |
US7194550B1 (en) * | 2001-08-30 | 2007-03-20 | Sanera Systems, Inc. | Providing a single hop communication path between a storage device and a network switch |
US6801940B1 (en) | 2002-01-10 | 2004-10-05 | Networks Associates Technology, Inc. | Application performance monitoring expert |
US6957281B2 (en) | 2002-01-15 | 2005-10-18 | Intel Corporation | Ingress processing optimization via traffic classification and grouping |
JP2003258911A (ja) * | 2002-03-06 | 2003-09-12 | Hitachi Ltd | アクセスノード装置およびインターネット利用状況の分析方法 |
US7496689B2 (en) | 2002-04-22 | 2009-02-24 | Alacritech, Inc. | TCP/IP offload device |
US7512128B2 (en) * | 2002-06-12 | 2009-03-31 | Sun Microsystems, Inc. | System and method for a multi-packet data link layer data transmission |
US20030231657A1 (en) * | 2002-06-12 | 2003-12-18 | Kacheong Poon | System and method for a multi-data network layer transmit interface |
US7277963B2 (en) * | 2002-06-26 | 2007-10-02 | Sandvine Incorporated | TCP proxy providing application layer modifications |
US7142540B2 (en) * | 2002-07-18 | 2006-11-28 | Sun Microsystems, Inc. | Method and apparatus for zero-copy receive buffer management |
US6968358B2 (en) * | 2002-07-25 | 2005-11-22 | International Business Machines Corporation | Method and apparatus for network communication card memory management |
US20040047367A1 (en) * | 2002-09-05 | 2004-03-11 | Litchfield Communications, Inc. | Method and system for optimizing the size of a variable buffer |
CN100393012C (zh) * | 2002-09-09 | 2008-06-04 | 西南交通大学 | 在混合自动重发请求系统中并行冗余发送与并行合并接收分组数据的方法 |
US20040088262A1 (en) * | 2002-11-06 | 2004-05-06 | Alacritech, Inc. | Enabling an enhanced function of an electronic device |
US7308000B2 (en) * | 2002-11-07 | 2007-12-11 | Sun Microsystems, Inc. | Methods and systems for efficient multi-packet data processing in a layered network protocol |
US7680944B1 (en) * | 2003-02-28 | 2010-03-16 | Comtrol Corporation | Rapid transport service in a network to peripheral device servers |
US7483532B2 (en) * | 2003-07-03 | 2009-01-27 | Microsoft Corporation | RTP payload format |
US7586925B2 (en) | 2003-09-09 | 2009-09-08 | Sonus Networks, Inc. | Data adaptation protocol |
US7562158B2 (en) * | 2004-03-24 | 2009-07-14 | Intel Corporation | Message context based TCP transmission |
US8155117B2 (en) * | 2004-06-29 | 2012-04-10 | Qualcomm Incorporated | Filtering and routing of fragmented datagrams in a data network |
US20060004933A1 (en) * | 2004-06-30 | 2006-01-05 | Sujoy Sen | Network interface controller signaling of connection event |
US20060031474A1 (en) * | 2004-07-19 | 2006-02-09 | Linden Cornett | Maintaining reachability measures |
US7620071B2 (en) * | 2004-11-16 | 2009-11-17 | Intel Corporation | Packet coalescing |
US8311059B2 (en) * | 2005-09-07 | 2012-11-13 | Emulex Design & Manufacturing Corporation | Receive coalescing and automatic acknowledge in network interface controller |
-
2004
- 2004-11-16 US US10/991,239 patent/US7620071B2/en active Active
-
2005
- 2005-11-08 TW TW100134801A patent/TWI411279B/zh active
- 2005-11-08 TW TW094139145A patent/TWI354473B/zh active
- 2005-11-10 CN CN2005800355370A patent/CN101044737B/zh active Active
- 2005-11-10 DE DE602005005219T patent/DE602005005219T2/de active Active
- 2005-11-10 AT AT05826330T patent/ATE388574T1/de not_active IP Right Cessation
- 2005-11-10 EP EP05826330A patent/EP1813084B1/en active Active
- 2005-11-10 WO PCT/US2005/041195 patent/WO2006055494A1/en active Application Filing
- 2005-11-10 CN CN201110282788.6A patent/CN102427446B/zh active Active
-
2009
- 2009-09-30 US US12/586,964 patent/US8036246B2/en active Active
-
2010
- 2010-12-29 US US12/980,682 patent/US8718096B2/en active Active
-
2014
- 2014-03-28 US US14/229,545 patent/US9485178B2/en active Active
-
2016
- 2016-10-31 US US15/339,354 patent/US20170048142A1/en not_active Abandoned
-
2017
- 2017-12-29 US US15/859,301 patent/US10652147B2/en active Active
-
2020
- 2020-05-10 US US16/870,991 patent/US20200328973A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6246683B1 (en) * | 1998-05-01 | 2001-06-12 | 3Com Corporation | Receive processing with network protocol bypass |
US20030108044A1 (en) * | 2001-12-11 | 2003-06-12 | Roland Hendel | Stateless TCP/IP protocol |
US20030182614A1 (en) * | 2002-03-22 | 2003-09-25 | Schroeder Jacob J. | Method and apparatus to perform error control |
Also Published As
Publication number | Publication date |
---|---|
ATE388574T1 (de) | 2008-03-15 |
DE602005005219D1 (de) | 2008-04-17 |
US20110090920A1 (en) | 2011-04-21 |
US20140211804A1 (en) | 2014-07-31 |
EP1813084A1 (en) | 2007-08-01 |
TWI354473B (en) | 2011-12-11 |
CN101044737A (zh) | 2007-09-26 |
EP1813084B1 (en) | 2008-03-05 |
CN102427446B (zh) | 2015-01-14 |
US7620071B2 (en) | 2009-11-17 |
WO2006055494A1 (en) | 2006-05-26 |
US20100020819A1 (en) | 2010-01-28 |
US20200328973A1 (en) | 2020-10-15 |
US10652147B2 (en) | 2020-05-12 |
TW201208324A (en) | 2012-02-16 |
US8036246B2 (en) | 2011-10-11 |
US8718096B2 (en) | 2014-05-06 |
DE602005005219T2 (de) | 2009-03-12 |
CN101044737B (zh) | 2011-11-16 |
CN102427446A (zh) | 2012-04-25 |
US20170048142A1 (en) | 2017-02-16 |
US9485178B2 (en) | 2016-11-01 |
US20060104303A1 (en) | 2006-05-18 |
US20180198709A1 (en) | 2018-07-12 |
TW200642390A (en) | 2006-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI411279B (zh) | 封包聚合的方法與系統 | |
JP4327496B2 (ja) | ネットワークスタックをオフロードする方法 | |
US7171489B2 (en) | Method to synchronize and upload an offloaded network stack connection with a network stack | |
JP4829896B2 (ja) | データ破壊を避けることによる改善されたネットワーク性能のための方法、システム及び物品 | |
EP1732285B1 (en) | Apparatus and methods for a high performance hardware network protocol processing engine | |
US7930349B2 (en) | Method and apparatus for reducing host overhead in a socket server implementation | |
US8190767B1 (en) | Data structures and state tracking for network protocol processing | |
US20070064737A1 (en) | Receive coalescing and automatic acknowledge in network interface controller | |
JP2002538724A (ja) | マルチプロセッサコンピュータでネットワークトラフィック処理を分散する方法および装置 | |
JP2002538725A (ja) | 初期のランダムなパケット廃棄方法および装置 | |
US20090080332A1 (en) | Method and System for a Fast Drop Recovery for a TCP Connection | |
WO2015150272A1 (en) | METHOD FOR PROCESSING VxLAN DATA UNITS | |
US20070291782A1 (en) | Acknowledgement filtering | |
US20090225757A1 (en) | Processing apparatus and method for processing ip packets | |
JP2005085284A (ja) | フェイルオーバーイベントをサポートするネットワーク状態オブジェクトの多重オフロード | |
US7420991B2 (en) | TCP time stamp processing in hardware based TCP offload | |
US20050198007A1 (en) | Method, system and algorithm for dynamically managing a connection context database | |
JP3490000B2 (ja) | サーバ・システムおよびクライアント・サーバ間の通信方法 |