对于GTPv1协议头部的解析
参考ETSI EN 301 347
GTP是GPRS Tunnelling Protocol 的简称。GTP分为GTPv0(已经淘汰),GTPv1 和GTPv2。下面,介绍的是GTPv1。
GTPv1里面有GTP和GTP',其中GTP上面可以承载信令数据(控制信息)和传输数据,GTP'的主要是用作计费,下面讲的将是GTP。
GTP的头部
GTP的头部占用固定的20字节,承载信令的数据包和承载传输数据的数据包共同使用这一个头部。下图是GTP头部的图解,后面将会一一说明其中各个标志的含义。

1:PT(Protocol Type)。协议类型,表示的是这个消息是不是GTP消息。当PT为1的时候表示的是GTP消息,当PT为0的时候表示的是GTP'消息。
2:Version。如果PT为1(表示的是GTP消息),那么这些bit将会全部是0,用来表示GTP的第一个版本,GTPv1。当PT为0的时候,另做处理。
3:Spare1。这些bit没有被使用,发送的时候全部置1,接收的时候被忽略。
4:SNN。表示SNDCP N-PDU 位是否被包含进来。
5:Message Type。表示GTP的消息类型。
6:Length。表示除了GTP头部以外,数据部分的长度,以字节为单位。
7:Sequence Number。是信令数据的传输标志,是传输数据增加的序列号。
8:SNDCP N-PDU。SNDCP N-PDU用于SGSN间路由区更新过程,为了协调MS和SGSN之间的数据传输。
9:TID(Tunnel identifier)。指出了MM和PDP的上下文。
10:Flow Label。唯一的指定一个GTP流。
作为信令的头部使用
- SNN位被置为0
-Message Type应当是唯一的值,用来表示不同的信令消息。
-SNDCP N-PDU 在信令信息当中没有被使用到,发送方置为255即0xff,接收方忽略。
-TID 和 Flow Label 根据不同的信令信息有不同的使用方法,不详细介绍。
当用作信令信息的时候,数据包的格式如下图所示:为头部+信息元

下面分析一个具体的数据包:
一个控制信令的数据包的整体数据如下:

展开GTP协议如下:

作为传输消息头部的使用
T-PDU 的含义是一个原生的数据包,比如IP数据包,在GTP隧道传输的时候是载荷信息。
-SNN flag。当该位为1的时候,那么SNDCP N-PDU将会被包含进来。
-Message Type。 应当被置为255即0xff
-Sequence Number 。这个值用来被决定是否接受一个T-PDU。
-SNDCP N-PDU。当SNN位为0的时候,它的值应该是255即0xff,当SNN为1时,用在旧的SGSN通知新的SGSN给T-PDU分配N-PDU码。
-Flow Label。标识T-PDU属于哪个流。
-TID 包含T-PDU属于哪个隧道的隧道标识符。
一个承载了HTTP协议的GTP数据包:

GTP数据包头里面的数据:

对于GTPv1协议头部的解析的更多相关文章
- 对于GTPv2协议头部的解析
参考3GPP TS 29.060 GTP的头部是可变的,GTP-C(control)和GTP-U(user)共同使用一个头部. GTP Header头部: -Version 用来标识GTP协议的版本, ...
- HTTP协议头部与Keep-Alive模式详解
HTTP协议头部与Keep-Alive模式详解 .什么是Keep-Alive模式? 我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器 ...
- WIFI知识累计之802.11协议radiotap头解析方法
radiotap官方网站:http://www.radiotap.net/Radiotap 该网站详细介绍了radiotap的各个字段的长度和介绍,并包含解析代码项目地址,该文就在此网站的基础编写一些 ...
- UDP协议疑难杂症全景解析
转载:http://blog.csdn.net/dog250/article/details/6896949 UDP协议疑难杂症全景解析 2011-10-22 19:26 2989人阅读 评论(4) ...
- TCP/IP协议头部结构体(网摘小结)(转)
源:TCP/IP协议头部结构体(网摘小结) TCP/IP协议头部结构体(转) 网络协议结构体定义 // i386 is little_endian. #ifndef LITTLE_ENDIAN #de ...
- CAP 一致性协议及应用解析
https://mp.weixin.qq.com/s/26x8O1bRzurl84e3nM6TTA CAP 一致性协议及应用解析 原创: 有赞技术 有赞coder 1周前 文 | 云开 on 用户中心 ...
- TCP/IP协议头部结构体
TCP/IP协议头部结构体(转) 网络协议结构体定义 // i386 is little_endian. #ifndef LITTLE_ENDIAN #define LITTLE_ENDIAN (1) ...
- 简析TCP的三次握手与四次分手(TCP协议头部的格式,数据从应用层发下来,会在每一层都会加上头部信息,进行封装,然后再发送到数据接收端)good
2014-10-30 分类:理论基础 / 网络开发 阅读(4127) 评论(29) TCP是什么? 具体的关于TCP是什么,我不打算详细的说了:当你看到这篇文章时,我想你也知道TCP的概念了,想要更 ...
- Ethernet IP TCP UDP 协议头部格式
The Ethernet header structure is shown in the illustration below: 以太网头部14 bytes Destination Source L ...
随机推荐
- flask插件系列之flask_caching缓存
前言 为了尽量减少缓存穿透,同时减少web的响应时间,我们可以针对那些需要一定时间才能获取结果的函数和那些不需要频繁更新的视图函数提供缓存服务,可以在一定的时间内直接返回结果而不是每次都需要计算或者从 ...
- 【IT公司笔试面试】75道逻辑推理题及答案
[1]假设有一个池塘,里面有无穷多的水.现有2个空水壶,容积分别为5升和6升.问题是如何只用这2个水壶从池塘里取得3升的水. 由满6向空5倒,剩1升,把这1升倒5里,然后6剩满,倒5里面,由于5里面有 ...
- Linux Supervisor的安装与使用入门---Ubuntun
Linux Supervisor的安装与使用入门 在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事 ...
- BootStrap的table表格,栅格系统,form表单的样式
BootStrap BootStrap的简介 1. 什么是Bootstrap 由两个前端设计师开发的一个前端的框架(Html,css,js) 简化了程序员写css的代码 2. 为什么使用B ...
- 查找内容grep命令
标准unix/linux下的grep通过以下参数控制上下文 grep -C 5 foo file 显示file文件中匹配foo字串那行以及上下5行 grep -B 5 foo file 显示foo及前 ...
- (六)Spring4 整合Hibernate4,Struts2
第一节:S2SH 整合所需Jar 包 Struts2.3.16,Spring4.0.6,Hibernate4.3.5 整合所需jar 包: Struts2.3.16 jar 包 Spring4.0.6 ...
- C/C++面试题目一
C/C++开发工程师面试题目(一)(附答案分析) 推荐:自己根据在面试中碰到做过的一些题目以及总结的题目,希望对面试的同学有所帮助. 一. 选择题 1. 下列类中( )不是输入输出流类iostrea ...
- 深度学习方法(十二):卷积神经网络结构变化——Spatial Transformer Networks
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.机器学习技术感兴趣的同学加入. 今天具体介绍一个Google ...
- 洛谷P1339 [USACO09OCT]热浪Heat Wave 题解
题目传送门 这道题实际非常简单好奇是怎么变黄的... 其实也就是一个SPFA,本人非常懒,不想打邻接表,直接用矩阵就好啦... #include<bits/stdc++.h> using ...
- Hadoop案例(一)之日志清洗
日志清洗案例 一. 简单解析版 1)需求 去除日志中字段长度小于等于11的日志. 2)输入数据 /Sep/::: +] "-" "Mozilla/4.0 (compati ...