確切地說是穿透NAT,一般使用UDP協議,TCP協議也可以穿透,只是好像沒有UDP成功率高。
如果是一般情況,使用STUN協議.
除了要通信的兩個端點之外,還有一個有公網IP的一個服務器 STUN server。
一個端點穿過防火墻,發個消息給STUN server,STUN server收到這個包之后 就可以知道該端點通過防火墻映射后的公網地址。
同樣道理,STUN sever可以得到另外一個端點的通過它的防火墻映射后的公網地址。
STUN server把得到的這兩個地址發給兩個端點。
端點得到對方端點的公網地址后,就可以給對方端點發消息。相互就可以通信。
通俗的說,一個端點發一個UDP消息出去之后,就把自己的墻打了一個洞;另外一個端點也把它的墻打了一個洞。然后雙方都可以向對方的洞發數據,進行通信?。