新四季網

一種基於綁定鏈路實現數據發送的方法

2023-09-21 11:47:45

專利名稱:一種基於綁定鏈路實現數據發送的方法
技術領域:
本發明涉及在多條鏈路上發送屬於同一邏輯鏈路數據的方法,具體是一種基於綁定鏈路實現數據發送的方法,特別適用於通訊領域中使用多鏈路捆綁技術進行數據發送的通信節點。
背景技術:
當通信節點間存在多條鏈路時,為統一使用這些鏈路的帶寬,可以採用MP(Multilink-PPP,RFC1990)協議將多條鏈路捆綁在一起作為一個Bundle(綁定鏈路),這時對於上層應用看到的就只有一條鏈路,這樣可以有效的利用節點間所有鏈路的帶寬。
在移動通訊網中,BTS(基站收發信機)與BSC(基站控制器)之間的物理連接一般會使用多條E1線,每個E1線的帶寬被32個傳輸時隙平分。BTS或BSC中的上層業務模塊可以根據某些原則,比如Qos要求或者區分信令/媒體流,來選擇使用某一個Bundle來傳輸數據,一個Bundle由多條HDLC鏈路捆綁而成,一條HDLC鏈路可能包含1~32個時隙;通過系統管理後臺增刪Bundle對應子鏈路集合中的成員,也可以改變每條HDLC鏈路對應時隙個數,因此每個Bundle和HDLC的帶寬都是可以動態配置的。
每一個Bundle對應一個Bundle發送隊列,上層業務模塊將所有需要在同一Bundle上發送的MP分片包按順序入隊,發送調度模塊從隊列中取包,選擇Bundle對應子鏈路集中的某一HDLC,將數據包交給該HDLC發送。因為各條HDLC的帶寬可能不同,因此發送調度模塊需要參考各條HDLC的帶寬大小,合理分配數據包到各條HDLC鏈路上,以保證不出現某些HDLC溢出而某些HDLC空閒的情況。
發送調度模塊可以採取的一種調度方法是每條HDLC有一個單獨的發送隊列,調度方法的原則是,在單位時間內入隊到各HDLC發送隊列中的數據量之比應當儘可能的接近HDLC帶寬比,這樣才能達到公平利用每條HDLC發送能力的目的。
這種選擇發送HDLC的方法有以下缺點一、必須有定時器來定位單位時間,定時器超時後將各條HDLC的發送統計值清零,對於由網絡處理器或FPGA實現的多鏈路發送模塊,定時器不易獲得;二、如果HDLC數量較多,HDLC發送隊列的管理將消耗大量的內存空間;
三、每條HDLC對應的時隙是可以動態調整的,因此一個Bundle所包含的子鏈路集成員間的帶寬比有可能發生變化,在變化發生以後,發送調度模塊需要重新比對HDLC帶寬比和發送統計值,方法複雜。
發送調度模塊還可以採用另一種相對簡單的方法從某一Bundle發送隊列中取MP分片包後,查Bundle與HDLC對應表,獲得此Bundle對應的所有HDLC,發送調度模塊依次查詢這些HDLC的鏈路情況,如果發現某條HDLC空閒,就選擇此HDLC發送。
這種方法的缺點是,當發送調度模塊從Bundle發送隊列中取出MP分片包後,如果前一時刻有短暫的突發數據,那麼此時Bundle對應的所有HDLC鏈路就有可能都處於忙狀態,此時有三種處理辦法1、數據包丟棄,這樣Bundle發送隊列就沒有起到緩衝的作用;2、將MP分片包再入隊,放置在隊尾,因為MP協議是按照MP分片包中的序號在接收端組包,所以MP分片包在隊列中位置的改變,將引起接收方組包時較大的時延;3、一直輪詢此Bundle所有HDLC鏈路狀態,直到有一個HDLC鏈路空閒為止,這樣做的缺點是發送調度模塊在此期間無法為其它Bundle發送隊列服務,即使其它Bundle對應的HDLC鏈路處於空閒狀態。

