turn

網路協議

turn是網路協議,又稱SPAN(Simple Protocol for Augmenting NATs)方式。

基本介紹


TURN協議允許NAT或者防火牆後面的對象可以通過TCP或者UDP接收到數據。這在使用了對稱式的NAT(或者防火牆)的網路中尤其具有實用價值。
TURN方式解決NAT問題的思路與STUN相似,是基於私網接入用戶通過某種機制預先得到其私有地址對應在公網的地址(STUN方式得到的地址為出口NAT上的地址,TURN方式得到地址為TURNServer上的地址),然後在報文負載中所描述的地址信息直接填寫該公網地址的方式,實際應用原理也是一樣的。
TURN的全稱為Traversal Using Relay NAT,即通過Relay方式穿越NAT,TURN應用模型通過分配TURNServer的地址和埠作為客戶端對外的接受地址和埠,即私網用戶發出的報文都要經過TURNServer進行Relay轉發,這種方式應用模型除了具有STUN方式的優點外,還解決了STUN應用無法穿透對稱NAT(SymmetricNAT)以及類似的Firewall設備的缺陷,即無論企業網/駐地網出口為哪種類型的NAT/FW,都可以實現NAT的穿透,同時TURN支持基於TCP的應用,如H323協議。此外TURNServer控制分配地址和埠,能分配RTP/RTCP地址對(RTCP埠號為RTP埠號加1)作為本端客戶的接受地址,避免了STUN應用模型下出口NAT對RTP/RTCP地址埠號的任意分配,使得客戶端無法收到對端發過來的RTCP報文(對端發RTCP報文時,目的埠號預設按RTP埠號加1發送)
TURN的局限性在於所有報文都必須經過TURNServer轉發,增大了包的延遲和丟包的可能性。