المقدمة
يصف هذا المستند آليات تجزئة SCTP وتجزئة مجموعات الاتصال في Cisco MME وكيفية تأثير التجزئة والتجميع على عمليات إسقاط الحزم.
المتطلبات الأساسية
المتطلبات
لا توجد متطلبات خاصة لهذا المستند.
المكونات المستخدمة
تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:
- برنامج QVPC-SI، الإصدار 21.28.m18
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
معلومات أساسية
بروتوكول الإرسال للتحكم في البث (SCTP) هو بروتوكول نقل موثوق يعمل فوق شبكة حزم غير متصلة مثل IP. ويمكن أن يقوم بتجزئة البيانات بحيث تتوافق مع حجم وحدة الحد الأقصى للنقل (MTU) للمسار الذي تم اكتشافه وتجميع رسائل المستخدم المتعددة في حزمة SCTP واحدة باستخدام تجميع الكتل. يقدم هذا المستند طريقتين لمعالجة حالات إسقاط الحزم التي تحدث بسبب قيود وحدة الحد الأقصى للنقل (MTU) للمسار.
تعرض دراسة الحالة آليات التجزئة والتجميع كوسيلة لتوضيح عمليات إسقاط الحزمة، بما في ذلك عمليات إسقاط الحزم التي تحدث خارج Cisco MME، بدلا من بسبب تكوين حجم SCTP Max MTU.
وفقا لمعيار RFC 4960 (بروتوكول الإرسال للتحكم في البث) الإصدار 6.9 (التجزئة وإعادة التجميع):
"إذا كانت نقطة نهاية تدعم التجزئة، فيجب عليها تجزئة رسالة مستخدم إذا كان حجم رسالة المستخدم التي سيتم إرسالها يتسبب في تجاوز حجم حزمة SCTP الصادرة حجم MTU الحالي."
وبالإضافة إلى ذلك، يمكن تجميع مجموعات بيانات SCTP المتعددة في حزمة SCTP واحدة صادرة. يجب أن يكون الحجم الإجمالي لمخطط بيانات IP الناتج، بما في ذلك حزمة SCTP ورؤوس IP، أقل من ذلك أو يساوي MTU للمسار الحالي. على MME، يتم تكوين مسار MTU على واجهة IP التي تقوم بمعالجة هذه الحزم.
تشظية
يمكن أن يكون هناك تدفقات متعددة في اقتران SCTP، يتم تعريف كل منها بواسطة معرف الدفق (SI). يعرف رقم تسلسل الدفق (SSN) الأمر لكل جزء ضمن تدفق SCTP محدد. يمكن أن تستخدم جلسات العمل المتعددة نفس دفق SCTP. يعرف رقم تسلسل الإرسال (TSN) الترتيب لكل جزء ضمن اقتران SCTP بالكامل.
عند تجزئته، يشير خط بيانات حمولة SCTP في حقلي B و E إلى ما إذا كان الجزء هو الجزء الأولي أو الجزء الأوسط أو الجزء الطرفي:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0 | Reserved|U|B|E| Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TSN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Stream Identifier S | Stream Sequence Number n |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Protocol Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ User Data (seq n of Stream S) /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
B E Description
============================================================
| 1 0 | First piece of a fragmented user message |
+----------------------------------------------------------+
| 0 0 | Middle piece of a fragmented user message |
+----------------------------------------------------------+
| 0 1 | Last piece of a fragmented user message |
+----------------------------------------------------------+
| 1 1 | Unfragmented message |
============================================================
| Table 1: Fragment Description Flags |
============================================================
يمكن أن تشير الفجوات في أرقام تسلسل الدفق إلى أنه يتم إسقاط الأجزاء داخل البخار أو الاقتران. يمكن أن تساعد مرشحات Wirshark على تحديد الفجوات في تدفقات SCTP:
sctp.sack_gap_block_start or sctp.sack_gap_block_end
تجميع حزمة حزمة SCTP
يمكن تجميع مجموعات متعددة في حزمة SCTP واحدة حتى حجم وحدة الحد الأقصى للنقل (MTU)، باستثناء مجموعات INIT و Init Ack و Shutdown الكاملة:
An SCTP packet is composed of a common header and chunks. A chunk
contains either control information or user data.
The SCTP packet format is shown below:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Common Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Chunk #1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Chunk #n |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
يتم سرد طول المجموعة لكل مجموعة بيانات SCTP داخل كل مجموعة بيانات:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Chunk Type | Chunk Flags | Chunk Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ Chunk Value /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
عمليات التهيئة التي تؤثر على تحديد الحجم
أحجام SCTP-Param-Template SCTP MTU
في SCTP-Param-Template يتم تكوين حجم SCTP-Max-MTU باستخدام خيار SCTP-max-mtu-size و/أو خيار SCTP-start-mtu-size ، الذي يتم تكوينه بالبايت. 1500 بايت هو الحجم الافتراضي SCTP Max MTU وحجم SCTP الافتراضي لبدء MTU:
Exec > Global Configuration > SCTP Parameter Template Configuration
[Local]ASR5500-2# sctp-param-template template_name
[Local]ASR5500-2(sctp-param-template)# sctp-max-mtu-size 1500
[Local]ASR5500-2(sctp-param-template)# sctp-start-mtu-size 1500
في خدمة MME، يتم إقران SCTP-Param-Template بسياق MME:
Exec > Global Configuration > Context Configuration > MME Service
[mme]ASR5500-2(config-mme-service)# associate sctp-param-template S1_MME_SCTP
تكوين واجهة إيثرنت لسياق MME
يتم تكوين الواجهة التي يتم إستخدامها بواسطة الخدمة MME مع حجم IP MTU المرغوب بالبايت (1500 هو الافتراضي):
Exec > Global Configuration > MME Context Configuration
[mme]ASR5500-2(config-ctx)# interface int1/10_s1mme
[mme]ASR5500-2(config-if-eth)# ip address
[mme]ASR5500-2(config-if-eth)#
ip mtu 2000
[mme]ASR5500-2(config-if-eth)# exit
S1AP UE لاسلكي قدرة IE حجم
في تكوين خدمة MME، يتم تكوين أحجام رسائل IE الخاصة بالقدرة اللاسلكية S1AP UE. القيمة الافتراضية هي 9000 بايت:
[context_name]host_name(config-mme-service)#
s1-mme ue-radio-cap size 9000
دراسة الحالة
وفيما يلي مثال على رسالة معلومات حول قدرة طلب/إستخدام إعداد السياق الأولي المجزأة، وهي أجزاء SCTP لتتوافق مع حجم SCTP Max MTU الذي تم تكوينه.
في تعقب المشترك، يتم إرجاع رسالة ICMP "التجزئة المطلوبة" من موجه النقل نحو MME بعد إرسال رسالة طلب إعداد سياق إلزامي مجزأة SCTP.

