假定a要發起對b的直接連線,「打洞」過程如下所示:(endpoint指ip位址和埠的配對)(1)a最初不知道如何向b發起連線,於是a向伺服器s傳送訊息,請求s幫助建立與b的udp連線。
(2)s將含有b的公網和內網的endpoint發給a,同時,s將含有a的公網和內網的endpoint的用於請求連線的訊息也發給b。一旦這些訊息順利到達,a與b就都知道了對方的公網和內網的endpoint。
(3)當a收到由s發來的包含b的公網和內網endpoint的訊息,a開始向這些b的endpoint傳送udp資料報,並且a會自動鎖定第乙個給出響應的b的endpoint。同理,當b收到由s發來的a的公網和內網endpoint以後,也會開始向a的公網和內網的endpoint傳送 udp資料報,並且自動鎖定第乙個得到a的回應的endpoint。由於a與b的互相向對方傳送udp資料報的操作是非同步的,所以a和b傳送資料報的時間先後並沒有嚴格的時序要求。
NAT穿越 TCP打洞
在處於nat之後的兩台主機之間建立p2p tcp連線比建立相應的udp要稍微複雜,但在協議層次,tcp打洞非常類似與udp打洞。然而tcp協議本身比較複雜,因此支援的nat比較少。然而,在nat支援tcp打洞的情況下,tcp打洞像upd打洞那樣快並且可靠。穿透 行為良好 的nat的tcp p2p連線...
NAT打洞原理
具體例子 nat211.133.和nat211.134.之間需要進行通訊,但開始不能直接就發資料報,我們需要乙個中間人,這個就是外部索引伺服器 我們假設是211.135.7000 當nat211.133.向211.135.7000傳送資料報,211.135.7000是可以正常接收到資料,因為它是屬於...
Tcp and Udp NAT 穿越穿透打洞
所用屬於和代號。a 私網中的主機,設私網ip為192.168.1.2 b 另一私網中的主機,設私網ip為192.168.245.10 s 公網中的主機,在此做中間伺服器,設ip為223.11.11.11 nat net address transmission,在此可以理解為路由器 nat a a所...