2010-08-21 51 views
4

我想知道是否UDP穿孔可能在某個NAT後面,但我發現當NAT後面的計算機發送UDP數據包到兩個不同的IP到同一個端口時綁定到同一個端口,NAT分配兩個不同的外部端口號。那麼在這個特定的NAT背後,我認爲UDP打孔是不可能的,這是正確的嗎?UDP打孔可能嗎?

謝謝

回答

1

不一定。路由器可能願意迴應IGD

+0

謝謝,試過了,它沒有。毫不奇怪,它實際上是一個蜂窩數據連接。至少值得一擊。我不能想到的另一件事是端口猜測,但他們似乎很隨機分配。堅果。 – nemasu 2010-08-23 15:59:52

0

您可以使用此網站來確認此特定NAT的行爲。

http://nattest.net.in.tum.de/test.php

它會檢查你的NAT類型和測試,如果UDP/TCP打孔是可能的。

但是既然你已經知道端口分配是隨機的,那麼UDP打孔是不可能的。使用UPnP是另一種方式,但不適用於嵌套的NAT後面。

1

這意味着你的NaT Symetric,如果你的NaT是Symetric,它會爲每個連接賦予不同的外部端口。並且不可能從兩種方式連接Hole punching,但仍可以連接p2p。但只有在代理方使用圓錐形納特。搜索那個。

但是,如果使用Symetric NaT的兩個位置沒有辦法將p2p連接與Udp Hole Punching連接。

  1. 一個:關於對稱=> B:對稱的----不可能
  2. 一個:圓錐=> B:圓錐------------可能容易
  3. 一個: Symetric => b:Coinc ---------可能/只有單程握手 4:a:conic => b:symetric ---------不可能/但可以單向連接握手

但是你仍然可以使用端口預測方法。它意味着你必須猜測至極端口可以在連接使用,並嘗試將其連接(TCP打孔)

對於圓錐的NaT可以看到關於UDP打孔請檢查樣品在https://github.com/turapulku/NaT-Traversal-UDP-Hole-punch.git

這是仍處於發展階段,但現在這是我希望它有幫助