BroadNet
SMPPالجلسة

SMPP enquire_link والنوافذ والخنق

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

enquire_link (0x00000015) نبضة خفيفة لإبقاء الاتصال نشطًا (keepalive) تؤكّد أن جلسة SMPP المربوطة ما زالت سليمة عبر TCP. ويحكم معدلَ النقل (throughput) حدّان: النافذة (كم وحدة PDU يمكن أن تبقى غير مُقرّة في آن واحد) وسقف TPS لدى المزوّد. ويؤدي تجاوز المعدّل إلى إعادة ESME_RTHROTTLED (0x00000058)؛ والحلّ هو الإبطاء التدريجي (backoff).

مخططجلسة SMPP بين منصتكم وBroadNet
منصتكم (ESME)
BroadNet SMSC
اتصال TCP/TLS مستمر واحد
  1. bind_transceiverفتح الجلسة والمصادقة عليها
  2. bind_transceiver_respتم قبول الجلسة
  3. submit_smإرسال رسالة
  4. submit_sm_respتم القبول، وإعادة معرف الرسالة
  5. deliver_smإيصال استلام أو رسالة واردة
  6. deliver_sm_respتم التأكيد
  7. enquire_linkإشارة Keepalive أثناء الخمول
§01

نبضة enquire_link لإبقاء الاتصال نشطًا

قد تبقى جلسة SMPP مربوطة خاملة لفترات طويلة، واتصال TCP نصف المفتوح يبدو حيًّا على مستوى المقبس. تحلّ enquire_link ذلك: يرسلها أي من الطرفين على مؤقّت خمول (كل 30–60 ثانية شائعًا) ويتوقّع enquire_link_resp فورًا. وتعني الاستجابة المفقودة أن الجلسة ميتة — فكّك اتصال TCP وأعد الاتصال مع تباطؤ تدريجي (backoff). وهي الطريقة الوحيدة الموثوقة لاكتشاف رابط معطّل بصمت.

تبادل keepalivetext
ESME → SMSC  enquire_link      seq=1200
SMSC → ESME  enquire_link_resp seq=1200  status=ESME_ROK
  (no response within timeout ⇒ treat session as dead, reconnect)
§02

النافذة: وحدات PDU المعلَّقة غير المُقرّة

SMPP غير متزامن: يمكنك إرسال عدة وحدات submit_sm قبل وصول استجابة submit_sm_resp الخاصة بها. ويحدّ حجم النافذة كم منها يمكن أن تكون معلَّقة (غير مُقرّة) في آن واحد. وحين تمتلئ النافذة يجب أن توقف الإرسال حتى تُحرّر استجابةٌ مكانًا. والإطلاق بما يتجاوز النافذة سبب رئيسي للخنق وإسقاط الوحدات. ويُتّفق على حجم النافذة مع المزوّد — لا توجد قيمة افتراضية واحدة للبروتوكول.

§03

الخنق وTPS

بمعزل عن النافذة، يفرض المزوّد معدّل رسائل أقصى — معاملات في الثانية (TPS) — لكل ربط أو لكل حساب. ويؤدي تجاوزه إلى إعادة ESME_RTHROTTLED (0x00000058). والاستجابة الصحيحة هي الإبطاء: أوقِف، وأبطئ تدريجيًا (backoff) مع تشويش زمني، واستأنف دون السقف. لا تعِد أبدًا إرسال وحدة مخنوقة فورًا ولا تفتح عمليات ربط إضافية للالتفاف على الحدّ — كلاهما يخاطر بتعليق الحساب. وفي v5.0 يمكن لـ SMSC إضافيًا الإعلان عن الازدحام عبر معامل congestion_state كي يبطئ ESME استباقيًا.

الحدود الثلاثة التي تحدد معدل النقل
الحديتحكم فيإشارة التجاوز
حجم النافذةوحدات PDU غير مؤكدة قيد النقلالضغط العكسي / وحدات PDU مُسقَطة
الحد الأقصى لعدد الرسائل في الثانية (TPS)عدد الرسائل في الثانيةESME_RTHROTTLED (0x58)
عدد جلسات bindجلسات متوازيةتم رفض الربط / إجراء الحساب
§04

الضبط لمعدل نقل مستدام

معدل النقل الفعلي تقريبًا هي حجم النافذة مقسومًا على زمن الذهاب والإياب، مقيَّدًا بسقف TPS. تساعد النافذة الأكبر على الروابط عالية زمن الاستجابة؛ ويساعد المزيد من عمليات الربط فقط إن زوّدها المزوّد. راقِب إشغال النافذة وزمن الإرسال/الاستجابة ومعدّل أخطاء الخنق، وعامِل ارتفاع معدّل ESME_RTHROTTLED كإشارة لخفض معدّل الإرسال لا لدفعه أكثر.

التعليمات

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

كم مرة ينبغي أن أرسل enquire_link؟

كل 30–60 ثانية شائعًا على مؤقّت خمول. أرسلها حين تهدأ الجلسة، وعامِل غياب enquire_link_resp ضمن مهلتك كجلسة ميتة يجب إعادة الاتصال بها.

ما هو حجم نافذة SMPP؟

النافذة هي أقصى عدد لوحدات PDU التي يمكن أن تكون معلَّقة (مُرسَلة لكن لم تُقرّ بعد) في آن واحد. وتُتفاوَض مع مزوّدك لا يحدّدها البروتوكول؛ أوقِف الإرسال حين تمتلئ النافذة.

كيف أعالج ESME_RTHROTTLED؟

اخفض معدّل إرسالك. أوقِف، وأبطئ تدريجيًا (backoff) مع تشويش زمني، واستأنف دون سقف TPS لدى المزوّد. لا تعِد المحاولة فورًا ولا تفتح عمليات ربط إضافية للالتفاف على الحدّ — كلاهما قد يزيد الخنق أو يعلّق الحساب.

هل تزيد النافذة الأكبر من TPS لديّ؟

إلى حدّ ما. معدل النقل تقريبًا حجم النافذة مقسومًا على زمن الذهاب والإياب، لكنها تبقى مقيَّدة بسقف TPS لدى المزوّد. وتساعد النافذة الأكبر أساسًا على إخفاء زمن الاستجابة على الروابط عالية RTT.

ما هو congestion_state في SMPP v5.0؟

يضيف v5.0 معامل congestion_state يتيح لـ SMSC الإعلان عن مقدار تحميله (0–100). ويقرؤه ESME المتعاون فيبطئ استباقيًا قبل بلوغ الخنق الصارم، ما يُنعّم معدل النقل تحت الحمل.

مراجع

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

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

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

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

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