Symmetric NAT與Cone NAT

    現在我們知道,通過NAT,,內網的計算機向外連結是很容易的。NAT對於內網和外網的計算機是透明的。內網的機器欲訪問外面的機器,可在NAT上“打洞”,而且這個“洞”是有方向的。也就是讓NAT建一個session,從而建立映射。
    那麼,如果同一個進程,與外網的兩臺機器,同時建立聯繫,情況又是如何呢。
 
    如圖所示:Client A的原來那個Socket(綁定了1234端口的那個UDP Socket),現在又要向另外一個Server S2發送了一個UDP包,那麼這個UDP包在通過NAT時會怎麼樣呢?

    這時可能會有兩種情況發生:
1)是NAT再次創建一個Session,並且再次爲這個Session分配一個端口號(比如:62001)。
2)是NAT再次創建一個Session,但是不會新分配一個端口號,而是用原來分配的端口號62000。
前者NAT叫做Symmetric NAT,後者叫做Cone NAT。
 
    當然,我們期望的NAT是第二種。呵呵,如果你的NAT剛好是第一種,那麼很可能會有很多P2P軟件失靈。(不過可以慶幸的是,現在絕大多數的NAT屬於後者,即Cone NAT)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章