TWI459763B - 切割網路封包之卸載方法及其裝置 - Google Patents
切割網路封包之卸載方法及其裝置 Download PDFInfo
- Publication number
- TWI459763B TWI459763B TW100109821A TW100109821A TWI459763B TW I459763 B TWI459763 B TW I459763B TW 100109821 A TW100109821 A TW 100109821A TW 100109821 A TW100109821 A TW 100109821A TW I459763 B TWI459763 B TW I459763B
- Authority
- TW
- Taiwan
- Prior art keywords
- network packet
- unloading
- cutting
- network
- packet
- Prior art date
Links
Classifications
-
- 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 Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本發明係關於網路傳輸技術,特別係關於切割網路封包之卸載方法。
在網路通訊協定中,傳輸控制協定(transmission control protocol,TCP)和網路協定(internet protocol,IP)為兩種核心協定,並稱為TCP/IP。其中,傳輸控制協定係將欲傳送資料的起始標上傳輸控制協定標頭以成為一傳輸控制協定片段(TCP segment)。該傳輸控制協定片段之起始再標上網路協定標頭即成為網路協定封包(IP packet)。
網路卸載(offload)係為減少中央處理器之工作負荷,而將部分工作移至網路介面裝置(例如網路卡)完成之一種機制。封包切割(segmentation)係將欲傳送之網路封包切成複數個網路子封包以利資料傳送之一種機制。傳輸控制協定切割卸載(TCP segmentation offload,TSO)則結合上述兩種機制優點,其由一網路介面裝置負責網路封包之切割工作。在實作上,主要作法是將傳輸控制協定片段之內容切割成複數個片段,並根據原始網路協定標頭分別標以各自之網路協定標頭。圖1顯示傳輸控制協定切割卸載機制之示意圖。如圖1所示,該網路協定封包之長度為64KB,並包含網路協定標頭、傳輸控制協定標頭以及資料有效承載(payload)。在經過傳輸控制協定切割卸載後,該網路協定封包之資料有效承載係切割成46份(即圖1之n等於46)。據此,該網路協定封包即切割成46個長度為1448位元組之網路子封包,其中每一網路子封包亦包含網路協定標頭、傳輸控制協定標頭以及資料有效承載。藉由此傳輸控制協定切割卸載機制,中央處理器即可僅透過一個傳送指令完成一筆64KB之封包傳輸。
對具備直接記憶體存取機制(direct memory access,DMA)之匯流排主控式(bus master)之網路介面裝置而言,在傳輸網路封包時,係藉由一傳送描述符(transmit descriptor)所儲存之指標擷取欲傳送之網路封包。圖2顯示一傳送描述符之示意圖。如圖2所示,該傳送描述符係儲存複數個指標,其中每個指標係指向儲存於系統記憶體內欲傳輸之網路封包。為支援傳輸控制協定切割卸載機制,用以實現之網路介面裝置通常需要網路封包切割卸載參數,其中該網路封包切割卸載參數包含進行封包切割所需之資料,例如最大片段長度(maximum segment size,MMS)等資料。為攜帶該網路封包切割卸載參數,大部分習知的傳輸控制協定切割卸載機制係利用該傳送描述符實現。
圖3顯示一習知的傳輸控制協定切割卸載機制之示意圖。如圖3所示,該傳輸控制協定切割卸載機制係改變一般的傳送描述符架構,使得各指標額外儲存其對應之網路封包所需之網路封包切割卸載參數。然而,對應此種傳輸控制協定切割卸載機制之網路介面裝置需相容於該傳送描述符架構,且該增大之傳送描述符架構即造成系統匯流排使用量之增加及記憶體使用效率之降低。
圖4顯示另一習知的傳輸控制協定切割卸載機制之示意圖。如圖4所示,該傳輸控制協定切割卸載機制亦改變一般的傳送描述符架構,使得該傳送描述符係依序儲存網路封包之指標及對應之網路封包切割卸載參數。然而,此種傳輸控制協定切割卸載機制仍會造成系統匯流排使用量之增加及記憶體使用效率之降低。
圖5顯示另一習知的傳輸控制協定切割卸載機制之示意圖。如圖5所示,該傳輸控制協定切割卸載機制係將每一網路封包所需之網路封包切割卸載參數標於各網路封包之起始處,亦即增加各網路封包之長度以攜帶網路封包切割卸載參數。然而,此種傳輸控制協定切割卸載機制可能無法實現於部分操作系統,且其額外增加的長度仍會造成記憶體使用效率之降低。
圖6顯示另一習知的傳輸控制協定切割卸載機制之示意圖。如圖6所示,該傳輸控制協定切割卸載機制係改變一般的傳送描述符架構,使其可儲存網路封包所對應之指標及所需之網路封包切割卸載參數。不同於圖3之方法,該傳送描述符並非依序儲存網路封包之指標及網路封包切割卸載參數。然而,對應此種傳輸控制協定切割卸載機制之網路介面裝置需具備分辨指標及網路封包切割卸載參數之能力,故會增加設計上的複雜度。
如圖3至圖6所示之習知的傳輸控制協定切割卸載機制,其皆會影響系統匯流排使用量或是造成記憶體使用效率之降低。甚者,對於不具備直接記憶體存取機制之匯流排受控式(bus slave)之網路介面裝置而言,例如符合遠端網路驅動程式介面規格(Remote Network Driver Interface Specification,Remote NDIS)之通用串列匯流排(Universal Serial Bus,USB)之網路介面裝置,其無法改變本身之規格架構,故以上習知的傳輸控制協定切割卸載機制均不適用。
據此,業界所需要的是一種切割網路封包之卸載方法及其裝置,其不需改變現有的傳送描述符架構,故可以更有效達成傳輸控制協定切割卸載,且可適用於不具備直接記憶體存取機制之匯流排受控式之網路介面裝置。
本發明揭示一種切割網路封包之卸載方法,包含下列步驟:獲取記載於一網路封包內之網路封包切割卸載參數;以及根據該網路封包切割卸載參數切割該網路封包成複數個網路子封包。
本發明揭示一種切割網路封包之卸載裝置,包含一封包剖析器、一標頭緩衝控制器、一網路封包切割卸載參數擷取器和一切割模組。該封包剖析器係設定以接收一欲發送之網路封包。該標頭緩衝控制器係設定以擷取該網路封包之標頭,並連接至一緩衝器以存取該標頭。該網路封包切割卸載參數擷取器係設定以擷取記載於該網路封包內之網路封包切割卸載參數。該切割模組係設定以根據該網路封包之標頭和該網路封包切割卸載參數切割該網路封包成複數個網路子封包。
本發明在此所探討的方向為一種切割網路封包之卸載方法及其裝置。為了能徹底地瞭解本發明,將在下列的描述中提出詳盡的步驟及組成。顯然地,本發明的施行並未限定於本發明技術領域之技藝者所熟習的特殊細節。另一方面,眾所周知的組成或步驟並未描述於細節中,以避免造成本發明不必要之限制。本發明的較佳實施例會詳細描述如下,然而除了這些詳細描述之外,本發明還可以廣泛地施行在其他的實施例中,且本發明的範圍不受限定,其以之後的專利範圍為準。
本發明之切割網路封包之卸載方法及其裝置係利用在進行網路封包切割時,不需要網路封包之標頭內之部分欄位內之資訊之特性,以利用該等欄位記載所需的網路封包切割卸載參數。據此,由於網路封包切割卸載參數係記載於網路封包之既定格式內,故不需改變網路封包長度或是傳送描述符之架構即能達成切割網路封包之目的。
圖7顯示本發明之一實施例之切割網路封包之卸載方法之流程圖。如圖7所示,在步驟701,獲取一網路封包,並進入步驟702。在步驟702,獲取記載於該網路封包內之網路封包切割卸載參數,並進入步驟703。在步驟703,根據該網路封包切割卸載參數切割該網路封包成複數個網路子封包。在本發明之部分實施例中,圖7之方法係應用於具備直接記憶體存取機制之網路介面裝置或是應用於匯流排主控式之網路介面裝置,則步驟701可為利用直接記憶體存取機制自一記憶體獲取該網路封包。在本發明之另一部分實施例中,圖7之方法係應用於不具備直接記憶體存取機制之網路介面裝置或是應用於匯流排受控式之網路介面裝置,則步驟701可為自一主機端接收該網路封包。
圖8顯示本發明之一實施例之一網路封包之標頭之示意圖。如圖8所示,該網路封包具有網路協定標頭以及傳輸控制協定標頭。其中,該網路協定標頭包含版本、網路協定標頭長度、服務種類、封包長度、身分、旗標、旗標偏移、使用期限、第四層協定長度、標頭檢查碼、來源位址、目標位址以及選項等欄位。該傳輸控制協定標頭包含來源埠、目標埠、序號、確認號碼、傳輸控制協定標頭長度、保留區間、旗標、視窗大小、檢查碼、緊急指標以及選項等欄位。
如前所述,在進行切割網路封包時,係將傳輸控制協定片段所包含之資料有效承載切割成複數個網路子封包,故原先記載封包總長度之網路協定標頭之長度欄位內之資料將不再有效。同理,由於傳輸控制協定標頭之檢查碼欄位係記載針對傳輸控制協定標頭及資料有效承載之檢查碼,故經過封包切割後,其記載之資料亦將不再有效。此外,若應用於可自行計算檢查碼之網路介面裝置時,該網路介面裝置會針對每一網路協定標頭重新計算其檢查碼,故該網路協定標頭之標頭檢查碼欄位可用以記載其他資料。據此,即可將對應該網路封包之網路封包切割卸載參數記載於該上述該等欄位中,而不會影響其餘標頭資料之正確性,亦不會影響網路封包傳輸之操作。
圖9顯示本發明之一實施例之一切割網路封包之卸載裝置之示意圖。如圖9所示,該卸載裝置900包含一封包剖析器902、一標頭緩衝控制器904、一網路封包切割卸載參數擷取器906和一切割模組908。該封包剖析器902係設定以自匯流排接收一欲發送之網路封包。該標頭緩衝控制器904係設定以擷取該網路封包之標頭,並連接至一緩衝器950以存取該標頭。該網路封包切割卸載參數擷取器906係設定以擷取記載於該網路封包內之網路封包切割卸載參數。該切割模組908係設定以根據該網路封包之標頭和該網路封包切割卸載參數切割該網路封包成複數個網路子封包。當完成網路封包切割後,該切割模組908即將該等網路子封包提供至計算檢查碼之裝置。
如前所述,該卸載裝置900並不需要欲發送之網路封包之標頭內之長度欄位、標頭檢查碼和檢查碼欄位所記載之資料。據此,該網路封包所需之網路封包切割卸載參數及記載於該網路封包之長度欄位、標頭檢查碼和檢查碼欄位等欄位,而該網路封包切割卸載參數擷取器906即自該等欄位擷取該網路封包所需之網路封包切割卸載參數。
綜上所述,本發明之切割網路封包之卸載方法及其裝置利用在進行網路封包切割時,不需要網路封包之標頭內之部分欄位內之資訊之特性,以利用該等欄位記載所需的網路封包切割卸載參數。據此,即不需改變現有的傳送描述符架構,故可以更有效達成傳輸控制協定切割卸載。同時,本發明之切割網路封包之卸載方法及其裝置更可適用於不具備直接記憶體存取機制之匯流排受控式之網路介面裝置。
本發明之技術內容及技術特點已揭示如上,然而熟悉本項技術之人士仍可能基於本發明之教示及揭示而作種種不背離本發明精神之替換及修飾。因此,本發明之保護範圍應不限於實施例所揭示者,而應包括各種不背離本發明之替換及修飾,並為以下之申請專利範圍所涵蓋。
701~703...步驟
900...卸載裝置
902...封包剖析器
904...標頭緩衝控制器
906...網路封包切割卸載參數擷取器
908...切割模組
950...緩衝器
圖1顯示傳輸控制協定切割卸載機制之示意圖;
圖2顯示一傳送描述符之示意圖;
圖3顯示一習知的傳輸控制協定切割卸載機制之示意圖;
圖4顯示另一習知的傳輸控制協定切割卸載機制之示意圖;
圖5顯示另一習知的傳輸控制協定切割卸載機制之示意圖;
圖6顯示另一習知的傳輸控制協定切割卸載機制之示意圖;
圖7顯示本發明之一實施例之切割網路封包之卸載方法之流程圖;
圖8顯示本發明之一實施例之一網路封包之標頭之示意圖;以及
圖9顯示本發明之一實施例之一切割網路封包之卸載裝置之示意圖。
701~703...步驟
Claims (12)
- 一種切割網路封包之卸載方法,包含下列步驟:獲取記載於一網路封包內之網路封包切割卸載參數;以及根據該網路封包切割卸載參數切割該網路封包成複數個網路子封包;其中該網路封包切割卸載參數係記載於該網路封包之檢查碼欄位中。
- 根據請求項1之卸載方法,其中該網路封包切割卸載參數係記載於該網路封包之標頭檢查碼欄位中。
- 根據請求項1之卸載方法,其中該網路封包切割卸載參數係記載於該網路封包之傳輸控制協定檢查碼欄位中。
- 根據請求項1之卸載方法,進一步包含下列步驟:利用直接記憶體存取機制自一記憶體獲取該網路封包。
- 根據請求項1之卸載方法,其係應用於匯流排主控式之網路介面裝置。
- 根據請求項1之卸載方法,進一步包含下列步驟:自一主機端接收該網路封包。
- 根據請求項1之卸載方法,其係應用於匯流排受控式之網路介面裝置。
- 一種切割網路封包之卸載裝置,包含:一封包剖析器,設定以接收一欲發送之網路封包;一標頭緩衝控制器,設定以擷取該網路封包之該標 頭,並連接至一緩衝器以存取該標頭;一網路封包切割卸載參數擷取器,設定以擷取記載於該網路封包內之網路封包切割卸載參數;以及一切割模組,設定以根據該網路封包之標頭和該網路封包切割卸載參數切割該網路封包成複數個網路子封包;其中該網路封包切割卸載參數擷取器係自該網路封包之檢查碼欄位擷取該網路封包切割卸載參數。
- 根據請求項8之卸載裝置,其中該網路封包切割卸載參數擷取器係自該網路封包之標頭檢查碼欄位擷取該網路封包切割卸載參數。
- 根據請求項8之卸載裝置,其中該網路封包切割卸載參數擷取器係自該網路封包之傳輸控制協定檢查碼欄位擷取該網路封包切割卸載參數。
- 根據請求項8之卸載裝置,其係應用於匯流排主控式之網路介面裝置。
- 根據請求項8之卸載裝置,其係應用於匯流排受控式之網路介面裝置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100109821A TWI459763B (zh) | 2011-03-23 | 2011-03-23 | 切割網路封包之卸載方法及其裝置 |
US13/228,025 US9247032B2 (en) | 2011-03-23 | 2011-09-08 | Method for offloading packet segmentations and device using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100109821A TWI459763B (zh) | 2011-03-23 | 2011-03-23 | 切割網路封包之卸載方法及其裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201240394A TW201240394A (en) | 2012-10-01 |
TWI459763B true TWI459763B (zh) | 2014-11-01 |
Family
ID=46877316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100109821A TWI459763B (zh) | 2011-03-23 | 2011-03-23 | 切割網路封包之卸載方法及其裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9247032B2 (zh) |
TW (1) | TWI459763B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9444914B2 (en) * | 2013-09-16 | 2016-09-13 | Annapurna Labs Ltd. | Configurable parser and a method for parsing information units |
CN109831395B (zh) * | 2019-02-27 | 2020-08-07 | 中国科学院软件研究所 | 一种嵌入式设备与主机间底层网络数据传输系统及方法 |
US20210149821A1 (en) * | 2020-12-23 | 2021-05-20 | Intel Corporation | Address translation technologies |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6473793B1 (en) * | 1994-06-08 | 2002-10-29 | Hughes Electronics Corporation | Method and apparatus for selectively allocating and enforcing bandwidth usage requirements on network users |
US5548587A (en) * | 1994-09-12 | 1996-08-20 | Efficient Networks, Inc. | Asynchronous transfer mode adapter for desktop applications |
US5987030A (en) * | 1996-09-27 | 1999-11-16 | Cisco Technology, Inc. | Transparent circuit emulation for packet switching network |
US5898713A (en) * | 1997-08-29 | 1999-04-27 | Cisco Technology, Inc. | IP checksum offload |
US5937169A (en) * | 1997-10-29 | 1999-08-10 | 3Com Corporation | Offload of TCP segmentation to a smart adapter |
US6768992B1 (en) * | 1999-05-17 | 2004-07-27 | Lynne G. Jolitz | Term addressable memory of an accelerator system and method |
CN1246012A (zh) * | 1999-07-14 | 2000-03-01 | 邮电部武汉邮电科学研究院 | 一种用于英特网与同步数字体系融合的适配方法 |
US7318089B1 (en) * | 1999-09-30 | 2008-01-08 | Intel Corporation | Method and apparatus for performing network-based control functions on an alert-enabled managed client |
US7062595B2 (en) * | 2001-04-24 | 2006-06-13 | Broadcom Corporation | Integrated gigabit ethernet PCI-X controller |
US6721806B2 (en) * | 2002-09-05 | 2004-04-13 | International Business Machines Corporation | Remote direct memory access enabled network interface controller switchover and switchback support |
US7283522B2 (en) * | 2002-09-27 | 2007-10-16 | Sun Microsystems, Inc. | Method and apparatus for offloading message segmentation to a network interface card |
KR100782807B1 (ko) * | 2003-02-11 | 2007-12-06 | 삼성전자주식회사 | 첵섬 기입 방법 및 그에 따른 첵섬 확인 장치 |
US7864806B2 (en) * | 2004-01-06 | 2011-01-04 | Broadcom Corp. | Method and system for transmission control packet (TCP) segmentation offload |
US7430220B2 (en) | 2005-07-29 | 2008-09-30 | International Business Machines Corporation | System load based dynamic segmentation for network interface cards |
US20080056287A1 (en) * | 2006-08-30 | 2008-03-06 | Mellanox Technologies Ltd. | Communication between an infiniband fabric and a fibre channel network |
GB0621774D0 (en) * | 2006-11-01 | 2006-12-13 | Level 5 Networks Inc | Driver level segmentation |
US8370717B1 (en) * | 2008-04-08 | 2013-02-05 | Marvell International Ltd. | Method and apparatus for flexible buffers in an XOR engine |
US7944946B2 (en) * | 2008-06-09 | 2011-05-17 | Fortinet, Inc. | Virtual memory protocol segmentation offloading |
-
2011
- 2011-03-23 TW TW100109821A patent/TWI459763B/zh not_active IP Right Cessation
- 2011-09-08 US US13/228,025 patent/US9247032B2/en active Active - Reinstated
Also Published As
Publication number | Publication date |
---|---|
TW201240394A (en) | 2012-10-01 |
US20120243540A1 (en) | 2012-09-27 |
US9247032B2 (en) | 2016-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7561573B2 (en) | Network adaptor, communication system and communication method | |
US7356039B1 (en) | Method and apparatus for describing multiple packets to hardware | |
US7142540B2 (en) | Method and apparatus for zero-copy receive buffer management | |
US7260631B1 (en) | System and method for receiving iSCSI protocol data units | |
US8311059B2 (en) | Receive coalescing and automatic acknowledge in network interface controller | |
JP2018185814A5 (zh) | ||
US8935453B2 (en) | Completion combining to improve effective link bandwidth by disposing at end of two-end link a matching engine for outstanding non-posted transactions | |
EP1868093A1 (en) | Method and system for a user space TCP offload engine (TOE) | |
US6804804B2 (en) | Calculation and transmission of error check codes | |
US20110145469A1 (en) | Apparatus for processing peripheral component interconnect express protocol | |
US9866639B2 (en) | Communication apparatus, information processor, communication method, and computer-readable storage medium | |
CN113422707B (zh) | 一种带内网络遥测方法及设备 | |
CN112953829B (zh) | 网络设备中的灵活解析器 | |
US20080123641A1 (en) | Image forming apparatus, and control method and interface apparatus thereof | |
TWI459763B (zh) | 切割網路封包之卸載方法及其裝置 | |
JP2007274056A (ja) | データグラム再組立装置 | |
US8111696B2 (en) | Method to improve the performance of a computer network | |
US9871666B2 (en) | Intermediate unicast network and method for multicast data networks | |
JP2009284119A (ja) | フィールドバス通信システム及びデータ管理装置 | |
US20140064300A1 (en) | Data transfer apparatus, data transfer method, and computer-readable recording medium storing data transfer program | |
TWI689820B (zh) | Usb傳輸系統、usb裝置與支援usb傳輸的主機 | |
US20070165661A1 (en) | Information-processing system, reception device, and program | |
US20110219194A1 (en) | Data relaying apparatus and method for relaying data between data | |
US12238001B1 (en) | Network device configured to process packets with trailers | |
JP2012049883A (ja) | 通信装置およびパケット処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |