<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > P2P網(wǎng)絡(luò )“自由”穿越NAT的“秘密”

P2P網(wǎng)絡(luò )“自由”穿越NAT的“秘密”

作者: 時(shí)間:2013-05-30 來(lái)源:網(wǎng)絡(luò ) 收藏

穿越的意義:
  
是為了節省而設計的,但它隱藏了內網(wǎng)機器的地址,“意外”起到了安全的作用。對外不可見(jiàn),不透明的內部網(wǎng)絡(luò )也與互聯(lián)網(wǎng)的“公平”應用,“相互共享”的思想所不容,尤其是中“相互服務(wù)”的宗旨,所以穿越,讓眾多內部網(wǎng)絡(luò )的機器也參與到中的大集體中來(lái),一直是P2P開(kāi)發(fā)者的所希望的。穿越NAT需要借助外部的支持,說(shuō)白了就是“內外勾結”,騙過(guò)NAT。很多成功地實(shí)現了這一目標,但還是有一些“遺憾”---并非所有的情況下都可以。由于客戶(hù)端是主動(dòng)登錄P2P網(wǎng)絡(luò )才可穿越,所以P2P的方式也沒(méi)有違背企業(yè)的內部管理原則,畢竟“自由世界”的加入都是自覺(jué)自愿的。
  
NAT原理:
  
NAT(Network Address Translation)網(wǎng)絡(luò )地址轉換/網(wǎng)絡(luò )地址翻譯。
  
工作原理:NAT主要的通過(guò)對數據包頭的地址替換來(lái)完成內網(wǎng)計算機訪(fǎng)問(wèn)外網(wǎng)服務(wù)的。當內部機器要訪(fǎng)問(wèn)外部網(wǎng)絡(luò )時(shí),NAT設備把內部的IP1與端口號1(網(wǎng)絡(luò )層地址與傳輸層地址),轉換成NAT的外部IP2與新的端口號2,再送給外部網(wǎng)絡(luò ),數據返回時(shí),再把目的為IP2:端口2的數據包替換為IP1:端口1,送給內網(wǎng)機器。若通訊協(xié)議的內容中有的傳遞,如FTP協(xié)議,NAT在翻譯時(shí)還要注意數據包內涉及協(xié)議地址交互的地方也要替換,否則協(xié)議就會(huì )出現地址混亂。在NAT設備中維護了這個(gè)要替換地址的映射表,并根據內部計算機的通訊需求維護該表。外部網(wǎng)絡(luò )來(lái)數據包能否進(jìn)入NAT,主要是看是否已經(jīng)有可映射的表項,若沒(méi)有就會(huì )丟棄。

NAT的外部公網(wǎng)地址可以是一個(gè)IP,也可以是一個(gè)網(wǎng)段,形成地址池。NAT還可以把某個(gè)外網(wǎng)地址直接影射給內網(wǎng)的某個(gè)服務(wù)器,讓外網(wǎng)的用戶(hù)可以直接訪(fǎng)問(wèn)到這臺服務(wù)器。NAT的工作的隱藏內網(wǎng)的機器,但允許內網(wǎng)主動(dòng)打開(kāi)到外網(wǎng)的通訊“通道”,也就是建立映射表項。
  
NAT給P2P帶來(lái)的問(wèn)題是:NAT只允許單方面發(fā)起連接,通訊的雙方不是平等的,P2P網(wǎng)絡(luò )的基礎有了問(wèn)題,具體的表現為:
  
內網(wǎng)主機IP是私有的,外部主機看不到,也無(wú)法主動(dòng)發(fā)起連接
即使知道了內網(wǎng)IP,但NAT會(huì )丟棄沒(méi)有在影射表的數據包
內網(wǎng)主機可以作為客戶(hù)端訪(fǎng)問(wèn)外網(wǎng),但不能作為服務(wù)器提供服務(wù)
  
當兩個(gè)主機都位于各自的NAT之后,要實(shí)現P2P的連接,就不僅是誰(shuí)主動(dòng)的問(wèn)題,而是如何解決在兩個(gè)NAT上同時(shí)有對方映射表項的問(wèn)題。
STUN協(xié)議(IETF RFC 3489):

STUN協(xié)議是一種通道協(xié)議,可以作為正式通訊前的通路建立,它采用的是用戶(hù)終端干預的一種方法,可以解決應用協(xié)議內部傳遞給NAT帶來(lái)的麻煩。用戶(hù)通過(guò)其他方法得到其地址對應在NAT出口上的對外地址,然后在報文負載中所描述的地址信息就直接填寫(xiě)NAT上對外地址,而不是內網(wǎng)的私有IP,這樣報文的內容在經(jīng)過(guò)NAT時(shí)就按普通的NAT流程轉換報文頭部的IP地址即可,負載內的IP地址信息無(wú)需再修改。利用STUN的思路可以穿越NAT。STUN協(xié)議是客戶(hù)端/服務(wù)器協(xié)議,分兩種請求方式:一是UDP發(fā)送的綁定請求(Binding Requests),二是TCP發(fā)送的秘密請求(Shared Secret Requests)。綁定請求用于確定NAT分配的綁定地址。
  
STUN標準中,根據內部終端的地址(P:p)到NAT出口的公網(wǎng)地址(A:b)的影射方式,把NAT分為四種類(lèi)型:
  

p2p機相關(guān)文章:p2p原理



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: P2P網(wǎng)絡(luò ) NAT IP地址

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>