TWI625953B - 用於在分段操作期間的網路封包調步之技術 - Google Patents

用於在分段操作期間的網路封包調步之技術 Download PDF

Info

Publication number
TWI625953B
TWI625953B TW105103297A TW105103297A TWI625953B TW I625953 B TWI625953 B TW I625953B TW 105103297 A TW105103297 A TW 105103297A TW 105103297 A TW105103297 A TW 105103297A TW I625953 B TWI625953 B TW I625953B
Authority
TW
Taiwan
Prior art keywords
packet
network
computing device
payload
pacing interval
Prior art date
Application number
TW105103297A
Other languages
English (en)
Other versions
TW201635764A (zh
Inventor
傑西C 布朗德保
史考特P 杜柏
派翠克 康諾
大衛E 柯亨
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 英特爾公司
Publication of TW201635764A publication Critical patent/TW201635764A/zh
Application granted granted Critical
Publication of TWI625953B publication Critical patent/TWI625953B/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
    • 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/22Traffic shaping
    • 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/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays

Landscapes

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

Abstract

用於調步藉由一計算裝置至一遠端計算裝置的網路封包之傳輸的技術包括響應於酬載的大小大於一最大可允許酬載大小,判定進行一分段卸載操作以分段一網路封包的酬載成為複數個網路封包分段。計算裝置附加地判定一封包調步間隔且以基於封包調步間隔的一傳輸速率來傳輸複數個網路封包分段至遠端計算裝置。

Description

用於在分段操作期間的網路封包調步之技術
一種用於在分段操作期間的網路封包調步之技術。
發明背景
現代計算裝置已經成為個人、企業和社交用途之普遍工具。因此,許多現代計算裝置能夠連接到各種資料網路,包括網際網路和企業內部網路,以透過此等網路在各種速度速率下檢索和發送/接收資料通訊。為了促進計算裝置之間的通信,網路通常包括一個或多個網路裝置(例如,網路交換機、網路路由器、伺服器,其他計算及/或儲存計算裝置等等),以從一來源計算裝置路由通訊(亦即,網路資料封包)到目標計算裝置。當網路封包從來源計算裝置發送,根據其網路流量由網路裝置處理,並且由目標計算裝置接收,網路資料封包可以在以突發(bursts)中以高於該等網路裝置及/或目標計算裝置各者可支援的速率被傳輸。此等的網路的流量脈衝串可能會在跨越網路之不同的點導致擁塞(亦即,網路裝置、目標計算裝置等等),這可能導致由於例如網路封包佇列延遲、網路封包遺失以及降低流通量,而 降低總體網路效率。
各種方法已被引入來減少歸因於突發網路流量的壅塞,包括封包調步(pacing)。封包調步是一種技術,在其中網路封包的傳輸被均勻地間隔在對應於往返時間(RTT)的持續時間的技術。一些封包配速方法涉及了來源計算裝置以由該來源計算裝置所定義的速率來發送網路封包,因而擴展了網路封包的傳輸,相對於在一個單一的突發(burst)中發送者。為了判定速率,網路堆疊經常監控端至端延遲、頻寬與速率損耗,其可以由調整封包大小來進行補償。然而,有些卸載操作,如分段操作卸載至硬體以控制流通量(即,每一傳輸之資料的發送量),當傳輸封包於線路上時,一般不會有一種構件,此構件併入來自該堆疊的此等資訊。如此,前述補償可能在經歷此等操作時會遺失。
根據本發明的一實施例,本發明係特地提出一種用以調步卸載網路封包分段之傳輸的計算裝置,該計算裝置包含:一封包調步間隔判定模組,其用以判定一封包調步間隔;一傳輸分段卸載模組,其用以將酬載分段成為複數個網路封包分段;以及一網路通訊模組,其用以判定該封包調步間隔是否已經於該網路通訊模組處被接收,且其用以回應於該封包調步間隔於該網路通訊模組處被接收的一判定,以基於該封包調步間隔之一傳輸速率來傳輸該等複數個網路封包分段至遠端計算裝置。
100‧‧‧系統
102‧‧‧計算裝置
104‧‧‧網路
106‧‧‧網路裝置
108‧‧‧遠端計算裝置
110‧‧‧處理器
112‧‧‧輸入/輸出(I/O)子系統
114‧‧‧記憶體
116‧‧‧資料儲存裝置
118‧‧‧通訊電路
120‧‧‧網路介面卡(NIC)
122‧‧‧周邊裝置
200‧‧‧環境
202‧‧‧網路資料
210‧‧‧網路通訊模組
220‧‧‧資料準備模組
230‧‧‧封包調步間隔判定模組
240‧‧‧傳輸分段卸載模組
300‧‧‧方法
302‧‧‧方塊
304‧‧‧方塊
306‧‧‧方塊
308‧‧‧方塊
310‧‧‧方塊
312‧‧‧方塊
314‧‧‧方塊
316‧‧‧方塊
318‧‧‧方塊
320‧‧‧方塊
322‧‧‧方塊
324‧‧‧方塊
400‧‧‧方法
402‧‧‧方塊
404‧‧‧方塊
406‧‧‧方塊
408‧‧‧方塊
410‧‧‧方塊
412‧‧‧方塊
414‧‧‧方塊
500‧‧‧流程
502‧‧‧第一網路封包
504‧‧‧第一標頭
506‧‧‧第一酬載
508‧‧‧佇列
510‧‧‧封包間間隙
512‧‧‧第二網路封包
514‧‧‧第二標頭
516‧‧‧第二酬載
518‧‧‧佇列
520‧‧‧封包間間隙
522‧‧‧封包序列
524‧‧‧封包間間隙
602‧‧‧第一調步間隔
604‧‧‧第二調步間隔
606‧‧‧封包間間隙
608‧‧‧封包間間隙
610‧‧‧封包序列
在此描述的概念以範例的方式例示說明,且在附加圖式中並非以限制的方式說明。為了簡化與清楚起見,圖式中所例示說明的元件不必要以相應比例繪出。若考量為恰當時,在圖式之中元件標號被重複用來指示對應或類似的元件。
圖1為一簡化方塊圖,其為用於調步硬體卸載分段網路封包傳輸之一系統的至少一實施例;圖2為一簡化方塊圖,其為圖1之系統的一計算裝置的至少一實施例;圖3為一簡化流程圖,其為用於儲存一封包調步間隔至用於在圖1中之系統傳輸一網路封包的一種方法的至少一實施例,其可由圖2之一計算裝置執行;圖4為一簡化流程圖,其為用於基於在圖1中之系統中的一調步間隔來發送網路封包的一方法之至少一實施例,其可由圖2之一計算裝置執行;圖5為一簡化方塊圖,其為兩個分段酬載形成網路封包之一封包序列(packet train)的一流程的至少一實施例,以用於在圖1中之系統中之傳輸,該系統具有由目的地排序之分段封包的突發;以及圖6為一簡化方塊圖,其為兩個分段酬載形成網路封包之一封包序列的一流程的至少一實施例,以用於在圖1中之系統中之傳輸,該系統具有由替代目的地排序之交錯分段封包的突發。
較佳實施例之詳細說明
雖然本揭露的概念易於進行各種修改和替代形式,其具體實施例已經以範例的方式圖式中顯示,且將在此詳細描述。然而,應該理解的是,沒有意圖限制本揭露的概念於所揭露的特定形式,而是相反的,其意圖是要覆蓋與本揭露與附加申請專利範圍一致的所有的修改、等效物和替代品。
在說明書中提到「一個實施例」、「一實施例」、「一個例示性實施例」等指示所描述的實施例可以包括特定特徵、結構或特性,但是每個實施例可以或可以不必包括該特定特徵、結構或特性。此外,此等片語不一定指的是同一實施例。進一步地,當一特定特徵、結構或特性連同一實施例描述,其係被提交為不管有沒有沒有明確描述,此領域技術人員中的知識範圍內可連同其他實施例影響此等特徵、結構或特性。此外,應當理解被包括在以下形式中「A、B與C其中至少一者」的項目可以代表A;B;C;A與B、A與C;B與C;或A、B與C。類似地,被包括在以下形式中「A、B或C其中至少一者」的項目可以代表A;B;C;A與B;A與C;B與C;或A、B與C。
揭露的實施例可以實施為,在某些情況下,在硬體、韌體、軟體或它們的任意組合。所揭露的實施例也可以實施為指令,該等指令係被攜帶或儲存於一個或多個暫態或非暫態的機器可讀(例如,電腦可讀)儲存媒體,其可以被讀取並由一個或多個處理器執行。一種機器可讀儲 存媒體可以實施為任何儲存裝置、機構,或以由機器可讀取格式儲存或傳送的其他實體結構(例如,易失性或非易失性記憶體、媒體盤,或其他媒體裝置)。
在圖式中,一些結構或方法特徵將會以特定的安排及/或順序顯示。然而,應當理解,這樣的具體安排及/或排序可以為不必要的。相反的,在一些實施方案中,此等特徵可以不同於例示性圖式中所顯示者的方式及/或順序配置。此外,將結構或方法特徵併入一個特定的圖式中不意味著暗示此等特徵在所有實施例中是必需的,且在一些實施例中,可能不包括或可與其它特徵相結合。
現在參照圖1,在一例示性實施例中,用來將網路通訊之傳輸調步的一系統100包括一計算裝置102與透過一網路104經由一或多個網路裝置106通訊的一遠端計算裝置108。該網路裝置106促進在該計算裝置102與該遠端計算裝置108之間透過該網路104之網路通訊。例如,遠端計算裝置108可藉由傳送包含該請求的一網路封包以請求來自該計算裝置102的資料。當然,應當理解的是該請求可經由多於一個網路封包來傳送。回應於該請求,該計算裝置102可試圖經由一或多個網路封包跨越該網路104來發送資料(例如,一酬載)至該遠端計算裝置108。在一些實施例中計算裝置102可產生一網路封包,其在該回應中包括所有的資料,此可以導致該網路封包具有比由該遠端計算裝置108所支援之一最大分段尺寸(例如,最大傳輸分段尺寸)較大的酬載。在此等實施例中,該計算裝置102可分段較大酬載成為 符合最大分段尺寸需求的分段。
典型地,計算裝置102的一處理器將該酬載分段;然而,分段一較大酬載可為處理器密集型(亦即,增加處理器負荷)其可能導致網路流另處理及/或其他計算裝置102管理程序的效率低落。據此,計算裝置102的處理器可以使得卸載該分段(亦即,一傳輸分段卸載(TSO)至諸如計算裝置102之一網路介面控制器(NIC)的硬體)至硬體。做為硬體卸載分段的結果,原始網路封包的原始酬載可能會被分解成分段(亦即,具較小酬載的被分段網路封包)而不施壓於處理器。然而,此等硬體卸載可能導致網路封包被突發地發送至遠端計算裝置108(亦即,在傳輸中有一系列具有最小封包間延遲的網路封包)。此等突發性網路流量對於遠端計算裝置108在接收端至處理是有困難的,且可能導致超限運轉、降低頻寬流通量及/或增加網路裝置106及/或該遠端計算裝置108的一或多者之處理器負荷。
不像傳統的方法,其中一網路堆疊使用封包封裝化(encapsltion)進行調步,NIC進行分段且將分段的傳輸基於一傳輸速率間隔而調用。在使用時,如以下進一步的詳細說明所描述,傳輸速率間隔可被引入TSO以在每個流量的基礎上控制網路封包傳輸的速率。在一些實施例中,傳輸速率間隔可以傳送至進行該TSO的該硬體作為資料將要被分段的一指令。在一些實施例中,傳輸速率間隔可包含在分段網路封包之間的一最小時間間隙,或者最大傳輸速率的一百分比,其指示進行TSO的硬體該硬體的針對該特 定組分段封包的傳輸速率是受限的。此等調步可能會導致至不同目的地的網路封包被交錯混合呈現在一封包序列(train)中,由於在傳輸網路封包間的較大的封包間間隙,此將允許諸如網路裝置106及/或遠端計算裝置一計算裝置有更多的時間來在接收到下一個網路封包前(亦即,減少壅塞)處理一接收網路封包。
網路104可實施為任何類型的有線或無線通訊網路,包括蜂巢式網路(例如用於行動通訊的全球系統(GSM))、數位用戶線(DSL)網路、電纜網路、電話網路、區域或廣域網路、全球網路(例如:網際網路)或者其等的任何組合。據此,各網路裝置106可實施為可以促進在計算裝置102與遠端計算裝置108透過網路104以及之有線及/或無線通訊的任何類型之計算裝置。
例如,網路裝置106可實施為一虛擬及/或實體網路裝置,諸如但不限制於一存取點、一路由器、一伺服器、一網路集線器、一開關、一計算裝置、一儲存裝置,及/或可以進行在此描述之功能之任何計算裝置。應當理解的是網路裝置106可包括類清晰似於以下所描述所例示計算裝置102的組件,其在此未示出是為了維持本揭露的清楚性,而可理解以下提供關於計算裝置102類似組件的描述施加了相等的權重予網路裝置106之類似的組件。
遠端計算裝置108可實施為可以進行在此描述之功能的任何類型的計算或電腦裝置,包括但不限定於,一電腦、一智慧型手機、一平板電腦、一膝上型電腦、一筆 記型電腦、一行動計算裝置、一穿戴計算裝置、一多處理器系統、一伺服器(例如,單獨、機架安裝、刀鋒...等等),一網路設備(network appliance)(例如,實體或虛擬的)、一網狀設備(web appliance)、一分散式計算系統、一基於處理器系統及/或一消費性電子裝置。在使用時,遠端計算裝置108係經組態以與計算裝置102透過網路104經由一或多個網路裝置106通訊。應當理解的是遠端計算裝置108可包括以下所描述類似於例示於計算裝置102的組件,其在此未示出是為了維持本揭露的清楚性,而可理解以下提供關於計算裝置102類似組件的描述施加了相等的權重予遠端計算裝置108之類似的組件。
計算裝置102可實施為能夠進行載此描述之功能的任何類型的計算或電腦裝置,包括但不限定於,一電腦、一桌上型電腦、一工作站、一膝上型電腦、一筆記型電腦、一平板電腦、一行動計算裝置、一穿戴計算裝置、一網路設備(network appliance)、一網狀設備(web appliance)、一分散式計算系統、一基於處理器系統及/或一消費性電子裝置。如圖1中所示,一例示性計算裝置102包括一處理器110、一輸入/輸出(I/O)子系統112、一記憶體114、一資料儲存裝置116、通訊電路118與周邊裝置122。當然,在其他實施例中,計算裝置102可包括其他附加組件,諸如於桌上型電腦中常見者(例如各種輸入/輸出裝置)。此外,在一些實施例中,一或多個例示組件可併入或者形成另一組件的一部分。例如,在一些實施例中,記憶體114或者其一 部分可併入一或多個處理器110中。
處理器110可實施為可以進行在此描述功能之任何類型的處理器。處理器110可實施為一單一或多核心處理器、數位訊號處理器、微控制器或者其他處理器或者處理/控制電路。記憶體114可實施為能夠進行載此描述功能之任何類型的依電性或非依電性記憶體。在操作中,記憶體114可儲存在計算裝置102運作期間使用的各種資料與軟體,諸如作業系統、應用程式、程式、公用程式、與驅動器。記憶體114經由I/O子系統112通訊地耦合至處理器110,其可實施為用以促進與處理器110、記憶體114及計算裝置102之其他組件的輸入/輸出操作之電路及/或組件。例如,I/O子系統112可實施為,或者否則可包括,記憶體控制器集線器、輸入/輸出控制集線器、積體感測器集線器、韌體裝置、通訊鏈路(例如,點對點鏈路、匯流排鏈路、電線、電纜、光導、印刷電路板跡線等等)及/或用以促進輸入/輸出操作的其他組件與子系統。在一些實施例中,I/O子系統112可形成一晶載系統(SoC)的一部分且可連同處理器110、記憶體114及計算裝置102的其他組件併入一單一積體電路晶片。
資料儲存裝置116可實施為任何類型的裝置或者組配用於短期或長期資料儲存的裝置,諸如,例如,記憶體裝置與電路、記憶卡、硬碟驅動器、固態硬碟驅動器或其他資料儲存裝置。在一些實施例中,資料儲存裝置116可使用來儲存一或多個受信賴執行環境的內容。當由資料儲 存裝置116儲存時,受信賴執行環境的內容可被加密以避免非經授權軟體的存取。
通訊電路118可實施為能夠致能在計算裝置102與遠端計算裝置108之間透過網路104的通訊之任何類型的通訊電路、裝置或者其等之集合。通訊電路118可組配以使用任何一或多個通訊技術(例如,有線或無線通訊)與相關通訊協定(例如,乙太網、藍芽®、Wi-Fi®、WiMAX等等)以影響此等通訊。所例示之計算裝置102附加地包括一網路介面卡(NIC)120。該NIC120可連接該計算裝置102至一網路裝置106。該NIC120可實施為一或多個可由網路裝置106所使用之附加板、子卡(daughtercards)、網路介面卡、控制器晶片、晶片組或其他裝置。例如,NIC120可實施為透過一擴充匯流排,諸如快速PCI,耦接至該I/O子系統112的一擴充卡。NIC120可組配以進行硬體卸載操作,諸如分段卸載、核對和卸載及/或其他硬體卸載操作。例如,在一實施例中,其中NIC120支援分段卸載,一網路封包的酬載可被判定為例如較大於最大分段尺寸閥值。如此一來,NIC120可接收酬載且將酬載分段為具有較小酬載的多個分段網路封包。作為分段被卸載至NIC120的結果,分段可導致通訊電路118增加頻寬流通量且降低處理器110的負荷。
一或多個周邊裝置122可包括在一計算裝置中常見的任何類型的周邊裝置,諸如例如一硬體鍵盤、輸入/輸出裝置、周邊通訊裝置及/或類似者。附加地或可替代地,周邊裝置122可包括一或多個埠,諸如一USB埠,例如用於 連接外部周邊裝置至計算裝置102。
現在參照圖2,計算裝置102可於作業期間建立一環境200。在例示環境200中,計算裝置102包括一網路通訊模組210、一資料準備模組220、一封包調步間隔判定模組230與一傳輸分段卸載模組240。例示環境200附加地包括一網路資料202,其可包括網路相關資訊。網路資料202可由環境200的一或多個模組存取。在一些實施例中,網路資料202可包括網路流量資訊(一來源埠、一目的地埠等等)、目的地位址、往返時間(RTT)及/或用於網路封包定址、路由與交通量控制之其他網路資訊。
環境200的各種模組可實施為硬體、韌體、軟體或者其等之組合。例如,環境200的各種模組、邏輯以及其他組件可形成或者由處理器110或計算裝置102的其他硬體組件所建立。如此一來,在一些實施例中,環境200的任何一或多個模組可實施為一電路或者電子裝置的集合(例如,一資料準備電路、一網路封包調步速率控制電路、一傳輸分段卸載電路…等等)。附加地或可替代地,在一些實施例中,例示模組的一或多者可形成另一模組及/或例示模組之一或多者及/或可以實施為獨立操作或獨立模組之子模組的一部分。
網路通訊模組210係經組配以促進在計算裝置102與網路裝置106之間的網路通訊。換句話說,網路通訊模組210係經組配以接收且處理網路由計算裝置102所接收的封包,且準備並傳輸來自計算裝置102的網路封包。據此, 網路通訊模組210的功能之至少一部分可由通訊電路118所進行,且更精確地為NIC120。此外,網路通訊模組210可藉由剖析網路封包標頭以判定網路流量資訊(一來源埠、一目的地埠等等)來處理所接收網路封包,及/或藉由儲存網路流量資訊入該網路封包的標頭內來準備用於傳輸之一網路封包。
資料準備模組220係經組配以準備待被透過網路104基於用於資料傳輸之一網路通訊協定傳輸的資料。為了這樣做,資料準備模組220可管理計算裝置102的位址、路由及交通控制功能。據此,資料準備模組220可基於用於傳輸的各種網路通訊協定來實施,其可具有不同的分層結構。例如,在使用一傳輸控制通訊協定/網際網路通訊協定(TCP/IP)之用於資料傳輸的通訊協定的一實施例中,TCP/IP網路堆疊包括許多層,各者辨別與網路封包準備與傳輸相關連的一特定工作。在一些實施例中,資料準備模組220可在TCP/IP網路堆疊之一或多層處管理準備資料。例如,資料準備模組220可藉由判定用於網路封包之傳輸的各種網路資訊準備資料,諸如目的地位址、往返時間(RTT)、以及相關連於網路104及/或網路裝置106的其他類型之資訊的其他任何數量,且將此等網路資訊併入用於包括該資料(亦即,酬載)之一網路封包的標頭。
資料準備模組220可進一步組配以判定是否待一酬載太大以被做為第二封包傳輸。換句話說,資料準備模組220可判定是否需要在酬載上進行分段操作。如以下將進 一步描述者,資料準備模組220可提供指令或者描述符至傳輸分段卸載模組240。描述符可指示如何將大於TCP接收視窗大小的酬載分散成為分段網路封包流,各者具有較小於TCP接收視窗大小之酬載。換句話說,描述符可包括如何將該酬載分段。在一些實施例中,描述符可附加地或替代地包括如何傳輸酬載。在一些實施例中描述符可放置於網路封包的帶外(例如一描述符)或者元資料(例如一標頭)區域中。
封包調步間隔判定模組230係經組配以判定一封包調步間隔。此外,在一些實施例中,封包調步間隔判定模組230可進一步組配以提供封包調步間隔至資料準備模組220以待被併入以上所描述的描述符。在一些實施例中,封包調步間隔判定模組230可基於資料及/或網路104的各種因素來判定封包調步間隔,諸如大小、目的地、網路流量(亦即,在一時間槽中一序列的封包至一特定目的地)、傳輸通訊協定、往返時間等等。例如各種網路104因素可使用鏈路層探索通訊協定(LLDP)佈局探索資訊、層2流量控制事件、5元組資料(5-tuple data)、及/或明顯壅塞通知(ECN)活動。在一些實施例中,封包調步間隔判定模組230可實施在TCP堆疊、一網路控制器驅動器或者其等之一組合中。
傳輸分段卸載模組240係經組配以進行一卸載分段操作。在一些實施例中,傳輸分段卸載模組240可基於由資料準備模組220所提供之識別符,在由該資料準備模組 220所準備的酬載上進行卸載分段操作。如以上所描述者,一酬載對於要接收該酬載的一計算裝置之傳輸可能是太大的。判定一酬載對於傳輸是否太大可基於接收該酬載的計算裝置之一些軟體及/或硬體限制。在判定一酬載超過大小閥值後,酬載可在一分段操作中被分段成為不會超過大小閥值的分段。
例如,在一TCP通信期中,請求計算裝置(例如遠端計算裝置108)可以通知一主機計算裝置(例如,計算裝置102)一TCP接收視窗大小,其對應至遠端計算裝置108可在一TCP通信期期間內接收之資料最大量。當然,由於在處理所接收分段網路封包同時,對於遠端計算裝置108之各種緩衝器可取得的空間之數量持續地改變,遠端計算裝置108可支援之最大可允許酬載大小可以如同在緩衝器中可得空間地改變。在此等實施例中,遠端計算裝置108可通知計算裝置102一TCP接收視窗大小,其係小於具有較大酬載的網路封包。據此,傳輸分段卸載模組240可基於最大可允許酬載大小,分隔對於一請求計算裝置之接收而言是太大的一酬載(例如,資料)成為具有較小酬載的多個分段。
典型地,分段操作係直接地由處理器110或者自處理器110卸載至NIC120(亦即,一硬體分段卸載)。據此,如在此描述之傳輸分段卸載模組240的功能之至少一部分可由NIC120及/或其驅動器執行或者併入NIC120及/或其驅動器。在一些實施例中,NIC120可直接地存取記憶體114而不需要處理器110介入,通成被昌為直接記憶體存取 (DMA)。據此,傳輸分段卸載模組240的功能之至少一部分可使用直接記憶體存取進行。
如以上所描述者,傳輸分段卸載模組240當進行分段及/或傳送分段封包時,可取決於由資料準備模組220所提供的描述符。亦如以上所描述者,描述符可包括封包調步間隔,此為傳輸分段卸載模組240可使用來判定一速率者,分段網路封包於此速率傳輸。典型地,NIC120以一固定最大速度傳輸分段網路封包(亦即,將交通量置於線路上),此速率為一網路封包佇列或者交通分類將允許者。在一些實施例中,NIC120可不受轉移速率限制所制約。換句話說,分段網路封包可以最小封包間間隙來傳輸,此通常會導致被指定以由一特定計算裝置所接收之網路封包中的傳輸突發。
傳輸突發可能是封包排程器在被釋放至亦以最大速度下傳輸的另一佇列之前,被綁定至一單一佇列來在最大速度下針對該單一佇列(亦即,在一突發中)傳輸各封包的結果。作為一結果,突發傳輸可能導致在接收計算裝置處的壅塞,導致網路效能低落,諸如丟棄封包、降低流通量等等。然而,若描述符包括封包調步間隔,NIC120可使用來自指示符的封包調步間隔以根據封包調步間隔來將封包之傳輸調步。據此,網路封包可以以在每個流量控制的步調下傳輸。在一些實施例中,這可以達成以作為傳輸調步之結果使得封包排程器之釋放以移動於佇列之間,來允許封包調步間隔的達成,其可導致至不同目的地的網 路封包或者網路序列的一交錯混合。
現在參照圖3,在使用時,計算裝置102可執行用於儲存一封包調步間隔入用於在圖1之系統100中傳輸之一網路封包的一方法300。在一些實施例中,由計算裝置102執行方法300的至少部分可由處理器110經由直接存取記憶體114及/或藉由計算裝置102的NIC120之一驅動器來執行。所例示方法300於方塊302處開始,其中計算裝置102接收來自諸如圖1之遠端計算裝置108的一遠端計算裝置的針對資料之一請求。於方塊304處,計算裝置102準備用於傳輸至遠端計算裝置108的資料。在一些實施例中,處理器110可藉由判定針對該資料的資訊(例如,目的地位址、目的地埠、網路流量等等)來準備用於傳輸的資料,封包化該資料作為一網路封包的酬載,以及準備用於該網路封包具有元資料的一標頭,元資料包括經判定資訊。
於方塊306處,該計算裝置102判定該網路封包是否需要被分段。如果不需要的話方法300進行至方塊308,其中該計算裝置102提供網路封包與描述符至計算裝置102的NIC120。若網路封包需要分段,方法300進行至方塊310,其中計算裝置102擷取對應於針對判定一封包調步間隔的網路封包之網路資訊。在一些實施例中,在方塊312處,計算裝置102可擷取對應至網路封包之目的地的目的地資訊。附加地或可替代地,在一些實施例中,在方塊314處,計算裝置102可擷取對應至針對該網路封包之目的地的往返時間資訊。在一些實施例中,往返時間可從一TCP時戳擷取, 其可被一TCP標頭攜帶於其中。應當理解的是,在一些實施例中,往返時間可藉由計算裝置102使用各種習知之方法被計算或量測。
在方塊316處,計算裝置102基於在方塊310處所擷取的網路資訊來判定封包調步間隔。在一些實施例中,封包調步間隔可為分段網路封包之間的一最小時間間隙,或者是最大傳輸速率的一百分比,此百分比導致在分段網路封包之間的時間間隙且係大於直接使用最大傳輸速率來呈現之間隙。在一些實施例中,於方塊318處封包調步間隔將由計算裝置102基於在方塊312處擷取的目的地資訊來判定。附加地或可替代地,在一些實施例中,於方塊320計算裝置可基於在方塊314處擷取之往返時間資訊來判定封包調步間隔。
於方塊322處,計算裝置102儲存或者置放在方塊316處判定之封包調步間隔於網路封包的帶外或者元資料區域以作為指令或描述符。在一些實施例中,元資料區域可包含在該網路封包之標頭中的一欄位。應當進一步理解的是,指令可附加地包括其他網路資訊,諸如分段大小與其他傳輸資訊(例如,目的地IP位址、目的地埠等等)。於方塊324處,計算裝置102提供包括指令之網路封包至一網路控制器,諸如計算裝置102的NIC120。換句話說,計算裝置102的處理器110卸載分段操作至硬體(亦即,網路控制器)。
現在參照圖4,計算裝置102可執行用於在圖1之 系統100中基於調步間隔傳輸一封包的方法400。在一些實施例中,方法400的至少部分由一網路控制器所執行,諸如計算裝置102的NIC120。所例示方法400於方塊402處開始,其中NIC120接收用於分段的網路封包卸載。於方塊404處,NIC120判定網路封包是否包括封包調步間隔(亦即,調步資訊)。
若NIC120判定網路封包不包括封包調步間隔,方法400進行至方塊406。於方塊406處網路封包被NIC120分段成為多個封包且放置於一佇列中。在一些實施例中,分段的大小可基於由NIC120之一驅動器所提供之一最大酬載大小來判定,或者可基於當網路封包被卸載至NIC120時提供至NIC120的描述符其中一者(例如,來自NIC120驅動器)來判定。在方塊408處,NIC120基於一固定間隔傳輸分段網路封包至遠端計算裝置,該遠端計算裝置初始地請求該資料。作為一結果,分段網路封包可自突發中佇列以最小封包間間隙傳送,如圖5中所顯示與進一步描述細節者。
若NIC120判定網路封包包括封包調步間隔,方法400從方塊404進行至方塊410。於方塊410處,NIC120擷取封包調步間隔。如先前所描述者,封包調步間隔可被包括在指令或描述符中,以用於傳輸網路封包或者併入於其內(亦即,網路封包標頭)的網路控制器。據此,NIC120可從描述符其中一者或者從網路封包之標頭之內擷取封包調步間隔。於方塊412處,網路封包被NIC120分段成為多個封包且放置於一佇列中,其大小可基於當網路封包被卸載 至NIC120時提供至NIC120的描述符(例如,來自NIC120驅動器)其中一者來判定。於方塊414處,NIC120基於對應至封包調步間隔的一傳輸速率傳送該分段網路封包至初始地請求該資料的遠端計算裝置。作為一結果,分段網路封包可以一調步傳輸速率自該佇列傳送,如進一步於圖6中所顯示與描述者,其可允許封包排程器於佇列之間移動。
現在參照圖5,顯示一流程500的一簡化方塊圖。流程500包括兩個分段酬載,各者具有不同目的地,形成網路封包的一封包序列,其可在系統100中被傳輸而不需由計算裝置102的一網路控制器(例如,NIC120)執行之調步資訊。在所例示流程500中,一第一網路封包,即網路封包(1)被指定為一第一網路封包502,且第二網路封包,即網路封包(2)被指定為一第二網路封包512。第一與第二網路封包502、512各者包括一標頭與一酬載。第一網路封包標頭與酬載,即標頭(1)與酬載(1)分別被指定作為一第一標頭504與一第一酬載506。類似地,第二網路封包標頭與酬載,即標頭(2)與酬載(2)分別被指定作為二第二標頭514與二第二酬載516。第一與第二酬載506、516各者係顯示為一單一酬載,其在大小上是足夠大到需要被分段。在例示流程500中,第一與第二酬載506、516各者被NIC120基於一最大分段長度分段成為五個分段之分段酬載之佇列508、518,最大分段長度可於卸載請求期間以例如指令、或者描述符的形式被發送至NIC120。應當理解的是,當僅顯示一酬載目的地(亦即酬載(N)分段(n))的同時,各 酬載分段可為包括所顯示目的地酬載與恰當標頭之網路封包。
第一酬載506的佇列508之分段酬載各者包括一封包間間隙,其中一者係顯示為指定作為封包間間隙510,且第二酬載516的佇列518之該分段酬載各者包括一封包間間隙,其中一者係顯示為根據傳輸速率指定作為封包間間隙520。傳輸速率各者係基於最大傳輸速率所設定,通常基於每個佇列或者每個流量分類限制。如此,用於具有不同目的地之兩個網路封包502、512的傳輸速率可使用一單一速率被分組,此速率不能由網路堆疊來調整。換句話說,產生封包間間隙510之傳輸速率係等於產生封包間間隙520之傳輸速率。作為一結果,一封包序列522被生產,其包括由目的地以序列順序之佇列508、518的分段酬載。據此,一封包間間隙524係等於封包間間隙510、520且一封包間間隙526亦等於封包間間隙510、520。所導致之封包序列522之分段酬載的傳輸將會以最小封包間間隙來傳輸,此可導致網路效能低落,諸如丟棄封包及/或減低於接收計算裝置處的流通量(例如,網路裝置106及/或遠端計算裝置108)。
現在參照圖6,顯示流程600的一簡化方塊圖。流程600包括兩個分段酬載,各者具有不同目的地,形成網路封包的一封包序列,其可在系統100中以由計算裝置102的一網路控制器(例如,NIC120)執行之調步資訊被傳輸。所例示流程600包括圖5支網路封包502、512;然而,該等標頭504、514各者包括NIC120可使用來傳輸佇列508、518 之酬載分段的第一與第二調步間隔602、604。應當理解的是,在一些實施例中,第一與第二調步間隔602、604可以各網路封包502、514替代於被儲存或放置在標頭504、514之內,來以一補充集合或者傳輸描述符之卸載指令提供至NIC120。如以上所敘述者,第一與第二調步間隔602、604指示針對佇列508、518各者之各自分段酬載的傳輸之間的一最小時間或者封包內間隙。在一些實施例中醫與第二調步間隔602、604可附加地包括關於針對一目的地有多網路封包指令或佇列可以在初始化最小時間需求之前傳送。在此等實施例中,附加指令可藉由來自另一佇列的傳送以延遲一佇列的交通或者若沒有其他將傳輸佇列時暫停傳輸。
類似於圖5,第一酬載506的佇列508之各分段酬載包括一封包間間隙606且該第二酬載516的佇列518之各分段酬載包括一封包間間隙608。在佇列508、518的分段酬載如圖5當中一樣於圖6中為相同的同時,封包間間隙606係根據基於第一調步間隔602的一第一傳輸速率來判定,且封包間間隙608係根據基於第二調步間隔604的一第二傳輸速率來判定。據此,封包間間隙606、608的其中一者或兩者可大於圖5之封包間間隙510、520。換句話說,封包間間隙606、608可大於由於使用最大傳輸速率所造成之封包間間隙,最大傳輸速率典型地在一硬體分段卸載中由NIC120所使用。作為一結果,封包序列610被生產,其包括佇列508、518的分段酬載;然而,與圖5不同的是,封包序列610係由佇列508、518之交織分段酬載所構成。
雖然各分段酬載可以使用最大傳輸速率或接近最大傳輸速率的一傳輸速率來傳輸,導致一封包間間隙612可等效於封包間間隙510、520,針對佇列508、518之各酬載分段的封包間間隙係增加的。例如,在第一酬載506的第一與第二酬載分段之間的封包間隙614基於第一調步間隔602而超過封包間間隙606。類似地,在第二酬載516的第一與第二酬載分段之間的封包間隙616基於第二調步間隔604而超過封包間間隙608。由於較大封包間間隙614、616(亦即,相較於圖5的封包間間隙524、526)在網路序列610之網路封包的傳輸中,接收計算裝置(例如,網路裝置106及/或遠端計算裝置108)可能有附加的時間來處理所接收封包,且因此降低了由於壅塞所造成之網路效能低落的可能性。
範例
以下提供在此揭露技術的例示性範例。此技術的一實施例可包括以下所描述之範例的一者或多者,或者其等之任何組合。
範例1包括一種用以調步卸載網路封包分段之傳輸的計算裝置,該計算裝置包含:一封包調步間隔判定模組,其用以判定一封包調步間隔;一傳輸分段卸載模組,其用以將酬載分段成為複數個網路封包分段;以及一網路通訊模組,其用以判定該封包調步間隔是否已經於該網路通訊模組處被接收,且其用以回應於該封包調步間隔已於該網路通訊模組處接收的一判定,用基於該封包調步間隔 之一傳輸速率來傳輸該等複數個網路封包分段至遠端計算裝置。
範例2包括範例1之標的,且進一步包含一資料準備模組,其用以準備用於傳輸至一遠端計算裝置的一網路封包的一酬載,且用以判定該網路封包的該酬載之一大小是否大於一最大允許酬載大小,其中,判定該封包調步間隔包含回應於該酬載的大小係大於該最大允許酬載大小的一判定,來判定該封包調步間隔,以及其中,將該酬載分段成為複數個網路封包分段包含回應於該酬載的大小係大於該最大允許酬載大小的一判定,來將該酬載分段成為複數個網路封包分段。
範例3包括範例1與2之標的,且其中該封包調步間隔判定模組至少部分基於該酬載的一目的地來判定該封包調步間隔。
範例4包括範例1至3任一者之標的,且其中該封包調步間隔判定模組至少部分基於該酬載的一往返時間來判定該封包調步間隔。
範例5包括範例1至4任一者之標的,且其中該封包調步間隔判定模組至少部分基於該酬載的一網路流量來判定該封包調步間隔。
範例6包括範例1至5任一者之標的,且其中該封包調步間隔判定模組更進一步提供該封包調步間隔至該網路通訊模組以作為一描述符。
範例7包括範例1至6任一者之標的,且其中該封 包調步間隔判定模組更進一步放置該封包調步間隔於該網路封包的一標頭中。
範例8包括範例1至7任一者之標的,且其中該封包調步間隔判定模組更進一步放置該封包調步間隔於該網路封包的一帶外(out-of-band)區域中。
範例9包括範例1至8任一者之標的,且其中該網路通訊模組係用以回應於該封包調步間隔並未被接收,以基於一最大傳輸速率的一傳輸速率來傳輸該等複數個網路封包分段至該遠端裝置。
範例10包括範例1至9任一者之標的,且其中該資料準備模組係進一步用以提供網路封包分段大小資訊至該傳輸分段卸載模組,以及其中該傳輸分段卸載模組係基於該網路封包分段大小資訊來將該酬載分段成為該等複數個網路封包分段。
範例11包括範例1至10任一者之標的,且其中該網路通訊模組將來自一佇列的該等複數個網路封包分段傳輸至該遠端計算裝置。
範例12包括一種用以調步硬體卸載網路封包分段之傳輸的計算裝置,該計算裝置包含:一處理器,其用以準備用於傳輸至一遠端計算裝置的一網路封包的一酬載,且用以判定該網路封包的該酬載之一大小是否大於一最大允許酬載大小;一網路介面卡,其用以回應於該酬載的大小係大於該最大允許酬載大小的一判定,來將該酬載分段成為複數個網路封包分段;以及該網路介面卡的一驅動器, 其用以回應於該酬載的大小係大於該最大允許酬載大小的該判定,來判定該封包調步間隔,其中該網路介面卡係進一步用以判定該封包調步間隔是否已經於該網路控制器處被接收,且用以回應於該封包調步間隔已經被接收的一判定,以基於該封包調步間隔的一傳輸速率來傳輸該等複數個網路封包分段至該遠端裝置。
範例13包括範例12之標的,且其進一步包含:一記憶體,其用以提供至該網路介面卡的直接存取以將該酬載分段成為該等複數個網路封包分段。
範例14包括範例12及13任一者之標的,且其中該驅動器至少部分基於該酬載的目的地來判定該封包調步間隔。
範例15包括範例12至14任一者之標的,且其中該驅動器至少部分基於該酬載的一往返時間來判定該封包調步間隔。
範例16包括範例12至15任一者之標的,且其中該驅動器至少部分基於該酬載的一目的地位址來判定該封包調步間隔。
範例17包括範例12至16任一者之標的,且其中該驅動器至少部分基於該酬載的一網路流量來判定該封包調步間隔。
範例18包括範例12至17任一者之標的,且其中該驅動器更進一步提供該封包調步間隔至該網路介面卡以作為一描述符。
範例19包括範例12至18任一者之標的,且其中該驅動器更進一步放置該封包調步間隔於該網路封包的一標頭中。
範例20包括範例12至19任一者之標的,且其中該驅動器更進一步放置該封包調步間隔於該網路封包的一帶外(out-of-band)區域中。
範例21包括範例12至20任一者之標的,且其中該網路介面卡係用以回應於該封包調步間隔並未被接收,以基於一最大傳輸速率的一傳輸速率來將該等複數個網路封包分段傳輸至該遠端裝置。
範例22包括範例12至21任一者之標的,且其中該驅動器更進一步用以提供網路封包分段大小資訊至該網路介面卡,且其中該網路介面卡基於該網路封包分段大小資訊來將該酬載分段成為該等複數個網路封包分段。
範例23包括範例12至22任一者之標的,且其中該網路介面卡將來自一佇列的該等複數個網路封包分段傳輸至該遠端計算裝置。
範例24包括一種用於調步網路封包至一遠端計算裝置之傳輸的方法,該方法包含以下步驟:於一計算裝置處準備用於傳輸至該遠端計算裝置的一網路封包之一酬載;於該計算裝置處判定該網路封包的該酬載之一大小是否大於一最大允許酬載大小;回應於該酬載的大小係大於該最大允許酬載大小的一判定,於該計算裝置的一網路控制器處將該酬載分段成為複數個網路封包分段;於該計算 裝置處判定該封包調步間隔是否已經於該網路控制器處被接收;回應於該封包調步間隔已於該網路通訊模組處接收的一判定,於該計算裝置的該網路控制器處用基於該封包調步間隔之一傳輸速率來傳輸該等複數個網路封包分段至該遠端計算裝置。
範例25包括範例24之標的,且其中判定該封包調步間隔之步驟包含至少部分基於該酬載的目的地來判定該封包調步間隔。
範例26包括範例24至25任一者之標的,且其中判定該封包調步間隔之步驟包含至少部分基於該酬載的一往返時間來判定該封包調步間隔。
範例27包括範例24至26任一者之標的,且其中判定該封包調步間隔之步驟包含至少部分基於該酬載的一目的地位址來判定該封包調步間隔。
範例28包括範例24至27任一者之標的,且其中判定該封包調步間隔之步驟包含至少部分基於該酬載的一網路流量來判定該封包調步間隔。
範例29包括範例24至28任一者之標的,且進一步包含於該網路控制器處接收該封包調步間隔以作為一描述符。
範例30包括範例24至29任一者之標的,且進一步包括將該封包調步間隔儲存於該網路封包的一標頭之內。
範例31包括範例24至30任一者之標的,且進一步包括將該封包調步間隔儲存於該網路封包的帶外區域之 內。
範例32包括範例24至31任一者之標的,且進一步包含以下步驟:回應於該封包調步間隔並未被接收的一判定,以基於一最大傳輸速率的一傳輸速率來將該等複數個網路封包分段傳輸至該遠端計算裝置。
範例33包括範例24至32任一者之標的,且其中將該酬載分段成為該等複數個網路封包分段之步驟包含基於網路封包分段大小資訊來將該酬載分段成為該等複數個網路封包分段。
範例34包括範例24至33任一者之標的,且其中將該等複數個網路封包分段傳輸至該遠端計算裝置的步驟包含將來自一佇列的該等複數個網路封包分段傳輸至該遠端計算裝置。
範例35包括一種用於調步硬體卸載網路封包分段之傳輸的方法,該方法包含以下步驟:由一計算裝置的一處理器準備用於傳輸至該遠端計算裝置的一網路封包之一酬載;由該計算裝置的該處理器判定該網路封包的該酬載之一大小是否大於一最大允許酬載大小;回應於該酬載的大小係大於該最大允許酬載大小的一判定,由該計算裝置的一網路介面卡將該酬載分段成為複數個網路封包分段;回應於該酬載的大小係大於該最大允許酬載大小的該判定,由該網路介面卡的一驅動器判定該封包調步間隔;由該網路介面卡偵測該封包調步間隔是否已經於該網路控制器處被接收;回應於該封包調步間隔已於該網路通訊模組處被 接收的一偵測,由該網路介面卡用基於該封包調步間隔之一傳輸速率來傳輸該等複數個網路封包分段至該遠端計算裝置。
範例36包括範例35之標的,且進一步包含由該計算裝置的一記憶體提供至該網路介面卡的直接存取,其中用以將該酬載分段成為該等複數個網路封包分段。
範例37包括範例35與36之標的,且其中判定該封包調步間隔之步驟包含至少部分基於該酬載的目的地來判定該封包調步間隔。
範例38包括範例35至37任一者之標的,且其中判定該封包調步間隔之步驟包含至少部分基於該酬載的一往返時間來判定該封包調步間隔。
範例39包括範例35至38任一者之標的,且其中判定該封包調步間隔之步驟包含至少部分基於該酬載的一目的地位址來判定該封包調步間隔。
範例40包括範例35至39任一者之標的,且其中判定該封包調步間隔之步驟包含至少部分基於該酬載的一網路流量來判定該封包調步間隔。
範例41包括範例35至40任一者之標的,且進一步包括由該驅動器提供該封包調步間隔以作為一描述符。
範例42包括範例35至41任一者之標的,且進一步包括將該封包調步間隔儲存於該網路封包的一標頭之內。
範例43包括範例35至42任一者之標的,且進一步包括將該封包調步間隔儲存於該網路封包的帶外區域之 內。
範例44包括範例35至43任一者之標的,且進一步包含以下步驟:回應於該封包調步間隔並未被接收的一判定,由該網路介面卡以基於一最大傳輸速率的一傳輸速率來將該等複數個網路封包分段傳輸至該遠端計算裝置。
範例45包括範例35至44任一者之標的,且進一步包括藉由該驅動器提供網路封包分段大小資訊至該網路介面卡,且其中該網路介面卡基於該網路封包分段大小資訊來將該酬載分段成為該等複數個網路封包分段。
範例46包括範例35至45任一者之標的,且進一步包括藉由該網路介面卡將來自一佇列的該等複數個網路封包分段傳輸至該遠端計算裝置。
範例47包括一計算裝置,該計算裝置包含一處理器;以及具有複數個指令儲存於其內的一記憶體,當其被該處理器執行時將導致該計算裝置進行範例24至34其中任一者之方法。
範例48包括一或多個機器可讀儲存媒體,包含複數個指令儲存於其上,回應於該等指令被執行將導致一計算裝置進行範例24至34其中任一者之方法。
範例49包括一計算裝置,該計算裝置包含一處理器;以及具有複數個指令儲存於其內的一記憶體,當其被該處理器執行時將導致該計算裝置進行範例35至46其中任一者之方法。
範例50包括一或多個機器可讀儲存媒體,包含複 數個指令儲存於其上,回應於該等指令被執行將導致一計算裝置進行範例35至46其中任一者之方法。
範例51包括一種用以調步網路封包之傳輸至一遠端計算裝置的計算裝置,該計算裝置包含:用以準備用於傳輸至一遠端計算裝置的一網路封包的一酬載的構件;用以判定該網路封包的該酬載之一大小是否大於一最大允許酬載大小的構件;回應於該網路封包的該酬載的大小係大於該最大允許酬載大小之判定,來判定一封包調步間隔的構件;回應於該網路封包的該酬載的大小係大於該最大允許酬載大小之判定,來於該計算裝置的一網路控制器處將該酬載分段成為複數個網路封包分段的構件;用以判定該封包調步間隔是否已經於該網路控制器處被接收的構件;以及回應於該封包調步間隔已經被接收之判定,於該計算裝置的該網路控制器處以基於該封包調步間隔的一傳輸速率來將該等複數個網路封包分段傳輸至該遠端計算裝置的構件。
範例52包括範例51之標的,且其中用以判定該封包調步間隔的構件包含用以至少部分基於該酬載的目的地來判定該封包調步間隔的構件。
範例53包括範例51與52之標的,且其中用以判定該封包調步間隔的構件包含用以至少部分基於該酬載的一往返時間來判定該封包調步間隔的構件。
範例54包括範例51至53之標的,且其中用以判定該封包調步間隔的構件包含用以至少部分基於該酬載的一 目的地位址來判定該封包調步間隔的構件。
範例55包括範例51至54之標的,且其中用以判定該封包調步間隔的構件包含用以至少部分基於該酬載的一網路流量來判定該封包調步間隔的構件。
範例56包括範例51至55之標的,且進一步包含用以於該網路控制器處接收該封包調步間隔以作為一描述符的構件。
範例57包括範例51至56之標的,且進一步包括用以將該封包調步間隔儲存於該網路封包的一標頭之內的構件。
範例58包括範例51至57之標的,且進一步包括用以將該封包調步間隔儲存於該網路封包的帶外區域之內的構件。
範例59包括範例51至58之標的,且進一步包含用以回應於該封包調步間隔並未被接收的一判定,以基於一最大傳輸速率的一傳輸速率來將該等複數個網路封包分段傳輸至該遠端計算裝置的構件。
範例60包括範例51至59之標的,且其中用以將該酬載分段成為該等複數個網路封包分段的構件包含用以基於網路封包分段大小資訊來將該酬載分段成為該等複數個網路封包分段的構件。
範例61包括範例51至60之標的,且其中用以將該等複數個網路封包分段傳輸至該遠端計算裝置的構件包含用以將來自一佇列的該等複數個網路封包分段傳輸至該遠 端計算裝置的構件。
範例62包括一種用於調步卸載網路封包分段之計算裝置,該計算裝置包含:用以由一計算裝置的一處理器準備用於傳輸至該遠端計算裝置的一網路封包之一酬載的構件;用以由該計算裝置的該處理器判定該網路封包的該酬載之一大小是否大於一最大允許酬載大小的構件;用以回應於該酬載的大小係大於該最大允許酬載大小的一判定,用以由該計算裝置的一網路介面卡將該酬載分段成為複數個網路封包分段的構件;用以回應於該酬載的大小係大於該最大允許酬載大小的該判定,由該網路介面卡的一驅動器判定該封包調步間隔的構件;用以由該網路介面卡偵測該封包調步間隔是否已經於該網路控制器處被接收的構件;用以回應於該封包調步間隔已於該網路通訊模組處被接收的一偵測,由該網路介面卡用基於該封包調步間隔之一傳輸速率來傳輸該等複數個網路封包分段至該遠端計算裝置的構件。
範例63包括範例62之標的,且進一步包含用以由該計算裝置的一記憶體提供至該網路介面卡的直接存取的構件,其中用以將該酬載分段成為該等複數個網路封包分段。
範例64包括範例62與63之標的,且其中用以判定該封包調步間隔的構件包含用以至少部分基於該酬載的目的地來判定該封包調步間隔的構件。
範例65包括範例62至64任一者之標的,且其中用 以判定該封包調步間隔的構件包含用以至少部分基於該酬載的一往返時間來判定該封包調步間隔的構件。
範例66包括範例62至65任一者之標的,且其中用以判定該封包調步間隔的構件包含用以至少部分基於該酬載的一目的地位址來判定該封包調步間隔的構件。
範例67包括範例62至66任一者之標的,且其中用以判定該封包調步間隔的構件包含用以至少部分基於該酬載的一網路流量來判定該封包調步間隔的構件。
範例68包括範例62至67任一者之標的,且進一步包括用以由該驅動器提供該封包調步間隔以作為一描述符的構件。
範例69包括範例62至68任一者之標的,且進一步包括用以將該封包調步間隔儲存於該網路封包的一標頭之內的構件。
範例70包括範例62至69任一者之標的,且進一步包括用以將該封包調步間隔儲存於該網路封包的一帶外區域之內的構件。
範例71包括範例62至70任一者之標的,且進一步包含用以回應於該封包調步間隔並未被接收的一判定,由該網路介面卡以基於一最大傳輸速率的一傳輸速率來將該等複數個網路封包分段傳輸至該遠端計算裝置的構件。
範例72包括範例62至71任一者之標的,且進一步包含用以藉由該驅動器提供網路封包分段大小資訊至該網路介面卡的構件,且其中該網路介面卡基於該網路封包分 段大小資訊來將該酬載分段成為該等複數個網路封包分段。
範例73包括範例62至72任一者之標的,且進一步包含用以藉由該網路介面卡將來自一佇列的該等複數個網路封包分段傳輸至該遠端計算裝置的構件。

Claims (28)

  1. 一種用以調步卸載網路封包分段之傳輸的計算裝置,該計算裝置包含:一封包調步間隔判定模組,其用以判定一封包調步間隔;一傳輸分段卸載模組,其用以將一網路封包之一酬載分段成為複數個網路封包分段;以及一網路通訊模組,其用以判定該封包調步間隔是否已經於該網路通訊模組處被接收,且其用以回應於該封包調步間隔於該網路通訊模組處被接收的一判定,以基於該封包調步間隔之一傳輸速率來傳輸該等複數個網路封包分段至遠端計算裝置。
  2. 如請求項1的計算裝置,其進一步包含:一資料準備模組,其用以準備用於傳輸至一遠端計算裝置的該網路封包之該酬載,且判定該網路封包的該酬載之一大小是否大於一最大允許酬載大小,其中,用以判定該封包調步間隔包含用以回應於該酬載的大小係大於該最大允許酬載大小的一判定,來判定該封包調步間隔,以及其中,用以將該酬載分段成為複數個網路封包分段包含用以回應於該酬載的大小係大於該最大允許酬載大小的該判定,來將該酬載分段成為複數個網路封包分 段。
  3. 如請求項1的計算裝置,其中該封包調步間隔判定模組至少部分地基於該酬載的一目的地來判定該封包調步間隔。
  4. 如請求項1的計算裝置,其中該封包調步間隔判定模組至少部分地基於該酬載的一往返時間來判定該封包調步間隔。
  5. 如請求項1的計算裝置,其中該封包調步間隔判定模組至少部分地基於該酬載的一網路流量來判定該封包調步間隔。
  6. 如請求項1的計算裝置,其中該封包調步間隔判定模組係進一步用以提供該封包調步間隔至該網路通訊模組以作為一描述符。
  7. 如請求項1的計算裝置,其中該封包調步間隔判定模組係進一步用以放置該封包調步間隔於該網路封包的一標頭中。
  8. 如請求項1的計算裝置,其中該封包調步間隔判定模組係進一步用以放置該封包調步間隔於該網路封包的一帶外(out-of-band)區域中。
  9. 如請求項1的計算裝置,其中該網路通訊模組係用以回應於該封包調步間隔並未被接收之一判定,以基於一最大傳輸速率的一傳輸速率來將該等複數個網路封包分段傳輸至該遠端計算裝置。
  10. 如請求項1的計算裝置,其中該資料準備模組係進一步用以提供網路封包分段大小資訊至該傳輸分段卸載模組,以及其中該傳輸分段卸載模組基於該網路封包分段大小資訊來將該酬載分段成為該等複數個網路封包分段。
  11. 如請求項1的計算裝置,其中該網路通訊模組將來自一佇列的該等複數個網路封包分段傳輸至該遠端計算裝置。
  12. 一種包含複數個指令儲存於其內之機器可讀取儲存媒體,其回應於該等指令被執行而致使一計算裝置用以:準備用於傳輸至遠端計算裝置的一網路封包之一酬載;判定該網路封包的該酬載之一大小是否大於一最大允許酬載大小;回應於該酬載的該大小係大於該最大允許酬載大小之一判定,來判定一封包調步間隔;回應於該酬載的該大小係大於該最大允許酬載大小之該判定,來於該計算裝置的一網路控制器處將該酬載分段成為複數個網路封包分段;判定該封包調步間隔是否已經於該網路控制器處被接收;以及回應於該封包調步間隔被接收之一判定,於該計算 裝置的該網路控制器處以基於該封包調步間隔的一傳輸速率來將該等複數個網路封包分段傳輸至該遠端計算裝置。
  13. 如請求項12之機器可讀取儲存媒體,其中用以判定該封包調步間隔包含用以至少部分地基於該酬載的一目的地、該酬載的一往返時間或該酬載的一網路流量中之至少一者來判定該封包間隔。
  14. 如請求項12之機器可讀取儲存媒體,其中該等複數個指令進一步致使該行動計算裝置以:於該網路控制器處接收該封包調步間隔以作為一描述符。
  15. 如請求項12之機器可讀取儲存媒體,其中該等複數個指令進一步致使該行動計算裝置以:放置該封包調步間隔於該網路封包之一標頭或者該網路封包之一帶外區域中的至少一者。
  16. 如請求項12之機器可讀取儲存媒體,其中該等複數個指令進一步致使該行動計算裝置以:回應於該封包調步間隔並未被接收的一判定,以基於一最大傳輸速率的一傳輸速率來將該等複數個網路封包分段傳輸至該遠端計算裝置。
  17. 如請求項12之機器可讀取儲存媒體,其中用以將該酬載分段成為該等複數個網路封包分段包含用以基於網路封包分段大小資訊來將該酬載分段成為該等複數個網 路封包分段。
  18. 如請求項12之機器可讀取儲存媒體,其中用以傳輸該等複數個網路封包分段至該遠端計算裝置包含用以將來自一佇列的該等複數個網路封包分段傳輸至該遠端計算裝置。
  19. 一種用於調步網路封包至遠端計算裝置之傳輸的方法,該方法包含:於一計算裝置處準備用於傳輸至該遠端計算裝置的一網路封包之一酬載;於該計算裝置處判定該網路封包的該酬載之一大小是否大於一最大允許酬載大小;回應於該酬載的該大小係大於該最大允許酬載大小之一判定,來於該計算裝置處判定一封包調步間隔;回應於該酬載的該大小係大於該最大允許酬載大小之該判定,來於該計算裝置的一網路控制器處將該酬載分段成為複數個網路封包分段;於該計算裝置處判定該封包調步間隔是否已經於該網路控制器處被接收;以及回應於該封包調步間隔被接收之一判定,於該計算裝置的該網路控制器處以基於該封包調步間隔的一傳輸速率來傳輸該等複數個網路封包分段至該遠端計算裝置。
  20. 如請求項19之方法,其中判定該封包調步間隔包含至少 部分地基於該酬載的一目的地、該酬載的一往返時間或該酬載的一網路流量中之至少一者來判定該封包調步間隔。
  21. 如請求項19之方法,進一步包含:於該網路控制器處接收該封包調步間隔以作為一描述符。
  22. 如請求項19之方法,進一步包含:將該封包調步間隔儲存於該網路封包之一標頭或者該網路封包之一帶外區域中的至少一者之內。
  23. 如請求項19之方法,進一步包含:回應於該封包調步間隔並未被接收的一判定,以基於一最大傳輸速率的一傳輸速率來將該等複數個網路封包分段傳輸至該遠端計算裝置。
  24. 如請求項19之方法,其中將該酬載分段成為該等複數個網路封包分段包含基於網路封包分段大小資訊來將該酬載分段成為該等複數個網路封包分段。
  25. 如請求項19之方法,其中將該等複數個網路封包分段傳輸至該遠端計算裝置包含將來自一佇列的該等複數個網路封包分段傳輸至該遠端計算裝置。
  26. 一種用以調步卸載網路封包分段之傳輸的計算裝置,該計算裝置包含:一處理器,其用以準備用於傳輸至一遠端計算裝置的一網路封包之一酬載,且判定該網路封包的該酬載之 一大小是否大於一最大允許酬載大小;一網路介面卡,其用以回應於該酬載的該大小係大於該最大允許酬載大小之一判定,來將該酬載分段成為複數個網路封包分段;以及該網路介面卡的一驅動器,其用以回應於該酬載的該大小係大於該最大允許酬載大小之該判定,來判定該封包調步間隔,其中該網路介面卡係進一步用以判定該封包調步間隔是否已經被接收,且用以回應於該封包調步間隔被接收之一判定,以基於該封包調步間隔的一傳輸速率來將該等複數個網路封包分段傳輸至該遠端裝置。
  27. 如請求項26的計算裝置,其進一步包含:一記憶體,其用以提供至該網路介面卡的直接存取以將該酬載分段成為該等複數個網路封包分段。
  28. 如請求項26的計算裝置,其中該驅動器至少部分地基於該酬載的一目的地、該酬載的一往返時間或該酬載的一網路流量中之至少一者,來判定該封包調步間隔。
TW105103297A 2015-03-27 2016-02-02 用於在分段操作期間的網路封包調步之技術 TWI625953B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/671,776 US9985886B2 (en) 2015-03-27 2015-03-27 Technologies for network packet pacing during segmentation operations
US14/671,776 2015-03-27

Publications (2)

Publication Number Publication Date
TW201635764A TW201635764A (zh) 2016-10-01
TWI625953B true TWI625953B (zh) 2018-06-01

Family

ID=56976674

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105103297A TWI625953B (zh) 2015-03-27 2016-02-02 用於在分段操作期間的網路封包調步之技術

Country Status (4)

Country Link
US (1) US9985886B2 (zh)
EP (1) EP3275139B1 (zh)
TW (1) TWI625953B (zh)
WO (1) WO2016160212A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016110078A1 (de) * 2016-06-01 2017-12-07 Intel IP Corporation Datenverarbeitungsvorrichtung und Verfahren zum Auslagern von Daten zu einer fernen Datenverarbeitungsvorrichtung
WO2018216209A1 (ja) * 2017-05-26 2018-11-29 三菱電機株式会社 空調データ通信装置、空調データ通信方法及びプログラム
US10797959B2 (en) * 2017-08-11 2020-10-06 Quanta Computer Inc. LLDP based rack management controller

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW348348B (en) * 1996-08-05 1998-12-21 May Ruey Teh Co Ltd Method and apparatus for source rate pacing in an ATM network
US6115357A (en) * 1997-07-01 2000-09-05 Packeteer, Inc. Method for pacing data flow in a packet-based network
US20060146747A1 (en) * 2003-02-18 2006-07-06 Eran Shpak Multiplex communication between access points and hub
US20130279338A1 (en) * 2010-03-05 2013-10-24 Microsoft Corporation Congestion control for delay sensitive applications
US20140079170A1 (en) * 2012-09-18 2014-03-20 Canon Kabushiki Kaisha Method and apparatus for controlling the data rate of a data transmission between an emitter and a receiver

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6888848B2 (en) * 2000-12-14 2005-05-03 Nortel Networks Limited Compact segmentation of variable-size packet streams
JP2003209594A (ja) * 2002-01-16 2003-07-25 Sony Corp プログラム、記録媒体、並びに情報送信装置および方法
US7685250B2 (en) * 2005-03-09 2010-03-23 Intel Corporation Techniques for providing packet rate pacing
US7596644B2 (en) 2006-01-11 2009-09-29 Solarflare Communications, Inc. Transmit rate pacing system and method
US20090086729A1 (en) * 2007-09-28 2009-04-02 Parthasarathy Sarangam User datagram protocol (UDP) transmit acceleration and pacing
US20090097401A1 (en) * 2007-10-12 2009-04-16 Wael William Diab Method and system for configurable data rate thresholds for energy efficient ethernet
WO2011036701A1 (ja) * 2009-09-24 2011-03-31 株式会社 東芝 無線通信装置および通信プログラム
WO2013108676A1 (ja) * 2012-01-19 2013-07-25 三菱電機株式会社 多重ゲートウェイ装置、多重回線通信システム、多重回線通信方法およびプログラム
US9432748B2 (en) * 2013-05-10 2016-08-30 Huawei Technologies Co., Ltd. System and method for photonic switching
JP6236933B2 (ja) * 2013-07-02 2017-11-29 富士通株式会社 中継装置
EP2833589A1 (en) 2013-08-02 2015-02-04 Alcatel Lucent Intermediate node, an end node, and method for avoiding latency in a packet-switched network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW348348B (en) * 1996-08-05 1998-12-21 May Ruey Teh Co Ltd Method and apparatus for source rate pacing in an ATM network
US6115357A (en) * 1997-07-01 2000-09-05 Packeteer, Inc. Method for pacing data flow in a packet-based network
US20060146747A1 (en) * 2003-02-18 2006-07-06 Eran Shpak Multiplex communication between access points and hub
US20130279338A1 (en) * 2010-03-05 2013-10-24 Microsoft Corporation Congestion control for delay sensitive applications
US20140079170A1 (en) * 2012-09-18 2014-03-20 Canon Kabushiki Kaisha Method and apparatus for controlling the data rate of a data transmission between an emitter and a receiver

Also Published As

Publication number Publication date
EP3275139B1 (en) 2020-11-18
WO2016160212A1 (en) 2016-10-06
EP3275139A4 (en) 2018-11-14
EP3275139A1 (en) 2018-01-31
US9985886B2 (en) 2018-05-29
US20160285767A1 (en) 2016-09-29
TW201635764A (zh) 2016-10-01

Similar Documents

Publication Publication Date Title
US10382362B2 (en) Network server having hardware-based virtual router integrated circuit for virtual networking
EP2928136B1 (en) Host network accelerator for data center overlay network
EP2928135B1 (en) Pcie-based host network accelerators (hnas) for data center overlay network
US20200236052A1 (en) Improving end-to-end congestion reaction using adaptive routing and congestion-hint based throttling for ip-routed datacenter networks
US9762497B2 (en) System, method and apparatus for network congestion management and network resource isolation
US10193831B2 (en) Device and method for packet processing with memories having different latencies
US20190044879A1 (en) Technologies for reordering network packets on egress
US7613132B2 (en) Method and system for controlling virtual machine bandwidth
EP2928132B1 (en) Flow-control within a high-performance, scalable and drop-free data center switch fabric
US11522805B2 (en) Technologies for protocol-agnostic network packet segmentation
TWI625953B (zh) 用於在分段操作期間的網路封包調步之技術
US10715437B2 (en) Deadline driven packet prioritization for IP networks
US11108697B2 (en) Technologies for controlling jitter at network packet egress
WO2016088371A1 (ja) 管理ノード、端末、通信システム、通信方法、および、プログラム記録媒体
CN117795926A (zh) 复用会话中的数据封包优先级排序
JP2020010191A (ja) ネットワーク負荷分散装置および方法

Legal Events

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