System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及計算機網絡領域,尤其涉及一種基于udp的增量對稱型nat穿越的方法。
技術介紹
1、近年來,p2p技術已經逐漸成為社會關注的熱點,但從目前網絡技術發展現狀來看,p2p廣泛存在于nat設備中,給內部私有的網絡主機增設了屏障。nat穿越的實現有很多種方式,但是都有其不可避免的缺陷。
2、nat技術的飛速發展限制了p2p的通信,nat位于公網和專用局域網間的網關中,其采用多對一的映射模式,使同一局域網內的多個設備可以共享同一個公網地址。不僅可以緩解ipv4地址不足的問題同時兼有防火墻的保護作用。但是局域網的內部設備地址不可見,破壞了p2p通信中對等信息的交互,所以必須要利用nat穿越的方法進行p2p通信。當下出現了很多技術方案完成nat穿越。
3、stun協議是一種協助nat穿越的協議,通過stun客戶端與stun服務器交互可以得到本方主機的nat類型以及在nat上映射的地址,根據地址的nat穿越,進而進行通信,但是stun協議的一大缺點是無法穿越對稱性nat。turn協議通過中轉服務器轉發數據的方式很好的解決了這一問題,然而turn協議也有其不可避免的缺點,由于每次數據傳輸必須經過中轉服務器,增大了數據傳輸的時延和丟包率并且增加了服務器的負擔。
技術實現思路
1、為了解決以上技術問題,本專利技術提供了一種基于udp的增量對稱型nat穿越的方法,基于stun以及turn兩種協議相結合的方式來實現nat穿越,解決nat技術對p2p通信的限制問題,進而實
2、本專利技術的技術方案是:
3、一種基于udp的增量對稱型nat穿越的方法,在增量對稱型nat一端,終端先向stun服務器發送stun請求得到映射端口,然后根據映射端口變化規律預測出下次請求的映射端口,再利用預測的端口進行nat穿越,在不存在nat干擾的情況下;如果這時發生nat干擾,選擇出正確的預測端口來避開nat干擾。
4、進一步的,
5、增量對稱型—增量對稱型nat場景下進行udp單連接穿越,工作步驟如下,其中,δp是客戶端a的nat設備的映射端口增量;
6、(1)客戶端a綁定本地端口port?a_1,向stun服務器的端口port?stun發送請求,得到nat映射端口port?a_1_stun,通過信令服務器把port?a_1_stun轉發給客戶端b,用于客戶端b對客戶端a進行端口預測;
7、(2)客戶端b綁定本地端口port?b_1,向stun服務器的端口port?stun發送請求,得到nat映射端口port?b_1_stun;
8、(3)客戶端b根據port?a_1_stun,計算客戶端a的預測端口為port_1_stun+k*δpa,k為控制參數,設為大于1的整數,用于避開a端nat設備的干擾端口;客戶端b綁定新的本地端口port?b_2向客戶端a預測端口發送請求,開始打洞,nat映射端口為port?b_2_ap;客戶端b綁定新的本地端口port?b_3向stun服務器的端口port?stun發送請求,得到nat映射端口port?b_3_stun,通過比較port_3_stun-portb_1_stun和2δp是否相等來判斷打洞期間b端是否存在nat干擾;
9、(4)客戶端a綁定k個不同的本地端口port?a_2、port?a_3、…、port?a_k+1,同時向port?b_2_ap發送請求,當客戶端b收到客戶端a的請求時,對應的連接nat穿越成功,穿越流程結束;若k條連接均嘗試失敗,返回第(1)步重試。
10、再進一步的,
11、比較port_3_stun-portb_1_stun和2δp,如果相等,說明不存在nat干擾,客戶端b監聽端口port?b_2,等待客戶端a發送請求,并通過信令服務器把port?b_2_ap轉發給客戶端a。
12、比較port_3_stun-portb_1_stun和2δp,如果差值不等于2δp,說明存在nat干擾,夾在stun請求之間的打洞請求無效,此時把port?b_1_stun更新為port?b_3_stun,然后返回第(3)步重新執行,直到判斷不存在nat干擾為止。
13、進一步的,
14、錐型—增量對稱型nat場景下進行udp單連接穿越,工作步驟如下
15、流程步驟如下:
16、(1)客戶端a綁定本地端口port?a_1,向stun服務器的端口port?stun發送請求,得到nat映射端口port?a_1_stun,通過信令服務器把port?a_1_stun轉發給客戶端b,用于客戶端b進行打洞;
17、(2)客戶端b綁定本地端口port?b_1,向stun服務器的端口port?stun發送請求,得到nat映射端口port?b_1_stun;
18、(3)客戶端b綁定新的本地端口port?b_2向port?a_1_stun發送請求,開始打洞,nat映射端口為port?b_2_ap;客戶端b綁定新的本地端口port?b_3向stun服務器的端口port?stun發送請求,得到nat映射端口port?b_3_stun,通過比較port_3_stun-portb_1_stun和2δp是否相等來判斷打洞期間客戶端b是否存在nat干擾;
19、(4)客戶端a綁定本地端口port?a_1向port?b_2_ap發送請求,當客戶端b收到客戶端a的請求時,nat穿越成功,穿越流程結束。
20、通過在打洞請求前后發送stun請求的方式,利用stun請求返回的映射端口間接確認出打洞請求的映射端口,同時也能判斷客戶端b是否存在nat干擾。
21、再進一步的,
22、比較port_3_stun-portb_1_stun和2δp,如果相等,說明不存在nat干擾,客戶端b監聽端口port?b_2,等待客戶端a發送請求,并通過信令服務器把port?b_2_ap轉發給客戶端a。
23、比較port_3_stun-portb_1_stun和2δp,如果不相等,說明存在nat干擾,夾在stun請求之間的打洞請求無效,此時把port?b_1_stun更新為port?b_3_stun,然后返回重新執行第(3)步,直到判斷不存在nat干擾為止。
24、對于客戶端a來說,因為是錐型nat,nat干擾不產生任何影響。
本文檔來自技高網...【技術保護點】
1.一種基于UDP的增量對稱型NAT穿越的方法,其特征在于,
2.根據權利要求1所述的方法,其特征在于,
3.根據權利要求2所述的方法,其特征在于,
4.根據權利要求2所述的方法,其特征在于,
5.根據權利要求1所述的方法,其特征在于,
6.根據權利要求5所述的方法,其特征在于,
7.根據權利要求6所述的方法,其特征在于,
8.根據權利要求6所述的方法,其特征在于,
9.根據權利要求6所述的方法,其特征在于,
【技術特征摘要】
1.一種基于udp的增量對稱型nat穿越的方法,其特征在于,
2.根據權利要求1所述的方法,其特征在于,
3.根據權利要求2所述的方法,其特征在于,
4.根據權利要求2所述的方法,其特征在于,
5.根據權利...
【專利技術屬性】
技術研發人員:劉雨晨,楊曉旭,
申請(專利權)人:浪潮云信息技術股份公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。