P2P中NAT之間的打洞可能性

2021-08-03 08:47:20 字數 1278 閱讀 9583

我們看看不同nat之間的nat打洞。nat打洞需要server配合,需要2種server:

1. 類似webrtc中的信令伺服器,作用是幫助客戶機溝通ip和port資訊;

2. stun server,用來讓客戶機判斷自己所在的nat環境。

現在假設客戶端和server的通訊都沒問題,客戶端知道自己所處環境,並且將自己的資訊通過伺服器傳送給了另一方客戶端,它們可能的打洞情況如下:

1. full cone nat 與 full cone nat:通訊很容易,各自通過stun server獲取外部ip和port後,通過信令伺服器通知另一方,即可通訊。

2. full cone nat 與 restricted cone nat或port restricted cone nat在互相告知ip和port後,如果由full cone nat端先傳送資料報,會失敗,必須由restricted cone nat或port restricted cone nat端先傳送資料報給full cone nat,之後雙方即可互相通訊。

3. full cone nat 與 symmetric nat通訊時,必須先由symmetric nat端傳送資料報給full cone nat端,full cone nat端通過發來的資料報獲得目標的新埠號,之後通過這個新埠號完成互相通訊。

4. restricted cone nat 與 restricted cone nat、restricted cone nat 與 port restricted cone nat、port restricted cone nat 與 port restricted cone nat之間通訊時,先傳送資料報的一方會失敗,之後另一方傳送資料報成功後,可互相通訊。

5. restricted cone nat 與 symmetric nat通訊時,先由restricted cone nat傳送資料報給symmetric nat,傳送資料會失敗,只是為了下次能接收從symmetric nat端傳送過來的資料報。然後由symmetric nat傳送資料報到restricted cone nat端,restricted cone nat端會收到資料報,並且將新的埠號記下,使用新的埠號可與symmetric nat端通訊。

6. port restricted cone nat 與 symmetric nat通訊時,由於port restricted cone nat會對ip:port對進行限制,所以當symmetric nat端使用新port發來資料報時,port restricted cone nat端收不到,它們之間無法通訊。

7. symmetric nat 與 symmetric nat也無法通訊 。

P2P打洞中遇到的問題

裝置a通過一台聯通的路由器上網,裝置a通過有線連線路由器 裝置b是一台手機是移動2g 協助伺服器是電信網路 附 裝置a和裝置b經過ip.cn 測試發現各自的外網位址是 裝置a 221.4.212.2,聯通ip,相對固定 裝置b 117.136.33.128,移動ip,手機網路經常變動 但是通過伺服器...

P2P打洞技術之一 NAT裝置實現分類

nat分類 根據stun協議 rfc3489 nat大致分為下面四類 1 full cone 這種nat內部的機器a連線過外網機器c後,nat會開啟乙個埠.然後外網的任何發到這個開啟的埠的udp資料報都可以到達a.不管是不是c發過來的.例如 a 192.168.8.100 nat 202.100.1...

P2P網路中UDP穿越NAT的原理

p2p網路中,udp穿越nat方式主要有 中轉方式 relay 反向連線 connection reversal udp打洞 udp hole punching 中轉方式是最簡單也是比較可靠的nat穿越方法,它將p2p通訊簡單地轉換為客戶端 伺服器通訊模式。假如有a和b兩個客戶端和乙個公共伺服器s,...