UMTS - GPRS 隧道协议

GPRS 隧道协议 (GTP) 的生成实际上是不可能的,但也不希望为新系统提供它,但是,另一方面,为了能够与旧版 PS 世界顺利交互并支持最新系统所需的功能,也需要进行改进,这是可以理解的。

GPRS 隧道协议 (GTP)

GTP 协议专为 GPRS 中数据单元和控制消息的隧道传输和封装而设计。 自20世纪90年代末设计以来,经过大规模部署,积累了丰富的经验。

演进 3GPP 系统的 GTP 有两种变体:控制平面和用户平面。 GTP-C管理控制面信令,除了用户纯度上的数据传输协议外,还需要GTP-U; 它被称为用户平面。 当前适用于 EPS 的版本是 GTPv1 US 和 GTPv2-C。

GTP 的独特之处在于它支持其主要 GTP 隧道持有者内的流量分离,或者换句话说,能够将它们组合在一起并处理载波。 GTP隧道的端点通过TEID(隧道端点标识符)来标识; 它们由对等实体分配给上行链路和下行链路的本地级别,并在它们之间横向报告。 TEID 通过 S5 和 S8 上的具体示例 PDN 连接以及 S3 / S4 / S10 / S11 接口上的 EU 以不同的粒度使用。

GPRS隧道协议的控制平面

GTPv2-C 用于 EPC 信令接口(包括至少版本 8 的 SGSN)。 例如 −

  • S3(SGSN 和 MME 之间),
  • S4(SGSN 和服务 GW 之间),
  • S5 和 S8(服务 GW 和 PDN GW 之间),
  • S10(两个 MME 之间),以及
  • S11(MME 和服务 GW 之间)。
GPRS 隧道协议

与此对应,一个典型的GTPv2-C协议数据单元如上图所示,具体部分GTP前面是IP和UDP头,它由标头 GTPv2-C 和包含数量、长度和格式可变的信息 GTPv2-C 的部分组成,具体取决于消息的类型。 由于不支持协议版本的回显和通知,因此不存在TEID信息。 在这个版本的协议中,版本显然被坚定地设置为2。

GTP 有一个复杂的遗留扩展头机制; 大多数 GTPv2-C 中未使用它。 消息类型在第二个字节中定义(因此最多可以定义 256 个消息以供将来扩展)。 下表提供了当前定义的 GTPv2-C 消息的概述。 消息的长度以字节 3 和 4 编码(以字节为单位测量,不包含前四个字节本身)。

TEID是隧道端点的ID,对端/接收端的单个值; 它允许在必须区分 GTP 隧道上非常频繁的情况下,在一端复用和解复用隧道。

消息类型 消息 附加说明
0 Reserved 永远不得使用(故意从协议中排除,以强制执行显式设置)
1/2 Echo Request/ Response 用于探测发送节点是否支持GTP版本。
3 Version Not Supported Indication 包含发送节点支持的最新GTP版本。
4/5 Direct Transfer Request/ Response 用于 S101 接口上的隧道信令消息,以优化 HRPD 接入与 MME 之间的切换
6/7 Notification Request/ Response 用于HRPD接入节点和MME之间S101上的隧道通知
25/26 SRVCC PS to CS request 用于触发并确认SGSN/MME与MSC服务器之间的SRVCC发起
27/28 SRVCC PS to CS complete Notification 用于指示并确认MSC服务器与SGSN/MME之间SRVCC的完成
32/33 Create Session Request 用于建立两个节点之间的连接
34/35 Modify Bearer Request 用于修改单个或多个承载的属性,包括承载上下文信息
36/37 Delete Session Request 拆除 GTP 控制会话
38/39 Change Notification request 用于报告位置信息
66/67 Delete bearer command/ failure indication 指示节点删除承载并返回确认
68/69 Bearer resource command/ failure indication 用于分配或修改资源
73 Stop paging indication 从SGW发送到MME或SGSN
95/96 Create bearer request/ response 指示节点安装承载并确认
97/98 Update bearer request 用于从用户面通知控制面节点承载变化

增强型 GTPv1-U

GTP-U仅进行了微小但有效的改进,因此认为没有必要加强协议版本数。 因此,我们仍然期望 GTPv1-U,但至少是最新的 Rel. 8。

协议栈本质上与 GTPv2-C 相同,只是相应地替换了层名称和协议。 扩展头机制保持不变; 如有必要,它允许插入两个元素。

  • 触发消息的UDP源端口(两个八位字节);

  • PDCP PDU 编号 − 与无损失特征转移相关; 在这种情况下,数据包需要在 EPC 中编号(两个八位字节)。

改进在于在用户平面传输"终端市场"的能力。 它用在 eNodeB 间切换过程中,并给出在数据包之后立即激活路径的指示,例如,该功能对于 pre-Rel.8 来说不是必需的,因为 GTP-U 并未在无线接入节点中结束(即不是 在 BS 或 NodeB 中)仅存在少量消息。 GTPv1-U,它们列于上表中。

很明显,事实上,通过 GTPv1-U(回声机制和末端标记)可以实现非常有限的信号传递。 传输真实用户数据的唯一消息是255类型,即所谓的G-PDU消息; 标头之后它携带的唯一信息是来自用户或外部 PDN 设备的原始数据包。

并非所有 GTP-U 隧道实例都列在参考架构中(其目的是捕获网络节点之间不再存在的关联); 临时隧道是可能的 −

  • 两个Serving GW之间,适用于基于S1的转移,业务移动GW的情况;

  • 在两个 SGSN 之间,对应于前面的情况,但在传统 PS 网络中;

  • 两个RNC之间,适用于3G PS网络中RNC的迁移(与EPC无关,这里只是为了完整而提及)。