一种穿越nat设备的业务流传输方法及装置的利记博彩app

文档序号:7796927阅读:120来源:国知局
专利名称:一种穿越nat设备的业务流传输方法及装置的利记博彩app
技术领域
本发明涉及通信技术领域,尤其涉及一种穿越NAT设备的业务流传输方法及装置。
背景技术
随着网络技术的发展,各种应用和业务被广泛应用到网络中,比如视频点播、存储备份等。这些业务都通过业务源发送端将模拟或数字数据转换成IP报文,经过网络的转发,发送到请求业务的客户端。为有效管理这些业务,应用系统中会存在一个核心的管理服务器,同时考虑到业务源发送端的成本,设备的业务能力有限,为了将业务源发送端的业务流转发给更多的客户端,需要网络中存在业务转发服务器,专门处理业务流的复制和分发。典型的应用系统网络结构如图1所示,由以下基本单元的构成管理服务器、业务源发送端(下文简称业务源端)、业务请求客户端(下文简称客户端)、转发服务器以及相应的软件管理系统。现有应用方案中,客户端向管理服务器申请建立与业务源端的业务关系,管理服务器通知业务源端将业务流发往客户端,客户端收到业务流后进行应用转换,实现实时应用。当不采用转发服务器进行转发业务流时,其流程为客户端向管理服务器请求业务源端的业务资源;管理服务器指示对应的业务源端发送相应业务流到指定客户端,并指示客户端打开相应端口,准备接收业务流;业务源端发送相应业务流到请求的客户端。当采用转发服务器进行转发业务流时,其流程为客户端向管理服务器请求业务源端的业务资源;管理服务器向转发服务器发送配置消息,在转发服务器上建立复制转发表项,指示对应的业务源端发送相应业务流到转发服务器,并指示客户端打开相应端口,准备接收业务流;业务源端发送相应业务流到转发服务器;转发服务器复制转发该业务流到请求的客户端。随着各类应用的推广,应用系统组网需要面临各种复杂的组网类型,特别是应用系统中存在不同类型的NAT (Network Address Translation,网络地址转换)设备,比如对称型NAT,管理服务器、转发服务器、业务源端、客户端等业务设备相互间都可能存在NAT设备,各业务设备可能分布在NAT设备的私网侧或公网侧,如图2所示。现有的应用信令流和业务流都是单方向发起的,比如业务流,一般都是从业务源端发往客户端,而当客户端在NAT设备的私网侧时,处于NAT设备的公网侧的业务源端的业务流就有可能因NAT设备上没有地址映射关系而被丢弃。虽然可以通过更改业务流程,如先让客户端向业务源端发送连接建立请求以使得NAT设备建立地址映射关系,但当客户端处在NAT设备的公网侧、业务源端处在NAT设备的私网侧的情况下,即使由客户端向业务源端发送连接建立请求,也会因NAT设备仅对网络层报文的报文头进行IP地址/端口的识别和转换,对于应用层协议协商过程中报文载荷携带的地址信息则无法进行识别和转换而导致NAT设备无法建立地址映射关系,进而业务流无法穿越NAT设备,在客户端和业务源端间有多个NAT设备的情况下,更是无法保证业务的实现。现有应用组网中,考虑到管理服务器和转发服务器数量较少,且一般放置在网络核心层,所以可以将管理服务器和转发服务器布置在公网侧,或者是布置在第一级私网,即服务器设备与公网间只有一个NAT设备,且NAT设备上通过配置内部服务器特性(即通过静态配置方式在NAT设备上为其它业务设备开放端口以使所述其它业务设备的业务流可穿越该NAT设备),使得管理服务器和转发服务器与其它业务设备(如业务源端和客户端) 进行通信。但对于客户端和业务源端设备,由于数量众多,且分布广泛,无法要求该类设备布置在公网或者是在NAT设备上配置对应的内部服务器。现有应用组网中,需要在网络设备已经固定的情况下进行组网,所以通过更改NAT 设备的方式显然不是合适的。面对各种可能需要穿越NAT设备的应用组网,现有的应用流程显然无法统一的采用一套方案去解决各种组网问题。

发明内容
本发明提供了一种穿越NAT设备的业务流传输方法及装置,用以实现针对不同的组网结构,采用相应方式实现穿越NAT设备的业务流传输过程。本发明提供的穿越NAT的业务流传输方法,应用于包含有业务设备且业务设备之间设置有NAT设备的网络系统,所述业务设备包括管理服务器、客户端和业务源端,该方法包括管理服务器接收到业务设备的注册报文后对所述业务设备进行注册处理,并根据所述注册报文的报文头和载荷部分携带的地址信息,确定所述业务设备与所述管理服务器的相对位置;当所述管理服务器接收到客户端请求业务源端的业务资源的报文后,根据所述客户端与所述管理服务器的相对位置以及所述业务源端与所述管理服务器的相对位置,通知所述客户端和业务源端中的一方向对方发起连接建立过程;其中,在所述连接建立过程中, 所述客户端和所述业务源端之间的NAT设备建立相应地址映射关系;所述管理服务器通知所述业务源端发送所述客户端所请求的业务流;其中,当所述业务流经过NAT设备时,所述NAT设备根据建立的地址映射关系转发所述业务流。本发明提供的另一种穿越NAT的业务流传输方法,应用于包含有业务设备且业务设备之间设置有NAT设备的网络系统,所述业务设备包括管理服务器、转发服务器、客户端和业务源端,该方法包括管理服务器接收到业务设备的注册报文后对所述业务设备进行注册处理,根据所述注册报文的报文头和载荷部分携带的地址信息,确定所述业务设备与所述管理服务器的相对位置;当所述管理服务器接收到客户端请求业务源端的业务资源的报文后,根据所述客户端与所述管理服务器的相对位置以及所述业务源端与所述管理服务器的相对位置,判断是否需要转发服务器转发业务流;如果判断为是,则通知所述客户端和所述业务源端分别向所述转发服务器发起连接建立过程;否则,根据所述客户端与所述管理服务器的相对位置以及所述业务源端与所述管理服务器的相对位置,通知所述客户端和业务源端中的一方向对方发起连接建立过程;其中,在所述连接建立过程中,所述客户端和所述业务源端之间的NAT设备建立相应地址映射关系;所述管理服务器通知所述业务源端发送所述客户端所请求的业务流;其中,当所述业务流经过NAT设备时,所述NAT设备根据建立的地址映射关系转发所述业务流。本发明提供的一种管理服务器,应用于包含有业务设备且业务设备之间设置有 NAT设备的网络系统,所述业务设备包括管理服务器、客户端和业务源端,所述管理服务器包括注册处理模块,用于在接收到业务设备的注册报文后对所述业务设备进行注册处理,并根据所述注册报文的报文头和载荷部分携带的地址信息,确定所述业务设备与所述管理服务器的相对位置;存储模块,用于存储所述注册处理模块确定出的各业务设备与所述管理服务器的相对位置信息;业务处理模块,用于当接收到客户端请求业务源端的业务资源的报文后,根据所述存储模块存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,通知所述客户端和业务源端中的一方向对方发起连接建立过程;其中,在所述连接建立过程中,所述客户端和所述业务源端之间的NAT设备建立相应地址映射关系;以及,通知所述业务源端发送所述客户端所请求的业务流;其中,当所述业务流经过NAT设备时,所述NAT设备根据建立的地址映射关系转发所述业务流。本发明提供的另一种管理服务器,应用于包含有业务设备且业务设备之间设置有 NAT设备的网络系统,所述业务设备包括管理服务器、转发服务器、客户端和业务源端,所述管理服务器包括注册处理模块,用于在接收到业务设备的注册报文后对所述业务设备进行注册处理,并根据所述注册报文的报文头和载荷部分携带的地址信息,确定所述业务设备与所述管理服务器的相对位置;存储模块,用于存储所述注册处理模块确定出的各业务设备与所述管理服务器的相对位置信息;业务处理模块,用于当接收到客户端请求业务源端的业务资源的报文后,根据所述存储模块存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,判断是否需要转发服务器转发业务流;如果判断为是,则通知所述客户端和所述业务源端分别向所述转发服务器发起连接建立过程;否则,根据所述存储模块存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,通知所述客户端和业务源端中的一方向对方发起连接建立过程;其中,在所述连接建立过程中,所述客户端和所述业务源端之间的NAT设备建立相应地址映射关系;以及,通知所述业务源端发送所述客户端所请求的业务流;其中,当所述业务流经过NAT设备时,所述NAT设备根据建立的地址映射关系转发所述业务流。与现有技术相比,本发明具有如下有益技术效果管理服务器在对业务设备进行注册处理时,根据注册报文的报文头和载荷部分携带的地址信息,确定业务设备与管理服务器的相对位置,以便在管理服务器进行业务处理时,根据确定出的相对位置关系,采用对应的方式发起业务流程,从而使业务应用能适应各种NAT网络环境。


