私网与网外客户端之间呼叫的nat处理方法、设备和系统的制作方法

文档序号:7846918阅读:252来源:国知局
专利名称:私网与网外客户端之间呼叫的nat处理方法、设备和系统的制作方法
技术领域
本发明属于通讯技术领域,具体涉及一种私网客户端与网外客户端之间呼叫的 NAT处理方法、NAT设备和呼叫系统。
背景技术
随着语音和视频业务的蓬勃发展,互联网协议电话(Voice over Internet Protocol, VoIP)可能建立在私网与公网,或私网与私网之间。VoIP的通路上经过了不同类型的网络,中间可能有一个或多个网络地址转换器(Network Address Translation, NAT) 和防火墙(Fire Wall,FW)。考虑到安全性,通常NAT和FW是同时存在的,这些NAT和FW 对大部分的端口是禁止通信或单向放行的,而VoIP数据流是多通路数据流,VoIP建立的通路的端口往往采用动态端口,所以在有NAT的数据流通路上,FW事先无法预知VoIP需要使用的端口,除非将大部分的端口都开放,这样便失去了防火墙的意义。因此,会话初始协议 (Session Initiation Protocol, SIP)中的 NAT 和 FW 穿越问题已成为了基于 SIP 的 VoIP 技术在布有NAT和FW的城域网和企业网推广应用中的最大障碍。通常的SIP网络系统中,代理服务器(Proxy Server)大多位于公网上,客户端可以向公网上的服务器进行注册,同时客户端也只能通过公网上的代理服务器与被叫客户端通话。通常解决SIP穿越NAT和FW的技术主要分两类,对于对称的NAT采用隧道穿透技术,对于非对称的NAT采用NAT的用户数据报协议(User Datagram Protocol,UDP)简单穿越(Simple Traversal of UDP over NATs, STUN)技术。但是上述两种方法只能用于代理服务器在公网的情况,不能用于代理服务器在NAT和FW的私网一侧的情况。

