我是靠谱客的博主 独特太阳,最近开发中收集的这篇文章主要介绍gtp传输java_一种GTP数据包传输方法、相关装置及存储介质与流程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

9361c9b3b0c485ad14f68aa25cde7fc3.gif

本申请实施例涉及通信领域,尤其涉及一种GTP数据包传输方法、相关装置及存储介质。

背景技术:

通用分组无线服务隧道协议(General Packet Radio Service Tunnelling Protocol,GTP)是一种用于传输分组数据的通信协议。目前,己使用的GTP协议可被分为通用分组无线服务(General Packet Radio Service,GPRS)隧道协议用户平面(User plane of GPRS Tunneling Protocol,GTP-U)、GPRS隧道协议控制平面(Control plane of GPRS Tunneling Protocol,GTP-C)和GTP’。其中,GTP-U协议规定了利用在GPRS支持节点(GSN)之间建立的隧道传输用户分组数据的要求;GTP-C协议规定了控制和管理用户接入GPRS网络隧道的要求,从而基于GTP-C协议来创建、更新、或者删除GTP隧道;GTP’协议规定了计费传输的要求。

对于上行数据包,无线层终止于基站,并且基站建立了到达服务网关(Serving Gateway,S-GW)的GTP隧道,S-GW建立从S-GW到达分组数据网网关(Packet Data Network Gateway,P-GW)的GTP隧道,P-GW则提供了到达骨干网的桥梁。在GTP-U的数据包的GTP-U头部中包括隧道端点标识(Tunnel Endpoint Identification,TEID)字段,隧道端点标识字段承载的内容用于标识GTP-U协议中GTP-U数据包的隧道标识。

软件定义网络(Software Defined Networking,SDN)架构以控制平面和转发平面分离,从而实现灵活网络控制的优势逐渐引起了各大网络运营商的重视。在移动核心网中引入SDN技术可以实现核心网中根据用户、业务特性等对数据流进行精细控制的目的。现有的SDN南向协议OpenFlow设备并不支持GTP协议,综上,亟需一种GTP数据包传输方案,用于使OpenFlow设备能够通过GTP隧道传输GTP数据包。

技术实现要素:

本申请实施例提供一种GTP数据包传输方法、相关装置及存储介质,用于使OpenFlow设备能够通过GTP隧道传输GTP数据包。

第一方面,本申请实施例提供一种GTP数据包传输方法,包括:第一GTP处理模块接收第一OpenFlow设备发送的第一待处理GTP数据包;其中,第一待处理GTP数据包包括第一待处理GTP数据包对应的GTP隧道标识;其中,第一待处理GTP数据包是从第一通信设备通过所连接的第一OpenFlow设备通过GTP隧道发送至第二通信设备的数据包;第一GTP处理模块将接收到的第一待处理GTP数据包的包头区域中的GTP头区域中承载的GTP隧道标识搬移至预设区域,得到第一处理后GTP数据包;其中,预设区域为包头区域中除GTP头区域之外的区域;第一GTP处理模块将第一处理后GTP数据包反馈给第一OpenFlow设备。

本申请实施例中由于第一GTP处理模块将接收到的第一待处理GTP数据包的包头区域中的GTP头区域中承载的GTP隧道标识搬移至预设区域;预设区域为包头区域中除GTP头区域之外的区域,从而可使OpenFlow设备可以识别出封装于预设区域的GTP隧道标识,从而可以根据GTP隧道标识所标识的GTP隧道发送GTP数据包。

在一种可选地实施方式中,第一GTP处理模块将接收到的第一待处理GTP数据包的包头区域中的GTP头区域中承载的GTP隧道标识搬移至预设区域,可以通过将接收到的第一待处理GTP数据包的包头区域中的GTP头区域中承载的GTP隧道标识搬移至包头区域中用于承载源网络协议IP地址的区域中。由于GTP数据包在传输过程中,可以只根据目的IP地址和GTP隧道标识对GTP数据包进行传输,因此外部IP头区域中的源IP地址在该GTP数据包的传输过程中可以看作是冗余信息,因此将用于承载源网络协议IP地址的区域承载GTP隧道标识不会影响GTP数据包的传输。

