1、​参考资料

3gpp

TS 29.060 V17.1.0-GPRS Tunnelling Protocol (GTP)

TS 29.281 V17.1.0-GPRS Tunnelling Protocol User Plane (GTPv1-U)

2、GTP协议

GTP(GPRS隧道协议(GPRSTunnelingProtocol)),可以分解成三种独立的协议,GTP-C、GTP-U及GTP'。GTP-U用于在GPRS核心网内,无线接入网与核心网之间传送用户数据。 GTP可以用在UDP或TCP上,GTP v1仅用于UDP上,UDP的2123端口是为GTP-C登记的端口号, 2152端口是为GTP-U登记的端口号。

GTP-U协议使用的GTP头是变长度的。GTP头的最小长度是8个字节。

GTP-U消息格式:

必选字段:

  • 版本号(Ver):用于确定GTP协议的版本,转换成10进制表示。
  • 协议类型(PT):用于区分GTP(置’1’)和GTP’(置’0’)协议。
  • 扩展头标志(e):置’1’表示有下一个扩展头字段。置’0’表示没有下一个扩展头字段,或有但不必解释。
  • 序号标志(s):置’1’表示有序号字段。置’0’表示要么没有序号字段,要么有但不必做出解释。在GTP-C消息中s标志应置’1’。
  • N-PDU编号标志(Pn):置’1’表示有N-PDU编号字段。置’0’表示要么没有N-PDU编号字段,要么有但不必做出解释。这个标志仅对GTP-U有意义。所以,GTP-C不使用这个标志。
  • 消息类型:这个字段指出GTP消息的类型。
  • 长度:这个字段指出以字节为单位的净荷长度,即分组中除了GTP头的必选部分外剩余部分的长度(即除去前面的8个字节)。
  • 隧道端点标识符(TEID):这个字段清楚地标识了对端的GTP-U或GTP-C协议实体中的隧道端点。

可选字段:

  • 序号:这个字段在GTP-U中是可选的。对GTP-C控制面消息,序号用于事务标识。通过GTP-U隧道传输时,如果必须保护传输顺序,用该字段对T-PDU进行编号,且每传输一个T-PDU就增加序号值。
  • N-PDU标号:这个字段在SGSN间的路由区更新过程中和某些系统间切换过程(如2G和3G无线接入网间切换)中使用。当MS和SGSN间的通讯工作在确认模式下时,使用这个字段协调它们间的数据传输。这个字段的确切意义取决于使用场合。如GSM/GPRS到GSM/GRPS,这个字段就是SNDCP N-PDU编号。
  • 下一个扩展头类型:这个字段定义在G-PDU中紧接着这个字段的扩展头的类型。

3、GTP-U消息类型

消息类型占 1Byte,共256种。其中GTP-U用到如下7种:

Message Type value

Message

Reference

1

Echo Request

3GPP TS 29.060

2

Echo Response

3GPP TS 29.060

26

Error Indication

3GPP TS 29.281 [41]

31

Supported Extension Headers Notification

3GPP TS 29.060

253

Tunnel Status

3GPP TS 29.281 [41]

254

End Marker

3GPP TS 29.281 [41]

255

G-PDU

3GPP TS 29.281 [41]

4、GTP-U扩展头

    4.1 扩展头格式

Octets      1                                     

Extension Header Length

2 – m

Extension Header Content

m+1

Next Extension Header Type

    4.2 扩展头类型

Next Extension Header Field Value

Type of Extension Header

0000 0000

No more extension headers

0000 0001

Reserved - Control Plane only.

0000 0010

Reserved - Control Plane only.

0000 0011-0x03

Long PDCP PDU Number.

0010 0000-0x20

Service Class Indicator

0100 0000-0x40

UDP Port. Provides the UDP Source Port of the triggering message.

1000 0001-0x81

RAN Container

1000 0010-0x82

Long PDCP PDU Number.

1000 0011-0x83

Xw RAN Container

1000 0100-0x84

NR RAN Container

1000 0101-0x85

PDU Session Container.

1100 0000-0xC0

PDCP PDU Number [4]-[5].

1100 0001

Reserved - Control Plane only.

1100 0010

Reserved - Control Plane only.

    4.3扩展头详细格式说明

Type Value

Description

Format

0x40

UDP Port

Bits

Octets

8

7

6

5

4

3

2

1

1

0x01

2-3

UDP Port number

4

Next Extension Header Type (note)

0xC0

PDCP PDU Number

Bits

Octets

8

7

6

5

4

3

2

1

1

0x01

2

PDCP PDU number

3

PDCP PDU number.

4

Next Extension Header Type (Note 3)

0x03/0x82

Long PDCP PDU Number

Bits

Octets

8

7

6

5

4

3

2

1

1

0x02

2

Spare

PDCP PDU number

3

PDCP PDU number

4

PDCP PDU number

5

Spare

6

