一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

GPRS隧道协议GTP包的处理方法和装置与流程

2021-10-19 20:14:00 来源:中国专利 TAG:隧道 装置 协议 方法 实施

gprs隧道协议gtp包的处理方法和装置
技术领域
1.本技术实施例涉及通信技术领域,尤其涉及一种gprs隧道协议gtp包的处理方法和装置。


背景技术:

2.为了应对未来爆炸性的移动数据流量增长、海量移动通信的设备连接、不断涌现的各类新业务和应用场景,如何提高带宽的利用率,是业界讨论的热点问题。
3.目前,为了提高带宽利用率,通常采用压缩数据包包头的方式进行数据包的传输,具体地,将长度相同的n个实时传输协议(real-time transport protocol,rtp)报文依次放置在用户数据报协议(user datagram protocol,udp)报文的载荷中,作为压缩后的报文,从而节省了n-1个报文对应的网络协议(internet protocol,ip)包头和udp包头;接收设备在接收到报文后,按固定长度从udp载荷中读出内容作为一个rtp报文。并且由于是对固定长度的报文进行合并,因此报文压缩和解析时不需要对各段的长度进行处理。上述的压缩方式,是利用了大多数类型的rtp流具有的两个属性:(1)ip、udp和rtp头中的大多数字段在rtp会话的生命周期内不会发生变化,这些常量值字段可以由在传输期间具有会话上下文的较少位来表示;(2)对于流中的连续分组,诸如序列号和时间戳之类的rtp报头字段增加了恒定量。
4.然而,由于通用无线分组业务(general packet radio service,gprs)隧道协议(gprs tunnelling protocol,gtp)中并没有在数据包的报头字段增加恒定量,故上述的压缩方式并不适用于gtp包,因此,在传输gtp包时,如何能够提高带宽的利用率,是目前亟需解决的技术问题。


技术实现要素:

