新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > P2P網絡“自由”穿越NAT的“秘密”

        P2P網絡“自由”穿越NAT的“秘密”

        作者: 時間:2013-05-30 來源:網絡 收藏

        1. Full Cone:來自相同的內部地址的請求消息映射為相同的外部地址,與外部地址(目的地址)無關。映射關系為P:p#8596;A:b,任何外部主機可通過(A:b)發送到數據到(P:p)上。
        2 . Restricted Cone:來自相同的內部地址的請求消息映射為相同的外部地址,返回的數據只接受該內部節點曾發數據的那個目的計算機地址X。映射關系為P:p#8596;A:b#8596;X,只有來自X的數據包才可通過(A:b)發送到數據到(P:p)上。
        3. Port Restricted Cone:來自相同的內部地址的請求消息映射為相同的外部地址,返回的數據只接受該內部節點曾發數據的那個目的地址X:x。映射關系為P:p#8596;A:b#8596;X:x,只有來自X:x的數據包才可通過(A:b)發送到數據到(P:p)上。
        4. Symmetric(對稱) :只有來自相同的內部地址(P:p),并且發送到同一個地址(X:x) 的請求消息,才被映射為相同的外部地址(A:b),返回的數據只接受該內部節點曾發數據的那個目的地址X:x。映射關系為P:p#8596;A:b#8596;X:x,當(P:p)訪問(Y:y)時,映射為P:p#8596;B:c#8596;Y:y。
          
        P2P利用STUN穿越
          
        位于后面終端A與B要穿越NAT直接通訊,可以借助在公網上的第三者Server來幫助。
          
        穿越NAT的情況分為為兩種方式:

        1、一方在NAT之后,一方在公網上。這種情況相對簡單,只要讓NAT之后的終端先發起通訊,NAT就沒有作用了,它可以從Server上取得另一個Peer的地址,主動連接,回來的數據包就可以方便地穿越NAT。

        2、雙方都在NAT之后,連接的成功與否與兩個NAT的類型有關。主要的思路的先通過終端與Server的連接,獲得兩個終端在NAT外部的地址(IP與端口號),再由終端向對方的外部地址發邀請包,獲取自己與對方通訊的外部地址,俗稱為“打洞”。關鍵是獲取了NAT外部映射的地址,就可以發包直接溝通,建立連接。但當一方是對稱型,另一方是Port Restricted或對稱型時,無法有效獲取外部地址,邀請包無法到達對方,也就無法穿越NAT。具體的分析可以根據兩個NAT的類型分成若干情況分析,這里給一般的穿越例子。

        實例:UDP穿越NAT:
          
        A登錄Server,NAT A分配端口11000,Server得到A的地址為100.10.10.10:11000
          
        B登錄Server,NAT B分配端口22000,Server得到B的地址為200.20.20.20:22000
          
        此時B會把直接來自A的包丟棄,所以要在NAT B上打一個方向為A的洞,那么A就可以向200.20.20.20:22000發送數據了
          
        打洞的指令來自Server。B向A的地址100.10.10.10:11000發一個UDP報文,被NAT A丟棄,但在NAT B上建立映射記錄,NAT B不在丟棄來自A的報文。
          
        Server通知A可以通訊,A發起數據UDP包給B,NAT B放行,B收到A的包,雙方開始通訊
          
        注:若是對稱NAT,當B向A打洞的端口要重新分配(NAT A不會再分配11000端口),B無法獲取這個端口,所以不適用本方法。
          
        實例:TCP穿越NAT:

        A登錄Server,NAT A分配端口11000,Server得到A的地址為100.10.10.10:11000
        B登錄Server,NAT B分配端口22000,Server得到B的地址為200.20.20.20:22000
        A向B發送TCP數據包SYN:192.168.10.11:1234=>200.20.20.20:22000,在NAT A上打洞
        B向A發送TCP數據包SYN:192.168.20.22:1234=>100.10.10.10:11000,在NAT B上打洞

        通道建立,A與B三次握手建立TCP連接

        p2p機相關文章:p2p原理



        上一頁 1 2 下一頁

        關鍵詞: P2P網絡 NAT IP地址

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 军事| 东乡族自治县| 麦盖提县| 绍兴县| 阿城市| 信宜市| 延安市| 准格尔旗| 当涂县| 德惠市| 平泉县| 化州市| 泗阳县| 夏河县| 清丰县| 绥棱县| 尉犁县| 萍乡市| 油尖旺区| 余江县| 玛曲县| 济南市| 天柱县| 霍林郭勒市| 北流市| 无极县| 无为县| 儋州市| 贺州市| 崇州市| 绥江县| 木里| 侯马市| 鄂托克前旗| 宁都县| 武义县| 新巴尔虎右旗| 麻城市| 吉林市| 瓮安县| 邵武市|