GTP V0 和 GTP V1
GTP概述
GTP(GPRS Tunnelling Protocol)协议应用在SGSN 和GGSN 之间,为各个移动台(MS) 建立GTP 通道,GTP 通道是 GPRS服务节点(GSN) 之间的安全通道,两个主机可通过该通道交换数据,所有的PTP 分组数据协议的PDUs 应由GTP 协议进行封装。
GTP协议格式
GTP协议头部格式如下:
Version:版本号,目前基本都是1,即GTP v1版本;如果是0,即GTP v0版本。
Protocol type:1为GTP’,0为GTP-C或GTP-U。
GTP V0和GTP V1 比较表格
GTP作为SGSN和GGSN之间的一种Tunnel协议,是建立在UDP之上的一种应用层协议,分为GTPv0和GTPv1不同的版本。
GTP VO |
|
GTP V1 |
||
Information element |
Presence requirement |
|
Information element |
Presence requirement |
Routeing Area Identity (RAI) |
Optional |
|
Routeing Area Identity (RAI) |
Optional |
Quality of Service Profile |
Mandatory |
|
Quality of Service Profile |
Mandatory |
Recovery |
Optional |
|
Recovery |
Optional |
Selection mode |
Mandatory |
|
Selection mode |
Conditional |
Flow Label Data I |
Mandatory |
|
Tunnel Endpoint Identifier Data I |
Mandatory |
Flow Label Signalling |
Mandatory |
|
Tunnel Endpoint Identifier Control Plane |
Conditional |
End User Address |
Mandatory |
|
End User Address |
Conditional |
Access Point Name |
Mandatory |
|
Access Point Name |
Conditional |
Protocol Configuration Options |
Optional |
|
Protocol Configuration Options |
Optional |
SGSN Address for signalling |
Mandatory |
|
SGSN Address for signalling |
Mandatory |
SGSN Address for user traffic |
Mandatory |
|
SGSN Address for user traffic |
Mandatory |
|
|
|
Trace Reference |
Optional |
|
|
|
Trace Type |
Optional |
MSISDN |
Mandatory |
|
MSISDN |
Conditional |
Private Extension |
Optional |
|
Private Extension |
Optional |
|
|
|
IMSI |
Conditional |
|
|
|
TFT |
Conditional |
|
|
|
Trigger Id |
Optional |
|
|
|
OMC Identity |
Optional |
|
|
|
APN Restriction |
Optional |
|
|
|
RAT Type |
Optional |
|
|
|
User Location Information |
Optional |
|
|
|
MS Time Zone |
Optional |
|
|
|
CAMEL Charging Information Container |
Optional |
|
|
|
NSAPI |
Mandatory |
|
|
|
Linked NSAPI |
Conditional |
|
|
|
Charging Characteristics |
Conditional |
相关术语
APN:Access Point Name,接入点名称,在GGSN中用于标识一个指定的外部网络和一种服务的ISP,在SGSN中可根据APN通过DNS域名解析得到与此APN对应的GGSN地址。
TEID:Tunnel Endpoint Identifier,GTP v1的概念,用于表示一条隧道(PDP),分为数据面TEID(TEID(U))和控制面TEID(TEID(C)),由SGSN和GGSN自己分配。
NSAPI:Network Service Access Point Identifier,和TEID(C)或IMSI一起用于标示同一用户激活的不同上下文,范围[0,15],其中0~4系统保留,因此对于一个用户(UE)而言,最多可以建立11条隧道。
TID:GTPv0的概念,由IMSI+NSAPI构成,和TEID作用相同。
TFT:Traffic Flow Template,是GSN在接收或转发用户数据时,用于区分二次激活的PDP上下文,TFT唯一的标识了同一TEID或同一PDP Address下的不同的PDP上下文。当同一个TEID或PDP Address下只有一个活跃的PDP上下文时,不需要为该PDP上下文指定一个TFT,因为所有下行的数据都直接通过该上下文对应的隧道传输。当同一个TEID或PDP Address下有多个活跃的PDP上下文时,那么就需要为每一个PDP上下文指定一个TFT,GGSN接收到发送给MS的G-PDU时,将使用该TFT来对应G-PDU传输时应该使用的PDP上下文。如果在二次激活时,所有该PDP地址下的PDP上下文都已经被分配了一个TFT,那么这一次的二次激活就可以无需再指定一个TFT。即,对应同一个TEID或PDP地址下的不同的PDP上下文,要么全都有各自的TFT,要么,只能有一个PDP上下文没有TFT。
总结
GTP作为SGSN和GGSN之间的一种Tunnel协议,是建立在UDP之上的一种应用层协议,分为GTPv0和GTPv1不同的版本。
GTP协议分为GT-C,GTP-U和GTP’协议。其中,GTP-C是信令控制协议,GTP-U是封装用户数据协议,GTP’是计费相关的协议,其中控制平面用来创建、删除GTP Tunnel,以及对GTP Tunnel的属性进行修改,数据平面主要是用来传输用户的数据报文。
比较项 |
GTP v0 |
GTP v1 |
协议出处 |
[GSM TS 09.60] |
[3GPP TS 29.060] |
QoS信息 |
R97/98 |
R99 |
适用系统 |
GPRS |
GPRS和UMTS |
路径端口 |
3386(用户面、控制面和计费关联在一个端口) |
2152(用户面);2123(控制面); 3386(计费) |
路径协议 |
UDP和TCP可选(用户面和计费);UDP(控制面) |
UDP(用户面和控制面);UDP和TCP可选(计费) |
隧道标识 |
IMSI+NSAPI |
SGSN和GGSN独立分配 |
二次激活 |
不支持 |
发起二次激活时,控制面TEID和之前PDP的TEID相同,用户面TEID重新分配 |
DT支持 |
不支持DTI标识 |
DTI标识 |
CC支持 |
不支持 |
支持CC计费属性 |
安全相关 |
固定的TID易受攻击 |
TID随机分配,相对安全性较好 |
GTP V0 和 GTP V1的更多相关文章
- 手脱UPX v0.89.6 - v1.02
声明: 只为纪录自己的脱壳历程,高手勿喷 这个壳的脱法很多一般都一步直达的,步过我喜欢ESP定律 1.载入OD,在入口下一行ESP定律运行一次 > pushad ; //入口 BE mov es ...
- 三、主流区块链技术特点及Hyperledger Fabric V1.0版本特点
一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...
- 003-主流区块链技术特点及Hyperledger Fabric V1.0版本特点
一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...
- Centos7.6部署k8s v1.16.4高可用集群(主备模式)
一.部署环境 主机列表: 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 master01 7.6. ...
- 82-基于Xilinx Virtex-5LXT FPGA的四路光纤PCIE卡(4路光纤卡)
基于Xilinx Virtex-5LXT FPGA的四路光纤PCIE卡(4路光纤卡) 1.板卡特点: 1) 主芯片采用Xilinx Virtex-5LXT FPGA. 前面板提供4路光纤接口,速率可 ...
- MATLAB读取一张RGB图片转成YUV格式
1.读入照片 控制输出的标志定义 clc;close all;clear YES = 1; NO = 0; %YES表示输出该文件,请用户配置 yuv444_out_txt = 1; yuv444_o ...
- Android中锁定文件的方法
androidSDK中并没有锁定文件相关的api. 但是android是基于linux操作系统的,linux比较底层,灵活性也更大,为了实现锁定文件的效果,大概有以下几种办法: 用chmod命令修改文 ...
- Matlab
Q:workspace没有显示变量的值 A:这是因为子程序里的变量是局部变量,他们的作用域就是子函数内部,会在流程控制回到主调函数前被系统自动释放掉,所以,一旦子程序运行完,你是不可能再查看子程序里的 ...
- BZOJ4078 : [Wf2014]Metal Processing Plant
设$D(A)\leq D(B)$,从小到大枚举$D(A)$,双指针从大到小枚举$D(B)$. 那么对于权值不超过$D(A)$的边,可以忽略. 对于权值介于$(D(A),D(B)]$之间的边,需要满足那 ...
随机推荐
- 20135316王剑桥 linux第十一周课实验笔记
getenv函数 1.获得环境变量值的函数 2.参数是环境变量名name,例如"HOME"或者"PATH".如果环境变量存在,那么getenv函数会返回环境变量 ...
- [转载]Java应用程序中的内存泄漏及内存管理
近期发现测试的项目中有JAVA内存泄露的现象.虽然JAVA有垃圾回收的机制,但是如果不及时释放引用就会发生内存泄露现象.在实际工作中我们使用Jprofiler调用java自带的 jmap来做检测还是很 ...
- C#基础之yield与Singleton
1.实例解析yiled的作用 最近参加java笔试题第一次见到yield这个关键字,既然遇见了那肯定要掌握,下面是C#中关于yield关键字的总结.yield这个关键字作用于迭代器块中,其最本质的功能 ...
- Zebra_Dialog 弹出层插件
. Default dialog box, no custom settings. Click here to open. $.Zebra_Dialog('<strong>Zebra_Di ...
- 22.C#分组和查询延续及选择综合症(十一章11.6-11.7)
对于昨天的连接还有一个知识点没有说,那就是分组连接.是11.5中的内容,补上. 分组连接的格式:join 元素 in 序列 on 条件表达式 into 新的序列 内连接和分组连接之间的一个重要差异(即 ...
- 幻灯片插件FlexSlider -- Amaze UI幻灯片参数
用了Amaze UI 的人就知道,其幻灯片插件是 data-am-slider='{}'来传参数的:(以下代码来自Amaze UI 官网) <div data-am-widget="s ...
- Java sun的JDK
JDK概述 JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品.自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Softwa ...
- struts2理解
(1) Struts2(一)---struts2的环境搭建及实例 (2) struts2(二)---ModelDriven模型驱动 (3) Struts2属性驱动与模型驱动 (4)
- 【CodeForces 297C】Splitting the Uniqueness
题意 序列s有n个数,每个数都是不同的,把它每个数分成两个数,组成两个序列a和b,使ab序列各自去掉个数后各自的其它数字都不同. 如果存在一个划分,就输出YES,并且输出两个序列,否则输出NO. 分析 ...
- 获取手机的gps定位
只要手机有GPS模块,可以用HTML5的Geolocation接口获取 在HTML5中,geolocation作为navigator的一个属性出现,它本身是一个对象,拥有三个方法: - getCurr ...