5.本技术实施例提供一种gprs隧道协议gtp包的处理方法和装置,可以减少数据的传输量,从而可以大大提高网络的带宽利用率。
6.第一方面,本技术实施例提供一种gprs隧道协议gtp包的处理方法,应用于第一设备,该方法包括:确定待发送的n个第一gtp包,该n个第一gtp包具有相同目的网络协议ip地址,n为正整数;将该n个第一gtp包中的gtp包头及内容进行合并,得到第二gtp包;将该目的ip地址作为该第二gtp包的目的ip地址,并向第二设备发送该第二gtp包。
7.由于第一设备在确定出待发送的n个第一gtp包之后,可以将n个第一gtp包中的gtp包头及内容进行合并,这样可以在兼容传统gtp协议的前提下,能够对第一gtp包进行压缩和合并,能够保证在传输过程中保留原本gtp包头信息的基础上,可以减少数据的传输量,从而可以大大提高网络的带宽利用率。
8.在一种可能的实现方式中,该将该n个第一gtp包中的gtp包头及内容进行合并,得到第二gtp包,包括:分别将该n个第一gtp包中除第一个第一gtp包之外的其他第一gtp包的gtp包头及内容,依次合并到第一个第一gtp包的内容部分,得到该第二gtp包。
9.在本方案中,分别将n个第一gtp包中除第一个第一gtp包之外的其他第一gtp包的gtp包头及内容,依次合并到第一个第一gtp包的内容部分,从而得到合并后的第二gtp包的方式,由于n个第一gtp包可以复用ip头和udp头,因此,合并后的第二gtp包可以节省n-1个ip头和udp头的空间。
10.在一种可能的实现方式中,该第二gtp包的ip头中包括第一字段,该第一字段用于指示该第二gtp包的总长度。
11.在一种可能的实现方式中,针对每个第一gtp包,该第一gtp包的gtp包头中包括第二字段,该第二字段用于指示该第一gtp包的gtp包头及内容的长度。
12.在本方案中,由于第二gtp包的ip头中包括第一字段,该第一字段用于指示第二gtp包的总长度,每个第一gtp包的gtp包头中包括第二字段,该第二字段用于指示第一gtp包的gtp包头及内容,这样,第二设备可以根据该第一字段和第二字段,判断第二gtp包是否接收完整,从而可以保证数据接收的准确性。
13.在一种可能的实现方式中,该将该n个第一gtp包中的gtp包头及内容进行合并,得到第二gtp包,包括:分别将该n个第一gtp包中每个第一gtp包的gtp包头进行合并,得到合并后的gtp包头;分别将该n个第一gtp包中每个第一gtp包的内容部分进行合并,得到合并后的内容;将该合并后的内容添加到该合并后的gtp包头后面,得到该第二gtp包。
14.在本方案中的合并方式,使得合并后得到的第二gtp包的包头部分为固定长度,从而有利于提高第二设备对第二gtp包的解析效率,另外,由于将各个第一gtp包中的gtp包头集中放置,将各个第一gtp包中的gtp内容集中放置,从而可以实现报文的并行处理,有利于提高报文处理的效率。
15.在一种可能的实现方式中,该分别将该n个第一gtp包中每个第一gtp包的gtp包头进行合并,得到合并后的gtp包头,包括:分别将该n个第一gtp包中每个第一gtp包的gtp包头中的第二字段、第三字段和第四字段进行合并,得到合并后的gtp包头,其中,该第三字段用于指示标志位,该第二字段用于指示第一gtp包的gtp包头及内容的长度,该第四字段用于指示该第一gtp包的消息类型;相应的,该分别将该n个第一gtp包中每个第一gtp包的内容部分进行合并,得到合并后的内容,包括:分别将该n个第一gtp包中每个第一gtp包的gtp包头中剩余字段,以及内容部分进行合并,得到该合并后的内容;其中,该剩余字段包括该gtp包头中除该第二字段、该第三字段和该第四字段之外的其他字段。
16.本方案中的合并方式,使得合并后得到的第二gtp包的包头部分为固定长度,从而有利于提高第二设备对第二gtp包的解析效率,另外,由于将各个第一gtp包中的gtp包头集中放置,将各个第一gtp包中的gtp内容集中放置,从而可以实现报文的并行处理,有利于提高报文处理的效率。
17.在一种可能的实现方式中,该将该n个第一gtp包中的gtp包头及内容进行合并,得到第二gtp包,包括:分别将该n个第一gtp包的gtp包头中的第二字段、第三字段及第五字段,依次合并到第一个第一gtp包的扩展头中,再分别将该n个第一gtp包的gtp包头中剩余字段以及内容部分,依次合并到该第一个第一gtp包的扩展头后,得到该第二gtp包,其中,该剩余字段包括该gtp包头中除该第二字段、该第三字段和该第五字段之外的其他字段。
18.本方案中的合并方式,一方面,使得合并后得到的第二gtp包的包头部分为固定长度,从而有利于提高第二设备对第二gtp包的解析效率,另一方面,由于将各个第一gtp包中
的gtp包头集中放置,将各个第一gtp包中的gtp内容集中放置,从而可以实现报文的并行处理,有利于提高报文处理的效率,再一方面,这种封装方式对现有的gtp包的封装改动较小,提高了报文处理的效率。
19.在一种可能的实现方式中,该n个第一gtp包中每个第一gtp包的gtp包头中所包括的总长度字段占1字节。
20.本方案中总长度字段占1字节,这样可以减小第一gtp包所占用的空间。
21.在一种可能的实现方式中,该将该n个第一gtp包中的gtp包头及内容进行合并,得到第二gtp包,包括:对该n个第一gtp包中每个第一gtp包所包括的目标隧道端点标识teid字段进行压缩,得到n个压缩后的第一gtp包;将该n个压缩后的第一gtp包中的gtp包头及内容进行合并,得到该第二gtp包。
22.在本方案中,由于对每个第一gtp包所包括的目标teid字段进行压缩,可以节省包头的开销。
23.在一种可能的实现方式中,对该n个第一gtp包中每个第一gtp包所包括的目标隧道端点标识teid字段进行压缩,包括:根据该n个第一gtp包中每个第一gtp包所包括的目标teid,查询散列表中是否存在与各目标teid对应的映射值,该散列表中包括多个teid和映射值之间的对应关系;若该散列表中存在与各目标teid对应的映射值,则将该n个第一gtp包中每个第一gtp包所包括的目标teid替换为对应的映射值,其中,该映射值所占空间的大小小于该目标teid所占空间的大小。
24.在本方案中,由于映射值所占空间的大小小于目标teid所占空间的大小,这样,将第一gtp包中所包括的目标teid替换为映射值后,可以减小第一gtp包的gtp包头的开销,继而减小第二gtp包所占用的空间,提高了带宽的利用率。
25.在一种可能的实现方式中,该方法还包括:若该散列表中不存在与第一目标teid对应的映射值,则确定该第一目标teid对应的目标映射值,并将该第一目标teid和该目标映射值之间的对应关系存入该散列表中,该第一目标teid为多个目标teid中的任意一个teid;相应的,该向第二设备发送该第二gtp包,包括:向该第二设备发送该第一目标teid和该目标映射值之间的对应关系,以及该第二gtp包。
26.在本方案中,将第一目标teid和目标映射值之间的对应关系存入散列表中,这样,在下一次查询的时候将不会再计算该第一目标teid对应的目标映射值,而是直接用目标映射值替换第一目标teid即可,由此可以提高gtp包中目标teid字段压缩的效率。
27.在一种可能的实现方式中,该方法还包括:确定该n个第一gtp包中是否存在消息类型字段相同的目标第一gtp包;若存在消息类型字段相同的目标第一gtp包,则保留第一个目标第一gtp包中的消息类型字段,并删除其他目标第一gtp包中的消息类型字段。
28.在本方案中,若存在具有相同消息类型字段的多个目标第一gtp包,则保留第一个目标第一gtp包中的消息类型字段,并删除其他目标第一gtp包中的消息类型字段,这样,可以节省第一gtp包的gtp包头所占的空间,有利于提高带宽的利用率。
29.在一种可能的实现方式中,该向第二设备发送该第二gtp包,包括:将该第二gtp包放入缓冲队列;在该缓冲队列的长度到达预设长度或等待时间超过预设值时,将该缓冲队列中的第二gtp包发送给该第二设备。
30.在本方案中,可以是在缓冲队列的长度达到预设长度时,将缓冲队列中的第二gtp
包发送给第二设备,这样可以提高带宽的利用率。另外,也可以是在等待时间超过预设值时,将缓冲队列中的第二gtp包发送给第二设备,由此可以减少等待时延,提高gtp包的发送效率。
31.在一种可能的实现方式中,该方法还包括:该连续m个第二gtp包均为等待时间超过预设值时发送的,则减小该缓冲队列的长度,其中,m为正整数;或者,该第二gtp包在连续t次均为该缓冲队列的长度到达预设长度时发送的,则增大该缓冲队列的长度,其中,t为正整数。
32.在本方案中,由于通过动态调整缓冲队列的长度和等待时间,可以实时根据连续的链路包收发情况,在等待时延和合并效率之间完成效率的权衡,增加gtp包发送的动态性和灵活性。另外,在gtp包发送速率不高的情况下,可以动态减少缓冲队列的最大队列长度,减少第一gtp包合并度,从而可以高效利用系统带宽。而在gtp包发送速率较高的情况下,通过增加缓冲队列的长度,并减少等待时间的方式,可以加大第一gtp包的合并度,使链路带宽利用率进一步加大。
33.第二方面,本技术实施例提供一种gprs隧道协议gtp包的处理方法,应用于第二设备,该方法包括:接收第一设备发送的第二gtp包,该第二gtp包为将n个第一gtp包中的gtp包头及内容进行合并后得到的;对该第二gtp包进行解析,获得n个第一gtp包,该n个第一gtp包具有相同目的ip地址。
34.由于第一设备在确定出待发送的n个第一gtp包之后,可以将n个第一gtp包中的gtp包头及内容进行合并,这样可以在兼容传统gtp协议的前提下,能够对第一gtp包进行压缩和合并,能够保证在传输过程中保留原本gtp包头信息的基础上,可以减少数据的传输量,从而可以大大提高网络的带宽利用率。
35.在一种可能的实现方式中,该对该第二gtp包进行解析,获得n个第一gtp包,包括:从该第二gtp包中解析出n个gtp包头,以及与n个gtp包头中每个gtp包头对应的内容部分;分别将每个gtp包头和与该gtp包头对应的内容部分进行合并,得到该n个第一gtp包。
36.在本方案中,由于直接从第二gtp包中可以解析出n个gtp包头以及各gtp包头对应的内容部分,由此可以提高第二gtp包解析的效率。
37.在一种可能的实现方式中,该第二gtp包的ip头中包括第一字段,该第一字段用于指示该第二gtp包的总长度。
38.在一种可能的实现方式中,针对每个第一gtp包,该第一gtp包的gtp包头中包括第二字段,该第二字段用于指示该第一gtp包的gtp包头及内容的长度。
39.在本方案中,由于第二gtp包的ip头中包括第一字段,该第一字段用于指示第二gtp包的总长度,每个第一gtp包的gtp包头中包括第二字段,该第二字段用于指示第一gtp包的gtp包头及内容,这样,第二设备可以根据该第一字段和第二字段,判断第二gtp包是否接收完整,从而可以保证数据接收的准确性。
40.在一种可能的实现方式中,该对该第二gtp包进行解析,获得n个第一gtp包,包括:从该第二gtp包的包头中解析出n个第二字段、n个第三字段和p个第四字段;其中,p为小于或等于n的正整数;从该第二gtp包的内容中解析出n个gtp包头的剩余字段以及n个内容部分,其中,该剩余字段包括该gtp包头中除该第二字段、该第三字段和该第四字段之外的其他字段;分别将第二字段、第三字段、第四字段、剩余字段以及内容部分进行合并,得到n个
第一gtp包。
41.在本方案中,第二设备可以通过解析n个第二字段、n个第三字段和p个第四字段,再解析出n个gtp包头的剩余字段以及n个内容部分,然后分别将第二字段、第三字段、第四字段、剩余字段以及内容部分进行合并,得到n个第一gtp包的方式,有利于提高数据解析的效率。
42.在一种可能的实现方式中,该对该第二gtp包进行解析,获得n个第一gtp包,包括:从该第二gtp包的扩展头后依次解析出n个gtp包头的剩余字段以及n个内容部分,其中,该剩余字段包括该gtp包头中除第二字段、第三字段和第五字段之外的其他字段;从该第二gtp包的扩展头中依次解析出n个第二字段、n个第三字段和n个第五字段;分别将该第二字段、该第三字段、该第五字段、剩余字段以及内容部分进行合并,得到n个第一gtp包。
43.在本方案中,由于第二gtp包的包头部分为固定长度,在对第二gtp包进行解析时,有利于提高第二设备对第二gtp包的解析效率。
44.在一种可能的实现方式中,该n个第一gtp包中每个第一gtp包的gtp包头中所包括的总长度字段占1字节。
45.本方案中总长度字段占1字节,这样可以减小第一gtp包所占用的空间。
46.在一种可能的实现方式中,该方法还包括:针对该n个第一gtp包中的每个第一gtp包,根据该第一gtp包中的映射值,查询散列表中是否存在与该映射值对应的目标隧道端点标识teid,该散列表中包括多个teid和映射值之间的对应关系;若该散列表中存在与该映射值对应的目标teid,则将该第一gtp包中所包括的映射值替换为对应的目标teid,得到处理后的第一gtp包;其中,该映射值所占空间的大小小于该目标teid所占空间的大小。
47.在本方案中,由于映射值所占空间的大小小于目标teid所占空间的大小,因此,可以减小gtp包头所占的空间。另外,第二设备通过查询散列表,将第一gtp包中所包括的映射值替换为查询到的目标teid,从而可以保证还原出的第一gtp包的准确性。
48.在一种可能的实现方式中,该方法还包括:从该第一设备接收目标teid和该映射值之间的对应关系。
49.第三方面,本技术实施例提供一种gprs隧道协议gtp包的处理装置,包括:处理单元,用于确定待发送的n个第一gtp包,该n个第一gtp包具有相同目的网络协议ip地址,n为正整数;该处理单元,还用于将该n个第一gtp包中的gtp包头及内容进行合并,得到第二gtp包;发送单元,用于将该目的ip地址作为该第二gtp包的目的ip地址,并向第二设备发送该第二gtp包。
50.在一种可能的实现方式中,该处理单元,具体用于:分别将该n个第一gtp包中除第一个第一gtp包之外的其他第一gtp包的gtp包头及内容,依次合并到第一个第一gtp包的内容部分,得到该第二gtp包。
51.在一种可能的实现方式中,该第二gtp包的ip头中包括第一字段,该第一字段用于指示该第二gtp包的总长度。
52.在一种可能的实现方式中,针对每个第一gtp包,该第一gtp包的gtp包头中包括第二字段,该第二字段用于指示该第一gtp包的gtp包头及内容的长度。
53.在一种可能的实现方式中,该处理单元,具体用于:分别将该n个第一gtp包中每个第一gtp包的gtp包头进行合并,得到合并后的gtp包头;分别将该n个第一gtp包中每个第一
gtp包的内容部分进行合并,得到合并后的内容;将该合并后的内容添加到该合并后的gtp包头后面,得到该第二gtp包。
54.在一种可能的实现方式中,该处理单元,具体用于:分别将该n个第一gtp包中每个第一gtp包的gtp包头中的第二字段、第三字段和第四字段进行合并,得到合并后的gtp包头,其中,该第三字段用于指示标志位,该第二字段用于指示第一gtp包的gtp包头及内容的长度,该第四字段用于指示该第一gtp包的消息类型;分别将该n个第一gtp包中每个第一gtp包的gtp包头中剩余字段,以及内容部分进行合并,得到该合并后的内容;其中,该剩余字段包括该gtp包头中除该第二字段、该第三字段和该第四字段之外的其他字段。
55.在一种可能的实现方式中,该处理单元,具体用于:分别将该n个第一gtp包的gtp包头中的第二字段、第三字段及第五字段,依次合并到第一个第一gtp包的扩展头中,再分别将该n个第一gtp包的gtp包头中剩余字段以及内容部分,依次合并到该第一个第一gtp包的扩展头后,得到该第二gtp包,其中,该剩余字段包括该gtp包头中除该第二字段、该第三字段和该第五字段之外的其他字段。
56.在一种可能的实现方式中,该n个第一gtp包中每个第一gtp包的gtp包头中所包括的总长度字段占1字节。
57.在一种可能的实现方式中,该处理单元,具体用于:对该n个第一gtp包中每个第一gtp包所包括的目标隧道端点标识teid字段进行压缩,得到n个压缩后的第一gtp包;将该n个压缩后的第一gtp包中的gtp包头及内容进行合并,得到该第二gtp包。
58.在一种可能的实现方式中,该处理单元,具体用于:根据该n个第一gtp包中每个第一gtp包所包括的目标teid,查询散列表中是否存在与各目标teid对应的映射值,该散列表中包括多个teid和映射值之间的对应关系;若该散列表中存在与各目标teid对应的映射值,则将该n个第一gtp包中每个第一gtp包所包括的目标teid替换为对应的映射值,其中,该映射值所占空间的大小小于该目标teid所占空间的大小。
59.在一种可能的实现方式中,该处理单元,具体用于:若该散列表中不存在与第一目标teid对应的映射值,则确定该第一目标teid对应的目标映射值,并将该第一目标teid和该目标映射值之间的对应关系存入该散列表中,该第一目标teid为多个目标teid中的任意一个teid;相应的,该发送单元,具体用于:向该第二设备发送该第一目标teid和该目标映射值之间的对应关系,以及该第二gtp包。
60.在一种可能的实现方式中,该处理单元,具体用于:确定该n个第一gtp包中是否存在消息类型字段相同的目标第一gtp包;若存在消息类型字段相同的目标第一gtp包,则保留第一个目标第一gtp包中的消息类型字段,并删除其他目标第一gtp包中的消息类型字段。
61.在一种可能的实现方式中,该发送单元,具体用于:将该第二gtp包放入缓冲队列;在该缓冲队列的长度到达预设长度或等待时间超过预设值时,将该缓冲队列中的第二gtp包发送给该第二设备。
62.在一种可能的实现方式中,该处理单元,具体用于:该连续m个第二gtp包均为等待时间超过预设值时发送的,则减小该缓冲队列的长度,其中,m为正整数;或者,该第二gtp包在连续t次均为该缓冲队列的长度到达预设长度时发送的,则增大该缓冲队列的长度,其中,t为正整数。
63.第四方面,本技术实施例提供一种gprs隧道协议gtp包的处理装置,包括:接收单元,用于接收第一设备发送的第二gtp包,该第二gtp包为将n个第一gtp包中的gtp包头及内容进行合并后得到的;处理单元,用于对该第二gtp包进行解析,获得n个第一gtp包,该n个第一gtp包具有相同目的ip地址。
64.在一种可能的实现方式中,该处理单元,具体用于:从该第二gtp包中解析出n个gtp包头,以及与n个gtp包头中每个gtp包头对应的内容部分;分别将每个gtp包头和与该gtp包头对应的内容部分进行合并,得到该n个第一gtp包。
65.在一种可能的实现方式中,该第二gtp包的ip头中包括第一字段,该第一字段用于指示该第二gtp包的总长度。
66.在一种可能的实现方式中,针对每个第一gtp包,该第一gtp包的gtp包头中包括第二字段,该第二字段用于指示该第一gtp包的gtp包头及内容的长度。
67.在一种可能的实现方式中,该处理单元,具体用于:从该第二gtp包的包头中解析出n个第二字段、n个第三字段和p个第四字段;其中,p为小于或等于n的正整数;从该第二gtp包的内容中解析出n个gtp包头的剩余字段以及n个内容部分,其中,该剩余字段包括该gtp包头中除该第二字段、该第三字段和该第四字段之外的其他字段;分别将第二字段、第三字段、第四字段、剩余字段以及内容部分进行合并,得到n个第一gtp包。
68.在一种可能的实现方式中,该处理单元,具体用于:从该第二gtp包的扩展头后依次解析出n个gtp包头的剩余字段以及n个内容部分,其中,该剩余字段包括该gtp包头中除第二字段、第三字段和第五字段之外的其他字段;从该第二gtp包的扩展头中依次解析出n个第二字段、n个第三字段和n个第五字段;分别将该第二字段、该第三字段、该第五字段、剩余字段以及内容部分进行合并,得到n个第一gtp包。
69.在一种可能的实现方式中,该n个第一gtp包中每个第一gtp包的gtp包头中所包括的总长度字段占1字节。
70.在一种可能的实现方式中,该处理单元,具体用于:针对该n个第一gtp包中的每个第一gtp包,根据该第一gtp包中的映射值,查询散列表中是否存在与该映射值对应的目标隧道端点标识teid,该散列表中包括多个teid和映射值之间的对应关系;若该散列表中存在与该映射值对应的目标teid,则将该第一gtp包中所包括的映射值替换为对应的目标teid,得到处理后的第一gtp包;其中,该映射值所占空间的大小小于该目标teid所占空间的大小。
71.在一种可能的实现方式中,该装置还包括:接收单元,该接收单元,用于从该第一设备接收目标teid和该映射值之间的对应关系。
72.第五方面,本技术实施例提供一种gprs隧道协议gtp包的处理装置,该装置包括处理器和存储器,该存储器中存储有计算机程序,该处理器执行该存储器中存储的计算机程序,以使该装置执行如第一方面或第二方面该的方法。
73.第六方面,本技术实施例提供一种gprs隧道协议gtp包的处理装置,包括:处理器和接口电路;该接口电路,用于接收代码指令并传输至该处理器;该处理器,用于运行该代码指令以执行如第一方面或第二方面该的方法。
74.本技术第三方面提到的装置,可以是网络设备,也可以是网络设备内的芯片,网络设备或芯片具有实现上述各方面或其任意可能的设计中的gprs隧道协议gtp包的处理方法
的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的单元。
75.网络设备包括:处理单元和收发单元,处理单元可以是处理器,收发单元可以是收发器,收发器包括射频电路,可选地,网络设备还包括存储单元,存储单元例如可以是存储器。当网络设备包括存储单元时,存储单元用于存储计算机执行指令,处理单元与存储单元连接,处理单元执行存储单元存储的计算机执行指令,以使网络设备执行上述各方面或其任意可能的设计中的gprs隧道协议gtp包的处理方法。
76.芯片包括:处理单元和收发单元,处理单元可以是处理器,收发单元可以是芯片上的输入/输出接口、管脚或电路等。处理单元可执行存储单元存储的计算机执行指令,以使芯片执行上述各方面或其任意可能的设计中的gprs隧道协议gtp包的处理方法。可选地,存储单元可以是芯片内的存储单元(例如,寄存器、缓存等),存储单元还可以是终端设备内的位于芯片外部的存储单元(例如,只读存储器(read-only memory,rom))或可存储静态信息和指令的其他类型的静态存储设备(例如,随机存取存储器(random access memory,ram))等。
77.上述提到的处理器可以是一个中央处理器(central processing unit,cpu)、微处理器或专用集成电路(application specific integrated circuit,asic),也可以是一个或多个用于控制上述各方面或其任意可能的设计的gprs隧道协议gtp包的处理方法的程序执行的集成电路。
78.本技术第四方面提到的装置,可以是服务网关(serving gateway,sgw),也可以是sgw内的芯片,sgw或芯片具有实现上述各方面或其任意可能的设计中的gprs隧道协议gtp包的处理方法的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的单元。
79.sgw包括:处理单元和收发单元,处理单元可以是处理器,收发单元可以是收发器,收发器包括射频电路,可选地,sgw还包括存储单元,存储单元例如可以是存储器。当sgw包括存储单元时,存储单元用于存储计算机执行指令,处理单元与存储单元连接,处理单元执行存储单元存储的计算机执行指令,以使sgw执行上述各方面或其任意可能的设计中的gprs隧道协议gtp包的处理方法。
80.芯片包括:处理单元和收发单元,处理单元可以是处理器,收发单元可以是芯片上的输入/输出接口、管脚或电路等。处理单元可执行存储单元存储的计算机执行指令,以使芯片执行上述各方面或其任意可能的设计中的gprs隧道协议gtp包的处理方法。可选地,存储单元可以是芯片内的存储单元(例如,寄存器、缓存等),存储单元还可以是sgw内的位于芯片外部的存储单元(例如,只读存储器(read-only memory,rom))或可存储静态信息和指令的其他类型的静态存储设备(例如,随机存取存储器(random access memory,ram))等。
81.上述提到的处理器可以是一个中央处理器(central processing unit,cpu)、微处理器或专用集成电路(application specific integrated circuit,asic),也可以是一个或多个用于控制上述各方面或其任意可能的设计的gprs隧道协议gtp包的处理方法的程序执行的集成电路。
82.第七方面,本技术实施例提供一种gprs隧道协议gtp包的处理系统,包括如第三方面该的网络设备以及如第四方面该的sgw。
83.第八方面,本技术实施例提供一种可读存储介质,用于存储有指令,当该指令被执行时,使如权利要求第一方面或第二方面该的方法被实现。
84.第九方面,本技术实施例提供一种包含指令的计算机程序产品,当其在计算机或处理器上运行时,使得计算机或处理器执行本技术实施例的第一方面至第二方面任一方面提供的gprs隧道协议gtp包的处理方法。
85.本技术实施例提供的gprs隧道协议gtp包的处理方法和装置,通过确定待发送的n个第一gtp包,该n个第一gtp包具有相同目的ip地址,n为正整数,并将n个第一gtp包中的gtp包头及内容进行合并,得到第二gtp包,然后将目的ip地址作为第二gtp包的目的ip地址,并向第二设备发送该第二gtp包,第二设备对该第二gtp包进行解析,可以获得n个第一gtp包。由于第一设备在确定出待发送的n个第一gtp包之后,可以将n个第一gtp包中的gtp包头及内容进行合并,这样可以在兼容传统gtp协议的前提下,能够对第一gtp包进行压缩和合并,能够保证在传输过程中保留原本gtp包头信息的基础上,可以减少数据的传输量,从而可以大大提高网络的带宽利用率。
附图说明
86.图1为本技术实施例提供的一种通信系统的架构示意图;
87.图2为本技术实施例提供的另一种通信系统的架构示意图;
88.图3为本技术gtp包的处理方法的一种信令交互图;
89.图4为第一gtp包的结构示意图;
90.图5为合并后的第二gtp包的一结构示意图;
91.图6为合并后的第二gtp包的另一结构示意图;
92.图7为合并后的第二gtp包的又一结构示意图;
93.图8为对teid进行压缩后的第一gtp包的示意图;
94.图9为对消息类型字段进行压缩后的第一gtp包的示意图;
95.图10为本技术实施例提供的一种gprs隧道协议gtp包的处理装置的结构示意图;
96.图11为本技术实施例提供的一种gprs隧道协议gtp包的处理装置的结构示意图;
97.图12为本技术实施例提供的一种网络设备的结构示意图;
98.图13为本技术实施例提供的sgw的结构示意图。
具体实施方式
99.以下,对本技术中的部分用语进行解释说明,以便于本领域技术人员理解。
100.1)本技术中的单元是指功能单元或逻辑单元。其可以为软件形式,通过处理器执行程序代码来实现其功能;也可以为硬件形式。
101.2)“多个”是指两个或两个以上,其它量词与之类似。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“以上”或“以下”等所描述的范围包括边界点。
102.在本技术中,第一设备可以为网络设备,第二设备可以为服务网关(serving gateway,sgw)。或者,第一设备可以为具有发送能力的设备,第二设备可以为具有接收能力
的设备。其中,本技术实施例中均以第一设备为网络设备,第二设备为sgw为例进行说明,对于第一设备和第二设备为其他设备的情况,与第一设备为网络设备,第二设备为sgw类似,本技术中不再赘述。
103.为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
104.本技术下述各实施例提供的gtp包的处理方法,可适用于通信系统中。图1为本技术实施例提供的一种通信系统的架构示意图。如图1所示,该通信系统可以包括至少一个网络设备10和位于网络设备10覆盖范围内的至少一个终端设备。终端设备可以是固定位置的,也可以是可移动的。图1只是示意图,该通信系统中还可以包括其它设备,如还可以包括核心网设备,网络设备通过无线或有线方式与核心网设备连接。核心网设备与网络设备可以是独立的不同的物理设备,也可以将核心网设备的功能与网络设备的逻辑功能集成在同一个物理设备上,还可以是一个物理设备上集成了部分核心网设备的功能和部分的网络设备的功能。此外,该通信系统中还可以包括其它网络设备,如还可以包括无线中继设备和无线回传设备,在图1中未示出。本技术的实施例对该通信系统中包括的核心网设备、网络设备和终端设备的数量不做限定。
105.在图1所示实施例的通信系统中,以网络设备10与终端设备的通信进行说明。具体的,网络设备10作为发送者,可以向终端设备11至终端设备16中的一个或某几个终端设备发送下行信息。相应的,能够与网络设备10直接通信的终端设备11至终端设备15也可以分别或同时向网络设备10发送上行信息。
106.其中,网络设备是网络侧中一种用于发射或接收信号的实体,如新一代基站(generation node b,gnodeb)。网络设备可以是用于与移动设备通信的设备。网络设备可以是无线局域网(wireless local area networks,wlan)中的ap,全球移动通信系统(global system for mobile communications,gsm)或码分多址(code division multiple access,cdma)中的基站(base transceiver station,bts),也可以是宽带码分多址(wideband code division multiple access,wcdma)中的基站(nodeb,nb),还可以是长期演进(long term evolution,lte)中的演进型基站(evolutional node b,enb或enodeb),或者中继站或接入点,或者车载设备、可穿戴设备以及未来5g网络中的网络设备或者未来演进的公共陆地移动网络(public land mobile network,plmn)网络中的网络设备,或nr系统中的gnodeb等。另外,在本技术实施例中,网络设备为小区提供服务,终端设备通过该小区使用的传输资源(例如,频域资源,或者说,频谱资源)与网络设备进行通信,该小区可以是网络设备(例如基站)对应的小区,小区可以属于宏基站,也可以属于小小区(small cell)对应的基站,这里的小小区可以包括:城市小区(metro cell)、微小区(micro cell)、微微小区(pico cell)、毫微微小区(femto cell)等,这些小小区具有覆盖范围小、发射功率低的特点,适用于提供高速率的数据传输服务。此外,在其它可能的情况下,网络设备可以是其它为终端设备提供无线通信功能的装置。本技术的实施例对网络设备所采用的具体技术和具体设备形态不做限定。为方便描述,本技术实施例中,为终端设备提供无线通信功能的装置称为网络设备。
107.其中,终端设备可以是能够接收网络设备调度和指示信息的无线终端设备,无线终端设备可以是指向用户提供语音和/或数据连通性的设备,或具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端设备可以经无线接入网(如,
radio access network,ran)与一个或多个核心网或者互联网进行通信,无线终端设备可以是移动终端设备,如移动电话(或称为“蜂窝”电话,手机(mobile phone))、计算机和数据卡,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。例如,个人通信业务(personal communications service,pcs)电话、无绳电话、会话发起协议(sip)话机、无线本地环路(wireless local loop,wll)站、个人数字助理(personal digital assistant,pda)、平板电脑(pad)、带无线收发功能的电脑等设备。无线终端设备也可以称为系统、订户单元(subscriber unit)、订户站(subscriber station),移动站(mobile station)、移动台(mobile station,ms)、远程站(remote station)、接入点(access point,ap)、远程终端设备(remote terminal)、接入终端设备(access terminal)、用户终端设备(user terminal)、用户代理(user agent)、用户站(subscriber station,ss)、用户端设备(customer premises equipment,cpe)、终端(terminal)、用户设备(user equipment,ue)、移动终端(mobile terminal,mt)等。无线终端设备也可以是可穿戴设备以及下一代通信系统,例如,5g网络中的终端设备或者未来演进的plmn网络中的终端设备,新无线电(new radio,nr)通信系统中的终端设备等。
108.如图1所示,终端设备14至终端设备16也可组成一个设备到设备的通信系统,在设备到设备的通信系统中,终端设备15作为发送者,可以向终端设备14和终端设备16中的一个或多个终端设备发送信息,相应的,终端设备14和终端设备16可以分别或同时向终端设备15发送数据。
109.网络设备和终端设备可以部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上;还可以部署在空中的飞机、气球和卫星上。本技术的实施例对网络设备和终端设备的应用场景不做限定。
110.图2为本技术实施例提供的另一种通信系统的架构示意图。如图2所示,lte网络可以包括:ue、演进的umts陆地无线接入网(evolved umts terrestrial radio access network,e-utran)、信令管理网元(mobility management entity,mme)、sgw、分组数据网络网关实体(packet data network gateway,pgw)、方案和计费规则功能实体(policy and charging rule function,pcrf)、归属网络服务器(home subscriber server,hss)和操作者的ip业务等。
111.lte网络的核心网主要包括mme、sgw、和pgw三个逻辑功能体,其中mme是信令管理网元,负责非接入层(non-access stratum,nas)信令加密、为ue分配临时身份标识、选择sgw和pgw等核心网网元、提供漫游、跟踪、安全等功能;sgw是本地enb之间切换的移动性锚点,并提供合法监听相关功能;pgw则负责用户地址分配、方案控制和计费规则的执行以及合法监听相关等功能;hss用于存储用户的签约信息;pcrf用于提供方案和计费控制规则。
112.当本技术的方法应用在lte系统时,访问和移动性管理功能(access and mobility management function,amf)实体和会话管理功能(session management function,smf)实体可以由mme代替,核心网用户面功能实体(user plane function,upf)可以由lte系统中的pgw和sgw代替,认证服务器功能(authentication server function,ausf)实体和arpf实体由hss代替,hss用于存储签约信息,该签约信息可以是客户识别模块(subscriber identity module,sim)卡或全球用户识别卡(universal subscriber identity module,usim)卡的签约信息。其中,mme是信令管理网元,负责nas信令加密、为ue
分配临时身份标识、选择sgw和pgw等核心网网元、提供漫游、跟踪、安全等功能;sgw是enb之间切换的移动性锚点,并提供合法监听相关功能;pgw则负责ip地址分配、方案控制和计费规则的执行以及合法监听相关等功能。
113.上述所述的通信系统可以是lte系统,也可以是高级的长期演进(lte advanced,lte-a)系统,还可以是5g nr系统。本技术实施例也可以应用于其它的通信系统,只要该通信系统中存在实体能够确定待发送的n个第一gtp包,该n个第一gtp包具有相同目的ip地址,并将n个第一gtp包中的gtp包头及内容进行合并,得到第二gtp包,然后将目的ip地址作为第二gtp包的目的ip地址,并向另一个实体发送该第二gtp包。在上述实体发送了第二gtp包之后,另一个实体能够对该第二gtp包进行解析,获得n个第一gtp包即可。
114.本技术实施例描述的系统架构以及业务场景是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
115.目前,为了提高带宽的利用率,通常采用压缩数据包包头的方式进行数据包的传输,具体可以是将长度相同的n个rtp报文依次放置在udp报文的载荷中,作为压缩后的报文,从而节省了n-1个报文对应的ip包头和udp包头;接收设备在接收到报文后,按固定长度从udp载荷中读出内容作为一个rtp报文,上述方式中,由于是不对rtp包头及载荷进行处理,并且是对固定长度的报文进行合并,因此报文压缩和解析时不需要对各段的长度进行处理。上述的压缩方式,是利用了大多数类型的rtp流具有的两个属性:(1)ip、udp和rtp头中的大多数字段在rtp会话的生命周期内不会发生变化,这些常量值字段可以由在传输期间具有会话上下文的较少位来表示;(2)对于流中的连续分组,诸如序列号和时间戳之类的rtp报头字段增加了恒定量。
116.然而,由于gtp包中并没有在数据包的报头字段增加恒定量,故上述的压缩方式并不适用于gtp包,因此,在传输gtp包时,如何能够提高带宽的利用率,是目前亟需解决的技术问题。
117.本技术实施例中考虑到上述问题,提出了一种gtp包的处理方法,通过确定待发送的n个第一gtp包,该n个第一gtp包具有相同目的ip地址,n为正整数,并将n个第一gtp包中的gtp包头及内容进行合并,得到第二gtp包,然后将目的ip地址作为第二gtp包的目的ip地址,并向第二设备发送该第二gtp包。由于第一设备在确定出待发送的n个第一gtp包之后,可以将n个第一gtp包中的gtp包头及内容进行合并,这样可以减少传输的数据量,从而可以提高带宽的利用率。
118.下面,通过具体实施例对本技术的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
119.图3为本技术gtp包的处理方法的一种信令交互图。在上述图1-图2所示应用场景的基础上,如图3所示,在本实施例中,该gtp包的处理方法可以包括如下步骤:
120.步骤301:确定待发送的n个第一gtp包。
121.其中,n个第一gtp包具有相同目的ip地址,n为正整数。
122.在本步骤中,第一设备会持续向第二设备发送gtp包,其中,n个第一gtp包可以为
第一设备连续向第二设备发送的gtp包,n个第一gtp包中包括的目的ip地址相同。
123.步骤302:将n个第一gtp包中的gtp包头及内容进行合并,得到第二gtp包。
124.在本步骤中,为了减少传输的数据量,第一设备在确定出n个第一gtp包之后,可以将n个第一gtp包中的gtp包头及内容进行合并,其中,第一gtp包中的内容,也可以理解为第一gtp包的载荷部分,其可以包括用户报文或者用户数据等。
125.下面,对n个第一gtp包中的gtp包头及内容进行合并的几种方式进行详细介绍:
126.在一种可能的实现方式中,将n个第一gtp包中的gtp包头及内容进行合并,可以是分别将n个第一gtp包中除第一个第一gtp包之外的其他第一gtp包的gtp包头及内容,依次合并到第一个第一gtp包的内容部分,得到第二gtp包。
127.具体地,由于n个第一gtp包具有相同的目的ip地址,因此,n个第一gtp包可以复用ip头和udp头,也即,在对n个第一gtp包中的gtp包头及内容进行合并时,可以将第一gtp包中的gtp包头及内容作为一个整体,以将第2个gtp包至第n个gtp包中的gtp包头及内容,按照顺序依次合并到第1个gtp包的内容部分中。
128.下面,以对两个第一gtp包中的gtp包头及内容进行合并为例进行说明,对三个或者三个以上的第一gtp包的gtp包头及内容进行合并的方式,与对两个第一gtp包中的gtp包头及内容进行合并的方式类似,此处不再赘述。
129.图4为第一gtp包的结构示意图,如图4所示,每个第一gtp包均包括有ip头、udp头、gtp包头以及gtp内容,其中,gtp包头中包括有版本号(version)字段、协议类型(protocol type)字段、扩展消息头标志位(extension header flag)字段、序列号标志位(sequence number flag)字段、n-pdu号标志位(number flag)字段、teid标志位(teid flag)字段、总长度(total length)字段、消息类型(message type)字段、teid以及teid哈希值字段,其中,在teid标志位(teid flag)字段的值为1时,teid字段才会存在。
130.图5为合并后的第二gtp包的一结构示意图,如图4和图5所示,第1个第一gtp包和第2个第一gtp包可以复用相同的ip头和udp头,并将第2个第一gtp包的gtp包头以及gtp内容,合并到第1个第一gtp包的gtp内容中,也即将第2个第一gtp包的版本号(version)字段、协议类型(protocol type)字段、扩展消息头标志位(extension header flag)字段、序列号标志位(sequence number flag)字段、n-pdu号标志位(number flag)字段、teid标志位(teid flag)字段、总长度(total length)字段、消息类型(message type)字段、teid字段以及teid哈希值字段,以及gtp内容合并到第1个第一gtp包的gtp内容中。
131.在本实施例中,分别将n个第一gtp包中除第一个第一gtp包之外的其他第一gtp包的gtp包头及内容,依次合并到第一个第一gtp包的内容部分,从而得到合并后的第二gtp包的方式,由于n个第一gtp包可以复用ip头和udp头,因此,合并后的第二gtp包可以节省n-1个ip头和udp头的空间。或者说将n个第一gtp包的包头及内容部分,合并后得到第二gtp包,合并后仅有一个ip头和udp头,因此,合并后的第二gtp包可以节省n-1个ip头和udp头的空间。上述两种方式达成的效果是相同的,后续采用第一种方式进行说明。
132.进一步地,合并后得到的第二gtp包的ip头中包括有第一字段,该第一字段用于指示第二gtp包的总长度。
133.针对每个第一gtp包,该第一gtp包的gtp包头中包括第二字段,该第二字段用于指示该第一gtp包的gtp包头及内容的长度,示例性的,该第二字段例如可以为图4中所示的总
长度(total length)字段。
134.需要进行说明的是,第二设备在接收到第二gtp包,并对该第二gtp包进行解析时,可以根据ip头中包括的第一字段以及已经解析出的gtp包头中包括的第二字段,便可以判断出后续是否还有第一gtp包。示例性的,若后续没有第一gtp包,则第一字段指示的长度信息和已经解析出的gtp包头中包括的第二字段指示的长度信息之间是相匹配的。其中,上述匹配可以理解为第一字段指示的长度信息和已经解析出的gtp包头中包括的第二字段指示的长度信息相等,也可以是第一字段指示的长度信息和已经解析出的gtp包头中包括的第二字段指示的长度信息之间存在对应关系。
135.在本实施例中,由于第二gtp包的ip头中包括第一字段,该第一字段用于指示第二gtp包的总长度,每个第一gtp包的gtp包头中包括第二字段,该第二字段用于指示第一gtp包的gtp包头及内容,这样,第二设备可以根据该第一字段和第二字段,判断第二gtp包是否接收完整,从而可以保证数据接收的准确性。
136.在另一种可能的实现方式中,将n个第一gtp包中的gtp包头及内容进行合并,可以是分别将n个第一gtp包中每个第一gtp包的gtp包头进行合并,得到合并后的gtp包头,并分别将n个第一gtp包中每个第一gtp包的内容部分进行合并,得到合并后的内容,然后将合并后的内容添加到合并后的gtp包头后面,得到第二gtp包。
137.具体地,在对n个第一gtp包中的gtp包头及内容进行合并时,可以是对n个第一gtp包中的gtp包头及n个第一gtp包中的gtp内容分别进行合并。这种合并方式,使得合并后得到的第二gtp包的包头部分为固定长度,从而有利于提高第二设备对第二gtp包的解析效率,另外,由于将各个第一gtp包中的gtp包头集中放置,将各个第一gtp包中的gtp内容集中放置,从而可以实现报文的并行处理,有利于提高报文处理的效率。
138.在又一种可能的实现方式中,在对n个第一gtp包中的gtp包头进行合并时,可以分别将n个第一gtp包中每个第一gtp包的gtp包头中的第二字段、第三字段和第四字段进行合并,得到合并后的gtp包头,其中,第三字段用于指示标志位,第二字段用于指示第一gtp包的gtp包头及内容的长度,第四字段用于指示第一gtp包的消息类型。相应的,分别将n个第一gtp包中每个第一gtp包的内容部分进行合并,则可以为分别将n个第一gtp包中每个第一gtp包的gtp包头中剩余字段,以及内容部分进行合并,得到合并后的内容;其中,该剩余字段包括gtp包头中除第二字段、第三字段和第四字段之外的其他字段。
139.下面,以第二字段为总长度(total length)字段,第三字段包括扩展消息头标志位(extension header flag)字段、序列号标志位(sequence number flag)字段、n-pdu号标志位(number flag)字段和teid标志位(teid flag)字段,第四字段为消息类型(message type)字段为例进行说明。
140.如图4所示,第一gtp包的gtp包头中包括有版本号(version)字段、协议类型(protocol type)字段、扩展消息头标志位(extension header flag)字段、序列号标志位(sequence number flag)字段、n-pdu号标志位(number flag)字段、teid标志位(teid flag)字段、总长度(total length)字段、消息类型(message type)字段、teid字段以及teid哈希值字段。图6为合并后的第二gtp包的另一结构示意图,如图6所示,在对n个第一gtp包中的gtp包头进行合并时,可以将各第一gtp包的gtp包头中的扩展消息头标志位(extension header flag)字段、序列号标志位(sequence number flag)字段、n-pdu号标
志位(number flag)字段、teid标志位(teid flag)字段、总长度(total length)字段和消息类型(message type)字段从gtp包头中拆分出来,并将从每个第一gtp包的gtp包头中拆分出来的这些字段进行合并,从而可以得到合并后的gtp包头,并将合并后的包头放在第二gtp包的包头位置。然后,将每个第一gtp包的gtp包头中剩余字段和gtp内容部分进行合并,并放置在第二gtp包的内容部分,也可以理解为将n个第一gtp包的gtp包头中剩余字段和内容部分依次放置在合并后的包头之后,从而构成第二gtp包的内容部分。其中,剩余字段包括版本号(version)字段、协议类型(protocol type)字段、teid字段以及teid哈希值字段。
141.本实施例中的合并方式,使得合并后得到的第二gtp包的包头部分为固定长度,从而有利于提高第二设备对第二gtp包的解析效率,另外,由于将各个第一gtp包中的gtp包头集中放置,将各个第一gtp包中的gtp内容集中放置,从而可以实现报文的并行处理,有利于提高报文处理的效率。
142.在再一种可能的实现方式中,将n个第一gtp包中的gtp包头及内容进行合并,可以是分别将n个第一gtp包的gtp包头中的第二字段、第三字段及第五字段,依次合并到第一个第一gtp包的扩展头中,再分别将n个第一gtp包的gtp包头中剩余字段以及内容部分,依次合并到第一个第一gtp包的扩展头后,得到第二gtp包,其中,剩余字段包括gtp包头中除第二字段、第三字段和第五字段之外的其他字段。
143.具体地,第二字段可以为总长度(total length)字段,第三字段可以为扩展消息头标志位(extension header flag)字段、序列号标志位(sequence number flag)字段、n-pdu号标志位(number flag)字段和teid标志位(teid flag)字段,第五字段可以为teid字段。剩余字段包括版本号(version)字段、协议类型(protocol type)字段、消息类型字段以及teid哈希值字段。
144.在本合并方式中,主要是通过第一个gtp包的扩展头来承载合并后的gtp包头。下面以三个第一gtp包进行合并为例进行说明,对于其他数量的第一gtp包的合并方式,与三个第一gtp包进行合并的方式类似,此处不再赘述。图7为合并后的第二gtp包的又一结构示意图,如图4和图7所示,可以将第一个第一gtp包gtp-u1的gtp包头作为第二gtp包的gtp包头,并依次将第二个第一gtp包gtp-u2和第三个第一gtp包gtp-u3的总长度(total length)字段,扩展消息头标志位(extension header flag)字段、序列号标志位(sequence number flag)字段、n-pdu号标志位(number flag)字段、teid标志位(teid flag)字段和teid字段合并到gtp-u1的扩展头中,也即将gtp-u2和gtp-u3中的上述字段依次放在gtp-u1的扩展头字段或者序列号字段之后。另外,如图7所示,在gtp-u1的扩展头之后,将依次放置gtp-u1的内容部分,gtp-u2的扩展头部分、gtp-u2的内容部分、gtp-u3的扩展头部分以及gtp-u3的内容部分,其中,gtp-u2的扩展头部分和gtp-u3的扩展头部分均包括剩余字段,也即版本号(version)字段、协议类型(protocol type)字段、消息类型字段以及teid哈希值字段。
145.本实施例中的合并方式,一方面,使得合并后得到的第二gtp包的包头部分为固定长度,从而有利于提高第二设备对第二gtp包的解析效率,另一方面,由于将各个第一gtp包中的gtp包头集中放置,将各个第一gtp包中的gtp内容集中放置,从而可以实现报文的并行处理,有利于提高报文处理的效率,再一方面,这种封装方式对现有的gtp包的封装改动较小,提高了报文处理的效率。
146.上述的几种合并方式,基于隧道终点ip进行udp头和ip头复用,可以大大减少由外
层冗余ip头/udp头带来的带宽浪费,可以提高带宽利用率。
147.进一步地,上述n个第一gtp包中每个第一gtp包的gtp包头中所包括的总长度字段占1字节。
148.可以理解的是,在第一gtp包中第三个字节和第四个字节表示消息长度,其中,16位可以表示的范围为0~2
16-1个字节。而对于gtp包来说,其典型长度为20、40—250字节,因此,只需要8位,即一个字节(byte)来表示长度即可。因此,可以将总长度字段进行压缩,也即gtp包头中所包括的总长度字段占1字节,这样可以减小第一gtp包所占用的空间。
149.在再一种可能的实现方式中,将n个第一gtp包中的gtp包头及内容进行合并,可以是对n个第一gtp包中每个第一gtp包所包括的目标teid字段进行压缩,得到n个压缩后的第一gtp包,并将n个压缩后的第一gtp包中的gtp包头及内容进行合并,得到第二gtp包。
150.具体地,第一gtp包中所包括的目标teid字段占据四个字节,通常会占到整个gtp包头大小的50%,因此,为了节省包头的开销,可以考虑对目标teid字段进行压缩。在实际的应用过程中,通常会为一个会话分配一个teid。从节省teid占用包头的角度出发,并且需要能够在接收端迅速恢复出原有的teid信息考虑,通常选择利用散列表(hash映射)。其中,hash映射的平均时间复杂度为o(1),可以满足接收端迅速恢复原有teid的需求。另外,映射后的字段长度,从实际场景出发,通常可以分配为16位,也即2个字节(byte),这样能够在减少hash表映射满之后重置和减少字段占用之间取得平衡。
151.另外,一方面,由于采用哈希策略对teid进行压缩,能够保证一一对应的前提下,稳定将teid字段压缩到2bytes,相比较原来的gtp包,可以节省50%的teid字段空间。另一方面,由于哈希算法具有o(1)的读取效率,能够在几乎不增加时延的情况下尽可能地提高带宽利用率。
152.示例性的,在对n个第一gtp包中每个第一gtp包所包括的目标teid字段进行压缩时,可以是根据n个第一gtp包中每个第一gtp包所包括的目标teid,查询散列表中是否存在与各目标teid对应的映射值,其中,散列表中包括多个teid和映射值之间的对应关系;若该散列表中存在与各目标teid对应的映射值,则将n个第一gtp包中每个第一gtp包所包括的目标teid替换为对应的映射值,其中,该映射值所占空间的大小小于目标teid所占空间的大小。
153.具体地,在第一设备中设置有散列表,该散列表中包括有至少一个teid,以及至少一个teid中每个teid所对应的映射值,其中,映射值所占空间的大小小于其对应的teid所占空间的大小。例如,映射值所占空间大小通常为2bytes,而teid所占空间大小通常为4bytes。
154.对于每个第一gtp包中所包括的目标teid,第一设备均会查询散列表,以确定散列表中是否存在与该目标teid对应的映射值,若散列表中存在与目标teid对应的映射值,则会将该第一gtp包中所包括的目标teid替换为查询到的映射值,并将该第一gtp包中的teid标志位置1。
155.在本实施例中,由于映射值所占空间的大小小于目标teid所占空间的大小,这样,将第一gtp包中所包括的目标teid替换为映射值后,可以减小第一gtp包的gtp包头的开销,继而减小第二gtp包所占用的空间,提高了带宽的利用率。
156.进一步地,若散列表中不存在与第一目标teid对应的映射值,则确定该第一目标
teid对应的目标映射值,并将第一目标teid和目标映射值之间的对应关系存入散列表中,该第一目标teid为多个目标teid中的任意一个teid。
157.具体地,若第一设备查询散列表,确定出散列表中不存在某个第一gtp包的gtp包头中所包括的第一目标teid所对应的映射值,则可以通过预设算法确定该第一目标teid所对应的目标映射值,例如,可以通过哈希算法确定该目标映射值,当然,也可以通过其他算法确定目标映射值,只要计算出的目标映射值所占空间的大小小于第一目标teid所占空间的大小即可,对于预设算法,本技术实施例在此不做限制。
158.在确定出第一目标teid对应的目标映射值之后,第一设备可以将该第一gtp包中的第一目标teid替换为确定出的目标映射值,并将该第一gtp包中的teid标志位字段置为1。另外,还可以将该第一目标teid和目标映射值之间的对应关系存入散列表中,这样,在下一次查询的时候将不会再计算该第一目标teid对应的目标映射值,而是直接用目标映射值替换第一目标teid即可,由此可以提高gtp包中目标teid字段压缩的效率。
159.另外,为了使得第二设备能够正确的还原出第一gtp包,第一设备还需要将第一目标teid和目标映射值之间的对应关系发送给第二设备。
160.可以理解的是,第一设备可以同时将第二gtp包和确定出的对应关系发送给第二设备,也可以先发送第二gtp包,再发送该对应关系,还可以先发送对应关系,再发送第二gtp包。对于第一目标teid和目标映射值之间的对应关系的发送方式,本技术实施例在此不做限制。
161.进一步地,为了节省第一设备和第二设备中的存储空间,在上述散列表中存储的内容超过预设数量个字段,且散列表中的内容更新较为频繁时,可以将散列表中的内容清空,从而进行新的映射,也即存储新的teid和映射值之间的对应关系。当然,也可以按照teid和映射值的对应关系的存储时间,按照存储时间的先后顺序进行删除,将存储时间最早的对应关系进行删除等。
162.图8为对teid进行压缩后的第一gtp包的示意图,如图8所示,该第一gtp包中包括版本号(version)字段、协议类型(protocol type)字段、扩展消息头标志位(extension header flag)字段、序列号标志位(sequence number flag)字段、n-pdu号标志位(number flag)字段、teid标志位(teid flag)字段、总长度字段、消息类型(message type)字段、teid字段、teid哈希值字段、序列号(sequence number)字段、n-pdu号字段、扩展内容长度(extension context length)字段、下一扩展消息头类型(next extension header type)字段以及扩展内容(extension context),其中,总长度字段为1字节,用teid哈希值替换了gtp包头中的teid字段,该teid哈希值即为上述的映射值。
163.需要进行说明的是,上述图5-图7中所示的合并方式中,gtp包头中的teid也可以由teid哈希值或者映射值进行替换。
164.另外,为了进一步减少第一gtp包的gtp包头所占的空间,第二设备还可以对第一gtp包的gtp包头中所包括的消息类型字段进行压缩。示例性的,可以确定n个第一gtp包中是否存在消息类型字段相同的目标第一gtp包,若存在消息类型字段相同的目标第一gtp包,则保留第一个目标第一gtp包中的消息类型字段,并删除其他目标第一gtp包中的消息类型字段。
165.具体地,在第一设备中维护有缓冲池,该缓冲池中维护有多个缓冲队列,每个缓冲
队列中的第一gtp包可以进行合并发送。其中,缓冲池是根据目的ip地址维护的,在缓冲池中再根据消息类型进行维护缓冲队列。在实际应用中,可以确定待发送的n个第一gtp包中是否存在消息类型相同的目标第一gtp包,若存在消息类型相同的目标第一gtp包,则将消息类型字段相同的多个目标第一gtp包放在同一个缓冲队列中,而且多个目标第一gtp包中,只需要保留第一个目标第一gtp包中的消息类型字段即可,其他目标第一gtp包中的消息类型字段可以删除,这样,可以节省1字节(byte)的存储空间。
166.图9为对消息类型字段进行压缩后的第一gtp包的示意图,如图9所示,相比于图8中的第一gtp包,可以将消息类型字段进行删除,由此可以节省1字节(byte)的存储空间。
167.在本实施例中,若存在具有相同消息类型字段的多个目标第一gtp包,则保留第一个目标第一gtp包中的消息类型字段,并删除其他目标第一gtp包中的消息类型字段,这样,可以节省第一gtp包的gtp包头所占的空间,有利于提高带宽的利用率。
168.需要进行说明的是,上述各种合并方式可以互相结合,因此,将n个第一gtp包进行合并处理后,可以节省n-1个udp和ip头的空间,n-1个消息类型字段空间,而且还可以减少3n字节(bytes)的teid字段。
169.步骤303:将目的ip地址作为第二gtp包的目的ip地址,并向第二设备发送第二gtp包。
170.在本步骤中,第一设备合并的n个第一gtp包具有相同的目的i p地址,第一设备在得到第二gtp包之后,可以将该目的i p地址作为第二gtp包的目的i p地址,向第二设备发送该第二gtp包。
171.在一种可能的实现方式中,第一设备向第二设备发送第二gtp包时,可以将第二gtp包放入缓冲队列,在该缓冲队列的长度到达预设长度或等待时间超过预设值时,将缓冲队列中的第二gtp包发送给第二设备。
172.具体地,在第一设备中维护有缓冲池,该缓冲池中维护有多个缓冲队列,每个缓冲队列中的多个第一gtp包可以进行合并,以得到第二gtp包,并将得到的第二gtp包进行发送。其中,可以将缓冲队列的长度设置为预设长度,在缓冲队列中的第二gtp包的长度到达预设长度时,可以将缓冲队列中的第二gtp包发送给第二设备,或者,为了减少时延,也可以是在等待时间超过预设值时,将缓冲队列中的第二gtp包发送给第二设备。
173.其中,预设长度和预设值可以根据实际情况或者经验进行设置,例如预设长度可以设置为3,预设值可以为5ms等,对于预设长度和预设值的具体取值,本技术实施例在此不做限制。
174.在本实施例中,可以是在缓冲队列的长度达到预设长度时,将缓冲队列中的第二gtp包发送给第二设备,这样可以提高带宽的利用率。另外,也可以是在等待时间超过预设值时,将缓冲队列中的第二gtp包发送给第二设备,由此可以减少等待时延,提高gtp包的发送效率。
175.进一步地,为了提高数据发送的灵活性以及参数对于链路状况的自适应调整,本技术实施例中还可以通过记录发送缓冲队列中一段时间的发包状态,从而动态调整缓冲队列的参数,其中,缓冲队列的参数包括缓冲队列允许的最大报文个数和/或报文允许的最大等待时间。具体地,若连续m个第二gtp包均为等待时间超过预设值时发送的,则减小缓冲队列的长度,其中,m为正整数,或者,若第二gtp包在连续t次均为缓冲队列的长度到达预设长
度时发送的,则增大缓冲队列的长度,其中,t为正整数。
176.若在发送某个缓冲队列中包括的第二gtp包时,该缓冲队列中连续m个第二gtp包均为等待时间超过预设值时才发送,则说明该缓冲队列的长度有可能较大,此时,可以减小该缓冲队列的长度。其中,m的值可以根据实际情况或者经验设置,例如可以为3,对于m的具体取值,本技术实施例在此不做限制。
177.若在发送某个缓冲队列中包括的第二gtp包时,该缓冲队列中的第二gtp包在连续t次均为缓冲队列的长度到达预设长度时发送的,则说明该缓冲队列的长度有可能较小,此时,可以增大该缓冲队列的长度。其中,t的值可以根据实际情况或者经验设置,例如可以为3,对于t的具体取值,本技术实施例在此不做限制。
178.示例性的,可以通过定义发送状态state,该发送状态state用于表示是等待时间超过预设值时发送的,还是缓冲队列的长度到达预设长度时发送的。通常为每个缓冲队列设定两个计数器cnt-queuefull和cnt-timeout,其中,计数器cnt-queuefull表示该缓冲队列发送出去的连续的因队列满而发送的gtp包的数量,计数器cnt-timeout表示该缓冲队列发送出去的连续的因超时而发送的gtp包的数量。另外,每个缓冲队列还维护一个发送等待时间[min-length,max-length]和队列长度的区间[min-wait-time,max-wait-time]。对于缓冲队列长度的增大和减少,可以定义变化因子a和b,分别标识缓冲队列长度和等待时间每次的变化值。在具体实现过程中,可以通过如下方式确定缓冲队列长度的增大值和减小值:
[0179]
若缓冲队列中连续m个第二gtp包均为达到等待时间发送时,可认为缓冲队列的长度较大,此时,可以在一定的阈值范围内,按照公式(1)减小缓冲队列长度queue-length,同时按照公式(2)增加第二gtp包的等待时间:
[0180]
queue-length=queue-length

