一种gtp-u数据转发方法

文档序号:7792545阅读:162来源:国知局
专利名称:一种gtp-u数据转发方法
技术领域
本发明涉及数据通信领域,尤其是涉及一种GTP-U数据转发方法。
背景技术
LTE (Long Term Evolution,长期演进)也被通俗的称为3. 9G,集很多先进技术和优良的系统架构于一身。该技术可提升无线宽带网络中的数据传输率并保障稳定的服务品质与数据吞吐量,被视作从3G向4G演进的主流技术。GTP-U(User plane of GPRS Tunneling Protocol, GPRS 隧道协议用户平面)是 LTE接口用户面协议,具有Iu-PS用户面数据的传输和管理功能。在LTE基站侧的GTP-U中, 现有技术是基于TCP/IP协议栈对数据进行转发。以下行数据转发为例,图1示出了 GTP-U 数据由主控处理单元发送到基带处理单元的具体过程先经过主控单元的网络驱动层接收 GTP-U数据,然后将数据放到TCP/IP协议栈,在IP层和UDP层对数据进行处理,如组包等, 并将数据发送到socket出口发生一次拷贝后将数据发送至GTP层,并再由GTP层对数据进行处理后再进入TCP/IP协议栈,经过UDP层、IP层并在socket接口发生一次拷贝后将数据发送到主控单元的网络驱动,之后通过网络驱动发送到相应的基带处理单元上。基带处理单元通过网络驱动接收数据并将其放入TCP/IP协议栈,先后经IP层和UDP层,并在socket 接口发生一次拷贝后将数据发送至PDCP层。上行GTP-U数据转发方法与下行GTP-U数据转发方法原理一致,只是方向相反。在上述方法中,GTP-U数据在从主控单元到基带处理单元过程中,需要进出多次协议栈做大量工作,并需要在socket接口进行多次拷贝,转发过程复杂。而且其中的很多工作对于GTP-U这种基于UDP的协议往往是不需要的。另外GTP-U是用户面协议,其业务量比较大,需要占用大量的网络协议栈资源。现在使用的TCP/IP协议栈往往达不到这种要求。 因此利用上述方法对GTP-U数据转发的速率比较低,不能满足当前对GTP-U数据转发速率的需要。

