具体实施方式
接着,将结合附图来详细说明本发明的各个实施例。
图1描述了通信系统的示意方框图,在该通信系统中,可以实现根据本发明的实施例的用于处理请求消息的方法和网络单元。
如图1中所示,终端101(或者UE)首先连接到无线接入网102。GSN103是用于向终端101提供IP连网服务的网络单元,换句话说,用于将终端101连接到IP网络。GSN 103典型地包括服务GPRS支持节点(SGSN)1031和GGSN 1032。
P-CSCF 104是用于向诸如终端101的终端提供SIP代理服务的网络单元。P-CSCF 104保持与终端的安全关联,并且与分组网络中的资源管理交互。它也负责压缩SIP消息。
S-CSCF(服务CSCF)105是用于向诸如终端101的终端提供SIP用户服务的网络单元。S-CSCF 105负责注册用户的SIP注册,并且命令HSS在注册时更新。
I-CSCF(询问CSCF)105与HSS通信以确定S-CSCF的地址;HSS107存储关于终端的信息,诸如用户简档,其中包括例如终端101的地址。
如上所述,当在GSN 103(具体是GGSN 1032)和P-CSCF 104之间存在NA(P)T设备110时,传统的Early IMS机制是不可用的。例如,当终端101的注册消息正在进行网络地址端口转换(NA(P)T)时,将转换网络层中的源地址。当P-CSCF 104将网络层中的源地址与SIP报头中的源地址相比较时,它将发现这两个地址不相同,并且将接收到这个请求消息的网络层中的源IP地址和端口号分别附加在Via报头的“received”和“rport”参数中。当请求消息被转发到S-CSCF 105时,S-CSCF 105将相对于HSS 107中存储的终端地址来比较“received”和“rport”参数中的地址。显然,这两个地址不相同,因此不能通过注册。结果,Early IMS错误地将地址转换处理为盗用。
为了解决本领域中的所述技术问题,本发明提供了一种用于处理请求消息的方法。图2描述了根据本发明的一个实施例的用于处理请求消息的方法的流程图。
如图2中所示,首先,诸如终端101的终端在步骤201发起请求消息。
在本发明的实施例中,由于NA(P)T设备110的存在,终端101发起的请求消息中的IP分组所包含的源传送地址和P-CSCF 104接收到的请求消息中的源传送地址一般情况下是不同的。这里的传送地址包括IP地址和端口号。之所以考虑传送地址而不是只考虑单纯的IP地址或端口号,是因为有的NA(P)T设备仅通过端口号来区分用户,有的NA(P)T设备仅通过IP地址来区分用户。采用传送地址,即IP地址加端口号的形式来区分用户,对于各种型号的NA(P)T设备具有广泛的适用性。
然后,在步骤202判定所述请求消息中的源传送地址是否与SIP头中的源地址相同。更具体地,当诸如P-CSCF 104的P-CSCF从终端接收到所述请求消息时,它将该消息中的源传送地址与SIP报头中的源地址相比较,SIP报头中的源地址例如从“sent-by(发送自)”参数可以得知。如果这两个地址相同,即现有技术中的情况,直接将该请求消息转发至S-CSCF 105作进一步处理。如果这两个地址不相同,进入到下一个判断框,P-CSCF 104将从接收的传送地址判定所述消息是否经过某个NA(P)T设备或者说该传送地址是否在某一个NA(P)T设备的地址范围之内。
如果P-CSCF 104发现接收的源传送地址不在任何NA(P)T设备的公共IP地址范围内,则P-CSCF 104将在步骤205通过下述方式将改变的地址指示为用于地址验证的地址:例如象3GPP 33.978建议的那样,通过将接收到这个请求消息的传送地址-具体地是IP地址和端口号-分别附加在Via报头的“received”和“rport”参数中。
如果P-CSCF 104发现接收的请求消息中的传送地址在NA(P)T设备之一(例如NA(P)T 110)的公共IP地址范围内,则如步骤204所示的,P-CSCF 104可以从该接收的源传送地址确定NA(P)T设备的位置并且查询地址映射信息。例如,P-CSCF 104可以向NA(P)T 110发送包含该接收的源传送地址的地址映射请求信息。NA(P)T 110例如向P-CSCF 104返回包含该源传送地址的映射地址的地址映射回复信息。P-CSCF 104可以从地址映射信息得知该传送地址在进行网络地址端口转换前的传送地址,如果转换前的地址存在的话。在这里我们可能还需要考虑一种情况:即P-CSCF104并没有发现相关的映射信息,在这种情况下,正如3GPP 33.978建议的那样,P-CSCF 104增加“received”、“rport”参数,并将它们分别设置为接收的源传送地址的IP地址和端口号。这也属于现有技术,所以图中没有专门示出这种情况。
接着,在步骤206中,P-CSCF 104将把该转换前的源传送地址与SIP报头中的源地址相比较。如果它们相同,则如方框208所示,P-CSCF 104不在Via报头中添加“received”和“rport”参数。需要注意的是,方框208示出的步骤中实际上不需要进行任何操作,所以我们以虚线框的形式示出。如果它们不同,如207所示,P-CSCF 104将在Via报头中添加“received”和“rport”参数,并将这两个参数值设置为进行网络地址端口转换之前,即NA(P)T前的传送地址的IP地址和端口号。
优选地,P-CSCF 104保存地址映射关系,用于以后回复消息穿越NA(P)T时使用。
然后,在步骤208,例如不是通过在Via报头中添加“received”和“rport”参数,P-CSCF将SIP报头中的源地址指示为用于地址验证的地址。
当S-CSCF 105接收到请求消息时,它查看“received”参数是否在Via报头中。如果这个参数存在,则根据3GPP 33.978来比较(验证)“received”和“rport”中的地址。但是如果“received”参数不存在,则仅仅根据3GPP 33.978来比较(验证)“sent-by”中的地址。
从上面的说明可以看出,使用根据所述实施例的用于处理请求的方法,在Early IMS中,当NA(P)T在GGSN和P-CSCF之间时,可以解决在地址转换和盗用之间的区别问题。仅仅在P-CSCF处理流中有一些很小的改变,而UE和S-CSCF保持不变。另外,对现有的Early IMS机制没有性能上的影响。同时,如上文所述,本发明考虑传送地址而不是只考虑单纯的IP地址或端口号来进行网络地址端口转换前后的地址比较,对于各种型号的NA(P)T设备具有广泛的适用性。
在同一发明思想下,图3描述了根据本发明的一个实施例的网络单元的示意方框图。所述网络单元可以在图1的通信系统1000中作为P-CSCF实现。
如图3中所示,网络单元300包括:比较装置301,用于将接收的请求消息中的源传送地址与所述请求消息的SIP报头中的源地址相比较;查询装置302,用于在比较结果不同时,定位转换该传送地址的网络单元并向其查询地址映射信息;以及指示装置303,用于基于地址映射信息的查询结果,在所述请求消息中指示用于地址验证的地址。
更具体地,比较装置301将包含所述消息的IP分组的源传送地址(包括IP地址和端口号)与所述消息的SIP报头中的源地址相比较,并且,当该源传送地址与所述消息的SIP报头中的源地址不同时,查询装置302根据接收消息中的该源传送地址定位网络地址端口转换设备(例如NA(P)T110)并向其发送包括该源传送地址的信息,以查询与该源传送地址相关的地址映射信息。查询装置302从NA(P)T 110提供的映射信息中可以查到该源传送地址在进行网络地址端口转换前的传送地址。
当获得源传送地址在进行网络地址端口转换前的传送地址后,比较装置301再次进行地址比较,这次是将获得的网络地址端口转换前的传送地址与SIP头中的源地址进行比较。
指示装置303根据比较结果在所述请求消息中指示用于地址验证的地址。具体的说,指示装置303被配置为如果所述网络地址端口转换之前的传送地址与所述SIP报头中的源地址相同,则将所述SIP报头中的源地址指示为所述用于地址验证的地址;并且
如果所述网络地址端口转换之前的传送地址与所述SIP报头中的源地址不同,则将所述网络地址端口转换之前的传送地址指示为所述用于地址验证的地址。
可以从上述描述中看出,用网络单元300作为P-CSCF,在Early IMS中,当NA(P)T在GGSN和P-CSCF之间时,可以解决地址转换和盗用之间的区别问题。仅仅在P-CSCF处理流中有一些很小的改变,而UE和S-CSCF保持不变。另外,对于现有的Early IMS机制没有性能上的影响。而且根据本发明的网络单元300由于在进行地址比较时,考虑了使用IP地址加端口号而不是单纯的IP地址或端口号,因此对于不同的NA(P)T设备具有广泛的适用性。
和图3中示出的请求消息处理方法相对应,图4给出了回复消息的处理流程。
如步骤401所示,在S-CSCF 105进行地址验证之后将发送一个回复消息,回复消息中包含目的传送地址。该消息到达P-CSCF 104后,在步骤402,P-CSCF需要检查有没有“received”参数,如果没有,则在步骤405中检查“sent-by”参数中的地址是不是对应P-CSCF保存的NA(P)T地址映射表中的某一个源地址,如果是,则如步骤407所示,将回复消息的”send-by”中地址设置为对应的NA(P)T后的地址。如果回复消息中存在“received”参数,则在步骤404检查“received”中的地址是否对应P-CSCF保存的NA(P)T地址映射表中的某一个源地址,如果是,则将“received”中地址改为对应的NA(P)T后的地址,接下来的处理和路由机制与SIP路由机制一致,即P-CSCF将根据”received”或者”send-by”中的地址设置回复消息的传输层的目的传送地址,并将消息送到NA(P)T 110设备或者直接传送给UE 101。
本领域技术人员能理解,可以用特殊设计的电路或者芯片或者通过执行相应程序的计算设备(信息处理设备)来实现网络单元300及其部件。而且,网络单元300的相应部件可以在物理上分离,但是在操作上互相协作。
虽然已经使用一些示例性实施例详细说明了本发明的用于处理请求的方法、网络单元和通信系统,但是这些实施例不是穷尽性的,本领域的技术人员可以在本发明的精神和范围内进行各种改变和修改。因此,本发明不限于这些实施例;而是,本发明的范围唯一地通过所附的权利要求限定。