用于在利用隧道技术的gprs通信系统中执行快速校验和运算的方法和系统的制作方法

文档序号:7874580阅读:218来源:国知局
专利名称:用于在利用隧道技术的gprs通信系统中执行快速校验和运算的方法和系统的制作方法
技术领域
本发明涉及在利用隧道技术的通信系统上执行快速校验和运算的方法和系统。
背景技术
校验和计算是电信系统中常用的为了确保传送的信息内容未改变的一种方法。
例如在IP协议中,在信头中的一个字段中插入信头校验和值HC。对具有设置为0的信头校验和字段的整个信头计算信头校验和C。一接收到IP分组,再次计算信头校验和值C并将其与在校验和字段中指示的值HC进行比较。如果它们是相同的,则认为信头内容是完整无缺的。
根据因特网工程任务组(IETF)以及因特网工程指导组(IESG)规范RFC1071描述循环冗余校验,将任意长的串转换成16位校验和。分组被认为是双字节字的串(a,b),(c,d),(e,f)…,由此,如果字节串是奇数,则将一字节的零加入串中。校验和函数是基于利用在下面标明为+的一补数和。
最初,串的两个双字节字相加并且进位加入和中。该过程在和以及下一个字上迭代进行,直到采用了串中所有的字。然后,求一补数。这种校验和HC在分组传输中存储在分组的信头中并且可以被写为HC=~C=~((a,b)+(c,d)+(e,f).....),其中~表示一补数。
对双字节字求一补数的次序无关紧要。
当读分组时,对分组中相同(接收)的串执行校验和计算C。如果HC+C=0×FFFF(即+0),则认为传送的串未改变。
IP信头包括生存期字段TTL,每次IP分组经过路由器时,其值递减。然而,当最初传送分组时,对涵盖分配了预定开始值的TTL字段的串求信头校验和值HC。
不是每次分组通过路由器时重新计算信头校验和值,而是执行下面的在RFC1624中给出的计算HC′=~(C+(-m)+m′)=~(~HC+~m+m′),在此,m是16位TTL字段在其改变之前的值,m′是该字段在改变之后的值,HC是在改变之前的信头校验和值,HC′是期望的新值,由于从m到m′的变化,为了让信头校验和反映TTL值中的变化,使得随后错误检测的可能性保持完整,HC′要替代分组中信头校验和HC。
众所周知,IP网络广泛用于包括骨干网的电信网中。例如,通用分组无线电系统(GPRS)网络使用IP分组递交方案。
在典型GPRS平台中的IP转发的性能虽然受到线路速度的限制,但是与分组大小无关。然而隧道技术性能取决于分组的长度,因为需要在整个分组长度上计算用于UDP协议的校验和。GTP协议依赖于UDP校验和,因此没有它自己的校验和。


