動機

記錄用

nat type

  • 完全圓錐型NAT: in-ip <-> out-ip&port
    • 受限圓錐型NAT: whitelist out-ip (dont care port)
      • 埠受限圓錐型NAT: whitelist out-ip&port
  • 對稱NAT: 每次的req的port都不一樣!!

STUN

讓client知道

  • 在外部網路的位址(也就是Inside Global位址)
  • 目前的NAT是使用怎樣的NAT種類

在不同範圍的ip有不同的名字 {inside local} )PC( {inside global} {outside local} )ISP( {outside global}

TURN

只有STUN沒辦法與對面的nat中的server連線,所以讓STUN多了relay的功能

udp打洞

  1. mid server做筆記紀錄兩邊的out-ip&port
  2. 讓client查對方的out-ip&port
  3. client都先丟udp到server,第一次會被drop
  • 但是本機的nat會記錄連線
  1. 換對面丟,因為有紀錄連線就會過

Ref

明辨STUN/TURN協定 輕鬆跨越NAT建立連線 简单解释 P2P 技术之 UDP 打洞