GTP协议格式分析

37 篇文章 14 订阅
订阅专栏
点击上方蓝字 [ 协议分析与还原 ] 关注我们

 分析GTP协议。

本文对比较枯燥的协议资料进行学习,有需要可继续阅读,找到自己关注的知识点,暂时无需要可直接拉到文末表示阅读结束,让微信记下热爱学习的你的痕迹。

如果说TCP/IP协议是网络世界的老大,那么,移动网络世界的扛把子一定是GTP协议无疑了。

GTP协议,即GPRS Tunnelling Protocol,翻译过来就是GPRS隧道协议的意思。

经常使用手机上网的同学,看到GPRS肯定会想,这是什么年代的玩意?确实,相对于当前炒得十分火热的5G,以及正在当家的4G,和已经过去的3G,第二点五代的GPRS技术已经很老。

但是,技术并不是跳跃式发展的,而是一小步一小步慢慢向前发展的,新的技术,总是建立在旧的技术基础上,逐渐改进提高,最终取得巨大的进步。

在久远的世纪之初的GPRS时代,GTP协议随着GPRS的出现而诞生,随着社会的发展,它并没有消逝,而是继续伴随着移动网络的大发展而继续为移动网络的互联互通而服务,发光发热。

GTP协议用于移动网络中,用来支持通用分组无线服务(GPRS)的通讯协议,位于TCP/IP或UDP/IP等协议的上层,同时,它又是基于IP的高层协议,也就是说它是由IP协议承载的,可以是TCP/IP(很早前的版本),也可以是UDP/IP。

总体的格式大概是这样,其中上方的承载协议UDP也可以是TCP:

640?wx_fmt=png

和其它协议一样,GTP协议在不同的时代也有不同的版本,最早是GTP v0,目前已经淘汰,之后先后更新为GTP v1和GTP v2。

作为移动网络的协议,GTP当然是由3GPP组织来定义的,GTP v2参考3GPP TS 29.274,GTP v1参考3GPP TS 29.060。

各个版本的差异主要是协议功能,即传输的内容的差异,新版本一般来说比旧版本承载更多的信息。

GTP协议其实是一组协议,可以分成三种独立的协议,GTP-C、GTP-U及GTP'(GTP Prime),GTP-C用于GPRS核心网内信令数据的传输,使用端口2123,GTP-U用于GPRS核心网内用户数据的传输,即手机日常的上网数据,使用端口2152,另外有GTP'用于计费数据的传输,使用端口3386。

虽然它们各自独立,但报文头的格式是统一的,每个版本都是统一定义的,且兼容旧版本。

GTP v1的消息头格式如下:

640?wx_fmt=png

图中红色部分为可选字段,其中:

version为版本号,长度3位,GTPv1值为1,即三位分别为001;

p为协议类型(Protocol type),长度1位,1表示是GTP-C或GTP-U,0表示是GTP';

R为保留位,长度1位,值为0;

e为扩展消息头标志位(Extension Header Flag),长度1位,标记是否存在一个可选的扩展消息头字段,有则值为1,无则为0;

s为序列号标志位(Sequence Number Flag),长度1位,标记是否存在一个可选的序列号字段,有则值为1,无则为0;

Pn为N-PDU号标志位(Number Flag),长度1位,标记是否存在一个可选的N-PDU号字段,有则值为1,无则为0;

Message为消息类型(Message Type),长度8位,即GTP消息的类型,消息类型参考相关标准;

Total length为消息总长度,长度16位,不包括GTP头前8字节,单位为字节;

TEID为隧道端点标识(Tunnel endpoint identifier),长度32位,用来区分GTP隧道中的不同连接;

Sequence number为序列号,长度16位,当e、s、Pn位中的任意一个值为1时,该字段存在,当s位为1时,这个字段需要被解析;

N-PDU number为N-PDU号,长度8位,当e、s、Pn位中的任意一个值为1时,该字段存在,当Pn位为1时,这个字段需要被解析;

Next extension header type为下一扩展消息头类型,长度8位,当e、s、Pn位中的任意一个值为1时,该字段存在,当e位为1时,这个字段需要被解析。

当下一扩展消息头类型存在时,当然后面是跟的具体的扩展消息,格式如下:

640?wx_fmt=png

其中:

Total length为本扩展消息总长度,长度8位,包括当前字节、内容本身以及之后的一个字节的下一扩展消息头类型,单位为字节;