發明內容
本發明的目的是在多鏈路發送技術方面,提供一種基於綁定鏈路實現數據發送的方法,克服現有技術中存在的上述發送方法的種種缺點,達到方法簡單,易於實現,公平高效的目的。
本發明提出的數據發送方法,主要構思是使用發送調度線程判斷從哪些Bundle隊列中取數據包;發送執行線程提供子鏈路狀況並發送數據;使用子鏈路發送狀態表作為中間層,存儲每條子鏈路當前的發送信息。
本發明具體是這樣實現的一種基於綁定鏈路實現數據發送的方法,包括建立綁定鏈路發送隊列,每個綁定鏈路對應一個發送隊列;其特徵在於,還包括如下處理建立子鏈路發送狀態表,一條子鏈路對應一個表項,所有表項按照子鏈路號順序排列;建立子鏈路的硬體發送緩存,所述硬體發送緩存的字節數固定;建立發送調度線程,根據子鏈路發送狀態表選擇從哪個綁定鏈路的發送隊列中取包;建立發送執行線程,循環檢查所有配置的子鏈路情況,並將數據包內容拷貝到硬體發送緩存中。
所述發送調度線程執行如下處理步驟一、循環檢測子鏈路發送狀態表中的每條子鏈路對應狀態,找到一個可用子鏈路;步驟二、根據子鏈路與綁定鏈路的對應關係,獲取此子鏈路對應的綁定鏈路號,並從此子鏈路對應的綁定鏈路發送隊列中取數據包;步驟三、並且將數據包信息存入子鏈路發送狀態表,修改此子鏈路發送狀態為不可用;步驟四、繼續檢查子鏈路發送狀態表中下一個子鏈路的狀態。
所述發送執行線程執行如下處理步驟一、循環檢測子鏈路發送狀態表中的每個表項,直到找到一條子鏈路有數據包等待發送;步驟二、檢查此子鏈路是否空閒,若否,則返回步驟一;步驟三、將子鏈路發送狀態表中指示的數據包內容拷貝到硬體發送緩存,通知硬體發送;步驟四、清除此子鏈路對應表項中數據包信息,將此子鏈路改為可用狀態;步驟五、繼續檢查子鏈路發送狀態表中下一個表項。
所述子鏈路發送狀態表中的每個表項包含子鏈路是否被配置使用的欄位;子鏈路是否正處於等待發送狀態的欄位;當前數據包已發送字節數的欄位;當前數據包剩餘待發送字節數的欄位;指向存儲待發送數據包內容內存的欄位。
若綁定鏈路發送隊列中的數據包長度都小於硬體發送緩存,省略表項中的當前數據包已發送字節數和當前數據包剩餘待發送字節數欄位,增加一個欄位表示數據包的實際長度;所述發送調度線程將數據包長度填入子鏈路發送狀態表;所述發送執行線程在處理每個表項時,直接將整個數據包內容拷貝到硬體發送緩存。
本發明提出的數據發送方法給每條子鏈路同樣多的發送機會,對於帶寬大的鏈路使用發送機會的比例大些,帶寬小的鏈路使用發送機會的比例小些,這樣就不需要關心每條鏈路帶寬的大小以及因配置改變帶來的帶寬改變,方法簡單易於實現;另外使用發送狀態表存儲每條子鏈路的發送狀態,可以避免某條子鏈路堵塞而引起整個通信節點發送效率下降的情況。


