• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            攀升·Uranus


            Something Different,Something New
            數據加載中……

            UDP"打洞"原理

            1.       NAT分類

            根據Stun協議(RFC3489),NAT大致分為下面四類

            http://blog.csdn.net/ronmy/category/819006.aspx


            1)      Full Cone

            這種NAT內部的機器A連接過外網機器C后,NAT會打開一個端口.然后外網的任何發到這個打開的端口的UDP數據報都可以到達A.不管是不是C發過來的.

            例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88

            A(192.168.8.100:5000) -> NAT(202.100.100.100 : 8000) -> C(292.88.88.88:2000)

            任何發送到 NAT(202.100.100.100:8000)的數據都可以到達A(192.168.8.100:5000)

            2)      Restricted Cone

            這種NAT內部的機器A連接過外網的機器C后,NAT打開一個端口.然后C可以用任何端口和A通信.其他的外網機器不行.

            例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88

            A(192.168.8.100:5000) -> NAT(202.100.100.100 : 8000) -> C(292.88.88.88:2000)

            任何從C發送到 NAT(202.100.100.100:8000)的數據都可以到達A(192.168.8.100:5000)

             

            3)      Port Restricted Cone

            這種NAT內部的機器A連接過外網的機器C后,NAT打開一個端口.然后C可以用原來的端口和A通信.其他的外網機器不行.

            例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88

            A(192.168.8.100:5000) -> NAT(202.100.100.100 : 8000) -> C(292.88.88.88:2000)

            C(202.88.88.88:2000)發送到 NAT(202.100.100.100:8000)的數據都可以到達A(192.168.8.100:5000)

             

            以上三種NAT通稱Cone NAT.我們只能用這種NAT進行UDP打洞.

            4)      Symmetic

            對于這種NAT.連接不同的外部目標.原來NAT打開的端口會變化.而Cone NAT不會.雖然可以用端口猜測.但是成功的概率很小.因此放棄這種NAT的UDP打洞.

            2.       UDP hole punching

            對于Cone NAT.要采用UDP打洞.需要一個公網機器C來充當”介紹人”.內網的A,B先分別和C通信.打開各自的NAT端口.C這個時候知道A,B的公網IP: Port. 現在A和B想直接連接.比如A給B發.除非B是Full Cone.否則不能通信.反之亦然.但是我們可以這樣.

            A要連接B.A給B發一個UDP包.同時.A讓那個介紹人給B發一個命令,讓B同時給A發一個UDP包.這樣雙方的NAT都會記錄對方的IP,然后就會允許互相通信.

            3.       同一個NAT后面的情況

            如果A,B在同一個NAT后面.如果用上面的技術來進行互連.那么如果NAT支持loopback(就是本地到本地的轉換),A,B可以連接,但是比較浪費帶寬和NAT.有一種辦法是,A,B和介紹人通信的時候,同時把自己的local IP也告訴服務器.A,B通信的時候,同時發local ip和公網IP.誰先到就用哪個IP.但是local ip就有可能不知道發到什么地方去了.比如A,B在不同的NAT后面但是他們各自的local ip段一樣.A給B的local IP發的UDP就可能發給自己內部網里面的某某某了.

            還有一個辦法是服務器來判斷A,B是否在一個NAT后面.(網絡拓樸不同會不會有問題?)

            posted on 2011-06-08 23:09 攀升 閱讀(1015) 評論(0)  編輯 收藏 引用 所屬分類: Linux

            伊人久久大香线蕉av一区| 精品久久久久久亚洲| 精品久久久久久无码人妻蜜桃| 亚洲人成精品久久久久| 国产精品久久永久免费| 久久久91精品国产一区二区三区| 精品多毛少妇人妻AV免费久久| 久久人人爽人人爽人人片AV麻烦| 精品无码久久久久久午夜| 久久夜色精品国产| 91精品国产乱码久久久久久| 日韩欧美亚洲综合久久影院Ds| 久久水蜜桃亚洲av无码精品麻豆| 亚洲国产高清精品线久久| www性久久久com| 亚洲中文字幕久久精品无码喷水| 国产福利电影一区二区三区久久老子无码午夜伦不| 欧美国产精品久久高清| 狠狠色噜噜狠狠狠狠狠色综合久久 | 久久人妻少妇嫩草AV无码蜜桃 | 久久亚洲欧洲国产综合| 国内精品人妻无码久久久影院| 亚洲精品视频久久久| 久久99精品久久久久久9蜜桃| 狠狠狠色丁香婷婷综合久久俺| 欧美熟妇另类久久久久久不卡| 2021国产精品久久精品| 久久99精品国产99久久6| 国内精品免费久久影院| 久久精品这里热有精品| 国产美女久久久| 久久精品国产99国产精品澳门| 99re这里只有精品热久久| 久久久婷婷五月亚洲97号色 | 熟妇人妻久久中文字幕| 漂亮人妻被中出中文字幕久久| 亚洲欧美日韩精品久久亚洲区| 日本亚洲色大成网站WWW久久| 久久免费99精品国产自在现线| 久久久久久久91精品免费观看| 国产精品久久久久久久久久影院|