国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
穿越NAT總結(jié)(轉(zhuǎn)) - 云的天空 - 博客園
 

先做個(gè)約定

內(nèi)網(wǎng)A中有:A1192.168.0.8、A2192.168.0.9兩用戶,

網(wǎng)關(guān)X1(一個(gè)NAT設(shè)備)有公網(wǎng)IP 1.2.3.4

內(nèi)網(wǎng)B中有:B1192.168.1.8、B2192.168.1.9兩用戶,

網(wǎng)關(guān)Y1(一個(gè)NAT設(shè)備)有公網(wǎng)IP 1.2.3.5

公網(wǎng)服務(wù)器:C (6.7.8.9)  D (6.7.8.10)

 

NAT兩大類:

l         NAT(Network Address Translators):稱為基本的NAT



在客戶機(jī)時(shí)

192.168.0.8:4000——6.7.8.9:8000

 
 
在網(wǎng)關(guān)時(shí)

1.2.3.4:4000——6.7.8.9:8000
 
服務(wù)器C

6.7.8.9:8000
 


其核心是替換IP地址而不是端口,這會(huì)導(dǎo)致192.168.0.8使用4000端口后,192.168.0.9如何處理?

具體參考RFC 1631

基本上這種類型的NAT設(shè)備已經(jīng)很少了?;蛟S根本我們就沒機(jī)會(huì)見到。

l         NAPT(Network Address/Port Translators)

其實(shí)這種才是我們常說的 NAT

NAPT的特點(diǎn)是在網(wǎng)關(guān)時(shí),會(huì)使用網(wǎng)關(guān)的 IP,但端口會(huì)選擇一個(gè)和臨時(shí)會(huì)話對應(yīng)的臨時(shí)端口。

如下圖:


在客戶機(jī)時(shí)

192.168.0.8:4000——6.7.8.9:8000

 

在網(wǎng)關(guān)時(shí)

1.2.3.4:62000——6.7.8.9:8000

服務(wù)器C

6.7.8.9:8000

 

網(wǎng)關(guān)上建立保持了一個(gè)1.2.3.4:62000的會(huì)話,用于192.168.0.8:40006.7.8.9:8000之間的通訊。

 

對于NAPT,又分了兩個(gè)大的類型:

差別在于,當(dāng)兩個(gè)內(nèi)網(wǎng)用戶同時(shí)與6.7.8.9:8000的處理方式不同:

1、Symmetric NAT (對稱型)


在客戶機(jī)時(shí)

192.168.0.8:4000——6.7.8.9:8000    192.168.0.8:4000——6.7.8.10:8000

 

在網(wǎng)關(guān)時(shí),兩個(gè)不同session端口號不同

1.2.3.4:62000——6.7.8.9:8000    1.2.3.4:62001——6.7.8.10:8000

服務(wù)器C

6.7.8.9:8000

服務(wù)器 D

6.7.8.10:8000

 

這種形式會(huì)讓很多p2p軟件失靈。

2、Cone NAT型(圓錐型)


在客戶機(jī)時(shí)

192.168.0.8:4000——6.7.8.9:8000    192.168.0.8:4000——6.7.8.10:8000

 
 
在網(wǎng)關(guān)時(shí),兩個(gè)不同session但端口號相同

1.2.3.4:62000——6.7.8.9:8000    1.2.3.4:62000——6.7.8.10:8000
 
服務(wù)器C

6.7.8.9:8000
 
服務(wù)器D

6.7.8.10:8000
 


目前絕大多數(shù)屬于這種。Cone NAT又分了3種類型:

 

a) Full Cone NAT(完全圓錐型):從同一私網(wǎng)地址端口192.168.0.8:4000發(fā)至公網(wǎng)的所有請求都映射成同一個(gè)公網(wǎng)地址端口1.2.3.4:62000 ,192.168.0.8可以收到任意外部主機(jī)發(fā)到1.2.3.4:62000的數(shù)據(jù)報(bào)。

