專利名稱:分組緩存管理的制作方法
技術領域:
本發明涉及分組緩存管理,尤其涉及分組網絡和同步網絡之間接口處的分組緩存管理。
背景技術:
通信網絡通常使用兩個適當建立的傳輸機制中的一個;電路交換傳送和分組交換(或僅分組)傳送。舊系統傾向于使用前者,大體上將時分復用(TDM)用于特定頻帶,以將時域分為相等持續時間的時隙。電路是通過集合連續時幀內的相同時隙位置來定義的。分組網絡通常并不將固定資源分配給發射機,而是通過使用分組標題、網絡交換機和路由器內包括的目的地地址信息盡量路由數據的分組。分組網絡正逐步受到網絡運營商的歡迎,因為它們通常提供更優的性能,且與相當的電路交換網絡相比,其安裝和維護更為經濟。
通常,電信網絡使用時分復用(TDM)電路來互通網絡交換機(或交換局)。但因為上述性能和成本原因,許多運營商和租用線路提供商(向業務提供商提供帶寬)正逐步以分組網絡代替TDM電路。在很多情況下,將完全在分組網絡上提供到交換“會話”的交換。但這很可能在多年之后才能實現,某些運營商將繼續依賴于TDM電路提供全部或至少一部分網絡。這需要分組網絡和TDM“傳統”設備之間的互通。
圖1示出了載波網1,它是諸如以太網、ATM或IP網的分組交換網。所述載波網提供租用線路業務以互通第一和第二客戶住宅2、3,所述客戶住宅都使用TDM發射機4、5以處理多路信息流。所述信息流的性質并不重要,盡管它們可能是話音呼叫、視頻會議呼叫或數據呼叫。為了方便所述TDM流的互通,所述載波網1必須效仿適當的TDM電路。
TDM鏈路是具有以某一預定頻率操作的業務時鐘所管理的恒定(傳輸)比特率的同步電路。相反,在分組網絡中,從入口發送分組的頻率與所述分組到達出口的頻率之間并無直接聯系。再次參照圖1,為了提供TDM電路效仿,分組網絡邊界處的接口節點6、7(以下稱為TDM到分組設備(TPD)和分組到TDM設備(PTD))必須以某種方式提供TDM鏈路和分組網絡之間的互通,以使出口一側的TDM鏈路與入口一側的TDM鏈路同步。換言之,入口一側的客戶住宅的TDM業務頻率(fservice)必需盡可能精確地在分組網絡的出口處復制(fregen)。
為了補償經由所述分組網絡的傳輸的突發性質,在PTD處接收的分組被置于緩存器內,所述分組從所述緩存器的前部取得以經由呼出TDM鏈路發送。所述緩存器的大小被最優化為,大到足以阻止所述分組網絡上暫時增加的傳輸延遲所引起的所述緩存器完全漏泄,但小到足以阻止顯著影響向終端用戶提供的業務的端到端傳輸延遲(等待時間)。實際上,所述緩存器包括用于存儲所接收分組的數據有效負載的存儲區。數據被以大小64字節的塊或“區組”存儲起來。在特定分組的有效負載的大小大于64字節時,每個區組(除最后一個區組之外)都依次維持指向下一個區組的指針(即,所述數據被存儲為“鏈接表”)。所述緩存器還包括維持分組在緩存器內的位置的有序列表的隊列。所述隊列內的每個條目都包括分組的第一個與最后一個區組,以及構成所述分組的區組量。
業務與再生頻率內的任何長期失配的結果是PTD內的緩存器將會填滿或清空,這取決于再生時鐘(fregen)是慢于還是快于原始時鐘(fservice),從而引起數據丟失和業務降級。同樣,除非原始時鐘(fservice)的相位由再生時鐘(fregen)的相位跟蹤,否則頻率跟蹤內的時滯將會導致緩存器在所述出口處的操作水平的微小卻不良的變化。
必須提供一種可靠方法,使分組網絡出口處的頻率與相位與所傳送TDM內的時鐘的頻率與相位同步。一種方法是使用一種慮及所述分組網絡上的傳輸延遲從發送者并入分組的時戳恢復傳送時鐘頻率與相位的算法。由于所述分組網絡上的傳輸時間對于任何特定分組而言都是不可預知的,所以可能會使用一種自適應算法。例如,某種形式的平均可能會用于考慮所述傳輸延遲內的變化。至于ATM,ITU標準I.363.1和ATM“論壇標準”af-vtoa-0078概括地解釋了自適應時鐘恢復機制的概念。但實際上,TDM時鐘的頻率與相位內始終會存在一些微小的偏差,導致所述緩存器的緩慢漏泄或填充。
由于分組網絡的性質,分組可能會使用該分組網絡內的任何兩個位置之間的若干路由,例如交換局、路由器之間的路由等。每個分組通過所述分組網絡從TPD傳播到PTD所花費的時間可能會受到所述分組使用的各個路由的等待時間、業務負載、所提供帶寬以及其它因素的影響。因此,所述分組到達PTD的順序可能與TPD傳送它們的順序有所不同。
當所傳送分組到達PTD的分組接收部分時,所述分組必需在TDM數據流可被提取之前以其原始傳輸順序放置。這種重新排序是通過使用“重新定序引擎”實現的,在所述分組到達時,所述“重新定序引擎”將該分組以最初傳送它們的順序進行排序。這隨后允許以正確的順序從所述分組負載中提取原始TDM數據。典型的重新定序引擎維持兩個指向PTD隊列的指針。第一指針指向所述隊列內的應當下一個讀取的分組,而另一指針指向具有所述隊列內任何一個分組的最高序列號(SN)的棧內的分組。讀指針被初始化為跟隨所述重新定序引擎的初始化接收的第一分組的序列號。
這種方法的潛在問題是,第一個所接收分組可能是被很早接收的“欺詐性分組”,因為先前分組被阻塞在所述分組網絡內。讀指針與所述隊列大小將共同定義所述隊列內將會允許的分組序列號的范圍。所述的已接收分組的結果是,所述范圍可能會排除所有后續分組。所述隊列將會清空,且無數據可用于TDM輸出引擎。
發明內容
根據本發明的第一方面,提供了一種使隊列的填充與輸入分組流實現同步的方法,所述隊列存在于分組網絡與同步數據鏈路之間的接口處,其用于存儲識別從所述分組網絡接收分組的分組識別符,所述方法包括在所述接口處接收分組;識別所述分組的序列號;將指向將從所述隊列讀取的下一分組識別符的讀指針設置成某個值,該值為小于所識別序列號的預定量。
本發明第一方面的實施例使得如果檢測到所述隊列的輸出與輸入流已經異步到因輸入分組太早或太遲到達而放棄其的程度,則重新同步所述輸出與所述輸入分組流。
在本發明第一方面的優選實施例中,所述同步數據鏈路是可能會被用于傳送諸如話音呼叫的通信數據的TDM鏈路。
一般而言,所述隊列形成分組緩存器的一部分,所述緩存器包括用于存儲分組數據的存儲器。所述隊列被設置為存儲分組識別符,所述分組識別符識別從所述分組網絡接收的分組,以及所述分組在所述緩沖存儲器內的對應存儲位置。優選的是,所述隊列被實施為固定大小的圓形隊列。隊列范圍被定義為從讀指針到讀指針與所述隊列大小之和的分組序列號的范圍。具有所述隊列范圍內的序列號的到達分組被所述隊列接受。具有所述隊列范圍之外的序列號的分組因為遲或早被拒絕。由于讀指針增加,所以所述隊列范圍增加。根據本發明移動所述的讀指針將會導致所述隊列范圍以相同數量改變。
同樣提供了一種管理隊列的方法,所述方法包括確定所述隊列的輸出與所述隊列的填充之間的同步水平,以及在所述水平降至某一門限值之下時執行所述重新同步方法。
根據本發明第二方面,提供了一種用于將分組網絡接口到同步數據鏈路的網關,其具有耦合到分組網絡以從該網絡接收分組的輸入端,以及耦合到所述同步數據鏈路以將同步數據輸出到此鏈路的輸出端,所述裝置包括
緩存器,其具有存儲器和隊列,所述存儲器用于存儲所接收分組數據,所述隊列用于存儲分組識別符,所述分組識別符識別從所述分組網絡接收的分組,以及所述分組在所述緩沖存儲器內的對應存儲位置;處理裝置,其用于識別所接收分組的序列號,并將指向將從所述隊列讀取的下一個分組識別符的讀指針設置為某個值,該值為小于所識別序列號的預定量。
根據本發明第三方面,提供了一種控制隊列的平均長度的方法,所述隊列存在于分組網絡與同步數據鏈路之間的接口處,用于存儲識別從所述分組網絡接收分組的分組識別符,所述方法包括保持指向將從所述隊列讀取的下一個分組識別符的讀指針不變;通過提供欠載運行指令并保持所述讀指針不變來響應從同步數據鏈路發射機接收下一個分組請求,從而延長平均隊列長度;以及通過使所述同步數據鏈路發射機識別縮小的分組并使所述讀指針加1來響應從所述發射機接收下一個分組請求,從而縮短平均隊列長度。
本發明第三方面的實施例提供了一種將平均隊列長度設置為由適當控制器確定的最佳值的機制,所述控制器監控所述隊列長度,能夠處理較遲到達的分組內的短期波動,而不會將不必要的漫長等待時間引入數據傳輸過程。
所述縮小的分組可能是所述讀指針指向的分組識別符當前指向的分組。當所述分組的實際大小無法縮短時,即所述分組內的數據量保持不變時,向輸出引擎提供的數據被修改為指示所述分組大小被縮短。所述輸出引擎將僅傳送所減少數量的數據(可能為零),同時將所述分組占用的所有存儲空間分配到空閑存儲集合。所述的讀指針將前移到指向所述隊列內的下一個時隙的點。
在本發明的實施例中,所述減少平均隊列長度的步驟包括修改分組數據的標題的分組長度字段,所述分組數據存儲在緩沖存儲器內并由所述分組識別符指向,而所述分組識別符由所述的讀指針指向。優選的是,分組數據被以一個或多個區組存儲在所述緩沖存儲器內,且被作為縮短操作的一部分而修改的是前端區組的描述符。
應當理解的是,本發明第三方面尤其適用于其中所述同步數據鏈路是TDM鏈路的體系結構。實施細節如以上本發明第一方面所述。
根據本發明第四方面,提供了一種用于將分組網絡接口到同步數據鏈路的網關,其具有耦合到分組網絡以從該網絡接收分組的輸入端,以及耦合到所述同步數據鏈路以將同步數據輸出到此鏈路的輸出端,所述裝置包括緩存器,其具有存儲器與隊列,所述存儲器用于存儲所接收分組數據,所述隊列用于存儲分組識別符,所述分組識別符用于識別從所述分組網絡接收的分組,以及所述分組在所述緩沖存儲器內的對應存儲位置;以及控制裝置,其用于保持指向將從所述隊列讀取的下一個分組識別符的讀指針不變,通過以提供欠載運行指令并保持所述讀指針不變響應從所述同步數據鏈路發射機接收下一個分組請求,延長平均隊列長度,以及通過以使同步數據鏈路發射機識別縮小的分組并使所述讀指針加1響應從所述發射機接收下一個分組請求,縮短平均隊列長度。
優選的是,所述控制裝置包括用于監控所述隊列長度、用于確定最佳平均隊列長度、以及用于啟動延長與縮短操作以將所述平均隊列長度維持在所述最佳平均長度的裝置。
通過將本發明第一與第三方面的方法組合起來,并通過實施組合本發明第一與第三方面的特征的網關可實現顯著優點。
圖1示出了兩個TDM鏈路經由分組網絡的互通;圖2示出了被實施為圓形緩存器的PTD的隊列;
圖3A示出了從TPD傳送的分組流;圖3B示出了由PTD接收的數據流;圖4是說明隊列寫算法的流程圖;圖5是說明隊列讀算法的流程圖;以及圖6是說明HRSN更新算法的流程圖。
具體實施例方式
設想圖1所示的情況,其中位于對應客戶住宅2、3內的TDM發射機4、5經由TDM鏈路耦合到載波網絡1的接口節點6、7(所述接口節點以下稱為TDM到分組設備(TPD)和分組到TDM設備(PTD)),分組從TPD 6的傳輸速度是等時的并由適當振蕩器8所提供的業務頻率(fservice)確定。但是,分組到達PTD 7的速度會被中介分組網絡擾亂。分組通常將以通過改變延遲量而分開的突發到達。連續分組與突發之間的延遲將會依據所述網絡內的業務量而有所不同。所述網絡的特點是不確定性的,但是長期而言到達目的地的速度將會與從信源離開的速度相等。
在TPD 6內,時戳在傳輸之前被置于每個分組的標題內。所述時戳此處被稱為“遠程時戳”,是自從初始化之后在輸入TDM鏈路上接收的比特運行總數(所述數量的卷繞將會避免計數器溢出)。
來自PTD 7內的TDM“輸出”引擎的輸出是等時的,并由文中稱為“再生”頻率(fregen)的第二業務頻率確定。這由數字控制振蕩器(DCO)9提供。所述TDM輸出引擎從分組延遲改變(PDV)緩存器10提供。如果在所述TDM輸出端要求傳送時所述緩存器10具有零個分組,則將會發生不良的欠載運行。為了使欠載運行事件最小化,必須將PDV緩存器10建立為,包括足夠分組以為大部分分組間延遲提供TDM輸出。但是,所述PDV緩存器10無法被制成任意大,因為這會直接增加端到端等待時間,所述等待時間一般被要求為盡可能的短,最大的可容忍等待時間取決于應用。例如,與數據相比話音需要更短的等待時間。
當分組到達PTD 7的分組輸入端時,所述分組被置于PDV緩存器10內。所述分組數據被作為一個或多個“區組”的鏈接鏈存儲在緩沖存儲器內。每個區組都包括記錄所述鏈內的區組量的標題或描述符,以及指示所述區組是所述鏈內的第一區組、最后一個區組、中間的區組還是僅是所述鏈內的區組的標志。區組還包括存儲實際分組數據的數據區。指向所述分組存儲位置的指針(“存儲指針”)被置于分組隊列內。如上所述,所述存儲指針包括所述分組的第一區組與最后一個區組的地址以及所述分組內的區組數。所述PTD 7維持TDM輸出端計數,所述計數為在呼出TDM鏈路上發送的比特運行總數——所述計數被初始化為第一個所接收的遠程時戳。使用所述計數以及自適應時鐘控制算法可得到所接收分組的本地時戳,所述自適應時鐘算法通過使用遠程與本地時戳來同步業務與再生時鐘頻率。技術人員應當理解的是,各種不同的算法可用于此目的,此處不再贅述。
如圖2所示,所述隊列被建造為圓形緩存器。應當理解的是,由于可能的序列號數量大于所述隊列內可用于存儲分組的時隙量,所以必需解釋每個分組的序列號,并將其映射到所述隊列內的正確時隙。通過將可能的隊列大小限制為2的乘方(即,2、4、8、16、32、64、128、256、512、1024時隙),將分組映射到隊列時隙的操作可通過從所述序列號屏蔽適當數量的最高有效位,從而生成隊列時隙地址來實現。
如上所述,由于所述分組網絡的性質,分組可能不會順序到達PTD 7。當從所述TPD 6發送所述分組時,所述分組與序列號一起被添加在RTP或偽線協議標題內。下一個分組接收比先前分組大一的序列號。由于該序列號定義原始傳輸順序,所以該序列號是在PTD內重新排序所述分組的關鍵。當在PTD 7內接收所述分組時,一旦從所述分組的RTP或偽有線協議標題提取每個分組即通過檢查所述每個分組的序列號重新獲得所述原始順序。
圖3A示出了每隔一定間隔以原始傳送順序離開TPD 6的分組接口的分組的實例。在此實例中,將被傳送的第一分組帶有序列號“1”;在此之后所述分組以序列號順序跟隨。圖3B示出了TPD 6與PTD 7之間的不同路由如何影響所述分組到達PTD的順序。這是分組如何以與其原始傳輸順序不同的順序到達PTD的實例。如果所述PTD 7嘗試以圖3B的示例接收順序從所述分組中提取原始TDM信道數據,所述PTD 7將會失敗,因為所述TDM數據失序并因而有訛誤。
在起動所述分組流之后,在所述TDM輸出引擎從緩存器請求第一分組之前存在短暫的延遲。所述延遲為所述分組流的最初幾個分組,即圖3B實例中的分組1、2和5提供到達時間。雖然分組3和4在分組5之后到達,但由于分組3和4順序在前,因而對應指針在隊列內被置于分組5之前。在從緩存器請求分組3和4之前,初始延遲為所述分組3和4提供到達時間。這種重新定序過程一直繼續,直至此實例中的所有十個分組到達,且以TPD傳送所述分組的原始順序將對應存儲指針置于隊列內。一旦所述輸出引擎從緩存器中讀出分組,且從分組區組提取分組數據,所述輸出引擎即會將組成該分組的(多個)區組釋放到空閑區組集合。這允許可將新的分組數據寫到這些區組。圖4是說明用于將分組寫到緩存器/隊列的算法的流程圖,而圖5是說明用于從緩存器/隊列讀取分組的算法的流程圖。
所述隊列與兩個外部指針相關1)讀指針(RP),其包括將從所述隊列讀取的下一分組的序列號,即指向隊列前部的指針。
2)這樣一種指針,其包括將被成功加入所述隊列的帶有最高序列號的分組的序列號。這種指針被稱為最高接收序列號(HRSN)指針,即指向所述隊列的末尾或末端的指針。圖6示出了用于更新HRSN指針的算法。
所述的讀指針和HRSN指針被用于如下計算所述隊列的長度所述隊列的長度=(HRSN指針-讀指針)+1該值作為所述隊列的長度,即使其可能包括間隙。所述隊列內留有的間隙易于并未到達的分組以其原始傳輸順序的插入。由于所述間隙可由恰當分組在所述的讀指針加1而超過所述位置之前的任何時刻填充,因此所述間隙必須被計入隊列長度計算。(應當注意的是,該公式并未考慮到HRSN指針合理地小于讀指針的情況。)如前所述,所述隊列的平均長度(與固定值的隊列“大小”不同,在圖3的實例中,所述隊列長度為8)對于確定傳輸路徑的等待時間和系統處理分組網絡傳輸的突發性質的能力相當重要。一般而言,微處理器將會用于監控與調整平均隊列長度。
用于將分組置于所述隊列內的算法可如下概括表示(確切地說,應當參考將分組存儲指針置于所述隊列內,但為簡化起見此處使用術語分組)1.在起動所述分組流時,將到達的第一分組被置于所述隊列的前部,無論該分組的序列號為何。讀指針與HRSN指針都被設置為所述第一分組的序列號。
2.如果帶有當前讀指針與HRSN指針之間的序列號的分組到達,則其在所述隊列內被插入該序列號映射到的位置處。
3.如果帶有大于HRSN指針當前值并且小于“讀指針與隊列大小之和”的序列號的分組到達,則其被置于所述隊列的該分組序列號映射到的位置處。然后所述HRSN指針被更新為新增加分組的序列號。
4.如果帶有與讀指針指向的序列號相比更小的序列號的分組到達,則所述分組由于“較遲”到達而被放棄。
5.如果帶有大于“讀指針與隊列大小之和”的序列號的分組到達,則該分組被視為“早分組”而被放棄。(例如,讀指針為7,隊列大小為16個分組,且接收到帶有序列號25的分組。由于25大于“讀指針+隊列大小”=16+7=23,因此分組為早分組)6.如果與所述隊列內已存在的分組帶有相同序列號的分組到達(即,復制序列號),則該新分組被視為“遲分組”而被放棄。
因為所述分組序列號內的比特量是有限的,所以所述序列號將在某一時點從其最大值翻轉到零。驗證所述分組并確保其不早或不晚的進程能夠檢測序列號翻轉何時會影響當前分組驗證。在當前隊列范圍跨過零序列號時,翻轉成為問題。這種情況的實例是隊列大小為16個分組且使用16比特序列號時(即序列號范圍為0-65535)。如果讀指針當前為65530,則所述隊列的范圍包括65330到9在內,即所述隊列的范圍跨過零序列號。
HRSN指針相對于讀指針的位置跟蹤迄今為止成功加入所述隊列的最高分組序列號。換言之,所述HRSN指針指向所述隊列的末端或末尾,這對于計算所述隊列的長度相當重要。所述HRSN僅被在將分組寫入所述隊列的操作期間內更新。所述HRSN指針與所接收分組的序列號一樣將在某一時點翻轉,可能存在所述隊列范圍跨過翻轉(或零序列號)點的情況。在這種情況下,HRSN指針的數值可能小于讀指針但仍被正確設置。這可通過觀測SN與HRSN指針的最高有效位得以檢測。應當注意的是,由于在將分組加入所述隊列之后更新所述HRSN指針,這意味著所述分組已被驗證為有效且在所述隊列范圍內。這便于在SN的數值小于HRSN指針時檢測翻轉的實例。
如上所述,微處理器負責監控平均隊列長度以及調整該隊列長度。一種用于實現這種控制的機制是使用延長與縮短功能,所述微處理器可指令所述隊列啟動該功能。
隊列延長功能這種功能使得所述隊列的平均長度每次延長一個分組。在啟動延長功能時,當從所述隊列請求下一分組,而不是返回讀指針處的分組時,提供欠載運行指令。欠載運行指令引起TDM輸出引擎將模擬數據而不是從緩存器中讀取的實際數據包括在下一時隙內。所述的欠載運行指令的“長度”可(由微處理器)編程為指示字節從0到當前分組流所允許最大值,直到絕對最大值2048字節的任何適當數值。在此操作之后讀指針保持不變。由于在此期間(平均而言)內期望在PTD內接收一個分組,因此所述隊列長度將平均增加一個分組。
隊列縮短功能這種功能使得所述隊列的平均長度每次縮短一個分組。在啟動所述縮短功能時,當從緩存器中請求下一分組時,所述隊列控制器(根據所述隊列內的下一讀指針)識別所述的下一分組的前端區組,并修改前端區組的描述符。在此操作中,所述區組的(分組長度)標題字段可改變為其當前長度與零之間的任意值。例如考慮所述分組長度被縮短到零的情況。所述TDM輸出引擎將從所述隊列的前端接收指針,并檢索所指示分組的前端區組的描述符。由于所述前端區組的描述符將指示長度為零,所以所述輸出引擎將不會在下一時隙內發送數據,因此立即將其它分組請求傳送到所述隊列。但是,在所檢索分組指針內識別的區組將被釋放到空閑區組集合作為它用。每個分組請求將使得讀指針增加,因此縮短功能的啟動將使得讀指針增加兩次。在此期間內,平均一個分組將被接收到所述隊列內。最終結果將是平均隊列長度縮短一個分組。
延長與縮短功能的一個目的是提供保持PTD的TDM輸出端與TPD的TDM輸入端的時鐘同步的靈活性。PTD內的頻率fservice將被調整為與TPD的TDM輸入端的頻率fservice盡可能地接近,但仍可能存在差異。使用延長與縮短功能調整所述隊列的能力意味著能夠補償兩個時鐘之間的任何差異,以確保所述的隊列不會欠載運行或溢出。
在某些情況下,讀指針可能必需與分組數據流重新同步。最理想的是,無需停止和重新啟動所述分組流即可實現所述重新同步。例如考慮這樣一種情況,其中分組流的第一個所接收分組是欺詐性、離題或訛誤的分組,且讀指針最初被設置為所述第一分組的序列號。如果所述分組與隨后接收的作為“本征”分組流一部分的分組具有顯著不同的序列號,則所述的本征分組流會被放棄,因為這些分組的序列號相對于第一接收分組而言不屬于所述隊列的范圍。
如果主分組流中存在大量分組丟失(例如,歸因于所述分組網絡內的故障鏈路),則相關問題出現。緊隨此中斷,一旦PTD起動再次從所述的主分組流接收分組,外部隊列指針(RP和HRSN)很可能會與所述的主分組流不一致。
為了克服這些問題,微處理器能夠啟動“重新同步”功能,以使讀指針重新與所述的主分組流一致。如果微處理器確定所述TDM輸出引擎要求的分組正被放棄,則請求所述啟動。該功能允許重新設置所述隊列的讀指針,并使得所述的讀指針在重新同步之后與所接收第一分組的序列號一致。讀指針的這種方式的直接修改很重要,因為關于所述分組是否在隊列范圍內的判定是基于所述的讀指針。
一旦啟動重新同步,在PTD內接收的其它分組即被放棄。由于分組仍然將由PTD的TDM傳送部分請求,所述緩存器(以及隊列)最終將會清空。一旦所述隊列為空,即執行重新定序操作,其包括以下步驟1.將所述的讀指針設置為下一個所接收分組的序列號減去二分之一隊列大小,即所述的讀指針被置于下一個所接收分組之前距離二分之一隊列大小處。
2.將HRSN指針設置為下一個所接收分組的序列號。
如果所述隊列大小為16,且下一個所接收分組的序列號(緊隨重新同步功能的啟動之后)為64,則所述的讀指針將被設置為64減去16的二分之一=>讀指針=64-8=56。實際上,所述重新同步操作通過將所述的讀指針置于第一個所接收分組之前距離隊列大小二分之一處,將重新同步之后接收的第一個所接收分組置于所述隊列相對于讀指針的中間處。
除了克服欺詐性分組或分組傳輸內的中斷引起的問題之外,如果可以追蹤到TDM時鐘頻率之間的差異大于自適應時鐘恢復方案,則重新同步還能夠做出使PTD內的TDM時鐘與TPD內的TDM時鐘同步的新嘗試。考慮當首先起動PTD內的隊列時的情況。可能將再生時鐘(fregen)最初設置為與用戶住宅2內的原始時鐘(fservice)顯著不同。
首先考慮時鐘(fregen)具有比時鐘(fservice)更高的頻率的情況。在這種情況下,與分組從分組網絡到達相比,將更為迅速地從PTD隊列中請求分組。而這意味著與分組到達以占據所述隊列內的位置相比,所述隊列范圍增長更為迅速。因此,應當被正確加入所述隊列的分組將會顯示為較遲,并被如此標記。因此,如果分組流從序列號1開始,則帶有序列號10的分組可能到達PTD,即使再生時鐘頻率(fregen)表示TDM輸出引擎正請求帶有序列號20的分組。如果所述隊列大小被設置為8,這將意味著讀指針(被設置為序列號19)將會拒絕分組10。
以下將考慮再生時鐘頻率(fregen)遠低于原始時鐘頻率(fservice)的情況,即與從所述隊列的前端讀取分組相比,到達分組流以更快的速度到達。這意味著所述隊列范圍無法相對于輸入分組流足以迅速地通過序列號增加。所述隊列將會充滿(最終溢出),而且其它分組將會由于“早”而被放棄。再次考慮分組流從序列號1開始且隊列大小被設置為8的情況,其中以穩定速度從所述隊列讀取分組,以穩定速度到達的分組被置于隊列內。分組10可能會在從所述隊列讀取分組3時到達,而分組20可能在從所述隊列讀取分組5時到達,即所述隊列范圍無法通過序列號迅速變化以免落后于到達的分組。
在兩種情況下,在分組由于不在所述隊列范圍內而被拒絕之前,PTD的TDM輸出端內的時鐘頻率無法迅速會聚從而與原始時鐘(fservice)匹配。在調整再生時鐘頻率(fregen)之后,所述隊列將必需執行重新同步操作,以確保所述隊列再次與輸入主分組流同步。
本領域技術人員應當理解的是,在并不背離本發明范圍情況下可對上述實施例做出各種修改。例如,用于存儲指向分組的存儲指針的方法可能會與被構造為圓形緩存器的隊列不同。分組可能會被存儲在線性隊列內,使用鏈接表索引該隊列。當每個分組到達時,其被存儲在下一空隊列時隙內,不論其序列號為何。然后使用鏈接表索引所述分組,這使得每個分組的序列號與其在所述隊列的位置相關。如果分組必需被加入兩個現有分組之間的隊列,則鏈接表將被修改為將所述分組插入正確位置的索引。可能會將空隊列時隙的獨立索引保持為跟蹤可用于存儲新分組的時隙。
在上述的實施方式中,通過提供程序化長度的欠載運行指令而非下一分組來執行延長操作。所述延長操作還可如此操作再次提供先前分組,而并不增加所述的讀指針;提供下一分組,而并不增加所述的讀指針;提供HRSN指針處的最后一個分組,而并不增加所述的讀指針;從所述隊列的當前范圍隨機提供分組,而并不增加所述的讀指針;提供指定數據,而并不增加所述的讀指針。所述指定數據可能為舒適噪音。
在上述實施方式中,通過修改下一分組的標題內的長度字段來執行縮短操作。這也可如下得以實現刪除所述隊列前端的分組,并增加所述的讀指針。替代修改所述分組標題的長度字段,數據可能實際上會從存儲在所述隊列內的分組中刪除。
替代HRSN指針,所述隊列可能將所述隊列的長度值保持為其延伸在所述的讀指針之前的時隙數量。然后替代基于HRSN指針的當前值計算隊列長度的實施方式,基于所述隊列長度的當前值計算所述HRSN指針。
以下將考慮重新同步功能,而不是等待從所述隊列讀取所有剩余分組,重新同步可能會在被請求時發生。所述隊列內的現有分組將會被刪除,而無需等待其被正常讀出。下一分組然后被插入所述隊列,基于新分組的序列號修改讀指針與HRSN指針。
只要所述隊列變為空,重新同步就會自動發生。當檢測所述隊列為空時,在接收下一分組時調用所述重新同步功能,所述的下一分組因此被視為“第一分組”。
權利要求
1.一種用于使隊列的填充與輸入分組流實現同步的方法,所述隊列存在于分組網絡與同步數據鏈路之間的接口中,用于存儲識別從所述分組網絡所接收的分組的分組識別符,所述方法包括在所述接口中接收分組;識別所述分組的序列號;將指向將從所述隊列讀取的下一分組識別符的讀指針設置成這樣的值,即所述值為小于所識別的序列號的預定量。
2.根據權利要求1的方法,其中所述同步數據鏈路是TDM鏈路。
3.根據權利要求1的方法,其中所述隊列形成分組緩存器的一部分,所述緩存器包括用于存儲分組數據的存儲器,且所述隊列被設置為存儲分組識別符,其中所述分組識別符用于識別從所述分組網絡接收到的分組以及所述分組在所述緩沖存儲器內的對應存儲位置。
4.根據權利要求3的方法,其中隊列范圍被定義為從所述讀指針到所述讀指針與所述隊列大小之和的分組序列號的范圍,具有所述隊列范圍內的序列號的到達分組被所述隊列接受,而具有所述隊列范圍之外的序列號的分組因為遲或早而被拒絕。
5.一種管理分組網絡與同步數據鏈路之間接口中的緩存隊列的方法,所述方法包括確定所述隊列的釋放與所述隊列的填充之間的同步水平,以及在所述水平降至某個門限值之下時,執行根據上述權利要求中任何一個的同步方法。
6.一種用于將分組網絡接口到同步數據鏈路的網關,所述網關具有耦合到分組網絡以從所述分組網絡接收分組的輸入端,以及耦合到所述同步數據鏈路以將同步數據釋放到所述同步數據鏈路的輸出端,所述裝置包括緩存器,其具有存儲器與隊列,所述存儲器用于存儲所接收的分組數據,而所述隊列用于存儲分組識別符,其中所述分組識別符用于識別從所述分組網絡接收的分組以及所述分組在所述緩沖存儲器內的對應存儲位置;處理裝置,其用于識別所接收分組的序列號,并將指向將從所述隊列讀取的下一分組識別符的讀指針設置為這樣的值,即所述值為小于所識別序列號的預定量。
7.一種控制隊列的平均長度的方法,所述隊列存在于分組網絡與同步數據鏈路之間的接口中,其用于存儲識別從所述分組網絡所接收分組的分組識別符,所述方法包括保持指向將從所述隊列讀取的下一分組識別符的讀指針;通過提供欠載運行指令并保持所述的讀指針不變,來響應從所述同步數據鏈路發射機接收下一分組請求,從而延長所述平均隊列長度;以及通過使所述同步數據鏈路發射機識別縮小的分組并使所述的讀指針加1,來響應從所述發射機接收到下一分組請求,從而縮短所述平均隊列長度。
8.根據權利要求7的方法,其中所述縮短平均隊列長度的步驟包括修改分組數據的標題內的分組長度字段,其中所述分組數據存儲在緩沖存儲器內,且由所述分組識別符所指向。
9.根據權利要求7的方法,其中所述同步鏈路是TDM鏈路。
10.根據權利要求7的方法,其中所述隊列形成分組緩存器的一部分,所述緩存器包括用于存儲分組數據的存儲器,且所述隊列被設置為存儲分組識別符,其中所述分組識別符用于識別從所述分組網絡接收的分組以及所述分組在所述緩沖存儲器內的對應存儲位置。
11.根據權利要求10的方法,其中隊列范圍被定義為從所述讀指針到所述讀指針與所述隊列大小之和的分組序列號的范圍,具有所述隊列范圍內的序列號的到達分組被所述隊列接受,而具有所述隊列范圍之外的序列號的分組因為遲或早而被拒絕。
12.一種用于將分組網絡接口到同步數據鏈路的網關,所述網關具有耦合到分組網絡以從所述分組網絡接收分組的輸入端,以及耦合到所述同步數據鏈路以將同步數據釋放到所述同步數據鏈路的輸出端,所述裝置包括緩存器,其具有存儲器以及隊列,所述存儲器用于存儲所接收分組數據,而所述隊列用于存儲分組識別符,其中所述分組識別符用于識別從所述分組網絡接收的分組以及所述分組在所述緩沖存儲器內的對應存儲位置;以及控制裝置,其用于保持指向將從所述隊列讀取的下一分組識別符的讀指針,并通過提供欠載運行指令和保持所述的讀指針不變來響應從所述同步數據鏈路發射機接收下一分組請求,從而延長所述平均隊列長度,且通過使所述同步數據鏈路發射機識別縮小的分組和使所述的讀指針加1,來響應從所述發射機接收下一分組請求,從而縮短所述平均隊列長度。
13.根據權利要求12的網關,其中所述控制裝置包括這樣一種裝置,其用于監控所述隊列的長度,確定最佳平均隊列長度,以及啟動延長與縮短操作以使所述平均隊列長度保持為所述最佳平均長度。
全文摘要
一種用于使隊列的填充與輸入分組流實現同步的方法,所述隊列存在于分組網絡與同步數據鏈路之間的接口處,其用于存儲識別從所述分組網絡所接收分組的分組識別符,所述方法包括在所述接口處接收分組,識別所述分組的序列號,將指向將從所述隊列讀取的下一分組識別符的讀指針設置為這樣的值,即所述值為小于所識別序列號的預定量。所述方法還提供了一種用于延長與縮短所述隊列的平均大小以使所述平均大小保持最佳水平的裝置。
文檔編號H04L12/56GK1536845SQ20041000139
公開日2004年10月13日 申請日期2004年1月7日 優先權日2003年3月26日
發明者威廉·P.·弗爾固森, 奈杰爾·維克瑞, 尼庫拉·D.·帕斯利, D. 帕斯利, 維克瑞, 威廉 P. 弗爾固森 申請人:贊林克半導體有限公司