亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

適用于分布式網(wǎng)絡(luò)的udp傳輸方法和系統(tǒng)的制作方法

文檔序號(hào):9380278閱讀:1117來源:國知局
適用于分布式網(wǎng)絡(luò)的udp傳輸方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式網(wǎng)絡(luò)通訊技術(shù)領(lǐng)域,尤其涉及一種適用于分布式網(wǎng)絡(luò)的UDP傳輸方法和系統(tǒng)。
【背景技術(shù)】
[0002]在對(duì)等分布式網(wǎng)絡(luò)通訊中,有一個(gè)技術(shù)難題是關(guān)于NAT穿越的問題,NAT穿越(NATtraversal)涉及TCP/IP網(wǎng)絡(luò)中的一個(gè)常見問題,即在處于使用了 NAT設(shè)備的私有TCP/IP網(wǎng)絡(luò)中的主機(jī)之間建立連接的問題。盡管有許多穿越NAT的技術(shù),但沒有一項(xiàng)是完美的,這是因?yàn)镹AT的行為是非標(biāo)準(zhǔn)化的。這些技術(shù)中的大多數(shù)都要求有一個(gè)公共服務(wù)器,而且這個(gè)服務(wù)器使用的是一個(gè)眾所周知的、從全球任何地方都能訪問得到的IP地址。一些方法僅在建立連接時(shí)需要使用這個(gè)服務(wù)器,而其它的方法則通過這個(gè)服務(wù)器中繼所有的數(shù)據(jù)一一這就引入了帶寬開銷的問題。
[0003]解決穿透NAT問題的一個(gè)思路是,私網(wǎng)中終端通過某種機(jī)制預(yù)先得到出口 NAT上的對(duì)外地址,然后在負(fù)載中所填寫的地址信息直接填寫出口 NAT上的對(duì)外地址,而不是私網(wǎng)內(nèi)終端的私有IP地址,這樣負(fù)載中的內(nèi)容在經(jīng)過NAT時(shí)就無需被修改了,只需按普通NAT流程轉(zhuǎn)換報(bào)文頭的IP地址即可,負(fù)載中的IP地址信息和報(bào)文頭地址信息是一致的。STUN協(xié)議就是基于此思路來解決應(yīng)用層地址的轉(zhuǎn)換問題。STUN的全稱是Simple Traversal ofUDP Through Network Address Translators,即 UDP 對(duì) NAT 的簡(jiǎn)單穿越方式。
[0004]STUN協(xié)議的一個(gè)重要點(diǎn)是基于UDP協(xié)議進(jìn)行數(shù)據(jù)傳輸,UDP協(xié)議面向無連接通信,沒有三次握手的需求,網(wǎng)絡(luò)設(shè)備在通信時(shí),UDP數(shù)據(jù)擁有比TCP數(shù)據(jù)更高的優(yōu)先通信權(quán)利,這點(diǎn)使得UDP數(shù)據(jù)在通信上更加的快速,但是當(dāng)網(wǎng)絡(luò)擁堵時(shí),通信設(shè)備同樣會(huì)優(yōu)先丟棄UDP數(shù)據(jù),這種設(shè)計(jì)方式會(huì)導(dǎo)致UDP數(shù)據(jù)出現(xiàn)丟失的問題,同時(shí)協(xié)議沒有規(guī)定相應(yīng)的流控制方式,自然也不會(huì)保證數(shù)據(jù)的順序到達(dá)。在沒有流控制的情況下,UDP數(shù)據(jù)可能出現(xiàn)丟失、亂序到達(dá)的問題,同樣由于沒有流控制,如果開發(fā)控制不當(dāng),可能導(dǎo)致數(shù)據(jù)風(fēng)暴問題。在系統(tǒng)驅(qū)動(dòng)實(shí)現(xiàn)上,由于所有的UDP數(shù)據(jù)接收時(shí),使用共享的數(shù)據(jù)緩沖區(qū),設(shè)置不當(dāng)大小的緩沖區(qū),可能會(huì)增加數(shù)據(jù)包的丟失問題,這個(gè)就是為什么UDP協(xié)議無法實(shí)現(xiàn)高并發(fā)的服務(wù)器原因所在。

【發(fā)明內(nèi)容】

