專利名稱::用于高性能捆綁重排序的方法、系統及計算機程序產品的制作方法
技術領域:
:本發明涉及通信系統,更具體地說,涉及分段或分組數據的發送和處理。
背景技術:
:信道捆綁是將兩點之間的多個獨立的通信信道當作一個單獨的"虛擬"信道來處理,該"虛擬"信道與可能的帶寬相比則具有更大的總帶寬。除了容量更大,這種配置還具有其它優點,如提高了虛擬信道的整體可靠性。由于一個虛擬信道是由多個物理信道組成,如果當有一個或多個物理信道出現故障,虛擬信道固有的冗余使得其可以繼續工作。信道捆綁的概念可通過圖1的電纜通信系統來說明。在這個例子中,電纜調制解調器終端系統(CMTS)llO與電纜調制解調器(CM)130正在進行通信。數據通過信道120a-120i從CMTSIIO傳送到CM130。在給定的一段時間內,信道120a-120i中部分或全部信道可以捆綁起來,則這段時間內的分段數據(例如分組)可以通過這些信道發送。某一給定的分段(segment)或分組數據可通過這些信道中的一個信道發送,而下一個分段或分組數據可通過相同的信道發送,也可通過該捆綁信道集合(BCS)中的另一個不同信道發送。然后CM130在將這些分段或分組數據發送給最終用戶前必須對其進行重組。在捆綁信道中發送數據的一種方案是發送端發送全部分組,并基于負載均衡、速率限制或其它信道選擇方法將這些分組數據分配到各個信道中傳送。另一種方案是將一串分組數據連接為一個字節流,再將該字節流分成段通過不同信道傳送。在這兩種方案中,分組/分段數據要由發送方(例如CMTS)標記上序號,以使接收方(例如CM)能夠按照適當的分組/分段數據順序產生數據流。這一過程稱為重排序,以保證數據以正確的順序到達最終用戶。對多個捆綁信道的重排序可能是時間密集型處理,其將消耗大量的內存。分段或分組數據可能不按順序接收。當接收端在任意幾個捆綁信道上接收一個或多個編號靠后的分段數據時,會出現間隔(gap)造成分段或分組數據丟失(missing)。編號靠后的分段數據必須保存到存儲器中直到接收到丟失的分段。在這一點上,丟失的分段數據可以與順序排在該丟失分段數據之后的已保存分段數據一起發送給最終用戶。這些保存的分段數據必須從存儲器中讀取并以編號順序發送給用戶。高性能、低成本設備如電纜調制解調器得益于排序分組數據的有效重排序方法。期望在CM或CMTS中實現快速重排序,并且無需占用大量的存儲器/寄存器資源。因此需要一種在接收節點中有效地重排序分組或其它數據分段的系統和方法,其中重排序處理僅需最小限度的存儲量并且操作速度相對較高。圖1是通信系統中一組捆綁信道的示意圖;圖2是本發明一實施例的處理過程流程圖;圖3是根據本發明一實施例的排序分段數據的過程的流程圖;圖4是根據本發明一實施例確定分段數據是否丟失的過程的流程圖;圖5是根據本發明一實施例的從隊列中除去分段數據的過程的流程圖;圖6-9是根據本發明的實施例的在處理過程的各個階段的示例性稀疏陣列的結構和內容的示意圖io是根據本發明的實施例的本發明的計算環境的示意圖。以下將結合附圖對本發明的實施例、特征和有益效果以及各個實施例的操作進行描述。具體實施例方式現參考附圖對本發明實施例進行描述,附圖中,同一個附圖標記在各幅附圖中用于表示相同的部件或功能相似的部件。另外,附圖標記最左邊的數字用于標識該附圖標記首次出現時的那幅附圖的編號。應當理解,雖然所討論的是特定的配置和設置,但這僅是為舉例說明的目的。本領域的技術人員知悉,也可使用其它的配置和設置,而不脫離本發明的精神和范圍。本領域的技術人員知悉,本發明還可以運用到其它各種不同的應用中。I、引言本發明涉及對通過BCS接收到的分組或分段數據重排序的方法和系統。這些分段數據接收時順序是亂的,本發明在接收端對這些分段數據進行重排序以便發送給最終用戶。某些分段數據可能會丟失再也接收不到。本發明允許接收端確認是否缺少的分段數據應當認為是丟失的,并繼續處理分段數據。本發明可以由軟件或硬件實現,或由軟、硬件的結合來實現。該系統可以用于按照有線電視數據傳輸服務接口規范(DOCSIS)標準或類似的標準進行通信。例如,本發明可以在電纜調制解調器中實施,或者在從一組捆綁信道上的電纜調制解調器終端系統中接收下行數據分段或分組的其它最終用戶設備中實施。因此,在以下的討論中,按照從CMTS到CM的下行通信來描述。需要注意的是,本發明的技術方案也可以應用到從CM到CMTS的捆綁信道上行通信中。此外,除了使用電纜本發明還可應用于使用其它傳輸媒介的DOCSIS系統,包括但不限于光纖和無線媒介。本發明還可應用于非DOCSIS標準的通信系統中。II、術語本發明使用以下術語描述捆綁操作。其中一些術語也由DOCSIS3.0規范定義RCS:接收信道集。這是通信信道的一個集合,接收實體能夠在其上接收數據。BCS:捆綁信道集。這是RCS的子集,代表發射和接收實體已達成共識使用這些信道來發送與捆綁會話(bondingsession)相關的數據。捆綁會話一種狀態信息,發射和接收實體使用該狀態信息來執行捆綁。在同一時間可能存在多個捆綁會話活動。DSID:下行服務標識,用來標識特定的下行捆綁會話(上行捆綁會話使用不同的機制來標識這種會話)。下行分段或分組可以用DSID標記,以使CM知曉該分段或分組屬于哪個會話。PSN:分組序列號,這個編號用于指示在捆綁會話中某個分段或分組相對于該捆綁會話中其它分段或分組的順序。用PSN對分段或分組進行標識,以使接收實體知曉如何對這些分段或分組進行重排序。需注意DOCSIS3.0要求在信道上以遞增的PSN順序發送分組(例如發射實體可以在信道0上先發送PSN3然后發送PSN5,而不能先發送PSN5再發送PSN3)。信道ID:表示在其上接收分段或分組的信道的編號。分組或分段不用標識信道ID,因為接收實體必定知曉所接收的信道。本發明可應用于任何捆綁信道通信系統,以便發射和處理從大數據流分割出來的各個數據塊。這種分段可以是或不是本領域技術人員通常所理解的術語"分組"。因此在后面的討論中將全部使用"分段"這一術語。III、重排序接收實體例如CM維護一個代表任意給定的捆綁會話中下一個期望分段的PSN的計數或變量。接收到的分段將被標記上用于標識該捆綁會話的PSN和DSID。當CM接收一個分段時,CM査找與該分段的DSID相關聯的捆綁會話。如果該分段的PSN與捆綁會話中的下一個期望分段的PSN相匹配,該分段將被轉發,且通過增加下一個期望的PSN來更新會話狀態。如果該分段的PSN與下一個期望分段的PSN不匹配,基于帶有下一個期望分段PSN的分段在將來的某個時間點能夠到達BCS信道中的一個捆綁信道這個假設,該分段將排隊等待以后處理。在這種情況下,不增加下一個期望PSN的計數值。由于多種原因,帶有較高PSN的分段可能會在較低PSN分段之前接收到。這些原因包括信道擁塞_CMTS將標識為PSN1的分段在信道0上排隊發送,將標識為PSN2的分段在信道1上排隊發送。但是,如果有一些其它分段排在信道0的前部等待發送,則標識為PSN1的分段必須等待,可能發送時間會在標識為PSN2的分段之后。因此PSN2分段會先于PSN1分段到達。反應時間/速度一如果BCS中的各信道具有不同的特性(交錯深度、調制率等),則在同一時間排隊等待發送的分段將在不同時間到達,這是因為這些比特通過"較慢"信道傳送花費的時間較長。分段尺寸一當所有的比特都達到時,分段只能由CM進行處理。在其它條件相同的情況下,因此較小尺寸的分段將視作比大尺寸分段先到達而首先得到處理。信道服務排序_CM能夠同時在多個信道上接收分段,但是其對信道進行服務的順序造成分段未能按照PSN順序進行處理。分段丟失(loss)—帶有較低PSN的分段有可能丟失(由于出錯、溢出等),造成帶有較高PSN的分段排隊直到期滿超時或發生一些其它事件迫使CM將缺少的分段當作不可恢復分段。后面將對這部分進行詳細描述。同一時間可能會出現上述多種情形。CM必須緩沖較高PSN的分段直到缺少的(missing)分段到達。如果缺少的分段丟失,超時或快速丟失檢測將略過缺少的分段將其當作不可恢復分段。重排序處理實施例如圖2所示。圖2展示了接收分段及按需要保存或轉發分段的過程。處理過程開始于步驟205。在步驟210,接收實體例如CM接收分段。在步驟215,讀取該分段的DSID和PSN。在步驟220,接收實體按照DSID的指示査找該分段所屬的捆綁會話。在步驟225,確定接收到的PSN是否與該會話中下一個期望分段的PSN代表值相匹配。如果相匹配,則在步驟240將接收到的分段轉發給最終用戶。還可以選擇對該分段進行其它處理。在步驟245,為指示下一個期望分段的PSN增加計數值。在步驟250,確認與計數值增加后的下一個期望PSN相對應的分段是否排在隊列中。如果沒有,處理過程返回到步驟210,接收下一個分段。如果在步驟250中確定隊列中存在與計數值增加后的下一個期望PSN相對應的分段,則處理過程轉到步驟240,轉發排在隊列中的該分段。如果在步驟225中,接收到的分段的PSN大于該會話中的期望PSN,則在步驟230將該分段排入隊列中。后面將結合圖3對步驟230進行更詳細描述。在步驟235,確定是否存在應當當作丟失分段對待的任何未接收到的分段。這個步驟將在后面結合圖4進行詳細描述。之后,處理過程返回步驟210。圖3是步驟230(將接收到的分段排入隊列中)的更詳細示意圖。這一處理過程開始于步驟310。在步驟320,將接收到的分段寫入緩沖器。在步驟330,將緩沖器地址轉換為分段索引。在步驟340,哈希化(hashed)接收到分段的PSN以生成稀疏陣列索引(sparsearrayindex)。在步驟350,將分段索引寫入稀疏陣列中由上述步驟340得到的稀疏陣列索引指定的位置,處理過程結束。在歩驟235中,確定先前任何未接收到的分段是否已經丟失,如圖4中根據本發明一實施例的詳細描述。處理過程開始于步驟410,之后應用兩個檢驗方式(test)來確認是否分段應當被認作丟失。在步驟420,應用第一檢驗確認在BCS的每一個信道上是否有排入隊列中的分段。如果有則進入步驟440。在該步驟將期望PSN的值提升到與已經接收的下一個分段相對應的PSN。因此,當隊列中排入有足夠的分段時(通過每個信道上有一個或多個排入隊列的分段來確定),確定等待中的(即排入隊列的)數據量足以認定任何未接收到的分組已經丟失。這樣允許期望的PSN增加計數為下一個接收分段的PSN(步驟440)。之后,轉發隊列中的分段(步驟445)。步驟445包括從隊列中移除這些分段,這部分操作將在后面結合圖5詳細描述。如果在步驟420確認BCS的每一個信道不全都有排隊分段,則處理過程進入步驟430。在步驟430,應用第二檢驗確認指定的未接收到的分組缺失的時間是否大于預定時長。如果不是,則處理過程在步驟450結束。但是如果缺少的分段缺失的時間已經大于預定時長,則缺少的分段被認為超時。處理過程已經等待足夠長時間(由預定時長所規定),足以將未接收到的分組當作丟失處理。在歩驟460中增加期望PSN的計數值,跳過缺少的分段。如果在步驟470中確認期望PSN現在所指示的分段是排在當前隊列中的,則在步驟480轉發排在隊列中的該分段。處理過程之后進入步驟460,再次增加期望PSN的計數值。只要隊列中持續有對應于期望PSN的分段存在(如步驟470中確定),則增加期望PSN的計數值(步驟460)和轉發指示的分段(步驟480)循環繼續進行。如果在步驟470中確認隊列中沒有對應于期望PSN的分段存在,則處理過程返回步驟430,確認是否有其它缺少的分段已經超時。注意步驟420和430表示兩種條件,兩者都意味著一個或多個缺少的分段將當作丟失處理。在本發明的另一個實施例中,可以增加其它檢驗或使用其它檢驗替代這兩種檢驗(test)。圖5是根據本發明一實施例的從隊列中移除分段的處理過程的流程圖。該處理過程開始于步驟510。在步驟520,哈希化(hashed)排入隊列中分段的PSN,生成稀疏陣列的索引。在步驟530,從稀疏陣列中讀取分段索引。具體而言,從由上一步驟生成的稀疏陣列索引所指示的稀疏陣列中的位置讀取分段索弓i。在步驟540中,將分段索引轉換成緩沖器地址。在步驟550中,從存儲器的緩沖器地址處讀取分段。處理過程在步驟560結束。以下將通過實施例對上面討論的處理過程作進一步說明。注意雖然后面的討論是以從CMTS到CM經由捆綁信道集下行通信為例來對本發明的處理過程進行描述,但本發明的處理過程也可應用到上行方向。此外,本發明不限于電纜媒介或DOCSIS相關通信。IV.實例以下對本發明實例的操作進行說明。本實例的目的是說明在用于發射數據分段集合的假設BCS的情況下,本發明如何實現其功能。本實例只是舉例說明,不存在限定本發明范圍的意圖。假設CM有一個4信道(信道0-3)的接收信道集(RCS)。進一步假設有下行服務標識為DSIDl的單個捆綁會話,且該會話的BCS包含三個信道(0-2)。CM正等待DSID1中期望PSN值為10的下一個分段。下面的表格展示了由CMTS發送的分段的PSN。空白單元格表示在特定時間和信道上沒有分段發送。在本實例中,假設由于信道錯誤,缺少分組序列號為PSN10、15、17和19的分段。<table>tableseeoriginaldocumentpage14</column></row><table>發生以下事件在時刻0:CMTS發送帶有PSNIO的分段,但是CM未接收到。在時刻l:一帶有PSN13的分段到達信道0。PSN與期望的下一個PSN不匹配,因此這個接收到的分段在稍后的處理中被排入隊列。--帶有PSN11的分段到達信道1。PSN與期望的下一個PSN10不匹配,排入隊列。在時刻2:--帶有PSN14的分段到達信道0。PSN與期望的下一個PSNIO不匹配,排入隊列。--CMTS發送帶有PSN15的分段,但是CM未接收到。--帶有PSN12的分段到達信道2。PSN與期望的下一個PSN10不匹配,排入隊列。一現在CM在BCS的每一個信道上都有分段在排隊,因此它可以假設PSN10丟失。帶有PSN11、12、13和14的分段立即被轉發。一下一個期望PSN被設置為15,CM在各個信道上都沒有分段在排隊。在時刻3:--帶有PSN16的分段到達信道1。PSN與期望的下一個PSN15不匹配,排入隊列。--CMTS發送帶有PSN17的分段,但是CM未接收到。在時刻4:一帶有PSN20的分段到達信道1。PSN與期望的下一個PSN15不匹配,排入隊列。--帶有PSN18的分段到達信道2。PSN與期望的下一個PSN15不匹配,排入隊列。在時刻5:一CMTS發送帶有PSN19的分段,但是CM未接收到。在將來的時刻N:(N代表到達超時期間)一CM超時等待帶有PSN15的分段,假設該分段丟失。一帶有PSN16的分段立即被轉發。一下一個期望PSN被設置為17。在將來的時刻N+1:一CM超時等待帶有PSN17的分段,假設該分段丟失。一帶有PSN18的分段立即被轉發。一下一個期望PSN被設置為19。在將來的時刻N+3:一CM超時等待帶有PSN19的分段,假設該分段丟失。一帶有PSN20的分段立即被轉發。一下一個期望PSN被設置為21。V.本發明的具體實施例方式如上面所討論,CM需要知曉捆綁會話狀態,特別是下一個期望PSN,并為PSN與下一個期望PSN不相匹配的排隊分段提供存儲空間。還必需知曉缺少的分段的計時器和或時間戳。該參數可用于超時處理,當確認缺少的分段是否是不可恢復時,如下面將討論。分段排隊和計時器/時間戳會消耗大量的存儲空間,需要的存儲空間由所使用的表達機制所決定。這將增大系統成本(需要更大的存儲器來追蹤該狀態),并由于必需頻繁訪問大量數據(造成很大的總線/RAM訪問量和擊潰(thrashing)高速緩沖存儲器)而降低系統效率。為避免由于本地系統資源原因造成分段丟失所需要的分段和計時器/時間戳的數量,可以根據捆綁信道特性計算得出。可能需要排入隊列的最大分段的數量NumEntries可由下式估算NumEntries=PacketRate氺(MaxDelayMs/1000)氺NumChannels其中PacketRate是每秒每信道接收到的分段數量,MaxDelayMs是任意分段的最大延遲,以毫秒為單位,和N咖Channels是BCS中信道的數量。注意當信道負載不對稱時,該公式變為NumEntries=AggregatePacketRate氺(MaxDelayMs/1000)其中AggregatePacketRate是在BCS的全部信道上接收分段的速率,以分段/秒為單位。這樣,如果期望的分組速率是每秒每信道88k分段,最大信道延遲是23ms,且有4個信道NumEntries二88000*(23/1000)*4=8096條目(entries)/捆綁會i舌如果使用標準雙重連接列表(standarddoublylinkedlist)(假設每條目12字節),將消耗大約95k字節的存儲空間/捆綁會話。如果CM需要支持至少16個會話,則將消耗將近1.5MB的RAM。組織得不好的分段隊列可能導致更差的CM轉發性能,因為分段必須按照PSN順序轉發,但是常常不按PSN順序接收。CM需要頻繁地管理隊列(增加/移除/發現分段和計時器/時間戳),且隊列組織會影響操作的執行量。一種存儲分段和時間戳以便重排序的方法是使用稀疏陣列(也稱為向量)。對于給定的分段,該陣列可使用分段PSN的哈希值(hash)來訪問。在本發明的一實施例中,該稀疏陣列是16比特值陣列。這是可以選擇的,因為它可以是CPU的原比特數(naturalsize),在所使用的存儲器有限的情況下,它允許CM知曉大量的未完成的重排序分段。其它實施例可以使用32比特值或更多比特。如果捆綁信道特性(例如,PacketRate,MaxDelayMs和NumChannels)建議存儲分段只需較少的條目,則陣列值可以具有不同尺寸(例如8比特)。如果有較多信道,則需要更大的條目(例如32比特)。硬件實施可選擇地使用任意斷的比特尺寸(例如12比特),定制到與可選擇的硬件環境相匹配。如果PSN是16比特值,意味著直接映射稀疏陣列將有64k個條目;如果一個條目是16比特長,將消耗128k字節。這樣效率會較差,雖然只有足夠的分段需要滿足MaxDelayMs值(在先前的實例中差不多8k個條目)。結果,稀疏陣列的尺寸比64k條目小。注意在軟件實現上,可以方便地使稀疏陣列尺寸為2的次冪(apoweroftwo)。這樣使得稀疏陣列索引和PSN相互一致地繞回零,使追蹤當前偏移更容易。硬件實現上(或更復雜的軟件實現)能夠允許稀疏陣列尺寸不同于2的次幕(apoweroftwo)。由上式計算得到的NumEntries可以按需要向上舍入或向下舍入,以使其為2的次冪(向下舍入使用較少的存儲空間但是具有不能緩沖足夠多分段的風險;向上舍入要使用較多的存儲空間,但是保證不會由于在高分段速率下因緩沖器約束而丟棄分段)。除非在有限壓力測試中,高分段速率是不太可能的,在這種情況下向下舍入是可以接受的。圖6所示為基于先前的重排序實例的稀疏陣列的狀態。該稀疏陣列具有M個條目。注意在所示的實施例中,0xffff是用于指示"空時隙(slotempty)"的特殊值,"空時隙(slotempty)"表示分段未排入隊列,超時未激活。如果毫秒時鐘計數是0x7fff(將使0xffff得以存儲),則時鐘計數增加到0x0000,并存儲0x8000。這將造成分段緩沖時間比最大超時(timeout)長l毫秒,但是這一差異是DOCSIS規范所允許的。稀疏陣列中的這些條目由與分段關聯的PSN來索引。在本發明的一實施例中,哈希值只是由相等于陣列尺寸的模數簡化后的PSN:SparseArrayIndex=PSNmodArraySize因此,如果陣列尺寸是4096,則PSN1、4098和7121的陣列索引如下:稀疏陣列索引二lmod4096二1稀疏陣列索引=4098mod4096二2稀疏陣列索引=7121mod4096二3025分段索引N存儲于稀疏陣列條目中,是由分段緩沖地址計算得出;當在下行信道接收到一個分段,可以通過直接存儲訪問(躍A)存入緩沖器。在本實例中,緩沖器是通過32-比特地址進行尋址。這一地址過長以至于無法存儲到稀疏陣列條目中可用的15-比特字段中。然而,由于DMA緩沖器在存儲器中是鄰近的,并且具有相同的尺寸,分段索引可以從存儲該分段的緩沖器的地址計算得出。Segmentlndex=(BufferAddress-BaseAddress)/BufferSize例如,如果DMA緩沖器的BaseAddress是0x80201380,每個緩沖器是2048字節,則地址為0x80205b80和0x80226b80的緩沖器的分組索引為Segmentlndex=(0x80205b80—0x802013,/2048=9Segmentlndex=(0x80226b80—0x80201380)/2048=75同樣,從其索引中可以計算出指針BufferAddress=(Segmentlndex氺BufferSize)十BaseAddress可以使用與先前的實例相同的緩沖器BufferAddress=(9*2048)+0x80201380=0x80205b80BufferAddress=(75*2048)+0x80201380=0x80226b80如前所述,當分段在下行信道中到達,如果PSN與捆綁會話的下一個期望PSN不匹配,則CM將緩沖該分段并為缺少的分段啟動超時計時器。CM將緩沖器地址轉換為分段索引,并哈希(hash)PSN以查找稀疏陣列中的條目來存儲分段索引。之后,對于從下一個期望PSN到被接收分段的PSN的每一個條目,CM計算當前毫秒時間(模數15比物,MSB置1),存儲該時鐘計數以指示間隔形成的時間。該時鐘計數可以當作超時值。例如,如果下一個期望PSN是10,在時刻40帶有PSN13的分段到達,并通過DMA存入地址為0x80226b80(分段索引為75)的緩沖器,則稀疏陣列如圖7所示。隨后,如果缺少的分段之一到達(其在稀疏陣列中有超時值),該分段索引重寫超時值,有效地消掉該條目的超時。例如,在時刻41帶有PSN11的分段到達并存入地址為0x80205b80的緩沖器(分段索引為9)中,則稀疏陣列如圖8所示。如果帶有PSN10和12的分段從未達到(例如由于錯誤而丟失),一旦MaxDelayMs時間過去,則排在隊列中的分段將從隊列中釋放出來。一旦超時期到或分段從隊列中轉發,該條目值置為0xfffff以指示該時隙目前未使用,如圖9所示。注意計時器值和分段索引映射到15-比特(另一比特用于標記其它15個比特是表示計時器值還是分段索引)僅是示例性的。這個具體設置并不意味著對本發明的限制。如本領域技術人員所知,其它實施例也是可行的。VI、計算環境(computingcontext)在本發明的實施例中,本文中描述的本發明的處理過程是使用由一個或多個計算機系統所執行的控制邏輯(軟件)來實現的,諸如圖io所示的計算機系統1000。計算機系統1000是能夠執行本文所描述的功能的任意一種計算機系統。在本發明的實施例中,這樣的計算機系統整合在通信設備中,諸如CM130或CMTS110。計算機系統1000包括一個或多個處理器(也稱為中央處理單元,或CPU),如處理器1004。處理器1004連接至通信總線1006。計算機系統1000還包括存儲器1008、如隨機存儲器(RAM)。主存儲器1008存儲有控制邏輯(計算機軟件)和數據。計算機系統1000還包括一個或多個輔存儲裝置1010。輔存儲裝置1010可包括例如硬盤驅動器1012和或移動存儲裝置或驅動器1014。移動存儲驅動器1014可以是緊湊型盤片驅動器、光存儲裝置等。移動存儲驅動器1014與移動存儲單元1018交互。移動存儲單元1018包括計算機可用或可讀存儲媒介,其上存儲有計算機的(控制邏輯)和或數據。移動存儲單元1018可以是光盤、閃存裝置或任何其它計算機數據存儲裝置。移動存儲驅動器1014以現有的方式讀和或寫移動存儲單元1018。計算機系統1000還包括通信或網絡接口1024。通信接口102使能計算機系統1000與遠程設備進行通信。例如,通信接口1024允許計算機系統1000通過通信網絡或路徑1026進行通信。網絡接口1024可以通過有線或無線連接來接駁。控制邏輯可以經由通信路徑1026傳送給計算機系統1000和從計算機系統1000傳出。具體地說,計算機系統1000可以經由通信路徑1026接收和發送由控制邏輯調制的載波(電磁信號)。任何包括計算機可用或可讀媒介、其上存儲有控制邏輯(軟件)的裝置或產品在本文中稱為計算機程序產品或程序存儲裝置。其包括但不限于,計算機系統1000、主存儲器1008、硬盤1012和或移動存儲單元1018。這樣的計算機程序產品中存儲有控制邏輯,當一個或多個數據處理裝置執行該控制邏輯,能使所述數據處理裝置按照本文中描述的本發明實施例進行操作。具體地說,以上描述的功能,如圖2-5所示和相關的文字和實例,能夠嵌入一個或多個計算機程序產品中。除了本文中所描述的這些實施例以外,本發明可以通過軟件、硬件和或操作系統實現。任何適用于執行本文所描述的功能的軟件、硬件和操作系統均可使用。VII、結束語上面的討論展示了本發明的以下特征在隊列中增加或移除條目包括讀取和寫入單個值(例如16-比特)。無需像傳統鏈接列表那樣管理節點指針。查找分段應當存儲的位置包括哈希PSN,而無需在排入隊列的分段的列表中進行全面搜索。按照PSN順序轉發分段包括增加索引值(下一個期望的PSN),無需走遍鏈接的列表。采用與分段相同的機制管理超時/計時器,無需分立的存儲器或狀態。使用減法(CurrentTimeMs-SparseArray[NextPSN]>=MaxDelayMs),CM可以進行檢驗以了解計時器是否已到期。雖然以上描述了本發明的各種實施例,應當理解,其目的僅在于舉例說明,而非意圖限制本發明。本領域的技術人員知悉,在不離開本發明的精神和范圍情況下,在形式上和細節上還可做各種的改變。因此,本發明的保護范圍不當僅局限于以上描述的任一實施例,而應該依照權利要求及其等同來限定。權利要求1、一種對在捆綁信道集的多個信道中接收到的多個數據分段進行接收和重排序的方法,其特征在于,包括A.確認接收到的分段的序號是否與期望序號相匹配;且,如果匹配,(i)轉發所述分段以作進一步處理;(ii)增加期望序號的計數;及(iii)轉發排在隊列中的與所述期望序號相對應的所有分組、及緊接隨后的序號小于下一個缺少分段的序號的分組;如果接收到的分段的序號與期望序號不匹配,(iv)在存儲器中將接收到的分段排入隊列,其位置地址被轉換為分段索引并存儲在稀疏陣列中;B.確認先前的分段是否有丟失。2、根據權利要求1所述的方法,其特征在于,所述分段包括數據分組。3、根據權利要求1所述的方法,其特征在于,所述將接收到的分段排入隊列包括(a)將接收到的分段寫入存儲器中的緩沖區(b)將緩沖器地址轉換為分段索引;(c)哈希(hash)接收到的分段的序號以將索引創建到稀疏陣列中;及(d)將分段索引寫入稀疏陣列中由稀疏陣列索引指示的位置上。4、根據權利要求3所述的方法,其特征在于,所述哈希序號包括通過對應于稀疏陣列尺寸的模數來簡化序號。5、根據權利要求3所述的方法,其特征在于,所述地址轉換步驟包括從緩沖器地址減去基本地址(baseaddress)得到差值,用所述緩沖器尺寸去除所述差值得到所述分段索引。6、根據權利要求1所述的方法,其特征在于,所述步驟A.(iii)包括(a)哈希排在隊列中分段的序號以生成稀疏陣列索引;(b)從稀疏陣列的位置中讀取排在隊列中分段的序號,所述位置由稀疏陣列索引指示;(c)將排在隊列中分段的分段索引轉換為存儲有所述排在隊列中分段的緩沖器地址;(d)從所述緩沖器地址所指的存儲器位置處讀取所述排在隊列中的分段。7、根據權利要求6所述的方法,其特征在于,所述哈希排在隊列中分段的序號包括通過對應于稀疏陣列尺寸的模數來簡化所述排在隊列中分段的序號。8、根據權利要求1所述的方法,其特征在于,所述步驟B至少包括以下之一(i)確認捆綁信道集中的每一信道是否至少有一個排在隊列中的分段;(ii)確認缺少的分段已經缺少超過預定的時間間隔;且其中步驟(b)進一步包括(iii)如果(i)或(ii)確認為是,增加期望序號的計數到下一個接收到的分段的序號。9、一種計算機程序產品,包括其上存儲有控制邏輯的計算機可讀媒介,所述控制邏輯使能計算機對在捆綁信道集的多個信道中接收到的多個數據分段進行接收和重排序,其特征在于,所述控制邏輯包括A.第一計算機可讀程序代碼裝置,用于使計算機確認接收到的分段的序號是否與期望序號相匹配;且,如果匹配,使計算機執行以下步驟(i)轉發所述分段以作進一步處理;(ii)增加期望序號的計數;及(iii)轉發排在隊列中的與所述期望序號相對應的所有分組、及緊接隨后的序號小于下一個缺少分段的序號的分組;如果接收到的分段的序號與期望序號不匹配,使計算機執行以下步驟(iv)在存儲器中將接收到的分段排入隊列,其位置地址被轉換為分段索引并存儲在稀疏陣列中;B.第二計算機可讀程序代碼裝置,用于使計算機確認先前的分段是否有丟失。10、根據權利要求9所述的計算機程序產品,其特征在于,所述分段包括數據分組。11、根據權利要求9所述的計算機程序產品,其特征在于,所述將接收到的分段排入隊列包括(a)將接收到的分段寫入存儲器中的緩沖區(b)將緩沖器地址轉換為分段索引;(c)哈希(hash)接收到的分段的序號以將索引創建到稀疏陣列中;及(d)將分段索引寫入稀疏陣列中由稀疏陣列索引指示的位置上。12、根據權利要求ll所述的計算機程序產品,其特征在于,所述哈希序號包括通過對應于稀疏陣列尺寸的模數來簡化序號。13、根據權利要求ll所述的計算機程序產品,其特征在于,所述地址轉換包括從緩沖器地址減去基本地址(baseaddress)得到差值,用所述緩沖器尺寸去除所述差值得到所述分段索引。14、根據權利要求9所述的計算機程序產品,其特征在于,所述轉發排在隊列中的分組包括(a)哈希排在隊列中分段的序號以生成稀疏陣列索引;(b)從稀疏陣列的位置中讀取排在隊列中分段的序號,所述位置由稀疏陣列索引指示;(c)將排在隊列中分段的分段索引轉換為存儲有所述排在隊列中分段的緩沖器地址;(d)從所述緩沖器地址所指的存儲器位置處讀取所述排在隊列中的分段。15、根據權利要求14所述的計算機程序產品,其特征在于,所述哈希排在隊列中分段的序號包括通過對應于稀疏陣列尺寸的模數來簡化所述排在隊列中分段的序號。16、根據權利要求9所述的計算機程序產品,其特征在于,所述第二計算機可讀程序代碼裝置包括用于使計算機執行至少以下之一的代碼裝置(i)確認捆綁信道集中的每一信道是否至少有一個排在隊列中的分段;(ii)確認缺少的分段已經缺少超過預定的時間間隔;且其中當(i)或(ii)確認為是,所述第二計算機可讀程序代碼裝置進一歩包括用于使計算機執行以下步驟的代碼裝置(iii)增加期望序號的計數到下一個接收到的分段的序號。17、一種對在捆綁信道集的多個信道中接收到的多個數據分段進行接收和重排序的通信設備,其特征在于,包括處理器;及計算機控制邏輯,其包括A.第一計算機可讀程序代碼裝置,用于使計算機確認接收到的分段的序號是否與期望序號相匹配;且,如果匹配,使計算機執行以下步驟(i)轉發所述分段以作進一步處理;(ii)增加期望序號的計數;及(iii)轉發排在隊列中的與所述期望序號相對應的所有分組、及緊接隨后的序號小于下一個缺少分段的序號的分組;如果接收到的分段的序號與期望序號不匹配,使計算機執行以下步驟(iv)在存儲器中將接收到的分段排入隊列,其位置地址被轉換為分段索引并存儲在稀疏陣列中;B.第二計算機可讀程序代碼裝置,用于使計算機確認先前的分段是否有丟失。18、根據權利要求17所述的通信設備,其特征在于,所述分段包括數據分組。19、根據權利要求17所述的通信設備,其特征在于,所述將接收到的分段排入隊列包括(a)將接收到的分段寫入存儲器中的緩沖區(b)將緩沖器地址轉換為分段索引;(c)哈希(hash)接收到的分段的序號以將索引創建到稀疏陣列中;及(d)寫入分段索引到稀疏陣列中由稀疏陣列索引指示的位置上。20、根據權利要求19所述的通信設備,其特征在于,所述哈希序號包括通過對應于稀疏陣列尺寸的模數來簡化序號。21、根據權利要求19所述的通信設備,其特征在于,所述轉換緩沖器地址包括從緩沖器地址減去基本地址(baseaddress)得到差值,用所述緩沖器尺寸去除所述差值得到所述分段索引。22、根據權利要求19所述的通信設備,其特征在于,所述寫入分段索引包括寫入時鐘計數,與接收到的分段相關聯,帶有分段索引。23、根據權利要求17所述的通信設備,其特征在于,所述轉發排在隊列中的分組包括(a)哈希排在隊列中分段的序號以生成稀疏陣列索弓I;(b)從稀疏陣列的位置中讀取排在隊列中分段的序號,所述位置由稀疏陣列索引指示;(c)將排在隊列中分段的分段索引轉換為存儲有所述排在隊列中分段的緩沖器地址;(d)從所述緩沖器地址所指的存儲器位置處讀取所述排在隊列中的分段。24、根據權利要求23所述的通信設備,其特征在于,所述哈希排在隊列中分段的序號包括通過對應于稀疏陣列尺寸的模數來簡化所述排在隊列中分段的序號。25、根據權利要求17所述的通信設備,其特征在于,所述第二計算機可讀程序代碼裝置包括用于使計算機執行至少以下之一的代碼裝置(i)確認捆綁信道集中的每一信道是否至少有一個排在隊列中的分段;(ii)確認缺少的分段已經缺少超過預定的時間間隔;且其中當(i)或(ii)確認為是,所述第二計算機可讀程序代碼裝置進一步包括用于使計算機執行以下步驟的代碼裝置(iii)增加期望序號的計數到下一個接收到的分段的序號。全文摘要本發明涉及對在捆綁信道集的多個信道中接收到的多個數據分段進行接收和重排序的方法、系統和計算機程序產品。包括確認接收到的分段的序號是否與期望序號相匹配。如果匹配,處理過程包括轉發所述分段以作進一步處理;增加期望序號的計數;及轉發排在隊列中的與所述期望序號相對應的分組、及緊接隨后的序號小于下一個缺少分段的序號的分組。如果接收到的分段的序號與期望序號不匹配,在存儲器中將接收到的分段排入隊列,將其位置地址轉換為分段索引。將分段索引存儲在稀疏陣列中。文檔編號H04L12/28GK101485152SQ200780025064公開日2009年7月15日申請日期2007年10月5日優先權日2006年10月6日發明者丹尼·蓋伊,大衛·普倫,奈基·潘特利斯申請人:美國博通公司