اكتشاف مسار MTU
يُعد اكتشاف وحدة الإرسال القصوى للمسار ( PMTUD ) تقنيةً قياسيةً في شبكات الحاسوب لتحديد حجم وحدة الإرسال القصوى (MTU) على مسار الشبكة بين مضيفين يستخدمان بروتوكول الإنترنت (IP)، وعادةً ما يكون الهدف منها تجنب تجزئة بروتوكول الإنترنت . صُممت PMTUD في الأصل لأجهزة التوجيه في بروتوكول الإنترنت الإصدار الرابع (IPv4). [ 1 ] ومع ذلك، تستخدمها جميع أنظمة التشغيل الحديثة على نقاط النهاية. في IPv6 ، تم تفويض هذه الوظيفة صراحةً إلى نقاط نهاية جلسة الاتصال. [ 2 ] وكامتداد لاكتشاف وحدة الإرسال القصوى للمسار القياسي، تعمل تقنية تُسمى اكتشاف وحدة الإرسال القصوى للمسار في طبقة الحزم دون دعم من بروتوكول ICMP . [ 3 ]
تطبيق
بالنسبة لحزم IPv4، تعمل آلية اكتشاف الحد الأقصى لوحدة النقل (MTU) للمسار عن طريق ضبط بتة "عدم التجزئة" (DF) في رؤوس حزم IP الصادرة. بعد ذلك، يقوم أي جهاز على طول المسار يكون الحد الأقصى لوحدة النقل (MTU) الخاص به أصغر من حجم الحزمة بإسقاطها، وإرسال رسالة " الحاجة إلى التجزئة " (النوع 3، الرمز 4) من بروتوكول رسائل التحكم في الإنترنت (ICMP) تحتوي على الحد الأقصى لوحدة النقل (MTU) الخاص به، مما يسمح للمضيف المصدر بتقليل الحد الأقصى لوحدة النقل (MTU) للمسار الخاص به وفقًا لذلك. تتكرر هذه العملية حتى يصبح الحد الأقصى لوحدة النقل (MTU) صغيرًا بما يكفي لعبور المسار بأكمله دون تجزئة.
بما أن أجهزة توجيه IPv6 لا تُجزّئ الحزم ، فلا يوجد خيار "عدم التجزئة" في ترويسة IPv6 . في IPv6، تعمل آلية اكتشاف الحد الأقصى لوحدة النقل (MTU) للمسار بافتراض مبدئيًا أن MTU للمسار هو نفسه MTU على واجهة طبقة الربط حيث ينشأ تدفق البيانات. بعد ذلك، وكما هو الحال في IPv4، أي جهاز على طول المسار يكون MTU الخاص به أصغر من حجم الحزمة سيتجاهل الحزمة ويرسل رسالة ICMPv6 " الحزمة كبيرة جدًا " (النوع 2) تحتوي على MTU الخاص به، مما يسمح للمضيف المصدر بتقليل MTU الخاص بمساره بشكل مناسب. تتكرر هذه العملية حتى يصبح MTU صغيرًا بما يكفي لعبور المسار بأكمله دون تجزئة. [ 4 ]
إذا تغيرت قيمة MTU للمسار بعد إنشاء الاتصال وأصبحت أقل من قيمة MTU المحددة مسبقًا، فإن أول حزمة كبيرة ستتسبب في خطأ ICMP، وسيتم البحث عن قيمة MTU الجديدة الأقل. أما إذا تغير المسار وكانت قيمة MTU الجديدة أكبر، فلن يعلم المصدر بهذا التغيير، لأن جميع أجهزة التوجيه على طول المسار الجديد ستكون قادرة على إعادة توجيه جميع الحزم التي يرسلها المصدر باستخدام قيمة MTU الأصلية الأقل. [ 5 ] [ 6 ] [ 4 ]
مشاكل
تقوم العديد من أجهزة أمان الشبكات بحظر جميع رسائل بروتوكول ICMP ظنًا منها أنها تُحسّن الأمان، بما في ذلك الأخطاء الضرورية لتشغيل بروتوكول PMTUD بشكل صحيح. قد يؤدي ذلك إلى اتصالات تُكمل عملية المصافحة الثلاثية لبروتوكول TCP بنجاح، ولكنها تتوقف عند محاولة نقل البيانات. تُعرف هذه الحالة باسم اتصال الثقب الأسود . [ 7 ]
تحاول بعض تطبيقات بروتوكول اكتشاف الحد الأقصى لوحدة النقل (PMTUD) تجاوز هذه المشكلة بالاستدلال على أن حزم البيانات الكبيرة قد أُسقطت بسبب وحدة النقل القصوى (MTU) وليس بسبب ازدحام الرابط. أحد هذه المخططات مُوحّد بموجب RFC 8899، وهو بروتوكول اكتشاف الحد الأقصى لوحدة النقل لطبقة حزم البيانات (DPLPMTUD). [ 3 ] عند فقدان الاتصال، يستخدم DPLPMTUD حزم اختبار ذات أحجام مُتحكّم بها لاختبار الحد الأقصى لوحدة النقل للمسار. يُشير تأكيد استلام حزمة الاختبار إلى أن الحد الأقصى لوحدة النقل للمسار يساوي على الأقل حجم تلك الحزمة. استخدام DPLPMTUD مُوحّد في بروتوكول QUIC . [ 8 ] مع ذلك، لكي تعمل بروتوكولات طبقة النقل بأقصى كفاءة، يجب السماح برسائل ICMP Unreachable (النوع 3).
توفر بعض أجهزة التوجيه، بما في ذلك نواة لينكس [ 9 ] وسيسكو [ 10 ] ، خيارًا لتقليل الحد الأقصى لحجم القطعة (MSS) المُعلن عنه في عملية المصافحة TCP كحل بديل. يُعرف هذا باسم تقييد حجم القطعة (MSS clamping ).
تظهر مشكلة أخرى عندما لا يقوم مسؤولو الشبكة بتحديث قيمة MTU بشكل صحيح بين قفزتين متجاورتين في الطبقة الثالثة، إذا كان الرابط بين هاتين القفزتين يتكون من عدة أجزاء من الطبقة الثانية مع وجود محولات بينها. عادةً ما تُؤخذ قيمة MTU على واجهة الطبقة الثالثة الصادرة من أول جزء من الطبقة الثانية. ولكن، إذا كان الجزء الثاني أو الأجزاء اللاحقة ذا قيمة MTU أقل، فإن المحول الموجود بينهما سيتجاهل الحزمة دون إرسال أي إشعار ICMP (لأن قفزات الطبقة الثالثة فقط هي التي يمكنها توليد إشعار ICMP "حزمة كبيرة جدًا"). في هذه الحالة، يجب على المسؤولين تحديث قيمة MTU لكل واجهة صادرة من الطبقة الثالثة إلى الحد الأدنى لقيمة MTU لأجزاء الطبقة الثانية المستخدمة حتى القفزة التالية في الطبقة الثالثة.
مراجع
- ↑ ج. موغول؛ س. ديرينغ (نوفمبر 1990). اكتشاف وحدة النقل القصوى للمسار . مجموعة عمل الشبكة. doi : 10.17487/RFC1191 . RFC 1191 .مشروع المعيار. عفا عليها الزمن RFC 1063 .
- ↑ ج. ماكان؛ س. ديرينغ ؛ ج. موغول (يوليو 2017). ر. هيندن (محرر). اكتشاف وحدة النقل القصوى للمسار لبروتوكول الإنترنت الإصدار 6. فريق عمل هندسة الإنترنت . doi : 10.17487/RFC8201 . STD 87. RFC 8201 .معيار الإنترنت 87. عفا عليها الزمن RFC 1981 .
- 1 2 جي. فيرهيرست؛ تي. جونز؛ إم. توكسن؛ آي. رونجلر؛ تي. فولكر (سبتمبر 2020). اكتشاف وحدة النقل القصوى (MTU) لمسار طبقة التغليف لنقل البيانات . فريق عمل هندسة الإنترنت . doi : 10.17487/RFC8899 . ISSN 2070-1721 . RFC 8899 . المعيار المقترح. تحديثات RFC 4821 و 4960 و 6951 و 8085 و 8261 .
- 1 2 ديفيز، جوزيف (2012). فهم IPv6 ( الطبعة الثالثة). ريدموند: مطبعة مايكروسوفت. الصفحات 146-147 . ISBN 978-0735659148. OCLC 810455372 .
- ↑ إي. كومر، دوغلاس (2014). الربط الشبكي باستخدام بروتوكول TCP/IP، المجلد 1 ( الطبعة السادسة). بيرسون. الصفحات 133-134 . ISBN 978-0-13-608530-0.
- ↑ انظر إلى سطر "mtu_expires" في شفرة مصدر لينكس (IPv4) وشفرة مصدر لينكس (IPv6) 10 * 60 ثانية
- ↑ ك. لاهي (سبتمبر 2000). مشاكل بروتوكول TCP مع اكتشاف وحدة النقل القصوى للمسار . مجموعة عمل الشبكة. doi : 10.17487/RFC2923 . RFC 2923 .لأغراض إعلامية.
- ↑ ج. إينجار؛ م. طومسون، محرران. (مايو 2021). QUIC: بروتوكول نقل آمن ومتعدد الإرسال قائم على UDP . فريق عمل هندسة الإنترنت . doi : 10.17487/RFC9000 . ISSN 2070-1721 . RFC 9000 . المعيار المقترح.
- ↑ "تشويه رؤوس الحزم - ويكي nftables" . wiki.nftables.org . تم الاطلاع عليه بتاريخ 2024-07-03 .
- ↑ "مفهوم تعديل MTU و MSS لبروتوكول TCP في اتصالات PPPoE عبر الإيثرنت" . سيسكو . تم الاطلاع عليه بتاريخ 3 يوليو 2024 .
- تحليل شبكات الحاسوب
- بروتوكولات الإنترنت