Contents为本扩展消息内容,长度不固定;

Next extension header type为串联起来的下一扩展消息头类型,长度8位,当后面不存在下一扩展消息时,这个字段值为0。

GTP v2的消息头格式如下:

640?wx_fmt=png

同样,图中红色部分为可选字段,其中:

version为版本号,长度3位,GTP v2值为2,即三位分别为010;

p为捎带消息标志位(Piggybacking flag),长度1位,标记在这条消息后面会有另外一条带有完整消息头的GTP消息,有则值为1,无则值为0;

T为TEID标志位(TEID flag),长度1位,标记TEID字段是否存在,有则值为1,无则值为0,只有Echo Request和Echo Response消息不携带TEID字段;

两个Spare均为剩余位,第一个长度3位,第二个长度8位;

Message为消息类型(Message Type),长度8位,即GTP消息的类型,消息类型参考相关标准;

Total length为消息体长度,长度16位,不包括GTP头前4字节,单位为字节;

TEID为隧道端点标识(Tunnel endpoint identifier),长度32位,在T为1时存在,用来区分GTP隧道中的不同连接;

Sequence number为序列号,长度16位。

对协议分析还原而言,知道如何识别,再知道如何解析协议格式,那么,就可以去实现解析了。

例如下面这个GTP v1报文:

640?wx_fmt=png

按GTP头逐字段解析,很容易的啦。对这种用户面数据,当然我们关心的是GTP内部承载的数据了,直接把GTP头和上层的IP协议剥离,把内层的IP协议拎出来,就可以了。

看下wireshark是如何解析的,就能搞定得很好啦。

这次对GTP协议的介绍就到这里啦,对协议还原来说,一般就足够了,对具体协议的实现,就去看3gpp相关的资料吧。


640?wx_fmt=jpeg

长按进行关注,时刻进行交流。

点击“在看”,与朋友一起分享↘

【3GPP核心网】【5G】5G核心网协议解析(四)(超详细)
金陵岂是池中物的博客
04-25 1120
此时,控制面元素向用户面元素发送一个PFCP规则更新请求消息,该消息中包含了一些必要的参数信息,如规则ID、新的匹配规则等。其中,消息类型定义了消息的类型,消息头包含了消息的一些元数据信息,消息体则包含了具体的消息内容,TLV则用于传输消息体中的参数信息。此时,控制面元素向用户面元素发送一个PFCP规则配置请求消息,该消息中包含了一些必要的参数信息,如规则ID、规则优先级、匹配规则等。将用户面与控制面分离可以专注于优化用户数据的传输,减少控制信令对用户数据传输的干扰,从而提供更低的延迟和更高的吞吐量。
gtp报文.tcc
08-29
思博伦测试仪构造的隧道报文,具体的构造方法可以看我的博客
GTPv0,GTPv1,GTPv2分析,及思博伦测试仪构造GTPv1隧道报文方法
lijihao_10086的博客
08-29 6278
1、GTPv1报文头 必选字段(8B): 版本号:置1 协议类型(PT):区分GTPGTP’(用于计费)协议,置1 扩展头标志(E):置1代表有扩展头 序号标志(S):置’1’表示有序号字段 N-PDU编号标志(PN):置’1’表示有N-PDU编号字段 消息类型:隧道报文时,写255,即FF,其他字段含义见规范 长度:除了GTP头的必选部分外剩余部分的长度(即除去前面的8个字节) 隧道端点标识...
常用的GTPV1信令报文
07-08
常见的GTPV1信令报文+适用于需要了解GTP信令报文格式的人群+可以分析GTP信令报文格式,了解GTP隧道传输。
GTP V0 和 GTP V1
weixin_34216036的博客
07-04 1590
  GTP概述 GTP(GPRS Tunnelling Protocol)协议应用在SGSN 和GGSN 之间,为各个移动台(MS) 建立GTP 通道,GTP 通道是 GPRS服务节点(GSN) 之间的安全通道,两个主机可通过该通道交换数据,所有的PTP 分组数据协议的PDUs 应由GTP 协议进行封装。   GTP协议格式  GTP协议头部格式如下: Version:版本号,...