a(queue-length>min-length)
ꢀꢀꢀꢀꢀꢀ
(1)
[0181]
wait-time=wait-time b (wait-time<max-wait-time)
ꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0182]
其中,m可以为3。
[0183]
若连续t次均为缓冲队列的长度到达预设长度时发送的,可以认为当前缓冲队列大小不能满足合并需求,则可以按照公式(3)动态增长缓冲队列长度queue-length,同时按照公式(4)减少第二gtp包的等待时间:
[0184]
queue-length=queue-length a(queue-length<max-length)
ꢀꢀꢀꢀꢀꢀ
(3)
[0185]
wait-time=wait-time-b (wait-time>min-wait-time)
ꢀꢀꢀꢀꢀꢀꢀ
(4)
[0186]
在本实施例中,由于通过动态调整缓冲队列的长度和等待时间,可以实时根据连续的链路包收发情况,在等待时延和合并效率之间完成效率的权衡,增加gtp包发送的动态性和灵活性。另外,在gtp包发送速率不高的情况下,可以动态减少缓冲队列的最大队列长度,减少第一gtp包合并度,从而可以高效利用系统带宽。而在gtp包发送速率较高的情况下,通过增加缓冲队列的长度,并减少等待时间的方式,可以加大第一gtp包的合并度,使链路带宽利用率进一步加大。
[0187]
步骤304:对第二gtp包进行解析,获得n个第一gtp包,该n个第一gtp包具有相同目的ip地址。
[0188]
在本步骤中,第二设备在接收到第二gtp包后,将对该第二gtp包进行解析,以还原出合并之前的n个第一gtp包。
[0189]
在一种可能的实现方式中,第二设备对第二gtp包进行解析时,可以是从第二gtp包中解析出n个gtp包头,以及与n个gtp包头中每个gtp包头对应的内容部分,然后分别将每个gtp包头和与gtp包头对应的内容部分进行合并,得到n个第一gtp包。
[0190]
具体地,若第一设备在对n个第一gtp包进行合并时,是分别将n个第一gtp包中除第一个第一gtp包之外的其他第一gtp包的gtp包头及内容,依次合并到第一个第一gtp包的内容部分,从而得到的第二gtp包,则第二设备将从第一个第一gtp包的内容部分中获取其他第一gtp包的包头以及对应的内容部分。
[0191]
以两个第一gtp为例进行说明,如图5所示,由于第2个第一gtp包的gtp包头以及gtp内容,是合并到第1个第一gtp包的gtp内容中的,因此,第二设备在接收到第二gtp包之后,将第二gtp包的gtp包头作为第一个gtp包头,并从内容部分中解析出第二个gtp包头以及第二个gtp包头对应的内容部分,再将剩余的内容部分作为第一个gtp包头对应的内容部分,然后将第一个gtp包头和其对应的内容部分进行合并,得到第一个第一gtp包,将第二个gtp包头和其对应的内容部分进行合并,得到第二个第一gtp包。
[0192]
在本实施例中,由于直接从第二gtp包中可以解析出n个gtp包头以及各gtp包头对应的内容部分,由此可以提高第二gtp包解析的效率。
[0193]
其中,第二gtp包的ip头中包括有第一字段,该第一字段用于指示第二gtp包的总长度。
[0194]
针对每个第一gtp包,该第一gtp包的gtp包头中包括第二字段,该第二字段用于指示该第一gtp包的gtp包头及内容的长度,示例性的,该第二字段例如可以为图4中所示的总长度(total length)字段。
[0195]
第二设备在接收到第二gtp包,并对该第二gtp包进行解析时,可以根据ip头中包括的第一字段以及已经解析出的gtp包头中包括的第二字段,便可以判断出后续是否还有第一gtp包。示例性的,若后续没有第一gtp包,则第一字段指示的长度信息和已经解析出的gtp包头中包括的第二字段指示的长度信息之间是相匹配的。其中,上述匹配可以理解为第一字段指示的长度信息和已经解析出的gtp包头中包括的第二字段指示的长度信息相等,也可以是第一字段指示的长度信息和已经解析出的gtp包头中包括的第二字段指示的长度信息之间存在对应关系。
[0196]
在本实施例中,由于第二gtp包的ip头中包括第一字段,该第一字段用于指示第二gtp包的总长度,每个第一gtp包的gtp包头中包括第二字段,该第二字段用于指示第一gtp包的gtp包头及内容,这样,第二设备可以根据该第一字段和第二字段,判断第二gtp包是否接收完整,从而可以保证数据接收的准确性。
[0197]
在另一种可能的实现方式中,第二设备对第二gtp包进行解析时,可以是从第二gtp包的包头中解析出n个第二字段、n个第三字段和p个第四字段,从第二gtp包的内容中解析出n个gtp包头的剩余字段以及n个内容部分,其中,剩余字段包括gtp包头中除第二字段、第三字段和第四字段之外的其他字段,然后分别将第二字段、第三字段、第四字段、剩余字段以及内容部分进行合并,得到n个第一gtp包。
[0198]
具体地,若第一设备在对n个第一gtp包进行合并时,是分别将n个第一gtp包中每个第一gtp包的gtp包头中的第二字段、第三字段和第四字段进行合并,得到合并后的gtp包头,并分别将n个第一gtp包中每个第一gtp包中剩余的字段以及内容部分进行合并,得到合
并后的内容,然后将合并后的内容添加到合并后的gtp包头后面,从而得到的第二gtp包,对应的,第二设备在进行解析时,将从第二gtp包的包头中解析出n个第二字段、n个第三字段和p个第四字段,再从第二gtp包的内容中解析出n个gtp包头的剩余字段以及n个内容部分。
[0199]
其中,第二字段可以为总长度(total length)字段,第三字段可以为扩展消息头标志位(extension header flag)字段、序列号标志位(sequence number flag)字段、n-pdu号标志位(number flag)字段和teid标志位(teid flag)字段,第四字段可以为消息类型(message type)字段。
[0200]
需要进行说明的是,第一设备在对第一gtp包的gtp包头和各包头对应的内容部分进行合并时,均按照一一对应的顺序进行合并的,例如,在对gtp包头进行合并时,按照gtp包1、gtp包2