Spare

7

Spare

8

Next Extension Header Type (Note 1)

0x20

Service Class Indicator

Bits

Octets

8

7

6

5

4

3

2

1

1

0x01

2

Service Class Indicator

3

Spare

4

Next Extension Header Type (note)

0x81

RAN Container

Bits

Octets

8

7

6

5

4

3

2

1

1

0xn

2-(4n -1)

RAN Container

4n

Next Extension Header Type (NOTE)

0x83

Xw RAN Container

Bits

Octets

8

7

6

5

4

3

2

1

1

0xn

2-(4n -1)

Xw RAN Container

4n

Next Extension Header Type (NOTE)

0x84

NR RAN Container

Bits

Octets

8

7

6

5

4

3

2

1

1

0xn

2-(4n -1)

NR RAN Container

4n

Next Extension Header Type (NOTE)

0x85

PDU Session Container

Bits

Octets

8

7

6

5

4

3

2

1

1

0xn

2-(4n -1)

PDU Session Container

4n

Next Extension Header Type (NOTE)

4.3扩展头报文格式

UDP Port:

PDCP PDU Number:

 

5故障处理

5.1协议故障

协议故障即是指带有不认识的、未预见到的或内容错误的信息。术语’’默默地丢弃”意思是实现时丢弃这个消息而不作进一步的处理,在事件日志中记录这个错误消息,并将该故障记录在统计计数器中。

消息定义的”是否要求”列如果是”必选项”,这个IE必须在消息中出现。

消息定义的”是否要求”列如果是”有条件的”,这个条件有如下的结果:

  1. 必须出现;
  2. 可选出现;
  3. 必不出现;

消息中遗漏了必须出现的IE看成是数据丢失;出现了必不出现的IE看成是意外数据。

5.1.1不同的GTP版本

如果接收节点接收到一个它不支持的版本的GTP控制面信息,则发回GTP版本不支持消息,且在GTP头的版本字段中指出节点支持的最新GTP版本。丢弃接收到的G-PDU。

仅支持GTPv0版本的GSN可能不会监听2123端口,因此它不能给请求方发回版本不支持消息。同时支持GTPv1版本和GTPv0版本的GSN试图使用v1版本跟对等实体联系失败时,应退回到GTPv0版本。

实现选项:保留一个最近联系过的仅支持GTPv0版本的GSN列表,以及发回版本不支持消息的节点支持的版本。

5.1.2 GTP消息太短

当接收到一个消息太短而没有完整的包含该消息声明的GTP版本所应有的消息头时,应默默地丢弃这个G-PDU消息。

5.1.3 不认识的GTP控制面消息

当接收到一个消息的消息类型值未知时,应默默地丢弃。

5.1.4 意外的GTP控制面消息

当收到一个意外的GTP控制面消息时,如接收到的响应消息没有相应的未决的请求消息或GTP控制面消息在错误的方向发送,应默默地丢弃。

5.1.5 缺少必须有的IE

当接收到丢失了必须有的IE的请求消息时,将默默地丢弃并在错误日志中登记。应发送一个响应消息,且原因值设成’必选IE丢失’。当接收到丢失了必须出现的IE的响应消息时,经通知上层协议并在错误日志中登记。

5.1.6 无效的长度

在接收到的GTP控制面请求消息中,强制TLV(类型、长度、值)格式的IE的长度可能与消息声明的版本定义的长度不一致,则应默默地丢弃,并在错误日志中登记,响应消息的原因值应设成’必选IE不正确’。

在接收到的GTP控制面响应消息中,假如强制TLV(类型、长度、值)格式的IE的长度可能与消息声明的版本定义的长度不一致,请求实体把这个GTP控制面过程看作失败。

5.1.7 无效的必选IE

在接收到的GTP控制面请求消息中,必选IE的值超出了这个IE值的定义范围则应丢弃这个请求、在错误日志中登记,把响应消息的原因值设成’比选IE不正确’。

在接收到的GTP控制面响应消息中,必选IE的值超出了这个IE值的定义范围则应通知上层协议,并在错误日志中登记。

假如GSN接收到的IE值是保留值,则应看成IE值超出了定义范围。

注释:接收者不检查IE字段的内容就定义为空。

5.1.8 无效的可选IE

在接收到的GTP控制面消息中,可选IE的值超出了IE值的定义范围则应丢弃这个IE、在错误日志中登记、当成这个IE没有出现来处理消息的剩余部分。

假如GSN收到的IE的值是保留值,把它当成IE值超出范围处理。

注释:接收者不检查IE字段内容就定义为空。

5.1.9 不认识的IE

如果IE的类型值不认识接收者应忽略。如果是TLV格式的IE,就根据长度值跳过去,如果是TV格式的IE,就丢弃消息的剩余部分。

如果接收节点由于忽略了IE而不能解释剩余部分,接收节点应丢弃这个消息并在错误日志中登记,此外如果消息是请求消息,还应把响应消息的原因值设成无效的消息格式