在一种可选地实施方式中,第一GTP处理模块将接收到的第一待处理GTP数据包的包头区域中的GTP头区域中承载的GTP隧道标识搬移至包头区域中用于承载源IP地址的区域中之后,还可以将接收到的第一待处理GTP数据包的包头区域中用于承载源IP地址的区域中的源IP地址搬移至GTP头区域中。这种方式可以为后续将外部源IP地址重新放置到第二处理后GTP数据包的用于承载源IP地址的区域中奠定基础。在一种可选地实施方式中,GTP数据包为用户面GTP数据包。在一种可选地实施方式中,GTP数据包为用户面GTP数据包。

第二方面,本申请实施例提供一种GTP数据包传输方法,包括:第一OpenFlow设备接收与第一OpenFlow设备连接的第一通信设备发送的第一待处理GTP数据包;其中,第一待处理GTP数据包包括第一待处理GTP数据包对应的GTP隧道标识;GTP隧道标识承载于第一待处理GTP数据包的包头区域中的GTP头区域;第一OpenFlow设备将第一待处理GTP数据包发送给第一GTP处理模块进行处理;第一OpenFlow设备接收第一GTP处理模块发送的对第一待处理GTP数据包进行处理后得到的第一处理后GTP数据包;其中,GTP隧道标识承载于第一处理后GTP数据包的包头区域中的预设区域;预设区域为包头区域中除GTP头区域之外的区域;第一OpenFlow设备根据承载于预设区域中的GTP隧道标识通过GTP隧道向第二通信设备发送第一处理后GTP数据包。

本申请实施例中由于第一GTP处理模块将接收到的第一待处理GTP数据包的包头区域中的GTP头区域中承载的GTP隧道标识搬移至预设区域;预设区域为包头区域中除GTP头区域之外的区域,从而可使OpenFlow设备可以识别出封装于预设区域的GTP隧道标识,从而可以根据GTP隧道标识所标识的GTP隧道发送GTP数据包。

在一种可选地实施方式中,GTP隧道标识承载于第一处理后GTP数据包的包头区域中的用于承载源网络协议IP地址的区域中。由于GTP数据包在传输过程中,可以只根据目的IP地址和GTP隧道标识对GTP数据包进行传输,因此外部IP头区域中的源IP地址在该GTP数据包的传输过程中可以看作是冗余信息,因此将用于承载源网络协议IP地址的区域承载GTP隧道标识不会影响GTP数据包的传输。

在一种可选地实施方式中,第一待处理GTP数据包的包头区域中的用于承载源IP地址的区域中的源IP地址承载于第一处理后GTP数据包的包头区域中的GTP头区域中。这种方式可以为后续将外部源IP地址重新放置到第二处理后GTP数据包的用于承载源IP地址的区域中奠定基础。在一种可选地实施方式中,GTP数据包为用户面GTP数据包。

第三方面,本申请实施例提供一种GTP数据包传输方法,包括:第二GTP处理模块接收第二OpenFlow设备发送的第二待处理GTP数据包;其中,第二待处理GTP数据包包括第二待处理GTP数据包对应的GTP隧道标识;其中,第二待处理GTP数据包是从第一通信设备通过GTP隧道发送至与第二OpenFlow设备连接的第二通信设备的数据包;第二GTP处理模块向第二OpenFlow设备发送第二待处理GTP数据包对应的第二处理后GTP数据包;其中,第二处理后GTP数据包的包头区域的用于承载源IP地址的区域中承载源网络协议IP地址。

由于第二GTP处理模块对第二待处理GTP数据包进行了处理,因此第二处理后GTP数据包的包头区域的用于承载源IP地址的区域中承载源IP地址,从而为第二待处理GTP数据包在后续的传输过程中正常传输奠定了基础,而且可以为上述第一GTP处理模块将GTP隧道标识承载于用于承载源IP地址的区域中进行传输的方案提供了支持。

在一种可选地实施方式中,第二GTP处理模块向第二OpenFlow设备发送第二待处理GTP数据包对应的第二处理后GTP数据包之前,还可以在未从第二待处理GTP数据包的包头区域的用于承载源IP地址的区域中解析到源IP地址的情况下,第二GTP处理模块将接收到的第二待处理GTP数据包的包头区域中的GTP头区域中承载的源IP地址搬移至第二待处理GTP数据包的包头区域中的用于承载源IP地址的区域中,得到第二处理后GTP数据包。这种方式可以更加快速的将外部源IP地址放置到第二处理后GTP数据包的用于承载源IP地址的区域中,为该GTP数据包的后续传输奠定基础。