发明内容
本发明实施例提供了一种私网客户端与网外客户端之间呼叫的NAT处理方法、 NAT设备和呼叫系统,能够实现代理服务器与私网客户端在同一私网时穿越NAT和FW。为达到上述目的,本发明的实施例采用如下技术方案一种私网客户端与网外客户端呼叫的网络地址转换设备处理方法,包括为代理服务器发出的SIP报文的SDP部分中所述私网客户端的私网地址和端口, 分配公网地址和端口,并保存该私网地址和端口,以及公网地址和端口,之间的映射关系, 其中,所述SIP报文为发往所述网外客户端的SIP报文;对该SIP报文进行网络地址转换应用层网关处理,并根据所述映射关系,将该SIP 报文的SDP部分的私网地址和端口转换为公网地址和端口。一种私网客户端与网外客户端之间呼叫的网络地址转换设备,包括处理器和存储器;所述处理器用于,为代理服务器发出的SIP报文的SDP部分中所述私网客户端的私网地址和端口,分配公网地址和端口,并指示所述存储器保存该私网地址和端口,以及公网地址和端口,之间的映射关系,其中,所述SIP报文为发往所述网外客户端的SIP报文;以及对该SIP报文进行网络地址转换应用层网关处理,并根据所述映射关系,将该SIP报文的SDP部分的私网地址和端口转换为公网地址和端口 ;所述存储器用于,保存所述映射关系。一种私网客户端与网外客户端之间的呼叫系统,包括上述网络地址转换设备和代理服务器;所述代理服务器,用于在收到私网客户端的SIP报文后,经过所述网络地址转换设备向所述网外客户端发出SIP报文。与现有技术相比,本发明所提供上述技术方案中的任一技术方案具有如下优点 NAT设备为代理服务器发出的SIP报文的会话描述协议(Session Description Protocol, SDP)部分中私网客户端的私网地址和端口分配一个空闲的公网地址和端口,并保存其映射关系,使后续媒体流能根据该映射关系穿越NAT和FW,从而解决了代理服务器与私网客户端在同一私网时,无法穿越NAT和FW的技术问题。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明的实施例所提供的私网客户端呼叫网外客户端的NAT设备处理方法流程示意图;图2为本发明的实施例所提供的私网客户端与网外客户端呼叫的NAT设备处理方法流程示意图;图3为本发明的实施例所提供的私网客户端呼叫网外客户端的数据流程示意图;图4为本发明的实施例所提供的网外客户端呼叫私网客户端的NAT设备处理方法流程示意图;图5为本发明的实施例所提供的网外客户端呼叫私网客户端的数据流程示意图;图6为本发明的实施例所提供的私网客户端与网外客户端的呼叫系统示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例1 本发明实施例提供的私网客户端与网外客户端呼叫的网络地址转换设备处理方法,实现了代理服务器与私网客户端在同一私网时穿越NAT和FW,如图1所示,包括以下步骤SlOl =NAT设备为代理服务器发出的SIP报文的SDP部分中私网客户端的私网地址和端口,分配公网地址和端口,并保存该私网地址和端口,以及公网地址和端口,之间的映射关系。其中,该SIP报文是代理服务器在收到私网客户端的SIP报文后,发出的SIP报文。该SIP报文可以是呼叫请求报文也可以是响应报文。该SIP报文的源IP地址为代理服务器的地址,SDP部分中的地址和端口为私网客户端的私网地址和端口。该SIP报文为发往网外客户端的SIP报文。具体的,由于该SIP报文的源IP地址和SDP部分中的地址不同,NAT设备不能按照通常的应用层网关(Application Level Gateway, ALG)方式对该SIP报文SDP部分做NAT ALG。所以NAT设备获取SIP报文的SDP部分中私网客户端的私网地址和端口,为私网客户端分配一个空闲的公网地址和端口,并保存该私网客户端的私网地址和端口,以及为该私网客户端分配的公网地址和端口,之间的映射关系。后续在私网客户端与网外客户端之间传送媒体流时,NAT设备也根据该映射关系对上述媒体流做NAT处理。S102 对该SIP报文进行NAT ALG处理,并根据上述私网地址和端口,以及公网地址和端口,之间的映射关系,将该SIP报文的SDP部分的私网地址和端口转换为公网地址和端□。具体的,NAT设备对代理服务器发出的SIP报文做NAT。将该SIP报文的SDP部分中私网客户端的私网地址和端口按照上述映射关系转换为公网地址和端口。NAT设备还可以对SIP报文中的from、to等字段进行ALG处理。NAT设备为代理服务器发出的SIP报文的SDP部分中私网客户端的私网地址和端口分配一个空闲的公网地址和端口,并保存其映射关系,使后续媒体流能根据该映射关系穿越NAT和FW,从而解决了代理服务器与私网客户端在同一私网时,无法穿越NAT和FW的技术问题。实施例2 本发明实施例与是对实施例1的一种具体应用场景的具体说明,如图2和图3所示,当私网客户端呼叫网外客户端时,SIP报文为呼叫请求报文,NAT设备处理方法,包括以下步骤通常在发起呼叫之前,私网客户端,例如客户端A,和网外客户端,例如客户端B, 要各自先向代理服务器进行注册。其中,网外客户端可以是一个公网客户端,也可以是另一 NAT设备之后的私网客户端。私网客户端发出的注册报文的数据部分中携带有私网客户端在之后发起呼叫时的地址和端口,所以代理服务器可以从注册报文中获取该地址和端口。网外客户端发出的注册报文的数据部分中携带有网外客户端在之后发起呼叫时的地址和端口,所以代理服务器可以从注册报文中获取该地址和端口。S201 =NAT设备为代理服务器发出的呼叫请求报文,例如hvite报文,的SDP部分中私网客户端的私网地址和端口,分配公网地址和端口,并保存该私网地址和端口,以及公网地址和端口,之间的映射关系。其中,该^wite报文是代理服务器在收到私网客户端的 ^wite报文后,发出的^wite报文,该^wite报文的源IP地址为代理服务器的地址,SDP 部分中的地址和端口为私网客户端的私网地址和端口。具体的,由于该hvite报文的源IP地址和SDP部分中的地址不同,NAT设备不能按照通常的ALG方式对该hvite报文SDP部分做NAT ALG。所以NAT设备获取hvite报文的SDP部分中私网客户端的私网地址和端口,为私网客户端分配一个空闲的公网地址和端口,并保存该私网客户端的私网地址和端口,以及为该私网客户端分配的公网地址和端口,之间的映射关系。后续在私网客户端与网外客户端之间传送媒体流时,NAT设备也根据该映射关系对上述媒体流做NAT处理。S202 对该hvite报文进行NAT ALG处理,并根据上述私网地址和端口,以及公网地址和端口,之间的映射关系,将该hvite报文的SDP部分的私网地址和端口转换为公网地址和端口。具体的,NAT设备对代理服务器发出的hvite报文做NAT。将该hvite报文的 SDP部分中私网客户端的私网地址和端口按照上述映射关系转换为公网地址和端口。NAT 设备还可以对hvite报文中的from、to等字段进行ALG处理。S203 对网外客户端收到hvite报文后,发出的响应报文进行NAT处理。具体的,响应报文可以是2000K报文。NAT设备为代理服务器发出的hvite报文的SDP部分中私网客户端的私网地址和端口分配一个空闲的公网地址和端口,并保存其映射关系,使后续媒体流能根据该映射关系穿越NAT和FW,从而解决了代理服务器与私网客户端在同一私网时,无法穿越NAT和FW 的技术问题。实施例3 本发明实施例是对实施例1的另一种具体应用场景的具体说明,如图4和图5所示,当网外客户端呼叫私网客户端时,SIP报文为响应报文,NAT设备处理方法,包括以下步骤通常在发起呼叫之前,私网客户端,例如客户端A,和网外客户端,例如客户端B, 要各自先向代理服务器进行注册,具体注册过程与实施例2中所描述的注册过程相同。S301 =NAT设备对网外客户端向代理服务器发出的呼叫请求报文进行NAT处理。具体的,呼叫请求报文可以是hvite报文。S302 为代理服务器发出的响应报文的SDP部分中私网客户端的私网地址和端口,分配公网地址和端口,并保存该私网地址和端口,以及公网地址和端口,之间的映射关系。其中,该响应报文是代理服务器在收到私网客户端回应呼叫请求报文的响应报文之后, 发出的响应报文,该响应报文的源IP地址为代理服务器的地址,SDP部分中的地址和端口为私网客户端的私网地址和端口。具体的,响应报文可以是2000K报文。由于该2000K报文的源IP地址和SDP部分中的地址不同,NAT设备不能按照通常的ALG方式对该2000K报文SDP部分做NAT ALG。所以NAT设备获取2000K报文的SDP部分中私网客户端的私网地址和端口,为私网客户端分配一个空闲的公网地址和端口,并保存该私网客户端的私网地址和端口,以及为该私网客户端分配的公网地址和端口,之间的映射关系。后续在私网客户端与网外客户端之间传送媒体流时,NAT设备也根据该映射关系对上述媒体流做NAT处理。S303 对该2000K报文进行NAT ALG处理,并根据上述私网地址和端口,以及公网地址和端口,之间的映射关系,将该2000K报文的SDP部分的私网地址和端口转换为公网地
址和端口。具体的,NAT设备对代理服务器发出的2000K做NAT。将2000K报文的SDP部分中私网客户端的私网地址和端口按照上述映射关系转换为公网地址和端口。NAT设备还可以对2000K报文中的from、to等字段进行ALG处理。NAT设备为代理服务器发出的2000K报文的SDP部分中私网客户端的私网地址和端口分配一个空闲的公网地址和端口,并保存其映射关系,使后续媒体流能根据该映射关系穿越NAT和FW,从而解决了代理服务器与私网客户端在同一私网时,无法穿越NAT和FW 的技术问题。实施例4 本发明实施例提供的私网客户端与网外客户端之间呼叫的网络地址转换设备,包括处理器和存储器。作为一个优选方案,本发明实施例提供的NAT设备为路由器或交换机。处理器为代理服务器发出的SIP报文的SDP部分中私网客户端的私网地址和端口,分配公网地址和端口,并指示存储器保存上述私网地址和端口,以及公网地址和端口, 之间的映射关系。该处理器还用于,在接收到所述私网客户端与所述网外客户端之间传送媒体流时,根据存储器保存的映射关系对该媒体流做NAT处理。其中,该SIP报文是代理服务器在收到私网客户端的SIP报文后,发出的SIP报文,该SIP报文的源IP地址为代理服务器的地址,SDP部分中的地址和端口为私网客户端的私网地址和端口。该SIP报文为发往网外客户端的SIP报文。然后,处理器对该SIP报文进行NATALG处理,并根据存储器中存储的上述映射关系,将该SIP报文的SDP部分的私网地址和端口转换为公网地址和端口。NAT设备的处理器为代理服务器发出的SIP报文的SDP部分中私网客户端的私网地址和端口分配一个空闲的公网地址和端口,并将其映射关系保存在存储器中,使后续媒体流能根据存储器中的该映射关系穿越NAT和FW,从而解决了代理服务器与私网客户端在同一私网时,无法穿越NAT和FW的技术问题。实施例5 如图6所示,本发明实施例提供的私网客户端与网外客户端的呼叫系统,包括上述实施例4中的NAT设备和代理服务器;代理服务器,用于在收到私网客户端的SIP报文后,经过NAT设备向所述网外客户端发出SIP报文。NAT设备为代理服务器发出的SIP报文的SDP部分中私网客户端的私网地址和端口,分配公网地址和端口,并保存该私网地址和端口,以及公网地址和端口,之间的映射关系。其中,该SIP报文是代理服务器在收到私网客户端的SIP报文后,发出的SIP报文。该 SIP报文可以是呼叫请求报文也可以是响应报文。该SIP报文的源IP地址为代理服务器的地址,SDP部分中的地址和端口为私网客户端的私网地址和端口。具体的,由于该SIP报文的源IP地址和SDP部分中的地址不同,NAT设备不能按照通常的ALG方式对该SIP报文SDP部分做NAT ALG。所以NAT设备获取SIP报文的SDP 部分中私网客户端的私网地址和端口,为私网客户端分配一个空闲的公网地址和端口,并保存该私网客户端的私网地址和端口,以及为该私网客户端分配的公网地址和端口,之间的映射关系。后续在私网客户端与网外客户端之间传送媒体流时,NAT设备也根据该映射关系对上述媒体流做NAT处理。然后,NAT设备对该SIP报文进行NAT ALG处理,并根据上述私网地址和端口,以及公网地址和端口,之间的映射关系,将该SIP报文的SDP部分的私网地址和端口转换为公网地址和端口。具体的,NAT设备对代理服务器发出的SIP报文做NAT。将该SIP报文的SDP部分中私网客户端的私网地址和端口按照上述映射关系转换为公网地址和端口。NAT设备还可以对SIP报文中的from、to等字段进行ALG处理。NAT设备为代理服务器发出的SIP报文的SDP部分中私网客户端的私网地址和端口分配一个空闲的公网地址和端口,并保存其映射关系,使后续媒体流能根据该映射关系穿越NAT和FW,从而解决了代理服务器与私网客户端在同一私网时,无法穿越NAT和FW的技术问题。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
权利要求
1.一种私网客户端与网外客户端呼叫的网络地址转换方法,其特征在于,包括为代理服务器发出的SIP报文的SDP部分中所述私网客户端的私网地址和端口,分配公网地址和端口,并保存该私网地址和端口,以及公网地址和端口,之间的映射关系,其中, 所述SIP报文为发往所述网外客户端的SIP报文;对该SIP报文进行网络地址转换应用层网关处理,并根据所述映射关系,将该SIP报文的SDP部分的私网地址和端口转换为公网地址和端口。
2.根据权利要求1所述的处理方法,其特征在于,还包括在接收到所述私网客户端与所述网外客户端之间传送媒体流时,根据所述映射关系对所述媒体流做NAT处理。
3.根据权利要求1或2所述的处理方法,其特征在于,所述SIP报文为呼叫请求报文或响应报文。
4.一种私网客户端与网外客户端之间呼叫的网络地址转换设备,其特征在于包括处理器和存储器;所述处理器用于,为代理服务器发出的SIP报文的SDP部分中所述私网客户端的私网地址和端口,分配公网地址和端口,并指示所述存储器保存该私网地址和端口,以及公网地址和端口,之间的映射关系,其中,所述SIP报文为发往所述网外客户端的SIP报文;以及对该SIP报文进行网络地址转换应用层网关处理,并根据所述映射关系,将该SIP 报文的SDP部分的私网地址和端口转换为公网地址和端口 ;所述存储器用于,保存所述映射关系。
5.根据权利要求4所述的网络地址转换设备,其特征在于所述处理器还用于,在接收到所述私网客户端与所述网外客户端之间传送媒体流时,根据所述存储器保存的所述映射关系对所述媒体流做NAT处理。
6.一种私网客户端与网外客户端之间的呼叫系统,其特征在于包括权利要求4或5 所述的网络地址转换设备和代理服务器;所述代理服务器,用于在收到私网客户端的SIP报文后,经过所述网络地址转换设备向所述网外客户端发出SIP报文。
全文摘要
本发明实施例公开了一种私网客户端与网外客户端之间呼叫的NAT处理方法、设备和系统,属于通讯技术领域。解决了代理服务器与私网客户端在同一私网时,无法穿越NAT和FW的技术问题。该NAT设备的处理方法,包括为服务器发出的SIP报文的SDP部分中私网客户端的私网地址和端口分配一个空闲的公网地址和端口,并保存其映射关系;对该SIP报文进行NAT ALG处理,并根据上述映射关系,将该SIP报文的SDP部分的私网地址和端口转换为公网地址和端口。该NAT设备,包括用于实现上述功能的处理器和存储器。该呼叫系统,包括连接于上述NAT设备和代理服务器。本发明应用于实现网络电话的呼叫。
文档编号H04L12/56GK102318323SQ201180001375
公开日2012年1月11日 申请日期2011年7月30日 优先权日2011年7月30日
发明者简其平, 金龙 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1