تسليم البيانات غير المعتمدة على بروتوكول الإنترنت (NIDD)
تسليم البيانات غير المعتمدة على بروتوكول الإنترنت يتيح لجهاز Cellular-IoT / NB-IoT تبادل رسائل صغيرة غير معتمدة على بروتوكول الإنترنت مع خادم التطبيق دون الحاجة إلى تعيين عنوان IP. البيانات تمر عبر خطة الإشارة NAS (تحسين CIoT EPS في Control-Plane) بين UE وMME؛ يقوم MME بإعادة توجيهها إلى OmniSCEF عبر T6a؛ وOmniSCEF يكشفها لخادم التطبيق عبر T8.
تم تعريف بنية NIDD وإجراءاته في 3GPP TS 23.682 §5.13؛ واجهة T6a Diameter في TS 29.128؛ وواجهة T8 NIDD API في TS 29.122.
جدول المحتويات
- نظرة عامة
- دورة حياة ��لاتصال
- البيانات المنبعثة من الهاتف المحمول
- البيانات المنتهية إلى الهاتف المحمول
- NIDD الجماعي
- خدمة البيانات الموثوقة
- بيانات استثناء MO
- مرجع موارد T8
- قيم مرجعية
نظرة عامة
لدى جلسة NIDD نصفان مرتبطان:
- يتم إنشاء تكوين NIDD بواسطة خادم التطبيق عبر T8. يسمي الجهاز (عن طريق معرف خارجي، MSISDN، أو مجموعة)، ونداء الإشعار، وخيارات NIDD.
- يتم إنشاء ربط T6a عندما يقوم MME بإنشاء الاتصال غير المعتمد على بروتوكول الإنترنت لذلك المشترك. يربط جلسة Diameter وهوية MME بـ
{IMSI, EBI}المستخدمة للوصول إلى UE.
يربط OmniSCEF بين النصفين من خلال هوية المشترك، بحيث تجد بيانات الرفع العلوي نداء AS الصحيح وتجد بيانات الرفع السفلي الاتصال الحي الصحيح.
دورة حياة الاتصال
يدير MME اتصال T6a أثناء اتصال UE وفصله. يمكن لخادم التطبيق أيضًا إنهاء الاتصال عن طريق حذف تكوين NIDD الخاص به.
إذا تم إنشاء اتصال لمشترك ليس لديه تكوين NIDD، يجيب OmniSCEF على CMR بـ DIAMETER_ERROR_USER_UNKNOWN (5001) — المشترك غير مزود لـ NIDD.
البيانات المنبعثة من الهاتف المحمول (الرفع العلوي)
تصل بيانات Non-IP المرسلة من UE إلى OmniSCEF كطلب بيانات غير معتمد على بروتوكول الإنترنت MO-Data-Request (ODR). يقوم OmniSCEF بتسليمها إلى خادم التطبيق عن طريق POSTing إشعار إلى نداء التكوين، ويجيب MME بـ MO-Data-Answer (ODA).
إذا لم يتمكن OmniSCEF من حل التكوين أو فشل نداء الإشعار، فإنه يجيب على ODA بـ DIAMETER_UNABLE_TO_COMPLY (5012).
مثال على إشعار الرفع العلوي (POSTed إلى نداء الإشعار):
{
"externalId": "device01@iot.example.org",
"data": "AQIDBA=="
}
| الحقل | الوصف |
|---|---|
externalId / msisdn | هوية الجهاز، كما هو مزود في التكوين. |
data | الحمولة غير المعتمدة على بروتوكول الإنترنت، مشفرة بـ base64. |
rdsSourcePort / rdsDestinationPort | موجودة عند تمكين خدمة البيانات الموثوقة. |
moExceptionDataCounter | موجودة عندما يتم الإشارة إلى الرفع العلوي كـ بيانات استثناء MO. |
البيانات المنتهية إلى الهاتف المحمول (الرفع السفلي)
يرسل خادم التطبيق بيانات Non-IP المنتهية إلى الهاتف المحمول عن طريق POSTing إلى مجموعة downlink-data-deliveries الخاصة بالتكوين. يقوم OmniSCEF بإعادة توجيهها إلى MME كطلب بيانات غير معتمد على بروتوكول الإنترنت MT-Data-Request (TDR)، ويسجل النتيجة (من MT-Data-Answer, TDA) على مورد تسليم فردي يمكن لـ AS استرجاعه.
عندما يكون UE في حالة خمول، يقوم MME بتخزين البيانات ويقوم بإشعار UE، ويجيب TDA بالنجاح بمجرد أن يتحمل المسؤولية عن التسليم. يعكس OmniSCEF النتيجة في deliveryStatus للتسليم (انظر قيم حالة التسليم).
مثال على طلب الرفع السفلي:
{
"data": "SGVsbG8=",
"maximumLatency": 3600,
"priority": 5
}
| الحقل | الوصف |
|---|---|
data | الحمولة غير المعتمدة على بروتوكول الإنترنت للتسليم، مشفرة بـ 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 الجماعي
يمثل تكوين NIDD الذي تم إنشاؤه باستخدام externalGroupId (بدلاً من externalId/msisdn الفردي) مجموعة من الأجهزة (TS 23.682 §5.13.3A). يتم توزيع تسليم واحد إلى تكوين المجموعة على كل عضو في المجموعة الذي لديه اتصال T6a نشط.
يتم حل أعضاء المجموعة من خريطة المجموعة. تعكس deliveryStatus المجمع للتسليم أسوأ نتيجة لكل عضو، لذا فإن تسليم المجموعة يبلغ فقط عن SUCCESS عندما يتم خدمة كل عضو يمكن الوصول إليه.
خدمة البيانات الموثوقة
تقوم خدمة البيانات الموثوقة (RDS) بدمج تدفقات التطبيقات المتعددة عبر اتصال غير معتمد على بروتوكول الإنترنت واحد باستخدام أرقام المنافذ، وفقًا لـ TS 23.682 §4.5.14.3. يتم تمكين RDS لكل تكوين عن طريق تعيين reliableDataService: true عند إنشاء التكوين.
عند تمكين RDS:
- الرفع السفلي — إذا كان التسليم يحدد
rdsDestinationPortوrdsSourcePort، يقوم OmniSCEF بإطار الحمولة غير المعتمدة على بروتوكول الإنترنت مع رأس RDS يحمل تلك المنافذ قبل إرسال TDR. - الرفع العلوي — يقوم OmniSCEF بتحليل رأس RDS من حمولة ODR ويظهر
rdsSourcePortوrdsDestinationPortعلى إشعار الرفع العلوي، موصلًا الحمولة الداخلية كـdata.
تتراوح المنافذ من 0 إلى 255. عندما لا يتم تمكين RDS، أو عندما يغفل التسليم المنافذ، يتم نقل الحمولة بدون إطار.
بيانات استثناء MO
يمكن لأجهزة NB-IoT الإشارة إلى إرسال الرفع العلوي كـ تقرير استثناء (تقرير عاجل، خارج النمط) عبر سبب إنشاء RRC، الذي يتم عدّه في RRC-Cause-Counter لـ T6a
(TS 23.682 §5.13.4). عندما يرى OmniSCEF هذه الإشارة على ODR، فإنه يتضمن moExceptionDataCounter على إشعار الرفع العلوي حتى يتمكن خادم التطبيق من إعطاء الأولوية للتعامل.
مرجع موارد T8
NiddConfiguration
تم إنشاؤه بواسطة POST /api/3gpp-nidd/v1/{scsAsId}/configurations.
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
notificationDestination | سلسلة (URI) | نعم | نداء يتلقى خادم التطبيق إشعارات الرفع العلوي وحالة. |
externalId | سلسلة | مشروط | معرف الجهاز الخارجي (user@domain). واحد من externalId، msisdn، أو externalGroupId. |
msisdn | سلسلة | مشروط | MSISDN للجهاز. |
externalGroupId | سلسلة | مشروط | معرف المجموعة لـ NIDD الجماعي. |
dnn | سلسلة | لا | اسم شبكة البيانات / APN للاتصال غير المعتمد على بروتوكول الإنترنت. |
pdnEstablishmentOption | سلسلة (enum) | لا | السلوك عند الرفع السفلي عند عدم وجود اتصال — انظر خيارات إنشاء PDN. |
maximumPacketSize | عدد صحيح | لا | الحد الأقصى لحجم الحمولة غير المعتمدة على بروتوكول الإنترنت بالبايت (يكون افتراضيًا إلى default_max_packet_size المكون، 255). |
reliableDataService | Boolean | لا | تمكين خدمة البيانات الموثوقة. |
mtcProviderId | سلسلة | لا | معرف مزود خدمة MTC. |
validityTime | سلسلة (تاريخ-وقت) | لا | متى تنتهي صلاحية التكوين. |
status | سلسلة (enum) | للقراءة فقط | حالة دورة الحياة — انظر قيم حالة التكوين. |
self | سلسلة (URI) | للقراءة فقط | URI الخاص بالموارد. |
NiddDownlinkDataTransfer
تم إنشاؤه بواسط�� POST /api/3gpp-nidd/v1/{scsAsId}/configurations/{configurationId}/downlink-data-deliveries.
تم وصف الحقول تحت البيانات المنتهية إلى الهاتف المحمول. الحقول deliveryStatus و requestedRetransmissionTime هي للقراءة فقط ويتم تعيينها من TDA.
الإشعارات
يقوم OmniSCEF بإرسال POSTs التالية إلى notificationDestination الخاصة بالتكوين:
| الإشعار | متى |
|---|---|
NiddUplinkDataNotification | وصلت بيانات Non-IP المنبعثة (من ODR). |
NiddDownlinkDataDeliveryStatusNotification | تغيرت نتيجة تسليم الرفع السفلي الذي تم قبوله سابقًا (حالة غير متزامنة). |
يقر خادم التطبيق بكل إشعار بـ 204 No Content.
قيم مرجعية
قيم حالة التسليم
| القيمة | المعنى |
|---|---|
SUCCESS | قام MME بتسليم البيانات (أو تحمل المسؤولية عن طريق التخزين المؤقت / إشعار UE الخامل). |
SENDING | التسليم جارٍ. |
BUFFERING | قام MME بتخزين البيانات لجهاز UE الخامل. |
FAILURE_UE_NOT_REACHABLE | لم يكن من الممكن الوصول إلى UE. |
FAILURE_REMOTE_FAILURE | رفض MME / العقدة الخادمة الطلب أو فشلت فيه. |
FAILURE | فشل التسليم لسبب آخر. |
خيارات إنشاء PDN
| القيمة | السلوك عند عدم وجود اتصال في وقت الرفع السفلي |
|---|---|
WAIT_FOR_UE | التخزين المؤقت حتى يقوم UE بإنشاء الاتصال. |
INDICATE_ERROR | رفض التسليم على الفور. |
ESTABLISH_PDN_CONNECTION | تحفيز UE لإنشاء الاتصال غير المعتمد على بروتوكول الإنترنت. |
قيم حالة التكوين
| القيمة | المعنى |
|---|---|
ACTIVE | التكوين مفوض وقابل للاستخدام. |
TERMINATED_UE_NOT_AUTHORIZED | المشترك غير مفوض لـ NIDD. |
TERMINATED | انتهت صلاحية التكوين أو تم إزالته. |