في الإطار 5، يتم تجميع حزم SCTP المتعددة (2) معا تحت حزمة IP واحدة:

المجموعة الأولى للبيانات هي الجزء الأخير من تلك الرسالة المجزأة، كما هو موضح بالعلامة 1 في عنصر معلومات البت الإلكترونية.

لا تعد مجموعة البيانات الثانية جزءا من رسالة مجزأة، كما هو موضح بعناصر معلومات B-Bit و E-Bit برقم 1:

تحتوي مجموعة بيانات SCTP الأولى على 1383 بايت بالطول. يبلغ طول مجموعة بيانات SCTP الثانية 89 بايت، لذلك لا تتجاوز كل حزمة SCTP فردية حجم SCTP-Max-MTU الذي تم تكوينه 1500 بايت:

نظرا لأن الحجم الإجمالي لمخطط بيانات IP الناتج، بما في ذلك حزمة SCTP ورؤوس IP أصغر من حجم IP MTU البالغ 2000 الذي تم تكوينه، يتم تجميع مجموعات SCTP هذه معا داخل حزمة IP واحدة في مستوى مكدس IP على MME.
الحل
يسمح بأحجام رسائل S1AP UE Radio Capability IE في التكوين عند القيمة الافتراضية 9000 بايت. يجب حدوث التجزئة في طبقة SCTP لحمل هذه الرسائل على مستوى أصغر من حجم SCTP Max MTU الذي تم تكوينه والذي يبلغ 1500.
يعني حجم SCTP-Max-MTU الذي يكون 1500 أن أي حزمة SCTP يتم إرسالها لا تتجاوز 1500 بايت.
يعني حجم وحدة الحد الأقصى للنقل (MTU) لواجهة IP الذي يبلغ 2000 أنه لا يمكن أن تتجاوز أي حزمة IP 2000 بايت.
يمكن أن يكون لحزمة IP واحدة حزم SCTP متعددة ويمكن أن يكون لكل حزمة SCTP مجموعات متعددة. طالما أن حجم حزمة SCTP الفردية مرتبط بحجم SCTP MTU والحجم الإجمالي لجميع حزم SCTP مجتمعة يتوافق مع حجم IP MTU، فإن العقدة تتصرف كما هو متوقع.
لا تحدث عمليات إسقاط الحزم داخل العقدة، إذا:
- يكون الحجم الإجمالي لمجموعات SCTP داخل إطارات تتبع الحزمة أقل من القيمة التي تم تكوينها لحجم SCTP-Max-MTU في SCTP-Param-Template و
- إجمالي قيمة SCTP PDU + رأس IP أقل من حجم MTU للواجهة التي تم تكوينها على العقدة.
في مثال دراسة الحالة الخاص بنا، كشف التحقيق في موجه النقل عن أن موجه النقل لديه حجم IP MTU 1500. وبما أن عقدة النقل فيما بين لها MTU 1500، تم إسقاط الحزم بواسطة واجهة IP على عقدة النقل، وطلب من موجه النقل إرسال رسالة إلى MME تشير إلى "الوجهة التي يتعذر الوصول إليها".
حلول بديلة لحل حالات السقوط
الحل # 1: تقليل الحد الأقصى لحجم وحدة الحد الأقصى للنقل (MTU) عبر بروتوكول SCTP
قم بتقليل حجم SCTP MTU من خلال تكوين حجم SCTP-Max-MTU إلى قيم أقل حتى لا ترى عمليات الإسقاط.
ملاحظة: عند خفض حجم sctp-max-mtu، تأكد أيضا من تكوين sctp-start-mtu-size على قيمة أقل من أو تساوي sctp-max-mtu-size.
مثال: تعديل sctp-param-template S1_mme_sctp (sctp-start-mtu-size من 1500 إلى 1460)،
الحل الثاني: قم بزيادة حجم عقدة النقل MTU إلى أكثر من 1500
معلومات ذات صلة