摘要,簡介,
摘要
STUN(Simple Traversal of User Datagram Protocol through Network Address Translators (NATs),NAT的UDP簡單穿越)是一種網路協定,它允許位於NAT(或多重NAT)後的客戶端找出自己的公網地址,查出自己位於哪種類型的NAT之後以及NAT為某一個本地連線埠所綁定的Internet端連線埠。這些信息被用來在兩個同時處於NAT 路由器之後的主機之間建立UDP通信。該協定由RFC 3489定義。
簡介
STUN的全稱是Simple Traversal of UDP Through Network Address Translators,即UDP對NAT的簡單穿越方式。 應用程式(即STUN CLIENT)向NAT外的STUN SERVER通過UDP傳送請求STUN 訊息,STUN SERVER收到請求訊息,產生回響訊息,回響訊息中攜帶請求訊息的源連線埠,即STUN CLIENT在NAT上對應的外部連線埠。然後回響訊息通過NAT傳送給STUN CLIENT,STUN CLIENT通過回響訊息體中的內容得知其NAT上的外部地址,並將其填入以後呼叫協定的UDP負載中,告知對端,本端的RTP接收地址和連線埠號為NAT 外部的地址和連線埠號。由於通過STUN協定已在NAT上預先建立媒體流的NAT映射表項,故媒體流可順利穿越NAT。
STUN協定最大的優點是無需現有NAT/FW設備做任何改動。由於實際套用中,已有大量的NAT/FW,並且這些NAT/FW並不支持VoIP的套用,如果用MIDCOM或NAT/ALG方式來解決此問題,需要替換現有的NAT/FW,這是不太容易的。而採用STUN方式無需改動NAT/FW,這是其最大優勢,同時STUN方式可在多個NAT串聯的網路環境中使用,但MIDCOM方式則無法實現對多級NAT的有效控制。
STUN的局限性在於需要VOIP終端支持STUN CLIENT的功能,同時STUN並不適合支持TCP連線的穿越,因此不支持H323.另外STUN方式不支持對防火牆的穿越,不支持對稱NAT (Symmetric NAT)類型(在安全性要求較高的企業網中,出口NAT通常是這種類型)穿越。