圖1為本發明實施例中各部分關係圖;
圖2為本發明實施例中發送調度線程處理流程圖;圖3為本發明實施例中發送執行線程處理流程圖。
具體實施例方式
下面結合附圖和實施例對本發明作進一步的詳細說明。
本發明的一個實施例是應用在BTS的Abis接口板的MP發送模塊,此模塊使用Intel的網絡處理器作為硬體實現平臺,最多支持48個Bundle/128條HDLC/48條E1,每個Bundle可以由1~128個HDLC捆綁組成。
圖1描述了本發明實施例中各部分之間的關係(1)Bundle發送隊列,每個Bundle對應一個發送隊列;(2)HDLC發送狀態表,一條HDLC對應一個表項,表項數為此通信節點能夠配置的最大HDLC個數,所有表項按照HDLC號順序排列,每個表項包含五個欄位Using表示此HDLC是否被配置使用,Waiting表示此HDLC是否正處於等待發送的狀態,Sended表示當前數據包已發送字節數,Left表示當前數據包剩餘待發送字節數,Buffer_pointer表示指向存儲待發送數據包內容的內存;(3)MSF TBUF為網絡處理器提供的HDLC發送緩存,發送緩存大小固定,假設為t字節;(4)發送調度線程,它根據HDLC發送狀態表選擇從哪個Bundle發送隊列中取包;(5)發送執行線程,它循環檢查所有配置的HDLC鏈路情況,並將數據包內容拷貝到MSF發送緩存中。
發送調度線程循環檢查HDLC發送狀態表的各個表項,對每個表項的處理流程如圖2描述第一步,檢查Using欄位,若此HDLC沒有被配置使用,轉向下一個表項處理;第二步,檢查Waiting欄位,若此HDLC處在等待發送狀態,轉向下一個表項處理;第三步,用表項對應HDLC號查找此HDLC對應Bundle號;第四步,從對應Bundle發送隊列中取包,若隊列中沒有包,轉向下一個表項處理;第五步,將取到的數據包對應的指針寫入Buffer_pointer欄位;第六步,將Sended清空,Left置為數據包長度,Waiting欄位置為等待狀態;第七步,處理下一個表項。
發送執行線程也循環檢查HDLC發送狀態表的各個表項,對每個表項的處理流程如圖3描述
第一步,檢查Using欄位,若此HDLC沒有被配置使用,轉向下一個表項處理;第二步,檢查Waiting欄位,若此HDLC不在等待發送狀態,轉向下一個表項處理;第三步,檢查MSF提供的HDLC發送狀態寄存器,如果HDLC鏈路忙,轉向下一個表項處理,如果HDLC鏈路空閒,則繼續下一步處理;第四步,檢查Sended是否等於零,如果等於零表示此HDLC將要開始一個新數據包的發送,通知MSF,設置偏移量為0,如果Sended不等於零,說明這個數據包已經發送了一部分,設置偏移量為Sended字節;第五步,根據偏移量,拷貝Buffer_pointer指示數據包對應內容到MSF發送緩存,拷貝長度為t和Left之間的較小值;第六步,Sended自加min(t,Left),Left自減min(t,Left);第七步,如果Left不等於零說明此數據包還有數據等待下一次發送,轉向下一個表項處理;第八步,如果Left等於零已經發送完畢,通知MSF,將Waiting置為非等待狀態;第九步,處理下一表項。
在具體實施本發明的技術方案時,根據實際情況,子鏈路發送狀態表表項內容可以有所不同,例如如果確定Bundle隊列中的數據包長度都小於硬體的發送緩存,表項中的Sended和Left欄位都可以省略,增加一個欄位表示數據包的實際長度即可,對應的發送調度線程將數據包長度填入HDLC發送狀態表,發送執行線程在處理每個表項時,就無需判斷此數據包是否已經被發送了一部分,直接將整個數據包內容拷貝到硬體發送緩存即可。雖然表項內容可能與本發明的實施例不同,但是只要使用子鏈路發送狀態表作為中間層,存儲子鏈路發送過程中的臨時信息,都應在本發明的保護範圍內。
權利要求
1.一種基於綁定鏈路實現數據發送的方法,包括建立綁定鏈路發送隊列,每個綁定鏈路對應一個發送隊列;其特徵在於,還包括如下處理建立子鏈路發送狀態表,一條子鏈路對應一個表項,所有表項按照子鏈路號順序排列;建立子鏈路的硬體發送緩存,所述硬體發送緩存的字節數固定;建立發送調度線程,根據子鏈路發送狀態表選擇從哪個綁定鏈路的發送隊列中取包;建立發送執行線程,循環檢查所有配置的子鏈路情況,並將數據包內容拷貝到硬體發送緩存中。
2.如權利要求1所述的基於綁定鏈路實現數據發送的方法,其特徵在於所述發送調度線程執行如下處理步驟一、循環檢測子鏈路發送狀態表中的每條子鏈路對應狀態,找到一個可用子鏈路;步驟二、根據子鏈路與綁定鏈路的對應關係,獲取此子鏈路對應的綁定鏈路號,並從此子鏈路對應的綁定鏈路發送隊列中取數據包;步驟三、並且將數據包信息存入子鏈路發送狀態表,修改此子鏈路發送狀態為不可用;步驟四、繼續檢查子鏈路發送狀態表中下一個子鏈路的狀態。
3.如權利要求1所述的基於綁定鏈路實現數據發送的方法,其特徵在於所述發送執行線程執行如下處理步驟一、循環檢測子鏈路發送狀態表中的每個表項,直到找到一條子鏈路有數據包等待發送;步驟二、檢查此子鏈路是否空閒,若否,則返回步驟一;步驟三、將子鏈路發送狀態表中指示的數據包內容拷貝到硬體發送緩存,通知硬體發送;步驟四、清除此子鏈路對應表項中數據包信息,將此子鏈路改為可用狀態;步驟五、繼續檢查子鏈路發送狀態表中下一個表項。
4.如權利要求1或2或3所述的基於綁定鏈路實現數據發送的方法,其特徵在於所述子鏈路發送狀態表中的每個表項包含子鏈路是否被配置使用的欄位;子鏈路是否正處於等待發送狀態的欄位;當前數據包已發送字節數的欄位;當前數據包剩餘待發送字節數的欄位;指向存儲待發送數據包內容內存的欄位。
5.如權利要求4所述的基於綁定鏈路實現數據發送的方法,其特徵在於若綁定鏈路發送隊列中的數據包長度都小於硬體發送緩存,省略表項中的當前數據包已發送字節數和當前數據包剩餘待發送字節數欄位,增加一個欄位表示數據包的實際長度;所述發送調度線程將數據包長度填入子鏈路發送狀態表;所述發送執行線程在處理每個表項時,直接將整個數據包內容拷貝到硬體發送緩存。
全文摘要
本發明涉及一種基於綁定鏈路實現數據發送的方法,特別適用於通訊領域中使用多鏈路捆綁技術進行數據發送的通信節點。本發明使用發送調度線程判斷從哪些Bundle隊列中取數據包;發送執行線程提供子鏈路狀況並發送數據;使用子鏈路發送狀態表作為中間層,存儲每條子鏈路當前的發送信息。本發明所述方法給每條子鏈路同樣多的發送機會,對於帶寬大的鏈路,使用發送機會的比例大些,帶寬小的鏈路,使用發送機會的比例小些,這樣就不需要關心每條鏈路帶寬的大小以及因配置改變帶來的帶寬改變,方法簡單、易於實現;另外使用發送狀態表存儲每條子鏈路的發送狀態,可以避免某條子鏈路堵塞而引起整個通信節點發送效率下降的情況。
文檔編號H04L29/04GK101072224SQ20061007808
公開日2007年11月14日 申請日期2006年5月9日 優先權日2006年5月9日
發明者王飛祥, 周志雄 申請人:中興通訊股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