當前位置:編程學習大全網 - 源碼下載 - NAT端口映射: napt,upnp以及nat-pmp

NAT端口映射: napt,upnp以及nat-pmp

我喜歡用很簡單的話來概括:

natp是內部機器通過路由器也就是網關向外部發送網絡請求時,路由器記住內部機器的ip和端口,同時跟真正發送數據的外網端口綁定,產生壹個臨時映射表,當收到外網數據以後通過這個映射表將數據轉發給內部機器。nat的多種映射類型以後再說。

upnp和nat-pmp差不多,就是在路由器和內部機器提供壹個中間服務,內部機器請求upnp將其使用到的端口跟某個外網端口綁定,這樣當路由器收到外網請求時先去upnp裏查找是否此外網端口已經被upnp映射,如果被映射則將數據轉發到內部機器對應的端口。

napt是路由器肯定帶的功能 ,其產生的nat映射表有多種類型,但都 有時效 ,也就是超過壹段時間原來的nat映射就無效,然後新建新的nat映射。 nat映射必須先由內部機器向外部網絡發起請求才會產生。

upnp是把映射關系長期保存下來, 外部機器可以主動向內部機器請求網絡連接。 所以首先要路由器開啟upnp功能(壹般由用戶去路由器設置裏手動開啟upnp) ,然後內部機器的程序要自己實現upnp客戶端功能:主動查找upnp服務,主動增加映射、刪除映射等。

客戶端無法控制natp的映射,可以主動控制upnp映射。

從我目前對go-ethereum源碼中p2p的研究來看,以太坊只做了upnpt和nat-pmp的端口映射,而且實現是調用了第三方開源庫,但是沒有做NATP udp打洞。

比特幣源碼還沒看,不過應該也沒有做udp打洞穿越NAT.

  • 上一篇:楚雄資質代辦:公司起名需要註意什麽?
  • 下一篇:《西遊記》中“火眼金睛”是神通嗎?
  • copyright 2024編程學習大全網