GTP协议循序渐进(三)----通过实例了解TEID
来源:互联网 发布:淘宝企业店铺认证流程 编辑:程序博客网 时间:2024/05/17 04:47
要了解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协议循序渐进(三)----通过实例了解TEID
- GTP协议中的APN,TEID,NSAPI,TID
- GTP协议中的APN,TEID,NSAPI,TID
- GTP(GPRS Tunnelling Protocol)协议
- GTP:GPRS隧道协议(GPRSTunnellingProtocol) 什么是GTP?
- GTP协议介绍
- GTP 协议常用术语
- GTP协议的分析
- GTP(GPRS隧道协议)
- 循序渐进-http协议(一)
- GPRS tunnelling protocol GTP协议
- GTP
- 通过实例了解抽象工厂
- GTP(GPRS Tunnelling Protocol)协议http://blog.csdn.net/stephen_yin/article/details/6951237
- 循序渐进了解SPRING(一)
- 循序渐进,了解Hive是什么!
- CSS 循序渐进(三)样式“表”秀
- 苹果在华一天收入可抵与唯冠6000万美元
- 解决项目本身lib和tomcatlib
- linx complete
- 线程间操作无效: 从不是创建控件(对 Windows 窗体控件进行线程安全调用)
- mips和mipsel的区别
- GTP协议循序渐进(三)----通过实例了解TEID
- java中线程的合成与分开
- php shtmlspecialchars 函数 详解
- cocos2d-x+lua开发,如何重载scene的事件
- Android系统服务-WindowManager
- 用css3实现Social Media Buttons
- 关闭浏览器后session不失效 in servlet.
- java开发之——遍历文件夹的两种方式
- word不能输入中文