專利名稱:利用時序安排和頭壓縮降低分組延遲的方法和設備的制作方法
背景本發明涉及用于以分組方式傳送信息的多路復用通信系統并且特別是,涉及多層網絡結構中分組的時序安排和頭壓縮。
現代通信網傳送越來越大量的與實時語音、視頻和有關數據相關的分組業務。例如,互聯網正看到許多利用比傳統電話網連接相對便宜的替代物來發送包括實時語音和視頻的各種數據的新應用。從某種程度上越來越強大的計算機安裝在個人家庭以及作為各種在線活動,如保持語音會話、聽音樂、觀看視頻剪輯等的焦點的互聯網的增殖驅動了在互聯網上向實時應用發展的趨勢。與在高帶寬商業連接上的計算機之間發生的互聯網通信不同,典型的家庭中的帶寬受限于調制解調器速度、線路質量等造成的連接性限制。
限制帶寬的進一步混合的基本問題是因協議頭造成的作為分組系統開銷的傳輸的實際信息量的限制。基本的互聯網協議被開發為主要用于確保分組每次端到端地準確遞交,幾乎沒有考慮實時問題。
包括如X.25的協議的三層接口結構被開發為用于在較低層控制傳輸而較高層協議被開發為控制更復雜的功能(參見,“Open SystemsInterconnect(OSI)-New International Standards Architecturesand Protocols for Distributed Information Systems(開放系統互連(OSI)-用于分布式信息系統的新的國際標準結構和協議)”,特殊期刊,IEEE會議錄,H.C.Folts和R.des Jardins,eds.,1983年12月,12號,71卷)。根據設計原則,較低層的功能試圖對較高層功能是“透明的”并且因此許多可在較低層實現的僅受到較低層硬件和軟件保持透明性的能力的限制。在最低層,物理層,協議規范管理設備之間的物理連接,例如,X.21協議。接著,數據鏈路層規定用于,例如,從較高層接受分組并且將它們放在,例如用于通過物理層傳輸的HDLC幀中的協議。數據鏈路層還接受來自物理層的成幀的信息并且將其拆開用于向上傳輸到網絡層。在網絡層或分組層,建立多個邏輯連接并且基于幾個假設在分組上加上地址,假設包括不保證成功地端到端遞交,不保證順序地遞交,以及每次遞交一個每個包含如目的地址的信息分組或“數據報”等。
指出這一點很重要,即雖然這里討論了各種較低層,但是來自較高層的數據報可形成到網絡層過程或系統的輸入,其依次提供到輸入連續地較低層,并且最終到目的地。到網絡層實體的較高層數據報輸入可以是來自,例如傳輸層過程或系統的輸入。雖然已知并且使用其他的傳輸層協議,但是一個典型的并且熟知的傳輸層協議是傳輸控制協議(TCP)。特別是,用戶數據報協議(UDP)經常作為傳輸層協議使用。UDP是定義無連接數據報服務的協議。實現UDP的傳輸層過程或系統可生成包括目的地路由選擇信息的自含式數據分組。
在互聯網上用于網絡層通信的一個普遍存在的協議是互聯網協議(IP)。IP規范包括與IP頭有關的可列舉的域,這些域包含有關相關分組的信息,包括用于確定該分組應該如何遞交的信息。IP頭域在下面有詳細描述。為了更全面地理解IP頭的內容,參見“InternetProtocol Specification(互聯網協議規范)”,E.J.Postel,SRIInternat ional,Menlo Park,CA,1981年9月,RFC791。
對于數據鏈路層通信,點到點協議(PPP)成為占優勢的協議。PPP包括三個主要組件封裝多協議數據報的方法,數據報是在網絡層的傳輸單元(如IP),用于建立、配置和測試數據鏈路連接的鏈路控制協議(LCP),以及用于建立和配置不同網絡層協議的一系列網絡控制協議(NCP)。
PPP設計為在兩個稱為對等端,也就是符合該協議的鏈路的兩端之間傳輸分組。因此,LCP可用于商定封裝格式選項,處理分組大小上的變化的限制,檢測配置錯誤,以及終止鏈路。其他的可選的功能有鏈路上對等端的身份驗證,以及鏈路正常運行和故障時的確定。PPP鏈路提供全雙工的同時雙向操作。PPP的定義可以在1994年7月W.Simpson編輯的網絡組標準草案RFC1661“The Point to Point Protocol(點到點協議)”中找到。
實現了跨過利用PPP建立的鏈路的通信,因此與協議有關的數據報可封裝進一個或多個幀。一個幀,如上所述,可包括一個頭和/或一個尾,連同一些數據單元。但是,通常整個分組映射為一個幀。但是在嚴重的網絡擁塞的條件下,傳統的組幀破壞,其中使用分段方法來改善流控制管理。這樣的擁塞主要是由于例如多鏈路業務提供的越來越多的更大帶寬的連接引起的業務量的增加而出現。因為基本和主要速率的ISDN,例如,考慮了系統之間多個同時的信道以便留出需要的帶寬,所以與這樣的業務相關的問題必須解決。對于如語音、VoIP、Telnet等實時數據,擁塞導致延遲是一個值得注意的問題。這樣的實時數據格式幾乎不能容忍分組延遲、抖動、分組重排序以及相關問題。與多鏈路環境相關的問題只是增強了獨特的實時分組數據需求。
為了減輕多鏈路環境中的擁塞,思科(Cisco)公司1999年4月8日在名為“Cisco IOSTMSoftware Quality of Service Solutions(業務解決方案的Cisco IOSTM軟件質量)”的白皮書中提出一個稱為鏈路分段和交織(LFI)的解決方案。在LFI中,通過將大的數據報和交織時間敏感的分組分解為作為結果的分組分段減少了延遲和抖動。LFI希望相對低速的鏈路,其中串行延遲是主要的延遲因素。LFI只要求PPP配置為允許交織。否則,LFI對PPP透明。
Carsten Borman在1999年6月,1999年12月到期的互聯網工程任務組(IETF),INTERNET-DRAFT“Multi-Class Extension toMulti-Link PPP(多鏈路PPP的多類擴展)”中提出了一個類似的解決方案。這里,可以找到用于實時封裝的格式的面向段的解決方案,其是,例如,綜合業務通信鏈路的標準結構的一部分。
可以用一個例子很好地說明與傳統的LFI、多鏈路PPP以及有關數據傳輸相關的某些問題。在28.8kbit/s的調制解調器鏈路上傳輸1.5k字節的分組會占用該鏈路高達400毫秒,使得其不能用于與多鏈路環境中其他鏈路相關的分組的數據傳輸。這樣的延遲會生成接近一秒的與如語音會話的交互式實時數據相關的往返行程延遲。通過將大于預定大小的各種優先級的分組分段,其高優先級分組或段可以在較低優先級分組的段之間發送。已有的多鏈路PPP規范已經通過在PPP封裝格式中提供序列號和開始及結束比特,提供了分段。但是,已有的多鏈路PPP因連續分組編號的方案,不提供暫停一個分組的段的傳輸以便發送另一個。前面由Borman提出的解決方案包括利用多鏈路PPP協議中未使用的比特指定類號,來在允許多個可暫停類嵌套的相同的鏈路上運行多個多鏈路協議實例。因此,屬于一個特定類的段可以在沒有多鏈路頭的情況下發送并且依賴于頭比特的數量可以獲得四到十二個暫停級別。
不管時序安排分段的方法所希望的,在實現上出現問題。特別地,應該指出較低三個協議層和相關協議包括,例如UDP、IP和PPP的相關協議,與物理層一起,典型地駐留在如路由器的硬件資源上,其會帶來對從分段和其他時序安排方法獲得的益處有害的限制。特別是,路由器,例如,一旦建立起優先級等,會典型地在相同的傳輸隊列中將輸出分組一起排隊。一個典型的輸出分組隊列的配置通常是先進先出(FIFO)并且具有與隊列深度相關的一定程度的內部延遲。而且,經歷高業務量級別和使用典型輸出分組隊列的路由器在發生擁塞時,即使在使用LFI、多鏈路PPP等時,也會提高分組丟棄的可能性。如果在發生IP時序安排之后分組被迫從下游隊列中丟棄,則會出現與分組接收失序有關的問題。依賴鏈路的配置,對丟失分組的重新傳輸請求,例如,會導致實時數據的延遲和降級。
當與其他減少擁塞的方法,例如頭壓縮一起使用時,分組丟棄會特別麻煩。通過壓縮或丟棄典型的頭中包含的特定部分信息,頭壓縮方法減少了數據報或分組的整體大小。在典型地用于實時數據傳輸應用的小分組,其中該頭表示接近100%的分組系統開銷的情況下,這一點尤其重要。雖然,可以在各個階段執行頭壓縮,但是因在本領域在使用頭壓縮時必須假設不會出現包括分組丟失影響的分組重排序或重排隊,就出現了問題。處理這個問題的方法增加了幾乎與最初用頭壓縮技術所節省的一樣多的頭系統開銷。對于頭壓縮的更一般的信息參見Carsten Borman在1999年6月,1999年12月到期的互聯網工程任務組(IETF),INTERNET-DRAFT,“Providing Intergrated ServicesOver Low-bitrate Links(在低比特率鏈路上提供綜合業務)”,以及參見V.Jacobson在1990年2月編輯的網絡組互聯網草案RFC1144,“Compressing TCP/IP Headers for Low-Speed SerialLinks(為低速串行鏈路壓縮TCP/IP頭)”。
在低速鏈路上,如所述的,時間敏感分組不能承受等待例如,長的最大努力(BE)數據分組的完成。利用IP分段可改善這樣分組的延遲,但是代價是每個段增加了一個大約20字節的頭。另一個解決方案是利用為每個段增加2到4個字節的頭的多鏈路PPP分段。這樣的頭被設計用來向段或分段傳播時序安排信息。但是,頭壓縮使IP時序安排變得困難。當使用頭壓縮時,包括IP頭中識別域的信息在壓縮之后對于較低層變得不可用。如果HC分組被丟棄,則如前所述,因為接收端例如會請求丟棄分組的重傳輸并且負責的層不能識別哪個分組丟棄了并且因此不能請求來自更高層的丟棄的分組,從而引入更大的延遲和質量降級,所以造成的丟失的序列號會導致在鏈路上出現問題。
因此,本領域希望有一種處理時序安排并且減少由丟棄分組上的頭壓縮引起的時序安排上的不利影響的方法和設備。這樣的方法和設備在沒有IP層操作中斷的情況下運行,使得能夠在具有頭壓縮的純IP分組上進行一般IP時序安排。
概述因此本發明的一個目的是提供一種用于利用時序安排和頭壓縮減少分組延遲的方法和設備。
本發明還有一個目的是在多層協議實現中在各層提供這樣的方法和設備。
因此,根據本發明的一個方面,在用于減少多個分組傳輸中的延遲的方法和設備中達到了上述以及其他目的。根據具有至少一個較高層和一個較低層的多層協議,分組具有多種分類。分組可按相關分類進行時序安排。如果在時序安排期間發生擁塞,則不能進行時序安排的分組會丟棄。在時序安排和丟棄之后,一些分組的頭會被壓縮,并且因此會保留序列信息。
根據本發明的另一個實施方案,在時序安排、丟棄和壓縮之后,根據多個分類中的至少兩個,分組在第一和第二隊列中排隊,第一個隊列具有比第二個隊列高的優先級。例如,兩個可能分類中的一個包括最大努力分類,以便排隊包括確定分組是否分類為最大努力分組并且如果是這樣,則將最大努力分組排隊進入例如第二個隊列。
應該理解可以包括許多分類,其可與例如QoS級別有關,這可在與分組有關的IP頭中發現。分類也可以與多個延遲因素相關,并且優選地基于多個分類建立多個隊列。因此,每個分組可以基于相關分類而排隊進入多個隊列中的一個。
根據本發明的另一個實施方案,多個分類與上述的鏈路分段和交織(LFI)相關。替代地,多個分類與上述的多鏈路PPP相關。
還應該指出根據本發明,時序安排可以在較高或較低層執行,其中較低層包括上述的PPP層。較低層還包括HDLC層并且當時序安排在其中執行時,在頭壓縮之前為每個分組生成一個標記。該標記隨后添加并且在傳輸之前刪除。來自第一和第二個隊列的每個分組可在具有隊列深度不大于1的一個輸出分組隊列中排隊。
附圖簡述通過連同附圖一起閱讀下面的詳細描述可以理解本發明的目的和優點,其中
圖1是說明利用TCP/IP的示例已壓縮數據報和格式的圖;圖2是說明示例鏈路分段和交織的圖;圖3是說明示例優先級排隊的圖;圖4A是說明多鏈路PPP的示例分段格式的圖;圖4B是說明適合多鏈路PPP的多個類和短序列號的示例分段格式的圖;圖4C是說明適合多鏈路PPP的多個類和長序列號的示例分段格式的圖;圖5A是說明根據本發明的示例純IP時序安排的圖;圖5B是說明根據本發明的示例純IP時序安排的流程圖;圖6是說明根據本發明在PPP層的示例IP時序安排的圖;圖7A是說明根據本發明在HDLC層的示例IP時序安排的圖;以及圖7B是說明根據本發明在HDLC層連接到壓縮頭的示例標記的圖。
詳細描述因此根據本發明提供了一種方法和設備,使得頭壓縮能夠在如路由器、線路接口卡等的網絡節點中的各層上與IP時序安排一起使用。
應該指出根據本發明,IP分組的頭壓縮可以根據本發明的特定實施方案在各個階段如這里所描述的來執行。圖1說明了一個可能由在典型的TCP/IP頭上的頭壓縮操作產生的示例壓縮頭格式。如前面指出的,雖然根據本發明也可以使用其他的傳輸層協議,優選的是UDP,但是這里使用TCP來舉例說明傳輸層協議。可以看到,重要信息可以傳送到壓縮分組中并且通過例如指示想要改變的域中哪個實際上改變了的改變掩碼193的處理解釋。因為壓縮頭格式典型地由在連接或分組會話過程期間想要改變的域組成,所以比特193a-193g用于指示這些變化。連接數域194包括一個值,其允許接收器定位來自指示的特定連接的最后分組的一個保存拷貝,用于將例如改變掩碼193的前一值與其當前值相比較。TCP校驗和域195包含以本領域熟知的方式計算的壓縮頭的校驗和。緊急指示符193h包含指向緊急數據的一個值。剩余的域表示相關域的值的變化,例如,Δ窗口域193j表示窗口域的變化并且因此用將該域的大小從兩個八位字節減少為一個的一個較小的值表示。同樣,Δack域193k,表示確認數域的變化并且使用一個八位字節代替四個。Δ序列域1931表示序列號域的變化,并且再次,導致從四個八位字節減少到一個。ΔIP ID域193m表示來自相關IP頭的分組ID域的變化并且導致大小從兩個八位字節減少到一個。最后數據域196跟在所示的壓縮頭域的末端。應該指出在這種情況下,例如,分組之間沒有變化,域193h-193m可以忽略并且數據域196直接跟在TCP校驗和域195的后面。應該指出上面提到的域與具有在其上執行的頭壓縮的示例IP分組有關。根據本發明的教導還可能減少壓縮域的數量或者壓縮進入IP分組并且簡單地包括一個標記。
有了對多層協議的基本特性的理解,可能理解與傳送可能頭壓縮的多種數據類型(例如,實時、最大努力等)的鏈路上的擁塞控制相關的問題。這些問題在發生頭壓縮的層下面的各層上尤其麻煩,特別是當分組在頭壓縮之前進行時序安排并且然后在壓縮執行之后因擁塞而丟棄時。在擁塞期間經常的情況是等待傳輸的分組必需使用幾種已知的方法進行時序安排或排隊。圖2說明利用典型的網絡服務堆棧的具有較低三層的示例網絡節點200。示例數據分組211、212和213顯示進入網絡層210,其中過程215基于時間敏感性,例如,參考如D4的分組212,D1指示最高的時間敏感性并且D4指示相對較低的時間敏感性,來確定在鏈路分段和交織(LFI)層220的隊列221、222、223、224中在哪里放置要傳輸的進入分組。可以看到LFI層220占用數據鏈路層230的至少一部分。隊列D1224中的分組首先發送,然后是D2223、D3222和D4221。如由分組213表示的長分組可以分段為由分組213a、213b和213d表示的較小分組。因為長分組通常具有較低優先級,與如語音、音頻或視頻等實時數據相關的高優先級分組,如由分組214a、214b和214c表示的,在隊列224中發送之前進行累加。當分組進入隊列221-224時,其由可以是典型的數據鏈路過程如HDLC等的過程231發送到物理層,其中它們在FIFO傳輸隊列232中處理并且輸出到物理鏈路233。
盡管上述LFI方法,分組一旦分段,就根據例如如圖3中說明的一個例子的傳統的優先級排隊方案進行排隊,或者根據一個合適的由其衍生的方案排隊。示例網絡節點300顯示為具有分別從低到高優先級的隊列311-314的優先級排隊實現。分組315、316和317,例如,以不同的優先級到達網絡層210,其優先級可由例如典型地與每個分組315、316和317分別相關的IP頭中包括的QoS信息的內容確定。高優先級分組317,例如,可以由過程320放在高優先級隊列314中。進入的中等優先級分組315和低優先級分組316在到達網絡層210時由過程320分別放在中等優先級隊列313和低優先級隊列311中。優先級排隊在與數據鏈路層230接口的等價于數據鏈路層230或如PPP層的替代協議層等的層310進行。輸出分組318a-318d根據優先級發送到過程231用于在傳輸隊列232中排隊,如所示的高優先級輸出分組318a先發送。輸出分組318a-318d然后由可以是典型的數據鏈路過程如HDLC等的過程231發送到物理層,其中它們在FIFO傳輸隊列232中處理并且輸出到物理鏈路233。
雖然與圖2和圖3一起描述的LFI和優先級排隊使分組能夠更有效的處理,但是很重要地應當指出,有效的處理依賴于通常與用于優先級排隊和已經分段的分組的IP頭相關的準確的頭信息,序列信息是關鍵。但是在較低層,這樣的信息并不是已經可用的并且在壓縮的IP頭的情況下,這樣的信息不可用直到IP分組解壓縮為止。在較低層分段需要附加的頭信息來對等地跟蹤分段。應該指出在分層協議中可能在多層有分段,但是每層必須跟蹤分段并且某些數據類型不容忍當分組被分段時更可能出現的某些異常,象失序分組等。因此,如前面“Multi-Class Extension to Multi-Link PPP(多鏈路PPP的多類擴展)”中描述的,描述了適應排隊優先級的多個類的頭格式。圖4A說明用于基本多鏈路PPP的分組格式。
地址域A410包含表示分組目的地地址的一個值。控制域C420包含與已知的各種控制功能相關的比特的設置有關的值。分組標識PID域430包含高八位字節431和低八位字節432并且支持大量的分段。域440包含包括設置用來指示分段PPP分組的開始段的開始指示符比特440a;以及設置用來指示分段PPP分組結束段的結束指示符比特440b的比特。所有的其他段應該將開始指示符比特440a和結束指示符比特440b設置為零。當只有一個“段”與分組相關時還有可能兩個比特都設置為一。比特440c和440d用于指示類級別,對于單一類PPP其在大多數基本實現中為零。應該指出,圖4A、圖4B和圖4C中說明的多鏈路PPP格式之間的主要區別是各個類域440、441和442的配置,可以看出其支持段的漸進地更復雜的分類。因此,如同優先級的排隊可利用在域440、441和442中包含的分類值在PPP級別實現。序列域450可以是24比特值(或者協商為12比特)其對于發送的每個段遞增。分段數據段460跟隨著直到到達指示分段數據結束的FCS段470。
因此根據本發明的一個實施方案,如圖5A所示,例如,在綁定用為IP層510的數據報的IP頭中規定的各種QoS級別可通過在IP層510執行“純”IP時序安排來處理。可以看出可調用利用隊列512-514來處理時間敏感分組的排隊規則。最低時間敏感性隊列DN-1512傳送具有最長延遲容忍的分組。可能通過檢查與典型IP頭有關的DS字節或ToS域來確定這樣的時間敏感性。具有較低QoS要求的分組,例如,可以移交給較低優先級的隊列。相反,具有較高QoS級別的分組,如與語音數據相關的實時分組,可以與較高級別時間敏感性相關并且因此放置在較高優先級的隊列中。具有漸進的更高程度的時間敏感性的分組可在漸進的較高優先級的隊列中安排時序,最高敏感性的分組在最高時間敏感性隊列D1514中安排時序。QoS設置為最大努力的分組,通常是與非實時數據相關的分組放在最大努力隊列DN511中,其如名字所暗示的,只要有可能時,例如,在沒有更高優先級的分組要發送的間隔期間,就發送。應該指出交織和分段可與所述的時間敏感和最大努力排隊策略一起使用。下文中更詳細地描述純IP時間安排實施方案中的處理。
在本發明的另一個示例實施方案中還可能因為從兩步調度到一步調度的減少包括如圖6所示的在PPP層的時序安排。PPP層620提供有表示從最高時間敏感性隊列D1624到較低時間敏感性隊列DN-1622,到最大努力隊列DN621的各種程度時間敏感性的一系列優先級隊列621-624。
很重要地指出在上述的每個示例實施方案中,必須執行包括IP轉發的輸出處理分組識別(DS字節查找);包括分組丟棄、速率控制和優先級排隊的分組時序安排;頭壓縮;包括PPP/MP、以太網、ATM的鏈路適配;以及鏈路組幀。IP轉發和識別必須在頭壓縮之前完成。還很重要地指出分組丟棄必須在HC之前發生,因為如所述的,在頭壓縮中丟棄的分組會引起失序有關的問題。根據本發明在反壓的環境中,將輸出分組隊列設置為深度不超過1以確保時間敏感分組在輸出分組隊列中被處理之前必須等待至多一個最大努力分組非常重要。如果分組時序安排在HC之后完成,則HC功能必須在分組上增加一個“本地”標記,來告訴鏈路層該分組應該放進哪個隊列。
在如圖5A所示的“純”IP時序安排實施方案中,純IP分組進行了時序安排(例如全IP頭和有用負荷)。如果與IP層510相關的隊列滿了,或依據本領域中熟知并且實行的其他常用規則,則會發生丟棄分組。
在發送到物理線路上之前,在輸出分組上執行鏈路層適配。根據一個在IP層510執行時序安排的實施方案,可以執行HC和PPP/MP/HDLC組幀來完成鏈路層適配。為了縮短時間敏感分組,如語音分組的延遲,不管由例如根據前面的描述使用的分段和交織方案施加的分類的數量,都可以利用例如兩個隊列,即隊列SQ_PPP 522和隊列FQ_PPP 523在PPP層520使用簡單的優先級排隊規則。如果分段的程度包括不僅是最大努力QoS或具有如與上述多類PPP一起概述的附加的類,則在PPP層520可添加要分段的每個附加類的附加隊列。因此,時序安排過程,或者在本實施方案中PPP層520,必須知道與何時分組可發送有關的信息。
通過例如,如上所述分析DS或QoS域,或者通過分析與參照圖4A-4C的描述中概述的分組相關的類來分類,并且分成與例如來自IP層510的隊列D1514到DN-1512相關的延遲等級的分組,可放在隊列FQ_PPP 523中,并且在屬于,例如,大BE分組的剩余段之前發送。應該指出,頭壓縮可在分組在隊列FQ_PPP 523中進行時序安排之前優選地執行。BE分組和分段的分組可放在隊列SQ_PPP 522中。如果分組太大,PPP層520中的MP處理可在排隊之前執行分段。
在可以是臨近PPP層520的數據鏈路層的HDLC層530,根據前面的描述分組可以是頭壓縮的并且是時序安排的。為了進一步方便分組的頭壓縮后處理,在例如接口卡上找到的輸出緩存531的深度設置為不超過一個分組。這提供了“后壓”,因為將在隊列FQ_PPP 523和SQ_PPP 522上并且因此在頭壓縮的上游將被迫發生任何因擁塞而丟棄分組。因為如所述,頭壓縮之后丟棄的分組會導致與失序有關的問題,因此這個結果是想要的。根據下面的與隊列FQ_PPP 523和SQ_PPP 522的示例排隊原則相關的偽代碼,可以很好地理解圖5A說明的示例實施方案的操作。當例如下面情況中的任何一個是真時,駐留在IP層510和PPP層520之間的接口上的調度程序中的示例輸出循環能夠將分組調度到隊列FQ_PPP 523和SQ_PPP 522情況1)隊列D1514和FQ_PPP 523中的分組不滿。
情況2)(情況1為假)并且(D2513中的分組)并且(FQ_PPP 523為空)。
情況N-1)(情況1,2,…,N-2為假)并且(DN-1512中的分組)并且(FQ_PPP 523為空)情況N)(情況1,2,…,N-1為假)并且(DN511中的分組)并且(SQ_PPP 522不滿)還應該指出,根據本發明的一個實施方案,隊列FQ_PPP 523中的分組優選地總是在隊列SQ_PPP 522中的分組之前發送。
如圖5B所示的示例流程圖,最好地顯示了根據本發明分組如何通過一個軟件過程繼續下去。在例如IP層510的開始點550接收的來自實施多層協議的發送器中更高層的分組根據與塊551中分組有關的延遲因素可在隊列511-514中進行時序安排。因為輸出隊列531的“后壓”設計,決定塊552a可以實現為在PPP層520排隊和頭壓縮之前丟棄塊552a中的分組。如果IP層510隊列511-514變得滿了,則相關分組會被丟棄并且用于重新時序安排的設備會上推到較高層。否則,來自隊列511-514的分組會在PPP層處理以便根據上述簡述的過程排隊。分組被處理為最時間關鍵的分組首先發送到PPP層520隊列。因此,例如,如果在決定塊554確定隊列D1514不空,并且在決定塊557確定FQ_PPP隊列523沒有滿,則無論由決定塊560指示的FQ_PPP 523是否為空,D1分組都添加到FQ_PPP 523中。在任何一種情況下,在分組添加到隊列FQ_PPP 523之前,可在塊562和564執行頭壓縮。對于D2分組,決定塊555指示雖然分組保留在隊列D2513中,并且如決定塊557和560指示的FQ_PPP 523是空的,但是D2分組可在塊562頭壓縮并且添加到隊列FQ_PPP 563中。以類似的方式,如果決定塊556、557和560的條件滿足,則DN-1分組在塊562中頭壓縮之后也添加到隊列FQ_PPP 523中。應該指出時間敏感分組處理之后,例如,由DN分組表示的最大力分組在經過決定塊558、559,并且在塊565中頭壓縮之后也在塊566添加SQ_PPP 522。
還應該指出,通過根據是(Yes)條件經過決定塊554、555、556和558,形成一個循環。這個循環例如在軟件實施方案中表示可執行一個連續的循環來清除每個隊列,隊列D1514比下面的隊列優先級高。而且,如果在較低優先級隊列被清除之前有較高優先級分組可用于處理,則循環可中斷。
除了根據上面的描述執行時序安排,本發明的示例實施方案在隊列FQ_PPP 523和SQ_PPP 522中排隊之前還執行附加的步驟。例如,在選擇隊列用于分組時序安排之后,根據圖1提供的描述或以類似的方式,可執行頭壓縮。根據分層結構和與上述封裝有關的概念,可增加PPP頭以確保正確地遞交到對應接收節點上PPP層520的PPP對等層并且由其解碼。還如所述的,在完整但是長BE數據分組或在更高層分段的但是對于在PPP層520的有效發送來說太長的分組上可執行額外程度的分段。例如,可利用MP執行這樣的分段。
應該指出,PPP層可向HDLC層530發送分組,具體化為,例如,當其緩存深度不大于單一一個分組時的接口卡。理想地,當輸出緩存531上的限制設置為零時,達到如來自隊列D1514的分組的最大時間敏感分組上的最優延遲特性。但是,以這樣的方式限制深度導致分組不是背對背地發送。輸出緩存531的深度限制為1,在另一方面,導致最壞情況的等待時間,例如,對于來自隊列D1514的分組,大約等于幾乎兩個BE分組或分組段的傳輸時間。
根據示例實施方案,當緩存531為空或否則準備好由一個新的分組填充時,還希望生成來自HDLC層530的中斷。這個中斷的定時應該優選地優化以便精確地控制當隊列FQ_PPP 523和SQ_PPP 522向輸出緩存531發送分組時將最壞情況分組延遲減少到大約一個分組傳輸間隔。雖然這樣的定時可以設置在如軟件例程中,但是根據本領域的已知的慣例優選的是硬件實現。
如前所述,丟棄HC分組將導致在接收機端丟失序列號,導致必須重新發送整個頭。為了防止如語音等的實時數據流的延遲和可能的中斷,丟棄應該優選地在頭壓縮之前完成。在如圖6所示的本發明的另一個示例實施方案中,可在PPP層620執行時序安排。可以分析在IP層610的進入分組的優先級或分類等級。PPP層620在時序安排之前檢查與特殊優先級或分類相關的隊列的深度。如果與分組的優先級或分類相關的隊列滿了,則由PPP層620處的時序安排過程丟棄分組。如果與優先級或分類相關的隊列沒有滿,則執行頭壓縮,添加PPP頭,并且如所述的,如果需要,在對分組排隊之前利用MP執行進一步的分段。
在本發明的另一個示例實施方案中,可在例如,圖7A所示的HDLC層720執行HDLC時序安排以減少高優先級分組的最大等待時間。HDLC層720,如前面實施方案的PPP層620和IP層510,提供有表示從最高時間敏感性隊列D1724到較低時間敏感性隊列DN-1722,到最大努力隊列DN721的各種程度時間敏感性的一系列優先級隊列721-724。
如在前面的實施方案中,輸出緩存730設置為一個分組的深度。對于排隊和從隊列中取出,可使用參考圖6與前面描述的PPP層620類似的方法。該實施方案不能看作一個“純”IP調度器,通過將兩步時序安排改為一步可降低復雜性。通過在MP之后進行時序安排,可以很容易地添加MP擴展。
為了在HDLC層720進行時序安排,生成來自輸出緩存730的中斷以改善如語音分組的時間敏感分組的分組延遲,同時保持完全的鏈路應用不是最佳解決方案,因為現在時序安排在一個接口卡上執行。代替HDLC層720處的一個緩存,將有緩存721到724使用類似于用于在前面描述的參考圖6的PPP層620進行時序安排的時序安排算法。因此,在IP層610和PPP層710處不需要后壓和時序安排。為處理丟棄,優選地在HDLC層720處的丟棄過程和時序安排過程之間實現信令。應該再次指出,當在IP分組上執行頭壓縮時,因在DS字節中包含的分類信息在壓縮之后不可用,所以出現了問題。
因此,在如圖7B所示的本實施方案中,在分組751上添加本地字節或“標記”752,現在優選地由HDLC層720處的時序安排過程進行頭壓縮。標記752包含對包含在頭中的信息來說冗余的信息并且在壓縮前生成。標記752在分組751排隊準備發送之前去掉。分組丟棄可在頭壓縮之前的一點獨立于速率控制執行。速率控制可在HDLC層720處的時序安排過程中執行。分組是否應該丟棄的決定優選地基于在接收來自例如PPP層710的緩存611的IP分組之后執行的檢查。如果分組指定的隊列721-724中對應的一個滿了,則分組將被丟棄,否則其將繼續進行頭壓縮。
因此,總結本實施方案中各層的功能,IP層610執行頭壓縮之前分組的丟棄。每個分組有一個在頭壓縮之前創建的短“標記”,該標記包含以前包含在頭中的信息并且添加到頭壓縮的分組中。PPP層710利用如MP在長數據分組上執行分段。HDLC層720執行包括在例如軟件設備驅動器中的時序安排,或者替代地HDLC層720可在其中添加標記752的硬件中實現。標記752可在分組751發送之前去掉。
本領域的技術人員應該理解,在不背離其精神或基本特征的情況下,本發明可以以其他特定形式實現。因此這里公開說明的實施方案從各個方面都被看作是說明性的而不是限制性的。本發明的范圍由所附的權利要求指示,而不是上述描述并且來自其等價物的意義和范圍之內的所有改變都指示為包含在其中。
權利要求
1.一種用于減少多個分組傳輸中的延遲的方法,具有多個分類的所述分組根據具有至少一個較高層和一個較低層的多層協議在通信鏈路上傳輸,所述方法包括根據與其相關的多個分類中的一個對多個分組中的每個進行時序安排;丟棄不能進行時序安排的多個分組中的每一個;以及在時序安排和丟棄之后在多個分組的每個的至少一些上壓縮頭。
2.如權利要求1的方法,還包括在時序安排、丟棄和壓縮之后,根據多個分類中的至少兩個,在第一個和第二個隊列中對多個分組排隊的步驟,第一個隊列具有比第二個隊列高的優先級。
3.如權利要求1的方法,其中時序安排的步驟還包括步驟基于多個分類建立多個隊列;以及根據與其相關的多個分類中的一個將多個分組的每一個排隊到多個隊列中的一個。
4.如權利要求3的方法,其中多個分類與QoS等級有關。
5.如權利要求3的方法,其中多個分類與多個延遲因素有關;其中在多個隊列的每個中多個延遲因素的每個是不同的。
6.如權利要求3的方法,其中多個分類與多個丟棄敏感性因素有關;其中在多個隊列的每個中多個丟棄敏感性因素的每個是不同的。
7.如權利要求3的方法,其中多個分類與LFI有關。
8.如權利要求3的方法,其中多個分類與多鏈路PPP有關。
9.如權利要求2的方法,其中至少兩個分類中的一個包括最大努力分類并且其中排隊的步驟還包括步驟確定多個分組中的每一個是否分類為最大努力分組;以及將確定的最大努力分組排隊到第二個隊列中。
10.如權利要求1的方法,其中時序安排的步驟還包括在較高層執行時序安排的步驟。
11.如權利要求1的方法,其中時序安排的步驟還包括在較低層執行時序安排的步驟。
12.如權利要求11的方法,其中較低層包括PPP層。
13.如權利要求11的方法,其中較低層包括HDLC層并且其中在較低層執行時序安排的步驟還包括步驟在執行壓縮步驟之前為多個分組的每一個生成一個標記,其中所述標記包含來自頭的至少一些信息;將所述標記添加到多個分組的每一個;以及在多個分組的每一個傳輸之前去掉所述標記。
14.如權利要求1的方法,還包括將在第一和第二個隊列中排隊的多個分組的每一個輸出到具有隊列深度不超過一的輸出隊列中的步驟。
15.一種用于減少在通信鏈路上具有多個分類的多個分組傳輸中的延遲的設備,多個分組根據具有至少一個較高層和一個較低層的多層協議傳輸,所述設備包括一個串行鏈路;以及一個耦合到所述串行鏈路上的接口設備,所述接口設備用于實現多層協議,所述接口設備具有一個處理器,所述處理器配置為根據與其相關的多個分類中的一個對多個分組中的每個分組進行時序安排;丟棄不能進行時序安排的多個分組的每一個;以及在時序安排和丟棄之后在多個分組的每個的至少一些上壓縮頭。
16.如權利要求15的設備,還包括第一和第二隊列;其中所述處理器還配置為根據多個分類中的至少兩個而在時序安排、丟棄和壓縮之后將多個分組在第一和第二隊列中排隊,第一個隊列具有比第二個隊列高的優先級。
17.如權利要求15的設備,其中所述處理器,在時序安排期間,還配置為基于多個分類建立多個隊列;以及根據與其相關的多個分類中的一個將多個分組中的每一個排隊到多個隊列中的一個。
18.如權利要求17的設備,其中多個分類與不同的QoS等級有關。
19.如權利要求17的設備,其中多個分類與多個延遲因素有關;其中在多個隊列的每個中多個延遲因素的每個是不同的。
20.如權利要求17的設備,其中多個分類與多個丟棄敏感性因素有關;其中在多個隊列的每個中多個丟棄敏感性因素的每個是不同的。
21.如權利要求17的設備,其中多個分類與LFI有關。
22.如權利要求17的設備,其中多個分類與多鏈路PPP有關。
23.如權利要求16的設備,其中至少兩個分類中的一個包括最大努力分類并且其中所述處理器在排隊期間還配置為確定多個分組中的每一個是否分類為最大努力分組;以及將確定的最大努力分組排隊在第二個隊列中。
24.如權利要求15的設備,其中所述處理器還配置為在較高層對多個分組的每一個進行時序安排。
25.如權利要求15的設備,其中所述處理器還配置為在較低層對多個分組的每一個進行時序安排。
26.如權利要求25的設備,其中較低層包括PPP層。
27.如權利要求25的設備,其中較低層包括HDLC層并且其中所述處理器還配置為在執行壓縮步驟之前為多個分組的每一個生成一個標記,其中所述標記包含來自頭的至少一些信息;將所述標記添加到多個分組的每一個;以及在多個分組的每一個傳輸之前去掉所述標記。
28.如權利要求15的設備,還包括一個隊列深度不超過一的輸出隊列,并且其中所述處理器還配置為將在第一和第二個隊列中排隊的多個分組的每一個輸出到輸出隊列中。
全文摘要
一種用于通過在具有多個分類的多層結構中的各層執行IP時序安排和頭壓縮來減少多個分組的傳輸延遲的方法和設備,包括根據分類對分組的時序安排。如果在時序安排期間發生擁塞,則丟棄分組。一些分組頭在此后壓縮。分組在時序安排、丟棄和壓縮之后,根據至少兩種分類,還在第一和第二隊列中排隊。最大努力分組在較低優先級的第二隊列中排隊。分類與例如QoS等級、延遲因素、LFI和多鏈路PPP相關。時序安排在多層協議中的較高或較低層執行。較低層包括PPP層。較低層還包括在其上執行壓縮之前為分組生成一個標記的HDLC層。該標記在此后的某個點添加分組。標記在發送前去掉。具有隊列深度不超過1的輸出分組隊列確保不超過一個最大努力分組等待時間。
文檔編號H04L29/06GK1433623SQ0081872
公開日2003年7月30日 申請日期2000年11月8日 優先權日1999年11月30日
發明者S·拉赫恩, G·奧森 申請人:艾利森電話股份有限公司