VoIP应用穿越防火墙的方法

文档序号:7925385阅读:302来源:国知局
专利名称:VoIP应用穿越防火墙的方法
技术领域
本发明涉及一种网络通讯穿越防火墙的方法,尤其是穿越宽带城域网或企业网中防火墙的方法,属于网络通讯技术领域。
对于VoIP技术的大规模应用,当前存在的一个主要障碍就是很多VoIP解决方案不能顺利地与某些用于禁止端对端分组(包)流通过的网络实体共存。国际上权威的因特网工程任务组(IETF)给这类实体取名为“middlebox”(中间盒),我国主要应用的这类中间盒是指防火墙(firewall)和网址转换器(NAT)。例如在我国迅速普及和广泛发展的宽带城域网、企业网中普遍采用了网址转换器和防火墙。由于VoIP技术采用的协议无法顺利通过网址转换器或防火墙,因而造成基于VoIP的IP电话产品无法在宽带城域网或企业网中得以应用。
为了实现本发明的目的,申请人对有关问题进行了深入的分析思考,理出如下思路通常,网络的运营商和企业都部署了防火墙,其主要目的是保护防火墙内部的计算机不受外部网络的攻击影响。通过防火墙可以限定进入网内的数据包类型和流量(这种限定可以基于源IP地址、目的IP地址或端口号等简单的规则)。更复杂些的规则(如FTP、HTTP)的限定则需要在防火墙上分析OSI的高层协议,因此付出性能上的代价。在防火墙上如果要设定信令流通过是非常简单的,例如要保证SIP的信令通过,只需在防火墙上开放5060端口即可;对于H.323协议,需要开放的端口为1718或1719(发向网守的RAS消息所用端口)、1720(呼叫信令消息所用端口)。但是这样的设定并不能完整地解决VoIP应用穿越防火墙的问题,主要原因是语音的媒体流需要通过RTP协议来传输,而传输所需要的源端口和目的端口是动态确定的。因此通过防火墙上的简单设定是无法完成的。
随着Internet的快速膨胀,IPv4地址空间将处于严重耗尽的境况。为解决这个问题,人们设计出了网址转换器(NAT)。NAT是置于两网间的边界,其功能是将外网可见的IP地址与内网所用的地址相映射,这样,每一受保护的内网可重用特定范围的IP地址(192.168.x.x),而这些地址是不用于公网的。从外网来的含公网地址信息的数据包先到达NAT,NAT使用预设好的规则(其组元包含源地址、源端口、目的地址、目的端口、协议)来修改数据包,然后再转发给内网接受点。对于流出内网的数据包也须经过这样的转换处理。从安全性上来看NAT提供了对外隐藏内网拓扑的一个手段,但也给VoIP应用带来巨大的麻烦。协议(H.323、SIP)消息包一般是在特定区段中内嵌IP地址和端口号,而不是放置在IP包头,这样如果仅仅使用NAT,协议里的IP和端口号不能指向正确的地方。虽然可以利用应用层网关(ALG)等类似的技术寻求解决方案,但是针对H.323这种采用的是ASN.1PER编码格式的协议来说,需要支付非常高昂的代价。目前Internet上的主流语音通讯软件,Netmeeting、Net2Phone都不支持穿越防火墙和NAT。
事实上,复杂网络环境不外乎以下四中情况1、客户端和服务器都在Internet上;2、服务器在Internet上,客户端通过NAT或防火墙联入;3、客户端在Internet上,服务器通过NAT或防火墙联入;4、客户端和服务器都通过NAT或防火墙联入。采用以下的方法可以使四种情况下基于IP的语音流、多媒体数据和其他网络数据,均可以顺利的从服务器传送到用户客户端,同时客户端之间也能进行可靠的直接通信。
申请人了解到,国内市场上已经出现了一种代理服务器。该代理服务器(型号为LS_IST_0030)可以建立一个TCP(Transmission Control Protocol)的网络监听端口,如8010,并且响应其它计算机的连接请求。当一台计算机(B)与其建立连接后,代理服务器可以执行另一台计算机(B)发出的以下两种命令一是与其它计算机(C)建立TCP连接,另一个是建立一个UDP(User Datagram Protocol)的监听端口。如果命令是建立TCP连接,则代理服务器与计算机(C)建立TCP连接,并且完成计算机(B)和(C)之间的相互信息转发;如果命令是建立一个UDP的监听端口,代理服务器就在本机上建立一个监听的UDP端口,此后代理服务器可以通过TCP连接将其它计算机发给这个UDP端口的信息返回给(B)。以上命令控制协议完全和Socks5的标准相同。这种现有的代理服务器可以通过远程控制,并且可以支持级联的操作。
此外还有一种与代理服务器匹配的反向代理服务器(型号为LS_IST_0030F),其工作流程与代理服务器正好相反,通常安装在企业的内部,并且和一个外部的代理服务器连接,用于完成级联操作。
如科学合理地将代理服务器和反向代理服务器应用于实现本发明的目的,则在各种复杂的网络环境中均可使基于IP的语音流、多媒体数据和其他网络数据,顺利的从服务器传送到用户客户端;同时客户端之间也能进行可靠的直接通信。
实现本发明的基本技术解决方案为1、在Internet(国际互联网)服务器上设置代理服务器;2、当客户端和服务器都在Internet(公网地址而且没有防火墙的阻碍)时,直接通过VoIP实现语音流、多媒体数据和其他网络数据的传送;3、当服务器在Internet上、客户端通过NAT或防火墙联入时,执行以下操作步骤3-1、客户端与代理服务器之间建立TCP隧道,即客户端通过TCP连接到代理服务器;3-2、由代理服务器代理客户端的UDP(User Datagram Protocol)数据包的输入和输出;3-3、服务器和代理服务器之间直接收发数据;即借助客户端与代理服务器之间的TCP隧道过渡、最终实现客户端与服务器之间UDP(User Datagram Protocol)数据包的发送和接收。
本发明更为完善的技术解决方案还包括4、在Intranet(企业内部网)服务器旁设置反向代理服务器;5、当客户端在Internet上、服务器通过NAT或防火墙联入时,执行以下操作步骤5-1、客户端通过TCP连接到代理服务器;5-2、代理服务器将TCP连接延展到反向代理服务器;5-3、由反向代理服务器代理客户端的UDP数据包的输入和输出;5-4、反向代理服务器和服务器之间直接收发数据;即借助客户端与两级代理服务器之间的两级TCP隧道过渡、最终实现客户端与服务器之间UDP(User Datagram Protocol)数据包的发送和接收;6、当客户端和服务器都通过NAT或防火墙联入时,执行以下操作步骤6-1、客户端通过TCP连接到代理服务器(其相互之间可以有防火墙或者HTTP代理服务器);6-2、代理服务器将TCP连接延展到反向代理服务器;6-3、由反向代理服务器代理客户端的UDP数据包的输入和输出;6-4、反向代理服务器和服务器之间直接收发数据;即借助客户端与两级代理服务器之间的两级TCP隧道过渡、最终实现客户端与服务器之间UDP(User Datagram Protocol)数据包的发送和接收。
由此可见,本发明的技术方案巧妙解决了VoIP应用穿越防火墙的问题,在复杂的网络环境里,使基于IP的语音流、多媒体数据和其他网络数据,可以顺利的从服务器传送到用户客户端;同时客户端之间也能进行可靠的直接通信,从而彻底扫平了VoIP之类网络技术推广普及的障碍。实施之后,与现有技术相比,具有以下明显优越之处1、以支持语音的呼入和呼出目前有一些语音应用虽然可以穿越防火墙,但其实现方法大多采用了私有的协议,所以无法接通其他第三方的软件甚至是普通电话。本发明中的代理信令、媒体流完全符合国际认可的IP电话规范,不但可以支持第三方IP电话产品,而且可以和电信级IP电话网关互通。2、支持各种网络环境,甚至是多层的NAT网络和防火墙嵌套以往采用私有协议的应用无法穿越多层的防火墙和NAT网络,不支持级连操作。本发明则可以穿越多层NAT和防火墙,帮助VoIP的信令和媒体流跨过阻碍顺利进行通讯。3、可根据不同的报文动态确定优先级本发明可以动态地决定对不同媒体流的优先级。如对视频、音频报文(处理这些报文需要的实时性较高)的响应优先级比较高,而对一般的数据报文则相对较低,这样就可以保证通讯的实时性。4、可支持多个服务器之间的负载均衡本发明中的服务器支持多个服务器集群工作,并且进行负载均衡。在处理大规模的语音应用时,有可能有大量的媒体流穿越本发明中的服务器,造成相当大的负载,尤其是对服务器IO和网络带宽的要求非常高。通过使用集群的工作方式,可以将多个服务器分布并行工作,就不会出现因为服务器的性能和带宽造成的瓶颈问题。5、采用本发明的技术不会对企业的内部网络造成安全漏洞由于本发明中的服务器支持各种主流的操作系统平台(Solaris、AIX、Linux、NT等),用户可以根据不同的安全要求选择不同的系统平台。而且服务器可以安放在公网上,一旦被攻破,也无法直接对企业的内部网络造成破坏。系统的安全性很高。6、本发明的技术也可以应用在各种音频、视频和P2P(点对点)的系统中由于在这类应用中,有可能在两个相互独立的网段传送数据,而这两个网段之间的连接是未知的,同样面临着防火墙和NAT的问题。采用本发明的技术显然可以解决这类问题。
下面结合附图对本发明的技术解决方案作进一步的说明。


