售前电话
135-3656-7657
售前电话 : 135-3656-7657
STUN代表通过网络地址转换器(NAT)对用户数据报协议(UDP)的简单遍历。通常,它用于几种不同的网络实现和方案,其中之一是在VoIP实现中。由于基于SIP的VoIP呼叫中使用的协议的工作方式,在NAT设备(如路由器或防火墙)后面运行的两个SIP实体之间进行呼叫(家庭和企业网络中的常见方案),用户通常会遇到几个问题,例如电话呼叫期间的单向音频或尝试注册到VoIP提供商或IPPBX时电话注册失败不驻留在同一网络上。STUN是一种协议,有助于解决此类VoIP实现中的问题。从v10开始,名科云电话系统在端口5060上充当STUN服务器。
STUN协议的用途
STUN协议的主要目的是使在NAT设备后面运行的设备能够发现其公共IP以及在其连接到的网关上运行的NAT类型。它还使网关后面连接的设备能够发现网关本身(NAT)完成的端口转换;即,其他设备可以使用哪个端口从网络外部连接到它。请注意,网关和路由器并不总是进行端口转换。这取决于它们正在运行的NAT类型及其配置方式。例如,完整的锥形NAT配置不会转换端口。
STUN还可用于刷新NAT绑定;作为使用受限锥体NAT或端口受限锥体NAT时的保持活动机制。通过此类NAT配置传递流量时,内部地址和端口将映射到特定的外部地址和端口。但是,如果在特定时间(取决于设备的配置)后未使用此类地址转换,则会删除此类地址映射。因此,当内部设备尝试使用相同的内部IP和端口再次连接到外部实体(可能是以前连接到的同一实体)时,路由器仍将分配不同的地址映射,即与先前分配的IP和端口不同的IP和端口。
STUN协议
STUN是一种服务器-客户端协议。STUN服务器通常在TCP和UDP上运行,并在端口3478上进行侦听。客户端通常通过特定的IP和端口(3478)联系STUN服务器,但服务器可以提示客户端对备用IP地址和端口号执行测试,因为这样的端口和IP是任意的。
STUN请求和响应方案
在下图中,我们可以看到典型的STUN请求和响应是如何工作的:
阶段1:计算机A通过网关192.168.1.1向网络外部的STUN服务器发送STUN请求,使用源端口5060侦听64.25.58.65。
STUN也有其缺点;它不能与使用对称NAT的网络正常工作,因为每次内部主机尝试连接到外部主机时,对称NAT都会创建新的地址和端口映射,因此STUN不是这种情况的良好解决方案。在下一篇文章中,我们将看到来自VoIP设备的STUN请求的示例捕获,并将解释它如何帮助解决VoIP环境中的连接建立问题。
STUN使在NAT后面运行的SIP实体能够发现其公共IP以及在其连接到的网关上运行的NAT类型。它还使SIP实体能够发现外部SIP实体可以连接到哪些端口,以建立连接。由于SIP使用UDP作为传输协议,而UDP不是面向连接的协议,因此根据传输协议,无法轻松建立2个SIP实体之间的连接,这就是为什么STUN在基于SIP的VoIP环境中广泛使用的原因。下面我们将看到基于SIP的VoIP电话的捕获,该电话尝试注册到在其网络外部运行的IPPBX,以及基于SIP的VoIP电话是否使用STUN协议会发生什么情况。
REGISTERsip:voipproducts.orgSIP/2.0
Via:SIP/2.0/UDP192.168.2.14:7214;branch=z9hG4bK-d8754z;rport
Max-Forwards:70
Contact::<sip:101@192.168.2.14:7214;rinstance=0639bae5043c66ac>
To:"account1"<sip:101@voipproducts.org>
From:"account1"<sip:101@voipproducts.org>;tag=0a75d76e
Call-ID:OTcxMDU5MGNhNTAxNzgzYjZkODVkY2I3MmE3NDhlNzQ.
CSeq:1REGISTER
Expires:3600
Content-Length:0
Fromtheabovewecanseethat:
Contact:<sip:101@192.168.2.14:7214;rinstance=0639bae5043c66ac>