b) Address Restricted Cone NAT (地址限制圓錐型):從同一私網(wǎng)地址端口192.168.0.8:4000發(fā)至公網(wǎng)的所有請求都映射成同一個(gè)公網(wǎng)地址端口1.2.3.4:62000,只有當(dāng)內(nèi)部主機(jī)192.168.0.8先給服務(wù)器C 6.7.8.9發(fā)送一個(gè)數(shù)據(jù)報(bào)后,192.168.0.8才能收到6.7.8.9發(fā)送到1.2.3.4:62000的數(shù)據(jù)報(bào)。

c) Port Restricted Cone NAT(端口限制圓錐型):從同一私網(wǎng)地址端口192.168.0.8:4000發(fā)至公網(wǎng)的所有請求都映射成同一個(gè)公網(wǎng)地址端口1.2.3.4:62000,只有當(dāng)內(nèi)部主機(jī)192.168.0.8先向外部主機(jī)地址端口6.7.8.98000發(fā)送一個(gè)數(shù)據(jù)報(bào)后,192.168.0.8才能收到6.7.8.98000發(fā)送到1.2.3.4:62000的數(shù)據(jù)報(bào)。

請注意上述描敘中的區(qū)別!

穿越NAT的實(shí)現(xiàn):


A1在客戶機(jī)時(shí)

192.168.0.8:4000——6.7.8.9:8000

 
 
X1在網(wǎng)關(guān)時(shí)

1.2.3.4:62000——6.7.8.9:8000
 
服務(wù)器C

6.7.8.9:8000
 
B1在客戶機(jī)時(shí)

192.168.1.8:4000——6.7.8.9:8000

 
 
Y1在網(wǎng)關(guān)時(shí)

1.2.3.5:31000——6.7.8.9:8000
 


兩內(nèi)網(wǎng)用戶要實(shí)現(xiàn)通過各自網(wǎng)關(guān)的直接呼叫,需要以下過程:

1、  客戶機(jī)A1、B1順利通過格子網(wǎng)關(guān)訪問服務(wù)器C ,均沒有問題(類似于登錄)

2、  服務(wù)器C保存了 A1、B1各自在其網(wǎng)關(guān)的信息(1.2.3.4:62000、1.2.3.5:31000)沒有問題。并可將該信息告知A1、B2。

3、  此時(shí)A1發(fā)送給B1網(wǎng)關(guān)的1.2.3.5:31000是否會(huì)被B1收到?答案是基本上不行(除非Y1設(shè)置為完全圓錐型,但這種設(shè)置非常少),因?yàn)閅1上檢測到其存活的會(huì)話中沒有一個(gè)的目的IP或端口于1.2.3.4:62000有關(guān)而將數(shù)據(jù)包全部丟棄!

4、  此時(shí)要實(shí)現(xiàn)A1、B1通過X1、Y1來互訪,需要服務(wù)器C告訴它們各自在自己的網(wǎng)關(guān)上建立 “UDP隧道”,即命令A(yù)1發(fā)送一個(gè) 192.168.0.8:4000——1.2.3.5:31000的數(shù)據(jù)報(bào),B1發(fā)送一個(gè) 192.168.1.8:4000——1.2.3.4:62000的數(shù)據(jù)報(bào),UDP形式,這樣X1、Y1上均存在了IP端口相同的兩個(gè)不同會(huì)話(很顯然,這要求網(wǎng)關(guān)為Cone NAT型,否則,對稱型Symmetric NAT設(shè)置網(wǎng)關(guān)將導(dǎo)致對不同會(huì)話開啟了不同端口,而該端口無法為服務(wù)器和對方所知,也就沒有意義)。

5、  此時(shí)A1發(fā)給Y1,或者B1發(fā)給X1的數(shù)據(jù)報(bào)將不會(huì)被丟棄且正確的被對方收到

 

綜合P2P可實(shí)現(xiàn)的條件需要:

1、  中間服務(wù)器保存信息、并能發(fā)出建立UDP隧道的命令

2、  網(wǎng)關(guān)均要求為Cone NAT類型。Symmetric NAT不適合。