发明内容
本发明的目的在于提供一种GTP-U数据转发方法,能够使数据不必进入TCP/IP的协议栈而进行转发,提高了数据的转发速率。本发明提供了如下方案—种GTP-U数据转发方法,所述方法包括在主控单元的网络驱动层调用第一回调函数将接收的GTP-U数据缓存并发送至 GTP 层;在所述GTP层修改所述GTP-U数据的头内容,生成符合PDCP层需要的PDCP数据并发送至基带处理单元;在所述基带处理单元的网络驱动层调用所述第一回调函数将所述PDCP数据缓存。优选的,当所述的PDCP层在所述的基带处理单元时,所述方法还包括
将所述基带处理单元的网络驱动层缓存的所述PDCP数据发送至所述PDCP层。优选的,当所述的PDCP层在所述的主控单元时,所述发送至基带处理单元包括发送所述PDCP数据至所述PDCP层;所述PDCP层发送所述PDCP数据至所述基带处理单元的网络驱动层。优选的,在所述发送所述第一数据至基带处理单元前,所述方法还包括对所述PDCP数据的头内容编解码,生成PDCP压缩数据;所述发送所述PDCP数据至基带处理单元包括发送所述PDCP压缩数据至所述基带处理单元。优选的,当所述GTP-U数据为IP分片数据时,在所述GTP层修改所述GTP-U数据的头内容,生成符合PDCP层需要的PDCP数据前,所述方法还包括将具有相同ID的IP分片数据缓存在第一链表中;其中,所述第一链表以红黑树的形式缓存所述IP分片数据;当所述具有相同ID的IP分片数据全部缓存时,判断所述具有相同ID的IP分片数据是否为GTP-U数据;若是,则所述GTP层修改所述GTP-U数据的头内容,生成符合PDCP层需要的PDCP 数据包括在所述GTP层修改所述具有相同ID的IP分片数据的头内容,生成符合所述PDCP 层需要的PDCP数据;将所述PDCP数据组成巨帧;所述发送至基带处理单元包括发送所述巨帧至所述基带处理单元。优选的,所述方法还包括以所述IP分片数据的ID为依据,建立所述IP分片数据的缓存索引。优选的,所述方法还包括当所述红黑树溢出时,查找所述缓存索引,确定先溢出的IP分片数据的ID ;删除所述红黑树中具有所述ID的IP分片数据;删除所述缓存索引中所述先溢出的IP分片数据的ID。
本发明还提供了一种GTP-U数据转发方法,所述方法包括将基带处理单元接收的数据发送至主控单元;在所述主控单元的网络驱动层调用第二回调函数将所述数据缓存并发送至GTP 层;在所述GTP层将接收的所述数据的头内容修改,生成所述GTP层需要的GTP-U数据并发送。优选的,当PDCP层在所述基带处理单元时,所述将基带处理单元接收的数据发送至主控单元包括将所述基带处理单元接收的数据发送至所述PDCP层;将所述PDCP层接收的数据的头内容进行修改,生成符合所述PDCP层需要的PDCP数据。优选的,当所述PDCP层在所述的主控单元时,所述发送至GTP层包括
发送所述数据至所述PDCP层,在所述PDCP层对所述数据的头内容进行修改,生成符合所述PDCP层需要的PDCP数据;所述PDCP层发送所述PDCP数据至所述GTP层;所述在所述GTP层将接收的所述数据的头内容修改,生成所述GTP层需要的GTP-U 数据并发送包括在所述GTP层将接收的所述PDCP数据的头内容修改,生成所述GTP层需要的 GTP-U数据并发送。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是GTP-U数据的传统转发流程示意图;图2是本发明实施例1方法流程图;图3是本发明实施例3方法流程图;图4是本发明实施例中IP分片数据缓存结构图;
图5为本发明实施例4方法流程图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例1提供了一种GTP-U数据转发方法,这一方法涉及GTP-U数据的下行转发方法,如图2所示,所述方法包括S11、在主控单元的网络驱动层调用第一回调函数将接收的GTP-U数据缓存并发送至GTP层。在下行GTP-U数据转发过程中,GTP-U数据首先被发送至主控单元的网络驱动层即网络接口处。为避免数据被发送至TCP/IP协议栈,首先在网络驱动层调用第一回调函数,将接收的GTP-U数据缓存起来。之后越过IP层和UDP层将数据直接发送至GTP层。S12、在所述GTP层修改所述GTP-U数据的头内容,生成符合PDCP层需要的PDCP 数据并发送至基带处理单元。S13、在所述基带处理单元的网络驱动层调用所述第一回调函数将所述PDCP数据缓存。在本发明的具体实施例中,PDCP层处于基带处理单元。因此生成的PDCP数据首先要从GTP层发往主控单元的网络驱动,并由网络驱动发送至基带处理单元的网络驱动。为避免将接收的数据放入TCP/IP协议栈,基带处理单元的网络驱动层会调用第一回调函数, 将接收的PDCP层数据缓存,并发送至PDCP层。
6
当PDCP层与GTP层同处于主控单元时,生成的PDCP数据会首先在主控单元内由 GTP层发送至PDCP层。再有PDCP层经由主控单元的网络驱动层发送至基带处理单元的网络驱动。基带处理单元的网络驱动调用第一回调函数将此数据缓存并在内部进行处理。在本发明的实施例2中,当生成的PDCP数据较大时,在所述发送所述PDCP数据至基带处理单元前,所述方法还包括对所述PDCP数据的头内容编解码,生成PDCP压缩数据;其中,步骤S13具体为发送所述PDCP压缩数据至所述基带处理单元。值得注意的是,PDCP层的压缩数据在到达PDCP层后会解压缩。当PDCP层在所述的主控单元时,发送至基带处理单元的实际上是解压缩后的PDCP数据。链路层具有最大传输单元(Maximum Transmission Unit,以下简称MTU)这个特性,它限制了数据帧的最大长度,因此如果数据包的长度超过了 MTU,那么就要对数据包进行分片(fragmentation)操作,使每一片的长度都小于或等于MTU。因此,很多时候GTP层接收到的数据是IP分片数据。具有统一标识ID的分片数据除第一个IP分片数据包外,后续的IP分片数据包都没有UDP头和GTP-U头。在本发明的实施例3中,在所述GTP层修改所述GTP-U数据的头内容,生成符合PDCP层需要的PDCP数据前,参见图3,对于IP分片数据,本发明方法还包括S21、将具有相同ID的IP分片数据缓存在第一链表中。为之后查询方便,所述第一链表可以以平衡二叉树或散列表的形式缓存IP分片数据。平衡二叉树又被称为AVL树,它是一颗空树或他的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一颗平衡二叉树。更优选的,在本发明中的平衡二叉树为红黑树。它的操作有着良好的最坏情况运行时间,并且在实践中是高效的它可以在O(Iogn)时间内做查找,插入和删除,里的η是树中元素的数目。相对其他的存储方式,红黑树的高校查询方式大大缩短了查询的时间。S22、当所述具有相同ID的IP分片数据全部缓存时,判断所述具有相同ID的IP 分片数据是否为GTP-U数据。S23、若是,在所述GTP层修改所述具有相同ID的IP分片数据的头内容,生成符合所述PDCP层需要的PDCP数据。S24、将所述PDCP数据组成巨帧。S25、发送所述巨帧至所述基带处理单元。在本发明的具体实施例中,为进一步提高查询速度,所述方法还包括以所述IP 分片数据的ID为依据,建立所述IP分片数据的缓存索引。其具体的数据存储结构图如图4所示。在数据的整体存储中,Al部分为红黑树, 其中分布有存储分片数据的链表,Α2部分为以IP分片数据的ID为依据建立的缓存索引。 通过建立的缓存索引我们能够清楚的知道IP分片数据包到达的先后顺序。在本发明的具体实施例中,当所述红黑树溢出时,可以通过查找所述缓存索引,确定最先溢出的IP分片数据的ID。然后删除所述红黑树中具有所述ID的IP分片数据,并删除所述缓存索引中所述先溢出的IP分片数据的ID。
7
综上所述,本发明通过在主控单元和基带处理板的网络驱动层分别调用回调函数将接收的GTP-U数据缓存,避免了将数据投入TCP/IP协议栈进行大量处理,同时,在GTP层将GTP-U数据的头内容修改为PDCP层需要的数据,使其承载了 PDCP层的信息,避免了对其进行拷贝操作。可见本发明的方法减少了 GTP-U数据的转发过程,从而提高了 GTP-U数据的转发速率。另外,本发明通过对IP分片数据采取红黑树的形式缓存,并建立缓存索引的方法,很大程度上提高了对IP分片数据的查询速度。对IP分片数据组成巨帧进行发送的形式,使得在基带处理单元不需要对其进行分段操作。从而进一步提高了 GTP-U数据的转发速率。本发明实施例4还提供了一种GTP-U数据转发方法,参见图5,该方法为GTP-U数据的上行转发方法,所述方法包括S31、将基带处理单元接收的数据发送至主控单元。基带处理单元首先会将接收的数据做处理。在本发明的具体实施例中,当PDCP层在所述基带处理单元时,PDCP层会首先将所述PDCP层接收的数据的头内容进行修改,生成符合所述PDCP层需要的PDCP数据。再由PDCP层经由基带处理单元的网络驱动层发送至主控单元。S32、在所述主控单元的网络驱动层调用第二回调函数将所述数据缓存并发送至 GTP 层。在本发明的具体实施例中,当所述PDCP层在所述的主控单元时,基带处理单元会经由其网络驱动层发送所述数据至主控单元的网络驱动层。主控单元的网络驱动层调用第二回调函数将所述数据缓存并首先发送至PDCP层。在PDCP层对接收的数据的头内容进行修改,生成符合所述PDCP层需要的PDCP数据。之后将PDCP数据发送至GTP层。S33、在所述GTP层将接收的所述数据的头内容修改,生成所述GTP层需要的GTP-U 数据并发送。在GTP层对PDCP数据的头内容进行修改,生成所述GTP层需要的GTP-U数据并发
送出去ο综上所述,本发明通过在主控板的网络驱动层调用回调函数将基带板接收的数据缓存,避免了将数据投入TCP/IP协议栈,进行大量不必要的处理工作。同时,在PDCP层和 GTP层对接收的数据直接进行修改,避免了多次拷贝。可见本发明的方法减少了 GTP-U数据的转发过程,从而提高了 GTP-U数据的转发速率。以上对本发明所提供的一种GTP-U数据转发方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种GTP-U数据转发方法,其特征在于,所述方法包括在主控单元的网络驱动层调用第一回调函数将接收的GTP-U数据缓存并发送至GTP层;在所述GTP层修改所述GTP-U数据的头内容,生成符合PDCP层需要的PDCP数据并发送至基带处理单元;在所述基带处理单元的网络驱动层调用所述第一回调函数将所述PDCP数据缓存。
2.根据权利要求1所述的方法,其特征在于,当所述的PDCP层在所述的基带处理单元时,所述方法还包括将所述基带处理单元的网络驱动层缓存的所述PDCP数据发送至所述PDCP层。
3.根据权利要求1所述的方法,其特征在于,当所述的PDCP层在所述的主控单元时,所述发送至基带处理单元包括发送所述PDCP数据至所述PDCP层;所述PDCP层发送所述PDCP数据至所述基带处理单元的网络驱动层。
4.根据权利要求1所述的方法,其特征在于,在所述发送所述第一数据至基带处理单元前,所述方法还包括对所述PDCP数据的头内容编解码,生成PDCP压缩数据; 所述发送所述PDCP数据至基带处理单元包括 发送所述PDCP压缩数据至所述基带处理单元。
5.根据权利要求1所述的方法,其特征在于,当所述GTP-U数据为IP分片数据时,在所述GTP层修改所述GTP-U数据的头内容,生成符合PDCP层需要的PDCP数据前,所述方法还包括将具有相同ID的IP分片数据缓存在第一链表中;其中,所述第一链表以红黑树的形式缓存所述IP分片数据;当所述具有相同ID的IP分片数据全部缓存时,判断所述具有相同ID的IP分片数据是否为GTP-U数据;若是,则所述GTP层修改所述GTP-U数据的头内容,生成符合PDCP层需要的PDCP数据包括在所述GTP层修改所述具有相同ID的IP分片数据的头内容,生成符合所述PDCP层需要的PDCP数据;将所述PDCP数据组成巨帧; 所述发送至基带处理单元包括 发送所述巨帧至所述基带处理单元。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括 以所述IP分片数据的I D为依据,建立所述I P分片数据的缓存索引。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括当所述红黑树溢出时,查找所述缓存索引,确定先溢出的IP分片数据的ID ; 删除所述红黑树中具有所述ID的IP分片数据; 删除所述缓存索引中所述先溢出的IP分片数据的ID。
8.—种GTP-U数据转发方法,其特征在于,所述方法包括将基带处理单元接收的数据发送至主控单元;在所述主控单元的网络驱动层调用第二回调函数将所述数据缓存并发送至GTP层; 在所述GTP层将接收的所述数据的头内容修改,生成所述GTP层需要的GTP-U数据并发送。
9.根据权利要求8所述的方法,其特征在于,当PDCP层在所述基带处理单元时,所述将基带处理单元接收的数据发送至主控单元包括将所述基带处理单元接收的数据发送至所述PDCP层;将所述PDCP层接收的数据的头内容进行修改,生成符合所述PDCP层需要的PDCP数据。
10.根据权利要求8所述的方法,其特征在于,当所述PDCP层在所述的主控单元时,所述发送至GTP层包括发送所述数据至所述PDCP层,在所述PDCP层对所述数据的头内容进行修改,生成符合所述PDCP层需要的PDCP数据;所述PDCP层发送所述PDCP数据至所述GTP层;所述在所述GTP层将接收的所述数据的头内容修改,生成所述GTP层需要的GTP-U数据并发送包括在所述GTP层将接收的所述PDCP数据的头内容修改,生成所述GTP层需要的GTP-U数据并发送。
全文摘要
本发明公开了提供了一种GTP-U数据的转发方法,该方法包括在主控单元的网络驱动层调用第一回调函数将接收的GTP-U数据缓存并发送至GTP层;在所述GTP层修改所述GTP-U数据的头内容,生成符合PDCP层需要的PDCP数据并发送至基带处理单元;在所述基带处理单元的网络驱动层调用所述第一回调函数将所述PDCP数据缓存。本发明还提供了一种GTP-U数据的转发方法,该方法包括将基带处理单元接收的数据发送至主控单元;在所述主控单元的网络驱动层调用第二回调函数将所述数据缓存并发送至GTP层;在所述GTP层将接收的所述数据的头内容修改,生成所述GTP层需要的GTP-U数据并发送。本发明所提供的方法能够使数据不必进入TCP/IP的协议栈而进行转发,提高了数据的转发速率。
文档编号H04W8/20GK102413455SQ20111043598
公开日2012年4月11日 申请日期2011年12月22日 优先权日2011年12月22日
发明者付永魁, 余建国, 黄宬 申请人:北京北方烽火科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1