GTP协议循序渐进(三)----通过实例了解TEID
要了解GTP协议,一定要了解GTP协议的作用。
根据它的名字,可以推断出,首先它是一个隧道协议,是在GSN节点之间建立的,用于传递用户数据的payload。这个隧道需要穿越运营商GPRS的骨干网。那既然是这样,GTP协议就应该至少具备以下基本功能:
由于这个隧道是用于传递GPRS的用户数据的,那首先要能够标识出这个隧道是属于哪个用户的,否则,每个用户在上网时都会有自己的GTP-U隧道,成千上万个用户都在SGSN-GGSN之间传递,如果在GGSN这边解封装,还原成普通IP包的时候不能区分出用户,就无法将用户的数据包放到相应的APN里去传递了。
这个用于区分用户隧道的标识就是TEID。我们通过一个例子来了解一下TEID。
一个完整的激活流程(含payload).pcap
1 #1是MS发起的PDP激活请求给SGSN。包含请求的APN,QOS,pdp type等信息。
2 #2是SGSN向GGSN发起了create pdp context request,请求和GGSN建立关于这个用户的GTP-U隧道,来传递这个用户的payload信息。点开#2,在length 137下面,会发现有一个TEID:0x00000000,因为这是一个初始化的请求消息,所以TEID为0.用于标识这个初始的GTP-U隧道。再往下看,会发现两个IE,一个是TEID DATA I:0x32f02bf9。一个是TEID Control Plane:0x32f02bf9。这两个TEID是SGSN分配给GGSN使用的。指示了GGSN在接下来(后续消息一直到这个用户去激活的时间周期内)关于这个用户的信息,究竟应该用哪个TEID来标识。其中一个是标识这个用户的GTP-C,一个是GTP-U隧道。
3 #3是GGSN给SGSN回应的create pdp context response消息。在这里消息里,GGSN给MS分配了访问外部PDN网络的IP地址192.168.252.130。并且为了能够让SGSN能够区分出这个消息是针对哪个用户的,使用了SGSN分配给自己的TEID,由于本消息是个GTP-C的控制平面消息,所以使用了TEID Control Plane:0x32f02bf9。这可以同样在Length下面可以看到TEID使用的不再是全0了,而是在#2消息里SGSN分配的0x32f02bf9。只不过凑巧的是,SGSN分配的控制和用户平面的TEID都是一样的值。反过来,GGSN也给SGSN分配了两个TEID,是给SGSN在上行方向来标识用户的GTP隧道的。同样是分控制和用户平面。值分别为:0x010000085和0x010000080。
4 #4是SGSN给MS的响应,代表激活成功。并且SGSN记录下了GGSN给它分配的两个标识这个用户的TEID,在后续的关于这个MS的上下文信令和payload相关隧道中使用。
5 #5 MS开始发起到外部PDN的访问,SGSN使用GTP-U隧道将用户数据封装起来,同时里面携带的TEID值是0x010000085,也就是GGSN分配给SGSN使用,用来标识这个用户上行方向GTP-U隧道的TEID值。
注释:#5-#8是一个MS发起的TCP连接建立流程。三次握手,源IP是GGSN分配的192.168.252.130。目的IP地址是PDN网络后面的应用服务器IP,在这里例子里面,是一个RSTP流媒体服务器的IP地址。
6 #9三次握手建立完成以后,MS就可以发起RSTP的指令去向server请求相应的流媒体视频了。
可以看到,所有GTP-U的隧道的TEID都是GGSN分配给SGSN来使用的关于这个MS的用户平面的TEID值:0x010000085。
本文摘自: GPRS家园(www.gprshome.com) 详细出处请参考:http://www.gprshome.com/portal.php?mod=view&aid=10
GTP协议循序渐进(三)----通过实例了解TEID相关推荐
- 移动通信网络协议 — GTP 协议
目录 文章目录 目录 GTP GTP-C 协议(GTP 控制面) GTP-U 协议(GTP 用户面) GTP' 协议(计费传输) GTPv2 Header GTP GTP(GPRS Tunnellin ...
- 5GS 协议栈 — GTP 协议族
目录 文章目录 目录 GTP 协议族 GTPv2 Header GTP 协议族 GTP(GPRS Tunnelling Protocol,GPRS 隧道协议)是一组基于 IP 的通信协议,用于 GSM ...
- 重磅!阿里云发布最新服务等级协议SLA ,多实例可用性升为99.995%
12月13日,全球前三的云计算公司阿里云公布了最新的弹性计算服务等级协议SLA,单实例的可用性从99.95%提升至99.975%,多可用区多实例可用性从99.99%提升至99.995%,均为全球最高水 ...
- PB协议(三)Protobuf的Python开发教程
本系列文章目录 展开/收起 PB协议(一)什么是Pb协议(Protobuf),Pb协议如何使用,PB协议的数据类型 PB协议(二)Protobuf的PHP开发教程 PB协议(三)Protobuf的Py ...
- 服务器系统2022安装wsl2,微软win10子系统wsl2安装教程(附三个实例应用场景)
wsl2与今年6月份微软buld的大会上发布消息,7月15日左右开始正式加入windows inside版本,熟悉wls(win10子系统)一代的都知道,这东西把linux系统的操作直接带入到win1 ...
- [转载]MaxtoCode对.Net程序加密的原理及解密探讨三(实例解密)
标 题: [原创]MaxtoCode对.Net程序加密的原理及解密探讨三(实例解密) 作 者: rick 时 间: 2006-09-29,23:16:28 链 接: http://bbs.pediy. ...
- 为什么tcp不采用停等协议_为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?...
看到了一道面试题:"为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?",想想最近也到金三银四了,所以就查阅了相关资料,整理出来了这篇文章 ...
- python的用途实例-三个实例带你了解生成器的作用
三个实例带你了解生成器的作用 python的生成器究竟有什么作用? 本文通过3个具体的例子向你阐述生成器的作用, 1. 使用生成器非常便利的结束两层for循环, 2. 一个for循环遍历多个列表, 3 ...
- HTTP 协议的三次握手
HTTP 协议的三次握手 HTTP(Hypertext Transfer Protocol):超文本传输协议 TCP(Transmission Control Protocol):传输控制协议 1.H ...
- TCP 协议的三次握手、四次分手
详细描述了 TCP 协议的连接和关闭的整个过程.解释了为什么 TCP 协议是面向连接的.可靠的数据传输协议. TCP 在互联网上之间的通信交流,一般是基于 TCP (Transmission Cont ...
最新文章
- YOLOv4全文阅读(全文中文翻译)
- 星期和工作日计算,你会了吗?
- JavaScript debugger time out and defer.resolve
- 织梦生成栏目找不到模板怎么知道是哪个栏目和模板
- 【堆内存】动态图+代码五分钟轻松理解学会
- magento 在产品页添加评论 Add Review Form in Magento Product View Page
- 2017.7.10 Redis报错:DENIED Redis is running in protected mode
- 蚂蚁爬绳问题 java_趣味数学网
- (8)数据分析-卡方检验
- golang 使用openoffice 生成pdf_使用golang生成PDF文件
- Linux系统如何添加IP别名
- OpenCV-图像处理(09、模糊图像二)
- 面试题之请描述一下Java类加载过程
- 贵州省谷歌地球高程DEM等高线下载
- 计算机初级程序员哪里颁发的,初级程序员证书怎么考_初级程序员证书考什么_上学吧...
- 三菱iQ-R系列PLC控制系统项目全套资料 系统才用三菱iQ-R系列PLC,采用R04CPU
- 烂土豆搭配令牌窃取提权dll劫持搭配令牌窃取提权不带引号服务路径问题提权不安全的服务权限配置提权
- label 详细用法
- visca协议c语言,VISCA协议控制键盘 SONY VISCA协议会议摄像机控制键盘NK-EVI603K
- linux中的nm命令简介【转】