確切地說(shuō)是穿透NAT,一般使用UDP協(xié)議,TCP協(xié)議也可以穿透,只是好像沒(méi)有UDP成功率高。
如果是一般情況,使用STUN協(xié)議.
除了要通信的兩個(gè)端點(diǎn)之外,還有一個(gè)有公網(wǎng)IP的一個(gè)服務(wù)器 STUN server。
一個(gè)端點(diǎn)穿過(guò)防火墻,發(fā)個(gè)消息給STUN server,STUN server收到這個(gè)包之后 就可以知道該端點(diǎn)通過(guò)防火墻映射后的公網(wǎng)地址。
同樣道理,STUN sever可以得到另外一個(gè)端點(diǎn)的通過(guò)它的防火墻映射后的公網(wǎng)地址。
STUN server把得到的這兩個(gè)地址發(fā)給兩個(gè)端點(diǎn)。
端點(diǎn)得到對(duì)方端點(diǎn)的公網(wǎng)地址后,就可以給對(duì)方端點(diǎn)發(fā)消息。相互就可以通信。
通俗的說(shuō),一個(gè)端點(diǎn)發(fā)一個(gè)UDP消息出去之后,就把自己的墻打了一個(gè)洞;另外一個(gè)端點(diǎn)也把它的墻打了一個(gè)洞。然后雙方都可以向?qū)Ψ降亩窗l(fā)數(shù)據(jù),進(jìn)行通信?。