[go: up one dir, main page]

TWI459763B - 切割網路封包之卸載方法及其裝置 - Google Patents

切割網路封包之卸載方法及其裝置 Download PDF

Info

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
Application number
TW100109821A
Other languages
English (en)
Other versions
TW201240394A (en
Inventor
Kuo Cheng Lu
Original Assignee
Mediatek Inc
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 Mediatek Inc filed Critical Mediatek Inc
Priority to TW100109821A priority Critical patent/TWI459763B/zh
Priority to US13/228,025 priority patent/US9247032B2/en
Publication of TW201240394A publication Critical patent/TW201240394A/zh
Application granted granted Critical
Publication of TWI459763B publication Critical patent/TWI459763B/zh

Links

Classifications

    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP 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. 一種切割網路封包之卸載方法,包含下列步驟:獲取記載於一網路封包內之網路封包切割卸載參數;以及根據該網路封包切割卸載參數切割該網路封包成複數個網路子封包;其中該網路封包切割卸載參數係記載於該網路封包之檢查碼欄位中。
  2. 根據請求項1之卸載方法,其中該網路封包切割卸載參數係記載於該網路封包之標頭檢查碼欄位中。
  3. 根據請求項1之卸載方法,其中該網路封包切割卸載參數係記載於該網路封包之傳輸控制協定檢查碼欄位中。
  4. 根據請求項1之卸載方法,進一步包含下列步驟:利用直接記憶體存取機制自一記憶體獲取該網路封包。
  5. 根據請求項1之卸載方法,其係應用於匯流排主控式之網路介面裝置。
  6. 根據請求項1之卸載方法,進一步包含下列步驟:自一主機端接收該網路封包。
  7. 根據請求項1之卸載方法,其係應用於匯流排受控式之網路介面裝置。
  8. 一種切割網路封包之卸載裝置,包含:一封包剖析器,設定以接收一欲發送之網路封包;一標頭緩衝控制器,設定以擷取該網路封包之該標 頭,並連接至一緩衝器以存取該標頭;一網路封包切割卸載參數擷取器,設定以擷取記載於該網路封包內之網路封包切割卸載參數;以及一切割模組,設定以根據該網路封包之標頭和該網路封包切割卸載參數切割該網路封包成複數個網路子封包;其中該網路封包切割卸載參數擷取器係自該網路封包之檢查碼欄位擷取該網路封包切割卸載參數。
  9. 根據請求項8之卸載裝置,其中該網路封包切割卸載參數擷取器係自該網路封包之標頭檢查碼欄位擷取該網路封包切割卸載參數。
  10. 根據請求項8之卸載裝置,其中該網路封包切割卸載參數擷取器係自該網路封包之傳輸控制協定檢查碼欄位擷取該網路封包切割卸載參數。
  11. 根據請求項8之卸載裝置,其係應用於匯流排主控式之網路介面裝置。
  12. 根據請求項8之卸載裝置,其係應用於匯流排受控式之網路介面裝置。
TW100109821A 2011-03-23 2011-03-23 切割網路封包之卸載方法及其裝置 TWI459763B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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