[0005]在下文中給出關(guān)于本發(fā)明的簡(jiǎn)要概述,以便提供關(guān)于本發(fā)明的某些方面的基本理解。應(yīng)當(dāng)理解,這個(gè)概述并不是關(guān)于本發(fā)明的窮舉性概述。它并不是意圖確定本發(fā)明的關(guān)鍵或重要部分,也不是意圖限定本發(fā)明的范圍。其目的僅僅是以簡(jiǎn)化的形式給出某些概念,以此作為稍后論述的更詳細(xì)描述的前序。
[0006]本發(fā)明提供一種針對(duì)對(duì)等分布式網(wǎng)絡(luò)設(shè)計(jì)的、支持穿越MT、支持?jǐn)?shù)據(jù)重發(fā)的適用于分布式網(wǎng)絡(luò)的UDP傳輸方法和系統(tǒng),并進(jìn)一步將重發(fā)機(jī)制、數(shù)據(jù)校驗(yàn)、數(shù)據(jù)壓縮、RTT計(jì)算、應(yīng)用層數(shù)據(jù)拆分與重組集中于一個(gè)模塊中,打造一個(gè)支持面向?qū)ο缶幊痰陌踩咝У膫鬏斈K,為對(duì)等網(wǎng)絡(luò)傳輸提供更好的通訊支持。
[0007]本發(fā)明的一個(gè)方面提供一種適用于分布式網(wǎng)絡(luò)的UDP傳輸方法,所述分布式網(wǎng)絡(luò)中包括若干網(wǎng)絡(luò)節(jié)點(diǎn),所述網(wǎng)絡(luò)節(jié)點(diǎn)中包括傳輸模塊和上層應(yīng)用模塊,所述傳輸模塊包括至少一個(gè)鏈接單元,所述鏈接單元包括一對(duì)發(fā)送子單元和接收子單元,所述發(fā)送子單元內(nèi)設(shè)有發(fā)送緩沖器和發(fā)送定時(shí)器,所述接收子單元內(nèi)設(shè)有接收緩沖器和接收定時(shí)器,所述方法包括:
[0008]S13:第一發(fā)送子單元將待發(fā)送的第一數(shù)據(jù)存入第一發(fā)送緩沖器,并向第二接收子單元發(fā)送包含所述第一數(shù)據(jù)的數(shù)據(jù)包;
[0009]S15:第一發(fā)送定時(shí)器定時(shí)檢測(cè)第一接收子單元是否收到對(duì)應(yīng)所述數(shù)據(jù)包的確認(rèn)字符,如未收到,則所述第一發(fā)送子單元向所述第二接收子單元定時(shí)重發(fā)所述數(shù)據(jù)包;
[0010]S17:所述第一接收子單元接收所述確認(rèn)字符,或在預(yù)設(shè)的最大發(fā)送超時(shí)時(shí)間內(nèi)未收到所述確認(rèn)字符,所述第一發(fā)送子單元?jiǎng)h除所述第一發(fā)送緩沖器中緩存的所述第一數(shù)據(jù)。
[0011]本發(fā)明的一個(gè)方面還提供另一種適用于分布式網(wǎng)絡(luò)的UDP傳輸方法,所述方法包括:
[0012]S23:第一發(fā)送子單元將待發(fā)送的第一數(shù)據(jù)拆分為第一組數(shù)據(jù)分片,將所述第一組數(shù)據(jù)分片存入第一發(fā)送緩沖器;
[0013]S25:所述第一發(fā)送子單元分批次向第二接收子單元發(fā)送分別包含所述第一組數(shù)據(jù)分片中各數(shù)據(jù)分片的數(shù)據(jù)包,第一發(fā)送定時(shí)器分別定時(shí)檢測(cè)第一接收子單元是否收到對(duì)應(yīng)各批次發(fā)送數(shù)據(jù)包的確認(rèn)字符,如未收到,則所述第一發(fā)送子單元向所述第二接收子單元定時(shí)重發(fā)未收到的確認(rèn)字符所對(duì)應(yīng)的數(shù)據(jù)包;
[0014]S27:所述第一接收子單元接收對(duì)應(yīng)所述第一組數(shù)據(jù)分片中所有數(shù)據(jù)分片的各確認(rèn)字符,接收對(duì)應(yīng)所述第一組數(shù)據(jù)分片的總確認(rèn)字符,或,在預(yù)設(shè)的最大發(fā)送超時(shí)時(shí)間內(nèi)未收到對(duì)應(yīng)所述第一組數(shù)據(jù)分片的所有確認(rèn)字符和所述總確認(rèn)字符,所述第一發(fā)送子單元?jiǎng)h除所述第一發(fā)送緩沖器中緩存的所述第一組數(shù)據(jù)分片。
[0015]本發(fā)明的另一個(gè)方面提供一種適用于分布式網(wǎng)絡(luò)的UDP傳輸方法,所述方法包括:
[0016]S31:第二接收子單元接收的第一發(fā)送子單元發(fā)送的數(shù)據(jù)包,判斷所述數(shù)據(jù)包中的數(shù)據(jù)為未拆分的完整數(shù)據(jù);
[0017]S33:所述第二接收子單元將所述數(shù)據(jù)返回給對(duì)應(yīng)的上層應(yīng)用模塊,并向第一接收子單元發(fā)送對(duì)應(yīng)所述數(shù)據(jù)包的確認(rèn)字符。
[0018]本發(fā)明的另一個(gè)方面還提供另一種適用于分布式網(wǎng)絡(luò)的UDP傳輸方法,所述方法包括:
[0019]S41:第二接收子單元接收的第一發(fā)送子單元發(fā)送的數(shù)據(jù)包,判斷所述數(shù)據(jù)包中的數(shù)據(jù)為已拆分的數(shù)據(jù)分片;
[0020]S43:所述第二接收子單元將所述數(shù)據(jù)分片存入第二接收緩沖器,所述第二接收緩沖器判斷所述數(shù)據(jù)分片與之前緩存的數(shù)據(jù)分片能否組成完整數(shù)據(jù);
[0021]S45:第二接收定時(shí)器循環(huán)定時(shí)檢測(cè)所述第二接收緩沖器是否已接收所述數(shù)據(jù)分片同組的所有數(shù)據(jù)分片:
[0022]如已接收所有數(shù)據(jù)分片,則所述第二接收子單元將完整數(shù)據(jù)返回給對(duì)應(yīng)的上層應(yīng)用模塊,并向第一接收子單元發(fā)送對(duì)應(yīng)所述完整數(shù)據(jù)的總確認(rèn)字符,所述第二接收定時(shí)器停止定時(shí)檢測(cè);
[0023]如未接收所有數(shù)據(jù)分片,則向第一接收子單元發(fā)送對(duì)應(yīng)所述數(shù)據(jù)分片的確認(rèn)字符,跳轉(zhuǎn)至步驟S41。
[0024]本發(fā)明還提供一種適用于分布式網(wǎng)絡(luò)的UDP傳輸系統(tǒng),包括若干網(wǎng)絡(luò)節(jié)點(diǎn),所述網(wǎng)絡(luò)節(jié)點(diǎn)中包括傳輸模塊和上層應(yīng)用模塊,其特征在于,所述傳輸模塊包括至少一個(gè)鏈接單元,所述鏈接單元包括一對(duì)發(fā)送子單元和接收子單元;
[0025]所述發(fā)送子單元內(nèi)設(shè)有發(fā)送緩沖器和發(fā)送定時(shí)器,用于對(duì)所述分布式系統(tǒng)中其它網(wǎng)絡(luò)節(jié)點(diǎn)的接收子單元發(fā)送包含待發(fā)送的數(shù)據(jù)或數(shù)據(jù)分片的數(shù)據(jù)包,將所述待發(fā)送的數(shù)據(jù)或數(shù)據(jù)分片存入所述發(fā)送緩沖器,利用所述發(fā)送定時(shí)器定時(shí)檢測(cè)是否收到對(duì)應(yīng)所述數(shù)據(jù)包的確認(rèn)字符,如未收到則定時(shí)重發(fā)所述數(shù)據(jù)包;
[0026]所述接收子單元內(nèi)設(shè)有接收緩沖器和接收定時(shí)器,用于接收所述分布式系統(tǒng)中其它網(wǎng)絡(luò)節(jié)點(diǎn)的發(fā)送子單元發(fā)送的數(shù)據(jù)包,判斷所述數(shù)據(jù)包中的數(shù)據(jù)是否已拆分為數(shù)據(jù)分片,回發(fā)與所述數(shù)據(jù)包對(duì)應(yīng)的確認(rèn)字符,將所述數(shù)據(jù)分片存入所述接收緩沖器,利用所述接收定時(shí)器定時(shí)檢測(cè)同組數(shù)據(jù)分片是否已完整接收,將數(shù)據(jù)包中的數(shù)據(jù)或數(shù)據(jù)分片重組的數(shù)據(jù)返回給對(duì)應(yīng)的上層應(yīng)用模塊。
[0027]本發(fā)明諸多實(shí)施例提供的適用于分布式網(wǎng)絡(luò)的UDP傳輸方法和系統(tǒng)通過確認(rèn)字符對(duì)數(shù)據(jù)發(fā)送進(jìn)行驗(yàn)證,提高了數(shù)據(jù)傳輸?shù)陌踩?、?zhǔn)確性和完整性;通過發(fā)送定時(shí)器定時(shí)檢測(cè)確認(rèn)字符,實(shí)現(xiàn)支持?jǐn)?shù)據(jù)重發(fā),降低了數(shù)據(jù)傳輸?shù)氖÷剩换赨DP協(xié)議設(shè)計(jì),支持穿越NAT,保證了數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和安全性;
[0028]本發(fā)明一些實(shí)施例提供的適用于分布式網(wǎng)絡(luò)的UDP傳輸方法和系統(tǒng)通過計(jì)算RTT實(shí)時(shí)調(diào)整發(fā)包數(shù)量,提升了數(shù)據(jù)傳輸?shù)男剩?br>[0029]本發(fā)明一些實(shí)施例提供的適用于分布式網(wǎng)絡(luò)的UDP傳輸方法和系統(tǒng)通過壓縮數(shù)據(jù)降低了網(wǎng)絡(luò)傳輸?shù)膲毫?,?jié)省了帶寬,在一定程度上提高了系統(tǒng)的傳輸能力;
[0030]本發(fā)明一些實(shí)施例提供的適用于分布式網(wǎng)絡(luò)的UDP傳輸方法和系統(tǒng)支持隨機(jī)數(shù)據(jù)填充和數(shù)據(jù)包長(zhǎng)隨機(jī),降低了被深度包檢測(cè)系統(tǒng)識(shí)別的可能;
[0031]本發(fā)明一些實(shí)施例提供的適用于分布式網(wǎng)絡(luò)的UDP傳輸方法和系統(tǒng)將重發(fā)機(jī)制、數(shù)據(jù)校驗(yàn)、數(shù)據(jù)壓縮、RTT計(jì)算、應(yīng)用層數(shù)據(jù)拆分與重組集中于一個(gè)模塊中,提供了支持面向?qū)ο缶幊痰陌踩咝У膫鬏斈K和面對(duì)對(duì)象的實(shí)現(xiàn)方法,采用雙緩存設(shè)計(jì),無需上層應(yīng)用監(jiān)測(cè)每一個(gè)數(shù)據(jù)包,實(shí)現(xiàn)了一個(gè)完全應(yīng)用層網(wǎng)絡(luò)緩存模型。
【附圖說明】
[0032]參照下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例的說明,會(huì)更加容易地理解本發(fā)明的以上和其它目的、特點(diǎn)和優(yōu)點(diǎn)。附圖中的部件只是為了示出本發(fā)明的原理。在附圖中,相同的或類似的技術(shù)特征或部件將采用相同或類似的附圖標(biāo)記來表示。
[0033]圖1為根據(jù)本發(fā)明實(shí)施例中網(wǎng)絡(luò)節(jié)點(diǎn)作為請(qǐng)求端發(fā)送數(shù)據(jù)的一種適用于分布式網(wǎng)絡(luò)的UDP傳輸方法的流程圖。
[0034]圖2為圖1所示UDP傳輸方法的優(yōu)選實(shí)施例的流程圖。
[0035]圖3為圖1或圖2所示UDP傳輸方法中步驟S17的一種情況的流程圖。
[0036]圖4為圖1或圖2所示UDP傳輸方法中步驟S17的另一種情況的流程圖。
[0037]圖5為圖1所示UDP傳輸方法的時(shí)序示意圖。
[0038]圖6為根據(jù)本發(fā)明實(shí)施例中網(wǎng)絡(luò)節(jié)點(diǎn)作為請(qǐng)求端發(fā)送數(shù)據(jù)的另一種適用于分布式網(wǎng)絡(luò)的UDP傳輸方法的流程圖。
[0039]圖7為圖6所示UDP傳輸方法的優(yōu)選實(shí)施例的流程圖。
[0040]圖8為圖7所示UDP傳輸方法的優(yōu)選實(shí)施例的流程圖。
[0041 ]圖9為圖6-圖8任一所示UDP傳輸方法中步驟S23的流程圖。
[0042]圖10為圖6-圖8任一所示UDP傳輸方法中步驟S25的流程圖。
[0043]圖11為圖6-圖8任一所示UDP傳輸方法中步驟S27的一種情況的流程圖。
[0044]圖12為圖6-圖8任一所示UDP傳輸方法中步驟S27的另一種情況的流程圖。
[0045]圖13為圖6所示UDP傳輸方法的時(shí)序示意圖。
[0046]圖14為根據(jù)本發(fā)明實(shí)施例中網(wǎng)絡(luò)節(jié)點(diǎn)作為服務(wù)端接收數(shù)據(jù)的一種適用于分布式網(wǎng)絡(luò)的UDP傳輸方法的流程圖。
[0047]圖15為根據(jù)本發(fā)明實(shí)施例中網(wǎng)絡(luò)節(jié)點(diǎn)作為服務(wù)端接收數(shù)據(jù)的另一種適用于分布式網(wǎng)絡(luò)的UDP傳輸方法的流程圖。
[0048]圖16為圖15所示UDP傳輸方法中步驟S
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1