gtp传输java_一种GTP数据包传输方法、相关装置及存储介质与流程

article/2025/11/7 16:59:38

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可


http://chatgpt.dhexx.cn/article/OlqUrfqP.shtml

相关文章

GTP协议

GTP协议 (2010-08-27 17:20:54) 转载▼ 标签: 杂谈 分类: 计算机网络 摘要:本文分析GPRS的GSN之间的GTP协议,阐述GTP协议的含义及用法。 关键词:GPRS GTP 协议 一、 引言 在GPRS系统的GSN(GPRS Support …

GTP协议格式分析

点击上方↑↑↑蓝字 [ 协议分析与还原 ] 关注我们 “ 分析GTP协议。” 本文对比较枯燥的协议资料进行学习,有需要可继续阅读,找到自己关注的知识点,暂时无需要可直接拉到文末表示阅读结束,让微信记下热爱学习的你的痕迹。 如果说T…

关于GTPv1协议解析

概述: ***(简单说一下,不重点讲述啦) GPRS 隧道协议 (GTP) 是一种隧道协议,用于 GPRS、UMTS、LTE 和 5G 网络。它分为两个独立的协议:GTP-C 和 GTP-U。GTP-C用于GPRS核心网络中,用于不同网络节…

GTP-U协议总结

1、​参考资料 3gpp TS 29.060 V17.1.0-GPRS Tunnelling Protocol (GTP) TS 29.281 V17.1.0-GPRS Tunnelling Protocol User Plane (GTPv1-U) 2、GTP协议 GTP(GPRS隧道协议(GPRSTunnelingProtocol)),可以分解成三种独立的协议&#xff0…

【5G核心网】 GTP协议

GTP 可以提供移动性的功能。 使用 GTP,网络的终端能够在网络中移动位置,各个端点集之间可以建立多个隧道,从而根据业务不同可以提供不同的 Qos,可以隐藏 IP,安全性更高。 1. 定义概念 GTP-U Message: GTP-U&#xff…

GTP协议的分析

一、 引言 在GPRS系统的GSN(GPRS Support Node,包括SGSN和GGSN)之间采用GTP(GPRS Tunnel Protocol)协议,GTP在整个GPRS协议栈中起着举足轻重的作用,GTP协议承载在TCP或UDP协议之上,分…

JS JQuery添加、替换、删除元素class属性

1、先声明一个div和两个class样式&#xff0c;用来测试&#xff1a; <html><head><meta charset"utf-8"><title></title><script src"https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script><s…

jquery动态添加和删除class属性

在用jquery时&#xff0c;遇到一个问题&#xff0c;就是如何动态得添加和删除class的属性&#xff0c;下面是我的解决代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio…

用jQuery的.addClass()方法给元素加class

Target Elements by Class Using jQuery 你看到我们是怎么给所有的按钮做弹回效果了吗&#xff1f;我们用 $("button")来选中按钮&#xff0c;然后用.addClass("animated bounce")给按钮加CSS class。 你只需要用jQuery的.addClass()方法&#xff0c;就可…

js 关于动态添加class样式的学习

如果&#xff0c;我这里有一个需求。如下的页面代码 <body> <input type"button" value"红" id"btn1"/> <p id"p1"> 2016年圣诞前的一个星期天下午&#xff0c;我推开窗&#xff0c;加州明媚的阳光洒在街道上&…

jQuery通过id属性来获取元素,通过.addClass()方法来添加class.

Target Elements by ID Using jQuery 你还可以根据id属性来获取元素 首先用$("#target3")来选择id为target3的button元素。 注意&#xff0c;就像CSS一样&#xff0c;在id的名字前加上 #。 然后使用jQuery的.addClass()方法来添加 animated和fadeOutclass. 例如…

js给元素添加class样式

图中&#xff0c;左侧和右侧都需要添加不同的class类样式 结构&#xff1a; <div class"left"><div class"img_bg leftOne" click"clickLeft(企业文化)">企业文化</div><div class"img_bg leftTwo" click"…

jq获取和设置标签的css样式、jq给标签增加或移除class属性

1、jQuery获取和设置标签的css样式 jQuery既可以直接获取标签的css样式&#xff0c;也可以设置样式&#xff0c;包括行内、内部、外部样式&#xff1b;思路&#xff1a;先要选取这个标签&#xff0c;然后再获取或者设置样式&#xff1b;获取css属性&#xff1a; console.log(…

JavaScript给元素添加class属性

注意&#xff1a;element.classList.remove()、element.classList.add() — ie9及以下不兼容 // 移除div的class属性 obj.classList.remove(active);// 添加class属性值 // 方式一 obj.className new active;// 方式二 // obj.className new active;// 方式三&#xff1a;属…

jq中的addClass()方法与样式冲突

添加类样式方法 addClass()&#xff1a;向被选元素添加指定的类名 注意&#xff1a;该方法仅仅只是在原有基础上添加属性&#xff0c;不会覆盖已存在的 class 属性 提示&#xff1a;如需添加多个类&#xff0c;使用空格分隔类名 一、添加一个class属性 <style>.div {wid…

Dubbo原理简单分析

1.Dubbo原理分析 alibaba有好几个分布式框架,主要有:进行远程调用(类似于RMI的这种远程调用)的(dubbo、hsf),jms消息服务(napoli、notify),KV数据库(tair)等。 这个框架/工具/产品在实现的时候,都考虑到了容灾,扩展,负载均衡,于是出现一个配置中心(ConfigServer)的东西…

dubbo解析-介绍服务端和客户端启动和服务调用步骤

本文基于dubbo 2.7.5版本代码 前面的文章介绍了很多dubbo的各个组件&#xff0c;本文将对通过介绍启动和服务调用过程梳理一下这些组件&#xff0c;也让大家对dubbo的全局有一个了解。 文章目录 一、服务端启动二、客户端启动三、服务调用 一、服务端启动 1、spring启动调用后…

面试杀手锏之Dubbo服务调用过程

点赞再看&#xff0c;养成习惯&#xff0c;微信搜一搜【三太子敖丙】关注这个喜欢写情怀的程序员。 本文 GitHub https://github.com/JavaFamily 已收录&#xff0c;有一线大厂面试完整考点、资料以及我的系列文章。 前言 前面我已经带着大家过了服务暴露和服务引入两个流程了…

dubbo的服务调用原理

一、前言 在我们使用dubbo进行远程服务消费时&#xff0c;可以通过Reference注解或dubbo:reference来配置引用的接口&#xff0c;最终会生成远程服务的代理类&#xff0c;转化成ReferenceBean&#xff0c;这样我们就可以像调用本地接口方法一样使用远程服务提供的功能&#xf…

18. Dubbo原理解析-服务调用

服务消费方发起请求 当服务的消费方引用了某远程服务&#xff0c;服务的应用方在spring的配置实例如下&#xff1a; <dubbo:referenceid"demoService"interface"com.alibaba.dubbo.demo.DemoServ ice" /> demoService实例其实是代理工厂生产的代理…