2011-11-03 117 views
4

我想了解當兩個主機每個端口後面的限制錐形NAT建立連接時,udp打孔如何工作。udp打孔和端口限制錐NAT

據我瞭解,它發生在幾個階段,涉及三個主機。

主機A和主機B位於端口受限錐形NAT後面。

主機C是可從主機甲接收分組和B.服務器

  1. A發送數據包C.
  2. C來自A接收分組並且確定A的外部地址:端口對
  3. B發送分組到C.
  4. C來自B接收分組,並確定B的外部地址:端口對
  5. C發送外部地址:B的端口至A
  6. C發送的外部地址:A的端口到B
  7. A發送packet_1到B的外部地址
  8. B發送packet_2到A的外部地址

的問題是:

怎麼能落後受限錐形NAT從B收到一個數據包,這個數據包也位於受限錐形NAT後面?

端口限制錐形NAT不允許源地址:端口對與其發送的目的地址:端口對不匹配的數據包接收。爲什麼在A和B之間發送的其他數據包到達A和B?

是否因爲端口限制錐形NAT認爲packet_2是來自B的響應?

因此packet_1將丟失,但packet_2到達B.我是對嗎?

預先感謝您。

回答

2

僅供參考,這裏是一個paper,它解決了您的問題並提供了NAT的詳細概述。 pdf版本可用here

1

首先,限制錐nat意味着如果A與C通話,則B不能使用在A和C之間穿孔的通信與A通信,假設B是而不是在nat後面。意思是,在這種情況下nat遍歷不起作用。

A如何在受限制的錐形NAT後面接收來自B 的數據包,該數據包也位於受限制的錐形NAT後面?

在這種情況下,它是一種不同的情況,稱爲髮夾狀態。換句話說,B可以在nat後面使用A的翻譯地址嗎?一些nats正確處理這種情況,其他人則沒有。

就您而言,即使您的nat正確處理髮夾條件,B的數據包也不會因爲「限制錐」而被轉發。所以,結果是一樣的。

爲什麼在A和B之間傳送的其他數據包到達A和B?

他們不會在你的情況。

0
A sends packet_1 to B's external address 
B sends packet_2 to A's external address 


How can A behind the restricted cone NAT receive a packet from B which is also behind the restricted cone NAT? 

Is it because the port restricted cone NAT considers packet_2 as the response from B? 

So packet_1 will be lost but packet_2 arrives to B. Am I right? 

你是絕對正確的,請閱讀skype works如何,這是你在尋找什麼