3、  完全圓錐型網(wǎng)關(guān)可以無需建立udp隧道,但這種情況非常少,要求雙方均為這種類型網(wǎng)關(guān)的更少。

4、  假如X1網(wǎng)關(guān)為Symmetric NAT, Y1為Address Restricted Cone NAT 或Full Cone NAT型網(wǎng)關(guān),各自建立隧道后,A1可通過X1發(fā)送數(shù)據(jù)報(bào)給Y1到B1(因?yàn)閅1最多只進(jìn)行IP級別的甄別),但B2發(fā)送給X1的將會(huì)被丟棄(因?yàn)榘l(fā)送來的數(shù)據(jù)報(bào)中端口與X1上存在會(huì)話的端口不一致,雖然IP地址一致),所以同樣沒有什么意義。

5、  假如雙方均為Symmetric NAT的情形,新開了端口,對方可以在不知道的情況下嘗試猜解,也可以達(dá)到目的,但這種情形成功率很低,且?guī)眍~外的系統(tǒng)開支,不是個(gè)好的解決辦法。

6、  不同網(wǎng)關(guān)型設(shè)置的差異在于,對內(nèi)會(huì)采用替換IP的方式、使用不同端口不同會(huì)話的方式,使用相同端口不同會(huì)話的方式;對外會(huì)采用什么都不限制、限制IP地址、限制IP地址及端口。

7、  這里還沒有考慮同一內(nèi)網(wǎng)不同用戶同時(shí)訪問同一服務(wù)器的情形,如果此時(shí)網(wǎng)關(guān)采用Address Restricted Cone NAT 或Full Cone NAT型,有可能導(dǎo)致不同用戶客戶端可收到別人的數(shù)據(jù)包,這顯然是不合適的。

 

 

一些現(xiàn)在常用的技術(shù):

ALG(應(yīng)用層網(wǎng)關(guān)):它可以是一個(gè)設(shè)備或插件,用于支持SIP協(xié)議,主要類似與在網(wǎng)關(guān)上專門開辟一個(gè)通道,用于建立內(nèi)網(wǎng)與外網(wǎng)的連接,也就是說,這是一種定制的網(wǎng)關(guān)。更多只適用于使用他們的應(yīng)用群體內(nèi)部之間。

 

UpnP :它是讓網(wǎng)關(guān)設(shè)備在進(jìn)行工作時(shí)尋找一個(gè)全球共享的可路由IP來作為通道,這樣避免端口造成的影響。要求設(shè)備支持且開啟upnp功能,但大部分時(shí)候,這些功能處于安全考慮,是被關(guān)閉的。即時(shí)開啟,實(shí)際應(yīng)用效果還沒經(jīng)過測試。

 

STUN(Simple Traversalof UDP Through Network):這種方式即是類似于我們上面舉例中服務(wù)器C的處理方式。也是目前普遍采用的方式。但具體實(shí)現(xiàn)要比我們描述的復(fù)雜許多,光是做網(wǎng)關(guān)Nat類型判斷就由許多工作,RFC3489中詳細(xì)描述了。

 

TURN(Traveral Using Relay NAT):該方式是將所有的數(shù)據(jù)交換都經(jīng)由服務(wù)器來完成,這樣NAT將沒有障礙,但服務(wù)器的負(fù)載、丟包、延遲性就是很大的問題。目前很多游戲均采用該方式避開NAT的問題。這種方式不叫p2p。

 

ICE(Interactive Connectivity Establishment):是對上述各種技術(shù)的綜合,但明顯帶來了復(fù)雜性。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
網(wǎng)易博客歡迎您-Sacrifice
NAPT的類型(Cone NAT、Symmetric NAT)
P2P之UDP穿透NAT的原理與實(shí)現(xiàn)(shootingstars)--增強(qiáng)篇(附源代碼) - lithe的專欄
NAT的完全分析及其UDP穿透的完全解決方案
網(wǎng)絡(luò)地址轉(zhuǎn)換NAT(wiki)
通過middlebox實(shí)施P2P通訊
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服