跳到主要内容

非IP数据传输 (NIDD)

非IP数据传输允许一个蜂窝物联网/NB-IoT设备与应用服务器交换小的非IP消息,而无需分配IP地址。数据通过NAS信令平面(控制平面CIoT EPS优化)在用户设备(UE)和MME之间传输;MME通过T6a将其转发给OmniSCEF;OmniSCEF通过T8将其暴露给应用服务器。

NIDD架构和程序在3GPP TS 23.682 §5.13中定义;T6a直径接口在TS 29.128中定义;T8 NIDD API在TS 29.122中定义。

目录

概述

NIDD会话有两个相关的部分:

  • NIDD配置由应用服务器通过T8创建。它命名设备(通过外部标识符、MSISDN或组),通知回调和NIDD选项。
  • T6a绑定是在MME为该用户建立非IP连接时创建的。它将直径会话和MME身份与用于到达UE的{IMSI, EBI}绑定在一起。

OmniSCEF通过用户身份将两者关联起来,因此上行数据找到正确的AS回调,下行数据找到正确的实时连接。

连接生命周期

MME管理T6a连接,随着UE的附加和分离。应用服务器也可以通过删除其NIDD配置来结束连接。

如果为没有NIDD配置的用户建立了连接,OmniSCEF会用DIAMETER_ERROR_USER_UNKNOWN (5001)响应CMR — 该用户未配置NIDD。

移动发起数据 (上行)

UE发送的上行非IP数据作为T6a **MO-数据请求 (ODR)到达OmniSCEF。OmniSCEF通过向配置的回调POST通知将其传递给应用服务器,并用MO-数据应答 (ODA)**响应MME。

如果OmniSCEF无法解析配置或回调失败,它会用DIAMETER_UNABLE_TO_COMPLY (5012)响应ODA。

示例上行通知(POST到回调):

{
"externalId": "device01@iot.example.org",
"data": "AQIDBA=="
}
字段描述
externalId / msisdn设备身份,按配置提供。
data非IP有效载荷,base64编码。
rdsSourcePort / rdsDestinationPort可靠数据服务启用时存在。
moExceptionDataCounter当上行被标记为MO异常数据时存在。

移动终止数据 (下行)

应用服务器通过向配置的downlink-data-deliveries集合POST来发送下行非IP数据。OmniSCEF将其作为T6a MT-数据请求 (TDR)转发给MME,并在AS可以检索的单个交付资源上记录结果(来自MT-数据应答,TDA)。

当UE处于空闲状态时,MME会缓冲数据并对UE进行寻呼,一旦它对交付承担责任,就用成功响应TDA。OmniSCEF在交付的deliveryStatus中反映结果(见交付状态值)。

示例下行请求:

{
"data": "SGVsbG8=",
"maximumLatency": 3600,
"priority": 5
}
字段描述
data要交付的非IP有效载荷,base64编码。必填。
maximumLatency可选。最大可接受缓冲延迟,以秒为单位。
priority可选。排队交付中的相对优先级。
pdnEstablishmentOption可选。当没有连接存在时的行为 — 见PDN建立选项
rdsSourcePort / rdsDestinationPort可选。RDS端口 — 见可靠数据服务

示例下行响应:

{
"self": "https://scef01:8443/api/3gpp-nidd/v1/as01/configurations/AbC.../downlink-data-deliveries/XyZ...",
"data": "SGVsbG8=",
"deliveryStatus": "SUCCESS"
}

组NIDD

使用externalGroupId(而不是单个externalId/msisdn)创建的NIDD配置表示一个设备组TS 23.682 §5.13.3A)。对组配置的单个下行交付会分发给每个具有活动T6a连接的组成员。

���的成员从组映射中解析。交付的聚合deliveryStatus反映每个成员的最差结果,因此组交付仅在每个可达成员都被服务时报告SUCCESS

可靠数据服务

可靠数据服务(RDS)通过使用端口号在单个非IP连接上复用多个应用流,具体见TS 23.682 §4.5.14.3。通过在创建配置时设置reliableDataService: true来启用RDS。

当启用RDS时:

  • 下行 — 如果交付指定了rdsDestinationPortrdsSourcePort,OmniSCEF会在发送TDR之前用携带这些端口的RDS头帧化非IP有效载荷。
  • 上行 — OmniSCEF会从ODR有效载荷中解析RDS头,并在上行通知中显示rdsSourcePortrdsDestinationPort,将内部有效载荷作为data交付。

端口范围为0–255。当未启用RDS或交付省略端口时,有效载荷将以未帧化的方式传输。

MO异常数据

NB-IoT设备可以通过RRC建立原因将上行传输标记为异常报告(紧急的、非模式的报告),在T6a RRC-Cause-Counter中计数(TS 23.682 §5.13.4)。当OmniSCEF在ODR上看到此指示时,它会在上行通知中包含moExceptionDataCounter,以便应用服务器可以优先处理。

T8资源参考

NiddConfiguration

通过POST /api/3gpp-nidd/v1/{scsAsId}/configurations创建。

字段类型必需描述
notificationDestination字符串 (URI)AS接收上行和状态通知的回调。
externalId字符串可选设备外部标识符(user@domain)。externalIdmsisdnexternalGroupId之一。
msisdn字符串可选设备MSISDN。
externalGroupId字符串可选组NIDD的组标识符。
dnn字符串可选非IP连接的数据网络名称/APN。
pdnEstablishmentOption字符串 (枚举)可选当下行时没有连接存在的行为 — 见PDN建立选项
maximumPacketSize整数可选非IP有效载荷的最大大小(以字节为单位,默认为配置的default_max_packet_size,255)。
reliableDataService布尔值可选启用可靠数据服务
mtcProviderId字符串可选MTC服务提供商标识符。
validityTime字符串 (日期时间)可选配置过期的时间。
status字符串 (枚举)只读生命周期状态 — 见配置状态值
self字符串 (URI)只读资源的自身URI。

NiddDownlinkDataTransfer

通过POST /api/3gpp-nidd/v1/{scsAsId}/configurations/{configurationId}/downlink-data-deliveries创建。字段在移动终止数据下描述。deliveryStatusrequestedRetransmissionTime字段为只读,并从TDA设置。

通知

OmniSCEF向配置的notificationDestination POST以下内容:

通知何时
NiddUplinkDataNotification上行非IP数据到达(来自ODR)。
NiddDownlinkDataDeliveryStatusNotification先前接受的下行交付的结果发生变化(异步状态)。

应用服务器用204 无内容确认每个通知。

参考值

交付状态值

意义
SUCCESSMME已交付数据(或通过缓冲/寻呼空闲UE承担责任)。
SENDING交付正在进行中。
BUFFERINGMME为空闲UE缓冲数据。
FAILURE_UE_NOT_REACHABLE无法到达UE。
FAILURE_REMOTE_FAILUREMME/服务节点拒绝或失败请求。
FAILURE交付因其他原因失败。

PDN建立选项

当下行时没有连接存在的行为
WAIT_FOR_UE缓冲直到UE建立连接。
INDICATE_ERROR立即拒绝交付。
ESTABLISH_PDN_CONNECTION触发UE建立非IP连接。

配置状态值

意义
ACTIVE配置已授权并可用。
TERMINATED_UE_NOT_AUTHORIZED该用户未被授权使用NIDD。
TERMINATED配置已过期或被移除。