تسليم البيانات غير IP (NIDD)
تسليم البيانات غير IP يتيح لجهاز Cellular-IoT / NB-IoT تبادل رسائل غير IP صغيرة مع خادم التطبيق بدون عنوان 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 بإنشاء الاتصال غير IP لذلك
المشترك. يربط جلسة Diameter وهوية MME بـ
{IMSI, EBI}المستخدمة للوصول إلى UE.
ترتبط OmniSCEF بين الاثنين بواسطة هوية المشترك، بحيث تجد بيانات الرفع رد الاتصال الصحيح لـ AS و تجد بيانات النزول الاتصال المباشر الصحيح.
دورة حياة الاتصال
يدير MME اتصال T6a أثناء اتصال UE وفصله. يمكن لخادم التطبيق أيضًا إنهاء الاتصال عن طريق حذف تكوين NIDD الخاص به.
عندما يقوم MME بإنشاء اتصال لمشترك ليس لدي�� تكوين NIDD، ترد OmniSCEF
على CMR بـ DIAMETER_ERROR_USER_UNKNOWN (5001). المشترك غير مهيأ لـ
NIDD.
بيانات منشأة من الهاتف المحمول (الرفع)
تصل بيانات Non-IP المرسلة من UE إلى OmniSCEF كطلب بيانات MO T6a (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 | الحمولة غير IP، مشفرة بتنسيق base64. |
rdsSourcePort / rdsDestinationPort | موجود عند تمكين خدمة البيانات الموثوقة. |
moExceptionDataCounter | موجود عندما يتم تمييز الرفع على أنه بيانات استثناء MO. |
بيانات منتهية إلى الهاتف المحمول (النزول)
يرسل خادم التطبيق بيانات Non-IP المنتهية عبر POST إلى مجموعة
downlink-data-deliveries الخاصة بالتكوين. تقوم OmniSCEF بإعادة توجيهها إلى MME كطلب بيانات MT T6a (TDR)، وتقوم بتسجيل النتيجة (من MT-Data-Answer, TDA) على
موارد تسليم فردية يمكن لـ AS استرجاعها.
عندما يكون 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
يمثل تكوين NIDD الذي تم إنشاؤه باستخدام externalGroupId (بدلاً من externalId/msisdn الفردي)
مجموعة من الأجهزة (TS 23.682 §5.13.3A).
يتم توزيع تسليم نزول واحد إلى تكوين مجموعة على كل عضو في المجموعة الذي
يمتلك اتصال T6a نشط.
يتم حل أعضاء المجموعة من خريطة المجموعة.
تعكس deliveryStatus الإجمالية للتسليم أسوأ نتيجة لكل عضو، لذا فإن تسليم المجموعة
يبلغ فقط عن SUCCESS عندما يتم تقديم كل عضو يمكن الوصول إليه.
خدمة البيانات الموثوقة
تقوم خدمة البيانات الموثوقة (RDS) بتعدد تدفقات التطبيقات المتعددة عبر اتصال غير IP واحد
باستخدام أرقام المنافذ، وفقًا لـ TS 23.682 §4.5.14.3. يتم تمكين RDS لكل تكوين عن طريق تعيين reliableDataService: true عند إنشاء التكوين.
عند تمكين RDS:
- النزول: عندما يحدد التسليم
rdsDestinationPortوrdsSourcePort، تقوم OmniSCEF بتأطير الحمولة غير IP مع رأس 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 للاتصال غير IP. |
pdnEstablishmentOption | سلسلة (enum) | لا | السلوك عند النزول عندما لا يوجد اتصال. انظر خيارات إنشاء PDN. |
maximumPacketSize | عدد صحيح | لا | الحد الأقصى لحجم الحمولة غير IP بالبايت (يكون الافتراضي هو default_max_packet_size المكون، 255). |
reliableDataService | منطق�� | لا | تمكين خدمة البيانات الموثوقة. |
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 لإنشاء الاتصال غير IP. |
قيم حالة التكوين
| القيمة | المعنى |
|---|---|
ACTIVE | التكوين مفوض ��قابل للاستخدام. |
TERMINATED_UE_NOT_AUTHORIZED | المشترك غير مفوض لـ NIDD. |
TERMINATED | انتهت صلاحية التكوين أو تم إزالته. |