gtp包n的顺序进行,在对gtp内容部分进行合并时,也按照gtp包1、gtp包2

gtp包n的顺序进行,这样,可以保证第二设备在对第二gtp包进行解析时不会出错,提高了数据解析的正确性。
[0201]
以两个第一gtp为例进行说明,如图6所示,可以从第二gtp包的gtp包头中解析出第一个第一gtp包和第二个第一gtp包的gtp包头中所包括的扩展消息头标志位(extension header flag)字段、序列号标志位(sequence number flag)字段、n-pdu号标志位(number flag)字段、teid标志位(teid flag)字段、总长度(total length)字段和消息类型(message type)字段,并从第二gtp包的内容部分中解析出第一个第一gtp包和第二个第一gtp包的gtp包头中剩余的字段以及各自对应的内容部分,从而将得到的gtp包头和对应的内容部分进行合并,以得到合并之前的两个第一gtp包。
[0202]
值得注意的是,如前述实施例中所述,若存在多个第一gtp包的消息类型相同时,可以仅保留第一个第一gtp包中的消息类型字段,并删除其他第一gtp包中的消息类型字段,因此,上述消息类型字段可以仅为1个,也可以为多个,也即消息类型字段的数量小于或等于n。
[0203]
在本实施例中,第二设备可以通过解析n个第二字段、n个第三字段和p个第四字段,再解析出n个gtp包头的剩余字段以及n个内容部分,然后分别将第二字段、第三字段、第四字段、剩余字段以及内容部分进行合并,得到n个第一gtp包的方式,有利于提高数据解析的效率。
[0204]
在又一种可能的实现方式中,第二设备对第二gtp包进行解析时,可以是从第二gtp包的扩展头后依次解析出n个gtp包头的剩余字段以及n个内容部分,其中,该剩余字段包括gtp包头中除第二字段、第三字段和第五字段之外的其他字段,并从第二gtp包的扩展头中依次解析出n个第二字段、n个第三字段和n个第五字段,然后分别将第二字段、第三字段、第五字段、剩余字段以及内容部分进行合并,得到n个第一gtp包。
[0205]
其中,第二字段可以为总长度(total length)字段,第三字段可以为扩展消息头标志位(extension header flag)字段、序列号标志位(sequence number flag)字段、n-pdu号标志位(number flag)字段和teid标志位(teid flag)字段,第五字段可以为teid字段。剩余字段包括版本号(version)字段、协议类型(protocol type)字段、消息类型字段以及teid哈希值字段。
[0206]
示例性的,若第一设备在对n个第一gtp包进行合并时,是分别将n个第一gtp包的gtp包头中的第二字段、第三字段及第五字段,依次合并到第一个第一gtp包的扩展头中,再
分别将n个第一gtp包的gtp包头中剩余字段以及内容部分,依次合并到第一个第一gtp包的扩展头后,从而得到的第二gtp包,对应的,第二设备在进行解析时,将第二gtp包的gtp包头作为第一个第一gtp包的gtp包头,并从第一个第一gtp包的扩展头中依次解析出第二字段、第三字段及第五字段,并从扩展头后解析出剩余字段以及各gtp包头对应的内容部分。
[0207]
以三个第一gtp为例进行说明,如图7所示,可以将第二gtp包的gtp包头作为第一个第一gtp包的gtp包头,并从第一个第一gtp包的扩展头中解析出第二个第一gtp包和第三个第一gtp包的总长度(total length)字段,扩展消息头标志位(extension header flag)字段、序列号标志位(sequence number flag)字段、n-pdu号标志位(number flag)字段、teid标志位(teid flag)字段和teid字段,再从第一个第一gtp包的扩展头后解析出各第一gtp包的gtp包头中的剩余字段以及对应的内容部分,从而将得到的gtp包头和对应的内容部分进行合并,以得到合并之前的两个第一gtp包。
[0208]
在本实施例中,由于第二gtp包的包头部分为固定长度,在对第二gtp包进行解析时,有利于提高第二设备对第二gtp包的解析效率。
[0209]
进一步地,由于第一设备为了节省第一gtp包的gtp包头所占的空间,将gtp包头中的teid替换为了对应的映射值,因此,为了得到正确的第一gtp包,第二设备在对第二gtp包进行解析,得到n个第一gtp包之后,针对n个第一gtp包中的每个第一gtp包,会根据第一gtp包中的映射值,查询散列表中是否存在与该映射值对应的目标teid,其中,该散列表中包括多个teid和映射值之间的对应关系;若散列表中存在与映射值对应的目标teid,则将第一gtp包中所包括的映射值替换为对应的目标teid,得到处理后的第一gtp包,其中,所述映射值所占空间的大小小于所述目标teid所占空间的大小。
[0210]
具体地,散列表中包括多个teid和映射值之间的对应关系,第二设备通过查询散列表,确定该散列表中是否存在与第一gtp包中包括的映射值对应的teid,若存在,则采用查询出的teid替换第一gtp包中包括的映射值,从而可以得到正确的第一gtp包。
[0211]
另外,由于第一设备和第二设备中维护有相同的散列表,若第二设备中维护的散列表中不存在与某个第一gtp包中包括的映射值所对应的teid,则说明该第一gtp包中的映射值为第一设备新确定出的,为了使得第二设备能够确定出正确的teid,第一设备在向第二设备发送第二gtp包时,还可以将新确定的映射值和teid之间的对应关系发送给第二设备。这样,第二设备就可以根据接收到的对应关系,确定该第一gtp包中所包括的映射值对应的teid,从而将该映射值替换为对应的teid。
[0212]
在本实施例中,由于映射值所占空间的大小小于目标teid所占空间的大小,因此,可以减小gtp包头所占的空间。另外,第二设备通过查询散列表,将第一gtp包中所包括的映射值替换为查询到的目标teid,从而可以保证还原出的第一gtp包的准确性。
[0213]
本实施例提供一种gtp包的处理方法,通过确定待发送的n个第一gtp包,该n个第一gtp包具有相同目的ip地址,n为正整数,并将n个第一gtp包中的gtp包头及内容进行合并,得到第二gtp包,然后将目的ip地址作为第二gtp包的目的ip地址,并向第二设备发送该第二gtp包,第二设备对该第二gtp包进行解析,可以获得n个第一gtp包。由于第一设备在确定出待发送的n个第一gtp包之后,可以将n个第一gtp包中的gtp包头及内容进行合并,这样可以在兼容传统gtp协议的前提下,能够对第一gtp包进行压缩和合并,能够保证在传输过程中保留原本gtp包头信息的基础上,可以减少数据的传输量,从而可以大大提高网络的带
宽利用率。
[0214]
图10为本技术实施例提供的一种gprs隧道协议gtp包的处理装置10的结构示意图,请参见图10所示,该gprs隧道协议gtp包的处理装置10可以包括:
[0215]
处理单元11,用于确定待发送的n个第一gtp包,该n个第一gtp包具有相同目的网络协议ip地址,n为正整数;该处理单元11,还用于将该n个第一gtp包中的gtp包头及内容进行合并,得到第二gtp包;发送单元12,用于将该目的ip地址作为该第二gtp包的目的ip地址,并向第二设备发送该第二gtp包。
[0216]
可选地,该处理单元11,具体用于:分别将该n个第一gtp包中除第一个第一gtp包之外的其他第一gtp包的gtp包头及内容,依次合并到第一个第一gtp包的内容部分,得到该第二gtp包。
[0217]
可选地,该第二gtp包的ip头中包括第一字段,该第一字段用于指示该第二gtp包的总长度。
[0218]
可选地,针对每个第一gtp包,该第一gtp包的gtp包头中包括第二字段,该第二字段用于指示该第一gtp包的gtp包头及内容的长度。
[0219]
可选地,该处理单元11,具体用于:分别将该n个第一gtp包中每个第一gtp包的gtp包头进行合并,得到合并后的gtp包头;分别将该n个第一gtp包中每个第一gtp包的内容部分进行合并,得到合并后的内容;将该合并后的内容添加到该合并后的gtp包头后面,得到该第二gtp包。
[0220]
可选地,该处理单元11,具体用于:分别将该n个第一gtp包中每个第一gtp包的gtp包头中的第二字段、第三字段和第四字段进行合并,得到合并后的gtp包头,其中,该第三字段用于指示标志位,该第二字段用于指示第一gtp包的gtp包头及内容的长度,该第四字段用于指示该第一gtp包的消息类型;分别将该n个第一gtp包中每个第一gtp包的gtp包头中剩余字段,以及内容部分进行合并,得到该合并后的内容;其中,该剩余字段包括该gtp包头中除该第二字段、该第三字段和该第四字段之外的其他字段。
[0221]
可选地,该处理单元11,具体用于:分别将该n个第一gtp包的gtp包头中的第二字段、第三字段及第五字段,依次合并到第一个第一gtp包的扩展头中,再分别将该n个第一gtp包的gtp包头中剩余字段以及内容部分,依次合并到该第一个第一gtp包的扩展头后,得到该第二gtp包,其中,该剩余字段包括该gtp包头中除该第二字段、该第三字段和该第五字段之外的其他字段。
[0222]
可选地,该n个第一gtp包中每个第一gtp包的gtp包头中所包括的总长度字段占1字节。
[0223]
可选地,该处理单元11,具体用于:对该n个第一gtp包中每个第一gtp包所包括的目标隧道端点标识teid字段进行压缩,得到n个压缩后的第一gtp包;将该n个压缩后的第一gtp包中的gtp包头及内容进行合并,得到该第二gtp包。
[0224]
可选地,该处理单元11,具体用于:根据该n个第一gtp包中每个第一gtp包所包括的目标teid,查询散列表中是否存在与各目标teid对应的映射值,该散列表中包括多个teid和映射值之间的对应关系;若该散列表中存在与各目标teid对应的映射值,则将该n个第一gtp包中每个第一gtp包所包括的目标teid替换为对应的映射值,其中,该映射值所占空间的大小小于该目标teid所占空间的大小。
[0225]
可选地,该处理单元11,具体用于:若该散列表中不存在与第一目标teid对应的映射值,则确定该第一目标teid对应的目标映射值,并将该第一目标teid和该目标映射值之间的对应关系存入该散列表中,该第一目标teid为多个目标teid中的任意一个teid;相应的,该发送单元12,具体用于:向该第二设备发送该第一目标teid和该目标映射值之间的对应关系,以及该第二gtp包。
[0226]
可选地,该处理单元11,具体用于:确定该n个第一gtp包中是否存在消息类型字段相同的目标第一gtp包;若存在消息类型字段相同的目标第一gtp包,则保留第一个目标第一gtp包中的消息类型字段,并删除其他目标第一gtp包中的消息类型字段。
[0227]
可选地,该发送单元12,具体用于:将该第二gtp包放入缓冲队列;在该缓冲队列的长度到达预设长度或等待时间超过预设值时,将该缓冲队列中的第二gtp包发送给该第二设备。
[0228]
可选地,该处理单元11,具体用于:该连续m个第二gtp包均为等待时间超过预设值时发送的,则减小该缓冲队列的长度,其中,m为正整数;或者,该第二gtp包在连续t次均为该缓冲队列的长度到达预设长度时发送的,则增大该缓冲队列的长度,其中,t为正整数。
[0229]
本技术实施例所示的gprs隧道协议gtp包的处理装置10,可以执行上述任一项实施例所示的gprs隧道协议gtp包的处理方法的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
[0230]
图11为本技术实施例提供的一种gprs隧道协议gtp包的处理装置20的结构示意图,请参见图11所示,该gprs隧道协议gtp包的处理装置20可以包括:
[0231]
接收单元21,用于接收第一设备发送的第二gtp包,该第二gtp包为将n个第一gtp包中的gtp包头及内容进行合并后得到的;处理单元22,用于对该第二gtp包进行解析,获得n个第一gtp包,该n个第一gtp包具有相同目的ip地址。
[0232]
可选地,该处理单元22,具体用于:从该第二gtp包中解析出n个gtp包头,以及与n个gtp包头中每个gtp包头对应的内容部分;分别将每个gtp包头和与该gtp包头对应的内容部分进行合并,得到该n个第一gtp包。
[0233]
可选地,该第二gtp包的ip头中包括第一字段,该第一字段用于指示该第二gtp包的总长度。
[0234]
可选地,针对每个第一gtp包,该第一gtp包的gtp包头中包括第二字段,该第二字段用于指示该第一gtp包的gtp包头及内容的长度。
[0235]
可选地,该处理单元22,具体用于:从该第二gtp包的包头中解析出n个第二字段、n个第三字段和p个第四字段;其中,p为小于或等于n的正整数;从该第二gtp包的内容中解析出n个gtp包头的剩余字段以及n个内容部分,其中,该剩余字段包括该gtp包头中除该第二字段、该第三字段和该第四字段之外的其他字段;分别将第二字段、第三字段、第四字段、剩余字段以及内容部分进行合并,得到n个第一gtp包。
[0236]
可选地,该处理单元22,具体用于:从该第二gtp包的扩展头后依次解析出n个gtp包头的剩余字段以及n个内容部分,其中,该剩余字段包括该gtp包头中除第二字段、第三字段和第五字段之外的其他字段;从该第二gtp包的扩展头中依次解析出n个第二字段、n个第三字段和n个第五字段;分别将该第二字段、该第三字段、该第五字段、剩余字段以及内容部分进行合并,得到n个第一gtp包。
[0237]
可选地,该n个第一gtp包中每个第一gtp包的gtp包头中所包括的总长度字段占1字节。
[0238]
可选地,该处理单元22,具体用于:针对该n个第一gtp包中的每个第一gtp包,根据该第一gtp包中的映射值,查询散列表中是否存在与该映射值对应的目标隧道端点标识teid,该散列表中包括多个teid和映射值之间的对应关系;若该散列表中存在与该映射值对应的目标teid,则将该第一gtp包中所包括的映射值替换为对应的目标teid,得到处理后的第一gtp包;其中,该映射值所占空间的大小小于该目标teid所占空间的大小。
[0239]
可选地,该装置还包括:接收单元23,该接收单元23,用于从该第一设备接收目标teid和该映射值之间的对应关系。
[0240]
本技术实施例所示的gprs隧道协议gtp包的处理装置20,可以执行上述任一项实施例所示的gprs隧道协议gtp包的处理方法的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
[0241]
需要说明的是,应理解以上装置的各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元通过软件通过处理元件调用的形式实现,部分单元通过硬件的形式实现。例如,接收单元可以为单独设立的处理元件,也可以集成在该gprs隧道协议gtp包的处理装置的某一个芯片中实现,此外,也可以以程序的形式存储于gprs隧道协议gtp包的处理装置的存储器中,由该gprs隧道协议gtp包的处理装置的某一个处理元件调用并执行该接收单元的功能。其它单元的实现与之类似。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。此外,以上接收单元是一种控制接收的单元,可以通过该gprs隧道协议gtp包的处理装置的接收装置接收信息。
[0242]
以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,asic),或,一个或多个微处理器(digital singnal processor,dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,fpga)等。再如,当以上某个单元通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,cpu)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,soc)的形式实现。
[0243]
图12为本技术实施例提供的一种网络设备的结构示意图。如图12所示,该网络设备包括:天线110、射频装置120、基带装置130。天线110与射频装置120连接。在上行方向上,射频装置120通过天线110接收终端发送的信息,将终端设备发送的信息发送给基带装置130进行处理。在下行方向上,基带装置130对终端设备的信息进行处理,并发送给射频装置120,射频装置120对终端设备的信息进行处理后经过天线110发送给终端设备。
[0244]
在一种实现中,以上各个单元通过处理元件调度程序的形式实现,例如基带装置130包括处理元件131和存储元件132,处理元件131调用存储元件132存储的程序,以执行以上方法实施例中的方法。此外,该基带装置130还可以包括接口133,用于与射频装置120交
互信息,该接口例如为通用公共无线接口(common public radio interface,cpri)。
[0245]
在另一种实现中,以上这些单元可以是被配置成实施以上方法的一个或多个处理元件,这些处理元件设置于基带装置130上,这里的处理元件可以为集成电路,例如:一个或多个asic,或,一个或多个dsp,或,一个或者多个fpga等。这些集成电路可以集成在一起,构成芯片。
[0246]
例如,以上各个模块可以集成在一起,以片上系统(system-on-a-chip,soc)的形式实现,例如,基带装置130包括soc芯片,用于实现以上方法。该芯片内可以集成处理元件131和存储元件132,由处理元件131调用存储元件132的存储的程序的形式实现以上方法或以上各个单元的功能;或者,该芯片内可以集成至少一个集成电路,用于实现以上方法或以上各个单元的功能;或者,可以结合以上实现方式,部分单元的功能通过处理元件调用程序的形式实现,部分单元的功能通过集成电路的形式实现。
[0247]
不管采用何种方式,总之,以上网络设备包括至少一个处理元件,存储元件和通信接口,其中至少一个处理元件用于执行以上方法实施例所提供的方法。处理元件可以以第一种方式:即执行存储元件存储的程序的方式执行以上方法实施例中的部分或全部步骤;也可以以第二种方式:即通过处理器元件中的硬件的集成逻辑电路结合指令的方式执行以上方法实施例中的部分或全部步骤;当然,也可以结合第一种方式和第二种方式执行以上方法实施例提供的方法。
[0248]
这里的处理元件同以上描述,可以是通用处理器,例如中央处理器(central processing unit,cpu),还可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,asic),或,一个或多个微处理器(digital singnal processor,dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,fpga)等。
[0249]
存储元件可以是一个存储器,也可以是多个存储元件的统称。
[0250]
图13为本技术实施例提供的sgw的结构示意图。如图13所示,该sgw可以包括发送器30、处理器31、存储器32、接收器34和至少一个通信总线33。应当理解,发送器30和接收器34可以为一个合并的模块,该合并的模块例如可以为收发器,收发器同时具有发送器30和接收器34的功能。通信总线33用于实现元件之间的通信连接。存储器32可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,存储器32中可以存储各种计算机程序,用于完成各种处理功能以及实现前述任一实施例的方法步骤。例如,该存储器32用于存储实现以上方法实施例,或者图11所示实施例各个单元的程序,处理器31调用该程序,执行以上方法实施例的操作,以实现图11所示的各个单元对应的功能。收发器可以与天线连接。收发器可以接收网络设备发送的信息,并将信息发送给处理器31进行处理。
[0251]
本技术还提供一种gprs隧道协议gtp包的处理装置,所述装置包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器执行所述存储器中存储的计算机程序,以使所述装置执行如前述任一实施例提供的gprs隧道协议gtp包的处理方法。
[0252]
本技术还提供一种gprs隧道协议gtp包的处理装置,包括:处理器和接口电路;
[0253]
所述接口电路,用于接收代码指令并传输至所述处理器;
[0254]
所述处理器,用于运行所述代码指令以执行前述任一实施例提供的gprs隧道协议gtp包的处理方法。
[0255]
本技术还提供一种gprs隧道协议gtp包的处理系统,包括如图10所示的网络设备以及如图11所示的sgw。
[0256]
本技术还提供一种可读存储介质,用于存储有指令,当所述指令被执行时,使如前述任一实施例提供的gprs隧道协议gtp包的处理方法。
[0257]
本技术还提供一种程序产品,该程序产品包括计算机程序(即执行指令),该计算机程序存储在可读存储介质中。网络设备的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得网络设备实施前述各种实施方式提供的gprs隧道协议gtp包的处理方法。
[0258]
本技术实施例还提供了一种gprs隧道协议gtp包的处理装置,包括至少一个存储元件和至少一个处理元件、所述至少一个存储元件用于存储程序,该程序被执行时,使得所述gprs隧道协议gtp包的处理装置执行上述任一实施例中的网络设备的操作。
[0259]
本技术还提供一种可读存储介质,用于存储有指令,当所述指令被执行时,使如前述任一实施例提供的gprs隧道协议gtp包的处理方法。
[0260]
本技术还提供一种程序产品,该程序产品包括计算机程序(即执行指令),该计算机程序存储在可读存储介质中。sgw的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得sgw实施前述各种实施方式提供的gprs隧道协议gtp包的处理方法。
[0261]
本技术实施例还提供了一种gprs隧道协议gtp包的处理装置,包括至少一个存储元件和至少一个处理元件、所述至少一个存储元件用于存储程序,该程序被执行时,使得所述gprs隧道协议gtp包的处理装置执行上述任一实施例中的sgw的操作。
[0262]
本技术还提供一种可读存储介质,用于存储有指令,当所述指令被执行时,使如前述任一实施例提供的gprs隧道协议gtp包的处理方法。
[0263]
本技术还提供一种程序产品,该程序产品包括计算机程序(即执行指令),该计算机程序存储在可读存储介质中。sgw的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得sgw实施前述各种实施方式提供的gprs隧道协议gtp包的处理方法。
[0264]
本技术实施例还提供了一种gprs隧道协议gtp包的处理装置,包括至少一个存储元件和至少一个处理元件、所述至少一个存储元件用于存储程序,该程序被执行时,使得所述gprs隧道协议gtp包的处理装置执行上述任一实施例中的sgw的操作。
[0265]
实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-only memory,rom)、ram、快闪存储器、硬盘、固态硬盘、磁带(magnetic tape)、软盘(floppy disk)、光盘(optical disc)及其任意组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