对于GTPv2协议头部的解析

参考3GPP TS 29.060

GTP的头部是可变的,GTP-C(control)和GTP-U(user)共同使用一个头部。

GTP Header头部:

-Version 用来标识GTP协议的版本,在这里应该设置为1。

-Protocol Type(PT)。这一位用来标识是GTP(PT为1)还是GTP'(PT为0)。GTP'在3GPP TS 32.295中定义,并且它的头部的含义和GTP头部的含义是不一样的。 

-(*) 空闲比特,发送端置为0,接收端忽略这一位。

-Extension Header flag (E)。这一bit用来说明Next Extension Header域是否有意义。当这一位为0的时候,Next Extension Header要么不存在,要么存在但是也不被使用。当这一位为1的时候,Next Extension Header域要被解释和使用。

-Sequence number flag (S)。这一bit用来说明Sequence number 域是否有意义。当这一位为0的时候,Sequence number 要么不存在,要么存在但是也不被使用。当这一位为1的时候,Sequence number 域要被解释和使用。

-N-PDU Number flag (PN)。这一bit用来说明N-PDU Number域是否有意义。当这一位为0的时候,N-PDU Number 要么不存在,要么存在但是也不被使用。当这一位为1的时候,N-PDU Number 域要被解释和使用。

-Message Type。这个域定义了GTP的消息类型,包括GTP-C和GTP-U。

-Length。载荷的长度,以字节为单位。

-Tunnel Endpoint Identifier (TEID)。TEID唯一的在接收GTP-U或GTP-C协议的实体上定义了一个隧道端点。GTP隧道接收方在本地定义了一个TEID,这个TEID供发送端使用。TEID通过GTP-C消息进行交换。

可选的字段

-Sequence Number 。G-PDUs(GTP头+传输数据)的可选字段。当信令数据从发送的数据返回一个数据的时候,它可以是传输的标志,直接从发送数据的头部当中取出复制出来该字段,然后填充到发送字段。

-N-PDU。这个字段用在内部SGSN路由区域,和内部的一些系统交换区域。

-Next Extension Header。这个字段定义了Extension Header的类型。

Extension Header的格式:

-长度字段,定义了Extension Header长度,单位是4字节。

-type。定义了Extension Header的类型。当全部为0的时候,表示下面没有扩展了。

 

posted @ 2017-08-11 10:38  小舔哥  阅读(6015)  评论(0编辑  收藏  举报