BroadNet
DIAMETERصيغة الرسالة

AVP في DIAMETER وأنواع البيانات وResult-Code

آخر تحديث 4 دقائق للقراءةقائم على المعايير
إجابة مباشرة

تحمل AVP (أزواج السمة والقيمة) كل بيانات DIAMETER. لكلٍّ منها رمز AVP، وثُماني رايات (V للمورّد، وM للإلزامي، وP محجوز)، وطول، وVendor-Id اختياري، وقيمة مُنمّطة. تستخدم القيم أنواعًا أساسية مثل Unsigned32 وOctetString وAddress وTime وEnumerated وGrouped. وتُبلّغ AVP من نوع Result-Code وExperimental-Result عن النتائج.

§01

بنية AVP

تُرمَّز كل قطعة بيانات في DIAMETER — الهويّات وحقول الاشتراك والحصص والنتائج — على هيئة AVP. تبدأ AVP برمز AVP بعرض 32 بت، ثم ثُماني رايات، وطول بعرض 24 بت يشمل AVP بأكملها، وVendor-Id اختياري بعرض 32 بت، والقيمة محشوّة إلى حدّ 4 ثُمانيات. رمز AVP بمفرده فريد ضمن الفضاء الذي يديره IETF؛ وعند ضبط الراية V (خاص بالمورّد) يُفسَّر الرمز عوضًا عن ذلك ضمن فضاء ترقيم Vendor-Id الذي يليه — وهكذا يُعرّف 3GPP (بالمعرّف Vendor-Id قيمته 10415) مئات AVP التي تستخدمها S6a وGx وCx دون تعارض مع البروتوكول الأساسي.

صيغة AVP وفق RFC 6733text
0                   1                   2                   3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         AVP Code (32)                      |
| V M P r r r r r|                AVP Length (24)            |
|              Vendor-Id (32)  — present only if V=1          |
|    Data ...  (padded to a 4-octet boundary)                |
§02

الرايات V وM وP

تحكم ثلاث رايات AVP كيف يجب أن يعامل المستقبِل AVP. الراية V (خاص بالمورّد) تُشير إلى أن Vendor-Id يليها وأن رمز AVP يقع في فضاء ذلك المورّد. والراية M (إلزامي) هي المهمّة: إذا ضُبطت M ولم يفهم المستقبِل AVP، فعليه رفض الرسالة كاملةً بالرمز DIAMETER_AVP_UNSUPPORTED (5001) — لذا فضبط M على نحوٍ خاطئ يكسر التوافقية، وتُرسَل AVP الخاصة بالمورّدين التي يمكن للتطبيق تجاهلها بأمان مع مسح M. أما P فكانت في الأصل علامةَ أمان طرف-إلى-طرف؛ وقد أهمل RFC 6733 هذا الاستخدام والبت الآن محجوز ويُضبَط على صفر.

بتات رايات AVP
علامةالاسمالمعنى عند ضبطه
VVendor-Specificيوجد حقل Vendor-Id؛ والرمز ضمن نطاق ذلك المورّد
Mإلزامييجب أن يفهمه المستقبِل وإلا يرفض الرسالة (5001)
P(محجوز)كان سابقًا للأمان من طرف إلى طرف؛ أُهمل بموجب RFC 6733، ويُضبط على 0
§03

أنواع البيانات الأساسية

قيم AVP مُنمّطة بقوة. يُعرّف RFC 6733 مجموعة من الأنواع الأساسية وعدة أنواع مشتقّة مبنية من OctetString. تحمل الأنواع الصحيحة والموجَبة العدّادات والمعرّفات والتعدادات؛ ويحمل OctetString بياناتٍ ثنائية معتِمة أو مُهيكلة؛ وتضيف الأنواع المشتقّة دلالات يمكن للتطبيق التحقّق منها. يُرمّز Address عنوان IP مسبوقًا بفصيلة عنوان بطول ثُمانيّين. وTime هو عدّ ثوانٍ بعرض 32 بت على نمط NTP. وEnumerated هو Integer32 تُسمّي التطبيقُ قِيَمَه. ويحمل DiameterIdentity وDiameterURI أسماء نطاقات الأنداد والعناوين URI.

أنواع بيانات AVP الشائعة في DIAMETER
النوعالترميزالاستخدام النموذجي
Unsigned32 / Integer32عدد صحيح 32-بتالعدادات، الحصص، Auth-Application-Id، Result-Code
Unsigned64 / Integer64عدد صحيح 64-بتأحجام بالأوكتيت، عدادات كبيرة
OctetStringثُمانيات مبهمةحمولات ثنائية (متجهات المصادقة، TPDU)
UTF8StringOctetStringنص مقروء للبشر (User-Name، اسم المنتج)
EnumeratedInteger32مجموعات القيم المسماة (مثل RAT-Type، CC-Request-Type)
Addressسلسلة أوكتيت + عائلةعناوين IPv4/IPv6 (Host-IP-Address، Framed-IP)
الوقتUnsigned32الثواني منذ 1900 (Event-Timestamp)
DiameterIdentityOctetStringاسم النطاق المؤهل للنظير (Origin-Host, Destination-Host)
GroupedAVPs متداخلةAVPs تحتوي على AVPs أخرى
§04

AVP المُجمّعة

تحمل AVP المُجمّعة، كقيمة لها، قائمةً متسلسلة من AVP أخرى — فتتداخل السجلات المُهيكلة بنظافة دون قواعد سلكية جديدة. تحمل Subscription-Data في S6a، وCharging-Rule-Install في Gx، وExperimental-Result، جميعُها AVP فرعية داخل مجموعة. والتجميع تعاودي: يمكن أن تحتوي AVP مُجمّعة على AVP مُجمّعة أخرى، وهكذا يُعبَّر عن ملف اشتراك LTE كامل أو مجموعة من قواعد PCC بوصفها AVP واحدة على المستوى الأعلى. وتحتفظ كل AVP محتواة برمزها ورايتها وطولها الخاص، فيُحلّل المستقبِل المجموعة بالآلية نفسها التي يستخدمها في المستوى الأعلى.