图1,示出了GPRS系统的已知实例,它包括移动台MT,MT耦合到在服务节点A(SGSN),后者又耦合到网关节点C(GGSN)。与因特网地址IP_ADD_C相关联的节点C通过因特网耦合到正与示范性因特网地址IP_ADD_F相关联的服务器节点F。而且,无线电网络中心(RNC)以及基站控制器(BSC)都耦合到节点A。
例如,移动台中WWW客户机应用(例如,浏览器)进行到因特网上的服务器F的连接。例如,移动台向服务器F发送超文本传输协议(HTTP)请求。移动台中的TCP/IP应用将HTTP信息放入标为IP_F/TCP_29的TCP/IP分组的净荷部分。具有目的地址IP_F的IP分组具有用于IP信头的循环冗余校验值CRC_4和涵盖UDP和净荷字段的值CRC_4。
为简单起见,分组是从节点A得到的。在GPRS网络中接收到分组时,SGSN节点A选择正与IMSI_3标识的移动台MS相关联的隧道,即GTP隧道GTP_2。上面的数据被封装到包括节点C、GGSN的目的地址IP_C以及对应的端口号UDP_10的IP/UDP分组中。
正在GPRS网络中传送的完整分组具有如图2所示的布局,其中在节点A中第一IP分组IP_F-TCP_29-PL被封装在另一个分组IP_C-UDP_10-GTP_2中。在GPRS中,隧道化(tunnelled)的分组可具有多达1502字节的长度。
UDP/IP分组包含两个校验和。一个校验和位于IP信头并且另一个位于UDP信头。IP信头校验和涵盖IP信头中的大部分字段,但是除了无数据之外。在UDP或TCP信头中的校验和在它自己的信头、净荷以及包含源和目的IP地址的伪IP信头上被计算。
在UDP/IP上用隧道传送UDP/IP意味着外部的UDP校验和涵盖整个内部UDP/IP分组。因为UDP校验和涵盖所有净荷并且当隧道化后数据没有改变,所以相同的数据由相同的校验和算法涵盖两次。
如图2所示,UDP和TCP协议分别包含在隧道化分组和被封装分组的整个长度上计算的校验和,例如,对交迭了值CRC_3和CRC_4的串的段求循环冗余值CRC_2。
图3-6分别表示用于IP分组、UDP分组、GTP分组以及TCP分组的众所周知的格式,以及它们对应的循环冗余校验值CRC_IP、CRC_UDP、CRC_GTP、CRC_TCP以及如通过左边的箭头所说明的这些值的涵盖范围。
如上所述,在所谓的伪信头上求某些CRC值,也就是在不是所讨论的分组的一部分但属于封装分组(IP)并且构成CRC计算的一部分的字段上求某些CRC值。这些伪字段在图中由虚线字段标明。
而且,特定帧格式的CRC值不涵盖自己的CRC字段和各种其它字段。相应CRC值没有涵盖的那些值已经由带图案的字段标明。
发明概述本发明的第一目的是在数据通信网络上提供有效的隧道化操作。
通过权利要求1实现该目的。
第二目的是提供有效的去隧道化。
通过权利要求2阐明的主题实现该目的。
进一步的目的是阐明用于获得有效再隧道化的方法。
通过权利要求4阐明的主题实现该目的。
进一步的目的是阐明用于获得有效隧道化的方法,其中执行IP分片。
通过权利要求7的主题实现该目的。
根据本发明的一个方面,在用于GSM和UMTS的GPRS系统中在GTP隧道协议上利用根据本发明的校验和运算,该协议实现为在TCP/IP或UDP/IP上携带的协议。
本发明减少用于隧道化分组的性能成本,并且当在基于TCP或UDP的隧道协议上隧道化TCP/IP和UDP/IP时,使得性能成本与分组长度无关。
通过下面对本发明的详细描述会明白更多的优点。
附图简述图1示出示范性现有技术GPRS网络的摘录,图2示出用于图1所示的GPRS网络的示范性分组,并指示分组中各种循环冗余校验值涵盖哪些字段,图3公开已知的IP分组格式,图4公开已知的UDP分组格式,图5公开已知的GTP’99隧道分组格式,图6公开已知的TCP分组格式,图7公开根据本发明的第一实施例为隧道化的或去隧道化的分组计算和存储的校验和,图8公开用于GPRS网络中的被封装分组的本发明的第二实施例的CRC值,图9公开在GPRS网络中正被再隧道化的分组的本发明第三实施例的分组,图10公开在已知网络中分片的分组的处理,以及图11公开根据本发明的第四实施例的分片的分组的处理。
本发明优选实施例的详细描述隧道化和去隧道化根据本发明的第一实施例,分组的所存储校验和当根据另一个利用相同校验和算法的分组协议将它隧道化时被再用。
在图7,提供了用于说明本发明的第一实施例的图,表示将分组的第一串J封装到具有信头K的另一个分组中。
在下面,符号C用于校验和的计算值并且HC用于校验和的存储值。例如,计算值C_J对应于存储的校验和值H_J并且C_K对应于HC_K。实体dC_K对应于信头串K的计算值。
根据本发明,它应用I HC′=~(~HC+∑~m[x1..xn]+∑m′[y1..yn]),其中m指示正从给定串删除的串的x1-xn部分的校验和值并且m′指示加入具有存储的校验和值HC的给定串的y1~yn部分。因此II HC′=~(~HC+C_m′),应用于特例,其中具有存储的校验和HC的已知串被加入另一个具有校验和值C_m′的串m′。
因为可以与增加的值的位置或各个字段无关地更新校验和,这引起改变的信头值,可以按任意顺序添加值。根据本发明,这些属性用于校验和的预计算部分并且用于组成新信头校验和值,而不是当隧道化分组时执行竞争重新计算。
根据本发明的第一实施例,提供用于执行隧道化的方法,其中,接收第一分组(J),它具有存储的涵盖第一分组的至少若干部分的第一校验和值(HC_J),并且其中通过向第一分组提供信头(K)来封装第一分组(J)。
不是计算第一分组J的串的校验和值,而是计算涵盖信头(K)的至少若干部分、但没有涵盖第一校验和涵盖的部分的第二校验和值(dC_K)。
随后,计算并分配第三校验和值(HC_K),根据III HC_K≡HC)_J+~dC_K,随后将分配的校验和值(HC_K)存储在信头(K)中,并且传送被封装的分组(J,K)。
根据本发明,用于隧道化的相同机制也用于相反方向,也就是说,当去隧道化分组时用于验证校验和。应当将从计算得到的校验和与隧道化分组的初始校验和进行比较。如果校验和不相同,应当丢弃该分组。
用于校验和的增量计算(dC_K)的方法被用于在隧道末端验证各个校验和。这通过与上面用于隧道化的方法类似的方法实现,但不是使用初始分组作为源,计算校验和用于对照内部分组校验和来验证。
执行去隧道化的方法包括如下步骤,接收包含被封装分组(J)的隧道化分组(K),提取存储的涵盖被封装分组的至少若干部分的第一校验和值(HC_J),计算涵盖信头(K)的至少若干部分、但不涵盖第一校验和值(HC_J)涵盖的部分的第二校验和值(dC_K),作为第一校验和值与第二校验和值的一补数的一补数和来计算第三校验和值(HC_J+~dC_K),提取存储的对应于隧道化分组的第四校验和值(HC_K),
将第三和第四校验和值相互比较IV HC_K=HC_J+~dC_K?如果所述第一和第二校验和值是相等的,则认为至少信头(K)在传输后是完整无缺的。
也可以在隧道端点预计算校验和的非易失部分,以便加速CRC的验证。
根据图8所示的本发明的另一个实施例,TCP或UDP净荷分组所包含的校验和用于在隧道协议的UDP信头中的校验和的计算。
参照图8和图1给出的示范性情况更详细地说明该过程,用于说明当将消息用隧道传送到服务器F时,如何能够提高处理校验和值的速度。为了说明的简化,仅示出用于给定串段的存储值之一HC,尽管存在用于相应实体的各个计算值C(未示出)。而且,应当参照图3-6。
当在SGSN节点A接收到来自移动台MS打算发给服务器F的IP数据报时,建立或再用A和C之间的隧道用于传输IP数据报。在这种情况下,来自移动台IMSI_3具有净荷PL的到IP地址F的端口29的IP/TCP数据报应当封装到GTP隧道GTP_2中。
不是从IP信头IP_C起在隧道化信息上计算HC_2的校验和值,而是将校验和计算为V HC_2=~(~HC_4+C_3′+C_d2)其中VI C_d2=C_p2+C_q2其中C_p2相当于可为串(IP_1_src,IP_1_dst,UDP_1_src,UDP_1_dst,GTP-字段<长度除外>)的非易失部分预计算的值,非易失部分即用于隧道GTP_2的部分,它与使用隧道的实体、即标为IMSI3的移动台或别人无关。
C_q2相当于串的易失部分。应当计算该部分(即UDP_长度,GTP_长度)。
根据HC_1=~C_1可计算HC_1,因为预计算值的计算和检索具有可比的速度。
也计算C_3′,但IP目的地址和IP源地址被排除在外,因为校验和值已经包括在UDP信头中。随后,根据通常路由选择原则利用TTL-1更新C_3′。
通常,应当注意,上面的计算涵盖被封装的TTL值,这些必须包括在计算中。
将HC_4直接插入上面的表达式中。
因此,通过在上面表达式中再用信头中所指示的信头校验和,可以比重新计算整个串部分的校验和快得多地执行在隧道化消息中封装分组的过程,其中包括提供相关校验和字段。
换句话说,通过从TCP信头取出校验和HC_4并且就像IP地址不是校验和的一部分那样来更新校验和,从而计算新校验和HC_2。此后,通过与来自隧道化IP信头的校验和HC_3′相加来更新校验和。最后,再次更新校验和,这次增加来自隧道校验和的相关信息,该隧道校验和是在外部UDP协议信头、隧道的IP地址和附加隧道信头(例如GTP信头、HC_d2)上计算的。可以为每个隧道化的分组提前计算和再用这部分校验和。
以如上所述的相同方法来实现在隧道端的验证。
如果要权衡被封装的数据,协议中的较高层会处理数据是否要重传。
在GRE(通用路由封装)隧道中,利用与用于IP的相同的校验和算法来计算校验和。这意味着当校验和选项用于GRE隧道时,本发明也是有效的。
应当指出,根据本发明的性能增强可用软件或硬件来实现。
再隧道化现在参照图9,其中IP-分组、IP_0、PL在给定的节点、诸如在SGSN-W节点(SGSN-WCDMA)中再隧道化,该节点根据下面的方法处理进入的分组。
在给定情况下,分组至少包含具有IP源地址IPsrc_1和IP目的地址IPdst_1的第一IP信头部分、第一中间部分(UDP_1)和净荷,存储的第一校验和HC_1存储在第一中间部分,涵盖第一IP部分、第一中间部分和净荷的至少若干部分。
根据本发明,SGSN从中间部分读取存储的第一校验和值,并且从分组中丢弃第一IP信头部分和第一中间部分,并丢弃与GTP隧道GTP_1相关的GTP字段。
随后,SGSN添加具有IP源地址IPsrc_2、IP目的地址IPdst_2_1的第二IP信头部分、第二中间部分到分组UDP_2和第二GTP隧道信头GTP_2。
随后,根据下式计算涵盖第二IP部分、第二中间部分、GTP字段和净荷的若干部分的第二校验和值,VII HC_2=~(~HC_1+~IPsrc_1+~IPdst_1+IPsrc_2+IPdst_2+~GTP_1+GTP_2),上面的第二校验和值HC_2存储在第二中间部分UDP_2。
如上所述,SGSN可执行对分组的净荷部分(IP_0,PL)的TTL更新,虽然这通常不在GPRS网络中进行。
根据本发明的一个有利实施例,可以安排节点,以便GTP字段或GTP字段的校验和值保持不变。因此,简化了上面的校验和计算。
分片图10中是已知的实例,说明分片的分组如何从WWW服务器通过因特网再通过GGSN节点、SGSN节点到达RNC并进一步到达移动终端MT。
如图所示,由于链路的传送单位大小的限制,具有信头IP_0和净荷PL的示范性因特网分组被分片,因此,出现两个片段,即具有净荷的第一部分PL_A的IP_0’和具有净荷的随后部分的随后片段IP_0”,各自的IP信头指示片段的次序。取决于分组大小,更多的片段可以跟随。
现有技术GGSN将两个上面的片段封装在对应隧道中,如图10所示,因此,无论如何应用,在各自的TCP或UDP字段中,为各个被封装的分组计算对应的校验和值HC_2A和HC_2B。
在SGSN节点中再隧道化两个上面被封装的分组,导致重新计算在各自中间字段中的校验和值。
RNC接收各个片段并将它们转发到移动终端,其中完成初始的净荷。
根据本发明的有利实施例,采用若干步骤以便加速通过相同方式或通过如图10中的网络中类似节点来递交分组的过程。
在图11,示出至少在第一在服务节点和第二在服务节点(GGSN,SGSN)之间的隧道化。
GGSN接收具有第一净荷PL的第一IP分组IP_0的IP片段IP_0’、PL_A、IP_0”、PL_B,因此第一在服务节点缓冲所接收的IP片段IP_0’、包括第一分片的IP分组IP_0’的IP_0”,直到接收了第一给定IP分组IP_0的所有片段。
随后,GGSN形成伪分组,伪分组包括指示第一片段的第一隧道IP信头IP_2’、中间部分UDP_2、隧道字段GTP_2、第一分片的IP分组的IP信头IP_0’和第一IP分组的所有净荷片段PL_A、PL_B…,在伪分组上计算至少涵盖第一IP片段的所有净荷片段的校验和值HC_2,并在中间部分TCP/UDP_2中存储该校验和值。
有利的是,所计算的校验和值HC_2还涵盖中间部分UDP_2、隧道字段GTP_2、第一分片的IP分组的IP信头IP_0’。
根据本发明的有利实施例,参照上述图7和图8执行校验和值HC_2的计算。
如刻点线所指示的分组的伪部分被删除并且第一节点传送第一隧道化分组,其中包括隧道IP信头IP_2’、包括计算的校验和值HC_2的中间信头UDP_2、隧道字段GTP_2、第一分片的IP分组的IP信头IP_0’以及第一IP分组的第一净荷片段PL_A。
当第一分片的隧道化分组到达SGSN时,通过替换隧道IP信头IP_2;IP_1、中间信头UDP_2;UDP_1、GTP隧道字段GTP_2;GTP_1,将第一分片的分组再隧道化。
递交后续分组,同时大大节省了处理能力/指令数量。
从后续片段中,GGSN形成各个分组,每一个仅包括指示后续片段的后续隧道IP信头IP_2’和后续净荷片段PL_B。
如果存在两个以上片段,以同样方式生成后续的片段。
在SGSN中以这样的方式再隧道化后续的分组,使得以再隧道化IP信头IP_1”替换隧道IP信头IP_2”,并且后续隧道化分组的其余部分未修改。
根据本发明的RNC缓冲用于给定IP ID值的给定IP隧道信头IP_1’、IP_1”、IP_1的片段,直到接收了所有的片段,并且从第一隧道化分组IP_0’中分解出第一IP信头IP_0。
最后RNC将分解的第一IP信头以及所有净荷组合在要发往接入网的分组中LLC、IP_0、PL。
如图11所示,由于减少了开销,所以也实现了无线电接口上的节省。
权利要求
1.执行隧道化的方法,包括以下步骤,-接收第一分组(J),它具有存储的涵盖所述第一分组的至少若干部分的第一校验和值(HC_J),-通过向所述第一分组提供信头(K)来封装所述第一分组(J),-计算涵盖所述信头(K)的至少若干部分、但不涵盖所述第一校验和涵盖的部分的第二校验和值(dC_K),-作为所述第一校验和值与所述第二校验和值的一补数的一补数和来计算并分配第三校验和值(HC_K),-将所述分配的校验和值(HC_K)存储在所述信头(K)中,-传送所述被封装分组(J,K)。
2.执行去隧道化的方法,包括以下步骤,-接收包含被封装分组(J)的隧道化分组(K),-提取存储的涵盖所述被封装分组的至少若干部分的第一校验和值(HC_J),-计算涵盖所述信头(K)的至少若干部分、但不涵盖所述第一校验和值(HC_J)涵盖的部分的第二校验和值(dC_K),-作为所述第一校验和值与所述第二校验和值的一补数的一补数和来计算第三校验和值(HC_J+~dC_K),-提取存储的对应于所述隧道化分组的第四校验和值(HC_K),-将所述第三和第四校验和值相互比较,如果所述第一和第二校验和值是相等的,则认为至少所述信头(K)在传输后是完整无缺的。
3.如权利要求2所述的方法,另外还包括对所述第一分组(J)执行TTL更新的步骤。
4.执行再隧道化的方法,包括以下步骤,-接收分组,所述分组至少包括具有IP源地址(IPsrc_1)和IP目的地址(IPdst_1)的第一IP信头部分(IP_1)、第一中间部分(UDP_1)和净荷(IP_0,PL)、存储的第一校验和(HC_1)存储在所述第一中间部分(UDP_1)中,涵盖所述第一IP部分(IP_1)、所述第一中间部分(UDP_1)和所述净荷(IP_0,PL)的至少若干部分,-从所述中间部分(UDP_1)读取所述存储的第一校验和值(HC_1),-从所述分组中丢弃所述第一IP信头部分(IP_1)和所述第一中间部分(UDP_1),-将具有IP源地址(IPsrc_2)和IP目的地址(IPdst_2)的第二IP信头部分(IP_2)和第二中间部分(UDP_2)添加到所述分组,-对至少所述第一IP源地址的一补数(~IPsrc_1)、所述第一IP目的地址的一补数(~IPdst_1)、所述第二IP目的地址(IPdst_2)和所述第二IP源地址(IPsrc_2)求一补数和,-通过所述和的一补数计算第二校验和值(HC_2),-将所述第二校验和值存储在所述第二中间部分(UDP_2)。
5.如权利要求4所述的执行再隧道化的方法,其中,所述净荷部分包括与GTP隧道相关的GTP字段,其中所述GTP字段[要]保持不变。
6.如权利要求4所述的方法,还包括以下步骤-从所接收的分组中丢弃与第一GTP隧道(GTP_1)相关的第一GTP字段(GTP_1),-将与第二GTP隧道相关的第二GTP字段(GTP_2)添加到所述隧道化分组中,并且其中还对所述第二GTP字段(GTP_2)和所述第一GTP字段的一补数(~GTP_1)求一补数和。
7.如权利要求4所述的方法,包括对所述分组的净荷部分(IP_0,PL)执行TTL更新的附加步骤。
8.至少在第一在服务节点和第二在服务节点(GGSN,SGSN)之间执行隧道化的方法,所述第一节点接收具有第一净荷(PL)的第一IP分组(IP_0)的IP片段(JP_0’、PL_A、IP_0”、PL_B)第一在服务节点-缓冲所接收的包括第一分片的IP分组(IP_0’)的IP片段(IP_0’,IP_0”),直到接收了第一给定IP分组(IP_0)的所有片段,-形成伪分组,所述伪分组包括指示第一片段的第一隧道IP信头(IP_2’)、中间部分(UDP_2)、隧道字段(GTP_2)、第一分片的IP分组的IP信头(IP_0’)和第一IP分组的所有净荷片段(PL_A、PL_B...),-在所述伪分组上计算至少涵盖第一IP片段的所有净荷片段的校验和值(HC_2),并在所述中间部分(TCP/UDP_2)中存储所述校验和值,-形成并传送包含[包括]隧道IP信头(IP_2’)、包括计算的校验和值(HC_2)的中间信头(UDP_2)、隧道字段(GTP_2)、第一分片的IP分组的IP信头(IP_0’)以及第一IP分组的第一净荷片段(PL_A)的第一隧道化分组。
9.如权利要求8所述的方法,形成并传送后续的隧道化分组包括指示后续片段的后续隧道IP信头(IP_2’)和后续净荷片段(PL_B)。
10.如权利要求8所述的方法,其特征在于,所述计算的校验和值(HC_2)还涵盖所述中间部分(UDP_2)、所述隧道字段(GTP_2)、所述第一分片的IP分组的IP信头(IP_0’)。
11.如权利要求8所述的执行第一隧道化分组的再隧道化的方法,其特征在于,通过替换所述隧道IP信头(IP_2;IP_1)、所述中间信头(UDP_2;UDP_1)、所述GTP隧道字段(GTP_2,GTP_1)将所述第一分片的分组再隧道化。
12.如权利要求11所述的方法,其中根据权利要求4-6中任一项计算所述中间部分的校验和值。
13.如权利要求9所述的执行后续隧道化分组的再隧道化的方法,其中以再隧道化IP信头(IP_1”)替换所述隧道IP信头(IP_2”),后续隧道化分组的其余部分未修改。
14.如权利要求13所述的执行分组的去隧道化的方法,-缓冲给定的IP隧道信头(IP_1’;IP_1”;IP_1)的片段,直到接收了所有片段,-从所述第一隧道化分组(IP_0’)中分解出第一IP信头(IP_0),-将分解的第一IP信头和所有净荷组合在要发往接入网的分组(LLC、IP_0、PL)中。
全文摘要
提供了为GPRS网络中各种节点实现快速校验和运算的方法。根据本发明的一个实施例,提供用于执行隧道化的方法,其中,接收具有存储的涵盖第一分组的至少若干部分的第一校验和值(HC J)的第一分组(J),并且其中通过向第一分组提供信头(K)封装第一分组(J)。计算涵盖信头(K)的至少若干部分但不涵盖第一校验和涵盖的部分的第二校验和值(dC K)并且计算并分配第三校验和值(HC K)。分配的校验和值(HC K)随后存储在信头(K)中,并且传送被封装的分组(J,K)。
文档编号H04L1/00GK1745532SQ03826013
公开日2006年3月8日 申请日期2003年2月24日 优先权日2003年2月24日
发明者J·贝克曼, S·梅尔哈格 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1