在一种可选地实施方式中,第二GTP处理模块将接收到的第二待处理GTP数据包的包头区域中的GTP头区域中承载的源IP地址搬移至第二待处理GTP数据包的包头区域中的用于承载源IP地址的区域中之后,得到第二处理后GTP数据包之前,还可以将接收到的第二待处理GTP数据包的包头区域中的用于承载源IP地址的区域中承载的GTP隧道标识搬移至第二待处理GTP数据包的包头区域中的GTP头区域中。如此则保证了数据的完整性。在一种可选地实施方式中,GTP数据包为用户面GTP数据包。

第四方面,本申请实施例提供一种GTP数据包传输方法,包括:第二OpenFlow设备通过GTP隧道接收第一通信设备发送的第二待处理GTP数据包;第二OpenFlow设备将第二待处理GTP数据包发送给第二GTP处理模块进行处理;第二OpenFlow设备接收第二GTP处理模块发送的对第二待处理GTP数据包进行处理后得到的第二处理后GTP数据包;其中,第二处理后GTP数据包的包头区域中用于承载源网络协议IP地址的区域中承载源IP地址;第二OpenFlow设备向与第二OpenFlow设备连接的第二通信设备发送第二处理后GTP数据包。

由于第二GTP处理模块对第二待处理GTP数据包进行了处理,因此第二处理后GTP数据包的包头区域的用于承载源IP地址的区域中承载源IP地址,从而为第二待处理GTP数据包在后续的传输过程中正常传输奠定了基础,而且可以为上述第一GTP处理模块将GTP隧道标识承载于用于承载源IP地址的区域中进行传输的方案提供了支持。

在一种可选地实施方式中,第二待处理GTP数据包的包头区域中用于承载源IP地址的区域承载有GTP隧道标识;源IP地址承载于第二待处理GTP数据包的包头区域中的GTP头区域中。在一种可选地实施方式中,GTP隧道标识承载于第二处理后GTP数据包的包头区域中的GTP头区域中。在一种可选地实施方式中,GTP数据包为用户面GTP数据包。

第五方面,本申请实施例提供一种GTP处理模块,GTP处理模块包括存储器、接收接口、发送接口和处理器,其中:存储器用于存储指令;处理器用于根据执行存储器存储的指令,并控制接收接口和发送接口进行信号接收和信号发送,当处理器执行存储器存储的指令时,GTP处理模块用于执行上述第一方面或第一方面中任一种方法,或者,GTP处理模块用于执行上述第三方面或第三方面中任一种方法。

第六方面,本申请实施例提供一种OpenFlow设备,OpenFlow设备包括存储器、接收接口、发送接口和处理器,其中:存储器用于存储指令;处理器用于根据执行存储器存储的指令,并控制接收接口和发送接口进行信号接收和信号发送,当处理器执行存储器存储的指令时,OpenFlow设备用于执行上述第二方面或第二方面中任一种方法,或者,OpenFlow设备用于执行上述第四方面或第四方面中任一种方法。

第七方面,本申请实施例提供一种GTP处理模块,用于实现上述第一方面或第一方面中的任意一种方法,或者用于实现上述第三方面或第三方面中的任意一种方法,包括相应的功能模块,分别用于实现以上方法中的步骤。

第八方面,本申请实施例提供一种OpenFlow设备,用于实现上述第二方面或第二方面中的任意一种方法,或者用于实现上述第四方面或第四方面中的任意一种方法,包括相应的功能模块,分别用于实现以上方法中的步骤。

第九方面,本申请实施例提供一种计算机存储介质,计算机存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法;或者使得计算机执行第二方面或第二方面的任意可能的实现方式中的方法;或者使得计算机执行第三方面或第三方面的任意可能的实现方式中的方法;或者使得计算机执行第四方面或第四方面的任意可能的实现方式中的方法。