§05

Result-Code وExperimental-Result

يُبلّغ DIAMETER عن نتيجة الطلب في الاستجابة. AVP الأساسية Result-Code (الرمز 268) هي Unsigned32 مُجمّعة في نطاقات بحسب الرقم الأول: 1xxx إعلامي، و2xxx نجاح، و3xxx أخطاء بروتوكولية (من وسيط/مُرحّل)، و4xxx إخفاقات عابرة قد يُعيد العميلُ محاولتها، و5xxx إخفاقات دائمة. وعندما يحتاج تطبيقٌ إلى خطأ خاص بالمورّد لا يستطيع Result-Code الأساسي التعبير عنه، يستخدم AVP من نوع Experimental-Result (الرمز 297) — وهي AVP مُجمّعة تحمل Vendor-Id إضافةً إلى Experimental-Result-Code — وهكذا يُشير 3GPP إلى أخطاء مثل DIAMETER_ERROR_USER_UNKNOWN أو DIAMETER_ERROR_ROAMING_NOT_ALLOWED.

نطاقات Result-Code والقيم الشائعة
النطاقالفئةمثال
1xxxمعلوماتي1001 DIAMETER_MULTI_ROUND_AUTH
2xxxتم بنجاح2001 DIAMETER_SUCCESS
3xxxخطأ في البروتوكول (الوكيل)3002 UNABLE_TO_DELIVER, 3007 APPLICATION_UNSUPPORTED
4xxxفشل مؤقت (إعادة المحاولة)4181 AUTHENTICATION_DATA_UNAVAILABLE (3GPP)
5xxxفشل دائم5001 AVP_UNSUPPORTED, 5012 UNABLE_TO_COMPLY
التعليمات

الأسئلة المتكررة

ما هي AVP في DIAMETER؟

AVP (زوج السمة والقيمة) هي وحدة البيانات في كل رسالة DIAMETER. تحمل رمز AVP، وثُماني رايات (V وM وP)، وطولًا، وVendor-Id اختياري، وقيمة مُنمّطة. تُرمَّز جميع الهويّات وحقول الاشتراك والحصص والنتائج على هيئة AVP، والرسالة هي ترويسة تتبعها قائمة منها.

ماذا تفعل الراية M (الإلزامية)؟

إذا ضُبطت الراية M ولم يفهم المستقبِل تلك AVP، فعليه رفض الرسالة كاملةً بالرمز DIAMETER_AVP_UNSUPPORTED (5001). ولهذا تُرسَل AVP التي يمكن للندّ تجاهلها بأمان مع مسح M. وسوء استخدام بت M سبب شائع لإخفاقات التوافقية بين المورّدين.

ما هي AVP المُجمّعة؟

AVP المُجمّعة هي AVP قيمتها في ذاتها قائمة من AVP، فتسمح بتداخل السجلات المُهيكلة. وSubscription-Data وCharging-Rule-Install وExperimental-Result كلها AVP مُجمّعة. والتجميع تعاودي، فيمكن حمل ملف اشتراك LTE كامل أو مجموعة قواعد PCC بوصفها AVP واحدة على المستوى الأعلى.

كيف تُعرَّف AVP الخاصة بالمورّد؟

عبر الراية V إضافةً إلى حقل Vendor-Id. عند ضبط V، يلي الطولَ حقلُ Vendor-Id بعرض 32 بت ويُفسَّر رمز AVP ضمن فضاء ترقيم ذلك المورّد. ويستخدم 3GPP المعرّف Vendor-Id قيمته 10415 لتعريف AVP الخاصة بـ S6a وGx وCx وسائر واجهات التطبيقات.

ما الفرق بين Result-Code وExperimental-Result؟

يحمل Result-Code (AVP رمزها 268) رموزَ النتائج الأساسية من IETF مُجمّعةً على هيئة 1xxx/2xxx/3xxx/4xxx/5xxx. أما Experimental-Result (AVP رمزها 297) فهي AVP مُجمّعة بها Vendor-Id وExperimental-Result-Code، وتُستخدم حين يحتاج تطبيقٌ إلى خطأ خاص بالمورّد مثل DIAMETER_ERROR_USER_UNKNOWN لدى 3GPP.

ماذا تعني نطاقات رموز النتائج في DIAMETER؟

1xxx إعلامي، و2xxx نجاح (2001 DIAMETER_SUCCESS)، و3xxx خطأ بروتوكولي يُثيره عادةً وسيط، و4xxx إخفاق عابر قد يُعيد العميلُ محاولته، و5xxx إخفاق دائم. ويُخبر الرقمُ الأول العميلَ ما إذا كان عليه إعادة المحاولة أو الإخفاق أو إعادة التوجيه.

مراجع

مواصفات المصدر

تستند هذه الصفحة إلى المعايير المنشورة. يفتح في علامة تبويب جديدة.

BNتتم صيانته بواسطة فريق الهندسة BroadNet·خدمة الرسائل عالية الجودة منذ عام 2003
ضعه على السلك

قم بالبناء باستخدام ربط SMPP حقيقي وواجهة برمجة تطبيقات REST.

اطلب الوصول التجريبي باستخدام مفاتيح اختبار حقيقية: أرسل أولاً إلى رقمك الذي تم التحقق منه، ثم انتقل إلى الإنتاج عبر أكثر من 200 دولة بمجرد الموافقة على معرّف المُرسِل ومساراته.