專利名稱:防止數(shù)據(jù)分組的無序傳送的方法
背景技術:
在通過路由器傳送信息的典型處理器設備(processor installation)中,當多個信息分組被指定給同一位置時,必須按照接收順序傳送每個分組。當在路由器有且僅有一個處理部件時,這不會造成任何問題。即,如果具有相同目的地地址的兩個分組P1和P2到達路由器的相同端口,P1在P2之前到達,并且如果P1和P2都將通過相同端口轉(zhuǎn)發(fā),那么P1應在P2之前在目的地端口傳送。即,路由器不應在傳送P1之前傳送P2。離開順序應和到達順序相同。這是重要的,因數(shù)當最終的目的地主機收到無序分組時,它隱含地假定還未到達的在前分組是丟失的分組,進而假定網(wǎng)絡擁塞正在導致分組丟失,并減小TCP(傳輸控制協(xié)議)窗口。這將通信中涉及的端點之間的有效通信帶寬減至最小。
如果只存在一個處理所有分組的處理器部件,那么它順序處理分組,從而,不存在保持序列的任何問題。但是,現(xiàn)代連網(wǎng)設備具有同時轉(zhuǎn)發(fā)分組,以便增大吞吐量的多個處理部件。
作為一個例子,考慮下述情形分組1和分組2均具有相同的目的地地址,并且按照該相同的順序到達相同的端口。分組1被分配給PE1進行處理,分組2被分配給PE2進行處理,在轉(zhuǎn)發(fā)數(shù)據(jù)分組之前所述處理是必需的。一般來說,PE2可能比PE1處理完其分組更快地處理完分組2。如果不采取恰當?shù)牟襟E,PE2將在PE1能夠傳送P1之前把P2傳送出系統(tǒng)。這種情形導致無序傳送。如果在路由器有且僅有一個處理部件,那么通過完全按照收到分組的順序處理這些分組,易于解決該問題。
在IBM的其中存在多個處理部件的PowerNP體系結(jié)構(gòu)中,通過利用完成單元標簽(completion unit label)解決無序傳送的問題。當分組進入系統(tǒng)時,在它被傳送給PE之一之前,它被歸入通信流中,并被分配“完成單元標簽”。屬于相同通信流的分組將接收相同的完成單元標簽。
在上面的例子中,P1和P2將接收相同的完成單元標簽,并且PE的鏈接列表將被附到該標簽上。當P1被分配給PE T1時,T1將位于鏈接列表的頭部。隨后,當P2被分配給PE T2時,T2將在尾部被附加在鏈接列表上。當PE完成分組的處理時,它將試圖通過調(diào)用命令“借助標簽排隊”(enqueue with label)傳送該幀。這意味著當且僅當正在進行“借助標簽排隊”嘗試的PE位于對應標簽的PE隊列的頭部時,完成單元才將把該幀傳送出該端口。在傳送該幀之后,該PE將從PE隊列的頭部被除去。這圖解說明于圖1中。
如圖1中所示,分組1和2屬于相同的流。分組1首先到達,隨后分組2到達。分組3和4屬于相同的流。分組3首先到達,隨后分組4到達。分組1被分配給PE1。系統(tǒng)把標簽L1分配給分組1和2,因為它們屬于同樣但卻不同的通信流。類似地,標簽L2被分配給分組3和4(一般來說,L1將不等于L2)。PE1位于關于標簽L1的鏈接列表的頭部,因為它被分配在前到達的分組。出于相同的原因,PE3位于關于L2的列表的頭部。當PE完成處理時,當且僅當它們位于列表的頭部時,它們才被允許傳送分配給它們的分組。這防止分組的無序傳輸。
但是,這并不解決分組分段(fragmentation)的問題。即,PE把它正在處理的分組分成多個片段(fragment),PE不得不進行多個“排隊”操作,以傳送它所產(chǎn)生的所有片段。即,P1和P2順序到達,并被分配給PE PE1和PE2?,F(xiàn)在,PE1決定把P1分裂成P1-1、P1-2...P1-m,類似地,PE2決定把P2分裂成P2-1、P2-2...P2-m。出現(xiàn)在不強制人工排序的情況下,如何保持順序傳送的問題。例如,在傳送P2的任意片段之前傳送P1的所有片段是相當限制性的。實際上要求按照相同的順序傳送P1-1~P1-m。
發(fā)明內(nèi)容
提供一種對從具有多個處理部件的第一處理器設備的路由器到第二處理器設備的信息分組的傳送進行排序(sequence)的方法,其中必須按照所述分組到達第一處理器設備的順序完成所述信息分組的傳送。該方法包括下述步驟按照PE被授權(quán)處理分組的順序,形成PE的鏈接列表,授權(quán)處理分組的順序是在第一處理器設備收到分組的順序,并把每個信息分組分成連續(xù)的多個片段。在第一處理器設備處理每個片段。每個鏈接列表中的每個信息分組的最后片段依據(jù)收到分組的順序被標記,并按照對每個鏈接列表上的每個最后片段標記的順序被排隊(enqueue)。鏈接列表中的每個分組信息的每個片段隨著在給定的鏈接列表中在所述第一處理器設備被處理而被傳送給所述第二處理器設備,鏈接列表上的每個分組的最后片段除外。之后,當且僅當每個分組的最后片段位于隊列的頭部時,傳送處理后的每個分組的最后片段,當被傳送時從隊列除去該最后片段,并在所述第二處理器設備收到所述指定信息分組的所有片段之后,在所述第二處理器設備由所述片段重新裝配每個分組信息。
圖1是傳送信息分組的一種現(xiàn)有技術的示意圖;圖2是根據(jù)本發(fā)明的信息分組的鏈接列表的分段和傳送技術的流程圖。
具體實施例方式
根據(jù)本發(fā)明,提供一種從信息處理設備,例如IBMPowerNP體系結(jié)構(gòu)中的路由器傳送PE的鏈接列表的改進方法。在路由器收到信息的每個分組P1-Pn之后,根據(jù)將傳送它的端口,它被給予一個完成單元標簽,并被分配PE。對于具有相同標簽的分組P,產(chǎn)生PE的鏈接列表。每個鏈接列表中的每個分組P或PE隨后被分段。在鏈接列表中存在兩個分組的情況下,存在片段P1-2,P1-2~P1-m,和P2-1,P2-2~P2-n。但是,只有每個PE中的最后分組P1-m和P2-n收到該標簽。其它片段收不到該標簽。在每個P1和P2把分組順序分成片段P1-1~P1m-1和P2~P2n-1之后,這些片段被傳送,而不帶完成單元標簽,并且這些片段最好按照在每個PE中分段的順序被傳送,而不考慮在其它PE中,片段P1-1~P1-m-1和P2-2~P2-n-1的傳輸順序。用完成單元標簽標記每個分組的最后片段,即P1-m和P2-n,如同現(xiàn)有技術中一樣,并且當且僅當每個鏈接表中每個片段的最后分組位于隊列的頭部,且該片段所位于的分組P1或P2的所有其它片段均已被傳送時,才能傳送每個鏈接列表中每個片段的最后分組。從而避免無序傳送,因為除了下述之外,分組1和2的片段按照任意順序到達最終目的地1)分組1的最后片段在分組2的最后片段之前到達。
2)分組1的其它片段在分組1的最后片段之前到達。
3)分組2的其它片段在分組2的最后片段之前到達。
位于最終目的地的處理部件將開始把片段重新裝配成一個完整的分組,一旦它收到屬于該分組的所有片段。由于上述條件,最終目的地能夠并將在分組2之前重新裝配分組1。圖2中圖解說明了這種方法。從而可看出,除了最后的片段之外,每個分組的各個片段可在路由器的處理部件被處理,并且一旦它們被處理就被傳送給目的地,而與該分組位于隊列中什么位置無關。只有當隊列中的分組的最后片段被處理時,才參考完成單元標簽,確定傳輸?shù)淖罱K順序的只是指定隊列中的分組的最后片段。這允許要傳送的分組的多數(shù)片段(即除了最后片段之外的所有片段)的傳輸,而不考慮該分組存在于隊列中的什么位置,所述分組從該位置被分段,并且通過按照所需的順序控制每個分組的最后片段的傳輸,仍然保持在接收處理器設備接收的數(shù)據(jù)分組的正確順序。
當然,根據(jù)將從其傳送數(shù)據(jù)分組的端口的數(shù)目,可產(chǎn)生多個鏈接列表。另外,鏈接列表中僅使用兩個信息分組只是例證性的,可包括兩個以上的分組,要求是對于特定的鏈接列表,按照接收的順序標記,并按照接收的順序傳送每個分組的最后片段。
雖然這里說明了本發(fā)明的優(yōu)選實施例,不過可做出各種設計方面的變化,并且對于計算機體系結(jié)構(gòu)、系統(tǒng)和方法領域的技術人員,以及對于其它領域的技術人員來說,這種的變化是顯而易見的。本發(fā)明決不局限于上面舉例說明的具體編程語言和例證的編程命令,本領域的技術人員易于想到其它軟件和硬件實現(xiàn)。于是,本發(fā)明的范圍只由下面的權(quán)利要求限定。
權(quán)利要求
1.一種對從具有第一處理器設備的路由器到第二處理器設備的一系列信息分組的傳送進行排序的方法,第一處理器設備具有多個處理部件,其中必須按照所述分組到達第一處理器設備的順序完成所述信息分組的傳送,所述方法包括下述步驟按照在所述第一處理器設備接收所述信息分組的順序,形成信息分組的鏈接列表;把每個信息分組分成連續(xù)的多個片段,并在所述第一處理器設備處理每個片段;依據(jù)收到分組的順序標記每個鏈接列表中的每個信息分組的最后片段,并對關于每個鏈接列表中的每個最后片段標記的順序排隊;隨著在給定的鏈接列表上在所述第一處理器設備處理每個分組的每個片段,將每個分組的每個片段的傳送給所述第二處理器設備,所述鏈接列表上每個分組的最后片段除外;之后,當且僅當每個分組的最后片段位于所述鏈接列表中隊列的頭部時,傳送處理后的每個分組的最后片段,并且當所述最后片段被傳送時將其從隊列除去;和在所述第二處理器設備收到所述給定信息分組的所有片段之后,在所述第二處理器設備從所述片段重新裝配每個信息分組。
2.按照權(quán)利要求1所述的方法,其中存在多個鏈接列表,其中從每個鏈接列表傳送多個信息分組。
3.按照權(quán)利要求1所述的方法,其中每個信息分組的片段按照其被分段的順序傳送。
全文摘要
一種對從具有幾個處理部件的路由器到接收處理設備的信息分組的傳送進行排序的方法,其中必須按照分組到達路由器的順序完成分組的傳送。按照在路由器接收所述分組的順序,形成分組的鏈接列表,每個分組被分成連續(xù)的多個片段。在路由器處理每個片段。依據(jù)收到分組的順序標記每個鏈接列表中的每個分組的最后片段,并按照關于每個鏈接列表上的每個最后片段標記的順序排隊。隨著處理而將每個分組的每個片段傳送給接收處理設備,在其鏈接列表上的每個分組的最后片段除外,之后,只有當每個分組的最后片段位于隊列的頭部時,才傳送處理后的每個分組的最后片段。
文檔編號H04L12/56GK1700675SQ200510072899
公開日2005年11月23日 申請日期2005年5月17日 優(yōu)先權(quán)日2004年5月20日
發(fā)明者克勞德·巴思索, 吉恩·路易斯·加爾維格納克, 納塔拉加恩·瓦德亞納撒恩, 法布里斯·吉恩·沃普蘭肯 申請人:國際商業(yè)機器公司