CN1674565A - 一种用于网络地址转换和协议翻译中的应用层网关的方法 - Google Patents
一种用于网络地址转换和协议翻译中的应用层网关的方法 Download PDFInfo
- Publication number
- CN1674565A CN1674565A CNA2005100701002A CN200510070100A CN1674565A CN 1674565 A CN1674565 A CN 1674565A CN A2005100701002 A CNA2005100701002 A CN A2005100701002A CN 200510070100 A CN200510070100 A CN 200510070100A CN 1674565 A CN1674565 A CN 1674565A
- Authority
- CN
- China
- Prior art keywords
- sip
- ipv6
- ipv4
- user terminal
- alg
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明涉及一种用于IPv4/IPv6网络地址转换和协议翻译中的SIP应用层网关的实现方法,该方法包括:首先在NAT-PT系统的地址映射表中为IPv6域内的边界SIP代理(Proxy)服务器建立一条静态映射条目;NAT-PT系统识别SIP协议的数据包,将数据包送到SIP应用层网关上处理;SIP应用层网关对SIP协议的数据包的处理包括两个方面的内容:第一,对SIP消息头部字段的翻译处理;第二,对SDP消息体内容的翻译处理;最后,SIP应用层网关将翻译处理后的SIP数据包发送出去。本方法可以在多种网络拓扑环境中实现,保证了IPv4网络内的SIP用户终端和IPv6网络内的SIP用户终端进行通信。
Description
技术领域
本发明涉及计算机网络通信的应用层网关技术领域,特别是一种用于IPv4和IPv6网络地址转换和协议翻译中的SIP应用层网关的实现方法。
背景技术
IPv6(Internet Protocol Version 6)协议是替代IPv4(Internet ProtocolVersion 4)协议的下一代互联网协议,它具有许多新的特性与功能。网络过渡时期中IPv4和IPv6技术将保持长时间共存,并最终过渡到IPv6。目前,如何实现IPv4协议向IPv6协议平滑过渡是人们面临的问题。IETF工作组提出了几种实现IPv4和IPv6互通的机制:双协议栈(RFC2893中说明),隧道技术(RFC2893中说明),NAT-PT(Network Address TransitionProtocol,网络地址转换和协议翻译机制,RFC2766中说明)等。NAT-PT是一种协议转换技术,用来解决纯IPv6网络和纯IPv4网络互通的问题。其主要思想是在IPv6节点与IPv4节点的通信时,借助于中间的NAT-PT系统,把网络层协议头进行IPv6/IPv4间的转换,以适应对端的协议类型。
由于NAT-PT这种过渡方式,只需要在中间设置转换系统即可完成IPv6网络和IPv4网络的互通,应用较为简便,适用于常用的网络互通需求。然而对于一些内嵌地址信息的高层协议,如DNS(Domain Name Service)和SIP(Session Initiation Protocol,会话初始化协议)协议等,NAT-PT需要和ALG(Application Level Gateway,应用层的网关)协作来完成翻译。在实现方面,如果没有DNS ALG的支持,IPV6网络和IPV4网络就不能通过域名进行通信。
SIP协议是一个可供多媒体数据传输和因特网电话呼叫等使用的标准会话协议。是基于文本编码的构建在UDP(User Datagram Protocol,用户数据报协议)和TCP(Transfer Control Protocol,传输控制协议)之上的,用于创建、修改和终止会话连接的应用层控制信令协议。SDP(SessionDescription Protocol,会话描述协议,RFC2327中说明)与SIP都是由IETF(国际工程任务组)MMUSIC(多方多媒体会话控制)工作组定义。SDP数据内容基于文本编码,使用的字符集是ISO10646。SDP头用在SIP信令消息中主要有三个目的,一是告知对方自己想要接收何种类型的媒体:音频、视频或者皆有,第二是希望对方使用什么类型的编码方法。再一个就是让其知道自己用于接收媒体流的地址及端口。同样对方也需要在应答消息或者请求中给出以上这些信息,应答中给出的编码方式应该是对方请求消息中所支持的编码方式的子集,如果双方没有共同支持的编码方式,则协商不成功,会话连接失败。SIP系统由SIPUA(User Agent,用户代理,SIP用户终端)和SIP Proxy(代理)服务器组成。对于SIP应用,SIP消息包的内部含有IP地址的信息,当包含有SIP协议的包穿越IPv4和IPv6两种不同网络时,需要对SIP协议包内部的IP地址进行翻译,否则双方的通信就不能建立起来。SIP ALG是对应于SIP应用的特定代理,可以使IPv6节点与IPv4节点互相通信。SIP应用会把网络地址存在封包的载荷中,可是NAT-PT系统本身并无法得知载荷里面存的内容,SIP ALG可以协助NAT-PT系统来完成翻译载荷内容的功能。
NAT-PT的机制在RFC2766中说明,但是里面没有说明SIP ALG的实现机制,而且到目前为止也没有关于在NAT-PT中实现SIP ALG的机制和可遵循的标准。本发明给出了一种用于NAT-PT中的SIP ALG的实现方法。
发明内容
本发明的目的是提供一种用于IPv4/IPv6网络地址转换和协议翻译中的SIP应用层网关的实现方法,以实现IPv4 SIP用户终端和IPv6 SIP用户终端互相通信。
本发明的目的是这样实现的:一种用于IPv4/IPv6网络地址转换和协议翻译中的SIP应用层网关的实现方法,包括:
(1)首先在NAT-PT系统的地址映射表中为IPv6域内的边界SIP代理服务器分配一条静态的地址映射条目,此条目的内容为:IPv6域内的边界SIP代理服务器的IPv6地址和它对应的全局IPv4地址;
(2)NAT-PT系统根据目的信息或者端口信息来识别SIP协议的数据包,将数据包发送到SIP应用层网关上处理;
(3)SIP应用层网关对SIP协议的数据包进行处理;
(4)最后,SIP应用层网关将处理后的SIP数据包发送出去。
所述的在NAT-PT系统的地址映射表中为IPv6域内的边界SIP代理服务器分配一条静态的地址映射条目,此条目的内容为:IPv6域内的边界SIP代理服务器的IPv6地址和对应的全局IPv4地址。IPv6域内的边界SIP代理服务器支持域名访问的方式,需要在它的上层域名服务器的配置上添加一个域名记录。从IPv4域内访问IPv6域内的边界SIP代理服务器时,由DNS ALG协助来完成。
IPv6域内的边界SIP代理服务器支持域名访问的方式,需要在它的上层域名服务器的配置上添加一个域名记录,从IPv4域内访问IPv6域内的边界SIP代理服务器时,由DNS应用层网关协助来完成。
所述的步骤(3)SIP应用层网关对SIP协议的数据包进行处理,包括:
(21)当数据包为IPv6格式的SIP数据包,采用从IPv6到IPv4的SIP包的转换处理方式;
(22)当数据包为IPv4格式的SIP数据包,采用从IPv4到IPv6的SIP包的转换处理方式。
所述的步骤(21)包括:
(41)处理SIP协议头部字段:对SIP协议的头部字段进行转换处理,包括Contact、Via、Record-Route、Route、Request-URI、From、To、Content-Length字段。把SIP头部字段的IPv6地址和端口信息转换成IPv4地址和端口信息,必要时要建立IPv4网络到IPv6网络的映射条目;
(42)处理SDP协议的内容:根据SDP包的“c=”字段和“m=”字段判断RTP的映射条目是否已经建立,如果没有建立,则为RTP和RTCP建立映射条目,然后,翻译修改“o=”字段、“c=”字段和“m=”字段的内容;
(43)经过步骤(42)的处理,SDP内容的大小已经改变了,需要修改SIP协议头部的Content-Length字段;
(44)对数据包重新计算IPv4头部和UDP头部的校验和。然后,执行步骤(4)。
所述的步骤(22)包括:
SIP应用层网关对SIP协议的数据包进行处理中的IPv4 SIP协议包到IPv6 SIP协议包的转换处理,
(51)处理SIP协议头部字段:对SIP协议的头部字段进行转换处理,包括Contact、Via、Record-Route、Route、Request-URI、From、To、Content-Length等字段,把SIP头部字段的IPv4地址和端口信息转换成IPv6地址和端口信息,必要时需要查询映射表,取出查询到的映射条目,进行相关字段的转换处理;
(52)处理SDP协议的内容:处理SDP包的“o=”、“c=”和“m=”字段,在把“c=”和“o=”字段字段的协议类型由IP4改变为IP6,把IPv4地址转换为IPv6地址,“m=”字段的端口信息不变;
(53)经过步骤(52)的处理,SDP内容的大小已经改变了,需要修改SIP头部的Content-Length字段;
(54)对数据包重新UDP头部的校验和,然后,执行步骤(4)。
用于网络地址转换和协议翻译中的SIP应用层网关的实现方法,具体实施的一种网络拓扑结构是:IPv6网络域内包含一个边界SIP Proxy服务器和IPv6 DNS服务器,IPv6 SIP用户终端注册到本域内的IPv6 SIPProxy服务器上,IPv4网络域内包含一个边界SIP Proxy服务器和IPv4 DNS服务器,IPv4 SIP用户终端注册到本域内的IPv4 SIP Proxy服务器上,包括:
(61)IPv6 SIP用户终端主动发起呼叫请求时,SIP应用层网关需要处理SIPINVITE消息中的SIP相关字段和SDP相关字段,并且建立IPv4SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关需要处理BYE消息的SIP相关字段,并且删除IPv4 SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关对其他SIP消息需要处理消息中的SIP相关字段和SDP相关字段,RTP流的数据包由NAT-PT系统来处理;
(62)IPv4 SIP用户终端主动发起呼叫请求时,SIP应用层网关需要处理SIP 200 OK消息中的SIP相关字段和SDP相关字段,并且建立IPv4SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关需要处理BYE消息的SIP相关字段,并且删除IPv4 SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关对其他SIP消息需要处理消息中的SIP相关字段和SDP相关字段,RTP流的数据包由NAT-PT系统来处理。
用于网络地址转换和协议翻译中的SIP应用层网关的实现方法,具体实施的另一种网络拓扑结构是:IPv6网络域内没有SIP Proxy服务器,IPv6 SIP用户终端注册到IPv4域内的IPv4 SIP Proxy服务器上,IPv4网络域内包含一个边界SIP Proxy服务器,IPv4 SIP用户终端注册到本域内的IPv4 SIP Proxy服务器上,包括:
(71)IPv6 SIP用户终端向IPv4 SIP Proxy服务器注册时,SIP应用层网关需要处理SIP REGISTER消息的SIP相关字段,并且建立IPv4 SIPProxy到IPv6 SIP用户终端的映射条目,其他的SIP消息只处理SIP相关字段;
(72)IPv6 SIP用户终端主动发起呼叫请求时,SIP应用层网关需要处理SIP INVITE消息中的SIP相关字段和SDP相关字段,并且建立IPv4SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关需要处理BYE消息的SIP相关字段,并且删除IPv4 SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关对其他SIP消息需要处理消息中的SIP相关字段和SDP相关字段,RTP流的数据包由NAT-PT系统来处理;
(73)IPv4 SIP用户终端主动发起呼叫请求时,SIP应用层网关需要处理SIP200 OK消息中的SIP相关字段和SDP相关字段,并且建立IPv4SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关需要处理BYE消息的SIP相关字段,并且删除IPv4 SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关对其他SIP消息需要处理消息中的SIP相关字段和SDP相关字段,RTP流的数据包由NAT-PT系统来处理。
用于网络地址转换和协议翻译中的SIP应用层网关的实现方法,具体实施的另一种网络拓扑结构是:IPv6网络域内包含一个边界SIP Proxy服务器,IPv6 SIP用户终端注册到本域内的IPv6 SIP Proxy服务器上,IPv4网络域内没有SIP Proxy服务器,IPv4 SIP用户终端注册到IPv6域内的IPv6 SIP Proxy服务器上,包括:
(81)IPv4 SIP用户终端向IPv6 SIP Proxy服务器注册时,SIP应用层网关需要处理SIP消息的SIP相关字段;
(82)IPv6 SIP用户终端主动发起呼叫请求时,SIP应用层网关需要处理SIP INVITE消息中的SIP相关字段和SDP相关字段,并且建立IPv4SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关需要处理BYE消息的SIP相关字段,并且删除IPv4 SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关对其他SIP消息需要处理消息中的SIP相关字段和SDP相关字段,RTP流的数据包由NAT-PT系统来处理;
(83)IPv4 SIP用户终端主动发起呼叫请求时,SIP应用层网关需要处理SIP 200 OK消息中的SIP相关字段和SDP相关字段,并且建立IPv4SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关需要处理BYE消息的SIP相关字段,并且删除IPv4 SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关对其他SIP消息需要处理消息中的SIP相关字段和SDP相关字段,RTP流的数据包由NAT-PT系统来处理。
由上述本发明所提供的技术方案可以看出,通过在NAT-PT系统中增加SIP ALG应用层网关,同时,在DNS ALG应用层网关的协助下,可以实现IPv4 SIP用户终端和IPv6 SIP用户终端的互相通信。此发明解决了IPv4网络和IPv6网络共同存在时,IPv4 SIP应用和IPv6 SIP应用的通信问题。
本发明方法解决了IPv4网络中的SIP协议应用和IPv6网络中的SIP协议应用之间的互相通信问题。
附图说明
前面已经对本发明的目的进行了简要的说明,下面将结合附图对本发明的主要内容进行说明,包含的附图主要有:
图1为本发明的一个实施例,具有IPv4/IPv6协议翻译的SIP应用层网关的一种网络拓扑结构示意图;
图2描述了根据图1网络拓扑结构的一个实施例,IPv6 SIP用户终端首先发起呼叫请求时,经过SIPALG的处理流程图;
图3描述了根据图1网络拓扑结构的一个实施例,IPv4 SIP用户终端首先发起呼叫请求时,经过SIPALG的处理流程图;
图4为本发明的另一个实施例,具有IPv4/IPv6协议翻译的SIP应用层网关的另一种网络拓扑结构示意图;
图5描述了根据图4网络拓扑结构的一个实施例,IPv6 SIP用户终端向IPv4 SIP Proxy注册时,经过SIP ALG的处理流程图;
图6描述了根据图4网络拓扑结构的一个实施例,IPv6 SIP用户终端首先发起呼叫请求时,经过SIP ALG的处理流程图;
图7描述了根据图4网络拓扑结构的一个实施例,IPv4 SIP用户终端首先发起呼叫请求时,经过SIP ALG的处理流程图;
图8为本发明的另一个实施例,具有IPv4/IPv6协议翻译的SIP应用层网关的另一种网络拓扑结构示意图;
图9描述了根据图8网络拓扑结构的一个实施例,IPv4 SIP用户终端向IPv6 SIP Proxy注册时,经过SIP ALG的处理流程图;
图10描述了根据图8网络拓扑结构的一个实施例,IPv6 SIP用户终端首先发起呼叫请求时,经过SIP ALG的处理流程图;
图11描述了根据图8网络拓扑结构的一个实施例,IPv4 SIP用户终端首先发起呼叫请求时,经过SIP ALG的处理流程图。
具体实施方式
本发明适用于多种网络拓扑环境。
一种网络拓扑环境如图1所示,IPv6网络域A内包含一个边界IPv6 SIPProxy服务器X和IPv6 DNS服务器DNS A,IPv6 SIP用户终端X’注册到本域内的IPv6 SIP Proxy服务器X上。IPv4网络域B内包含一个边界SIP Proxy服务器Y和IPv4 DNS服务器DNS B,IPv4 SIP用户终端Y’注册到本域内的IPv4 SIP Proxy服务器Y上。NAT-PT系统位于IPv6网络域A和IPv4网络域B之间。
结合图1的网络拓扑环境,IPv6网络域A内的IPv6 SIP Proxy服务器X和IPv4网络域B内的IPv4 SIP Proxy服务器Y之间的域名解析由DNSALG和NAT-PT系统协助来实现。另外,为了支持IPv4网络域B内的IPv4SIP用户终端Y’向IPv6 SIP用户终端X’主动发起呼叫请求,需要在NAT-PT系统中为IPv6 SIP Proxy服务器X设置一条IPv6地址到IPv4地址的静态映射条目。本发明所述的一种用于IPv4/IPv6网络地址转换和协议翻译中的SIP应用层网关的实现方法的具体实施方式结合附图叙述如下:
图2根据本发明的一种具体实施,描述一种用于IPv4/IPv6网络地址转换和协议翻译中的SIP应用层网关的实现方法中,根据图1网络拓扑结构的一个实施例,IPv6 SIP用户终端X’首先发起呼叫请求时,经过SIP ALG的处理流程。
首先,主叫IPv6 SIP用户终端X’发送通信请求消息(INVITE)至IPv6SIP Proxy X(步骤S201),IPv6 SIP Proxy X通过域名解析IPv4 SIP Proxy Y的IP地址,DNS ALG协助来完成IPv4/IPv6域名类型和IP地址的转换。
然后,IPv6 SIP Proxy X转发INVITE消息到IPv4 SIP Proxy Y,此时必经过NAT-PT系统,到达SIP ALG来处理(步骤S202)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段,把字段中的IPv6地址和端口信息翻译成IPv4地址和端口信息。接着翻译SDP包中的“o=”、“c=”和“m=”字段,根据“c=”和“m=”字段的IP地址和端口信息建立IPv4 SIP用户终端Y’到IPv6 SIP用户终端X’的RTP和RTCP通道映射条目。由于SDP包经过修改后,长度发生了变化,所以,需要修改SIP头部信息中的“Content-Length”字段的值。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,SIP ALG将修改后的IPv4 SIP INVITE包转发出去,经过步骤S203和步骤S204到达IPv4 SIP用户终端Y’。
IPv4 SIP用户终端Y’收到INVITE消息后,发出IPv4 Ringing消息(步骤S205),此消息经过IPv4 SIP Proxy Y和NAT-PT系统,到达SIP ALG来处理(步骤S206)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIP Ringing消息包转发出去,经过步骤S207和步骤S208到达IPv6SIP用户终端X’。
当IPv4 SIP用户终端Y’收到INVITE消息后,决定接受呼叫请求,则发出IPv4 SIP 200 OK消息(步骤S209),此消息经过IPv4 SIP Proxy Y和NAT-PT系统,到达SIP ALG来处理(步骤S210)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。接着翻译SDP包中的“o=”、“c=”和“m=”字段。由于SDP包经过修改后,长度发生了变化,这时需要修改Content-Length的值。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIP 200 OK消息转发出去,经过步骤S211和步骤S212到达IPv6 SIP用户终端X’。
当IPv6 SIP用户终端X’收到SIP200 OK消息后,发出IPv6 SIP ACK消息(步骤S213),此消息经过IPv6 SIP Proxy X和NAT-PT系统,到达SIP ALG来处理(步骤S214)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP ACK消息转发出去,经过步骤S215和步骤S216到达IPv4 SIP用户终端Y’。
经过上面的SIP消息的三次握手后,双方的SIP会话建立完成,开始双方的RTP通信。当IPv6 RTP消息包到达NAT-PT系统后(步骤S217),不需要送到SIP ALG来处理,直接由NAT-PT系统进行正常的IPv6 UDP协议到IPv4 UDP协议的翻译处理,翻译处理后的消息为IPv4 RTP消息,传送到IPv4 SIP用户终端Y’(步骤S218)。当IPv4 RTP消息包到达NAT-PT系统后(步骤S219),因为此时需要的映射条目已经在SIP会话建立的过程中建立,所以IPv4 RTP消息能够由NAT-PT系统正常的IPv4UDP协议到IPv6 UDP协议的翻译处理,翻译处理后的消息为IPv6 RTP消息,传送到IPv6 SIP用户终端X’(步骤S220)。这样,IPv6 SIP用户终端X’和IPv4 SIP用户终端Y’就可以听到互相的语音信息了。
当IPv6 SIP用户终端X’和IPv4 SIP用户终端Y’通话结束后,假设IPv4 SIP用户终端Y’先挂机,发出IPv4 BYE消息(步骤S221)。此消息经过IPv4 SIP Proxy Y和NAT-PT系统,到达SIP ALG来处理(步骤S222)。当SIPALG收到此包,做如下的工作:翻译SIP头部的相关字段。删除以前建立的RTP和RTCP映射条目。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIP BYE消息转发出去,经过步骤S223和步骤S224到达IPv6 SIP用户终端X’。
IPv6 SIP用户终端X’接收到对方的BYE消息,发出IPv6 200 OK消息(步骤S225),此消息经过IPv6 SIP Proxy X和NAT-PT系统,到达SIP ALG来处理(步骤S226)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP 200 OK消息转发出去,经过步骤S227和步骤S228到达IPv4 SIP用户终端Y’。双方的语音通话终止。
图3根据本发明的一种具体实施,描述一种用于IPv4/IPv6网络地址转换和协议翻译中的SIP应用层网关的实现方法中,根据图1网络拓扑结构的一个实施例IPv4 SIP用户终端Y’首先发起呼叫请求时的SIP呼叫处理的流程。
首先,主叫IPv4 SIP用户终端Y’发送通信请求消息(INVITE)至IPv4SIP Proxy Y(步骤S301),IPv4 SIP Proxy Y通过域名解析IPv6 SIP Proxy X的IPv4地址,DNS ALG协助来完成IPv4/IPv6域名类型和IP地址的转换。
然后,IPv4 SIP Proxy Y转发INVITE消息到IPv6 SIP Proxy X,此时必经过NAT-PT系统,到达SIP ALG来处理(步骤S302)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。接着翻译SDP包中的“o=”、“c=”和“m=”字段。由于SDP包经过修改后,长度发生了变化,所以,需要修改SIP头部的“Content-Length”字段的值。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIP INVITE包转发出去,经过步骤S303和步骤S304到达IPv6 SIP用户终端X’。
IPv6 SIP用户终端X’收到INVITE消息后,发出IPv6 Ringing消息(步骤S305),此消息经过IPv6 SIP Proxy X和NAT-PT系统,到达SIP ALG来处理(步骤S306)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP Ringing消息包转发出去,经过步骤S307和步骤S308到达IPv4 SIP用户终端Y’。
当IPv6 SIP用户终端X’收到INVITE消息后,决定接受呼叫请求,则发出IPv6 SIP 200 OK消息(步骤S309),此消息经过IPv6 SIP Proxy X和NAT-PT系统,到达SIP ALG来处理(步骤S310)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。接着翻译SDP包中的“o=”、“c=”和“m=”字段,根据“c=”和“m=”字段的IP地址和端口信息建立IPv4 SIP用户终端Y’到IPv6 SIP用户终端X’的RTP和RTCP通道映射条目。由于SDP包经过修改后,长度发生了变化,这时需要修改SIP头部的“Content-Length”字段的值。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP200 OK消息转发出去,经过步骤S311和步骤S312到达IPv4 SIP用户终端Y’。
当IPv4 SIP用户终端Y’收到SIP200 OK消息后,发出IPv4 SIP ACK消息(步骤S313),此消息经过IPv4 SIP Proxy Y和NAT-PT系统,到达SIP ALG来处理(步骤S314)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIP ACK消息转发出去,经过步骤S315和步骤S316到达IPv6 SIP用户终端X’。
经过上面的SIP消息的三次握手后,双方的SIP会话建立完成,开始双方的RTP通信。当IPv4 RTP消息包到达NAT-PT系统后(步骤S317),因为此时需要的映射条目已经由SIP会话建立的过程中建立,所以IPv4RTP消息能够由NAT-PT系统正常的IPv4 UDP协议到IPv6 UDP协议的翻译处理,翻译处理后的消息为IPv6 RTP消息,传送到IPv6 SIP用户终端X’(步骤S318)。当IPv6 RTP消息包到达NAT-PT系统后(步骤S319),不需要送到SIP ALG来处理,直接由NAT-PT系统正常的IPv6 UDP协议到IPv4 UDP协议的翻译处理,翻译处理后的消息为IPv4 RTP消息,传送到IPv4 SIP用户终端Y’(步骤S320)。这样,IPv6 SIP用户终端X’和IPv4 SIP用户终端Y’就可以听到互相的语音信息了。
当IPv6 SIP用户终端X’和IPv4 SIP用户终端Y’通话结束后,假设IPv6 SIP用户终端X’先挂机,发出IPv6 SIP BYE消息(步骤S321)。此消息经过IPv6 SIP Proxy X和NAT-PT系统,到达SIP ALG来处理(步骤S322)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。删除以前建立的RTP和RTCP映射条目。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP BYE消息转发出去,经过步骤S323和步骤S324到达IPv4 SIP用户终端Y’。
IPv4 SIP用户终端Y’接收到对方的BYE消息,发出IPv4 200 OK消息(步骤S325),此消息经过IPv4 SIP Proxy Y和NAT-PT系统,到达SIP ALG来处理(步骤S326)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIP 200 OK消息转发出去,经过步骤S327和步骤S328到达IPv6 SIP用户终端X’。双方的语音通话终止。
另一种网络拓扑环境如图4所示,IPv6网络域A内包含一个IPv6 DNS服务器DNS_A。IPv4网络域B内包含一个边界SIP Proxy服务器Y和IPv4DNS服务器DNS_B,IPv4 SIP用户终端Y’注册到本域内的IPv4 SIP Proxy服务器Y上,IPv6 SIP用户终端X’也注册到IPv4网络域B内的IPv4 SIPProxy服务器Y上。NAT-PT系统位于IPv6网络域A和IPv4网络域B之间。
结合图4的网络拓扑环境,IPv6网络域A内的IPv6 SIP用户终端X’和IPv4网络域B内的IPv4 SIP Proxy服务器Y之间的域名解析由DNS ALG和NAT-PT系统协助来实现。本发明所述的一种用于IPv4/IPv6网络地址转换和协议翻译中的SIP应用层网关的实现方法的具体实施方式结合附图叙述如下:
图5根据本发明的一种具体实施,描述一种用于IPv4/IPv6网络地址转换和协议翻译中的SIP应用层网关的实现方法中,根据图4网络拓扑结构的一个实施例,IPv6 SIP用户终端X’向IPv4网络域B内的IPv4 SIPProxy服务器Y注册时,经过SIP ALG的处理流程。
首先,IPv6 SIP用户终端X’发送注册请求消息(REGISTER)至IPv4SIP Proxy Y(步骤S501),DNS ALG协助来完成解析IPv4 SIP Proxy Y域名的IP地址。此REGISTER消息经过NAT-PT系统,到达SIP ALG来处理。当SIP ALG收到此包,做如下的工作:翻译SIP头部相关字段,并且建立一条IPv4 SIP Proxy Y到IPv6 SIP用户终端X’的映射条目,目的是可以使IPv4网络域B内的IPv4 SIP用户终端主动向IPv6网络域A内的IPv6 SIP用户终端X’发起呼叫请求。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,SIP ALG将修改后的IPv4 SIPREGISTER包转发出去,经过步骤S502到达IPv4 SIP Proxy服务器Y。当IPv4 SIP Proxy服务器Y收到REGISTER消息后,决定接受注册请求,则发出IPv4 SIP 200 OK消息(步骤S503),此消息经过NAT-PT系统,到达SIP ALG来处理。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIP 200 OK消息转发出去(步骤S504),此消息到达IPv6 SIP用户终端X’。IPv6 SIP用户终端X’到IPv4网络域B内的IPv4 SIP Proxy服务器Y注册完成。
图6根据本发明的一种具体实施,描述一种用于IPv4/IPv6网络地址转换和协议翻译中的SIP应用层网关的实现方法中,根据图4网络拓扑结构的一个实施例,IPv6 SIP用户终端X’主动发起呼叫请求时,经过SIP ALG的处理流程。
首先,主叫IPv6 SIP用户终端X’发送通信请求消息(INVITE)至IPv4SIP Proxy Y(步骤S601),DNS ALG协助来完成解析IPv4 SIP Proxy Y域名的IP地址。此INVITE消息经过NAT-PT系统,到达SIP ALG来处理。当SIP ALG收到此包,做如下的工作:翻译SIP头部相关字段。接着翻译SDP包中的“o=”、“c=”和“m=”字段,根据“c=”和“m=”字段的IP地址和端口信息建立IPv4 SIP用户终端Y’到IPv6 SIP用户终端X’的RTP和RTCP通道映射条目。由于SDP包经过修改后,长度发生了变化,所以,需要修改SIP头部信息中的“Content-Length”字段的值。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,SIP ALG将修改后的IPv4 SIP INVITE包转发出去,经过步骤S602和步骤S603到达IPv4 SIP用户终端Y’。
IPv4 SIP用户终端Y’收到INVITE消息后,发出IPv4 Ringing消息(步骤S604),此消息经过IPv4 SIP Proxy Y和NAT-PT系统,到达SIP ALG来处理(步骤S605)。当SIP ALG收到此包,做如下的工作:判断此包是否是发送给IPv6 SIP用户终端X’的,如果不是,则构造拒绝的包,如果是,则翻译SIP头部的相关字段。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIPRinging消息包转发出去,经过步骤S606到达IPv6 SIP用户终端X’。
当IPv4 SIP用户终端Y’收到INVITE消息后,决定接受呼叫请求,则发出IPv4 SIP 200 OK消息(步骤S607),此消息经过IPv4 SIP Proxy Y和NAT-PT系统,到达SIP ALG来处理(步骤S608)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。接着翻译SDP包中的“o=”、“c=”和“m=”字段,把字段中的IPv4地址翻译成IPv6地址,端口信息不变。由于SDP包经过修改后,长度发生了变化,这时需要修改SIP头部的“Content-Length”的值。然后,将修改后的IPv6 SIP 200 OK消息转发出去,经过步骤S609到达IPv6 SIP用户终端X’。
当IPv6 SIP用户终端X’收到SIP200 OK消息后,发出IPv6 SIP ACK消息(步骤S610),此消息经过NAT-PT系统,到达SIP ALG来处理。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP ACK消息转发出去,经过步骤S611和步骤S612到达IPv4 SIP用户终端Y’。
经过上面的SIP消息的三次握手后,双方的SIP会话建立完成,开始双方的RTP通信。当IPv6 RTP消息包到达NAT-PT系统后(步骤S613),不需要送到SIP ALG来处理,直接由NAT-PT系统进行正常的IPv6 UDP协议到IPv4 UDP协议的翻译处理,翻译处理后的消息为IPv4 RTP消息,传送到IPv4 SIP用户终端Y’(步骤S614)。当IPv4 RTP消息包到达NAT-PT系统后(步骤S615),因为此时需要的映射条目已经在SIP会话建立的过程中建立,所以IPv4 RTP消息能够由NAT-PT系统正常地进行IPv4 UDP协议到IPv6 UDP协议的翻译处理,翻译处理后的消息为IPv6RTP消息,传送到IPv6 SIP用户终端X’(步骤S616)。这样,IPv6 SIP用户终端X’和IPv4 SIP用户终端Y’就可以听到互相的语音信息了。
当IPv6 SIP用户终端X’和IPv4 SIP用户终端Y’通话结束后,假设IPv4 SIP用户终端Y’先挂机,发出IPv4 BYE消息(步骤S617)。此消息经过IPv4 SIP Proxy Y和NAT-PT系统,到达SIP ALG来处理(步骤S618)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。删除以前建立的RTP和RTCP映射条目。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIP BYE消息转发出去,经过步骤S619到达IPv6 SIP用户终端X’。
IPv6 SIP用户终端X’接收到对方的BYE消息,发出IPv6 200 OK消息(步骤S620),此消息经过NAT-PT系统,到达SIP ALG来处理。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP 200 OK消息转发出去,经过步骤S621和步骤S622到达IPv4SIP用户终端Y’。双方的语音通话终止。
图7根据本发明的一种具体实施,描述一种用于IPv4/IPv6网络地址转换和协议翻译中的SIP应用层网关的实现方法中,根据图4网络拓扑结构的一个实施例,IPv4 SIP用户终端Y’首先发起呼叫请求时的SIP呼叫处理的流程。
首先,主叫IPv4 SIP用户终端Y’发送通信请求消息(INVITE)至IPv4SIP Proxy Y(步骤S701)。然后,IPv4 SIP Proxy Y转发INVITE消息到IPv6SIP用户终端X’,此时必经过NAT-PT系统,到达SIP ALG来处理(步骤S702)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。接着翻译SDP包中的“o=”、“c=”和“m=”字段,把字段中的IPv4地址翻译成IPv6地址,端口信息不变。由于SDP包经过修改后,长度发生了变化,所以,需要修改SIP头部的“Content-Length”字段的值。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIPINVITE包转发出去,经过步骤S703到达IPv6 SIP用户终端X’。
IPv6 SIP用户终端X’收到INVITE消息后,发出IPv6 Ringing消息(步骤S704),此消息经过NAT-PT系统,到达SIP ALG来处理。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP Ringing消息包转发出去,经过步骤S705和步骤S706到达IPv4 SIP用户终端Y’。
当IPv6 SIP用户终端X’收到INVITE消息后,决定接受呼叫请求,则发出IPv6 SIP 200 OK消息(步骤S707),此消息经过NAT-PT系统,到达SIP ALG来处理。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。接着翻译SDP包中的“o=”、“c=”和“m=”字段,根据“c=”和“m=”字段的IP地址和端口信息建立IPv4 SIP用户终端Y’到IPv6 SIP用户终端X’的RTP和RTCP通道的映射条目。由于SDP包经过修改后,长度发生了变化,这时需要修改SIP头部的“Content-Length”字段的值。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP200 OK消息转发出去,经过步骤S708和步骤S709到达IPv4 SIP用户终端Y’。
当IPv4 SIP用户终端Y’收到SIP200 OK消息后,发出IPv4 SIP ACK消息(步骤S710),此消息经过IPv4 SIP Proxy Y和NAT-PT系统,到达SIP ALG来处理(步骤S711)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIP ACK消息转发出去,经过步骤S712到达IPv6 SIP用户终端X’。
经过上面的SIP消息的三次握手后,双方的SIP会话建立完成,开始双方的RTP通信。当IPv4 RTP消息包到达NAT-PT系统后(步骤S713),因为此时需要的映射条目已经由SIP会话建立的过程中建立,所以IPv4RTP消息能够由NAT-PT系统进行正常地IPv4 UDP协议到IPv6 UDP协议的翻译处理,翻译处理后的消息为IPv6 RTP消息,传送到IPv6 SIP用户终端X’(步骤S714)。当IPv6 RTP消息包到达NAT-PT系统后(步骤S71 5),不需要送到SIP ALG来处理,直接由NAT-PT系统进行正常地IPv6UDP协议到IPv4 UDP协议的翻译处理,翻译处理后的消息为IPv4 RTP消息,传送到IPv4 SIP用户终端Y’(步骤S716)。这样,IPv6 SIP用户终端X’和IPv4 SIP用户终端Y’就可以听到互相的语音信息了。
当IPv6 SIP用户终端X’和IPv4 SIP用户终端Y’通话结束后,假设IPv6 SIP用户终端X’先挂机,发出IPv6 SIP BYE消息(步骤S717)。此消息经过NAT-PT系统,到达SIP ALG来处理。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。删除以前建立的RTP和RTCP映射条目。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP BYE消息转发出去,经过步骤S718和步骤S719到达IPv4 SIP用户终端Y’。
IPv4 SIP用户终端Y’接收到对方的BYE消息,发出IPv4 200 OK消息(步骤S720),此消息经过IPv4 SIP Proxy Y和NAT-PT系统,到达SIP ALG来处理(步骤S721)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIP 200 OK消息转发出去,经过步骤S722到达IPv6 SIP用户终端X’。双方的语音通话终止。
另一种网络拓扑环境如图8所示,IPv6网络域A内包含一个边界IPv6SIP Proxy服务器X和一个IPv6 DNS服务器DNS A。IPv4网络域B内包含一个IPv4 DNS服务器DNS B。IPv6 SIP用户终端X’注册到本域内的IPv6 SIP Proxy服务器X上,IPv4 SIP用户终端Y’也注册到IPv6网络域A内的IPv6 SIP Proxy服务器X上。NAT-PT系统位于IPv6网络域A和IPv4网络域B之间。
结合图8的网络拓扑环境,IPv4网络域B内的IPv4 SIP用户终端Y’和IPv6网络域A内的IPv6 SIP Proxy服务器X之间的域名解析由DNSALG和NAT-PT系统协助来实现。另外,为了支持IPv4网络域B内的IPv4SIP用户终端Y’向IPv6 SIP用户终端X’主动发起呼叫请求,需要在NAT-PT系统中为IPv6 SIP Proxy服务器X设置一条IPv6地址到IPv4地址的静态映射条目。本发明所述的一种用于IPv4/IPv6网络地址转换和协议翻译中的SIP应用层网关的实现方法的具体实施方式结合附图叙述如下:
图9根据本发明的一种具体实施,描述一种用于IPv4/IPv6网络地址转换和协议翻译中的SIP应用层网关的实现方法中,根据图8网络拓扑结构的一个实施例,IPv4 SIP用户终端Y’向IPv6网络域A内的IPv6 SIPProxy服务器X注册时,经过SIP ALG的处理流程。
首先,IPv4 SIP用户终端Y’发送注册请求消息(REGISTER)至IPv6SIP Proxy X(步骤S901),DNS ALG协助来完成解析IPv6 SIP Proxy X域名的IP地址。此REGISTER消息经过NAT-PT系统,到达SIP ALG来处理。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算UDP头部的校验和。最后,SIP ALG将修改后的IPv6 SIPREGISTER包转发出去,经过步骤S902到达IPv6 SIP Proxy服务器X。当IPv6 SIP Proxy服务器X收到REGISTER消息后,决定接受注册请求,则发出IPv6 SIP 200 OK消息(步骤S903),此消息经过NAT-PT系统,到达SIP ALG来处理。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP 200 OK消息转发出去(步骤S904),此消息到达IPv4 SIP用户终端Y’。IPv4 SIP用户终端Y’到IPv6网络域A内的IPv6 SIP Proxy服务器X注册完成。
图10根据本发明的一种具体实施,描述一种用于IPv4/IPv6网络地址转换和协议翻译中的SIP应用层网关的实现方法中,根据图8网络拓扑结构的一个实施例,IPv6 SIP用户终端X’首先发起呼叫请求时,经过SIP ALG的处理流程。
首先,主叫IPv6 SIP用户终端X’发送通信请求消息(INVITE)至IPv6SIP Proxy X(步骤S1001)。然后,IPv6 SIP Proxy X转发INVITE消息到IPv4 SIP用户终端Y’,此时必经过NAT-PT系统,到达SIP ALG来处理(步骤S1002)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。接着翻译SDP包中的“o=”、“c=”和“m=”字段,根据“c=”和“m=”字段的IP地址和端口信息建立IPv4 SIP用户终端Y’到IPv6 SIP用户终端X’的RTP和RTCP通道映射条目。由于SDP包经过修改后,长度发生了变化,所以,需要修改SIP头部信息中的“Content-Length”字段的值。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,SIP ALG将修改后的IPv4 SIP INVITE包转发出去,经过步骤S1003到达IPv4 SIP用户终端Y’。
IPv4 SIP用户终端Y’收到INVITE消息后,发出IPv4 Ringing消息(步骤S1004),此消息经过NAT-PT系统,到达SIPALG来处理。当SIPALG收到此包,做如下的工作:判断此包是否是发送给IPv6 SIP Proxy X的,如果不是,则构造拒绝的包,如果是,则翻译SIP头部的相关字段。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIP Ringing消息包转发出去,经过步骤S1005和步骤S1006到达IPv6 SIP用户终端X’。
当IPv4 SIP用户终端Y’收到INVITE消息后,决定接受呼叫请求,则发出IPv4 SIP 200 OK消息(步骤S1007),此消息经过NAT-PT系统,到达SIP ALG来处理。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。接着翻译SDP包中的“o=”、“c=”和“m=”字段,把字段中的IPv4地址翻译成IPv6地址,端口信息不变。由于SDP包经过修改后,长度发生了变化,这时需要修改Content-Length的值。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIP 200 OK消息转发出去,经过步骤S1008和步骤S1009到达IPv6 SIP用户终端X’。
当IPv6 SIP用户终端X’收到SIP200 OK消息后,发出IPv6 SIP ACK消息(步骤S1010),此消息经过IPv6 SIP Proxy X和NAT-PT系统,到达SIP ALG来处理(步骤S1011)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP ACK消息转发出去,经过步骤S1012到达IPv4 SIP用户终端Y’。
经过上面的SIP消息的三次握手后,双方的SIP会话建立完成,开始双方的RTP通信。当IPv6 RTP消息包到达NAT-PT系统后(步骤S1013),不需要送到SIP ALG来处理,直接由NAT-PT系统进行正常地IPv6 UDP协议到IPv4 UDP协议的翻译处理,翻译处理后的消息为IPv4 RTP消息,传送到IPv4 SIP用户终端Y’(步骤S1014)。当IPv4 RTP消息包到达NAT-PT系统后(步骤S1015),因为此时需要的映射条目已经在SIP会话建立的过程中建立,所以IPv4 RTP消息能够由NAT-PT系统正常地IPv4UDP协议到IPv6 UDP协议的翻译处理,翻译处理后的消息为IPv6 RTP消息,传送到IPv6 SIP用户终端X’(步骤S1016)。这样,IPv6 SIP用户终端X’和IPv4 SIP用户终端Y’就可以听到互相的语音信息了。
当IPv6 SIP用户终端X’和IPv4 SIP用户终端Y’通话结束后,假设IPv4 SIP用户终端Y’先挂机,发出IPv4 BYE消息(步骤S1017)。此消息经过NAT-PT系统,到达SIP ALG来处理。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。删除以前建立的RTP和RTCP映射条目。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIPBYE消息转发出去,经过步骤S1018和步骤S1019到达IPv6 SIP用户终端X’。
IPv6 SIP用户终端X’接收到对方的BYE消息,发出IPv6 200 OK消息(步骤S1020),此消息经过IPv6 SIP Proxy X和NAT-PT系统,到达SIP ALG来处理(步骤S1021)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP 200 OK消息转发出去,经过步骤S1022到达IPv4 SIP用户终端Y’。双方的语音通话终止。
图11根据本发明的一种具体实施,描述一种用于IPv4/IPv6网络地址转换和协议翻译中的SIP应用层网关的实现方法中,根据图8网络拓扑结构的一个实施例IPv4 SIP用户终端Y’首先发起呼叫请求时的SIP呼叫处理的流程。
首先,主叫IPv4 SIP用户终端Y’发送通信请求消息(INVITE)至IPv6SIP Proxy X(步骤S1101),DNS ALG协助来完成解析IPv6 SIP Proxy X域名的IPv4地址。此INVITE消息经过NAT-PT系统,到达SIP ALG来处理。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。接着翻译SDP包中的“o=”、“c=”和“m=”字段,把字段中的IPv4地址翻译成IPv6地址,端口信息不变。由于SDP包经过修改后,长度发生了变化,所以,需要修改SIP头部的“Content-Length”字段的值。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIP INVITE包转发出去,经过步骤S1102和步骤S1103到达IPv6 SIP用户终端X’。
IPv6 SIP用户终端X’收到INVITE消息后,发出IPv6 Ringing消息(步骤S1104),此消息经过IPv6 SIP Proxy X和NAT-PT系统,到达SIPALG来处理(步骤S1105)。当SIPALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP Ringing消息包转发出去,经过步骤S1106到达IPv4 SIP用户终端Y’。
当IPv6 SIP用户终端X’收到INVITE消息后,决定接受呼叫请求,则发出IPv6 SIP200 OK消息(步骤S1107),此消息经过IPv6 SIP Proxy X和NAT-PT系统,到达SIP ALG来处理(步骤S1108)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。接着翻译SDP包中的“o=”、“c=”和“m=”字段,根据“c=”和“m=”字段的IP地址和端口信息建立IPv4 SIP用户终端Y’到IPv6 SIP用户终端X’的RTP和RTCP通道映射条目。由于SDP包经过修改后,长度发生了变化,这时需要修改SIP头部的“Content-Length”字段的值。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP 200 OK消息转发出去,经过步骤S1109到达IPv4 SIP用户终端Y’。
当IPv4 SIP用户终端Y’收到SIP200 OK消息后,发出IPv4 SIP ACK消息(步骤S1110),此消息经过NAT-PT系统,到达SIP ALG来处理。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIP ACK消息转发出去,经过步骤S1111和步骤S1112到达IPv6 SIP用户终端X’。
经过上面的SIP消息的三次握手后,双方的SIP会话建立完成,开始双方的RTP通信。当IPv4 RTP消息包到达NAT-PT系统后(步骤S1113),因为此时需要的映射条目已经由SIP会话建立的过程中建立,所以IPv4RTP消息能够由NAT-PT系统正常地IPv4 UDP协议到IPv6 UDP协议的翻译处理,翻译处理后的消息为IPv6 RTP消息,传送到IPv6 SIP用户终端X’(步骤S1114)。当IPv6 RTP消息包到达NAT-PT系统后(步骤S1115),不需要送到SIP ALG来处理,直接由NAT-PT系统正常地IPv6UDP协议到IPv4 UDP协议的翻译处理,翻译处理后的消息为IPv4 RTP消息,传送到IPv4 SIP用户终端Y’(步骤S1116)。这样,IPv6 SIP用户终端X’和IPv4 SIP用户终端Y’就可以听到互相的语音信息了。
当IPv6 SIP用户终端X’和IPv4 SIP用户终端Y’通话结束后,假设IPv6 SIP用户终端X’先挂机,发出IPv6 SIP BYE消息(步骤S1117)。此消息经过IPv6 SIP Proxy X和NAT-PT系统,到达SIP ALG来处理(步骤S1118)。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。删除以前建立的RTP和RTCP映射条目。然后,重新计算IPv4包的头部校验和和UDP头部的校验和。最后,将修改后的IPv4 SIP BYE消息转发出去,经过步骤S1119到达IPv4 SIP用户终端Y’。
IPv4 SIP用户终端Y’接收到对方的BYE消息,发出IPv4 200 OK消息(步骤S1120),此消息经过NAT-PT系统,到达SIP ALG来处理。当SIP ALG收到此包,做如下的工作:翻译SIP头部的相关字段。然后,重新计算UDP头部的校验和。最后,将修改后的IPv6 SIP 200 OK消息转发出去,经过步骤S1121和步骤S1122到达IPv6 SIP用户终端X’。双方的语音通话终止。
上述提供的本发明的具体实施技术方案实现了本发明的目的。实现了IPv4域内的IPv4 SIP用户终端主动地访问IPv6域内的IPv6 SIP用户终端,同时也实现了IPv6域内的IPv6 SIP用户终端主动地访问IPv4域内的IPv4SIP用户终端。
前述的实施例仅仅作为举例,不用于限制本发明。本发明所述的内容可以容易地应用到其它类型的装置和环境中。本发明的描述只是例证式的,不是用来限制权利要求的范围。对于本领域的技术人员来说多种选择、修改和变化是显而易见的。
Claims (8)
1.一种用于网络地址转换和协议翻译中的SIP应用层网关的实现方法,包括:
(1)首先在NAT-PT系统的地址映射表中为IPv6域内的边界SIP代理服务器分配一条静态的地址映射条目,此条目的内容为:IPv6域内的边界SIP代理服务器的IPv6地址和它对应的全局IPv4地址;
(2)NAT-PT系统根据目的信息或者端口信息来识别SIP协议的数据包,将数据包发送到SIP应用层网关上处理;
(3)SIP应用层网关对SIP协议的数据包进行处理;
(4)最后,SIP应用层网关将处理后的SIP数据包发送出去。
2.根据权利要求1所述的用于网络地址转换和协议翻译中的SIP应用层网关的实现方法,其特征在于,SIP应用层网关对SIP协议的数据包进行处理,包括:
(21)IPv6 SIP协议包到IPv4 SIP协议包的转换处理;
(22)IPv4 SIP协议包到IPv6 SIP协议包的转换处理。
3.根据权利要求1所述的用于网络地址转换和协议翻译中的SIP应用层网关的实现方法,其特征在于,IPv6域内的边界SIP代理服务器支持域名访问的方式,需要在它的上层域名服务器的配置上添加一个域名记录,从IPv4域内访问IPv6域内的边界SIP代理服务器时,由DNS应用层网关协助来完成。
4.根据权利要求2所述的用于网络地址转换和协议翻译中的SIP应用层网关的实现方法,其特征在于,SIP应用层网关对SIP协议的数据包进行处理中的IPv6 SIP协议包到IPv4 SIP协议包的转换处理,包括:
(41)处理SIP协议头部字段:对SIP协议的头部字段进行转换处理,包括Contact、Via、Record-Route、Route、Request-URI、From、To和Content-Length等字段,把SIP头部字段的IPv6地址和端口信息转换成IPv4地址和端口信息,必要时要建立IPv4网络到IPv6网络的映射条目;
(42)处理SDP协议的内容:根据SDP包的“c=”字段和“m=”字段判断RTP的映射条目是否已经建立,如果没有建立,则为RTP和RTCP建立映射条目,然后,把“c=”字段的协议类型由IP6改变为IP4,把IPv6地址转换为映射条目的IPv4地址,“m=”字段的端口信息转换为映射条目的IPv4的端口信息,“o=”字段的地址部分进行转换;
(43)经过步骤(42)的处理,SDP内容的大小已经改变了,需要修改SIP协议头部的Content-Length字段;
(44)对数据包重新计算IPv4头部和UDP头部的校验和,然后,执行步骤(4)。
5.根据权利要求2所述的用于网络地址转换和协议翻译中的SIP应用层网关的实现方法,其特征在于,SIP应用层网关对SIP协议的数据包进行处理中的IPv4 SIP协议包到IPv6 SIP协议包的转换处理,包括:
(51)处理SIP协议头部字段:对SIP协议的头部字段进行转换处理,包括Contact、Via、Record-Route、Route、Request-URI、From、To、Content-Length等字段,把SIP头部字段的IPv4地址和端口信息转换成IPv6地址和端口信息,必要时需要查询映射表,取出查询到的映射条目,进行相关字段的转换处理;
(52)处理SDP协议的内容:处理SDP包的“o=”、“c=”和“m=”字段,在把“c=”和“o=”字段字段的协议类型由IP4改变为IP6,把IPv4地址转换为IPv6地址,“m=”字段的端口信息不变;
(53)经过步骤(52)的处理,SDP内容的大小已经改变了,需要修改SIP头部的Content-Length字段;
(54)对数据包重新UDP头部的校验和,然后,执行步骤(4)。
6.根据权利要求1所述的用于网络地址转换和协议翻译中的SIP应用层网关的实现方法,其特征在于,具体实施的一种网络拓扑结构是:IPv6网络域内包含一个边界SIP Proxy服务器和IPv6 DNS服务器,IPv6 SIP用户终端注册到本域内的IPv6 SIP Proxy服务器上,IPv4网络域内包含一个边界SIP Proxy服务器和IPv4 DNS服务器,IPv4 SIP用户终端注册到本域内的IPv4 SIP Proxy服务器上,包括:
(61)IPv6 SIP用户终端主动发起呼叫请求时,SIP应用层网关需要处理SIP INVITE消息中的SIP相关字段和SDP相关字段,并且建立IPv4SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关需要处理BYE消息的SIP相关字段,并且删除IPv4 SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关对其他SIP消息需要处理消息中的SIP相关字段和SDP相关字段,RTP流的数据包由NAT-PT系统来处理;
(62)IPv4 SIP用户终端主动发起呼叫请求时,SIP应用层网关需要处理SIP 200 OK消息中的SIP相关字段和SDP相关字段,并且建立IPv4SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关需要处理BYE消息的SIP相关字段,并且删除IPv4 SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关对其他SIP消息需要处理消息中的SIP相关字段和SDP相关字段,RTP流的数据包由NAT-PT系统来处理。
7.根据权利要求1所述的用于网络地址转换和协议翻译中的SIP应用层网关的实现方法,其特征在于,具体实施的另一种网络拓扑结构是:IPv6网络域内没有SIP Proxy服务器,IPv6 SIP用户终端注册到IPv4域内的IPv4 SIP Proxy服务器上,IPv4网络域内包含一个边界SIP Proxy服务器,IPv4 SIP用户终端注册到本域内的IPv4 SIP Proxy服务器上,包括:
(71)IPv6 SIP用户终端向IPv4 SIP Proxy服务器注册时,SIP应用层网关需要处理SIP REGISTER消息的SIP相关字段,并且建立IPv4 SIPProxy到IPv6 SIP用户终端的映射条目,其他的SIP消息只处理SIP相关字段;
(72)IPv6 SIP用户终端主动发起呼叫请求时,SIP应用层网关需要处理SIP INVITE消息中的SIP相关字段和SDP相关字段,并且建立IPv4SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关需要处理BYE消息的SIP相关字段,并且删除IPv4 SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关对其他SIP消息需要处理消息中的SIP相关字段和SDP相关字段,RTP流的数据包由NAT-PT系统来处理;
(73)IPv4 SIP用户终端主动发起呼叫请求时,SIP应用层网关需要处理SIP 200 OK消息中的SIP相关字段和SDP相关字段,并且建立IPv4SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关需要处理BYE消息的SIP相关字段,并且删除IPv4 SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关对其他SIP消息需要处理消息中的SIP相关字段和SDP相关字段,RTP流的数据包由NAT-PT系统来处理。
8.根据权利要求1所述的用于网络地址转换和协议翻译中的SIP应用层网关的实现方法,其特征在于,具体实施的另一种网络拓扑结构是:IPv6网络域内包含一个边界SIP Proxy服务器,IPv6 SIP用户终端注册到本域内的IPv6 SIP Proxy服务器上,IPv4网络域内没有SIP Proxy服务器,IPv4 SIP用户终端注册到IPv6域内的IPv6 SIP Proxy服务器上,包括:
(81)IPv4 SIP用户终端向IPv6 SIP Proxy服务器注册时,SIP应用层网关需要处理SIP消息的SIP相关字段;
(82)IPv6 SIP用户终端主动发起呼叫请求时,SIP应用层网关需要处理SIP INVITE消息中的SIP相关字段和SDP相关字段,并且建立IPv4SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关需要处理BYE消息的SIP相关字段,并且删除IPv4 SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关对其他SIP消息需要处理消息中的SIP相关字段和SDP相关字段,RTP流的数据包由NAT-PT系统来处理;
(83)IPv4 SIP用户终端主动发起呼叫请求时,SIP应用层网关需要处理SIP 200 OK消息中的SIP相关字段和SDP相关字段,并且建立IPv4SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关需要处理BYE消息的SIP相关字段,并且删除IPv4 SIP用户终端到IPv6 SIP用户终端的RTP和RTCP映射条目,SIP应用层网关对其他SIP消息需要处理消息中的SIP相关字段和SDP相关字段,RTP流的数据包由NAT-PT系统来处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100701002A CN100493049C (zh) | 2005-05-10 | 2005-05-10 | 一种用于网络地址转换和协议翻译中的应用层网关的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100701002A CN100493049C (zh) | 2005-05-10 | 2005-05-10 | 一种用于网络地址转换和协议翻译中的应用层网关的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1674565A true CN1674565A (zh) | 2005-09-28 |
CN100493049C CN100493049C (zh) | 2009-05-27 |
Family
ID=35046834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100701002A Expired - Fee Related CN100493049C (zh) | 2005-05-10 | 2005-05-10 | 一种用于网络地址转换和协议翻译中的应用层网关的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100493049C (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100525311C (zh) * | 2006-03-10 | 2009-08-05 | 中国科学院计算技术研究所 | 一种防止nat-pt设备受到攻击的方法 |
CN101184065B (zh) * | 2007-12-05 | 2010-06-02 | 中兴通讯股份有限公司 | 一种实现IPv6与IPv4网络终端语音通讯的方法和设备 |
CN101237401B (zh) * | 2008-02-26 | 2010-06-02 | 中兴通讯股份有限公司 | 数据连接建立方法及路由器 |
CN101808143A (zh) * | 2010-03-12 | 2010-08-18 | 中国电力科学研究院 | 一种IPv4电力终端接入IPv6电力数据通信网络的方法 |
CN101136910B (zh) * | 2006-08-30 | 2010-09-29 | 中国电信股份有限公司 | 网络地址和协议翻译设备与应用层网关设备 |
CN101197820B (zh) * | 2006-12-05 | 2011-04-20 | 中兴通讯股份有限公司 | IPv6 SIP终端与IPv4 SIP终端通讯的方法 |
CN101179468B (zh) * | 2006-11-10 | 2011-06-22 | 中兴通讯股份有限公司 | 异构网络sip终端与h.323终端通讯的方法 |
CN101257435B (zh) * | 2007-02-28 | 2011-08-17 | 上海亿人通信终端有限公司 | 基于nat-pt的sip应用层网关的实现方法 |
CN102165752A (zh) * | 2008-09-25 | 2011-08-24 | 奥地利西门子公司 | 在IPv4与IPv6数据终端设备之间在SIP控制的数据流中双向地址转换的方法和设备 |
CN103441933A (zh) * | 2013-07-22 | 2013-12-11 | 汉柏科技有限公司 | 一种实现ipv4设备和ipv6设备通信的方法 |
US8837474B2 (en) | 2011-12-19 | 2014-09-16 | Qualcomm Incorporated | Apparatus and methods for efficient network address translation and application level gateway processing |
CN110138748A (zh) * | 2019-04-23 | 2019-08-16 | 北京交通大学 | 一种网络融合通信方法、网关设备和系统 |
CN112825518A (zh) * | 2019-11-21 | 2021-05-21 | 湖北省电力勘测设计院有限公司 | 一种基于内容过滤的应用协议筛选及匹配方法 |
CN116566943A (zh) * | 2023-07-12 | 2023-08-08 | 明阳时创(北京)科技有限公司 | 一种音视频流轻量级直转中继方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6580717B1 (en) * | 1996-07-04 | 2003-06-17 | Hitachi, Ltd. | Packet communication method and apparatus and a recording medium storing a packet communication program |
WO2002009387A1 (en) * | 2000-07-21 | 2002-01-31 | Nokia Corporation | Sip sessions between ipv4 and ipv6 clients and sip based call setup in 3gpp ip multimedia subsystem with nat in place |
JP4349766B2 (ja) * | 2001-12-07 | 2009-10-21 | 株式会社日立製作所 | アドレス変換装置 |
JP2004364141A (ja) * | 2003-06-06 | 2004-12-24 | Hitachi Communication Technologies Ltd | Ipアドレス変換装置およびパケット転送装置 |
JP2005086467A (ja) * | 2003-09-09 | 2005-03-31 | Hitachi Ltd | セッション制御装置、情報通信端末、サーバ、及び端末 |
-
2005
- 2005-05-10 CN CNB2005100701002A patent/CN100493049C/zh not_active Expired - Fee Related
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100525311C (zh) * | 2006-03-10 | 2009-08-05 | 中国科学院计算技术研究所 | 一种防止nat-pt设备受到攻击的方法 |
CN101136910B (zh) * | 2006-08-30 | 2010-09-29 | 中国电信股份有限公司 | 网络地址和协议翻译设备与应用层网关设备 |
CN101179468B (zh) * | 2006-11-10 | 2011-06-22 | 中兴通讯股份有限公司 | 异构网络sip终端与h.323终端通讯的方法 |
CN101197820B (zh) * | 2006-12-05 | 2011-04-20 | 中兴通讯股份有限公司 | IPv6 SIP终端与IPv4 SIP终端通讯的方法 |
CN101257435B (zh) * | 2007-02-28 | 2011-08-17 | 上海亿人通信终端有限公司 | 基于nat-pt的sip应用层网关的实现方法 |
CN101184065B (zh) * | 2007-12-05 | 2010-06-02 | 中兴通讯股份有限公司 | 一种实现IPv6与IPv4网络终端语音通讯的方法和设备 |
CN101237401B (zh) * | 2008-02-26 | 2010-06-02 | 中兴通讯股份有限公司 | 数据连接建立方法及路由器 |
CN102165752A (zh) * | 2008-09-25 | 2011-08-24 | 奥地利西门子公司 | 在IPv4与IPv6数据终端设备之间在SIP控制的数据流中双向地址转换的方法和设备 |
CN102165752B (zh) * | 2008-09-25 | 2014-04-23 | 西门子企业通讯有限责任两合公司 | 在IPv4与IPv6数据终端设备之间在SIP控制的数据流中双向地址转换的方法和设备 |
CN101808143A (zh) * | 2010-03-12 | 2010-08-18 | 中国电力科学研究院 | 一种IPv4电力终端接入IPv6电力数据通信网络的方法 |
CN101808143B (zh) * | 2010-03-12 | 2013-06-05 | 中国电力科学研究院 | 一种IPv4电力终端接入IPv6电力数据通信网络的方法 |
US8837474B2 (en) | 2011-12-19 | 2014-09-16 | Qualcomm Incorporated | Apparatus and methods for efficient network address translation and application level gateway processing |
CN103441933A (zh) * | 2013-07-22 | 2013-12-11 | 汉柏科技有限公司 | 一种实现ipv4设备和ipv6设备通信的方法 |
CN110138748A (zh) * | 2019-04-23 | 2019-08-16 | 北京交通大学 | 一种网络融合通信方法、网关设备和系统 |
CN110138748B (zh) * | 2019-04-23 | 2020-10-23 | 北京交通大学 | 一种网络融合通信方法、网关设备和系统 |
CN112825518A (zh) * | 2019-11-21 | 2021-05-21 | 湖北省电力勘测设计院有限公司 | 一种基于内容过滤的应用协议筛选及匹配方法 |
CN116566943A (zh) * | 2023-07-12 | 2023-08-08 | 明阳时创(北京)科技有限公司 | 一种音视频流轻量级直转中继方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100493049C (zh) | 2009-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1674565A (zh) | 一种用于网络地址转换和协议翻译中的应用层网关的方法 | |
CN1623310A (zh) | 可经由网络地址转换型设备操作的通信协议 | |
CN1722729A (zh) | 用于在异构网络之间通信的系统和方法 | |
JP4660624B2 (ja) | 互いに異なるipアドレス体系を使用するipネットワークの相互接続システム、相互接続方法及びそのsipメッセージルーティング方法 | |
CN101552848B (zh) | 一种基于会话初始协议的会话方法及设备 | |
US20050185672A1 (en) | IPv6/IPv4 translator | |
CN1922826A (zh) | 隧道服务方法和系统 | |
CN1992667A (zh) | 用于隧穿分组的isatap路由器及其方法 | |
CN1518265A (zh) | 消息变换装置及ip电话装置 | |
CN1716954A (zh) | 基于过渡机制的IPv6网和IPv4网间互通的方法 | |
CN1947401A (zh) | 用于同移动终端建立会话发起协议通信会话的系统和方法 | |
CN101056271A (zh) | 穿越nat的方法及相应的通信终端和nat设备 | |
CN1398095A (zh) | 一种移动终端寻址方法 | |
CN1951085A (zh) | 用来与终止网络节点建立互联网协议连接的系统和方法 | |
CN1968310A (zh) | 一种实现号码携带业务的系统及方法 | |
CN1976356A (zh) | 一种网络地址转换穿透系统、方法和用户设备 | |
CN1957578A (zh) | 通信方法及设备、数据库信息检索方法及设备 | |
CN101610295B (zh) | 使用非特定IPv6地址的无状态IPv4/IPv6分组转换方法 | |
CN1926840A (zh) | 在至少两台计算设备间建立连接时的地址和端口号提取 | |
WO2007086812A1 (en) | Methods for transmitting and receiving data and communication devices | |
CN1223159C (zh) | 一种支持地址转换应用网关的方法 | |
CN101080041A (zh) | 一种通讯系统中建立通讯业务连接的方法 | |
CN1604589A (zh) | 支持会话启动协议穿越的防火墙实现方法 | |
CN1665235A (zh) | 一种穿越子网的方法及子网穿越系统 | |
CN101036342B (zh) | 选择呼叫会话的路由模式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090527 Termination date: 20200510 |