5.1.10 IE乱序

如果消息中两个或更多的IE乱序,接收节点将丢弃这个消息,并在错误日志中登记,此外如果消息是请求消息,还应把响应消息的原因值设成无效的消息格式

5.1.11 意外的IE

如果IE的类型在GTP中有定义,但是不应出现在接收到的消息中,就跳过这个IE,其余按正常情况处理。

5.1.12 重复

如果在一个GTP控制面信息中出现未规定的重复的IE时,则应只处理第一次出现的IE的内容,并应忽略此后出现的所有重复的IE。当规定了重复的IE时,应只处理所规定的重复IE的内容。

5.1.13 可选IE不正确

在GTP控制面消息中所有错误的可选IE应视为未在该消息中出现。但是,如果接收方的GSN因这一可选IE错误而不能正确处理该消息,则接收方的GSN应在错误日志中登记,并把响应消息的原因值设成’可选IE不正确’。

5.2路径失败

每当在某路径上接收到一个响应的时候都应复位路径计数器,并且对该路径上发送的任何消息,当T3-RESPONSE定时器超时时,就增加计数器值。如果计数器值超出N3-REQUESTS定义的值,则认为路径down掉了。在这种情况下GSN或RNC可以通知OMC网络元素。GTP也应通知上层协议路径失败,以便删除与该路径关联的PDP上下文。

5.3 MS分离

当MS分离时,所有与MS相关的正在进行的GTP控制面过程都应中断。SGSN应针对所有激活的PDP上下文给对等的GGSN发删除PDP上下文请求消息。

5.4重启和恢复

所有GSN应在非易失性存储器中保存具有本地意义的重启计数器值。在重启过程完成后,GSN应立即更新重启计数器值。计数器值按模256递增。

所有GSN也应在易失性存储器中保存与之联系的每个GSN的重启计数器值。在重启过程完成后,保存的与之联系的所有GSN的重启计数器值将被清除。

5.5 报文格式

在请求中,Cause Value表示请求的原因。原因应包含在请求消息中。

在响应中,Cause Value表示接受或拒绝相应的请求。此外,Cause Value可以指示对应请求的原因。Cause值应包含在响应消息中。

Table 5.1: Cause Values

Cause

Value (Decimal)

Request IMSI

0

Request IMEI

1

request

Request IMSI and IMEI

2

No identity needed

3

MS Refuses

4

MS is not GPRS Responding

5

Reactivation Requested

6

PDP address inactivity timer expires

7

Network Failure

8

QoS parameter mismatch

9

For future use

10-48

Cause values reserved for GPRS charging protocol use (see GTP' in 3GPP TS 32.295 [33])

49-63

For future use

64-127

acc

Request accepted

128

New PDP type due to network preference

129

New PDP type due to single address bearer only

130

For future use

131-176

Cause values reserved for GPRS charging protocol use (see GTP' in 3GPP TS 32.295 [33])

177-191

Non-existent

192

Invalid message format

193

response

rej

IMSI/IMEI not known

194

MS is GPRS Detached

195

MS is not GPRS Responding

196

MS Refuses

197

Version not supported

198

No resources available

199

Service not supported

200

Mandatory IE incorrect

201

Mandatory IE missing

202

Optional IE incorrect

203

System failure

204

Roaming restriction

205

P-TMSI Signature mismatch

206

GPRS connection suspended

207

Authentication failure

208

User authentication failed

209

Context not found

210

All dynamic PDP addresses are occupied

211

No memory is available

212

Relocation failure

213

Unknown mandatory extension header

214

Semantic error in the TFT operation

215

Syntactic error in the TFT operation

216

Semantic errors in packet filter(s)

217

Syntactic errors in packet filter(s)

218

Missing or unknown APN

219

Unknown PDP address or PDP type

220

PDP context without TFT already activated

221

APN access denied – no subscription

222

APN Restriction type incompatibility with currently active PDP Contexts

223

MS MBMS Capabilities Insufficient

224

Invalid Correlation-ID

225

MBMS Bearer Context Superseded

226

Bearer Control Mode violation

227

Collision with network initiated request

228

APN Congestion

229

Bearer handling not supported

230

"Target access restricted for the subscriber"

231

UE is temporarily not reachable due to power saving

232

Relocation failure due to NAS message redirection

233

For future use

234-240

Cause values reserved for GPRS charging protocol use (see GTP' in 3GPP TS 32.295 [33])

241-255

NOTE: With this coding, bits 8 and 7 of the Cause Value respectively indicate whether the message was a request or a response, and whether the request was accepted or rejected.

Table 5.2: Use of the Cause Values

Cause 8

value bits 7

Result

0

0

Request

0

1

For future use (note)

1

0

Acceptance

1

1

Rejection

例:Optional IE incorrect

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