• <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>

            大龍的博客

            常用鏈接

            統計

            最新評論

            四種不同的NAT類型及檢測方法

             
                考 慮到UDP的無狀態特性,目前針對其的NAT實現大致可分為Full Cone、Restricted Cone、Port Restricted Cone和Symmetric NAT四種。值得指出的是,對于TCP協議而言,一般來說,目前NAT中針對TCP的實現基本上是一致的,其間并不存在太大差異,這是因為TCP協議本身 便是面向連接的,因此無需考慮網絡連接無狀態所帶來復雜性。

            用語定義

            1.內部Tuple
            :指內部主機的私有地址和端口號所構成的二元組,即內部主機所發送報文的源地址、端口所構成的二元組
            2.外部Tuple:指內部Tuple經過NAT的源地址/端口轉換之后,所獲得的外部地址、端口所構成的二元組,即外部主機收到經NAT轉換之后的報文時,它所看到的該報文的源地址(通常是NAT設備的地址)和源端口
            3.目標Tuple:指外部主機的地址、端口所構成的二元組,即內部主機所發送報文的目標地址、端口所構成的二元組

            詳細釋義

            1. Full Cone NAT
            :所有來自同一 個內部Tuple X的請求均被NAT轉換至同一個外部Tuple Y,而不管這些請求是不是屬于同一個應用或者是多個應用的。除此之外,當X-Y的轉換關系建立之后,任意外部主機均可隨時將Y中的地址和端口作為目標地址 和目標端口,向內部主機發送UDP報文,由于對外部請求的來源無任何限制,因此這種方式雖然足夠簡單,但卻不那么安全

            2. Restricted Cone NAT
            : 它是Full Cone的受限版本:所有來自同一個內部Tuple X的請求均被NAT轉換至同一個外部Tuple Y,這與Full Cone相同,但不同的是,只有當內部主機曾經發送過報文給外部主機(假設其IP地址為Z)后,外部主機才能以Y中的信息作為目標地址和目標端口,向內部 主機發送UDP請求報文,這意味著,NAT設備只向內轉發(目標地址/端口轉換)那些來自于當前已知的外部主機的UDP報文,從而保障了外部請求來源的安 全性

            3. Port Restricted Cone NAT
            :它是Restricted Cone NAT的進一步受限版。只有當內部主機曾經發送過報文給外部主機(假設其IP地址為Z且端口為P)之后,外部主機才能以Y中的信息作為目標地址和目標端 口,向內部主機發送UDP報文,同時,其請求報文的源端口必須為P,這一要求進一步強化了對外部報文請求來源的限制,從而較Restrictd Cone更具安全性

            4. Symmetric NAT
            :這是一種比所有Cone NAT都要更為靈活的轉換方式:在Cone NAT中,內部主機的內部Tuple與外部Tuple的轉換映射關系是獨立于內部主機所發出的UDP報文中的目標地址及端口的,即與目標Tuple無關; 在Symmetric NAT中,目標Tuple則成為了NAT設備建立轉換關系的一個重要考量:只有來自于同一個內部Tuple 、且針對同一目標Tuple的請求才被NAT轉換至同一個外部Tuple,否則的話,NAT將為之分配一個新的外部Tuple;打個比方,當內部主機以相 同的內部Tuple對2個不同的目標Tuple發送UDP報文時,此時NAT將會為內部主機分配兩個不同的外部Tuple,并且建立起兩個不同的內、外部 Tuple轉換關系。與此同時,只有接收到了內部主機所發送的數據包的外部主機才能向內部主機返回UDP報文,這里對外部返回報文來源的限制是與Port Restricted Cone一致的。不難看出,如果說Full Cone是要求最寬松NAT UDP轉換方式,那么,Symmetric NAT則是要求最嚴格的NAT方式,其不僅體現在轉換關系的建立上,而且還體現在對外部報文來源的限制方面。

            第二部:NAT類型檢測

            前提條件:有一個公網的Server并且綁定了兩個公網IP(IP-1,IP-2)。這個Server做UDP監聽(IP-1,Port-1),(IP-2,Port-2)并根據客戶端的要求進行應答。

            第一步:檢測客戶端是否有能力進行UDP通信以及客戶端是否位于NAT后?

            客戶端建立UDP socket然后用這個socket向服務器的(IP-1,Port-1)發送數據包要求服務器返回客戶端的IP和Port, 客戶端發送請求后立即開始接受數據包,要設定socket Timeout(300ms),防止無限堵塞. 重復這個過程若干次。如果每次都超時,無法接受到服務器的回應,則說明客戶端無法進行UDP通信,可能是防火墻或NAT阻止UDP通信,這樣的客戶端也就 不能P2P了(檢測停止)。
            當客戶端能夠接收到服務器的回應時,需要把服務器返回的客戶端(IP,Port)和這個客戶端socket的 (LocalIP,LocalPort)比較。如果完全相同則客戶端不在NAT后,這樣的客戶端具有公網IP可以直接監聽UDP端口接收數據進行通信(檢 測停止)。否則客戶端在NAT后要做進一步的NAT類型檢測(繼續)。

            第二步:檢測客戶端NAT是否是Full Cone NAT?

            客戶端建立UDP socket然后用這個socket向服務器的(IP-1,Port-1)發送數據包要求服務器用另一對(IP-2,Port-2)響應客戶端的請求往回 發一個數據包,客戶端發送請求后立即開始接受數據包,要設定socket Timeout(300ms),防止無限堵塞. 重復這個過程若干次。如果每次都超時,無法接受到服務器的回應,則說明客戶端的NAT不是一個Full Cone NAT,具體類型有待下一步檢測(繼續)。如果能夠接受到服務器從(IP-2,Port-2)返回的應答UDP包,則說明客戶端是一個Full Cone NAT,這樣的客戶端能夠進行UDP-P2P通信(檢測停止)。

            第三步:檢測客戶端NAT是否是Symmetric NAT?

            客戶端建立UDP socket然后用這個socket向服務器的(IP-1,Port-1)發送數據包要求服務器返回客戶端的IP和Port, 客戶端發送請求后立即開始接受數據包,要設定socket Timeout(300ms),防止無限堵塞. 重復這個過程直到收到回應(一定能夠收到,因為第一步保證了這個客戶端可以進行UDP通信)。
            用同樣的方法用一個socket向服務器的(IP-2,Port-2)發送數據包要求服務器返回客戶端的IP和Port。
            比 較上面兩個過程從服務器返回的客戶端(IP,Port),如果兩個過程返回的(IP,Port)有一對不同則說明客戶端為Symmetric NAT,這樣的客戶端無法進行UDP-P2P通信(檢測停止)。否則是Restricted Cone NAT,是否為Port Restricted Cone NAT有待檢測(繼續)。

            第四步:檢測客戶端NAT是否是Restricted Cone NAT還是Port Restricted Cone NAT?

            客戶端建立UDP socket然后用這個socket向服務器的(IP-1,Port-1)發送數據包要求服務器用IP-1和一個不同于Port-1的端口發送一個UDP 數據包響應客戶端, 客戶端發送請求后立即開始接受數據包,要設定socket Timeout(300ms),防止無限堵塞. 重復這個過程若干次。如果每次都超時,無法接受到服務器的回應,則說明客戶端是一個Port Restricted Cone NAT,如果能夠收到服務器的響應則說明客戶端是一個Restricted Cone NAT。以上兩種NAT都可以進行UDP-P2P通信。

            注:以上檢測過程中只說明了可否進行UDP-P2P的打洞通信,具體怎么通信一般要借助于Rendezvous Server。另外對于Symmetric NAT不是說完全不能進行UDP-P2P達洞通信,可以進行端口預測打洞,不過不能保證成功。

            posted on 2008-08-14 11:00 大龍 閱讀(3431) 評論(0)  編輯 收藏 引用

            成人综合伊人五月婷久久| 97久久精品无码一区二区| 免费观看成人久久网免费观看| 婷婷综合久久中文字幕蜜桃三电影| 久久天天婷婷五月俺也去| 青青草原综合久久大伊人| 亚洲中文精品久久久久久不卡| 久久精品国产亚洲AV无码偷窥| 久久久一本精品99久久精品66| 97久久精品人妻人人搡人人玩| 99久久综合国产精品二区| 亚洲?V乱码久久精品蜜桃| 亚洲欧洲日产国码无码久久99| 久久99精品综合国产首页| 久久久久久亚洲精品无码| 亚洲AV无码成人网站久久精品大| 69久久精品无码一区二区| 精品久久久久久国产牛牛app| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 狠狠色丁香久久婷婷综合蜜芽五月| 国内精品九九久久精品| 久久精品国产半推半就| 久久亚洲av无码精品浪潮| 精品久久人妻av中文字幕| 欧美精品一区二区久久| 久久夜色tv网站| 亚洲香蕉网久久综合影视| 国产 亚洲 欧美 另类 久久| 精品久久久中文字幕人妻| 久久艹国产| 丁香五月网久久综合| 久久精品国产男包| 久久精品国产99久久香蕉| www.久久热.com| 久久夜色精品国产网站| 亚洲中文字幕伊人久久无码 | 久久男人中文字幕资源站| 久久精品国产亚洲麻豆| 性高湖久久久久久久久| 97精品伊人久久久大香线蕉| 一级a性色生活片久久无少妇一级婬片免费放 |