GTP-U协议总结
参考资料:3GPPGTP-U协议总结
1、参考资料
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 |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC0 | PDCP PDU Number |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x03/0x82 | Long PDCP PDU Number |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x20 | Service Class Indicator |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x81 | RAN Container |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x83 | Xw RAN Container |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x84 | NR RAN Container |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x85 | PDU Session Container |
|
4.3扩展头报文格式
UDP Port:
PDCP PDU Number:
5故障处理
协议故障即是指带有不认识的、未预见到的或内容错误的信息。术语’’默默地丢弃”意思是实现时丢弃这个消息而不作进一步的处理,在事件日志中记录这个错误消息,并将该故障记录在统计计数器中。
消息定义的”是否要求”列如果是”必选项”,这个IE必须在消息中出现。
消息定义的”是否要求”列如果是”有条件的”,这个条件有如下的结果:
- 必须出现;
- 可选出现;
- 必不出现;
消息中遗漏了必须出现的IE看成是数据丢失;出现了必不出现的IE看成是意外数据。
如果接收节点接收到一个它不支持的版本的GTP控制面信息,则发回GTP版本不支持消息,且在GTP头的版本字段中指出节点支持的最新GTP版本。丢弃接收到的G-PDU。
仅支持GTPv0版本的GSN可能不会监听2123端口,因此它不能给请求方发回版本不支持消息。同时支持GTPv1版本和GTPv0版本的GSN试图使用v1版本跟对等实体联系失败时,应退回到GTPv0版本。
实现选项:保留一个最近联系过的仅支持GTPv0版本的GSN列表,以及发回’版本不支持’消息的节点支持的版本。
当接收到一个消息太短而没有完整的包含该消息声明的GTP版本所应有的消息头时,应默默地丢弃这个G-PDU消息。
当接收到一个消息的消息类型值未知时,应默默地丢弃。
当收到一个意外的GTP控制面消息时,如接收到的响应消息没有相应的未决的请求消息或GTP控制面消息在错误的方向发送,应默默地丢弃。
当接收到丢失了必须有的IE的请求消息时,将默默地丢弃并在错误日志中登记。应发送一个响应消息,且原因值设成’必选IE丢失’。当接收到丢失了必须出现的IE的响应消息时,经通知上层协议并在错误日志中登记。
在接收到的GTP控制面请求消息中,强制TLV(类型、长度、值)格式的IE的长度可能与消息声明的版本定义的长度不一致,则应默默地丢弃,并在错误日志中登记,响应消息的原因值应设成’必选IE不正确’。
在接收到的GTP控制面响应消息中,假如强制TLV(类型、长度、值)格式的IE的长度可能与消息声明的版本定义的长度不一致,请求实体把这个GTP控制面过程看作失败。
在接收到的GTP控制面请求消息中,必选IE的值超出了这个IE值的定义范围则应丢弃这个请求、在错误日志中登记,把响应消息的原因值设成’比选IE不正确’。
在接收到的GTP控制面响应消息中,必选IE的值超出了这个IE值的定义范围则应通知上层协议,并在错误日志中登记。
假如GSN接收到的IE值是保留值,则应看成IE值超出了定义范围。
注释:接收者不检查IE字段的内容就定义为空。
在接收到的GTP控制面消息中,可选IE的值超出了IE值的定义范围则应丢弃这个IE、在错误日志中登记、当成这个IE没有出现来处理消息的剩余部分。
假如GSN收到的IE的值是保留值,把它当成IE值超出范围处理。
注释:接收者不检查IE字段内容就定义为空。
如果IE的类型值不认识接收者应忽略。如果是TLV格式的IE,就根据长度值跳过去,如果是TV格式的IE,就丢弃消息的剩余部分。
如果接收节点由于忽略了IE而不能解释剩余部分,接收节点应丢弃这个消息并在错误日志中登记,此外如果消息是请求消息,还应把响应消息的原因值设成’无效的消息格式’。
如果消息中两个或更多的IE乱序,接收节点将丢弃这个消息,并在错误日志中登记,此外如果消息是请求消息,还应把响应消息的原因值设成’无效的消息格式’。
如果IE的类型在GTP中有定义,但是不应出现在接收到的消息中,就跳过这个IE,其余按正常情况处理。
如果在一个GTP控制面信息中出现未规定的重复的IE时,则应只处理第一次出现的IE的内容,并应忽略此后出现的所有重复的IE。当规定了重复的IE时,应只处理所规定的重复IE的内容。
在GTP控制面消息中所有错误的可选IE应视为未在该消息中出现。但是,如果接收方的GSN因这一可选IE错误而不能正确处理该消息,则接收方的GSN应在错误日志中登记,并把响应消息的原因值设成’可选IE不正确’。
每当在某路径上接收到一个响应的时候都应复位路径计数器,并且对该路径上发送的任何消息,当T3-RESPONSE定时器超时时,就增加计数器值。如果计数器值超出N3-REQUESTS定义的值,则认为路径down掉了。在这种情况下GSN或RNC可以通知OMC网络元素。GTP也应通知上层协议路径失败,以便删除与该路径关联的PDP上下文。
当MS分离时,所有与MS相关的正在进行的GTP控制面过程都应中断。SGSN应针对所有激活的PDP上下文给对等的GGSN发删除PDP上下文请求消息。
所有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
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)