System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及通信,特別涉及一種基于排序窗口的數據報文的排序方法、裝置及設備。
技術介紹
1、隨著各種新型網絡的發展和應用,對網絡帶寬提出了越來越高的需求,如視頻監控、地球觀測、量子物理等領域的海量數據傳輸。雖然現在的高速網絡帶寬飛速增長,但隨著各種各樣的應用軟件的普及,使得用戶在實際的大數據傳輸體驗中對傳輸速率的要求也越來越高。
2、udp協議因其協議處理開銷小、傳輸速率高等特性在高速傳輸中備受青睞。但是,在采用udp協議進行數據傳輸時,會因為數據傳輸路由以及傳輸路徑的不同而導致數據報文的到達時間不同,進而會出現數據報文亂序的問題。
技術實現思路
1、本申請要解決的技術問題在于,針對現有技術的不足,提供一種基于排序窗口的數據報文的排序方法、裝置及設備。
2、為了解決上述技術問題,本申請第一方面提供了一種基于排序窗口的數據報文的排序方法,其中,所述的基于排序窗口的數據報文的排序方法具體包括:
3、接收數據報文,并讀取數據報文的第一報文序號;
4、讀取預設的第一排序隊列對應的報文序號段,并根據所述報文序號段和所述第一報文序號查找所述數據報文在所述第一排序隊列中的排序位置;
5、當未查找到排序位置時,從所述第一排序隊列中選取被移動數據報文,根據所述被移動數據報文移動所述第一排序隊列對應的報文序號段,以更新第一排序隊列的報文序號段;
6、將移出的被移動數據報文移動至預設的第二排序隊列,并將所述數據報文放置于移動后的第一排
7、所述的基于排序窗口的數據報文的排序方法,其中,所述第一排序隊列和所述第二排序隊列均用于存儲數據報文的報文指針。
8、所述的基于排序窗口的數據報文的排序方法,其中,所述讀取預設的第一排序隊列對應的報文序號段具體包括:
9、讀取所述第二排序隊列中位于最后的數據報文的第二報文序號,以及所述第一排序隊列的隊列長度;
10、根據所述第二報文序號和所述隊列長度確定所述第一排序隊列對應的報文序號段。
11、所述的基于排序窗口的數據報文的排序方法,其中,所述接收數據報文,并讀取數據報文的第一報文序號之后,所述方法還包括:
12、檢測所述第一報文序號與所述第二排序隊列中位于最后的數據報文的第二報文序號是否連續;
13、若所述第一報文序號和所述第二報文序號連續,則將所述數據報文放置于所述第二排序隊列中位于最后的數據報文之后,并將所述第一排序隊列對應的報文序號段向后滑動一位,以更新所述報文序號段;
14、若所述第一報文序號和所述第二報文序號不連續,則執行從所述第一排序隊列中選取被移動數據報文的步驟。
15、所述的基于排序窗口的數據報文的排序方法,其中,所述從所述第一排序隊列中選取被移動數據報文具體包括:
16、選取第一排序隊列中位于最前的第一數據報文;
17、讀取第一排隊序列中以第一數據報文為起始報文的連續報文序列,并獲取所述連續報文序列所包含的報文數量;
18、確定所述第一報文序號與所述第一排序隊列中位于最后的數據報文的報文序號差;
19、若所述報文數量大于或者等于報文序號差,則將所述連續報文序列作為被移動數據報文;
20、若所述報文數量小于所述報文序號差,則讀取所述連續報文序列中位于最后的第二數據報文,將所述第一排序隊列的報文序號段的起始報文序號移動至第二數據報文的報文序號的后一報文序號,并重新讀取第一排隊序列中以第一數據報文為起始報文的連續報文序列。
21、所述的基于排序窗口的數據報文的排序方法,其中,所述選取第一排序隊列中位于最前的第一數據報文之后,所述方法還包括:
22、檢查所述第一數據報文之前是否存在空閑排序位置;
23、當存在空閑排序位置時,獲取所述空閑排序位置的空閑時長;
24、當空閑時長達到預設時長,或者未存在空閑排序位置時,執行讀取第一排隊序列中以第一數據報文為起始報文的連續報文序列;
25、當空閑時長未達到預設時長時,將所述數據報文存儲于緩存區域,并等待空閑時長達到預設時長后,執行讀取第一排隊序列中以第一數據報文為起始報文的連續報文序列的步驟。
26、所述的基于排序窗口的數據報文的排序方法,其中,所述將所述數據報文放置于所述第一排序隊列內具體包括:
27、讀取被移動數據報文中位于最后的數據報文的第四報文序號;
28、根據所述第四報文序列確定移動后的第一排序隊列對應的報文序號段;
29、根據所述報文序號段和第一排序隊列中的排序位置的對應關系,選取數據報文對應的排序位置,并將所述數據報文放入所述排序位置。
30、本申請第二方面提供了一種基于排序窗口的數據報文的排序裝置,其中,所述的基于排序窗口的數據報文的排序裝置具體包括:
31、接收模塊,用于接收數據報文,并讀取數據報文的第一報文序號;
32、讀取模塊,用于讀取預設的第一排序隊列對應的報文序號段,并根據所述報文序號段和所述第一報文序號查找所述數據報文在所述第一排序隊列中的排序位置;
33、選取模塊,用于當未查找到排序位置時,從所述第一排序隊列中選取被移動數據報文,根據所述被移動數據報文移動所述第一排序隊列對應的報文序號段,以更新第一排序隊列的報文序號段;
34、移動模塊,用于將移出的被移動數據報文移動至預設的第二排序隊列,并將所述數據報文放置于移動后的第一排序隊列內。
35、本申請第三方面提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有一個或者多個程序,所述一個或者多個程序可被一個或者多個處理器執行,以實現如上任一所述的基于排序窗口的數據報文的排序方法中的步驟。
36、本申請第四方面提供了一種終端設備,其包括:處理器和存儲器;
37、所述存儲器上存儲有可被所述處理器執行的計算機可讀程序;
38、所述處理器執行所述計算機可讀程序時實現如上任一所述的基于排序窗口的數據報文的排序方法中的步驟。
39、有益效果:與現有技術相比,本申請提供了一種基于排序窗口的數據報文的排序方法、裝置及設備,方法包括接收數據報文,并讀取數據報文的第一報文序號;讀取預設的第一排序隊列對應的報文序號段,并根據所述報文序號段和所述第一報文序號查找所述數據報文在所述第一排序隊列中的排序位置;當未查找到排序位置時,從所述第一排序隊列中選取被移動數據報文,根據所述被移動數據報文移動所述第一排序隊列對應的報文序號段,以更新第一排序隊列的報文序號段;將移出的被移動數據報文移動至預設的第二排序隊列,并將所述數據報文放置于移動后的第一排序隊列內。本申請中第一排序隊列通過滑動窗口方式來對接收到的數據報文進行排序,并將排序后的數據報文移動至第二排隊序列,以通過第一排序隊列和第二排序隊列的配合,實現了報文亂序重排。
本文檔來自技高網...【技術保護點】
1.一種基于排序窗口的數據報文的排序方法,其特征在于,所述的基于排序窗口的數據報文的排序方法具體包括:
2.根據權利要求1所述的基于排序窗口的數據報文的排序方法,其特征在于,所述第一排序隊列和所述第二排序隊列均用于存儲數據報文的報文指針。
3.根據權利要求1所述的基于排序窗口的數據報文的排序方法,其特征在于,所述讀取預設的第一排序隊列對應的報文序號段具體包括:
4.根據權利要求1所述的基于排序窗口的數據報文的排序方法,其特征在于,所述接收數據報文,并讀取數據報文的第一報文序號之后,所述方法還包括:
5.根據權利要求1所述的基于排序窗口的數據報文的排序方法,其特征在于,所述從所述第一排序隊列中選取被移動數據報文具體包括:
6.根據權利要求5所述的基于排序窗口的數據報文的排序方法,其特征在于,所述選取第一排序隊列中位于最前的第一數據報文之后,所述方法還包括:
7.根據權利要求1所述的基于排序窗口的數據報文的排序方法,其特征在于,所述將所述數據報文放置于所述第一排序隊列內具體包括:
8.一種基于排序窗口
9.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質存儲有一個或者多個程序,所述一個或者多個程序可被一個或者多個處理器執行,以實現如權利要求1-7任意一項所述的基于排序窗口的數據報文的排序方法中的步驟。
10.一種終端設備,其特征在于,包括:處理器和存儲器;
...【技術特征摘要】
1.一種基于排序窗口的數據報文的排序方法,其特征在于,所述的基于排序窗口的數據報文的排序方法具體包括:
2.根據權利要求1所述的基于排序窗口的數據報文的排序方法,其特征在于,所述第一排序隊列和所述第二排序隊列均用于存儲數據報文的報文指針。
3.根據權利要求1所述的基于排序窗口的數據報文的排序方法,其特征在于,所述讀取預設的第一排序隊列對應的報文序號段具體包括:
4.根據權利要求1所述的基于排序窗口的數據報文的排序方法,其特征在于,所述接收數據報文,并讀取數據報文的第一報文序號之后,所述方法還包括:
5.根據權利要求1所述的基于排序窗口的數據報文的排序方法,其特征在于,所述從所述第一排序隊列中選取被移動數據報文具體包括:
【專利技術屬性】
技術研發人員:劉江,
申請(專利權)人:柏科數據技術深圳股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。