GTP(GPRS Tunnelling Protocol)协议http://blog.csdn.net/stephen_yin/article/details/6951237

 

GTP(GPRS Tunnelling Protocol)协议

标签: extensionheaderinternet网络wapxhtml
  6097人阅读  评论(0)  收藏  举报
GTP(GPRS Tunnelling  Protocol协议在  GPRS 骨干网中在GSNs 之间(如 SGSN 和 GGSN)提供协议信道,所有的 PTP 分组数据协议的PDUs 应由GTP 协议进行封装。
GTP概述
 
  GTP  协议应用在SGSN 和GGSN 之间,为各个移动台( MS) 建立GTP 通道,GTP 通道是  GPRS服务节点( GSN) 之间的安全通道,两个 主机可通过该通道交换数据。

  SGSN 从 MS 接收 数据包,并在 GTP 包头中对其进行封装,然后才通过GTP 通道将其转发到 GGSN。GGSN 接收这些数据包时,先将它们解封,然后转发到外部 主机

  GTP  数据包包头含有Sequence Number字段,Sequence Number向GGSN(接收 GTP 数据包的GGSN) 指示数据包的顺序。

  在 PDP 环境激活阶段,发送端GGSN 向接收端GGSN 发送的第一个G-PDU 的序列号值是零 (0) ,发送端 GGSN 为其随后发送的每个 G-PDU 增加序列号值,G-PDU序列号值达到 65535 时,重置为零。

  一般情况下,接收端 GGSN 会校验所接收的数据包中的序列号,接受端GGSN拿自身的 计数器序列号和所接收的数据包中的序列号进行比较,如果这两个序号匹配上了,则 GGSN 转发该数据包,如果它们不匹配,则GGSN 丢弃该数据包。

  GTP 标准,可以参考 3GPP的技术规范:

  3GPP TS 09.60 v6.9.0 (2000-09)

  3GPP TS 29.060 v3.8.0 (2001-03)

  3GPP TS 32.015 v3.9.0 (2002-03)
协议内容
 
  GTP 协议分为GT-C,GTP-U和GTP’协议。其中,GTP-C是 信令控制协议,GTP-U是封装用户数据协议,GTP’是计费相关的协议。

  GTP协议头部格式如下:

 
  说明如下:version:版本号,目前基本都是1,即gtp v1版本;

  protocol type:1为GTP’,0为GTP-C或GTP-U。

  next extension header:seq:n-pdu number:

  根据文档,这三个标示位分别指示gtp 头部是否含有next extension header项,sequence number项和n-pdu number项。但根据我对现网的数据分析,事实好像并非如此。

  此三个bit位,只要有一个置位,这三项都同时存在。

  Teid据说是很重要的字段,目前对该字段的认识不足,需进一步研读 3gpp协议。受高人指点,具体是3GPP TS 23.060和3GPP TS 29.060。

  Total length:gtp封装数据的长度,不包括gtp头部的基本长度,但包括gtp选项的长度,即:上面的next extension header,sequence number项和n-pdu number项的长度是包括在这个Total length之中的。 如果next extension header不为0,则下面还有extension header,直到extension header的nextextension header项为0。Next extension header格式如下:

 
  Extension header的长度必须为4的倍数。

  Gtp-C协议的根据不同的类型(type),其编码格式都不相同。常见的比较重要的三个type为:imsi,msisdn和apn。

  Imsi和msisdn的 编码格式有些类似。

  Apn的全称是Access Point Name,通常分为两部分,一部分为网络标示(ni),一部分为运营商标示(oi)。有些apn只有一部分。

  APN的格式如下:

 


  其中,type占一个字节,为0x83;

  apn length占用两个字节,为网络字序,包括该字段后的apn项的长度;

  ni长度,一个字节,ni的长度;

  oi长度,一个字节,标示OI长度。
工作原理
 
  当我们使用手机上 wap网站,或者上 internet时,在sgsn和ggsn之间发生什么样的信令?我们的数据是通过怎么的手段传输到 互联网上的呢?

  Wap网和internet不同,wap网是一个半封闭半开放的 网络,而internet是一个开放的网络。

  从拨号方式上,对于 中国移动来说,wap用户的 apn为cmwap,internet用户的apn为cmnet。

  从网络连接方式上,手机上wap网站时,其实是通过运营商的wap 网关代理请求访问wap网站,而手机上internet时,访问的方式是通过运营商的 防火强NAT转换请求网站。

  从七层协议上来说,wap网站早期使用专用的 wml协议,wap 1.2协议之前,目前的wap 2.0支持 xhtml协议,可以说,wap和internet之间的差距在减小,甚至有逐渐融合的趋势。Xhtml与html差距不大,只是语法更加严格而已。

  下面解释一下用户拨号时,sgsn与ggsn之间的信令过程:

  首先,sgsn发送一个create pdp content request向ggsn;

  然后,ggsn返回create pdp content response给sgsn,说明该用户是否成功接入 gprs网络,如果成功接入,分配地址给该用户,否则,说明原因;

  最后,用户获得 ip地址,接入网络。

  在create pdp content request报文中,有以下三个重要的内容项:

  imsi:用户全球唯一标示msisdn:

  用户全球电话号码标示apn:标示用户接入的网络

  在create pdp content response报文,如果成功,则包含分配给用户的 ip地址
相关术语
 
   APN

  Access Point Name,接入点名称,在GGSN中用于标识一个指定的外部 网络和一种服务的ISP,在SGSN中可根据APN通过 DNS域名解析得到与此APN对应的GGSN地址。APN可以分为APN以及wild card APN, wild card APN是指运营商允许用户使用给定的PDP类型的上下文接入任何网络,用“*”表示;常规APN包括两部分:网络标识(NI, Network Identifier)和运营商标识(OI, Operator Identifier)。NI最长63字节,OI最长37字节,不区分大小写。

   TEID

  Tunnel Endpoint Identifier,GTPv1的概念,用于表示一条隧道(PDP),分为数据面TEID(TEID(U))和控制面TEID(TEID(C)),由SGSN和GGSN自己分配。

   NSAPI

  Network Service Access Point Identifier,和TEID(C)或IMSI一起用于标示同一用户激活的不同上下文,范围[0,15],其中0~4系统保留,因此对于一个用户(UE)而言,最多可以建立11条隧道。

   TIDGTPv0的概念,由IMSI+NSAPI构成,和TEID作用相同。

   TFT

  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。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值