CN106534393B - 实现nat设备穿越的方法和系统 - Google Patents
实现nat设备穿越的方法和系统 Download PDFInfo
- Publication number
- CN106534393B CN106534393B CN201510585188.5A CN201510585188A CN106534393B CN 106534393 B CN106534393 B CN 106534393B CN 201510585188 A CN201510585188 A CN 201510585188A CN 106534393 B CN106534393 B CN 106534393B
- Authority
- CN
- China
- Prior art keywords
- terminal
- address
- nat device
- proxy server
- exit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种实现NAT设备穿越的方法和系统,涉及通信技术领域,其中,方法包括:第一终端接收第二终端发送的信令消息,所述信令消息携带第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址、以及三个地址的优先级;第一终端向第二终端的代理服务器分配的转发地址发送媒体消息,以与第二终端建立通信连接;第一终端对第二终端的本地地址和NAT设备的出口地址进行连通性测试;第一终端根据三个地址的优先级、以及连通性测试结果,确定是否由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址或NAT设备的出口地址发送媒体消息。本发明能够实现高效地穿越各种NAT设备以建立通信连接,并且接续时延小,还能节约代理服务器的资源,降低成本。
Description
技术领域
本发明涉及通信技术领域,尤其是一种实现NAT(Network Address Translation,网络地址转换)设备穿越的方法和系统。
背景技术
随着互联网的高速发展和普及,诸如电脑、平板电脑、智能手机的联网设备的数量激增,从而带来了IP地址资源短缺的问题。2011年2月,国际互联网名称和编号分配公司(ICANN)宣布IPV4地址耗尽,而中国的IPV4地址资源更加匮乏。大量的企业网、驻地网出于安全和节约公有地址等考虑,使用私有网络地址,也就是采用NAT技术,将多个内部地址映射为一个合法公网地址,但以不同的协议端口号与不同的内部地址相对应,以应对合法IP地址紧缺的问题。
但是,目前绝大多数的NAT设备仅支持HTTP(HyperText Transfer Protocol,超文本传输协议)等应用协议的穿越,而无法支持SIP、H.323等会话协议的媒体流穿越。对于VOIP(Voice over Internet Protocol,网络通话)、文件传输等P2P(peer-to-peer,点对点)对等应用,一般是在信令消息中交换各自的媒体地址和端口,媒体地址和端口是内嵌在信令消息中的,而NAT服务器只完成网络层的IP地址转换,并不处理信令消息中携带的媒体地址和端口数据,从而导致通信不能正常进行,从而给P2P对等应用(例如音视频通信、文件传输等)带来很多问题。
NAT穿越就是解决NAT设备后的终端实现正常通信的问题。现有技术中存在多种实现NAT穿越解决方案,包括:
第一,ALG(Application Level gateway,应用层网关)方式。应用层网关需要NAT设备处理解析应用层数据,对内嵌在信令消息中的媒体地址进行相应修改,以保证NAT的穿越。但是采用这种方式,NAT设备的数据处理负荷大,性能要求高,需要更换或升级现有的NAT设备,并且,随着相关协议的发展和扩充,设备也必须跟着进行升级。
第二,MIDCOM(Middle box Communications,中间盒通讯)方式。MIDCOM技术是通过第三方实体和NAT设备之间建立中间盒通信,使用MIDCOM定义的协议或私有协议控制NAT设备并动态地决定安全策略,根据P2P通信的需要动态地打开媒体流互通的IP地址和端口号。该方式由第三方实体识别SIP协议,安全性比较高,但仍需要升级NAT设备以支持MIDCOM协议,对现有网络影响较大。
第三,STUN(Simple Traversal of UDP Through NAT,UDP对NAT的简单穿越)方式。STUN方式采用客户机/服务器模式,它允许终端的应用程序探测当前在它们与公网之间是否存在NAT、防火墙以及它们的类型,并且具备能够探测到NAT所分配的公网地址和端口的能力。终端将探测到的公网地址和端口填写到SIP消息中,代替原有的私网地址和端口。但是,STUN方式只能工作在非对称型NAT的网络环境下,在对称型NAT的网络环境下,SIP用户代理通过STUN请求得到的映射地址是无效的。
第四,TURN(Traversal Using Relay NAT,中继方式NAT穿越)方式。TURN协议是STUN协议的增强版,其优点是提供了对称型NAT的穿越。处在公网的TURN服务器为客户端提供本身的一个外部IP地址和端口,并且负责中转通信双方的媒体流。但是,由于所有报文都必须经过TURN服务器转发,对TURN服务器资源需求大,同时增大了包的延迟和丢包的可能性。
第五,ICE(Interactive Connectivity Establishment,交互式连接建立)方式。ICE通过使用多种NAT穿透协议,如STUN、TURN,综合多种穿透协议的优势,同时还避免了任何单个协议可能存在的缺陷。但需要对多个候选地址进行连通性测试,接续延时比较大,无法满足电信的接续质量,主要用于互联网上的免费通信业务。
第六,Full Proxy(Full Proxy,全代理)方式。Full Proxy方式不用对用户设备做任何改动,仅在服务器侧(公网)增加一种特殊的Proxy设备实现NAT的穿越。Proxy在进行信令的代理和转换的同时,也进行媒体流的代理。Full Proxy可以适应所有NAT类型的网络环境,接续时延小。但是对于通信双方来说,呼叫控制信令和媒体流在传输过程中均增加了Proxy作为中继,随着用户的增加,Proxy需求数量巨大,通信成本高。
发明内容
本发明实施例的一个目的是:提供一种实现NAT设备穿越的方法和系统,能够穿越各种NAT设备,并且降低了接续时延,节约了成本。
根据本发明的一方面,提供一种实现NAT设备穿越的方法,包括:第一终端接收第二终端发送的信令消息,所述信令消息携带第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址、以及三个地址的优先级;第一终端向第二终端的代理服务器分配的转发地址发送媒体消息,以与第二终端建立通信连接;第一终端对第二终端的本地地址和NAT设备的出口地址进行连通性测试;第一终端根据三个地址的优先级、以及连通性测试结果,确定是否由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址或NAT设备的出口地址发送媒体消息。
在一个实施例中,所述第一终端对第二终端的本地地址和NAT设备的出口地址进行连通性测试包括:第一终端向第二终端的本地地址和NAT设备的出口地址发送绑定请求消息;判断在预设时间内是否接收到绑定成功响应消息;若在预设时间内接收到第二终端的本地地址的绑定成功响应消息,则对第二终端的本地地址的连通性测试成功,否则不成功;若在预设时间内接收到第二终端的NAT设备的出口地址的绑定成功响应消息,则对NAT设备的出口地址的连通性测试成功,否则不成功。
在一个实施例中,第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址的优先级依次降低;所述第一终端根据三个地址的优先级、以及连通性测试结果,确定是否由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址或NAT设备发送媒体消息包括:若对第二终端的本地地址的连通性测试成功,则第一终端由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址发送媒体消息;若对第二终端的本地地址的连通性测试不成功、而对第二终端的NAT设备的出口地址连通性测试成功,则第一终端由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的NAT设备的出口地址发送媒体消息;若对第二终端的本地地址和NAT设备的出口地址的连通性测试均不成功,则第一终端仍向第二终端的代理服务器分配的转发地址发送媒体消息。
在一个实施例中,所述第一终端接收第二终端发送的信令消息包括:第一终端向第一终端的代理服务器发送第一通信请求消息,所述第一通信请求消息携带第一终端的本地地址、第一终端的NAT设备的出口地址、以及这两个地址的优先级;第一终端的代理服务器在所述第一通信请求消息中添加第一转发地址和第一转发地址的优先级,并发送给应用服务器;应用服务器将接收到的第一通信请求消息发送给第二终端;第二终端向第二终端的代理服务器发送第一响应消息,所述第一响应消息携带第二终端的本地地址和第二终端的NAT设备的出口地址、以及这两个地址的优先级;第二终端的代理服务器在所述第一响应消息中添加第二转发地址和第二转发地址的优先级,并发送给应用服务器;应用服务器将接收到的第一响应消息作为所述信令消息发送给第一终端。
在一个实施例中,在第一终端向第一终端的代理服务器发送第一通信请求消息之前,还包括:第一终端从STUN服务器获取第一终端的NAT设备的出口地址;在第二终端向第二终端的代理服务器发送第一响应消息之前,还包括:第二终端从STUN服务器获取第二终端的NAT设备的出口地址。
在一个实施例中,所述第一终端接收第二终端发送的信令消息包括:第二终端向第二终端的代理服务器发送第二通信请求消息,所述第二通信请求消息携带第二终端的本地地址、第二终端的NAT设备的出口地址、以及这两个地址的优先级;第二终端的代理服务器在所述第二通信请求消息中添加第二转发地址和第二转发地址的优先级,并发送给应用服务器;应用服务器将接收到的第二通信请求消息作为所述信令消息发送给第一终端。
根据本发明的另一方面,提供一种实现NAT设备穿越的系统,包括:第一终端,所述第一终端包括:信令接收单元,用于接收第二终端发送的信令消息,所述信令消息携带第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址、以及三个地址的优先级;媒体发送单元,用于向第二终端的代理服务器分配的转发地址发送媒体消息,以与第二终端建立通信连接;根据切换单元的指示,向第二终端的本地地址或NAT设备发送媒体消息;测试单元,用于对第二终端的本地地址和NAT设备的出口地址进行连通性测试;切换单元,用于根据三个地址的优先级、以及连通性测试结果,确定是否指示所述媒体发送单元由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址或NAT设备发送媒体消息。
在一个实施例中,所述测试单元包括:测试请求模块,用于向第二终端的本地地址和NAT设备的出口地址发送绑定请求消息;测试判断模块,用于判断在预设时间内是否接收到绑定成功响应消息;若在预设时间内接收到第二终端的本地地址的绑定成功响应消息,则对第二终端的本地地址的连通性测试成功,否则不成功;若在预设时间内接收到第二终端的NAT设备的出口地址的绑定成功响应消息,则对NAT设备的出口地址的连通性测试成功,否则不成功。
在一个实施例中,第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址的优先级依次降低;所述切换单元具体用于:若对第二终端的本地地址的连通性测试成功,则指示所述媒体发送单元由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址发送媒体消息;若对第二终端的本地地址的连通性测试不成功、而对第二终端的NAT设备的出口地址连通性测试成功,则指示所述媒体发送单元由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的NAT设备的出口地址发送媒体消息;若对第二终端的本地地址和NAT设备的出口地址的连通性测试均不成功,则指示所述媒体发送单元仍向第二终端的代理服务器分配的转发地址发送媒体消息。
在一个实施例中,所述第一终端还包括:信令发送单元,用于向第一终端的代理服务器发送第一通信请求消息,所述第一通信请求消息携带第一终端的本地地址、第一终端的NAT设备的出口地址、以及这两个地址的优先级;所述系统还包括:第一终端的代理服务器,用于在所述第一通信请求消息中添加第一转发地址和第一转发地址的优先级,并发送给应用服务器;应用服务器,用于将接收到的第一通信请求消息发送给第二终端;将接收到的第一响应消息作为所述信令消息发送给第一终端的信令接收单元;第二终端,用于向第二终端的代理服务器发送第一响应消息,所述第一响应消息携带第二终端的本地地址和第二终端的NAT设备的出口地址、以及这两个地址的优先级;第二终端的代理服务器,用于在所述第一响应消息中添加第二转发地址和第二转发地址的优先级,并发送给应用服务器。
在一个实施例中,所述第一终端还包括:地址获取单元,用于从STUN服务器获取第一终端的NAT设备的出口地址,并发送给所述信令发送单元;所述第二终端,还用于从STUN服务器获取第二终端的NAT设备的出口地址。
在一个实施例中,所述第二终端,还用于向第二终端的代理服务器发送第二通信请求消息,所述第二通信请求消息携带第二终端的本地地址、第二终端的NAT设备的出口地址、以及这两个地址的优先级;第二终端的代理服务器,用于在所述第二通信请求消息中添加第二转发地址和第二转发地址的优先级,并发送给应用服务器;应用服务器,用于将接收到的第二通信请求消息作为所述信令消息发送给第一终端的信令接收单元。
本发明提供的实现NAT设备穿越的方法,综合运用STUN方式和全代理方式,第一终端在得到第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址、以及三个地址的优先级后,首先向第二终端的代理服务器分配的转发地址发送媒体消息,通过第二终端的代理服务器的转发与第二终端建立通信连接,在建立通信连接后,第一终端会对第二终端的本地地址和NAT设备的出口地址进行连通性测试,然后,第一终端可以根据三个地址的优先级、以及连通性测试结果,确定是否切换到向第二终端的本地地址或NAT设备的出口地址发送媒体消息。一旦第二终端的本地地址或NAT设备的出口地址的连通性测试成功,则切换到测试成功的地址端口实现媒体交互;否则,继续通过代理服务器转发。本发明能够实现高效地穿越各种NAT设备以建立通信连接,具有广泛的适用性,并且接续时延小,还能节约代理服务器的资源,降低成本。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实现NAT设备穿越的方法一个实施例的流程示意图;
图2是本发明实现NAT设备穿越的方法另一个实施例的流程示意图;
图3是本发明实现NAT设备穿越的方法又一个实施例的流程示意图;
图4是本发明实现NAT设备穿越的系统架构示意图;
图5是本发明实现NAT设备穿越的系统一个实施例的结构示意图;
图6是本发明实现NAT设备穿越的系统另一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1是本发明实现NAT设备穿越的方法一个实施例的流程示意图。如图1所示,该实施例实现NAT设备穿越的方法包括如下步骤:
步骤102,第一终端接收第二终端发送的信令消息,该信令消息携带第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址、以及三个地址的优先级。
其中,第一终端可以是通信发起方或通信接收方,第一终端接收到的信令消息可以是通信请求消息或响应消息。当第一终端是通信发起方时,第二终端是通信接收方,第一终端接收到的信令消息是响应消息;当第一终端是通信接收方时,第二终端是通信发起方,第一终端接收到的信令消息是通信请求消息。
第二终端的本地地址和第二终端的NAT设备的出口地址可以相同或不同。当第二终端的本地地址和第二终端的NAT设备的出口地址相同时,第二终端不在NAT设备后面;当第二终端的本地地址和第二终端的NAT设备的出口地址不同时,第二终端在NAT设备后面。
步骤104,第一终端向第二终端的代理服务器分配的转发地址发送媒体消息,以与第二终端建立通信连接。
发往第二终端的代理服务器分配的转发地址的媒体消息可以通过第二终端的代理服务器转发至第二终端,从而与第二终端建立通信连接。
步骤106,第一终端对第二终端的本地地址和NAT设备的出口地址进行连通性测试。
在与第二终端建立通信连接后,作为一种示例性的实现方式,第一终端例如可以通过向第二终端的本地地址和NAT设备的出口地址发送绑定请求消息(Binding Request)来进行连通性测试。通过判断在预设时间内是否接收到绑定成功响应消息(BindingSuccess Response)可以判断连通性测试是否成功。
具体地,若在预设时间(例如10秒)内接收到第二终端的本地地址的绑定成功响应消息,则对第二终端的本地地址的连通性测试成功,否则,对第二终端的本地地址的连通性测试不成功;若在预设时间(例如10秒)内接收到第二终端的NAT设备的出口地址的绑定成功响应消息,则对NAT设备的出口地址的连通性测试成功,否则,对第二终端的NAT设备的出口地址的连通性测试不成功。
步骤108,第一终端根据三个地址的优先级、以及连通性测试结果,确定是否由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址或NAT设备的出口地址发送媒体消息。
对于非对称型NAT设备,当对第二终端的本地地址的连通性测试不成功、对第二终端的NAT设备的出口地址的连通性测试成功时,可以通过第二终端的NAT设备的出口地址与第二终端实现通信;对于对称型NAT设备,当对第二终端的本地地址和NAT设备的出口地址的连通性测试都不成功时,第一终端可以继续向第二终端的代理服务器分配的转发地址发送媒体消息,从而实现与第二终端之间的通信。
本实施例提供的实现NAT设备穿越的方法,综合运用STUN方式和全代理方式,第一终端在得到第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址、以及三个地址的优先级后,首先向第二终端的代理服务器分配的转发地址发送媒体消息,通过第二终端的代理服务器的转发与第二终端建立通信连接,在建立通信连接后,第一终端会对第二终端的本地地址和NAT设备的出口地址进行连通性测试,然后,第一终端可以根据三个地址的优先级、以及连通性测试结果,确定是否切换到向第二终端的本地地址或NAT设备的出口地址发送媒体消息。一旦第二终端的本地地址或NAT设备的出口地址的连通性测试成功,则切换到测试成功的地址端口实现媒体交互;否则,继续通过代理服务器转发。本实施例能够实现高效地穿越各种NAT设备以建立通信连接,具有广泛的适用性,并且接续时延小,还能节约代理服务器的资源,降低成本。
在一个具体实施例中,第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址的优先级依次降低,该实施例中,图1所示的步骤108可以通过如下方式来实现:
一种情况下,若对第二终端的本地地址的连通性测试成功,则第一终端由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址发送媒体消息。这种情况下,由于第二终端的本地地址的优先级大于第二终端的NAT设备的出口地址的优先级,第二终端的NAT设备的出口地址的优先级大于第二终端的代理服务器分配的转发地址的优先级,因此,即使对第二终端的NAT设备的出口地址连通性测试也成功,第一终端仍会切换到向第二终端的本地地址发送媒体消息,此时第一终端和第二终端在同一个NAT设备后面。
另一种情况下,若对第二终端的本地地址的连通性测试不成功、而对第二终端的NAT设备的出口地址连通性测试成功,此时,第一终端和第二终端不在同一个NAT设备后面,则第一终端由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的NAT设备的出口地址发送媒体消息。另外,当第二终端的NAT设备为非对称型时,第一终端可以通过第二终端的NAT设备的出口地址发送媒体消息。
再一种情况下,若对第二终端的本地地址和NAT设备的出口地址的连通性测试均不成功,表明第二终端的NAT设备为对称型,此时第一终端仍向第二终端的代理服务器分配的转发地址发送媒体消息。
因此,无论是对称型NAT设备还是非对称型NAT设备,该实施例均能实现NAT设备的穿越。
图1所示的步骤102可以通过不同的方式来实现,下面结合图2和图3所示的实施例分别进行说明。
图2是本发明实现NAT设备穿越的方法另一个实施例的流程示意图。该实施例中,第一终端作为通信发起方,第二终端作为通信接收方。如图2所示,该实施例实现NAT设备穿越的方法包括如下步骤:
步骤202,第一终端向第一终端的代理服务器发送第一通信请求消息,该第一通信请求消息携带第一终端的本地地址、第一终端的NAT设备的出口地址、以及这两个地址的优先级。
该步骤之前,第一终端可以先获取第一终端的本地地址,并从STUN服务器获取第一终端的NAT设备的出口地址。
其中,第一通信请求消息例如可以是OFFER信令消息。
第一终端的本地地址和第一终端的NAT设备的出口地址可以相同或不同。当第一终端的本地地址和第一终端的NAT设备的出口地址相同时,第一终端不在NAT设备后面;当第一终端的本地地址和第一终端的NAT设备的出口地址不同时,第一终端在NAT设备后面。
现有的通信请求消息只携带本地地址和端口,如下所示:
c=IN IP4193.168.16.188
m=audio 37004RTP/AVP 1880
而本发明的通信请求消息携带多个地址,作为一个非限制性示例,第一通信请求消息可以是如下形式:
a=candidate:22964470731udp 2122194687192.168.22.4361903typ hostgeneration 0
a=candidate:1620722771udp 1685987071183.62.12.2936449typ srflx raddr192.168.22.43rport 61903generation 0。
本发明的通信请求消息定义了多个地址编号(例如candidate:2296447073),媒体类型(例如1,可以代表音频),携带地址的优先级(例如2122194687),携带地址类型(例如typ host)等信息。
步骤204,第一终端的代理服务器在第一通信请求消息中添加第一转发地址和第一转发地址的优先级,并发送给应用服务器。
作为一个非限制性示例,添加第一转发地址和第一转发地址的优先级后的第一通信请求消息可以是如下形式:
a=candidate:22964470731udp 2122194687192.168.22.4361903typ hostgeneration 0
a=candidate:1620722771udp 1685987071183.62.12.2936449typ srflx raddr192.168.22.43rport 61903generation 0
a=candidate:6078088851udp 4181990310.60.33.7750445typ relay raddr183.62.12.29rport 36449generation 0
在第一通信请求消息中,可以通过数值携带优先级,例如,数值越大,代表优先级越高,反之亦可;可以通过typ携带地址属性,host代表本地地址,srflx代表NAT设备的出口地址,relay代表转发地址。
步骤206,应用服务器将接收到的第一通信请求消息发送给第二终端,从而第二终端在接收到第一通信请求消息后即得到了第一终端的本地地址、第一终端的NAT设备的出口地址、第一终端的代理服务器分配的第一转发地址。
步骤208,第二终端向第二终端的代理服务器发送第一响应消息,该第一响应消息携带第二终端的本地地址和第二终端的NAT设备的出口地址、以及这两个地址的优先级。
该步骤之前,第二终端可以先获取第二终端的本地地址,并从STUN服务器获取第二终端的NAT设备的出口地址。
其中,第一响应消息例如可以是ANSWER信令消息。第一响应消息的形式可以参照上述第一通信请求消息的形式。
步骤210,第二终端的代理服务器在第一响应消息中添加第二转发地址和第二转发地址的优先级,并发送给应用服务器。
添加第二转发地址和第二转发地址的优先级后的第一响应消息的形式同样可以参照上述添加第一转发地址和第一转发地址的优先级后的第一通信请求消息的形式。
步骤212,应用服务器将接收到的第一响应消息作为信令消息发送给第一终端,从而第一终端在接收到信令消息后即得到了第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址、以及三个地址的优先级。
步骤104,第一终端向第二终端的代理服务器分配的转发地址发送媒体消息,以与第二终端建立通信连接。
步骤106,第一终端对第二终端的本地地址和NAT设备的出口地址进行连通性测试。
步骤108,第一终端根据三个地址的优先级、以及连通性测试结果,确定是否由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址或NAT设备的出口地址发送媒体消息。
本实施例中,步骤104-步骤106的具体实现可以参照图1所示实施例,在此不再赘述。
图3是本发明实现NAT设备穿越的方法又一个实施例的流程示意图。该实施例中,第一终端作为通信接收方,第二终端作为通信发起方。如图3所示,该实施例实现NAT设备穿越的方法包括如下步骤:
步骤302,第二终端向第二终端的代理服务器发送第二通信请求消息,该第二通信请求消息携带第二终端的本地地址、第二终端的NAT设备的出口地址、以及这两个地址的优先级。
该第二通信请求消息与上述第一终端向第一终端的代理服务器发送的第二通信请求消息的形式类似。
步骤304,第二终端的代理服务器在第二通信请求消息中添加第二转发地址和第二转发地址的优先级,并发送给应用服务器。
步骤306,应用服务器将接收到的第二通信请求消息作为信令消息发送给第一终端,从而第一终端在接收到信令消息后即得到了第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址、以及三个地址的优先级。
步骤104,第一终端向第二终端的代理服务器分配的转发地址发送媒体消息,以与第二终端建立通信连接。
步骤106,第一终端对第二终端的本地地址和NAT设备的出口地址进行连通性测试。
步骤108,第一终端根据三个地址的优先级、以及连通性测试结果,确定是否由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址或NAT设备的出口地址发送媒体消息。
本实施例中,步骤104-步骤106的具体实现同样可以参照图1所示实施例,在此不再赘述。
需要指出的是,通常情况下,每个通信方都有归属的代理服务器,通信双方可能用相同的代理服务器,也可能用不同的代理服务器。因此,图2和图3所示的实施例中,第一终端的代理服务器和第二终端的代理服务器可以是同一个代理服务器,也可以是不同的代理服务器。一般可以根据地域来设置代理服务器,例如,广州的代理服务器为广州的用户实现代理,北京的代理服务器为北京的用户实现代理。广州与北京用户实现通信,需要经过两个代理服务器,而广州用户之间或北京用户之间就只经过一个代理服务器。但是,在建设初期,如果用户量小,也可能广州和北京共用一个代理服务器,那么广州与北京用户之间的通信也只经过一个代理服务器。
另外,第一终端的代理服务器或第二终端的代理服务器还可以承担STUN服务器的功能。当然,也可以单独设置STUN服务器。
本发明提供的实现NAT设备穿越的方法可应用于各种P2P类的对等应用中,例如电信软交换,IMS(IP多媒体子系统)网络提供的音视频通信服务,或互联网音视频通信,其中,互联网音视频通信包括webrtc(网页实时通信)、文件传输类业务、P2P游戏类业务等。
下面结合图4,以IMS网络SIP协议(会话初始协议)的音视频通信业务作为例子来说明实现NAT设备穿越的方法。在该例子中,终端A作为通信发起方,终端B作为通信接收方。参考图4,实现NAT设备穿越的方法包括:
步骤S1,终端A在发起通信之前,先收集媒体流的本地地址IP11A11和NAT-A设备的出口地址IP12A12。其中,NAT-A设备的出口地址可以从STUN服务器来获取。代理服务器Proxy-A可承担STUN服务器的功能,或者也可以单独设置STUN服务器。
步骤S2,终端A向代理服务器Proxy-A发送发起通信的INVITE消息,该INVITE消息携带媒体流的本地地址IP11A11和NAT-A设备的出口地址IP12A12、以及这两个地址的优先级,在INVITE消息中可以标明地址的属性,以区分本地地址或NAT-A设备的出口地址。
步骤S3,代理服务器Proxy-A接收到INVITE消息后,会分配一个代表终端A媒体流的转发地址IP13A13,并将转发地址IP13A13和该地址的优先级添加到INVITE消息的媒体流的地址列表中,并标明转发地址IP13A13的属性。然后将添加转发地址IP13A13和该地址的优先级后的INVITE消息发送给呼叫会话控制功能实体CSCF(相当于应用服务器)。
步骤S4,CSCF将接收到的INVITE消息发送给终端B,终端B获取到终端A的本地地址、NAT-A设备的出口地址和代理服务器Proxy-A分配的转发地址IP13A13,以及这三个地址的优先级。
步骤S5,终端B收集本地地址IP21A21和NAT-B设备的出口地址IP22A22,并将携带终端B的本地地址、NAT-B设备的出口地址、以及这两个地址的优先级的200OK消息发送给代理服务器Proxy-B。
步骤S6,代理服务器Proxy-B在200OK消息中添加终端B的转发地址IP23A23和该地址的优先级,并发送给CSCF。
步骤S7,CSCF将接收到的200OK消息发送给终端A,终端A得到了终端B的本地地址、NAT-B设备的出口地址、代理服务器Proxy-B分配的转发地址IP23A23、以及这三个地址的优先级。
步骤S7,两个终端在得到对方的转发地址后,会将媒体流先向对方的转发地址发送,从而通过代理服务器的转发实现双方的音视频通信。
步骤S8,在发送媒体流的同时,对对方的本地地址和NAT设备的出口地址进行连通性测试,一旦连通性测试成功,则切换为向连通性测试成功的本地地址或NAT设备的出口地址发送媒体流。若对方的本地地址的连通性测试成功,则切换为向对方的本地地址发送媒体流;若对方的本地地址的连通性测试不成功,对方的NAT设备的出口地址的连通性测试成功,则切换为向对方的NAT设备的出口地址发送媒体流;若对方的本地地址和NAT设备的出口地址的连通性测试均不成功,则不更换媒体流地址,一直向对方的转发地址发送媒体流,通过代理服务器的转发方式实现终端A和终端B间的音视频通信。
步骤S9,代理服务器Proxy-A和Proxy-B在一段时间未收到媒体流后,会自动释放媒体端口,以回收资源,并维持正常的信令接续。
本实施例可以在连通性测试成功的情况下,减少对代理服务器转发资源的占用,从而节省代理服务器的投资建设,用户可以获得全代理方案的接续体验。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
图5是本发明实现NAT设备穿越的系统一个实施例的结构示意图。如图5所示,实现NAT设备穿越的系统包括第一终端501,第一终端501包括:
信令接收单元511,用于接收第二终端发送的信令消息,该信令消息携带第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址、以及三个地址的优先级;
媒体发送单元521,用于向第二终端的代理服务器分配的转发地址发送媒体消息,以与第二终端建立通信连接;根据切换单元的指示,向第二终端的本地地址或NAT设备发送媒体消息;
测试单元531,用于对第二终端的本地地址和NAT设备的出口地址进行连通性测试;
切换单元541,用于根据三个地址的优先级、以及连通性测试结果,确定是否指示媒体发送单元521由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址或NAT设备发送媒体消息。
本实施例提供的实现NAT设备穿越的系统,可以综合运用STUN方式和全代理方式,信令接收单元在得到第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址、以及三个地址的优先级后,首先通过媒体发送单元向第二终端的代理服务器分配的转发地址发送媒体消息,通过第二终端的代理服务器的转发与第二终端建立通信连接,在建立通信连接后,测试单元会对第二终端的本地地址和NAT设备的出口地址进行连通性测试,然后,切换单元可以根据三个地址的优先级、以及连通性测试结果,确定是否指示媒体发送单元切换到向第二终端的本地地址或NAT设备的出口地址发送媒体消息。一旦第二终端的本地地址或NAT设备的出口地址的连通性测试成功,则指示媒体发送单元切换到测试成功的地址端口实现媒体交互;否则,继续通过代理服务器转发。本实施例能够实现高效地穿越各种NAT设备以建立通信连接,具有广泛的适用性,并且接续时延小,还能节约代理服务器的资源,降低成本。
在本发明实现NAT设备穿越的系统的个具体实施例中,参见图5,测试单元531可以包括:测试请求模块5311,用于向第二终端的本地地址和NAT设备的出口地址发送绑定请求消息;测试判断模块5312,用于判断在预设时间内是否接收到绑定成功响应消息;若在预设时间内接收到第二终端的本地地址的绑定成功响应消息,则对第二终端的本地地址的连通性测试成功,否则不成功;若在预设时间内接收到第二终端的NAT设备的出口地址的绑定成功响应消息,则对NAT设备的出口地址的连通性测试成功,否则不成功。
在本发明实现NAT设备穿越的系统的另一个实施例中,第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址的优先级依次降低。该实施例中的切换单元541具体用于:若对第二终端的本地地址的连通性测试成功,则指示媒体发送单元由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址发送媒体消息;若对第二终端的本地地址的连通性测试不成功、而对第二终端的NAT设备的出口地址连通性测试成功,则指示媒体发送单元由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的NAT设备的出口地址发送媒体消息;若对第二终端的本地地址和NAT设备的出口地址的连通性测试均不成功,则指示媒体发送单元仍向第二终端的代理服务器分配的转发地址发送媒体消息。
图6是本发明实现NAT设备穿越的系统又一个实施例的结构示意图。该实施例的系统还包括第一终端的代理服务器502、应用服务器503、第二终端504、第二终端的代理服务器505;第一终端501作为通信发起方,第二终端504作为通信接收方。
该实施例中,第一终端501还包括:信令发送单元551,用于向第一终端的代理服务器502发送第一通信请求消息,该第一通信请求消息携带第一终端的本地地址、第一终端的NAT设备的出口地址、以及这两个地址的优先级;
第一终端的代理服务器502,用于在第一通信请求消息中添加第一转发地址和第一转发地址的优先级,并发送给应用服务器503;
应用服务器503,用于将接收到的第一通信请求消息发送给第二终端504;将接收到的第一响应消息作为信令消息发送给第一终端的信令接收单元511;
第二终端504,用于向第二终端的代理服务器505发送第一响应消息,该第一响应消息携带第二终端的本地地址和第二终端的NAT设备的出口地址、以及这两个地址的优先级;
第二终端的代理服务器505,用于在第一响应消息中添加第二转发地址和第二转发地址的优先级,并发送给应用服务器503。
在本发明实现NAT设备穿越的系统的再一个实施例中,第一终端还包括:地址获取单元,用于从STUN服务器获取第一终端的NAT设备的出口地址,并发送给信令发送单元551;该实施例中的第二终端504,还用于从STUN服务器获取第二终端的NAT设备的出口地址。
在本发明实现NAT设备穿越的系统的还一个实施例中,第一终端501作为通信接收方,第二终端504作为通信发起方,参见图6,第二终端504,还用于向第二终端的代理服务器505发送第二通信请求消息,该第二通信请求消息携带第二终端的本地地址、第二终端的NAT设备的出口地址、以及这两个地址的优先级;
第二终端的代理服务器505,还用于在第二通信请求消息中添加第二转发地址和第二转发地址的优先级,并发送给应用服务器503;
应用服务器503,还用于将接收到的第二通信请求消息作为信令消息发送给第一终端的信令接收单元511。
本发明提供的基于UDP(用户数据报协议)实现NAT设备穿越的方法和系统综合了STUN方式和全代理方式,在通信初期采用全代理方式,媒体消息通过代理服务器转发,加快通信接续速度。在通过连通性测试后,对于双方能够直接实现媒体交互的情况,媒体信息通过STUN方式进行直接交互,从而释放代理服务器的资源,节省代理服务器的投资建设。
本发明并不是两种NAT穿越方式的简单叠加,由上述各实施例的描述可知,本发明扩展了信令消息(通信请求消息或响应消息)的地址携带方式,定义了地址优先级及属性,并且终端具有媒体切换的功能。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (12)
1.一种实现NAT设备穿越的方法,其特征在于,包括:
第一终端接收第二终端发送的信令消息,所述信令消息携带第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址、以及三个地址的优先级;
第一终端向第二终端的代理服务器分配的转发地址发送媒体消息,以与第二终端建立通信连接;
第一终端对第二终端的本地地址和NAT设备的出口地址进行连通性测试;
第一终端根据三个地址的优先级、以及连通性测试结果,确定是否由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址或NAT设备的出口地址发送媒体消息;
其中,所述第一终端根据三个地址的优先级、以及连通性测试结果,确定是否由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址或NAT设备的出口地址发送媒体消息包括:
若对第二终端的本地地址或NAT设备的出口地址的连通性测试成功,第一终端由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向连通性测试成功的第二终端的本地地址或NAT设备的出口地址发送媒体消息;
若对第二终端的本地地址和NAT设备的出口地址的连通性测试均不成功,则第一终端仍向第二终端的代理服务器分配的转发地址发送媒体消息。
2.根据权利要求1所述的方法,其特征在于,所述第一终端对第二终端的本地地址和NAT设备的出口地址进行连通性测试包括:
第一终端向第二终端的本地地址和NAT设备的出口地址发送绑定请求消息;
判断在预设时间内是否接收到绑定成功响应消息;
若在预设时间内接收到第二终端的本地地址的绑定成功响应消息,则对第二终端的本地地址的连通性测试成功,否则不成功;若在预设时间内接收到第二终端的NAT设备的出口地址的绑定成功响应消息,则对NAT设备的出口地址的连通性测试成功,否则不成功。
3.根据权利要求1或2所述的方法,其特征在于,第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址的优先级依次降低;
若对第二终端的本地地址的连通性测试成功,则第一终端由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址发送媒体消息;
若对第二终端的本地地址的连通性测试不成功、而对第二终端的NAT设备的出口地址连通性测试成功,则第一终端由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的NAT设备的出口地址发送媒体消息。
4.根据权利要求1所述的方法,其特征在于,所述第一终端接收第二终端发送的信令消息包括:
第一终端向第一终端的代理服务器发送第一通信请求消息,所述第一通信请求消息携带第一终端的本地地址、第一终端的NAT设备的出口地址、以及这两个地址的优先级;
第一终端的代理服务器在所述第一通信请求消息中添加第一终端的代理服务器分配的第一转发地址和第一转发地址的优先级,并发送给应用服务器;
应用服务器将接收到的第一通信请求消息发送给第二终端;
第二终端向第二终端的代理服务器发送第一响应消息,所述第一响应消息携带第二终端的本地地址和第二终端的NAT设备的出口地址、以及这两个地址的优先级;
第二终端的代理服务器在所述第一响应消息中添加第二转发地址和第二转发地址的优先级,并发送给应用服务器,其中,所述第二转发地址为第二终端的代理服务器分配的转发地址;
应用服务器将接收到的第一响应消息作为所述信令消息发送给第一终端。
5.根据权利要求4所述的方法,其特征在于,在第一终端向第一终端的代理服务器发送第一通信请求消息之前,还包括:
第一终端从STUN服务器获取第一终端的NAT设备的出口地址;
在第二终端向第二终端的代理服务器发送第一响应消息之前,还包括:
第二终端从STUN服务器获取第二终端的NAT设备的出口地址。
6.根据权利要求1所述的方法,其特征在于,所述第一终端接收第二终端发送的信令消息包括:
第二终端向第二终端的代理服务器发送第二通信请求消息,所述第二通信请求消息携带第二终端的本地地址、第二终端的NAT设备的出口地址、以及这两个地址的优先级;
第二终端的代理服务器在所述第二通信请求消息中添加第二转发地址和第二转发地址的优先级,并发送给应用服务器;
应用服务器将接收到的第二通信请求消息作为所述信令消息发送给第一终端。
7.一种实现NAT设备穿越的系统,其特征在于,包括:第一终端,所述第一终端包括:
信令接收单元,用于接收第二终端发送的信令消息,所述信令消息携带第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址、以及三个地址的优先级;
媒体发送单元,用于向第二终端的代理服务器分配的转发地址发送媒体消息,以与第二终端建立通信连接;根据切换单元的指示,向第二终端的本地地址或NAT设备发送媒体消息;
测试单元,用于对第二终端的本地地址和NAT设备的出口地址进行连通性测试;
切换单元,用于根据三个地址的优先级、以及连通性测试结果,确定是否指示所述媒体发送单元由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址或NAT设备的出口地址发送媒体消息;
其中,所述切换单元具体用于:
若对第二终端的本地地址或NAT设备的出口地址的连通性测试成功,则指示所述媒体发送单元由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向连通性测试成功的第二终端的本地地址或NAT设备的出口地址发送媒体消息;
若对第二终端的本地地址和NAT设备的出口地址的连通性测试均不成功,则指示所述媒体发送单元仍向第二终端的代理服务器分配的转发地址发送媒体消息。
8.根据权利要求7所述的系统,其特征在于,所述测试单元包括:
测试请求模块,用于向第二终端的本地地址和NAT设备的出口地址发送绑定请求消息;
测试判断模块,用于判断在预设时间内是否接收到绑定成功响应消息;若在预设时间内接收到第二终端的本地地址的绑定成功响应消息,则对第二终端的本地地址的连通性测试成功,否则不成功;若在预设时间内接收到第二终端的NAT设备的出口地址的绑定成功响应消息,则对NAT设备的出口地址的连通性测试成功,否则不成功。
9.根据权利要求7或8所述的系统,其特征在于,第二终端的本地地址、第二终端的NAT设备的出口地址、第二终端的代理服务器分配的转发地址的优先级依次降低;
所述切换单元具体用于:
若对第二终端的本地地址的连通性测试成功,则指示所述媒体发送单元由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的本地地址发送媒体消息;
若对第二终端的本地地址的连通性测试不成功、而对第二终端的NAT设备的出口地址连通性测试成功,则指示所述媒体发送单元由向第二终端的代理服务器分配的转发地址发送媒体消息切换到向第二终端的NAT设备的出口地址发送媒体消息。
10.根据权利要求7所述的系统,其特征在于,所述第一终端还包括:
信令发送单元,用于向第一终端的代理服务器发送第一通信请求消息,所述第一通信请求消息携带第一终端的本地地址、第一终端的NAT设备的出口地址、以及这两个地址的优先级;
所述系统还包括:
第一终端的代理服务器,用于在所述第一通信请求消息中添加第一终端的代理服务器分配的第一转发地址和第一转发地址的优先级,并发送给应用服务器;
应用服务器,用于将接收到的第一通信请求消息发送给第二终端;将接收到的第一响应消息作为所述信令消息发送给第一终端的信令接收单元;
第二终端,用于向第二终端的代理服务器发送第一响应消息,所述第一响应消息携带第二终端的本地地址和第二终端的NAT设备的出口地址、以及这两个地址的优先级;
第二终端的代理服务器,用于在所述第一响应消息中添加第二转发地址和第二转发地址的优先级,并发送给应用服务器,其中,所述第二转发地址为第二终端的代理服务器分配的转发地址。
11.根据权利要求10所述的系统,其特征在于,所述第一终端还包括:
地址获取单元,用于从STUN服务器获取第一终端的NAT设备的出口地址,并发送给所述信令发送单元;
所述第二终端,还用于从STUN服务器获取第二终端的NAT设备的出口地址。
12.根据权利要求10或11所述的系统,其特征在于,
所述第二终端,还用于向第二终端的代理服务器发送第二通信请求消息,所述第二通信请求消息携带第二终端的本地地址、第二终端的NAT设备的出口地址、以及这两个地址的优先级;
所述第二终端的代理服务器,还用于在所述第二通信请求消息中添加第二转发地址和第二转发地址的优先级,并发送给应用服务器;
所述应用服务器,还用于将接收到的第二通信请求消息作为所述信令消息发送给第一终端的信令接收单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510585188.5A CN106534393B (zh) | 2015-09-15 | 2015-09-15 | 实现nat设备穿越的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510585188.5A CN106534393B (zh) | 2015-09-15 | 2015-09-15 | 实现nat设备穿越的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106534393A CN106534393A (zh) | 2017-03-22 |
CN106534393B true CN106534393B (zh) | 2019-09-03 |
Family
ID=58349166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510585188.5A Active CN106534393B (zh) | 2015-09-15 | 2015-09-15 | 实现nat设备穿越的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106534393B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112073540B (zh) * | 2020-11-10 | 2021-02-12 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、相关设备及存储介质 |
CN114553822A (zh) * | 2022-02-07 | 2022-05-27 | 邦彦技术股份有限公司 | 一种简易nat穿越的方法 |
CN115484311B (zh) * | 2022-08-19 | 2024-05-07 | 重庆长安汽车股份有限公司 | 国标信令边缘代理系统的信令交互方法、装置及服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1946055A (zh) * | 2006-10-24 | 2007-04-11 | 深圳市瑞福特信息技术有限公司 | 即时通讯中媒体数据传输通道切换的方法 |
CN101083565A (zh) * | 2006-05-29 | 2007-12-05 | 腾讯科技(深圳)有限公司 | 一种检测网络类型的方法及系统 |
GB2461322A (en) * | 2008-06-26 | 2009-12-30 | D Link Corp | Predicting a port number of a NAT equipment by inquiring a STUN server twice. |
CN103916382A (zh) * | 2013-12-25 | 2014-07-09 | 三亚中兴软件有限责任公司 | 基于sip媒体能力重协商的nat穿越方法、代理服务器和系统 |
-
2015
- 2015-09-15 CN CN201510585188.5A patent/CN106534393B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101083565A (zh) * | 2006-05-29 | 2007-12-05 | 腾讯科技(深圳)有限公司 | 一种检测网络类型的方法及系统 |
CN1946055A (zh) * | 2006-10-24 | 2007-04-11 | 深圳市瑞福特信息技术有限公司 | 即时通讯中媒体数据传输通道切换的方法 |
GB2461322A (en) * | 2008-06-26 | 2009-12-30 | D Link Corp | Predicting a port number of a NAT equipment by inquiring a STUN server twice. |
CN103916382A (zh) * | 2013-12-25 | 2014-07-09 | 三亚中兴软件有限责任公司 | 基于sip媒体能力重协商的nat穿越方法、代理服务器和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106534393A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11019117B2 (en) | Conferencing server | |
US9137200B2 (en) | Ice based NAT traversal | |
CN100539504C (zh) | 一种网络地址转换和/或防火墙穿越平台、系统及其方法 | |
US9432408B2 (en) | Signalling gateway, method, computer program and computer program product for communication between HTTP and SIP | |
US9699237B2 (en) | Managed media relay selection for real-time communications | |
CN103108089A (zh) | 网络系统的连线建立管理方法及其相关系统 | |
CA3021223C (en) | A method and a system for using relays for network optimization in ip-based communication networks | |
EP2850813A1 (en) | Nat traversal for voip | |
CN103414799B (zh) | 中继地址互通方法和终端及系统 | |
CN101960777B (zh) | 提供远程访问服务的通用即插即用方法和装置 | |
CN106534393B (zh) | 实现nat设备穿越的方法和系统 | |
CN103107983A (zh) | 网络系统的数据管理方法及其相关系统 | |
CN103152444A (zh) | 中继方式的网络地址转换及报文传输方法及装置、系统 | |
JP5926164B2 (ja) | セッションボーダーコントローラに対する高速振り分け方法及び接続システム | |
US8812694B2 (en) | Dialog establishment over a peer-to-peer architecture | |
US20180262537A1 (en) | Communication method to maintain an application session between a terminal and an application server | |
CN101997870B (zh) | 一种保证VoIP系统动态中转可靠性的方法 | |
EP3044929B1 (en) | A mobile-device based proxy for browser-originated procedures | |
CA2799507C (en) | Dialog establishment over a peer-to-peer architecture | |
CN105100086A (zh) | 一种基于对称型NAT的VoIP语音监听方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |