System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及網絡數據傳輸,更具體地,涉及一種udp可靠傳輸方法、裝置、設備及存儲介質。
技術介紹
1、udp(user?datagram?protocol,用戶數據報協議)是在一組互聯的計算機網絡環境中提供分組交換計算機通信的數據報模式。udp為應用程序提供了一種以最少得協議機制向其他程序發送消息的過程,該協議是面向事務的,不保證傳遞和重復保護。因此,需要一種重傳機制保證udp可靠傳輸。
2、現有的udp可靠傳輸主要有三種方式,一是定時重傳,發送端如果發出數據幀后,在固定時間內沒有收到接收端發送的已接收應答幀,則發送端會重傳該數據幀,這總方式對帶寬消耗很大,不適合帶寬有限制的使用場景;二是請求重傳,接收端根據接收到的數據幀的流水號確定是否有丟包,從丟失的數據幀開始全部重傳,如果網絡很不好,造成發送端不停的重傳,引起通信質量下降,并且請求重傳方式延遲較大,不適合帶寬較小的場景;三是fec選擇重傳,在發送端發送報文的時候,會根據fec方式把幾個報文進行fec分組,通過xor得到若干個冗余包,然后一起發送接收端,如果接收端發現丟包但能通過fec分組算法還原,就不向發送端請求重傳,否則就向發送端請求原始數據幀,在一個帶寬不是很充裕的傳輸條件下,fec選擇重傳會增加多余的報,可能使網絡質量更差。
技術實現思路
1、針對現有技術的至少一個缺陷或改進需求,本專利技術提供了一種udp可靠傳輸方法、裝置、設備及存儲介質,將解決上述
技術介紹
中存在的問題至少其中之一。
2、為實現上
3、s1發送端和接收端分別創建套接字socket,發送端計算報文總幀數,接收端進入循環接收程序;
4、s2發送端發送第0幀,所述第0幀為報文信息幀,包括報文總長度、報文總幀數和報文流水號,發送端從第1幀開始依次發送所有數據幀,最后發送的數據幀為尾幀;
5、s3接收端對接收到的每幀進行crc校驗,丟棄校驗錯誤的報文,在接收到尾幀后基于所述第0幀的報文信息檢查報文接收情況,將報文接收情況通過應答幀發送至發送端;
6、s4發送端基于應答幀,將接收端未收到的全部幀重新發送;
7、s5若接收端接收到所有報文,向發送端發送應答幀,結束本次發送和接收流程;若接收端有部分報文未接收到,回到步驟s3。
8、進一步地,上述udp可靠傳輸方法,所述基于所述第0幀的報文信息檢查報文接收情況,具體包括接收端基于第0幀的報文信息包含的報文總長度、報文總幀數和報文流水號,與接收的全部報文進行比較,確認是否接收全部報文,若未接收全部報文,獲取缺失的報文幀的報文流水號。
9、進一步地,上述udp可靠傳輸方法,在發送端發送尾幀后,若在預設時間間隔內未收到應答幀,則向接收端發送詢問幀。
10、進一步地,上述udp可靠傳輸方法,若發送3次詢問幀后仍未收到應答幀,則關閉socket結束本次發送。
11、進一步地,上述udp可靠傳輸方法,接收端在接收到第0幀后,進行數據接收初始化,進入循環接收程序。
12、進一步地,上述udp可靠傳輸方法,在步驟s3中,接收端在收到第0幀后檢查是否為重復接收第0幀,若為重復接收,則丟棄后接收的第0幀。
13、進一步地,上述udp可靠傳輸方法,若接收端未收到第0幀,則將后續接收到的數據幀丟棄。
14、按照本專利技術的第二個方面,還提供了一種udp可靠傳輸設備,其包括至少一個處理單元、以及至少一個存儲單元,其中,所述存儲單元存儲有計算機程序,當所述計算機程序被所述處理單元執行時,使得所述處理單元執行上述任一項所述方法的步驟。
15、按照本專利技術的第三個方面,還提供了一種存儲介質,其存儲有可由udp可靠傳輸設備執行的計算機程序,當所述計算機程序在udp可靠傳輸設備上運行時,使得所述udp可靠傳輸設備執行上述任一項所述方法的步驟。
16、按照本專利技術的第四個方面,還提供了一種計算機程序產品,包括計算機程序,其特征在于,所述計算機程序被處理器執行時實現上述任一項所述udp可靠傳輸方法的步驟。
17、總體而言,通過本專利技術所構思的以上技術方案與現有技術相比,能夠取得下列有益效果:
18、本專利技術提供的一種udp可靠傳輸方法,通過在udp傳輸過程中采用選擇重傳模式,發送端將根據接收端反饋的接收情況應答幀重傳部分特定幀,減少接收端發送的應答頻率,能降低數據包重傳率,降低通信開銷,減少發送端需要重傳的數據量,能不引起通信質量大幅下降,縮短了重傳時延,不需要產生過多的冗余包,能減少通信雙方的計算量,更加簡單易實現,在信道帶寬小的情況下實現udp可靠傳輸。
本文檔來自技高網...【技術保護點】
1.一種UDP可靠傳輸方法,其特征在于,包括:
2.如權利要求1所述的UDP可靠傳輸方法,其特征在于,所述基于所述第0幀的報文信息檢查報文接收情況,具體包括接收端基于第0幀的報文信息包含的報文總長度、報文總幀數和報文流水號,與接收的全部報文進行比較,確認是否接收全部報文,若未接收全部報文,獲取缺失的報文幀的報文流水號。
3.如權利要求1所述的UDP可靠傳輸方法,其特征在于,在發送端發送尾幀后,若在預設時間間隔內未收到應答幀,則向接收端發送詢問幀。
4.如權利要求3所述的UDP可靠傳輸方法,其特征在于,若發送3次詢問幀后仍未收到應答幀,則關閉SOCKET結束本次發送。
5.如權利要求1所述的UDP可靠傳輸方法,其特征在于,接收端在接收到第0幀后,進行數據接收初始化,進入循環接收程序。
6.如權利要求5所述的UDP可靠傳輸方法,其特征在于,在步驟S3中,接收端在收到第0幀后檢查是否為重復接收第0幀,若為重復接收,則丟棄后接收的第0幀。
7.如權利要求1所述的UDP可靠傳輸方法,其特征在于,若接收端未收到第0幀,則
8.一種UDP可靠傳輸設備,其特征在于,包括至少一個處理單元、以及至少一個存儲單元,其中,所述存儲單元存儲有計算機程序,當所述計算機程序被所述處理單元執行時,使得所述處理單元執行權利要求1~7任一項所述方法的步驟。
9.一種存儲介質,其特征在于,其存儲有可由UDP可靠傳輸設備執行的計算機程序,當所述計算機程序在UDP可靠傳輸設備上運行時,使得所述UDP可靠傳輸設備執行權利要求1~7任一項所述方法的步驟。
10.一種計算機程序產品,包括計算機程序,其特征在于,所述計算機程序被處理器執行時實現如權利要求1至7任一項所述方法的步驟。
...【技術特征摘要】
1.一種udp可靠傳輸方法,其特征在于,包括:
2.如權利要求1所述的udp可靠傳輸方法,其特征在于,所述基于所述第0幀的報文信息檢查報文接收情況,具體包括接收端基于第0幀的報文信息包含的報文總長度、報文總幀數和報文流水號,與接收的全部報文進行比較,確認是否接收全部報文,若未接收全部報文,獲取缺失的報文幀的報文流水號。
3.如權利要求1所述的udp可靠傳輸方法,其特征在于,在發送端發送尾幀后,若在預設時間間隔內未收到應答幀,則向接收端發送詢問幀。
4.如權利要求3所述的udp可靠傳輸方法,其特征在于,若發送3次詢問幀后仍未收到應答幀,則關閉socket結束本次發送。
5.如權利要求1所述的udp可靠傳輸方法,其特征在于,接收端在接收到第0幀后,進行數據接收初始化,進入循環接收程序。
6.如權利要求5所述的udp可靠傳輸方法,其...
【專利技術屬性】
技術研發人員:劉立波,程川,毛燦,曾玥,魏奕,嚴惠平,周彬,余晶,林飛,李再煜,趙亦昕,劉正山,吳廣森,齊俊,王西,
申請(專利權)人:武漢船舶通信研究所中國船舶集團有限公司第七二二研究所,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。