NAT是通過修改UDP或TCP報文頭部地址信息實現地址的轉換,但對于VOIP應用,在TCP/UDP凈載中也需帶地址信 息,ALG方式是指在私網中的VOIP終端在凈載中填寫的是其私網地址,此地址信息在通過NAT時被修改為NAT上對外的地址。
一、要求這些設備本身具備應用識別的智能,支持IP 語音和視頻協議的識別和對NAT/Firewall的控制,同時每增加一種新的應用都 將需要對NAT/Firewall進行升級,在安全要求上還需要作一些折衷,因為ALG 不能識別加密后的報文內容,所以必須保證報文采用明文傳送,這使得報文在公網中傳送時有很大的安全隱患。
二、與NAT/ALG不同的是,MIDCOM的基本框架是采用可信的第三方對Middlebox進行控制,VOIP協議的識別不由Middlebox完成,而是由外部的MIDCOM Agent完成,因此VOIP使用的協議對Middlebox是透明的,由于識別應用協議的功能從Middlebox移到外部的MIDCOM Agent上,根據MIDCOM 的構,在不需要更改Middlebox基本特性的基礎上,通過對MIDCOM Agent的升級就可以支持更多的新業務,這是相對NAT/ALG方式的一個很大的優勢。
三、如果在軟交換設備上實現對SIP/H323/MGCP/H248協議的識別,就只需在軟交換和NAT/FW設備上增加MIDCO M協議即可,而且以后新的應用業務識別隨著軟交換的支持而支持,此方案是一種比較有前途的解決方案,但要求現有的NAT/FW設備需升級支持MIDCOM協議,從這一點上來說,對已大量布署的NAT/FW設備來說,也是很困難的,同NAT/ALG方式有相同的問題。
四、解決穿透NAT問題的另一思路是,私網中的VOIP終端通過某種機制預先得到出口NAT上的對外地址,然后在凈載中所填寫的地址 信息直接填寫出口NAT上的對外地址,而不是私網內終端的私有IP地址,這樣凈載中的內容在經過NAT時就無需被修改了,只需按 普通NAT流程轉換報文頭的IP地址即可,凈載中的IP地址信息和報文頭地址信息是一致的。
STUN協議就是基于此思路來解決應 用層地址的轉換問題。
五、STUN協議最大的優點是無需現有NAT/FW設備做任何改動。由于實際應用中,已有大量的NAT/FW,并且這些NAT/FW 并不支持VoIP的應用,如果用MIDCOM或NAT/ALG方式來解決此問題,需要替換現有的NAT/FW,這是不太容易的,而采用STUN方式無需改動NAT/FW,這是其最大優勢,同時STUN方式可在多個NAT串聯的網絡環境中使用,但MIDCO M方式則無法實現對多級NAT的有效控制。
六、TURN方式解決NAT問題的思路與STUN相似,也是私網中的VOIP終端通過某種機制預先得公網上的服務地址,然后在報文凈載中所要求的地址信息就直接填寫該公網地址。
這種方式除了具有STUN方式的優點外,還解決了STUN應用無法穿透對稱NAT以及類似的路由器的缺陷,同時TURN支持基于TCP的應用,如H323協議,TURN Server控制分配地址和端口,能分配RTP/RTCP地址對作為私網終端用戶的接受地址,避免了STUN方式中出口NAT對RTP/RTCP地址端口號的任意分配,使得客戶端無法收到對端發來的RTCP報文。