新四季網

一種基於多線程環境網絡數據包亂序控制方法

2023-05-08 09:28:01

專利名稱:一種基於多線程環境網絡數據包亂序控制方法
技術領域:
本發明涉及計算機服務端多線程環境下的數據處理領域,尤其涉及一種基於多線程環境網絡數據包亂序控制方法。
背景技術:
在CS架構的服務端通信中,為了處理多個客戶端並發的請求,往往會開啟多個線程或者是線程池來處理業務,以提高服務的處理能力,如果一個客戶端連續向伺服器發送請求包,而且對包的先後順序有嚴格的要求,在這種情況下,伺服器的多線程處理就有可能打亂此客戶端數據包的先後順序,不能保證客戶端的數據包順序到達服務端,順序返回客戶端。

發明內容
針對上述技術問題,本發明設計開發了一種基於多線程環境網絡數據包亂序控制方法,目的在保證客戶端的數據包順序到達服務端,順序返回客戶端,有效控制多線程化境下的數據包的處理順序。本發明提供的技術方案為:一種基於多線程環境網絡數據包亂序控制方法,包括以下步驟:步驟一、一個線程不斷接收多個客戶端向服務端發送的多個數據包並放到源隊列中緩存;步驟二、另一個線程循環的遍歷源隊列,每遍歷一條記錄就判斷這條記錄是否在目標隊列中,若不在目標隊列中,就將這條記錄取出放到目標隊列尾部,並記下此客戶端的ID,接著遍歷下一條記錄,若在目標隊列中,判斷這條記錄之前是否存在同一客戶端的數據包在等待處理,若不存在,記下這個位置,接著遍歷下一條記錄,若存在,跳到等待處理的數據包的位置,取出這個數據包放到目標隊列尾部,接著遍歷下一條記錄;步驟三、其他線程不斷從目標隊列取走排在頭部的客戶端的數據包進行處理。優選的是,所述的基於多線程環境網絡數據包亂序控制方法中,一個客戶端一次向服務端發送一個數據包,所述數據包按服務端接收的先後順序保存到源隊列中。優選的是,所述的基於多線程環境網絡數據包亂序控制方法中,所述目標隊列中只能保存一個客戶端的一個數據包。優選的是,所述的基於多線程環境網絡數據包亂序控制方法中,當發現目標隊列中有客戶端的數據包被處理完成,馬上從源隊列中取出這個客戶端等待處理的數據包填充到目標隊列尾部。優選的是,所述的基於多線程環境網絡數據包亂序控制方法中,所述步驟二源隊列中已經放到目標隊列的記錄刪除後,繼續從源隊列頭部開始遍歷源隊列。本發明所述的基於多線程環境網絡數據包亂序控制方法具有以下有益效果:服務端最初接收到的數據包保存在源隊列中,它本身就是有序的,保證了客戶端的數據包順序到達服務端。由於目標隊列保存的是一個客戶端的一個數據包,不會有這個客戶端的第二個數據包,因此經過遍歷後,多個客戶端的數據包將從源隊列順序放到目標隊列中進行數據處理,保證了處理後的數據順序返回客戶端,有效控制了多線程化境下的數據包的處理順序。


