STUN解决关于SIP的NAT穿透
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STUN解决关于SIP的NAT穿透
STUN(Simple Traversal of UDP over NATs,NAT的UDP简单穿越)是⼀种⽹络协议,它允许位于NAT(或多重NAT)后的客户端找出⾃⼰的公⽹地址,查出⾃⼰位于哪种类型的NAT之后以及NAT为某⼀个本地端⼝所绑定的 Internet端端⼝。
这些信息被⽤来在两个同时处于NAT 路由器之后的主机之间建⽴UDP通信。
该协议由Rfc3489定义。
⼀旦客户端得知了Internet端的UDP端⼝,通信就可以开始了。
如果NAT是完全圆锥型的,那么双⽅中的任何⼀⽅都可以发起通信。
如果NAT是受限圆锥型或端⼝受限圆锥型,双⽅必须⼀起开始传输。
需要注意的是,要使⽤STUN RFC中描述的技术并不⼀定需要使⽤STUN协议——还可以另外设计⼀个协议并把相同的功能集成到运⾏该协议的服务器上。
SIP之类的协议是使⽤UDP分组在Internet上传输⾳频和/或视频数据的。
不幸的是,由于通信的两个末端往往位于NAT之后,因此⽤传统的⽅法是⽆法建⽴连接的。
这也就是STUN发挥作⽤的地⽅。
STUN是⼀个客户机-服务器协议。
⼀个VoIP电话或软件包可能会包括⼀个STUN客户端。
这个客户端会向STUN服务器发送请求,之后,服务器就会向STUN客户端报告NAT路由器的公⽹IP地址以及NAT为允许传⼊流量传回内⽹⽽开通的端⼝。
以上的响应同时还使得STUN客户端能够确定正在使⽤的NAT类型——因为不同的NAT类型处理传⼊的UDP分组的⽅式是不同的。
四种主要类型中有三种是可以使⽤的:完全圆锥型NAT、受限圆锥型NAT和端⼝受限圆锥型NAT——但⼤型公司⽹络中经常采⽤的对称型
NAT(⼜称为双向NAT)则不能使⽤。