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)]$之间的边,需要满足那 ...
随机推荐
- 最短路径算法之Dijkstra算法(java实现)
前言 Dijkstra算法是最短路径算法中为人熟知的一种,是单起点全路径算法.该算法被称为是“贪心算法”的成功典范.本文接下来将尝试以最通俗的语言来介绍这个伟大的算法,并赋予java实现代码. 一.知 ...
- [vim]的关键字补全
除了complete关键字补全,所有补全相关命令都以CTRL-X开始,然后再接与补全类型相关的命令.CTRL-N与CTRL-P在找的的内容中选择的通用的命令,上下选择用的,CTRL-E则是取消选择.( ...
- linux内核分析 期中总结
LINUX内核分析 链接汇总 LINUX内核分析第一周学习总结——计算机是如何工作的 LINUX内核分析第二周学习总结——操作系统是如何工作的 LINUX内核分析第三周学习总结——构造一个简单的Lin ...
- python中的内置函数getattr()
在python的官方文档中:getattr()的解释如下: getattr(object, name[, default]) Return the value of the named attribu ...
- 学习笔记——Maven实战(六)Gradle,构建工具的未来?
Maven面临的挑战 软件行业新旧交替的速度之快往往令人咂舌,不用多少时间,你就会发现曾经大红大紫的技术已经成为了昨日黄花,当然,Maven也不会例外.虽然目前它基本上是Java构建的事实标准,但我们 ...
- html 空格-有趣的试验
首先,先给大家看一组demo <input /> <input type="submit" /> 展示效果: 为什么会出现空格呢?input不是行内元素吗? ...
- PHP PC端接入支付宝和微信感悟
想着中秋节的时候把异步线程学习完,同事说有个PHP的支付要帮忙做一下,虽然中秋节计划是把C#的异步学完,不过还是喜欢挑战,好久没有像大学一样这么认真的熬夜解决问题了.由于在大学学过asp,它和php有 ...
- 深入javascript
1.不定参数的使用 <!DOCTYPE html> <html> <head> <title>json</title> <script ...
- 编写高质量代码改善C#程序的157个建议[IEnumerable<T>和IQueryable<T>、LINQ避免迭代、LINQ替代迭代]
前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议29.区别LINQ查询中的IEnumerable<T ...
- WPF MenuItem 四种角色分析
Menu Menu的样式很简单,就是顶部的那个框,如下图 而其中的文字“文件”“图形”...是属于MenuItem的,要灵活使用MenuItem,就需要了解MenuItem.Role的作用 T ...