图1是本发明的基本实施方案示意图。
图2是本发明一个具体实施例的示意图。
第一种情况,当客户端和服务器都在Internet上,如图1中①Client1到Server1的路径。这是最简单的一种情况,不需要代理,Client1和Server1之间直接收发数据,普通的VoIP应用即可支持这种情况。
第二种情况,当服务器在Internet上,客户端通过NAT或防火墙联入,如图1中②所示Client2到Server1的路径。这种情况下,客户端不能接收服务器传来的UDP数据包。由于在Internet服务器Server1旁边放置了一台代理服务器Proxy,并且客户端Client2和代理服务器Proxy之间建立了TCP隧道,因此通过该隧道,客户端Client2和服务器Server1之间可以发送和接收UDP数据包。换句话说,操作时,Client2通过TCP连接到Proxy,由其代理UDP数据包输入和输出,实现Server1和Proxy之间直接收发数据。
第三种情况,当客户端在Internet上,服务器通过NAT或防火墙联入,如图一中③所示Client1到Server2的路径。这种情况下,服务器不能接收Internet上传来的UDP数据包。由于在Internet服务器Server1旁边放置了一台代理服务器Proxy,在Intranet服务器Server2旁边放置一台反向代理服务器Proxy,并且客户端Client1和两级代理服务器之间建立了TCP隧道,因此通过两级隧道,客户端Client1和服务器Server2之间可以发送和接收UDP数据包。或者说,Client1通过TCP连接到Proxy,Proxy把连接延展到Proxy,再由Proxy代理Client1的UDP数据包输入和输出,实现Server2和Proxy之间直接收发数据。
第四种情况,当客户端和服务器都通过NAT或防火墙联入,如图一中④所示Client2到Server2的路径。这种情况下,客户端和服务器都不能接收Internet上传来的UDP数据包。由于在Internet服务器Server1旁放置了一台代理服务器Proxy,在Intranet服务器Server2旁边放置了一台反向代理服务器Proxy,并且客户端Client2和两级代理服务器之间建立了TCP隧道,通过两级隧道,客户端Client2和Intranet服务器Server2之间可以发送和接收UDP数据包。换言之,Client2通过TCP连接到Proxy(其相互之间可以有防火墙或者HTTP代理服务器),Proxy把连接延展到Proxy,由Proxy代理Client2的UDP数据包输入和输出,实现Server2和Proxy之间直接收发数据。
由此可见,本实施方案囊括了各种复杂的网络环境,使基于IP的语音流、多媒体数据和其他网络数据,可以顺利的从服务器传送到用户客户端。同时客户端之间也可以籍此进行可靠的直接通信。
另外,以应用在北极星产品系列中的网络电话——WebPhone为例。
WebPhone通过Internet拨打普通电话,这里的Internet用户可能在一个防火墙或者使NAT的网络环境中,如果需要在这种复杂的网络环境中能正常通话,就可以使用本发明的技术,在Internet服务器Server1旁设置代理服务器iShuttle。如图2所示1.对于直接连接在Internet上的WebPhone Client 2而言,由于没有通过防火墙或者是NAT网络,所以可以直接通过连接在Internet上的WebPhoneServer(网络电话服务器),建立起VoIP的连接。连接建立后,WebPhoneServer负责将媒体流和信令流交给媒体网关MG(Media Gateway),再由媒体网关将H.323/SIP信令转换成7号信令,并且根据实际情况,在信令建立后,对媒体流进行转换,建立与公共电话网(PSTN)的联接,达到从计算机拨打普通电话的目的。
2.对于NAT Network中的WebPhone Client 1来说,由于媒体流没有办法通过防火墙和NAT网络,所以在信令建立后,媒体流无法建立。在此情况下,WebPhone Client 1首先和位于Internet上的代理服务器iShuttle建立连接,再通过TCP协议建立信令流,媒体流的UDP协议通过TCP的连接在代理服务器iShuttle上重现出来,和WebPhone Server(信令流)以及MG(媒体流)通信,再由媒体网关将H.323/SIP信令转换成7号信令,并且根据实际情况,在信令建立后,对媒体流进行转换,建立与公共电话网(PSTN)的联接,达到从计算机拨打普通电话的目的。
权利要求
1.一种VoIP应用穿越防火墙的方法,其特征在于包括1、在Internet服务器旁设置代理服务器;2、当客户端和服务器都在Internet上时,直接通过VoIP实现语音流、多媒体数据和其他网络数据的传送;3、当服务器在Internet上、客户端通过NAT或防火墙联入时,执行以下操作步骤3-1、客户端与代理服务器之间建立TCP隧道;3-2、由代理服务器代理客户端的UDP数据包的输入和输出;3-3、服务器和代理服务器之间直接收发数据。
2.根据权利要求1所述VoIP应用穿越防火墙的方法,其特征在于还包括4、在企业内部网服务器旁设置反向代理服务器;5、当客户端在Internet上、服务器通过NAT或防火墙联入时,执行以下操作步骤5-1、客户端通过TCP连接到代理服务器;5-2、代理服务器将TCP连接延展到反向代理服务器;5-3、由反向代理服务器代理客户端的UDP数据包的输入和输出;5-4、反向代理服务器和服务器之间直接收发数据;6、当客户端和服务器都通过NAT或防火墙联入时,执行以下操作步骤6-1、客户端通过TCP连接到代理服务器;6-2、代理服务器将TCP连接延展到反向代理服务器;6-3、由反向代理服务器代理客户端的UDP数据包的输入和输出;6-4、反向代理服务器和服务器之间直接收发数据。
3.根据权利要求2所述VoIP应用穿越防火墙的方法,其特征在于所述代理服务器使用标准的Socks5通讯协议,各客户端和所述代理服务器之间仅仅建立TCP的连接,在每个客户端上配置一个Socks5 Client的协议栈。
4.根据权利要求1所述VoIP应用穿越防火墙的方法,其特征在于所述服务器为网络电话服务器,所述客户端为网络电话客户端,当其间的连接建立后,网络电话服务器负责将媒体流和信令流交给媒体网关,再由媒体网关将H.323/SIP信令转换成7号信令,在信令建立后,对媒体流进行转换,建立与公共电话网(PSTN)的联接。
全文摘要
本发明涉及一种VoIP应用穿越防火墙的方法,属于网络通讯技术领域。该方法的基本技术方案为在Internet服务器旁设置代理服务器;当客户端和服务器都在Internet上时,直接通过VoIP实现网络数据的传送;当服务器在Internet上、客户端通过NAT或防火墙联入时,先在客户端与代理服务器之间建立TCP隧道,再由代理服务器代理客户端的UDP数据包的输入和输出,实现服务器和代理服务器之间直接收发数据。本发明巧妙解决了VoIP应用穿越防火墙的问题,可以在复杂的网络环境里,使基于IP的语音流、多媒体数据和其他网络数据顺利的从服务器传送到用户客户端;同时客户端之间也能进行可靠的直接通信。
文档编号H04L12/56GK1466344SQ0213782
公开日2004年1月7日 申请日期2002年6月21日 优先权日2002年6月21日
发明者汪渝波 申请人:南京北极星软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1