图1为现有技术中的应用系统示意图;图2为现有技术中存在NAT设备的应用系统示意图;图3为本发明实施例提供的业务设备注册流程示意图;图4至图7分别为本发明实施例中的业务设备相对于管理服务器的位置关系示意图;图8为本发明实施例一提供的业务流传输流程示意图;图9至图15分别为本发明实施例中的客户端和业务源端具有不同对象级别的组网示意图;图16至图23分别为本发明实施例中的客户端和业务源端具有相同对象级别的组网示意图;图M为本发明实施例一提供的管理服务器选择业务连接发起方流程的示意图之 图25为本发明实施例一提供的管理服务器选择业务连接发起方流程的示意图之 --;图沈为本发明实施例二提供的业务流传输流程示意图之一;图27为本发明实施例二提供的业务流传输流程示意图之二 ;图观为本发明实施例二提供的管理服务器选择业务连接发起方流程的示意图之 图四为本发明实施例二提供的管理服务器选择业务连接发起方流程的示意图之 --;图30A、30B、31A、31B分别为本发明实施例提供的管理服务器的结构示意图。
具体实施例方式针对现有技术存在的上述问题,本发明实施例针对应用系统的各种组网方式建立简单的处理模型,并通过管理服务器分析其它业务设备(包括业务源端、客户端等设备)发送给管理服务器的注册信息来确定业务设备相对于管理服务器的组网方式,从而根据组网方式的不同采用相应的处理模型进行信令通信和业务流转发,从而实现管理服务器通过简化的方式,统一管理应用设备间穿越NAT设备的情况,最终实现应用系统业务穿越各类NAT 设备的方案。下面结合附图对本发明实施例进行详细描述。实施例一本实施例描述了应用系统组网中没有转发服务器,或者即使有转发服务器,但业务流传输过程也不使用转发服务器进行转发的实现方案。本实施例的组网中,管理服务器上针对其它业务设备(包括业务源端、客户端等设备)相对于该管理服务器的各种相对位置关系,设置有对应的业务处理模式,管理服务器通过分析所述其它业务设备发送给管理服务器的注册信息,来确定所述业务设备相对于管理服务器的位置关系,从而在接收到客户端的业务请求后,根据确定出的相对位置关系采用对应的业务处理模式进行处理。为保证所述其它业务设备都能将注册信息发送到管理服务器,应保证所述其它业务设备到管理服务器的通信可达,因此将管理服务器设置在公网侧。也可将管理服务器设置在第一级私网(即管理服务器和公网间只有一个NAT设备),且管理服务器与公网间的 NAT设备上配置内部服务器特性(如在NAT设备上通过静态配置方式为其它业务设备开放相应端口,以使所述其它业务设备可以与该管理服务器通信)。业务设备在接入应用系统时,首先要向该应用系统中的管理服务器进行注册。本发明实施例中,管理服务器除了进行常规注册处理,还要根据业务设备发送的注册报文确定该业务设备相对该管理服务器的位置(即组网方式),并进行记录,以便后续接收到业务设备发送的业务请求时,根据该业务设备与该管理服务器的相对位置,采用相应的处理模型响应业务设备的业务请求。业务设备的注册流程可如图3所示,包括步骤301,业务设备向管理服务器发送注册报文。其中,注册报文的IP头中携带有源IP地址和目的IP地址,注册报文载荷部分(如 SIP (Session Initiation Protocol,初始会话协议)部分)也携带有源IP地址和目的IP 地址。注册报文IP头中携带的IP地址会因该注册报文穿越NAT设备而改变,注册报文载荷部分携带的IP地址则不会因该注册报文穿越NAT设备而改变。注册报文载荷部分携带的源IP地址为注册报文发起端的IP地址,目的地址为管理服务器的IP地址。步骤302,管理服务器接收到该业务设备的注册报文后,对该业务设备进行注册处理,确定该业务设备与该管理服务器间的相对位置关系,并记录确定出的相对位置关系。其中,管理服务器基于注册报文IP头中携带的IP地址会因该注册报文穿越NAT 设备而改变,而注册报文载荷部分携带的IP地址则不会因该注册报文穿越NAT设备而改变的特性,通过比较注册报文的IP头中携带的IP地址,以及该注册报文载荷部分携带的IP 地址,来确定发起注册的业务设备与管理服务器间的相对位置。步骤303,管理服务器向业务设备返回注册响应报文。该步骤可选。下面结合图4至图7所示的管理服务器和业务设备间的位置关系,详细说明上述流程步骤302中,管理服务器根据注册报文确定业务设备与管理服务器的相对位置的具体实现过程。如图4所示,当业务设备处在NAT2的私网侧,管理服务器处在NATl的私网侧,中间间隔了一个公网的情况下,业务设备向管理服务器注册时,注册报文的报文头中携带的源IP地址为自己的私网地址10. 0. 0. 2,目的IP地址为NATl的公网地址20. 0. 0. 192 ;注册报文载荷的SIP协议部分携带的源IP地址与报文头源IP地址相同,目的IP地址与报文头目的IP地址相同。该注册报文经过NAT2时,报文头的源IP地址会被NAT2更改为该NAT2 的公网IP地址20. 0. 0. 10,目的IP地址保持不变。该注册报文经过NATl时,报文头的目的 IP地址会被NATl更改为管理服务器的私网IP地址192. 0. 0. 2,源IP地址保持不变。管理服务器在收到该注册报文后,发现报文头的源IP地址和目的IP地址相对于载荷部分的源 IP地址和目的IP地址都发生了改变,则说明业务设备和管理服务器在不同的私网,两者相隔着公网。为便于说明,本发明实施例将与管理服务器具有上述相对位置关系的业务设备称为异对象,对象级别为0。
如图fe所示,当业务设备处在NAT设备的私网侧,管理服务器处在NAT设备的公网侧的情况下,业务设备向管理服务器注册时,注册报文的报文头中携带的源IP地址为自己的私网地址10. 0. 0. 2,目的IP地址为管理服务器的公网地址20. 0. 0. 2 ;注册报文载荷的 SIP协议部分携带的源IP地址与报文头源IP地址相同,目的IP地址与报文头目的IP地址相同。经过NAT设备时,报文头的源IP地址会被NAT设备更改为该NAT的公网IP地址 20. 0. 0. 10,目的IP地址保持不变。管理服务器接收到该注册报文后,发现报文头的源IP地址与报文载荷部分的源IP地址相比发生变化(从私网地址变为公网地址),而目的IP地址不变(仍是公网地址),则说明该业务设备相对于管理服务器处于一级NAT设备的私网侧。 同理,如图恥所示,当业务设备相对于管理服务器处于多级NAT设备的私网侧时,其注册报文的地址也具有上述变化规律。为便于说明,本发明实施例将与管理服务器具有上述相对位置关系的业务设备称为内对象,对象级别为1。当业务设备和管理服务器处于同一网络,如同时处在同一公网或私网的情况下, 业务设备向管理服务器注册时,注册报文不经过NAT设备,因此报文头的IP地址不做更改。 管理服务器接收到注册报文后,发现报文头的源IP地址和目的IP地址与载荷部分携带的源IP地址和目的IP地址都没变,则说明该业务设备相对于管理服务器处于同一网络。为便于说明,本发明实施例将与管理服务器具有上述相对位置关系的业务设备称为同对象, 对象级别为2。如图6所示,当业务设备处在NAT设备的公网侧,管理服务器处在NAT的私网侧的情况下,业务设备向管理服务器注册时,注册报文的报文头携带的源IP地址为自己的公网地址20. 0. 0. 2,目的IP地址为NAT设备的公网地址20. 0. 0. 192 ;注册报文载荷的SIP 协议部分携带的源IP地址与报文头源IP地址相同,目的IP地址与报文头目的IP地址相同。经过NAT设备时,报文头的目的IP地址会被NAT设备更改为管理服务器的私网IP地址192. 0. 0. 2。管理服务器接收到该注册消息时,发现报文头的源IP地址与载荷部分携带的源IP地址相比没变(均为公网地址),而报文头的目的IP地址与载荷部分携带的目的 IP地址相比发生变化(从公网地址变为私网地址),则说明该业务设备相对于管理服务器处于外网(即公网)。为便于说明,本发明实施例将与管理服务器具有上述位置关系的业务设备称为外对象,对象级别为3。如图7所示,当管理服务器和业务设备分别位于不同NAT设备的公网侧,中间隔了一个私网的情况下,如果两个NAT设备侧的公网路由可达,则业务设备和管理服务器间可以直接用公网地址进行通信,注册报文的报文头的源IP地址和目的IP地址与载荷部分携带的源IP地址和目的IP地址相比均保持不变,因此可将这种相对位置关系归为业务设备相对于管理服务器处于同一网络的情况。为便于说明,本发明实施例将与管理服务器具有上述相对位置关系的业务设备称为同对象,对象级别为2。管理服务器在接收到客户端向管理服务器请求业务源端的业务资源的请求后,根据在该客户端和业务源端注册时确定出的该客户端和业务源端与该管理服务器的相对位置,采用相应处理模型响应该请求的流程,可如图8所示,包括步骤801,客户端向管理服务器请求业务源端的业务资源。步骤802,管理服务器指示对应的业务源端准备好相应的业务资源。步骤803,管理服务器根据业务源端与管理服务器的相对位置,以及客户端与管理服务器的相对位置,确定该客户端和业务源端中发起连接建立过程的一方,然后通知该发起方向对方发起连接建立过程(如建立TCP (Transport Control Protocol,传输控制协议)连接)。客户端和业务源端建立连接的过程中,所经过的NAT设备建立客户端与业务源端之间的地址映射关系。具体实施时,管理服务器上可预先建立关于业务设备位置信息的位置数据库,当管理服务器在接收到业务设备发送的注册信息,并确定出业务设备与管理服务器的相对位置关系后,在该数据库中记录业务设备的对象类型或/和对象级别,用以标识相对位置关系。当客户端发起业务申请时,管理服务器可通过查询该位置数据库,根据该业务所涉及的客户端与业务源端的对象类型或对象级别,来决定业务连接建立过程的发起方,然后通知该发起方向对端发起连接建立过程。步骤804,当客户端和业务源端之间建立连接后,业务源端通过该连接发送相应业务流到该客户端。其中,当业务源端发送的数据流经过NAT设备时,NAT设备根据建立的地址映射关系转发所述业务流。上述流程中,管理服务器选择业务连接建立发起方的基本原则是(1)在管理服务器根据客户端与管理服务器的相对位置以及业务源端与管理服务器的相对位置,判断客户端和业务源端分别位于公网和私网的情况下,管理服务器选择位于私网的业务设备作为业务连接建立过程的发起方。由于NAT设备通常允许私网侧无阻塞的向公网侧发起连接,而公网侧向私网侧发起连接则需要依靠其他技术,如需要NAT设备支持ALG(Application Layer (Gateway,应用层网关)功能,因此让发起连接的业务设备相对于被连接的业务设备处于NAT设备的私网侧,可以使连接穿越NAT设备,NAT设备建立业务设备之间的地址映射关系,保证后续业务流能够穿越NAT设备,正确到达业务对端。(2)在管理服务器根据客户端与管理服务器的相对位置以及业务源端与管理服务器的相对位置,判断客户端和业务源端均位于公网的情况下,由于该种情况的组网中,在网络无异常的情况下,客户端和业务源端能够互通,因此管理服务器可选择其中的任意一方作为业务连接建立过程的发起方,这样可以使NAT设备建立业务设备之间的地址映射关系,保证后续业务流能够穿越NAT设备,正确到达业务对端。优选的,管理服务器可在确认该客户端和业务源端能够互通的情况下,选择其中的任意一方作为业务连接建立过程的发起方。(3)在管理服务器根据客户端与管理服务器的相对位置以及业务源端与管理服务器的相对位置,判断客户端和业务源端均位于私网的情况下,且均位于管理服务器所在网络的同一 NAT设备的同一侧(即不包括客户端和业务源端分别位于管理服务器两侧的私网)的组网情况,由于该种情况的组网中,在网络无异常的情况下,客户端和业务源端能够互通,因此管理服务器可选择其中的任意一方作为业务连接建立过程的发起方,这样可以使NAT设备建立业务设备之间的地址映射关系,保证后续业务流能够穿越NAT设备,正确到达业务对端。优选的,管理服务器可在确认该客户端和业务源端能够互通的情况下,选择其中的任意一方作为业务连接建立过程的发起方。具体实施时,由于业务设备的对象级别可标识该业务设备与管理服务器的相对位置,因此管理服务器可根据与建立业务连接的两个业务设备的对象级别,选择业务连接建立的发起方。即,在客户端和业务源端的对象级别不同的情况下,管理服务器选择该客户端
15和该业务源端中对象级别较低的业务设备向对象级别较高的业务设备发起连接建立过程; 在客户端和业务源端的对象级别相同的情况下,如果该客户端和业务源端能够互通,则管理服务器选择该客户端和业务源端之中的任意一方向对方发起连接建立过程。具体的,当客户端和业务源端的对象级别不同时,客户端和业务源端的对象级别的组合情况可包括1对2、2对3、1对3、0对3、0对1、0对2六种情形(其中,客户端和业务源端的对象级别可以互置,比如1对2,可以表示为客户端的对象级别为1,业务源端的对象级别为2,也可以表示为客户端的对象级别为2,业务源端的对象级别为1)。针对1对2、 2对3、1对3、0对3这些组网情况,管理服务器通知低级别业务设备(数字越小,对象级别越低)向高级别业务设备发起连接请求,具体如图9至图13所示;针对0对1、0对2的组网情况,如图14至图15所示,需要转发服务器进行业务流转发,具体请见后续实施例二的描述。如图9所示,为1对2的组网情况。管理服务器在公网侧,业务设备1相对于管理服务器处于一级NAT的私网侧(包含业务设备1相对于管理服务器处于多级NAT的私网侧的情况),对象级别为1 ;业务设备2与管理服务器在同一个公网侧,对象级别为2。此种组网情况下,管理服务器通知业务设备1向业务设备2发起连接请求。如图10所示,为2对3的组网情况。管理服务器在第1级NAT私网侧,业务设备 1在与管理服务器处于同一级私网侧,对象级别为2 ;业务设备2相对于管理设备处于公网侧,对象级别为3。此种组网情况下,管理服务器通知业务设备1向业务设备2发起连接请求。如图11所示,为1对3的组网情况。管理服务器在第1级NAT私网侧,业务设备 1相对于管理服务器处于N(N > 1)级NAT设备的私网侧,对象级别为1 ;业务设备2相对于管理设备处于公网侧,对象级别为3。此种组网情况下,管理服务器通知业务设备1向业务设备2发起连接请求。如图12所示,为0对3的组网情况。管理服务器在第1级NAT私网侧,业务设备 1在与管理服务器隔着一个公网,并在另一个NAT设备的私网侧(包含多级NAT设备的情况),对象级别为0 ;业务设备2在管理服务器的另外一个公网侧,对象级别为3。此种组网情况下,管理服务器通知业务设备1向业务设备2发起连接请求。如图13所示,为另一种0对3的组网情况。管理服务器在第1级NAT私网侧,业务设备1在与管理服务器隔着一个公网,在另一个NAT设备的私网侧(包含多级NAT设备的情况),对象级别为0 ;业务设备2在业务设备1和管理服务器之间的公网侧,对象级别为 3。此种组网情况下,管理服务器通知业务设备1向业务设备2发起连接请求。如图14所示,为0对1的组网情况。管理服务器和转发服务器在第1级NAT私网侧,业务设备1与管理服务器隔着一个公网、在另一个NAT的私网侧(包含多级NAT),对象级别为0 ;业务设备2在管理服务器的另外N级私网侧(N大于1),对象级别为1。如图15所示,为0对2的组网情况。管理服务器和转发服务器在第1级NAT私网侧,业务设备1与管理服务器隔着一个公网、在另一个NAT的私网侧(包含多级NAT),对象级别为0 ;业务设备2与管理服务器在同一级私网侧,对象级别2。当客户端和业务源端的对象级别相同时,客户端和业务源端的对象级别的组合情况可包括0对0、1对1、2对2、3对3四种情形(其中,客户端和业务源端的对象级别可以互置)。其中2对2的组网情况下,可按照现有方式进行业务处理,因此以下就0对0、1对 1、3对3的组网情况分别进行说明。图16、图17和图18分别示出了 0对0的三种组网结构,图19、图20和图21分别示出了三种1对1的组网结构,图22、图23分别示出了两种3对3的组网结构。针对0对 0、1对1的组网结构,管理服务器选择连接建立的发起方业务设备的过程可如图M所示,针对3对3的组网结构,管理服务器选中连接建立的发起方业务设备的过程可如图25所示。参见图M,在客户端和业务源端为“0对0”或者“1对1”组网情况下时,管理服务器选择连接建立的发起方业务设备流程,可包括步骤M01,管理服务器接收到客户端请求业务源端的业务资源的请求后,通过查询该客户端和业务源端的对象级别,确定出该客户端和业务源端的对象级别均为0或均为 1时,判断该客户端和业务源端的注册报文的报文头源IP地址是否相同(管理服务器在接收到业务设备的注册报文后,可保存该注册报文的报文头源IP地址),如果相同,则转入步骤M02,否则转入步骤M04。该步骤中,管理服务器通过判断该客户端和业务源端的注册报文的报文头源IP 地址是否相同,可以判断出该客户端和业务源端是否处于NAT设备中的同一侧。若相同,则说明该客户端和业务源端处于NAT设备的同一侧,如图17、图18、图20或图21所示。此种情况下,若网络无异常,该客户端和业务源端之间可互通。步骤M02,管理服务器检测该客户端和业务源端之间是否互通,如果互通,则转入步骤M03,否则转入步骤M04。该步骤中,管理服务器可通过多种方式检测该客户端和业务源端之间是否能够互通。例如,可分别通知客户端设备和业务源端设备向对端设备发送ICMP (Internet Control Message Protocol,hternet控制报文协议)回送请求报文(或其它类似检测报文),客户端设备和业务源端设备在收到对方发送的ICMP回送请求报文后,向管理服务器返回回送应答报文,以表示信息可达。如果在设定长时间内(比如3秒钟),管理服务器接收到业务设备发送的回送应答报文(例如通知客户端向业务源端发送ICMP回送请求报文后从该业务源端接收到回送应答报文),则认为客户端和业务源端之间能够直接通信。步骤M03,管理服务器选择该客户端和业务源端中的任意一方作为连接建立过程的发起方业务设备。优选的,管理服务器收到第一个回送应答报文后,选择发送该回送应答报文的业务设备作为连接建立过程的发起方业务设备。步骤2404,管理服务器向发起业务请求的客户端返回失败响应。参见图25,在客户端和业务源端为“3对3”组网情况下时(如图22或图23所示),管理服务器选择连接建立的发起方业务设备流程,可包括步骤2501,管理服务器接收到客户端请求业务源端的业务资源的请求后,通过查询该客户端和业务源端的对象级别,确定出该客户端和业务源端的对象级别均为3时,管理服务器检测该客户端和业务源端之间是否互通,如果互通,则转入步骤2502,否则转入步骤 2503。该步骤中,管理服务器可采用图M所示流程中所采用的方式,检测该客户端和业务源端之间是否能够互通。步骤2502,管理服务器选择该客户端和业务源端中的任意一方作为连接建立过程的发起方业务设备。优选的,管理服务器收到第一个回送应答报文后,选择发送该回送应答报文的业务设备作为连接建立过程的发起方业务设备。步骤2503,管理服务器向发起业务请求的客户端返回失败响应。实施例二本实施例描述了应用系统组网中设置有转发服务器时的业务流传输实现方案。本发明实施例的组网中,管理服务器设置在公网侧,或者管理服务器处于私网时, 管理服务器应在第一级私网(即管理服务器和公网间只有一个NAT设备),且NAT设备上配置内部服务器特性。针对需要转发服务器进行中转转发的业务,为保证业务流在需要转发服务器进行转发时,其它业务设备(如客户端、业务源端等)能与转发服务器进行通信,应保证所述其它业务设备到转发服务器通信可达,因此将转发服务器设置在公网侧,或者转发服务器处于私网时,转发服务器应在第一级私网(即转发服务器和公网间只有一个NAT设备),且 NAT设备上配置内部服务器特性。与实施例一相同,业务设备(包括客户端、业务源端、转发服务器等)在接入应用系统时,首先要向应用系统中的管理服务器进行注册。管理服务器在注册过程中,根据注册报文确定出业务设备与管理服务器间的相对位置关系的方式以及相对位置关系的定义 (即业务设备的对象类型以及对象级别)与实施例一相同,在此不再赘述。按照实施例一中针对业务设备与管理服务器相对位置关系所定义的对象类型和对象级别,本实施例中要求转发服务器相对于管理服务器的对象级别为2或者3,或者当应用网络中存在多个转发服务器时,管理服务器需要选择对象级别为2或者3的转发服务器进行业务转发,而不选用对象级别为0或者1的转发服务器。基于以上组网情况,管理服务器在接收到客户端向管理服务器请求业务源端的业务资源的请求后响应该请求的流程,可如图26所示,包括步骤沈01,客户端向管理服务器请求业务源端的业务资源。步骤沈02,管理服务器指示对应的业务源端准备好相应的业务资源。步骤沈03,管理服务器分别通知客户端和业务源端向转发服务器发起接建立过程。客户端和转发服务器之间建立连接的过程中,以及业务源端与转发服务器建立连接的过程中,所经过的NAT设备建立相应的地址映射关系。其中,由于转发服务器设置在公网,或者设置在第一级私网,并且该第一级私网与公网间的NAT设备上配置了内部服务器特性,因此客户端和业务源端的连接请求均可穿越 NAT设备到达转发服务器,因而可以与转发服务器建立业务连接。步骤沈04,业务源端与转发服务器建立连接后,发送相应业务流到转发服务器,转发服务器与客户端建立连接后,将收到的业务流复制转发到请求的客户端。其中,当业务源端发送的数据流或者转发服务器转发的业务流经过NAT设备时,NAT设备根据建立的地址映射关系转发所述业务流。为了减少转发服务器转发业务流的负担,在客户端和业务源端能够建立连接的情况下,本发明实施例可优先在客户端和业务源端之间建立连接,通过客户端和业务源端之间的业务连接传输业务流,在客户端和业务源端无法建立连接的情况下,再通过转发服务器在客户端和业务源端之间传输业务流。其流程可如图27所示,包括
步骤2701,客户端向管理服务器请求业务源端的业务资源。步骤2702,管理服务器指示对应的业务源端准备好相应的业务资源。步骤2703,管理服务器根据客户端和业务源端与管理服务器的相对位置,判断是否能够在客户端和业务源端之间建立连接;如果判断为是,则转入步骤2704,否则转入步骤 2705。其中,管理服务器在根据客户端和业务源端与管理服务器的相对位置,确定出以下组网情况时,判断需要在客户端与转发服务器,以及业务源端与转发服务器之间分别建立业务连接,针对除以下组网情况之外的组网,管理服务器判断能够在客户端和业务源端之间建立连接。这些需要在客户端与转发服务器,以及业务源端与转发服务器之间分别建立业务连接的组网情况包括管理服务器位于一级私网,客户端和业务源端分别位于私网,且位于该一级私网与公网之间的NAT设备的两侧,其中至少有一个业务设备与管理服务器之间间隔有公网;管理服务器位于公网,客户端和业务源端之一在该公网的一个NAT设备的一级或多级私网侧,另一个位于该公网的另一 NAT设备的一级或多级私网侧。具体实施时,由于业务设备的对象级别可标识该业务设备与管理服务器的相对位置,因此管理服务器可根据客户端和业务源端的对象级别,判断是否能够在客户端和业务源端之间建立连接。具体的,当客户端和业务源端的对象级别分别为0和1时(包括客户端对象级别为0、业务源端对象级别为1,或者客户端对象级别为1、业务源端对象级别为0的情况),如图14或图15所示,管理服务器判断需要在客户端和转发服务器,以及业务源端和转发服务器之间分别建立业务连接。当客户端和业务源端的对象级别均为0(如图16、图17、图18)或均为1(如图19、 图20、图21)时,其中有些组网中,客户端和业务源端之间可以建立业务连接(如图17、图 18、图20、图21),而有些组网中,客户端和业务源端之间不能建立业务连接(如图16、图 19)。此种情况下,需要判断客户端和业务源端是否处于NAT设备的同一侧,若是,则客户端和业务源端之间可以建立业务连接(如图17、图18、图20、图21);否则,需要分别在客户端和转发服务器,以及业务源端和转发服务器之间建立业务连接(如图16、图19)。进一步的,虽然管理服务器判断出客户端和业务源端可以建立业务连接,但在某些组网情况下,有可能客户端和业务源端之间无法互通(客户端和业务源端的对象级别相同时,如图17、图18、图20、图21、图22、图23)。为了保证业务实现,针对这些存在客户端和业务源端无法互通的可能性的组网情况,管理服务器可先检测客户端和业务源端之间能否互通,在能够互通的情况下,选择其中一个设备作为连接建立发起方向对方发起连接建立过程,否则分别通知客户端和业务源端向转发服务器发起连接建立过程。步骤2704,管理服务器根据客户端和业务源端与管理服务器的相对位置,在该客户端和对应的业务源端之中选择连接建立过程的发起方,并通知该发起方向对方发起连接建立过程。连接建立过程中,所经过的NAT设备建立客户端与业务源端之间的地址映射关系。其中,管理服务器根据客户端和业务源端与管理服务器的相对位置,在该客户端和对应的业务源端之中选择连接建立过程的发起方的具体实现,可如实施例一所述,在此不再赘述。步骤2705,管理服务器分别通知客户端和业务源端向转发服务器发起连接建立过程。连接建立过程中,所经过的NAT设备建立客户端与业务源端之间的地址映射关系。步骤2706,当连接建立完成后,业务源端发送的业务流通过建立起的连接传输到客户端。其中,当业务源端发送的数据流或转发服务器转发的数据流经过NAT设备时,NAT 设备根据建立的地址映射关系转发所述业务流。图观示出了图27所示流程中,当管理服务器判断客户端和业务源端为“0对0” 或者“1对1”组网情况下时,管理服务器通知发起方业务设备向对方发起连接建立的流程, 包括步骤2801,管理服务器接收到客户端请求业务源端的业务资源的请求后,通过查询该客户端和业务源端的对象级别,确定出该客户端和业务源端的对象级别均为0或均为 1时,通过比较该客户端和业务源端的注册报文的报文头源IP地址是否相同,判断客户端和业务源端是否处于与管理服务器连接的NAT设备的同一 NAT设备侧,如果相同,则转入步骤沘02,否则转入步骤沘04。步骤观02,管理服务器检测该客户端和业务源端之间是否互通,如果互通,则转入步骤观03,否则转入步骤观04。管理服务器检测客户端和业务源端之间是否互通的方式同前述实施例所述,在此不再赘述。步骤观03,管理服务器选择该客户端和业务源端中的任意一方作为连接建立过程的发起方业务设备,并通知该发起方向对方发起连接建立过程。步骤观04,管理服务器分别通知客户端和业务源端向转发服务器发起连接建立过程。图四示出了图27所示流程中,当管理服务器判断出客户端和业务源端为“3对3” 组网情况下时(如图22或图23所示),管理服务器通知发起方业务设备向对方发起连接建立的流程,包括步骤四01,管理服务器接收到客户端请求业务源端的业务资源的请求后,通过查询该客户端和业务源端的对象级别,确定出该客户端和业务源端的对象级别均为3时,管理服务器检测该客户端和业务源端之间是否互通,如果互通,则转入步骤四02,否则转入步骤 2903。步骤四02,管理服务器选择该客户端和业务源端中的任意一方作为连接建立过程的发起方业务设备,并通知该发起方向对方发起连接建立过程。步骤四03,管理服务器分别通知客户端和业务源端向转发服务器发起连接建立过程。为简化组网,上述设置有转发服务器的各组网中,将转发服务器和管理服务器设置在网络的同一层(即位于第一级私网),在实际应用中,转发服务器也可位于公网(比如图14或图15所示组网中,转发服务器位于NATl和NAT2之间的公网),此种情况下,管理服务器选择业务连接发起方仍遵循本发明实施例的上述原则。基于与上述实施例相同的技术构思,本发明实施例还提供了一种可应用于上述流程的管理服务器。该管理服务器可适用于组网架构中没有转发服务器或者不使用转发服务器的场景。如图30A所示,该管理服务器可包括
注册处理模块31,用于在接收到业务设备的注册报文后对所述业务设备进行注册处理,并根据所述注册报文的报文头和载荷部分携带的地址信息,确定所述业务设备与所述管理服务器的相对位置;存储模块32,用于存储注册处理模块31确定出的各业务设备与所述管理服务器的相对位置信息;业务处理模块33,用于当接收到客户端请求业务源端的业务资源的报文后,根据存储模块32存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,通知所述客户端和业务源端中的一方向对方发起连接建立过程;其中,在所述连接建立过程中,所述客户端和所述业务源端之间的NAT设备建立相应地址映射关系;以及,通知所述业务源端发送所述客户端所请求的业务流;其中,当所述业务流经过NAT设备时,所述NAT设备根据建立的地址映射关系转发所述业务流。进一步的,业务处理模块33可包括选择单元331,当接收到客户端请求业务源端的业务资源的报文后,根据存储模块 32存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,在判断其中有一方位于私网,一方位于公网时,选择其中位于私网的一方作为连接建立过程的发起方;或者,根据存储模块32存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,在判断两方均位于公网时,选择其中任何一方作为连接建立过程的发起方;或者,根据存储模块32存储的所述客户端和与所述管理服务器的相对位置以及所述业务源端与所述管理服务器的相对位置,在判断两方均位于私网,且两方均位于所述管理服务器所在网络的同一 NAT设备的同一侧时,选择其中任何一方作为连接建立过程的发起方;第一通知单元332,用于通知选择单元331选择出的连接建立过程的发起方,向对方发起连接建立过程;第二通知单元333,用于通知所述业务源端发送所述客户端所请求的业务流。进一步的,注册处理模块33还可在接收到业务设备的注册报文后,保存该注册报文的源IP地址。相应的,选择单元331可在判断所述客户端和所述业务源端均位于私网后, 通过比较所述客户端的注册报文的源IP地址和所述业务源端的注册报文的源IP地址是否相同,判断两方是否均位于所述管理服务器所在网络的同一 NAT设备的同一侧。进一步的,如图30B所示,业务处理模块33还可包括检测单元334,用于在第一通知单元332通知其中任何一方向对方发起连接建立过程之前,检测所述客户端和所述业务源端之间是否能够互通。相应的,第一通知单元332在检测单元334检测到所述客户端和所述业务源端能够互通的情况下,通知其中任何一方向对方发起连接建立过程。具体的,检测单元334可分别通知所述客户端和所述业务源端向对方发送报文; 若在设定时间内接收到所述报文的接收方返回的响应报文,则判断所述客户端和所述业务源端之间能够互通。具体的,注册处理模块33具体用于若发现注册报文的报文头源IP地址与载荷部分中的源IP地址不同,报文头目的 IP地址与载荷部分的IP地址不同,则判断所述业务设备与所述管理服务器在不同的私网, 且两者间相隔有公网;
若发现注册报文的报文头源IP地址与载荷部分中的源IP地址不同,报文头目的 IP地址与载荷部分的IP地址相同,则判断所述业务设备相对于所述管理服务器处于一级或多级NAT设备的私网侧;若发现注册报文的报文头源IP地址与载荷部分中的源IP地址相同,报文头目的 IP地址与载荷部分的目的IP地址相同,则判断所述业务设备相对于所述管理服务器处于同一网络;若发现注册报文的报文头源IP地址与载荷部分中的源IP地址相同,报文头目的 IP地址与载荷部分中的目的IP地址不同,则判断所述业务设备相对于所述管理服务器处于公网。基于与上述实施例相同的技术构思,本发明实施例还提供了一种可应用于上述流程的管理服务器。该管理服务器可适用于组网架构中没有转发服务器或者不使用转发服务器的场景。如图31A所示,该管理服务器可包括注册处理模块41,用于在接收到业务设备的注册报文后对所述业务设备进行注册处理,并根据所述注册报文的报文头和载荷部分携带的地址信息,确定所述业务设备与所述管理服务器的相对位置;存储模块42,用于存储注册处理模块41确定出的各业务设备与所述管理服务器的相对位置信息;业务处理模块43,用于当接收到客户端请求业务源端的业务资源的报文后,根据存储模块42存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,判断是否需要转发服务器转发业务流;如果判断为是,则通知所述客户端和所述业务源端分别向所述转发服务器发起连接建立过程;否则,根据存储模块42存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,通知所述客户端和业务源端中的一方向对方发起连接建立过程;其中,在所述连接建立过程中,所述客户端和所述业务源端之间的NAT设备建立相应地址映射关系;以及,通知所述业务源端发送所述客户端所请求的业务流;其中,当所述业务流经过NAT设备时,所述NAT设备根据建立的地址映射关系转发所述业务流。具体的,业务处理模块43可包括判断单元431、选择单元432、第一通知单元433 和第二通知单元434,其中判断单元431,用于当接收到客户端请求业务源端的业务资源的报文后,根据存储模块42存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,判断是否需要转发服务器转发业务流,并在判断为是时,指示第一通知单元433通知所述客户端和所述业务源端向所述转发服务器发起连接建立过程,在判断为否时,指示选择单元432选择连接建立过程的发起方;选择单元432,用于根据存储模块42存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,从所述客户端和所述业务源端中选择连接建立过程的发起方;第一通知单元433,用于根据判断单元431的指示通知所述客户端和所述业务源端向所述转发服务器发起连接建立过程,通知选择单元432选择出的连接建立过程发起方向对方发起连接建立过程;
第二通知单434元,用于通知所述业务源端发送所述客户端所请求的业务流;其中,判断单元431在确定以下组网之一时判断无需转发服务器转发业务流所述客户端和所述业务源端中有一方位于私网,一方位于公网;所述客户端和所述业务源端均位于公网; 所述客户端和所述业务源端均位于私网,且均位于所述管理服务器所在网络的同一 NAT设备的同一侧;判断单元431在确定以下组网时判断需要转发服务器转发业务流所述客户端和所述业务源端均位于私网,且位于所述管理服务器所在网络的不同 NAT设备的私网侧。具体的,选择单元432在确定所述客户端和所述业务源端中有一方位于私网,一方位于公网时,选择其中位于私网的一方作为连接建立过程的发起方;或者,在确定所述客户端和所述业务源端均位于公网时,选择其中任何一方作为连接建立过程的发起方;或者, 在确定所述客户端和所述业务源端均位于私网,且均位于所述管理服务器所在网络的同一 NAT设备的同一侧时,选择其中任何一方作为连接建立过程的发起方。进一步的,如图3IB所示,业务处理模块43还可包括检测单元435,用于在选择单元432确定所述客户端和所述业务源端均位于公网时,或者,所述客户端和所述业务源端均位于私网,且均位于所述管理服务器所在网络的同一 NAT设备的同一侧时,检测所述客户端和所述业务源端之间是否能够互通。相应的,第一通知单元433在检测单元435检测到能够互通的情况下,通知其中任何一方向对方发起连接建立过程;在检测单元435检测到所述客户端和所述业务源端之间不能互通时,分别通知所述客户端和所述业务源端向所述转发服务器发起连接建立过程。具体的,检测单元435分别通知所述客户端和所述业务源端向对方发送报文;若在设定时间内接收到所述报文的接收方返回的响应报文,则判断所述客户端和所述业务源端之间能够互通。进一步的,注册处理模块41还在接收到业务设备的注册报文时,保存该注册报文的源IP地址。相应的,判断单元431在判断所述客户端和所述业务源端均位于私网后,通过比较所述客户端的注册报文的源IP地址和所述业务源端的注册报文的源IP地址是否相同,判断两方是否均位于所述管理服务器所在网络的同一 NAT设备的同一侧。具体的,注册处理模块41具体用于若发现注册报文的报文头源IP地址与载荷部分中的源IP地址不同,报文头目的 IP地址与载荷部分的IP地址不同,则判断所述业务设备与所述管理服务器在不同的私网, 且两者间相隔有公网;若发现注册报文的报文头源IP地址与载荷部分中的源IP地址不同,报文头目的 IP地址与载荷部分的IP地址相同,则判断所述业务设备相对于所述管理服务器处于一级或多级NAT设备的私网侧;若发现注册报文的报文头源IP地址与载荷部分中的源IP地址相同,报文头目的 IP地址与载荷部分的目的IP地址相同,则判断所述业务设备相对于所述管理服务器处于同一网络;若发现注册报文的报文头源IP地址与载荷部分中的源IP地址相同,报文头目的IP地址与载荷部分中的目的IP地址不同,则判断所述业务设备相对于所述管理服务器处于公网。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
权利要求
1.一种穿越NAT的业务流传输方法,应用于包含有业务设备且业务设备之间设置有 NAT设备的网络系统,所述业务设备包括管理服务器、客户端和业务源端,其特征在于,该方法包括管理服务器接收到业务设备的注册报文后对所述业务设备进行注册处理,并根据所述注册报文的报文头和载荷部分携带的地址信息,确定所述业务设备与所述管理服务器的相对位置;当所述管理服务器接收到客户端请求业务源端的业务资源的报文后,根据所述客户端与所述管理服务器的相对位置以及所述业务源端与所述管理服务器的相对位置,通知所述客户端和业务源端中的一方向对方发起连接建立过程;其中,在所述连接建立过程中,所述客户端和所述业务源端之间的NAT设备建立相应地址映射关系;所述管理服务器通知所述业务源端发送所述客户端所请求的业务流;其中,当所述业务流经过NAT设备时,所述NAT设备根据建立的地址映射关系转发所述业务流。
2.如权利要求1所述的方法,其特征在于,管理服务器根据所述客户端和与所述管理服务器的相对位置以及所述业务源端与所述管理服务器的相对位置,通知所述客户端和业务源端中的一方向对方发起连接建立过程,包括管理服务器根据所述客户端与所述管理服务器的相对位置以及所述业务源端与所述管理服务器的相对位置,在判断其中有一方位于私网,一方位于公网时,通知其中位于私网的一方向位于公网的一方发起连接建立过程;或者管理服务器根据所述客户端与所述管理服务器的相对位置以及所述业务源端与所述管理服务器的相对位置,在判断两方均位于公网时,通知其中任何一方向对方发起连接建立过程;或者管理服务器根据所述客户端和与所述管理服务器的相对位置以及所述业务源端与所述管理服务器的相对位置,在判断两方均位于私网,且两方均位于所述管理服务器所在网络的同一 NAT设备的同一侧时,通知其中任何一方向对方发起连接建立过程。
3.如权利要求2所述的方法,其特征在于,所述管理服务器在接收到业务设备的注册报文后,还保存该注册报文的源IP地址;所述管理服务器在判断所述客户端和所述业务源端均位于私网后,通过比较所述客户端的注册报文的源IP地址和所述业务源端的注册报文的源IP地址是否相同,判断两方是否均位于所述管理服务器所在网络的同一 NAT设备的同一侧。
4.如权利要求2所述的方法,其特征在于,所述管理服务器通知其中任何一方向对方发起连接建立过程之前还包括所述管理服务器检测所述客户端和所述业务源端之间是否能够互通;所述管理服务器通知其中任何一方向对方发起连接建立过程,具体为所述管理服务器在检测到所述客户端和所述业务源端能够互通的情况下,通知其中任何一方向对方发起连接建立过程。
5.如权利要求4所述的方法,其特征在于,所述管理服务器检测所述客户端和所述业务源端之间是否能够互通,包括所述管理服务器分别通知所述客户端和所述业务源端向对方发送报文;若所述管理服务器在设定时间内接收到所述报文的接收方返回的响应报文,则判断所述客户端和所述业务源端之间能够互通。
6.如权利要求1所述的方法,其特征在于,管理服务器根据注册报文的报文头和载荷部分携带的地址信息,确定业务设备与管理服务器的相对位置,包括以下之一若所述管理服务器发现注册报文的报文头源IP地址与载荷部分中的源IP地址不同, 报文头目的IP地址与载荷部分的IP地址不同,则判断所述业务设备与所述管理服务器在不同的私网,且两者间相隔有公网;若所述管理服务器发现注册报文的报文头源IP地址与载荷部分中的源IP地址不同, 报文头目的IP地址与载荷部分的IP地址相同,则判断所述业务设备相对于所述管理服务器处于一级或多级NAT设备的私网侧;若所述管理服务器发现注册报文的报文头源IP地址与载荷部分中的源IP地址相同, 报文头目的IP地址与载荷部分的目的IP地址相同,则判断所述业务设备相对于所述管理服务器处于同一网络;若所述管理服务器发现注册报文的报文头源IP地址与载荷部分中的源IP地址相同, 报文头目的IP地址与载荷部分中的目的IP地址不同,则判断所述业务设备相对于所述管理服务器处于公网。
7.如权利要求1-6之一所述的方法,其特征在于,所述管理服务器位于公网;或者所述管理服务器位于私网,且与公网间只有一个NAT设备,所述NAT设备上配置有内部服务器特性,以使所述管理服务器与所述客户端和所述业务源端互通。
8.一种穿越NAT的业务流传输方法,应用于包含有业务设备且业务设备之间设置有 NAT设备的网络系统,所述业务设备包括管理服务器、转发服务器、客户端和业务源端,其特征在于,该方法包括管理服务器接收到业务设备的注册报文后对所述业务设备进行注册处理,根据所述注册报文的报文头和载荷部分携带的地址信息,确定所述业务设备与所述管理服务器的相对位置;当所述管理服务器接收到客户端请求业务源端的业务资源的报文后,根据所述客户端与所述管理服务器的相对位置以及所述业务源端与所述管理服务器的相对位置,判断是否需要转发服务器转发业务流;如果判断为是,则通知所述客户端和所述业务源端分别向所述转发服务器发起连接建立过程;否则,根据所述客户端与所述管理服务器的相对位置以及所述业务源端与所述管理服务器的相对位置,通知所述客户端和业务源端中的一方向对方发起连接建立过程;其中,在所述连接建立过程中,所述客户端和所述业务源端之间的 NAT设备建立相应地址映射关系;所述管理服务器通知所述业务源端发送所述客户端所请求的业务流;其中,当所述业务流经过NAT设备时,所述NAT设备根据建立的地址映射关系转发所述业务流。
9.如权利要求8所述的方法,其特征在于,所述管理服务器根据所述客户端与所述管理服务器的相对位置以及所述业务源端与所述管理服务器的相对位置,判断是否需要转发服务器转发业务流,包括所述管理服务器根据所述客户端与所述管理服务器的相对位置以及所述业务源端与所述管理服务器的相对位置,确定以下组网之一时判断无需转发服务器转发业务流所述客户端和所述业务源端中有一方位于私网,一方位于公网;所述客户端和所述业务源端均位于公网;所述客户端和所述业务源端均位于私网,且均位于所述管理服务器所在网络的同一 NAT设备的同一侧;所述管理服务器根据所述客户端与所述管理服务器的相对位置以及所述业务源端与所述管理服务器的相对位置,确定以下组网时判断需要转发服务器转发业务流所述客户端和所述业务源端均位于私网,且位于所述管理服务器所在网络的不同NAT 设备的私网侧。
10.如权利要求9所述的方法,其特征在于,所述客户端和所述业务源端中有一方位于私网,一方位于公网时,所述管理服务器通知其中位于私网的一方向位于公网的一方发起连接建立过程;或者所述客户端和所述业务源端均位于公网时,所述管理服务器通知其中任何一方向对方发起连接建立过程;或者所述客户端和所述业务源端均位于私网,且均位于所述管理服务器所在网络的同一 NAT设备的同一侧时,所述管理服务器通知其中任何一方向对方发起连接建立过程。
11.如权利要求10所述的方法,其特征在于,所述客户端和所述业务源端均位于公网时,或者,所述客户端和所述业务源端均位于私网,且均位于所述管理服务器所在网络的同一 NAT设备的同一侧时,所述管理服务器检测所述客户端和所述业务源端之间是否能够互通,并在检测到能够互通的情况下,通知其中任何一方向对方发起连接建立过程;该方法还包括所述管理服务器检测到所述客户端和所述业务源端之间不能互通时,分别通知所述客户端和所述业务源端向所述转发服务器发起连接建立过程。
12.如权利要求11所述的方法,其特征在于,所述管理服务器检测所述客户端和所述业务源端之间是否能够互通,包括所述管理服务器分别通知所述客户端和所述业务源端向对方发送报文;若所述管理服务器在设定时间内接收到所述报文的接收方返回的响应报文,则判断所述客户端和所述业务源端之间能够互通。
13.如权利要求9所述的方法,其特征在于,所述管理服务器在接收到业务设备的注册报文时,还保存该注册报文的源IP地址;所述管理服务器在判断所述客户端和所述业务源端均位于私网后,通过比较所述客户端的注册报文的源IP地址和所述业务源端的注册报文的源IP地址是否相同,判断两方是否均位于所述管理服务器所在网络的同一 NAT设备的同一侧。
14.如权利要求8所述的方法,其特征在于,管理服务器根据注册报文的报文头和载荷部分携带的地址信息,确定业务设备与管理服务器的相对位置,包括以下之一若所述管理服务器发现注册报文的报文头源IP地址与载荷部分中的源IP地址不同, 报文头目的IP地址与载荷部分的IP地址不同,则判断所述业务设备与所述管理服务器在不同的私网,且两者间相隔有公网;若所述管理服务器发现注册报文的报文头源IP地址与载荷部分中的源IP地址不同, 报文头目的IP地址与载荷部分的IP地址相同,则判断所述业务设备相对于所述管理服务器处于一级或多级NAT设备的私网侧;若所述管理服务器发现注册报文的报文头源IP地址与载荷部分中的源IP地址相同, 报文头目的IP地址与载荷部分的目的IP地址相同,则判断所述业务设备相对于所述管理服务器处于同一网络;若所述管理服务器发现注册报文的报文头源IP地址与载荷部分中的源IP地址相同, 报文头目的IP地址与载荷部分中的目的IP地址不同,则判断所述业务设备相对于所述管理服务器处于公网。
15.如权利要求8-14之一所述的方法,其特征在于,所述管理服务器位于公网;或者, 所述管理服务器位于私网,且与公网间只有一个NAT设备,所述NAT设备上配置有内部服务器特性,以使所述管理服务器与所述客户端和所述业务源端互通;所述转发服务器位于公网;或者,所述转发服务器位于私网,且与公网间只有一个NAT 设备,所述NAT设备上配置有内部服务器特性,以使所述转发服务器与所述客户端和所述业务源端互通。
16.一种管理服务器,应用于包含有业务设备且业务设备之间设置有NAT设备的网络系统,所述业务设备包括管理服务器、客户端和业务源端,其特征在于,所述管理服务器包括注册处理模块,用于在接收到业务设备的注册报文后对所述业务设备进行注册处理, 并根据所述注册报文的报文头和载荷部分携带的地址信息,确定所述业务设备与所述管理服务器的相对位置;存储模块,用于存储所述注册处理模块确定出的各业务设备与所述管理服务器的相对位置信息;业务处理模块,用于当接收到客户端请求业务源端的业务资源的报文后,根据所述存储模块存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,通知所述客户端和业务源端中的一方向对方发起连接建立过程;其中,在所述连接建立过程中,所述客户端和所述业务源端之间的NAT设备建立相应地址映射关系;以及,通知所述业务源端发送所述客户端所请求的业务流;其中,当所述业务流经过NAT设备时,所述NAT设备根据建立的地址映射关系转发所述业务流。
17.如权利要求16所述的管理服务器,其特征在于,所述业务处理模块,包括选择单元,当接收到客户端请求业务源端的业务资源的报文后,根据所述存储模块存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,在判断其中有一方位于私网,一方位于公网时,选择其中位于私网的一方作为连接建立过程的发起方;或者,根据所述存储模块存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,在判断两方均位于公网时,选择其中任何一方作为连接建立过程的发起方;或者,根据所述存储模块存储的所述客户端和与所述管理服务器的相对位置以及所述业务源端与所述管理服务器的相对位置,在判断两方均位于私网,且两方均位于所述管理服务器所在网络的同一 NAT设备的同一侧时,选择其中任何一方作为连接建立过程的发起方;第一通知单元,用于通知所述选择单元选择出的连接建立过程的发起方,向对方发起连接建立过程;第二通知单元,用于通知所述业务源端发送所述客户端所请求的业务流。
18.如权利要求17所述的管理服务器,其特征在于,所述注册处理模块还用于,在接收到业务设备的注册报文后,保存该注册报文的源IP地址;所述选择单元具体用于,在判断所述客户端和所述业务源端均位于私网后,通过比较所述客户端的注册报文的源IP地址和所述业务源端的注册报文的源IP地址是否相同,判断两方是否均位于所述管理服务器所在网络的同一 NAT设备的同一侧。
19.如权利要求17所述的管理服务器,其特征在于,所述业务处理模块还包括检测单元,用于在所述第一通知单元通知其中任何一方向对方发起连接建立过程之前,检测所述客户端和所述业务源端之间是否能够互通;所述第一通知单元具体用于,在所述检测单元检测到所述客户端和所述业务源端能够互通的情况下,通知其中任何一方向对方发起连接建立过程。
20.如权利要求19所述的管理服务器,其特征在于,所述检测单元具体用于,分别通知所述客户端和所述业务源端向对方发送报文;若在设定时间内接收到所述报文的接收方返回的响应报文,则判断所述客户端和所述业务源端之间能够互通。
21.如权利要求16所述的方法,其特征在于,所述注册处理模块具体用于若发现注册报文的报文头源IP地址与载荷部分中的源IP地址不同,报文头目的IP地址与载荷部分的IP地址不同,则判断所述业务设备与所述管理服务器在不同的私网,且两者间相隔有公网;若发现注册报文的报文头源IP地址与载荷部分中的源IP地址不同,报文头目的IP地址与载荷部分的IP地址相同,则判断所述业务设备相对于所述管理服务器处于一级或多级NAT设备的私网侧;若发现注册报文的报文头源IP地址与载荷部分中的源IP地址相同,报文头目的IP地址与载荷部分的目的IP地址相同,则判断所述业务设备相对于所述管理服务器处于同一网络;若发现注册报文的报文头源IP地址与载荷部分中的源IP地址相同,报文头目的IP地址与载荷部分中的目的IP地址不同,则判断所述业务设备相对于所述管理服务器处于公网。
22.—种管理服务器,应用于包含有业务设备且业务设备之间设置有NAT设备的网络系统,所述业务设备包括管理服务器、转发服务器、客户端和业务源端,其特征在于,所述管理服务器包括注册处理模块,用于在接收到业务设备的注册报文后对所述业务设备进行注册处理, 并根据所述注册报文的报文头和载荷部分携带的地址信息,确定所述业务设备与所述管理服务器的相对位置;存储模块,用于存储所述注册处理模块确定出的各业务设备与所述管理服务器的相对位置信息;业务处理模块,用于当接收到客户端请求业务源端的业务资源的报文后,根据所述存储模块存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,判断是否需要转发服务器转发业务流;如果判断为是,则通知所述客户端和所述业务源端分别向所述转发服务器发起连接建立过程;否则,根据所述存储模块存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,通知所述客户端和业务源端中的一方向对方发起连接建立过程; 其中,在所述连接建立过程中,所述客户端和所述业务源端之间的NAT设备建立相应地址映射关系;以及,通知所述业务源端发送所述客户端所请求的业务流;其中,当所述业务流经过NAT设备时,所述NAT设备根据建立的地址映射关系转发所述业务流。
23.如权利要求22所述的管理服务器,其特征在于,所述业务处理模块,包括判断单元、选择单元、第一通知单元和第二通知单元,其中判断单元,用于当接收到客户端请求业务源端的业务资源的报文后,根据所述存储模块存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,判断是否需要转发服务器转发业务流,并在判断为是时,指示所述第一通知单元通知所述客户端和所述业务源端向所述转发服务器发起连接建立过程,在判断为否时,指示所述选择单元选择连接建立过程的发起方;选择单元,用于根据所述存储模块存储的所述客户端与所述管理服务器的相对位置信息以及所述业务源端与所述管理服务器的相对位置信息,从所述客户端和所述业务源端中选择连接建立过程的发起方;第一通知单元,用于根据所述判断单元的指示通知所述客户端和所述业务源端向所述转发服务器发起连接建立过程,通知选择单元选择出的连接建立过程发起方向对方发起连接建立过程;第二通知单元,用于通知所述业务源端发送所述客户端所请求的业务流; 其中,所述判断单元在确定以下组网之一时判断无需转发服务器转发业务流 所述客户端和所述业务源端中有一方位于私网,一方位于公网; 所述客户端和所述业务源端均位于公网;所述客户端和所述业务源端均位于私网,且均位于所述管理服务器所在网络的同一 NAT设备的同一侧;所述判断单元在确定以下组网时判断需要转发服务器转发业务流 所述客户端和所述业务源端均位于私网,且位于所述管理服务器所在网络的不同NAT 设备的私网侧。
24.如权利要求23所述的管理服务器,其特征在于,所述选择单元具体用于,在确定所述客户端和所述业务源端中有一方位于私网,一方位于公网时,选择其中位于私网的一方作为连接建立过程的发起方;或者,在确定所述客户端和所述业务源端均位于公网时,选择其中任何一方作为连接建立过程的发起方;或者,在确定所述客户端和所述业务源端均位于私网,且均位于所述管理服务器所在网络的同一 NAT设备的同一侧时,选择其中任何一方作为连接建立过程的发起方。
25.如权利要求M所述的管理服务器,其特征在于,所述业务处理模块,还包括 检测单元,用于在所述选择单元确定所述客户端和所述业务源端均位于公网时,或者,所述客户端和所述业务源端均位于私网,且均位于所述管理服务器所在网络的同一 NAT设备的同一侧时,检测所述客户端和所述业务源端之间是否能够互通;所述第一通知单元具体用于,在所述检测单元检测到能够互通的情况下,通知其中任何一方向对方发起连接建立过程;在所述检测单元检测到所述客户端和所述业务源端之间不能互通时,分别通知所述客户端和所述业务源端向所述转发服务器发起连接建立过程。
26.如权利要求25所述的管理服务器,其特征在于,所述检测单元具体用于,分别通知所述客户端和所述业务源端向对方发送报文;若在设定时间内接收到所述报文的接收方返回的响应报文,则判断所述客户端和所述业务源端之间能够互通。
27.如权利要求23所述的管理服务器,其特征在于,所述注册处理模块还用于,在接收到业务设备的注册报文时,保存该注册报文的源IP地址;所述判断单元具体用于,在判断所述客户端和所述业务源端均位于私网后,通过比较所述客户端的注册报文的源IP地址和所述业务源端的注册报文的源IP地址是否相同,判断两方是否均位于所述管理服务器所在网络的同一 NAT设备的同一侧。
28.如权利要求22所述的管理服务器,其特征在于,所述注册处理模块具体用于若发现注册报文的报文头源IP地址与载荷部分中的源IP地址不同,报文头目的IP地址与载荷部分的IP地址不同,则判断所述业务设备与所述管理服务器在不同的私网,且两者间相隔有公网;若发现注册报文的报文头源IP地址与载荷部分中的源IP地址不同,报文头目的IP地址与载荷部分的IP地址相同,则判断所述业务设备相对于所述管理服务器处于一级或多级NAT设备的私网侧;若发现注册报文的报文头源IP地址与载荷部分中的源IP地址相同,报文头目的IP地址与载荷部分的目的IP地址相同,则判断所述业务设备相对于所述管理服务器处于同一网络;若发现注册报文的报文头源IP地址与载荷部分中的源IP地址相同,报文头目的IP地址与载荷部分中的目的IP地址不同,则判断所述业务设备相对于所述管理服务器处于公网。
全文摘要
本发明公开了一种穿越NAT设备的业务流传输方法及装置。本发明针对应用系统的各种组网方式建立简单的处理模型,并通过管理服务器分析业务设备(包括业务源端、客户端等设备)发送给管理服务器的注册信息来确定业务设备相对于管理服务器的组网方式,从而根据组网方式的不同采用相应的处理模型进行信令通信和业务流转发,实现管理服务器通过简化的方式,统一管理应用设备间穿越NAT设备的情况,最终实现应用系统业务穿越各类NAT设备的方案。
文档编号H04L29/08GK102497446SQ20111044113
公开日2012年6月13日 申请日期2011年12月26日 优先权日2011年12月26日
发明者周迪, 林鹏程 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1