NAT的四種型別及型別檢測

2022-03-08 17:02:59 字數 1781 閱讀 1996

考 慮到udp的無狀態特性,目前針對其的nat實現大致可分為full cone、restricted cone、port restricted cone和symmetric nat四種。值得指出的是,對於tcp協議而言,一般來說,目前nat中針對tcp的實現基本上是一致的,其間並不存在太大差異,這是因為tcp協議本身 便是面向連線的,因此無需考慮網路連線無狀態所帶來複雜性。

用語定義詳細釋義

內網主機建立乙個udp socket(localip,localport),當用這個socket第一次發資料給外部主機1時,nat為其對映乙個(publicip-1,port-1),以後內網主機傳送給外部主機1的所有資料都是用這個(publicip-1,port-1),如果內網主機同時用這個socket給外部主機2傳送資料,第一次傳送時,nat會為其分配乙個(publicip-2,port-2), 以後內網主機傳送給外部主機2的所有資料都是用這個(publicip-2,port-2).如果nat有多於乙個公網ip,則publicip-1和publicip-2可能不同,如果nat只有乙個公網ip,則port-1和port-2肯定不同,也就是說一定不能是publicip-1等於 publicip-2且port-1等於port-2。此外,如果任何外部主機想要傳送資料給這個內網主機,那麼它首先應該收到內網主機發給他的資料,然後才能往回傳送,否則即使他知道內網主機的乙個(publicip,port)也不能傳送資料給內網主機,這種nat無法實現udp-p2p通訊。

第二部:nat型別檢測

前提條件:有乙個公網的server並且繫結了兩個公網ip(ip-1,ip-2)。這個server做udp監聽(ip-1,port-1),(ip-2,port-2)並根據客戶端的要求進行應答。

第一步:檢測客戶端是否有能力進行udp通訊以及客戶端是否位於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?

第四步:檢測客戶端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達洞通訊,可以進行埠**打洞,不過不能保證成功。

**

NAT的四種型別及型別檢測

考慮到udp的無狀態特性,目前針對其的nat實現大致可分為full cone restricted cone port restricted cone和symmetric nat四種。值得指出的是,對於tcp協議而言,一般來說,目前nat中針對tcp的實現基本上是一致的,其間並不存在太大差異,這是因...

NAT的四種型別及型別檢測

考 慮到udp的無狀態特性,目前針對其的nat實現大致可分為full cone restricted cone port restricted cone和symmetric nat四種。值得指出的是,對於tcp協議而言,一般來說,目前nat中針對tcp的實現基本上是一致的,其間並不存在太大差異,這是...

NAT的四種型別及型別檢測

考 慮到udp的無狀態特性,目前針對其的nat實現大致可分為full cone restricted cone port restricted cone和symmetric nat四種。值得指出的是,對於tcp協議而言,一般來說,目前nat中針對tcp的實現基本上是一致的,其間並不存在太大差異,這是...