第十方面,本申请实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法;或者使得计算机执行第二方面或第二方面的任意可能的实现方式中的方法;或者使得计算机执行第三方面或第三方面的任意可能的实现方式中的方法;或者使得计算机执行第四方面或第四方面的任意可能的实现方式中的方法。

附图说明

图1为本申请实施例适用的一种通信系统架构示意图;

图2为本申请实施中提供的一种GTP数据包协议栈的示意图;

图3为本申请实施例提供的一种GTP数据包的结构示意图;

图4为本申请实施例提供一种GTP数据包传输方法的流程示意图;

图5为本申请实施例提供的另一种GTP数据包传输方法;

图6为本申请实施例提供的一种OpenFlow流表的表项的包头区域的结构示意图;

图7为本申请实施例提供的另一种GTP数据包传输方法流程示意图;

图8为本申请实施例还提供一种GTP处理模块的结构示意图;

图9为本申请实施例还提供一种OpenFlow设备的结构示意图;

图10为本申请实施例还提供一种GTP处理模块的结构示意图;

图11为本申请实施例还提供一种OpenFlow设备的结构示意图;

图12为本申请实施例还提供一种GTP处理模块的结构示意图;

图13为本申请实施例还提供一种OpenFlow设备的结构示意图。

具体实施方式

图1示例性示出了本申请实施例适用的一种通信系统架构示意图,如图1所示,包括终端设备1101、基站1102、S-GW1103、P-GW1104以及SDN1105。基站1102和终端设备1101之间可以通过空口连接。基站1102和S-GW1103之间,以及S-GW1103和P-GW1104之间可以通过传输网络进行连接。SDN1105可以通过传输网络与S-GW1103、P-GW1104或其它网元设备连接,比如SDN1105还可以与OpenFlow设备1201、OpenFlow设备1202、OpenFlow设备1203、OpenFlow设备1204和OpenFlow设备1106连接。图1中支持OpenFlow的设备1106可以是S-GW1103和P-GW1104之间的支持OpenFlow的交换机和/或路由器。

如图1所示,针对基站1102、S-GW1103和P-GW1104等网元中的任一个网元,该网元的输入输出口可以配置OpenFlow设备,该网元的输入输出口所配置的OpenFlow设备可以挂载GTP处理模块。比如基站1102通过基站1102的第一输入输出口与S-GW1103的第二输入输出口连通,则基站1102和S-GW1103之间所传输的数据都需通过基站1102的第一输入输出口和S-GW1103的第二输入输出口进行传输。也就是说,基站1102通过第一输入输出口接收来自S-GW1103的数据或向S-GW1103发送数据。S-GW1103通过第二输入输出口接收来自基站1102的数据或向基站1102发送数据。基站1102的第一输入输出口配置OpenFlow设备1201,OpenFlow设备1201连接GTP处理模块1301。S-GW1103的第二输入输出口配置OpenFlow设备1202,OpenFlow设备1202连接GTP处理模块1302。

再比如,S-GW1103通过S-GW1103的第三输入输出口与P-GW1104的第四输入输出口连通,则S-GW1103和P-GW1104之间所传输的数据都需通过S-GW1103的第三输入输出口和P-GW1104的第四输入输出口进行传输。也就是说,S-GW1103通过第三输入输出口接收来自P-GW1104的数据或向P-GW1104发送数据。P-GW1104通过第四输入输出口接收来自S-GW1103的数据或向S-GW1103发送数据。S-GW1103的第三输入输出口配置OpenFlow设备1203,OpenFlow设备1203连接GTP处理模块1303。P-GW1104的第四输入输出口配置OpenFlow设备1204,OpenFlow设备1204连接GTP处理模块1304。

可选地,本申请实施例中在OpenFlow设备1203和OpenFlow设备1204之间可能还存在一个或多个支持OpenFlow的设备1106,在OpenFlow设备1201和OpenFlow设备1202之间也可能还存在一个或多个支持OpenFlow的设备1106,这些支持OpenFlow的设备1106可

最后

以上就是独特太阳为你收集整理的gtp传输java_一种GTP数据包传输方法、相关装置及存储介质与流程的全部内容,希望文章能够帮你解决gtp传输java_一种GTP数据包传输方法、相关装置及存储介质与流程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部