圖1是本發明所述的基於多線程環境網絡數據包亂序控制方法的流程圖;圖2是本發明的一個實施例的示意圖。
具體實施例方式下面結合附圖對本發明做進一步的詳細說明,以令本領域技術人員參照說明書文字能夠據以實施。如圖1所示,本發明提供一種基於多線程環境網絡數據包亂序控制方法,包括以下步驟:步驟一、一個線程不斷接收多個客戶端向服務端發送的多個數據包並放到源隊列中緩存;步驟二、另一個線程循環的遍歷源隊列,每遍歷一條記錄就判斷這條記錄是否在目標隊列中,若不在目標隊列中,就將這條記錄取出放到目標隊列尾部,並記下此客戶端的ID,接著遍歷下一條記錄,若在目標隊列中,判斷這條記錄之前是否存在同一客戶端的數據包在等待處理,若不存在,記下這個位置,接著遍歷下一條記錄,若存在,跳到等待處理的數據包的位置,取出這個數據包放到目標隊列尾部,接著遍歷下一條記錄;步驟三、其他線程不斷從目標隊列取走排在頭部的客戶端的數據包進行處理。所述的基於多線程環境網絡數據包亂序控制方法中,一個客戶端一次向服務端發送一個數據包,所述數據包按服務端接收的先後順序保存到源隊列中。所述的基於多線程環境網絡數據包亂序控制方法中,所述目標隊列中只能保存一個客戶端的一個數據包。所述的基於多線程環境網絡數據包亂序控制方法中,當發現目標隊列中有客戶端的數據包被處理完成,馬上從源隊列中取出這個客戶端等待處理的數據包填充到目標隊列尾部。所述的基於多線程環境網絡數據包亂序控制方法中,所述步驟二源隊列中已經放到目標隊列的記錄刪除後,繼續從源隊列頭部開始遍歷源隊列。本發明的實施例中,客戶端以user表示,數據包以packet表示,用數字1、2、3......區分不同的客戶端和數據包。多個客戶端不斷向服務端發送數據包,一個線程將四個客戶端發送的八個數據包按接收到的先後順序保存到源隊列中,另一個線程循環遍歷源隊列,將userl的packetl移到目標隊列,並記下此userl正在被處理,當遍歷到userl,packet2時,發現源隊列有userl的packetl正在處理,而且在它之前沒有userl的packet在等待處理,記下userl的packet2的位置N,接著遍歷下一條,當遍歷到user2, packetl時,發現不在目標隊列中,將它移到目標隊列中,依次類推,user3, packetl和user4, packet2都被移動目標隊列中。刪除源隊列中已經移到目標隊列的數據包,用NULL表示已刪除,繼續從源隊列頭部開始遍歷此隊列,重複前面的操作。若目標隊列中的userl,packetl已經被處理掉了,正好源隊列遍歷到了 userl,packet3位置,發現在它之前有userl,packet2在等待處理,優先處理userl, packet2,將userl, packet2放到目標隊列尾部,然後跳回到userl,packet3位置開始重新遍歷,最終目標隊列中保存的是所有user的單個數據包,其他的包將留在源隊列中等待處理。儘管本發明的實施方案已公開如上,但其並不僅僅限於說明書和實施方式中所列運用,它完全可以被適用於各種適合本發明的領域,對於熟悉本領域的人員而言,可容易地實現另外的修改,因此在不背離權利要求及等同範圍所限定的一般概念下,本發明並不限於特定的細節和這裡示出與描述的圖例。
權利要求
1.一種基於多線程環境網絡數據包亂序控制方法,其特徵在於,包括以下步驟: 步驟一、一個線程不斷接收多個客戶端向服務端發送的多個數據包並放到源隊列中緩存; 步驟二、另一個線程循環的遍歷源隊列,每遍歷一條記錄就判斷這條記錄是否在目標隊列中,若不在目標隊列中,就將這條記錄取出放到目標隊列尾部,並記下此客戶端的ID,接著遍歷下一條記錄,若在目標隊列中,判斷這條記錄之前是否存在同一客戶端的數據包在等待處理,若不存在,記下這個位置,接著遍歷下一條記錄,若存在,跳到等待處理的數據包的位置,取出這個數據包放到目標隊列尾部,接著遍歷下一條記錄; 步驟三、其他線程不斷從目標隊列取走排在頭部的客戶端的數據包進行處理。
2.如權利要求1所述的基於多線程環境網絡數據包亂序控制方法,其特徵在於,一個客戶端一次向服務端發送一個數據包,所述數據包按服務端接收的先後順序保存到源隊列中。
3.如權利要求2所述的基於多線程環境網絡數據包亂序控制方法,其特徵在於,所述目標隊列中只能保存一個客戶端的一個數據包。
4.如權利要求3所述的基於多線程環境網絡數據包亂序控制方法,其特徵在於,當發現目標隊列中有客戶端的數據包被處理完成,馬上從源隊列中取出這個客戶端等待處理的數據包填充到目標隊列尾部。
5.如權利要求4所述的基於多線程環境網絡數據包亂序控制方法,其特徵在於,所述步驟二源隊列中已經放到目標隊列的記錄刪除後,繼續從源隊列頭部開始遍歷源隊列。
全文摘要
本發明公開了一種基於多線程環境網絡數據包亂序控制方法,其特徵在於,包括以下步驟一個線程不斷接收多個客戶端向服務端發送的數據包放到源隊列中緩存;另一個線程循環遍歷源隊列,每遍歷一條記錄就判斷是否在目標隊列中,若不在,就將這條記錄取出放到目標隊列尾部,並記下此客戶端的ID,接著遍歷下一條記錄,若在,判斷這條記錄之前是否存在同一客戶端的數據包在等待處理,若不存在,記下這個位置,接著遍歷下一條記錄,若存在,跳到等待處理的數據包位置,取出這個數據包放到目標隊列尾部,接著遍歷下一條記錄;其他線程不斷從目標隊列取走排在頭部的客戶端的數據包進行處理。本發明所述的方法有效控制了多線程化境下的數據包的處理順序。
文檔編號H04L29/08GK103078811SQ201310037379
公開日2013年5月1日 申請日期2013年1月31日 優先權日2013年1月31日
發明者徐志剛, 張立 申請人:北京金和軟體股份有限公司

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