5G系统——对GTPv1-U协议的扩展
Cloudy_cn的专栏
08-21 9769
本文参考的GTPv1-U协议版本是TS29.281 v15.3.0 (2018-06)。5GC对GTPv1-U协议的Extension Header进行了扩展,增加了两个Extension Header,如下表所示:   NR RAN Container NR RAN Container的内容定义见TS38.425 PDU Session Container PDU Sess...
29281-930_GTPv1-U协议规范.pdf(注意:这是英文的,旧版的,要中文和相对较新的,请找我另外一份资源)
01-13
在3GPP的官网上下载资源,有时超慢,现在把标准协议文档下载后分享给大家。
GTP-U协议分析.docx
02-28
GTP-U是用于在一对GTP-U隧道端节点间隧道协议,它将UE发的用户数据在IP/UDP之上封装成T-PDU。在每个端点上分配的隧道端点标识符(Tunnel Endpoint Identifier :TEID)指示特定的T-PDU属于哪个隧道。TEID由GTP隧道的...
KataGo:Go中的GTP引擎和自学学习
04-28
GTP扩展 分析引擎 编译KataGo 源代码概述 自学训练 贡献者 执照 概述 KataGo已开始首次公开分发培训! 有关更多详细信息,请参见https://katagotraining.org/ ,以下载最新,最强大的神经网络,或者了解如何为帮助...
论文研究-一种基于GTP协议的“动态隧道”防御方法.pdf
07-22
针对移动通信网中用户分组数据在xGSN设备中的安全传输和隐私保护问题,提出一种基于GTP协议的“动态隧道”防御方法,构建拟态网关,让SGSN和GGSN之间用于传输用户分组数据的隧道标志(TEID)动态变化,打破TEID与...
LTE网络GTPv2协议监测技术的设计与实现 *
01-19
结合对GTPv2协议的深入分析,采用模块化思想以及IE列表遍历方法进行消息解码,使用以关键字段为索引的散列结构进行GTPv2 消息合成,采用了一种将消息标识、偏移量结合起来标识某个上层信息分组的数学模型,有效地...
gtpv2:用于golang的GPRS隧道协议
02-10
总览 该软件包为GPRS隧道协议GTP)版本2提供了一个模块。GTPv2在。 安装 go get github.com/blorticus/gtpv2 基本用法 package main import ( gtpv2 "github.com/blorticus/gtpv2" "net" "fmt" ) func main () { modifyBearerRequest := gtpv2 . NewPDU ( gtpv2 . ModifyBearerRequest , 0x00001acc , [] * gtpv2. IE { gtpv2 . NewIEWithRawData ( gtpv2 . UserLocationInformation , [] byte { 0x18 , 0x00 , 0x11 ,
XCAP发包工具的使用
新雪兰
11-30 2万+
1、安装包: https://download.csdn.net/download/weixin_40748006/10819767 1、在接口右击,点击刷新接口 2、选择接口,右击点击启用 3、在报文组右击,点击创建报文 4、最好的方法是用wireshark抓包,保存成pcap格式,然后点击从pcap文件读取,选择要发送的报文 也可以选择创建报文,支持多种协议 ...
连信协议整体框架
协议分析与还原
07-21 2943
点击上方↑↑↑蓝字[协议分析与还原]关注我们“连信协议的整体框架说明。”前一阵搞连信协议搞废了,风控一直过不去,没法过8,再加一堆其它稀里糊涂的问题,看样子从协议搞连信此路不通,放出来...
TCP和UDP以及IP报文格式
Never say never
01-12 4514
TCP和UDP以及IP报文格式 TCP报文: (上图转载自http://wenku.baidu.com/view/04b0d780e53a580216fcfeaa.html) 源端口: 数据发送方的端口号。 目的端口: 数据接受方的端口号。 序号:本数据报文中的的第一个字节的序号(在数据流中每个字节都对应一个序号)。 确认号:希望收到的下一个数据报文中的第一个字节的序号。 数据偏移:表示...
LTE网络主要接口信息
热门推荐
dingyun00196932的专栏
06-18 2万+
接口 类型 包含主要信息 Uu 信令面/ 用户面 1、RRC信令消息; 2、测量报告; 3、广播消息; 4、异常流程 X2 信令面/ 用户面 1、Inter-eNB 切换; 2、eNB直接交换无线质量测量信息 S1
硬盘GPT分区与MBR分区的转换
cafuc46wingw的专栏
05-22 1292
硬盘GPT分区与MBR分区的转换 7 分步阅读如何将gpt分区更改成mbr分区? 相信很多网友都在网上反馈: ”因为笔记本电脑硬盘分区表是GPT而导致大家无法安装引导系统。需要转换为MBR分区还能顺利安装。“ 问题是,分区工具无法转换MBR,这里小编知道一个原因,那是分区工具不能在存有资料的情况下转换分区表,如果把硬盘的所有分区都删除掉
gtp协议oai代码
最新发布
08-29
关于gtp协议的OAI代码,我找到了两个相关的引用。首先,引用中提到了`itti_receive_msg(TASK_SCTP, &received_msg)`,这是在OAI代码中用于接收SCTP任务的消息的函数。其次,引用中提到了`ngap_gNB_process_itti_msg(NULL)`,这是用于NGAP编解码和UE上下文维护的函数。这两个引用都涉及到了OAI中与GTP协议相关的代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【openairinterface5g】项目目录结构](https://blog.csdn.net/NoBack7/article/details/125283317)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [24 - srsRAN安装部署(已支持5G NSA和SA, 原srsLTE)](https://blog.csdn.net/BUPTOctopus/article/details/123579962)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Wireshark使用教程:不同报文颜色的含义 71802
  • Chrome保存的HAR文件怎么打开? 64229
  • GTP协议格式分析 26210
  • PC端微信小程序wxapkg解密 23244
  • m3u8视频格式分析 20618

分类专栏

  • 工具技巧 29篇
  • 编码算法 34篇
  • 协议分析 37篇
  • 移动互联网 7篇

最新评论

  • wireshark和tcpdump抓包TCP乱序和重传怎么办?PCAP TCP排序工具分享

    迷之程序员: tcpsort

  • PC端微信小程序wxapkg解密

    w888666w: 还在嘛,方便给下Github链接嘛

  • 欢乐消除开心假日小游戏攻略

    冰彬斌binbin: 你好,请问这个自助充值工具可以分享一下吗?

  • cocos2d游戏jsc文件格式解密,SpideMonkey大冒险

    msInfoSec: New python executable in /Users/lqmiku/cocos2d-jsc-decompiler/js/src/build-osx/_virtualenv/bin/python2.7 Not overwriting existing python script /Users/lqmiku/cocos2d-jsc-decompiler/js/src/build-osx/_virtualenv/bin/python (you must use /Users/lqmiku/cocos2d-jsc-decompiler/js/src/build-osx/_virtualenv/bin/python2.7) ERROR: The executable /Users/lqmiku/cocos2d-jsc-decompiler/js/src/build-osx/_virtualenv/bin/python2.7 is not functioning ERROR: It thinks sys.prefix is u'/usr/local/Cellar/python@2/2.7.16_1/Frameworks/Python.framework/Versions/2.7' (should be u'/Users/lqmiku/cocos2d-jsc-decompiler/js/src/build-osx/_virtualenv') ERROR: virtualenv is not compatible with this system or executable

  • cocos2d游戏jsc文件格式解密,SpideMonkey大冒险

    msInfoSec: Exception: Error creating virtualenv.,虚拟环境没创建成功,这个问题你那边有遇到过吗?

大家在看

  • CMake从安装到精通 1689
  • 【Python日志模块全面指南】:记录每一行代码的呼吸,掌握应用程序的脉搏 2166
  • 项目运维时,某用户通过RDP远程桌面连接服务器...任务管理器显示用户状态断开连接!记录运维生活,分享解决办法! 1037
  • GET和POST有什么区别?
  • 电磁场与电磁波2 344

最新文章

  • Cocos2dlua棋牌Lua解密
  • windows下的iOS砸壳与ipa分析
  • 某名麻将长连接数据解密
2024年4篇
2023年3篇
2022年7篇
2021年8篇
2020年13篇
2019年15篇
2018年40篇
2017年8篇

目录

目录

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司同乐设计公司网站大鹏关键词按天扣费深圳百度竞价平湖网站定制松岗百度网站优化排名双龙百搜词包坑梓优秀网站设计罗湖阿里店铺运营同乐网站优化软件丹竹头百度竞价包年推广盐田网站改版永湖百度关键词包年推广深圳百度标王龙岗百度爱采购福田百度竞价包年推广观澜关键词按天计费大鹏百姓网标王推广坂田关键词按天扣费福永seo网站优化松岗设计公司网站同乐网站优化软件罗湖seo优化石岩百度爱采购吉祥网站设计吉祥设计网站大鹏高端网站设计坑梓建网站爱联英文网站建设龙岗企业网站改版观澜SEO按天扣费歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化