تقطيع (شبكات)

من ويكيبيديا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث
مثال عن تقطيع قسم حمولة وحدة بيانات البروتوكول لينتج عنها قطع ذات طول أصغر من حمولة الوحدة الأصلية.

في بعض طبقات نموذج الاتصال المعياري لشبكات البيانات، التقطيع[1] أو التجزئة[2][3] (بالإنجليزية: Fragmentation) أو (بالإنجليزية: Segmentation)[4] هو تقسيم الحمولة في وحدة بيانات بروتوكول (PDU) إلى قطعتين أو أكثر ذات أطوال أصغر من طول الحمولة الأصلية. يحصل التقطيع عندما يكون يتجاوز طول حمولة وحدة بيانات البروتوكول عتبة محددة يحددها بروتوكول الطبقة.

التقطيع هو وظيفة أساسية لبروتوكولات طبقة الشبكة،[5][6] ولكنه قد يحصل في طبقة النقل أو في طبقة ربط البيانات أو في الطبقة المادية.[7] يهدف التقطيع بشكل الأساسي إلى توليد وحدات بيانات بروتوكول ذات أطوال أقل، لكنّه قد يُستخدم كجزء من آلية التقطيع والتوزيع في طبقة الربط (LFI)،[8] أو لتحسين الوصول إلى الوسط المادي في الطبقة المادية.[9]

نظرة عامة[عدل]

التقطيع بحسب حزمة بروتوكولات الإنترنت (TCP/IP) إذا حصل التقطيع في كل طبقة بدءاً من طبقة النقل، ولكن هذه ليست حالة إلزامية، فذلك مرتبط بالحجم الأقصى لوحدة بيانات البروتوكول المسموح به في كل طبقة.
أنماط التقطيع: (أ) التقطيع المرئي بالنسبة للبروتوكول، وفيه يمكن للبروتوكول إعادة تجميع القطع وبناء الحمولة الأصلية في عقدة ما على المسار بين المصدر والوجهة. (ب) التقطيع غير المرئي بالنسبة للبروتوكول، وفيه لا يمكن للبروتوكول إعادة تجميع القطع إلا في الوجهة النهائية.
موقع ترويسة بروتوكول التحكم بالنقل عند تقطيع رزمة بيانات لبروتوكول الإنترنت، توجد الترويسة في القطعة الأولى فقط، ويسبب ذلك ثغرة أمنية يمكن استخدامها لإطلاق هجوم التقطيع عبر بروتوكول الإنترنت.

بحسب نموذج الاتصال المعياري (OSI)، تتكون وحدة بيانات البروتوكول في كل طبقة من حمولة وترويسة،[10] والتقطيع هو تقسيم الحمولة في بعض طبقات النموذج، إلى قطعتين أو أكثر بحيث تُشكّل كل قطعةحمولة لوحدة بيانات بروتوكول أصغر من وحدة البيانات الأصلية التي تمّ تقطيعُها.[11] يحصل التقطيع في الطبقات الرابعة والثالثة والثانية والأولى من النموذج، وتحدد البروتوكولات التي تعمل في هذه الطبقات قيماً مُميزة لكل طبقة، تُستخدم كعتبة لتحديد متى يحصل التقطيع، فإذا كان طول وحدة بيانات البروتوكول أكبر من قيمة العتبة كان التقطيع إلزاميّاً.[12]

إذا كان بروتوكول النقل المستعمل يدعم التقطيع، فإنّ التقطيع في طبقة النقل لا يحصل إلا في المُضيف المصدر فقط، وهو يهدف إلى إنشاء وحدات بيانات بروتوكول ذات طول أقصر من طول الوحدة الأصلية. لإنجازالتقطيع في هذه الطبقة، يتمّ اعتبار كل ما ورد من الطبقة الأعلى حمولة، ويجري تقسيمها إلى قطع، ثُم تُغلّف القطع بترويسة البروتوكول لتُنتج وحدات بيانات بروتوكول طبقة النقل.[7] يدعم بروتوكول التحكم بالنقل عملية التقطيع، وتسمى وحدة بيانات البروتوكول الناتجة عن تغليف أقسام الحمولة السابقة بترويسات البروتوكول قطعة (بالإنجليزية: Segment)، أمّا بروتوكول حزم بيانات المستخدم فهو لا يدعم التقطيع، ويُغلّف الحمولة بإضافة ترويسته لها كما وردت، دون تقطيعها، وتسمى وحدة بيانات البروتوكول الناتجة حزمة البيانات (بالإنجليزية: Datagram). وفي الحالتين يتم تمرير وحدات بيانات البروتوكول الناتجة إلى طبقة الشبكة.[13]

التقطيع هو وظيفة أساسية لبروتوكولات الشبكة، وهو يحصل بعد اتخاذ قرار التوجيه لوحدة بيانات البروتوكول، والتي تُسمى رزمة بيانات في هذه الطبقة، وقد يكون في المُضيف المصدر الذي ولد الرزمة أو في أحد المُوجّهات على المسار، أو في كليهما. تتحدد عملية تقطيع رزمة البيانات بمقارنة طول الرزمة مع وحدة التقل الأعظمية لطبقة الشبكة، يحصل التقطيع إذا كان طول الرزمة أكبر من قيمة وحدة النقل الأعظمية، وهو يهدف إلى إنشاء رزم بيانات ذات طول أصغر من الرزمة الأصلية. يُمكن أن يحصل التقطيع أكثر من مرة على طول المسار لحين وصول الرزمة إلى وجهتها، ويُسمّى حينها بالتقطيع المُتعدد. لا يتمّ تجميع قطع الرزمة إلا في المُضيف الوجهة، والسبب في ذلك أن القطع قد لا تسلك نفس المسار، وبالتالي لن تمر عبر نفس المُوجّهات في طريقها للمضيف الوجهة.[14] تمرر طبقة الشبكة رزم البيانات إلى طبقة ربط البيانات.

يُمكن أن يحصل التقطيع في طبقة ربط البيانات، إما لإنتاج أطر بيانات ذات طول أصغر، أو كجزء من آلية التقطيع والتوزيع في طبقة الربط (بالإنجليزية: Link Fragmentation and Interleaving اختصاراً LFI). يحصل التقطيع إذا كانت طول وحدة بيانات البروتوكول في طبقة ربط البيانات، ويسمى إطار البيانات، أكبر من قيمة وحدة النقل الأعظمية للطبقة. بعض بروتوكولات الربط لا يقوم بالتقطيع في هذه الطبقة، مثل الإيثرنت، ولكنه يحدد قيمةلوحدة النقل الأعظمية، ويجب على بروتوكول الشبكة أن يلتزم بها. تفرض بعض بروتوكولات الربط قيمة أعظمية محدودة بشكلٍ مُفرط لوحدة النقل الأعظمية، مثل بروتوكول الشبكات الشخصية اللاسلكية منخفضة المُعدّل (IEEE 802.15.4) الذي يُحدد طول إطار البيانات الأعظمي ليكون (127) بايت فقط.[15] وقد يحصل التقطيع في الطبقة المادية، ولا يكون الهدف منه تقسيم وحدة بيانات البروتوكول إلى قطع أصغر، بل تحسين الوصول إلى وسط الاتصال المادي.[16]

برتبط التقطيع بعملية التغليف بشكلٍ وثيق، ويُسبب التقطيع زيادة في الطول الإجمالي للبيانات،[17] والسبب في هذه الزيادة هو الترويسات المُضافة للقطع أثناء تغليفها،[18] فإذا كانت وحدة بيانات البروتوكول الأصليّة ذات طول ما مثلاً () بايت، ناتج عن حمولة بطول () بايت وترويسة بطول () بايت حيث ()، فإنّ تقطيع قسم الحمولة إلى ثلاث قطع أطوالها () بايت بالترتيب، وإضافة ترويسة الطبقة بطول () بايت لكل قطعة، سيسبب زيادة في الطول الإجمالي للبيانات، لتبيان هذه الزيادة، يُمكن التعبير عن وحدات بيانات البروتوكول الناتجة عن التقطيع بالثلاثيات () و () و() على الترتيب. ويكون مجموع أطوال الحمولة في القطع مُساوياً لطول الحمولة في القطعة الأصلية، أي:

أمّا الطول الإجمالي، أي مجموع أطوال كل الترويسات والحمولات، فهو يزداد بمقدار ترويستين أي () بايت في هذه الحالة،[17] ويُمكن التعبير عن هذه الزيادة بشكلٍ عام بالطريقة التالية:

حيث () هي عدد القطع الناتجة عن عملية التقطيع.

بالنسبة للبروتوكول الذي يقوم بالتقطيع كإحدى وظائف الطبقة، هناك نمطين للتقطيع، بحسب توافر إمكانية تجميع الرزمة الأصلية، الأول هو التقطيع المرئي أو الملحوظ بالنسبة للبروتوكول (بالإنجليزية: Transparent Fragmentation)، وفيه يدرك البروتوكول عملية حصول التقطيع في أي نقطة في الشبكة، ونتيجة لذلك، يكون بإمكانه إعادة تجميع القطع ثم بناء حمولة الوحدة الأصلية، والثاني هو التقطيع غير المرئي أو غير الملحوظ بالنسبة للبروتوكول (بالإنجليزية: Non-Transparent Fragmentation) وفيه لا يمكن للبروتوكول أن يعيد تجميع القطع إلا في وجهتها النهائية.[19]

عند استخدام بروتوكول التحكم بالنقل كبروتوكول نقل في الشبكة، فإن فقدان قطعة واحدة من مجموعة القطع التي نتجت عن تقطيع رزمة البيانات الأصليّة سيسبب إعادة إرسال كل القطع مرة أخرى، والسبب في ذلك أن المُضيف الوجهة لا يكون قادراً على تجميع الرزمة ما لم تصل كُل قطعها، وبالتالي لن يقوم بإرسال إشعار لتأكيد الاستلام. نتيجة لذلك، في مصدر الرزمة الأصليّة، سيسبب غياب إشعار الاستلام إعادة إرسال نسخة من الرزمة الأصلية كاملة، وستمر النسخة بنفس المراحل التي مرت فيها الرزمة الأصلية، أي سيتم تقطيعها وإرسال كل القطع عبر الشبكة مرة أخرى، على الرغم من أن ما فقد هو قطعة واحدة فقط وليس كامل الرزمة.[20]

في بعض الحالات، قد يسبب استقبال حركة بيانات مكونة من عدد كبير من القطع من رزم بيانات مختلفة لا يمكن تجميعها امتلاء الذاكرة المخصصة لحفظ القطع، وقد يكون ذلك وسيلة لبدء هجوم ينتمي لعائلة من الهجمات التي تعتمد على حصول التقطيع في الشبكة، وقد تهدف إلى محاولة تجاوز نظام كشف التسلل مثلاً.[21] فالتقطيع في طبقة الشبكة يسبب ثغرة أمنية، لأن ترويسة بروتوكول طبقة النقل التي تحتوي أرقام المنافذ لن تُوجد إلا في القطعة الأولى فقط،[22] ويمكن أن يعتمد المهاجمون على غياب ترويسة بروتوكول النقل في باقي القطع لإطلاق هجوم يُعرف باسم بهجوم القطعة الصغيرة (بالإنجليزية: Tiny Segment Attack) [23] أو قد يكون الهجوم شكلاً من أشكال هجوم حجب الخدمة، من خلال محاولة ملء الذاكرة المخصصة لعملية التجميع أو استهلاك حدة المعالجة المركزية بشكلٍ مُفرط.[24]

يسبب الاعتماد على التقطيع العديد من المشاكل في الشبكة،[25] فمثلاً يجب تجميع كل أجزاء الرزمة الأصلية قبل التمكن من استعادتها، ويسبب هذا إرهاقاً لموارد المُضيف الوجهة، بالإضافة لمشكلة القطعة الأخيرة التي قد تكون ذات حجم صغير، ويسبب إرسالها عبر الشبكة استهلاكاً غير مرغوب لمورد الشبكة.[26] وأخيراً، في حال تقطيع رزم أو أطر البيانات فإنّ معلومات تخص بروتوكول الطبقات العليا، مثل أرقام المنافذ في طبقة النقل مثلاً لن تتواجد إلا في قطعة واحدة فقط، ما يعني أن جداران الحماية لا تستطيع أن تفحص هذه الرزم، ما يخلق بدوره ثغرة أمنية.[20]

آلية العمل[عدل]

مفهوم الإزاحة[عدل]

مفهوم الإزاحة عند تقطيع وحدة بيانات بروتوكول.

إزاحة القطعة (بالإنجليزية: Fragment Offset) هي قيمة تنتج أثناء عملية تقطيع حمولة وحدة بيانات بروتوكول، تحدد هذه القيمة الموقع النسبي لقطعة محددة بالنسبة لبقية القطع ضمن الحمولة الأصلية.[27] إنّ قيمة الإزاحة ضرورية لإنجاز عملية إعادة التجميع وبدونها لا يمكن إعادة تجميع القطع بالترتيب الصحيح لإعادة إنتاج وحدة بيانات البروتوكول الأصلية التي تمّ تقطيعها.

تكون إزاحة القطعة الأولى مساوية للصفر دوماً.[28] في حال حصول تقطيع متعدد، فإن قيمة الإزاحة تشير دائماً إلى موقع القطعة الجديدة بالنسبة إلى الرزمة الأصلية في مرحلة التقطيع الأولى.

إعادة التجميع[عدل]

خورازميات تجميع القطع المتراكبة بحسب تسلسل ورودها الزمني، إما باعتماد ما يرد أولاً عند التجميع أو ما يرد أخيراً.

إعادة التجميع (بالإنجليزية: Reassembly) أو (بالإنجليزية: Defragmentation) هي آلية لإعادة إنشاء وحدة بيانات البروتوكول الأصلية انطلاقاً من القطع، وتتطلب عملية إعادة التجميع استقبال جميع القطع أولاً، والتي قد تصل بترتيب مختلف لترتيبها ضمن الوحدة الأصلية، ثُمّ يجب تحديد موقع القطع النسبي ضمن وحدة بيانات البروتوكول الأصلية، وأخيراً، يتم استخلاص حمولة القطع والتخلص من الترويسات، ثم يجري رصف القطع مع بعضها البعض بالترتيب الصحيح لإعادة إنشاء وحدة بيانات البروتوكول الأصلية.[11]

تحصل عملية إعادة تجميع الأطر محليّاً في الوجهة التالية مباشرة في مسار حركة البيانات، ولا تغادر قطع الإطار الشبكة المحلية، أمّا رزم البيانات فيجري تجميعها في الوجهة النهائية لحركة البيانات، لأن رزم بيانات مختلفة ناتجة عن تقطيع رزمة بيانات واحدة قد تسلك مسارات مختلفة لتصل إلى وجهتها، واختلاف المسارات يعني عدم إمكانية التجميع إلا في الوجهة النهائية،[29] على الرغم من إمكانيّة التقطيع المتعدد في أي نقطة على مسار الرزم.

قد تسمح خوارزمية التقطيع بإنشاء قطع مُتراكبة، أي أن أجزاء من الحمولة من توجد في أكثر من قطعة، ويسبب ذلك تنوعاً في خوارزميات إعادة التجميع، فبعض الخوارزميات تعتمد الأجزاء التي وردت أولاً، وتهمل أجزاء القطع المكررة التي ترد لاحقاً، وهناك خوازميات أخرى تقوم بالعكس، فهي تعتمد الأجزاء الأحدث وصولاً عند إعادة التجميع، وتهمل أجزاء القطع المكررة التي وردت سابقاً، وهناك خوارزميات أخرى تأخد أيضاً إزاحة القطعة بالحسبان.[30]

وصفت خوارزميات إعادة تجميع رزم بيانات الإصدار الرابع من بروتوكول الإنترنت في وثيقة طلب التعليقات (RFC 815).[31]

التقطيع المتعدد[عدل]

مثال عن عملية تقطيع مُتعدد لرزمة بيانات في شبكة حاسوب، يجري توجيه الرزمة من المصدر إلى الوجهة، ويتمّ تقطيعها مرتين، ثُمّ تسلك القطع مسارات مُختلفة ليصار إلى إعادة تجميعها في الوجهة.[32]

التقطيع المُتعدد هو تقسيم وحدة بيانات البروتوكول أكثر من مرة أثناء سلوكها المسار بين مصدرها ووجهتها، يحصل التقطيع المُتعدد لرزم بيانات الإصدار الرابع من بروتوكول الإنترنت، وينتج عنه رزم بيانات أصغر في كل مرة. لا يُوجد عدد محدد لمرات التقطيع المُمكنة، وطالما أن الرزمة تحتوي قسم بيانات قابل للتقطيع، فبالإمكان تقطيعها، لكن ذلك يؤثر على أداء الشبكة.

في كل مرة يتم فيها التقطيع يجب تحديد إزاحة القطع الجديدة، أي موقعها، بالنسبة لرزمة البيانات الأصلية في المصدر، وليس بالنسبة لرزمة البيانات التي جرى تقطيعها في هذه المرحلة،[33] ونتيجة لذلك، وبما أن إعادة تجميع الرزم لا تحصل إلا في الوجهة النهائيّة، فإن تلك الوجهة قد تستقبل قطعاً مُختلفة الطول. فإنّ سلكت الرزم مساراً مُختلفاً بين المصدر والوجهة، فقد يتمّ تقطيعها بشكلٍ مُتعدد بحسب مسارها، وبالتالي فإن عدد القطع الناتجة يتعلق بالمسار المسلوك، أمّا قيمة إزاحة القطع لإعادة بناء الرزمة الأصلية فيجب أن تدل على موقع القطعة في الرزمة الأصلية بغض النظر عن المسار التي سلكته.

لتجنب التقطيع المتعدد، هناك ميزة إضافية للإصدار الرابع من بروتوكول الإنترنت هي ميزة اكتشاف وحدة النقل الأعظمية للمسار، وهي تعتمد على بروتوكول رسائل التحكم في الإنترنت، وموصوفة في وثيقة طلب التعليقات (RFC 1191).[34] أمّا في العُقد التي تُشغّل الإصدار السادس من بروتوكول الإنترنت، فإنّها غالباً ما تدعم هذه التقنية بشكلٍ افتراضي، وقد أُشير إليها في معيار البروتوكول الأصلي، ووصفت بشكل مفصل في وثيقة طلب التعليقات (RFC 8201).[35]

اكتشاف وحدة النقل الأعظمية للمسار[عدل]

اكتشاف وحدة النقل الأعظمية للمسار (بالإنجليزية: Path Maximum Transmission Unit Discovery اختصاراً PMTUD) هي آليّة تستخدم في المُضيف المصدر، لتحديد أدنى قيمة لوحدة النقل الأعظمية على طول مسار ما، وبالتالي توليد رزم بيانات بأطوال متوافقة معها، بحيث لا يعود هناك حاجة لتقطيع الرزم أثناء حركتها على المسار من المصدر إلى الوجهة.[36] قد لا يتمكن المصدر من تحديد حجم النقل الأعظمي الأدنى بدقة، ولكن استعمال هذه الآليّة يساعده على توليد رزم بيانات ذات أطوال أقل أو تساوي أدنى قيمة لحجم النقل الأعظمي على طول المسار.[25]

إذا استُخدم الإصدار الرابع من بروتوكول الإنترنت كبروتوكول شبكة، فإنّ آليّة الاكتشاف الخاصّة به هي توسيعة إضافية تعتمد على بروتوكول رسائل التحكم في الإنترنت،(1) وعلى علم عدم التقطيع في ترويسة البروتوكول.[37] تعتمد الآليّة على قيام المصدر بتوليد رزم بيانات بأطوال متغيرة مع رفع علم عدم التقطيع فيها، فإنّ لم يكن بالإمكان نقل الرزمة عبر شبكة ما بسبب حجمها يجري التخلص منها، ثُمّ إعلام المصدر بذلك عن طريق رسالة مُناسبة من رسائل بروتوكول التحكم في شبكة الإنترنت.[34]

إذا استخدم الإصدار السادس من بروتوكول الإنترنت كبروتوكول شبكة، فإنّ آليّة الاكتشاف الخاصة به هي جزء مُدمج منه، ولابد من استعمالها قبل إرسال أي رزمة حتى لو كان المضيف المصدر يعتقد أن الوجهة موجودة في نفس الشبكة المحلية. تعتمد هذه الآلية على بروتوكول رسائل التحكم للإصدار السادس من بروتوكول الإنترنت،(2) وبالتحديد رسالة "رزمة كبيرة جداً" والتي تُرسلها عقدة ما على المسار، وتكون وجهة الرسالة هي مصدر رزمة بيانات لم تتمكن العقدة من إرسالها نحو الخطوة التالية على المسار، وذلك بسبب طولها، يجب على المصدر عندها أن يُعيد ضبط أطوال الرزم التي يُرسلها اعتماداً على هذه ما جاء في هذه الرسالة.[35]

التقطيع في طبقة النقل[عدل]

إنّ التقطيع ليس وظيفة إلزامية لبروتوكولات طبقة النقل، ولكن يساعد إنجاز عملية تقطيع مناسبة في هذه الطبقة في المضيف المصدر على تجنب أي عمليات تقطيع لاحقة سواءً في الطبقات الدنيا من نموذج الشبكة المستعمل في المضيف المصدر، أو في عقد الشبكات على طول المسار، ويؤثر ذلك بشكل مباشر على الأداء.[38] يدعم بروتوكول التحكم بالنقل آلية لتقطيع حمولة وحدة البيانات، وتسمى الوحدات الجديدة الناتجة عن التقطيع والتغليف قطعاً (بالإنجليزية: Segment[39] في حين لا يقوم بروتوكول حزم بيانات المستخدم بعملية التقطيع، وعند استخدامه يجب أن تقوم التطبيقات بتوليد البيانات بشكل متقطع بطريقة يمكن من خلالها لطبقة الشبكة أن تقوم بتوليد رزم البيانات بناء على هذه القطع.[40]

التقطيع في بروتوكول التحكم بالنقل[عدل]

في بروتوكول التحكم بالنقل هناك مفهوم خاص مُرتبط بالتقطيع هو مقاس القطعة الأعظمي (بالإنجليزية: Maximum Segment Size اختصاراً MSS) وهو يحدد الحمولة أو حجم البيانات التي يمكن لمُضيف ما أن يستقبله ضمن قطعة واحدة، يجب الإنتباه إلى أن ترويسة بروتوكول التحكم بالنقل غير مُشمولة ضمن مقاس القطعة الأعظمي، على عكس وحدة النقل الأعظمية الخاصة بطبقة الشبكة، التي تشمل ترويسة بروتوكول الشبكة بالإضافة للحمولة في وحدة بيانات بروتوكول تلك الطبقة.[41][42]

إنّ اختيار مقاس القطعة الأعظمي الخاص ببروتوكول التحكم بالنقل يُؤثّر بشكل مباشر على عملية تقطيع رزم البيانات في طبقة الشبكة، فإذا كانت القيمة كبيرة جداً، كان التقطيع في طبقة الشبكة إلزاميّاً، أمّا إذا كانت صغيرة جداً، فلا يحصل تقطيع أبداً، ولكن الكلفة غير المباشرة (Overhead) لذلك ستكون باهظة ومُؤثّرة على فعاليّة الإرسال، بسبب وجود حمل إضافي كبير هو مجموع أطوال الترويسات المُضافة إلى الرزم الصغيرة.[23] يتم التحكّم بمقاس القطعة الأعظمي في بروتوكول التحكم بالنقل بشكل آليّ لتكون مُتوافقة مع قيمة النافذة المنزلقة الخاصة بالاتصال الذي قام البروتوكول بإنشائه.[43]

إنّ القيمة الافتراضية لمقاس القطعة الأعظمي هي (536) بايت،[44] وهي تضبط بشكل مستقل لكل طرف، ويمكن التفاوض على قيمتها في الاتجاهين بين الطرفين عند إنشاء الاتصال، ولكن لا يمكن تغييرها بعد ذلك.[45]

التقطيع في طبقة الشبكة[عدل]

قيم وحدة النقل الأعظمية لبروتوكولات التشبيك.(3)
اسم البروتوكول اختصار حجم وحدة النقل الأعظمية الأعظمي (بايت) حجم وحدة النقل الأعظمية الأدنى (بايت) المرجع
الإصدار الرابع من بروتوكول الإنترنت IPv4 65536 68 [46]
الإصدار السادس من بروتوكول الإنترنت IPv6 65576 [a] 1280 [47]
مُلاحظات
  1. ^ لم يرد ذكر الرقم بشكل صريح في معيار البروتوكول، ولكن يُمكن حسابه من مجموع الطول الأعظمي المسموح للحمولة وهو (65536) بايت، مع طول الترويسة (40) بايت.

إنّ تقطيع رزم البيانات وإعادة تجميعها هو وظيفة رئيسية لبروتوكولات الشبكة.[5][6] يدعم الإصداران الرابع[46] والسادس[47] من بروتوكول الإنترنت تقطيع حمولة رزم البيانات التي يتجاوز طولها قيمة محددة، إلى قطع تُستعمل لإنشاء رزم بيانات ذات أطوال أصغر من الرزمة الأصلية. تمرر الرزم المُقطعة إلى طبقة ربط البيانات ليصار إلى تغليفها وإنشاء أطر البيانات.

التقطيع في الإصدار الرابع من بروتوكول الإنترنت[عدل]

يكون تقطيع رزمة بيانات الإصدار الرابع من بروتوكول الإنترنت (بالإنجليزية: IP Fragmentation) ضروريّاً عندما يتم توليدها في شبكة محلية أُولى تسمح بحجم كبير لوحدة النقل الأعظمية الخاصة بطقبة الشبكة، لكنّ مسار الرزمة يقطع شبكة ثانية يكون حجم وحدة النقل الأعظمية فيها أصغر بالقيمة، وعندها لابد من تقطيع الرزمة في عقدة ما على المسار من أجل أن تصل إلى وجهتها. نتيجة لذلك، يتم توليد رزم بيانات بأطوال أصغر من طول الرزمة الأصلية.[48]

يمكن أن تحصل عملية تقطيع الرزم في المُضيف المصدر الذي يُولّدها، أو في أي عقدة على مسارها نحو وجهتها، ويدعم البروتوكول أيضاً مفهوم التقطيع المتعدد، أي يمكن أن يتم تقطيع رزمة البيانات أكثر من مرة عبر مسارها، ولكن لا يمكن إعادة تجميع الرزمة الأصلية إلا في الوجهة النهائية.[29]

ترويسة البروتوكول[عدل]

رزمة بيانات الإصدار الرابع من بروتوكول الإنترنت (IPv4)، ويمكن تبين الحقول المرتبطة بعملية التقطيع وهي حقول مُعرّف القطعة والأعلام وإزاحة القطعة.
حقل الأعلام في ترويسة الإصدار الرابع من بروتوكول الإنترنت، هناك علمين هما علم عدم التقطيع وعلم المزيد من القطع.

تتكون ترويسة الإصدار الرابع من بروتوكول الإنترنت من (14) حقلاً،[46] لا ترتبط جميعها بعملية التقطيع. الحقول المُرتبطة بعملية التقطيع هي حقل مُعرّف القطعة، وحقل الأعلام وحقل الإزاحة، كما تتأثر قيمة حقلي الطول الإجمالي والتحقق الجمعي بعملية التقطيع وتختلف قيمتها في القطع عن قيمتها في الرزمة الأصلية،[49] بعض الخيارات تُنسخ لكل قطعة، وبعضها لا يُنسخ إلا للقطعة الأولى، ويتحدد ذلك بعلم خاص هو علم النسخ (بالإنجليزية: Copied flag) الذي يوجد في بداية كل خيار.[50]

يمكن للمضيف المصدر أن يُؤشّر الرزم التي لا يريدها أن تُقطّع برفع علم عدم التقطيع، في هذه الحالة لا يتم تقطيع الرزمة أبداً، وفي حال تعذّر إيصال الرزمة بدون تقطيعها، فسيتم التخلص منها.[28] إذا تمّ تقطيع رزمة البيانات في المصدر أو في أي عقدة على المسار فلابد من إعادة تجميع القطع الناتجة في المُضيف الوجهة، ولا يتمّ تجميع قطع الرزمة في أي عقدة على المسار. يُستخدم حقل المُعرّف لتمييز رزمة البيانات الأصلية وجميع القطع الناتجة عن عملية التقطيع، ويقوم المُضيف الوجهة باستعمال هذا الحقل للتمييز بين مجموعات القطع الناتجة عن تقطيع رزم بيانات مختلفة بغرض إعادة تجميعها.[51]

لإعادة تشكيل رزمة البيانات الأصلية، يجب أن يعرف المُضيف الوجهة موقع حمولة القطعة بالنسبة للحمولة الأصلية، ولتحقيق ذلك، هناك حقل خاص في ترويسة البروتوكول هو حقل إزاحة القطعة، وهو يدل على الموقع النسبي لحمولة القطعة قي الرزمة الأصلية. وعند تشكيل الرزمة الأصلية في الوجهة يتم ضبط قيمة حقل الإزاحة فيها إلى الصفر، إذا خضعت الحمولة للتقطيع المتعدد على طول المسار، فإن فيمة الإزاحة تدل دوماً على الموقع النسبي في الرزمة الأصلية، وليس في قطعة ما، مهما تعددت مراحل التقطيع.

حقول ترويسة البروتوكول المُستخدمة في عملية التقطيع:[46]

  • حقل مُعرّف القطعة، طوله (16) بت ويحتوي على قيمة فريدة تُعرف رزمة البيانات الأصلية وجميع القطع الناتجة عن تقطيعها، وهو يستخدم في عملية إعادة التجميع لتمييز قطع الرزم الأصلية عن قطع بقية الرزمة.[51]
  • حقل الأعلام، طوله (3) بت مقسم بالشكل التالي:
    • البت (0)، محجوز، لا يُستخدم، قيمته دائماً هي 0.
    • البت (1)، علم عدم التقطيع (بالإنجليزية: Do not Fragment Flag اختصاراً DF)، يستخدم من قبل مصدر الرزمة للإشارة إلى ضرورة عدم تقطيع الرزمة،[52] تقوم الموجهات على كامل مسار الرزمة بالالتزام بذلك، وإذا كانت قيمة هذا البت مساوية للواحد، فلن يتم تقطيع الرزمة أبداً حتى لو أدى ذلك إلى التخلص منها لعدم إمكانية توجيهها.[28]
    • البت (2)، علم المزيد من القطع (بالإنجليزية: More Fragment Flag اختصاراً MF) يستخدم لتمييز القطعة الأخيرة، إذا كانت قيمته (1) فهذا يعني أن هناك قطع أخرى نتجت بعد هذه القطعة من عملية تقطيع الرزمة الأصلية، أما إذا كانت قيمته (0)، فهذا يعني أن هذه القطعة هي آخر قطعة نتجت عن عملية تقطيع الرزمة.
  • حقل إزاحة القطعة، طوله (13) بت، ويحتوي على قيمة تدل على موقع القطعة النسبي بالنسبة لبقية القطع في الرزمة الأصلية، تكون قيمة الإزاحة مقسومة على ثمانية، اي إذا احتوى الحقل القيمة (1) فإن قيمة الإزاحة الحقيقية هي (8) بايت، وإذا احتوى (2) فإن قيمة الإزاحة الحقيقية هي (16)، وأكبر قيمة ممكن للإزاحة في هذا الحقل هي: 213=8192، وتقابل (65536) بايت.[53]

يجب عدم الخلط بين حقلي المُعرّف وإزاحة القطعة في ترويسة بروتوكول الإنترنت، فحقل المُعرّف هو قيمة مميزة تُعرّف بشكلٍ فريد رزمة البيانات الأصلية وكل القطع الناتجة عن عملية التقطيع سواء تم كمرحلة واحدة أو كان متعدداً، أما حقل الإزاحة فهو يمثل الموقع النسبي للقطعة الناتجة بالنسبة لبقية القطع ضكن رزمة البيانات الأصلية.[54]

خوارزمية التقطيع[عدل]

خوارزمية تقطيع رزم البيانات في الإصدار الرابع من بروتوكول الإنترنت.

وصفت خوارزمية التقطيع في محددات البروتوكول، وهي تتبع المراحل التالية:[46]

  1. تحديد طول الرزمة ومقارنته مع وحدة النقل الأعظمية الخاصّة بالشبكة التي سيتم توجيه الرزمة إليها:
    1. إذا كان طول الرزمة أكبر من وحدة النقل الأعظمية، يجب أن يتم تقطيع الرزمة.
    2. إذا كان طول الرزمة أصغر أو يساوي وحدة النقل الأعظمية يتم إرسال الرزمة كما هي إلى المرحلة التالية من التغليف.
  2. إذا كان علم عدم التقطيع في الرزمة مرفوعاً، يتمّ التخلّص من الرزمة.
  3. يجري تحديد حجم حمولة القطعة بحسب وحدة النقل الأعظمية وطول ترويسة بروتوكول الإنترنت.
  4. يتم اقتطاع حمولة القطعة من حمولة الرزمة الأصلية.
  5. يتم بناء ترويسة القطعة، ويشمل ذلك:
    1. حساب طول ترويسة القطعة وإضافته إلى الحقل المخصص.
    2. حساب طول القطعة الإجمالي وإضافته إلى الحقل المخصص.
    3. تحديد زمن حياة القطعة.
    4. ضبط قيمة مُعرّف القطعة إلى قيمة مُعرّف الرزمة الأصلية.
    5. تحديد قيمة الإزاحة، وإضافتها إلى الحقل المخصص.
    6. تحديد قيمة العلمين. وإضافتهما إلى الحقل المخصص.
    7. حساب قيمة حقل التحقق الجمعي.
  6. توليد الرزمة الجديدة من خلال تغليف قطعة البيانات بالترويسة.
  7. تحديد فيما إذا كانت الرزمة الناتجة هي الرزمة الأخيرة بقراءة قيمة علم المزيد من القطع:
    1. إذا كانت الرزمة الناتجة هي الرزمة الأخيرة، يتم إرسالها إلى المرحلة التالية من التغليف.
    2. إذا لم تكن الرزمة الناتجة هي الرزمة الأخيرة، يتم إعادة تنفيذ الخوارزمية بدءاً من الخطوة الثالثة، مع اعتبار أن حجم حمولة الرزمة الأصلية هو الحجم المتبقي من عملية الاقتطاع السابقة.

قضايا أمنية[عدل]

طوّر المهاجمون عدد من الهجمات التي تعتمد على التقطيع أو ثغرة أمنية قد تنتج عن استخدامه، من هذه الهجمات:

  • هجوم القطع المتراكبة (بالإنجليزية: Overlapping Fragment Attack)[56] يعتمد هذا الهجوم على خوارزمية إعادة التجميع المُتبعة لإعادة تشكيل الرزمة الأصلية، حيث يمكن لأي قطعة تالية أن تتراكب مع قطعة أخرى سابقة، وتحل محلها جزئياً أو كلياً، ويعني ذلك وجود ثغرة أمنية، حيث بالإمكان تمرير القطعة الأولى، التي تحتوي ترويسة بروتوكول الإنترنت من جدار الحماية بشكل شرعي، ثُمّ التلاعب بقيمتها عن طريقة التراكب مع قطعة تالية.[57] على الرغم من التحسينات التي طرأت على خوارزمية إعادة التجميع، إلا أن الوثائق المعيارية للخوارزمية لم تتناول هذا الهجوم.[58]

نُوقشت هذه الهجمات وطريقة التصدي لكل منها بالتفصيل في وثيقة طلب التعليقات (RFC 1858).[23]

أمثلة[عدل]

مثال عن عملية التقطيع المتعدد في الإصدار الرابع من بروتوكول الإنترنت. يحصل التقطيع على مرحلتين في الأولى تكون وحدة النقل الأعظمية 4000 بايت، وفي الثانية 2500 بايت.[17]

في هذا المثال، يُفترض أن طول ترويسة الإصدار الرابع من بروتوكول الإنترنت هي (20) بايت، أي لا يوجد أي خيارات إضافية. إنّ قيمة وحدة النقل الأعظمية الخاصة بطبقة الشبكة هو (1500) بايت، ويجري التقطيع على مرحلة واحدة فقط لرزمة بيانات طولها الإجمالي هو (5140) بايت، أي أنها مكونة من حمولة هي (5120) وترويسة هي (20) بايت وقيمة المُعرّف في ترويسة بروتوكول الإنترنت فيها هو (345).[18]

إنّ حجم الحمولة الأكثر مُلائمة لحجم وحدة النقل الأعظمية هو (1480) بايت، وهو يسمح بتشكيل رزمة بيانات ذات طول مُطابق تماماً لحجم وحدة النقل الأعظمية من خلال تغليف الحمولة (1480) بترويسة البروتوكول (20)، ليكون طول الرزمة الأولى الإجمالي هو (1500) بايت، وإزاحتها هي (0) لأنّها تحتوي على القطعة الأولى،[28] ويجب أن يضبط علم المزيد من القطع إلى القيمة (1) لأن عملية التقطيع مستمرة، وقيمة المعرف إلى القيمة (345)، وهي معرف الرزمة الأصلية نفسه، وعلم عدم التقطيع إلى القيمة (0) لأن المطلوب هو أن يكون التقطيع على مرحلة واحدة فقط. إنّ حجم الحمولة المُتبقية بعد اقتطاع القطعة الأولى هو (3640=1480-5120) بايت.

بشكلٍ مُشابه لإنتاج الرزمة الأولى، يتم اقتطاع (1480) بايت من الحمولة المُتبقية، ويتمّ تغليفها بترويسة البروتوكول المناسبة التي تكون قيم حقولها الخاصة بالتقطيع مُشابهة لحقول ترويسة الرزمة الأولى باستثناء قيمة حقل الإزاحة الذي يتمّ ضبطه إلى القيمة (185=1480/8). وتكون الحمولة المُتبقية بعد إنشاء القطعة اقتطاع الثانية هي (2160=1480-3640). ثُمّ، وبشكلٍ مُشابه يتم اقتطاع القطعة الثالثة، ويجري تغليفها بترويسة البروتوكول المُناسبة التي تكون قيم حقولها الخاصّة بالتقطيع مُشابهة لحقول ترويسة الرزمة الأولى باستثناء قيمة حقل الإزاحة الذي يتم ضبطه إلى القيمة (370=8/(1480+1480)) وتكون الحمولة المتبقية بعد إنشاء القطعة اقتطاع الثالثة هي (680=1480-2160) بايت.

تُشكّل الحمولة المُتبقية القطعة الأخيرة، وتُغلّف بترويسة بروتوكول الإنترنت ليصبح الطول الإجمالي للرزمة الناتجة (700) بايت، ويجب أن يتم ضبط علم المزيد من القطع إلى القيمة (0) لأنّها القطعة الأخيرة، وحقل الإزاحة إلى القيمة (555=8/(1480+1480+1480))، بينما تكون قيم بقية الحقول الخاصة بالتقطيع في الترويسة مُطابقة للقيم في ترويسات الرزم السابقة.

جدول بقيم حقول الترويسات في الرزمة الأصلية قبل التقطيع وفي الرزم الناتجة عن التقطيع.
بعض حقول ترويسة الرزمة الأصلية قبل التقطيع
- حقل مُعرف القطعة حقل الطول الإجمالي (بايت) علم عدم التقطيع علم المزيد من القطع حقل الإزاحة
- 345 5140 0 0 0
بعض حقول ترويسات الرزم الناتجة عن التقطيع
رقم القطعة حقل مُعرف القطعة حقل الطول الإجمالي (بايت) علم عدم التقطيع علم المزيد من القطع حقل الإزاحة
1 345 1500 1 1 0
2 345 1500 1 1 185
3 345 1500 1 1 370
4 345 700 1 0 555

إنّ مجموع أطوال الرزم الناتجة عن عملية التقطيع هو (5200) بايت، وهو أكبر من طول الرزمة الأصلية بمقدار (60) بايتاً أو (1.15)%، وهي حمولة إضافية تنتج عن إضافة الترويسات للقطع الناجمة عن عملية التقطيع.

التقطيع في الإصدار السادس من بروتوكول الإنترنت[عدل]

إن تقطيع رزم البيانات التي يتجاوز طولها قيمة محددة بواحدة النقل الأعظمية لطبقة الشبكة هي وظيفة أساسيّة للإصدار السادس من بروتوكول الإنترنت.[47] بشكلٍ مشابه للإصدار الرابع من بروتوكول الإنترنت، يقوم الإصدار السادس بتقطيع حمولة رزمة بيانات لإنقاص طولها، وينتج عن ذلك مجموعة من القطع التي تستعمل لتنتج رزم بيانات جديدة، أطوالها أقل أو تساوي قيمة وحدة النقل الأعظيمة. ولكن على عكس الإصدار الرابع من بروتوكول الإنترنت، في الإصدار السادس، لا يحدث التقطيع إلا في المُضيف المصدر فقط، ولا تقوم المُوجّهات بتقطيع رزمة بيانات الإصدار السادس تحت أي ظرف،[59] لذلك فإن معرفة وحدة النقل الأعظمية للمسار هي عملية ذات أهمية خاصة في البروتوكول، وإذا لم يتمكن البروتوكول من تحديدها فإنّه يعتمد أدنى طول مسموح لرزمة البيانات وهو (1260) بايت.[60]

ترويسة القطعة[عدل]

لا تحتوي ترويسة البروتوكول الأساسية على حقول خاصة بعملية التقطيع، ولكن هناك ترويسة أخرى خاصة بالتقطيع تسمى ترويسة القطعة (بالإنجليزية: Fragment Header) يقوم البروتوكول بإضافتها في حال تقطيع الرزمة، إذا أضيفت هذه الترويسة بعد الترويسة الأساسية، يحب أن تكون قيمة حقل "الترويسة التالية" في ترويسة البروتوكول الأصلية مضبوطة إلى القيمة (44).[61]

يبلغ طول ترويسة القطعة (8) بايت، وتتألف من 6 حقول، هي بحسب ترتيب وردوها:[47]

  • حقل الترويسة التالية (8) بت، ويضبط بشكل مشابه لحقل الترويسة التالية في ترويسة البروتوكول الأصلية.
  • حقل محجوز (8) بت، يضبط إلى القيمة (0) عند الإرسال.
  • حقل إزاحة القطعة (13) بت، يحتوي على موقع حمولة القطعة النسبي ضمن حمولة الرزمة الأصلية، وتعبر قيمة الرقم الموجود عن الإزاحة بواحد هي (8) بايت، فإذا كانت قيمة هذا الحقل مثلاً هي (2)، فإن إزاحة القطعة الحقيقية هي (16) بايت.
  • حقل محجوز (2) بت، يُضبط إلى القيمة (0) عند الإرسال.
  • علم المزيد من القطع (1) بت، ويستخدم للدلالة على القطعة الأخيرة، إذا كانت قيمته (1)، فهذا يعني أن هناك قطع لاحقة نتجت عن عملية التقطيع، أما إذا كانت قيمته (0) فذلك يعني بأن هذه القطعة هي القطعة الأخيرة.
  • حقل مُعرّف القطعة (32) بت، وهي يحتوي قيمة فريدة تميّز الرزمة الأصلية وجميع القطع التي نتجت عن تقطيعها. هناك عدة خوارزميات لاختيار قيمة المعرّف بحيث يكون فريداً وآمناً، وهي موصوفة في وثيقة طلب التعليقات (RFC 7739).[62]

خوارزمية التقطيع[عدل]

خوارزمية التقطيع في الإصدار السادس من بروتوكول الإنترنت.

تتألف رزمة بيانات الإصدار السادس من بروتوكول الإنترنت من ترويسة البروتوكول الأساسية، ومجموعة من التوسيعات التي تشمل خيارات إضافية أو ترويسات مُحددة لابد من معالجتها في كل عقدة على المسار، بالإضافة إلى قسم الحمولة الذي يضمّ ترويسات الطبقات العليا، ويكون التقطيع إلزامياً عندما يتجاوز طول الرزمة قيمة وحدة النقل الأعظمية، والتي غالباً ما تكون وحدة النقل الأعظمية الدنيا للمسار الذي ستسلكه رزمة البيانات، بخلاف ذلك، تُضبط القيمة بشكلٍ آلي القيمة الدنيا المدعومة لوحدة النقل الأعظمية في أسوء الحالات وهي (1280) بايت.[63] وُصفت خوارزمية التقطيع في وثيقة طلب التعليقات الخاصة بالبروتوكول.[47]

تتم عملية التقطيع بتقسيم حمولة الرزمة الأصلية إلى عدد من القطع، بحيث لا يزيد طول الرزمة الناتجة عن إضافة ترويسة القطعة و ترويسة البروتوكول والتوسيعات إلى أي من القطع عن وحدة النقل الأعظمية. تكون أطوال القطع الناتجة من مرتبة (8) بايت، أي أن أصغر حمولة قطعة يكون طولها (8) بايت، وثاني أصغر قطعة تكون بطول (16) بايت وهكذا، وتلتزم كل القطع بذلك فيما عدا القطعة الأخيرة.

بشكلٍ عام تنتج عن عملية التقطيع ثلاث حالات مختلفة:[64]

  • الرزمة الأولى: وتضم ترويسة البروتوكول والتوسيعات والترويسات الإضافية بالإضافة لترويسة القطعة، والقطعة الأولى من الحمولة، والتي تضم ترويسات الطبقات العليا،[65] ويكون الطول الكليّ مُطابقاً أو قريباً من طول وحدة النقل الأعظمية. يكون مُعرّف هذه الرزمة مُطابقاً لمعرف الرزمة الأصلية، ويُرفع فيها علم المزيد من القطع وتكون إزاحتها مساوية للصفر.[28]
  • رزم وسطيّة: تظهر الرزم الوسطية إذا كان عدد القطع التانجة أكثر من اثنين، تضم الرزمة الوسطية ترويسة البروتوكول والتوسيعات وترويسة القطعة، وقطعة من الحمولة، ويكون الطول الكلي مُطابقاً أو قريباً من طول وحدة النقل الأعظميّة. يكون مُعرّف هذه الرزمة مطابقاً لمعرف الرزمة الأصلية، ويُرفع فيها علم المزيد من القطع وتختلف قيمة الإزاحة فيها بحسب الموقع النسبي لقطعة الحمولة في الرزمة الأصلية.
  • الرزمة الأخيرة: وتضمّ ترويسة البروتوكول والتوسيعات وترويسة القطعة، وآحر قطعة من الحمولة، ويكون مُعرّف هذه الرزمة مُطابقاً لمعرف الرزمة الأصلية، ولا يُرفع فيها علم المزيد من القطع،[66] وتضبط قيمة الإزاحة فيها بحسب الموقع النسبي لقطعة الحمولة في الرزمة الأصلية. وليس بالضرورة أن يكون طول الرزمة الأخيرة الكلي مُطابقاً أو قريباً من طول وحدة النقل الأعظمية، وغالباً ما تكون ذات حجم صغير غير مناسب.[26]

قضايا أمنية[عدل]

ينتج عن استخدام التقطيع في الإصدار السادس من بروتوكول الإنترنت عدد من الثغرات أمنيّة التي قد تستخدم لشن هجمات مثل هجوم القطعة الصغيرة أو هجوم القطع المتراكبة، وتختلف إمكانية شن الهجمات بحسب نظام التشغيل الذي يستعمل البروتوكول.[67] بشكلٍ مُشابه للإصدار الرابع من بروتوكول الإنترنت، لم تمنع مُحددات الإصدار السادس إنشاء قطع متراكبة عند التقطيع، أي من الممكن أن يتكرار نفس المقطع من الحمولة في أكثر من قطعة، على أن يُعتمد المقطع الوارد في آخر قطعة تمّ استقبالها عند التجميع، يسبب ذلك ثغرة أمنية، ويسمح بتنفيذ هجوم القطع المتراكبة، لاحقاً تمّ التأكيد بوضوح على منع تراكب القطع عند التقطيع في وثيقة طلب التعليقات (RFC 5722).[68]

يقبل مُضيف الإصدار السادس من بروتوكول الإنترنت أن تحتوي رزمة البيانات على ترويسة القطعة بدون تكون القطعة ناتجة عن عملية تقطيع، وتسمى هذه القطع بالقطع الذرية (بالإنجليزية: Atomic Fragment) وهي تنتج في حالات خاصة ناقشها المعيار الأصلي للبروتوكول،[47] على الرغم من أن هذه القطع تكون وحداناً، أي لا يجب أن يتم تجميعها مع أي قطع أخرى، فإنّ المُضيف الوجهة يعاملها مُعاملة القطع التي تنتظر التجميع، ما يُسبب ثغرة أمنية، فقد يقوم المهاجم بإرسال قطعة خبيثة مع قيم مُناسبة في ترويسة القطعة، بحيث تكون قطعة ذرية تقبل التجميع مع قطع أخرى خبيثة تُرسل لاحقاً، ناقشت الوثيقة (RFC 6946) كيفية معالجة القطع الذرية لتلافي هذا النوع من الهجمات.[69]

التقطيع في طبقة ربط البيانات[عدل]

قيم وحدة النقل الأعظمية لبعض بروتوكولات طبقة ربط البيانات.
اسم البروتوكول اختصار حجم وحدة النقل الأعظمية الأدنى (بايت) حجم وحدة النقل الأعظمية الأقصى (بايت) المرجع
الإيثرنت IEEE 802.3 64 1518 (5) [70]
بروتوكول حلقة الرمز IEEE 802.5 لا يوجد حد أدنى 17794 [71][72]
بروتوكول الشبكات المحلية اللاسلكية IEEE 802.11 غير مُحدد 2304 (6) [73]
بروتوكول الشبكات الشخصية اللاسلكية منخفضة المعدل IEEE 802.15.4 غير مُحدد 127 [15]

في طبقة ربط البيانات، التقطيع هو تقسيم حمولة إطار البيانات إلى قطعتين أو أكثر، لينتج بعد عملية التغليف إطاري بيانات أو أكثر ذوو أطوال أقصر من إطار البيانات الأصلي الذي تمّ تقطيعه. يُحدد كل بروتوكول ربط وحدة نقل أعظمية كعتبة لا يتجاوزها طول أطر البيانات التي يولّدها. التقطيع ليس وظيفة إلزامية لبروتوكولات الربط، وإذا لم يدعم بروتوكول الربط عملية التقطيع، فيجب على بروتوكول الشبكة أن يُولّد رزم بيانات تتناسب مع وحدة النقل لأعظمية لبروتوكول الربط المستعمل.

يُمكن أن يستخدم التقطيع في طبقة الربط في الحالات التي يكون فيها التطبيق حساساً للتأخير الزمني، حيث يسبب طول إطار بيانات ما تأخيراً غير مُستحب لأُطر بيانات أخرى، ويكون الحل بتقطيع الإطار الطويل إلى قطع أصغر وإرسالها عبر وسط الاتصال، وبذلك يقل زمن التأخير وتقلقل الإرسال، وتسمى هذه الآلية التقطيع والتوزيع في طبقة الربط (بالإنجليزية: Link Fragmentation and Interleaving اختصاراً LFI).[74][8]

تحدد الشركات المُصنعة لعتاد الشبكة قيم وحدة النقل الأعظمية الافتراضية والعُظمى الخاصة ببروتوكولات الربط العاملة على منافذ تجهيزاتها، وترتبط عملية التقطيع في طبقة ربط البيانات بهذه القيم بشكلٍ مباشر.[75][76]

التقطيع في بروتوكول الشبكات المحلية اللاسلكية[عدل]

مفهوم التقطيع في الشبكات المحلية اللاسلكية.

يُعرف معيار بروتوكول الشبكات المحلية اللاسلكية (IEEE 802.11) عملية التقطيع بأنها تجزيء وحدات بيانات البروتوكول الخاصة بطبقة التحكم بالوصول للوسط إلى أجزاء أصغر، بهدف زيادة الوثوقية، من خلال زيادة احتمال نجاح عملية نقل الإطار عبر قنوات الاتصال التي تبدي خواصها وثوقية محدودة لاستقبال الأطر ذات الأطوال الكبيرة.(4) تسمى العملية المعاكسة للتقطيع بإعادة التجميع (بالإنجليزية: Defragmentation) ويجب أن تحصل في الوجهة التالية للقطع الناتجة، سواء كانت وجهة نهائية أو وسيطية على المسار.[73]

يتم التحكم بعملية التقطيع بواسطة مُحدد خاص اسمه عتبة التقطيع (بالإنجليزية: dot11FragmentThreshold)، وتسمح تطبيقات البروتوكول لمشرفي الشبكة بضبط هذه القيمة، وأي إطار بيانات يتجاوز طوله قيمة العتبة يجب تقطيعه، ولكن لا يوجد خوارزمية محددة للتقطيع ويترك أمر تحديد الطريقة لمن يقوم بتنفيذ البروتوكول.[77]

وجدت دراسة لاحقة بأن عملية التقطيع تحسّن من أداء بروتوكول الشبكات المحلية اللاسلكية عند في حال التداخل الراديوي، فعند إنقاص قيمة عتبة التقطيع يتناقص معدل خطأ البت المحلي الخاص بالمستقبل الراديوي لنقطة الوصول ويتناقص العدد الكلي لمحاولات إعادة الإرسال وتزداد إنتاجية المستقبل الراديوي. أمّا عند زيادة قيمة عتبة التقطيع فيتناقص التأخير الكلي للوصول إلى الوسط، وأيضاً تقلقل الإرسال الكلي.[78]

التقطيع في شبكات تبديل الأطر[عدل]

والتقطيع والتوزيع في طبقة الربط في شبكة تبديل الأطر.

إن الهدف الأساسي من التقطيع في شبكة تبديل الأطر هو دعم حركة البيانات الحساسة للتأخير عند حركتها عبر الشبكة، بحيث يتم تقطيع أطر البيانات ذات الأطوال الكبيرة إلى قطع صغيرة بحيث لا يسبب إرسالها تأخيراً كبيراً لبقية الأطر. تسمح هذه التقنية للأطر الحساسة وغير للتأخير الزمني بتشارك نفس القناة الافتراضية عبر نفس المنفذ.[79] وُصفت محددات التقطيع بمعيار خاص تحت الاسم الرمزي (FRF.12).[80]

يستخدم التقطيع في شبكة تبديل الأطر كجزء من آلية التقطيع والتوزيع في طبقة الربط (LFI).[8] لا يوجد طول مُحدد مُلزم لوحدة النقل الأعظمي، ولكن من الأفضل أن يكون الطول المُختار متناسباً مع معدل الساعة للقناة الفيزيائية ومعدل التقل عبر القنوات الافتراضية.[81]. تُستخدم خوارزمية التقطيع الخاصّة ببروتوكول الربط بين نقطتين مُتعدد الوصلات.[82]

أنماط التقطيع[عدل]

أنماط التقطيع في شبكات تبديل الأطر: (1) تقطيع بين المستخدم والشبكة، (2) تقطيع داخل الشبكة، (3) تقطيع بين الطرفيات

يُعرّف معيار التقطيع في شبكات تبديل الأطر ثلاث أنماط من التقطيع:[80]

  • التقطيع بين المُستخدم والشبكة (بالإنجليزية: UNI Fragmentation): ويحصل بين جهاز اتصال بيانات (DCE) وجهاز بيانات طرفي (DTE) بهدف السماح لأطر البيانات الحساسة وغير الحساسة للتأخير بتشارك نفس المنفذ الذي يصل بين المستخدم والشبكة، والذي غالباً ما يكون ذو معدل نقل منخفض. في هذا النمط، يتم تجميع الإطار مجدداً قبل دخوله شبكة تبديل الإطار، ويُرسل كاملاً عبرها.
  • التقطيع داخل الشبكة (بالإنجليزية: NNI Fragmentation): ويكون هذا التقطيع غير مرئي بالنسبة للطرفيات حيث تحصل عمليتي التقطيع والتجميع داخل شبكة تبديل الأطر، وهو يهدف للسماح لأطر البيانات الحساسة وغير الحساسة للتأخير بتشارك نفس القناة الافتراضية. إن عمليتي التقطيع بين المستخدم والشبكة، والتقطيع داخل الشبكة متطابقتين من حيث الينية والخوازمية المستعملة، وتُستخدمان في القنوات الافتراضية الدائمة (PVC) والمبدلة (SVC).
  • التقطيع بين الطرفيات (بالإنجليزية: End-to-End Fragmentation): ويحصل هذا التقطيع بين الطرفيات، وتحديداً بين جهازي بيانات طرفيين، ويكون غير مرئي بالنسبة لشبكة تبديل الأطر، ولا يُستخدم إلا في القنوات الافتراضية الدائمة.

ترويسة القطعة[عدل]

الحالات المختلفة لتغليف قطعة بيانات عند استخدام بروتوكول تبديل الأطر كبروتوكول ربط.

يجري تقطيع حمولة الإطار الأصلي إلى قطعتين أو أكثر، وتضاف ترويسة بروتوكول تبديل الأطر إلى كل القطع، وهي بطول (2) بايت، وأيضاً ترويسة التقطيع، وهي بطول (2) بايت أيضاً، وفي حالة التقطيع بين الطرفيات يضاف مُعرف بروتوكول طبقة الشبكة (بالإنجليزية: Network Layer Protocol ID اختصاراً NLPID) وهو بطول (1) بايت، ويضبط إلى القيمة 16(1B) في حالة التقطيع.[83] أما ترتيب الإضافة عند التغليف فيكون بالشكل التالي:[80]

  • في التقطيع بين المستخدم والشبكة، وفي التقطيع داخل الشبكة، تضاف ترويسة البروتوكول أولاً، ثم تضاف ترويسة التقطيع.
  • في التقطيع بين الطرفيات، تضاف ترويسة التقطيع أولاً، ثُمّ مُعرف بروتوكول طبقة الشبكة، ثم بايت محجوز يضبط إلى القيمة 16(03)، وأخيراً ترويسة بروتوكول تبديل الأطر.

يضاف مُلحق بطول (2) بايت لكل القطع، يحتوي على ناتج تطبيق خوارزمية تتابع فحص الإطار (FCS).[84]

يبلغ طول ترويسة القطعة (2) بايت، وهي تتكون من الحقول التالية بحسب ترتيب ورودها:[80]

  • بت قطعة البداية (Beginning fragment bit): وهو علم يشير إلى القطعة الأولى الناتجة عن التقطيع، يتم ضبطه إلى القيمة (1) في القطعة الأولى وإلى (0) في باقي القطع.
  • بت قطعة النهاية (Ending fragment bit): وهو علم يشير إلى القطعة الأخيرة، يتم ضبطه إلى القيمة (1) في القطعة الأخيرة وإلى (0) في باقي القطع.
  • بت التحكم (Control bit): محجوز لاستخدامات مستقبلية، يُضبط دائماً إلى القيمة (0).
  • الجزء العلوي من حقل التتابع: طوله (4) بت، ويضم الجزء العلوي من حقل التتابع، وتزداد قيمة حقل التتابع بمقدار (1) مع كل قطعة جديدة يتم توليدها، بمعزل عن انتهاء إطار ما والبدء بتقطيع إطار جديد، أي إذا كانت قيمة الحقل (N) في آخر قطعة نتجت عن تقطيع إطار ما، فإن قيمة التتابع في القطعة الأولى التي ستنتج عن الإطار التالي الذي يتم تقطيع ستكون (N+1). تضبط قيمة حقل التتابع بشكل اختياري لكل قناة افتراضية إلى قيمة ما، ثم تزداد بعد ذلك بقيمة واحد مع كل قطعة جديدة يتم تغليفها، يساعد هذا الحقل في إنجاز عملية التجميع من خلال تحديد الرزم القطع التي تنتمي لنفس الإطار الأصلي، وتحديد إزاحتها عن بدايته.
  • بت محجوز: قيمته دوماً (1).
  • الجزء السفلي من حقل التتابع طوله (8) بت، ويضم الجزء السغلي من حقل التتابع.

التقطيع في بروتوكول الربط بين نقطتين متعدد الوصلات[عدل]

بروتوكول الربط بين نقطتين متعدد الوصلات، في الأعلى وإلى اليسار: طوبولوجيا الشبكة، في الأعلى وإلى اليمين: نموذج الاتصال المعياري المُوافق، في الأسفل: عملية التغليف.
تغليف قطعة البيانات عند استعمال بروتوكول الربط بين نقطتين متعدد الوصلات. (أ) رقم تتابع قصير (ب) رقم تتابع طويل.

يُعرّف مُحدد بروتوكول الربط بين نقطتين (PPP) البرتوكول بأنه بروتوكول ربط يصل بين نقطتين هما طرفا الاتصال، ويمكن أن يقوم بتغليف رزم بيانات لبروتوكولات شبكة مختلفة.[85] لاحقاً أضيفت توسيعة لهذا البروتوكول تسمح بتجميع أكثر من خط نقل فيزيائي يمثل كل منها قناة اتصال مستقلة ضمن خط نقل افتراضي واحد يجمع هذه القنوات، وسميت هذه التوسيعة ببروتوكول النقل متعدد الوصلات بين نقطتين، ووصفت في وثيقة طلب التعليقات (RFC 1990).[82] كما قد يُستخدم التقطيع كجزء من آلية التقطيع والتوزيع في طبقة الربط (LFI).[86]

تُعرّف التوسيعة طبقة فرعية في نموذج الاتصال المعياري، تشغل الجزء العلوي من طبقة ربط البيانات، وتعمل فيها وحدة توسيعة البروتوكول، فترتبط مع وحدة بروتوكول طبقة الشبكة من جهة، ومع وحدتين أو أكثر من وحدات بروتوكول الربط بين نقطتين من جهة أخرى، التي تشغل طبقة فرعية أخرى تُشكل الجزء الأدنى من طبقة ربط البيانات.[87]

من أجل توزيع الحمل بين خطوط التقل التي تشكل الوسط الفيزيائي، تقوم توسيعة البروتوكول بتقطيع رزمة البيانات الواردة من طبقة الشبكة إلى عدد من القطع، ثم تضيف ترويسة خاصة تُسمى ترويسة القطعة لكل قطعة ناتجة، وتمرر القطع وفق سياسة توزيع محددة إلى وحدات بروتوكول الربط بين نقطتين، التي تقوم كل منها بدورها بإضافة ترويسة وملحق خاصين ببروتوكول الربط بين نقطتين، ويجري تغليف القطعة بهما، ثم يُمرر الناتج إلى الطبقة المادية، وتعاد هذه المراحل بترتيب معكوس في المستقبل، من أجل إعادة توليد رزمة البيانات الأصلية.[88]

تضاف ترويسة التوسيعة لكل قطعة ناتجة، ثم تُضاف ترويسة البروتوكول التقليدية والمُلحق بعملية التغليف. يكون طول ترويسة التوسيعة إمّا (2) أو (4) بايت، وفي كلا الحالتين تتألف الترويسة من 4 حقول هي: [89][82]

  • بت قطعة البداية (Beginning fragment bit): وهو علم يشير إلى القطعة الأولى، يتم ضبطه إلى القيمة (1) في أول قطعة تنتج عن عملية التقطيع، و(0) في بقية القطع.
  • بت قطعة النهاية (Ending fragment bit): وهو علم يشير إلى القطعة الأخيرة، يتم ضبطه إلى القيمة (1) في آخر قطعة تنتج عن عملية التقطيع، و(0) في بقية القطع.
  • حقل رقم التتابع (Sequence number): ويدل على ترتيب القطعة بالنسبة لبقية القطع، يضبط في البداية إلى قيمة ابتدائية، ثُم تجري زيادتها بمقدار (1) في كل قطعة جديدة يتم تغليفها، قد يكون الحقل بطول (12) بت، ويُسمّى عندها التتابع القصير (بالإنجليزية: Short Sequence) أو بطول (24) بت، ويُسمّى عندها التتابع الطويل (بالإنجليزية: Long Sequence).[90]
  • بتات محجوزة: تُوجد بين العلمين ورقم التتابع، تُضبط إلى القيمة (0)، وعددها (2) إذا استخدم التتابع القصير أو (6) إذا استخدم التتابع الطويل.

التقطيع في الطبقة المادية[عدل]

التقطيع في بروتوكول الإيثرنت[عدل]

تقطيع أطر البيانات في الطبقة المادية بحسب بروتوكول الإيثرنت.

يدعم بروتوكول الإيثرنت شكلاً خاصاً من أشكال التقطيع في الطبقة المادية، وهو لا يهدف إلى إنقاص حجم وحدة بيانات البروتوكول، ولكنّ إلى إتاحة استخدام وسط الاتصال المادي الذي ينتج عن استخدام تقنية التجميع في الطبقة المادية (بالإنجليزية: Aggregation at physical layer اختصاراً APL) بصورة مثاليّة، تسمح هذه التقنية بتجميع خطوط نقل ذات معدلات نقل مُعتدلة مثل (1) و(2) و(4) و(10) جيجا بت في الثانية، لبلوغ معدلات نقل عالية مثل (40) أو (100) جيجا بت في الثانية. يحدد البروتوكول طولاً أصغرياً للقطعة هو (64) بايت، وأعظمياً هو (512) بايت، ولا يمكن تجاوز هذه العتبات عند اختيار طول القطعة.[70]

يتم تقطيع إطار البيانات كاملاً في طرف الإرسال إلى عدد من القطع، ثُمّ يجري إضافة ترويسة بطول (32) بت وملحق بطول (16) بت لكل قطعة، ويلي ذلك توزيع القطع على خطوط النقل. تُرسل القطع الناتجة عبر خطوط النقل التي تشكل وسط الاتصال في نفس الوقت، ويجري تجميعها في طرف الإستقبال اعتماداً على الترويسة المُضافة، والتي تحتوي على حقل بطول (14) بت، يسمى رقم التتابع، وهي يساعد المستقبل على إيجاد الترتيب الصحيح للقطع لإعادة تجميعها وإنشاء إطار البيانات الأصلي مجدداً في الطرف الذي استقبلها.[9]

انظر أيضاً[عدل]

هوامش[عدل]

1. الرسالة هي رسالة «لا يمكن بلوغ الوجهة» (بالإنجليزية: Destination unreachable Message)، لذلك يضبط حقل النوع في ترويسة البروتوكول إلى القيمة (3) وحقل الترميز إلى القيمة (4)، والتي تعني هناك حاجة للتقطيع ولكن علم عدم التقطيع مرفوع.[91]

2. الرسالة هي رسالة «الرزمة كبيرة جداً» (بالإنجليزية: Packet Too big) لذلك يضبط حقل النوع في ترويسة البروتوكول إلى القيمة (2) وحقل الترميز إلى القيمة (0).[92]

3. يجب التمييز بين بروتوكول طبقة الشبكة وبروتوكول التشبيك،[93] والذي يسمى أيضاً البروتوكول المُوجّه، فالأول تصنيف للبروتوكولات بحسب طبقة نموذج الاتصال المعياري، أما الثاني فهو تصنيف للبروتوكولات بحسب الوظيفة، وبروتوكولات الشبكة هي البروتوكولات التي تقوم بوظائف طبقة الشبكة. إن كل بروتوكول شبكة هو بروتوكول طبقة شبكة، مثل الإصدار الرابع لبروتوكول الإنترنت، ولكن العكس غير صحيح، فبروتوكول رسائل التحكم في الإنترنت هو بروتوكول طبقة شبكة، ولكنه ليس بروتوكول شبكة.

4. التعريف كما ورد في المعيار الأصلي هو: (بالإنجليزية: The process of partitioning an MSDU or an MMPDU into smaller MAC level" frames, MPDUs, is called fragmentation. Fragmentation creates MPDUs smaller than the original MSDU or MMPDU length to increase reliability, by increasing the probability of successful transmission of the MSDU or MMPDU when channel characteristics limit reception reliability for longer frames").

5. هناك استثناءات كثيرة لهذا الرقم، أولها عملية الوسم الخاصة بالشبكات المحلية الافتراضية (VLAN) و الموصوفة بالمعيار (IEEE 802.1q)، والتي تضيف (4) بايت للترويسة ليصبح الطول الإجمالي (1522) بايت،[94] وثانيها الجسر المٌزوّد الموصوف بالمعيار (IEEE 802.1.ad)[95] الذي يضيف (8) بايت بوسمة خاصة إلى الطول الأصلي فيصبح الطول الإجمالي (1526) بايت، وثالثها أطر الإيثرنت العملاقة (بالإنجليزية: Jumbo frame) التي تُعرّف بأنها أي إطار إيثرنت يزيد طول حمولته عن (1500) بايت،[96] وغيرها.

6. يسبب استخدام تقنيات أمنية مثل الخصوصية المكافئة للشبكات السلكية (WEP) أو أشكال مختلفة من الوصول الآمن للشبكة اللاسلكية (WPA) لتشفير إطار البيانات زيادة في الحجم الأعظمي قد تصل حتى (20) بايتاً، ليصبح حجم وحدة النقل الأعظمي الأقصى هو (2324) بايت.[97][98]

مراجع[عدل]

  1. ^ "معنى كلمة segmentation مسرد مصطلحات المعلوماتية" (PDF). الجمعية العلمية السورية للمعلوماتية. اطلع عليه بتاريخ 30 يوليو 2018. 
  2. ^ "معنى كلمة fragmentation في قاموس ومعجم المعاني الجامِع". موقع المعاني. اطلع عليه بتاريخ 30 يوليو 2018. 
  3. ^ "معنى كلمة fragmentation مسرد مصطلحات المعلوماتية" (PDF). الجمعية العلمية السورية للمعلوماتية. اطلع عليه بتاريخ 30 يوليو 2018. 
  4. ^ "Differentiate between transparent and nontransparent fragmentation?". Blogspot (باللغة الإنجليزية). 20 سبتمبر 2013. تمت أرشفته من الأصل في 25 أبريل 2017. اطلع عليه بتاريخ 14 يوليو 2018. 
  5. أ ب "Fragmentation at Network Layer". geeksforgeeks (باللغة الإنجليزية). تمت أرشفته من الأصل في 26 يونيو 2017. اطلع عليه بتاريخ 30 يوليو 2018. 
  6. أ ب Charles M. Kozierok. (5 سبتمبر 2005). "Network Layer (Layer 3)". The TCP/IP Guide (باللغة الإنجليزية). تمت أرشفته من الأصل في 30 يوليو 2017. اطلع عليه بتاريخ 22 يوليو 2018. 
  7. أ ب "How the TCP/IP Protocols Handle Data Communications". Oracle (باللغة الإنجليزية). 6 أبريل 2014. تمت أرشفته من الأصل في 3 يوليو 2018. اطلع عليه بتاريخ 23 يوليو 2018. 
  8. أ ب ت "Configuring Link Fragmentation and Interleaving (LFI) With Campus ATM Switches". Cisco Systems, Inc. (باللغة الإنجليزية). تمت أرشفته من الأصل في 13 مايو 2017. اطلع عليه بتاريخ 20 يوليو 2018. 
  9. أ ب Howard Frazier (23 يناير 2008). "Aggregation at the Physical Layer" (PDF). IEEE (باللغة الإنجليزية). تمت أرشفته من الأصل (PDF) في 13 سبتمبر 2016. اطلع عليه بتاريخ 24 يوليو 2018. 
  10. ^ Charles M. Kozierok (5 سبتمبر 2015). "Data Encapsulation, Protocol Data Units (PDUs) and Service Data Units (SDUs)". TCP/IP guide (باللغة الإنجليزية). تمت أرشفته من الأصل في 30 يوليو 2017. اطلع عليه بتاريخ 23 يوليو 2018. 
  11. أ ب "Segmentation, Fragmentation and Reassembly". InetDaemon Enterprises (باللغة الإنجليزية). 6 أبريل 2014. تمت أرشفته من الأصل في 1 يناير 2017. اطلع عليه بتاريخ 23 يوليو 2018. 
  12. ^ "MTU Definition". Linux Information Project (باللغة الإنجليزية). 9 أوكتوبر 2005. تمت أرشفته من الأصل في 23 فبراير 2018. اطلع عليه بتاريخ 25 يوليو 2018. 
  13. ^ "Segmentation vs fragmentation". Cisco systems, Inc. (باللغة الإنجليزية). 24 مارس 2008. تمت أرشفته من الأصل في 13 يوليو 2018. اطلع عليه بتاريخ 23 يوليو 2018. 
  14. ^ uzair syed naveed (25 أوكتوبر 2009). "IP reassembly at destination host". Cisco Systems, Inc. (باللغة الإنجليزية). اطلع عليه بتاريخ 28 يونيو 2018. 
  15. أ ب "802.15.4-2015 - IEEE Standard for Low-Rate Wireless Networks". IEEE STANDARD. IEEE. 2016. ISBN 978-1-5044-0845-5. doi:10.1109/IEEESTD.2016.7460875. 
  16. ^ M. Frazier، Howard (2008). "Aggregation at the physical layer". IEEE Communications Magazine. IEEE. 46 (2): 512. doi:10.1109/MCOM.2008.4476164. 
  17. أ ب ت Charles M. Kozierok (20 سبتمبر 2005). "IP Message Fragmentation Process". The TCP/IP Guide (باللغة الإنجليزية). تمت أرشفته من الأصل في 3 يوليو 2017. اطلع عليه بتاريخ 13 يوليو 2018. 
  18. أ ب "Resolve IP Fragmentation, MTU, MSS, and PMTUD Issues with GRE and IPSEC". Cisco Systems, Inc. (باللغة الإنجليزية). تمت أرشفته من الأصل في 21 مايو 2018. اطلع عليه بتاريخ 27 يونيو 2018. 
  19. ^ Joel Haefner. "Internetworking Concepts". Illinois Wesleyan University (باللغة الإنجليزية). اطلع عليه بتاريخ 15 يوليو 2018. 
  20. أ ب A. Kent، Christopher؛ C. Mogul، Jeffrey (1995). "Fragmentation considered harmful" (PDF). ACM SIGCOMM Computer Communication Review - Special twenty-fifth anniversary issue. Highlights from 25 years of the Computer Communication Review. ACM. 17 (5): 75-87. doi:10.1145/205447.205456. 
  21. ^ "IP Fragmentation Buffer". Cisco Systems (باللغة الإنجليزية). تمت أرشفته من الأصل في 27 يونيو 2018. اطلع عليه بتاريخ 27 يونيو 2018. 
  22. ^ "Packet Fragmentation". De Nayer Instituut (باللغة الإنجليزية). سبتمبر 2002. تمت أرشفته من الأصل في 11 يوليو 2018. اطلع عليه بتاريخ 11 يوليو 2018. 
  23. أ ب ت Ziemba، G.؛ Reed، D.؛ Traina، P. (أوكتوبر 1995). "RFC 1858, Security Considerations for IP Fragment Filtering". The Internet Society (باللغة الإنجليزية). اطلع عليه بتاريخ 1 يوليو 2018. 
  24. ^ "Rose Frag Attack Explained". Digintal.net (باللغة الإنجليزية). تمت أرشفته من الأصل في 28 أغسطس 2017. اطلع عليه بتاريخ 27 يونيو 2018. 
  25. أ ب Ivan Pepelnjak (2008). The Never Ending Story of IP Fragmentation (PDF) (باللغة الإنجليزية). NIL Learning. 
  26. أ ب Marek Majkowski (18 أغسطس 2017). "Broken packets: IP fragmentation is flawed". Cloudflare (باللغة الإنجليزية). تمت أرشفته من الأصل في 30 يونيو 2018. اطلع عليه بتاريخ 22 يوليو 2018. 
  27. ^ "Glossary of Security Terms, F". SANS™ Institute (باللغة الإنجليزية). تمت أرشفته من الأصل في 23 يونيو 2018. اطلع عليه بتاريخ 29 يونيو 2018. 
  28. أ ب ت ث ج Geoff Huston (29 يناير 2016). "Evaluating IPv4 and IPv6 Packet Fragmentation". Réseaux IP Européens Network Coordination Centre RIPE NCC (باللغة الإنجليزية). تمت أرشفته من الأصل في 25 أبريل 2018. اطلع عليه بتاريخ 22 يوليو 2018. 
  29. أ ب Charles M. Kozierok (20 سبتمبر 2005). "IP Message Reassembly Process". The TCP/IP Guide (باللغة الإنجليزية). تمت أرشفته من الأصل في 15 يونيو 2017. اطلع عليه بتاريخ 11 يوليو 2018. 
  30. ^ Mark Baggett (13 يونيو 2012). "IP Fragment Reassembly with Scapy". SANS Institute (باللغة الإنجليزية). تمت أرشفته من الأصل في 22 يوليو 2018. اطلع عليه بتاريخ 22 يوليو 2018. 
  31. ^ D. Clark، David (يوليو 1982). "RFC 815, IP DATAGRAM REASSEMBLY ALGORITHMS". The Internet Society (باللغة الإنجليزية). اطلع عليه بتاريخ 11 يوليو 2018. 
  32. ^ Christoph Meinel؛ Harald Sack (2013). Internetworking: Technological Foundations and Applications (باللغة الإنجليزية). Springer Science & Business Media. صفحة 469. ISBN 9783642353918. 
  33. ^ Charles M. Kozierok (20 سبتمبر 2005). "IP Message Fragmentation Process". The TCP/IP Guide (باللغة الإنجليزية). تمت أرشفته من الأصل في 15 ديسمبر 2017. اطلع عليه بتاريخ 13 يوليو 2018. 
  34. أ ب Mogul، J.؛ Deering، S. (نوفمبر 1990). "RFC 1191, Path MTU Discovery". The Internet Society (باللغة الإنجليزية). اطلع عليه بتاريخ 13 يوليو 2018. 
  35. أ ب McCann، J.؛ Deering، S.؛ Mogul، J.؛ Hinden, Ed.، R. (يوليو 2017). "RFC 8201, Path MTU Discovery for IP version 6". The Internet Society (باللغة الإنجليزية). اطلع عليه بتاريخ 13 يوليو 2018. 
  36. ^ "Resolve IP Fragmentation, MTU, MSS, and PMTUD issues with GRE and IPSEC" (PDF). Cisco Systems, Inc. (باللغة الإنجليزية). تمت أرشفته من الأصل (PDF) في 2 أغسطس 2014. اطلع عليه بتاريخ 15 يوليو 2018. 
  37. ^ West، M.؛ McCann، S. (مارس 2006). "RFC 4413, TCP/IP Field Behavior". The Internet Society (باللغة الإنجليزية). صفحة 22. اطلع عليه بتاريخ 22 يوليو 2018. 
  38. ^ Genkov، Delian؛ Ilarionov، Raycho (2006). "Avoiding IP Fragmentation at the Transport Layer of the OSI Reference Model". International Conference on Computer Systems and Technologies - CompSysTech’06. 
  39. ^ Postal، J. (سبتمبر 1981). "RFC 793, Transmission control protocol, DARPA internet program,protocol specification.". The Internet Society (باللغة الإنجليزية). اطلع عليه بتاريخ 22 يوليو 2017. 
  40. ^ James Curtis (17 يناير 2000). "UDP vs TCP". Wand (باللغة الإنجليزية). تمت أرشفته من الأصل في 6 مايو 2017. اطلع عليه بتاريخ 29 يونيو 2018. 
  41. ^ Postel، J. (نوفمبر 1983). "RFC 879, The TCP Maximum Segment Size and Related Topics". The Internet Society (باللغة الإنجليزية). صفحة 2. اطلع عليه بتاريخ 28 يوليو 2018. 
  42. ^ Nurul Islam Roman (15 ديسمبر 2014). "TCP Maximum Segment Size (MSS) and Relationship to IP Datagram Size". APNIC (باللغة الإنجليزية). تمت أرشفته من الأصل في 17 مايو 2017. اطلع عليه بتاريخ 28 يونيو 2018. 
  43. ^ Charles M. Kozierok (20 سبتمبر 2005). "TCP Maximum Segment Size (MSS) and Relationship to IP Datagram Size". TCP/IP Guide (باللغة الإنجليزية). تمت أرشفته من الأصل في 11 يناير 2017. اطلع عليه بتاريخ 28 يونيو 2018. 
  44. ^ Postel، J. (نوفمبر 1983). "RFC 879, The TCP Maximum Segment Size and Related Topics". The Internet Society (باللغة الإنجليزية). صفحة 1. اطلع عليه بتاريخ 28 يوليو 2018. 
  45. ^ Postal، J. (سبتمبر 1981). "RFC 793, Transmission control protocol, DARPA internet program,protocol specification.". The Internet Society (باللغة الإنجليزية). صفحة 19. اطلع عليه بتاريخ 28 يونيو 2018. 
  46. أ ب ت ث ج ح Postel، J. (سبتمبر 1981). "RFC 791, Internet Protocol, DARPA Internet Program Protocol Specification". The Internet Society (باللغة الإنجليزية). اطلع عليه بتاريخ 1 يوليو 2018. 
  47. أ ب ت ث ج ح Deering، S.؛ Hinden، R. (يوليو 2017). "RFC 8200, Internet Protocol, Version 6 (IPv6) Specification". The Internet Society (باللغة الإنجليزية). اطلع عليه بتاريخ 13 يوليو 2018. 
  48. ^ Shivendra Panwar, Shivendra S. Panwar, Shiwen Mao, Jeong-dong Ryoo, Yihan Li (2014). TCP/IP Essentials: A Lab-Based Approach (باللغة الإنجليزية). Cambridge University Press. صفحة 101. ISBN 0521841445. 
  49. ^ Joshua Johnson (17 مايو 2014). "Describe the IP Packet Header and each field in a Traffic Capture". Cisco Systems, Inc. (باللغة الإنجليزية). تمت أرشفته من الأصل في 30 يوليو 2017. اطلع عليه بتاريخ 30 يوليو 2018. 
  50. ^ "The IP Datagram". Rhys Haden (باللغة الإنجليزية). تمت أرشفته من الأصل في 16 فبراير 2017. اطلع عليه بتاريخ 30 يوليو 2018. 
  51. أ ب Touch، J. (فبراير 2013). "RFC 6864, Updated Specification of the IPv4 ID Field". The Internet Society (باللغة الإنجليزية). صفحة 22. ISSN 2070-1721. اطلع عليه بتاريخ 22 يوليو 2018. 
  52. ^ Sean Wilkins (29 فبراير 2012). "Anatomy of an IPv4 Packet". Pearson Education, Pearson IT Certification (باللغة الإنجليزية). تمت أرشفته من الأصل في 27 مارس 2017. اطلع عليه بتاريخ 22 يوليو 2018. 
  53. ^ Toni Janevski (2015). Internet Technologies for Fixed and Mobile Networks (باللغة الإنجليزية) (الطبعة الأولى). Artech House. صفحة 33. ISBN 9781608079216. 
  54. ^ "Identification vs Fragment Offset". Cisco Systems, Inc. (باللغة الإنجليزية). 27 يناير 2018. تمت أرشفته من الأصل في 1 يوليو 2018. اطلع عليه بتاريخ 1 يوليو 2018. 
  55. ^ Miller، I. (يونيو 2001). "RFC 3128, Protection Against a Variant of the Tiny Fragment Attack". The Internet Society (باللغة الإنجليزية). صفحة 22. اطلع عليه بتاريخ 22 يوليو 2018. 
  56. ^ "Explore new firmware that's helping organizations see attacks as they happen.". Datacom (باللغة الإنجليزية). 3 نوفمبر 2015. تمت أرشفته من الأصل في 11 فبراير 2017. اطلع عليه بتاريخ 22 يوليو 2018. 
  57. ^ H. Ptacek، Thomas؛ N. Newsham، Timothy (1998). "Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection" (PDF). Computer Systems Management and Standards. DEFENSE TECHNICAL INFORMATION CENTER: 46-52. 
  58. ^ D. Clark، David (يوليو 1982). "RFC 815, IP DATAGRAM REASSEMBLY ALGORITHMS". The Internet Society (باللغة الإنجليزية). اطلع عليه بتاريخ 1 يوليو 2018. 
  59. ^ Matt Conran (16 أوكتوبر 2018). "IPV6 FRAGMENTATION". Technology Focused Hub PS Delivery ltd (باللغة الإنجليزية). تمت أرشفته من الأصل في 2 يناير 2018. اطلع عليه بتاريخ 20 يوليو 2018. 
  60. ^ Phillip Remaker (21 مارس 2011). "IPv6 MTU Gotchas and other ICMP issues". Cisco Systems, Inc (باللغة الإنجليزية). تمت أرشفته من الأصل في 19 سبتمبر 2016. اطلع عليه بتاريخ 17 يوليو 2018. 
  61. ^ "Protocol Numbers". IANA (باللغة الإنجليزية). تمت أرشفته من الأصل في 4 يناير 2018. اطلع عليه بتاريخ 18 يوليو 2018. 
  62. ^ Gont، F. (فبراير 2016). "RFC 7739, Security Implications of Predictable Fragment Identification Values". The Internet Society (باللغة الإنجليزية). ISSN 2070-1721. اطلع عليه بتاريخ 17 يوليو 2018. 
  63. ^ Geoff Huston (19 مايو 2016). "Fragmenting IPv6". Réseaux IP Européens Network Coordination Centre RIPE NCC (باللغة الإنجليزية). تمت أرشفته من الأصل في 5 مايو 2017. اطلع عليه بتاريخ 18 يوليو 2018. 
  64. ^ Charles M. Kozierok (20 سبتمبر 2005). "IPv6 Datagram Size, Maximum Transmission Unit (MTU), Fragmentation and Reassembly". The TCP/IP Guide (باللغة الإنجليزية). تمت أرشفته من الأصل في 10 سبتمبر 2017. اطلع عليه بتاريخ 18 يوليو 2018. 
  65. ^ Bill Cerveny (25 يوليو 2011). "IPv6 Fragmentation". ARBOR NETWORKS, INC. (باللغة الإنجليزية). تمت أرشفته من الأصل في 26 يونيو 2018. اطلع عليه بتاريخ 18 يوليو 2018. 
  66. ^ Charles M. Kozierok. (5 سبتمبر 2005). "IPV6 FRAGMENTATION". The TCP/IP Guide (باللغة الإنجليزية). تمت أرشفته من الأصل في 11 يوليو 2017. اطلع عليه بتاريخ 20 يوليو 2018. 
  67. ^ Atlasis، Antonios (2002). "Attacking IPv6 Implementation Using Fragmentation" (PDF). Black-Hat Europe. 
  68. ^ Krishnan، S. (فبراير 2016). "RFC 5722, Handling of Overlapping IPv6 Fragments". The Internet Society (باللغة الإنجليزية). اطلع عليه بتاريخ 21 يوليو 2018. 
  69. ^ Gont، F. (مايو 2013). "RFC 6946, Processing of IPv6 "Atomic" Fragments". The Internet Society (باللغة الإنجليزية). ISSN 2070-1721. اطلع عليه بتاريخ 21 يوليو 2018. 
  70. أ ب "802.3-2015 - IEEE Standard for Ethernet". IEEE Standard. IEEE: 2690-2699. 2016. ISBN 978-1-5044-0078-7. doi:10.1109/IEEESTD.2016.7428776. 
  71. ^ Brent Baccala (أبريل 1997). "IEEE 802.5 Details". Connected: An Internet Encyclopedia (باللغة الإنجليزية). تمت أرشفته من الأصل في 5 يونيو 2016. اطلع عليه بتاريخ 29 يوليو 2018. 
  72. ^ "Token-Ring IEEE 802.5". IBM Corporation (باللغة الإنجليزية). اطلع عليه بتاريخ 29 يوليو 2018. 
  73. أ ب "802.11-2016 - IEEE Standard for Information technology--Telecommunications and information exchange between systems Local and metropolitan area networks--Specific requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications". IEEE. 2016: 1301. ISBN 978-1-5044-3645-8. doi:10.1109/IEEESTD.2016.7786995. 
  74. ^ "Understanding Link Fragmentation and Interleaving Configuration". Juniper Networks, Inc (باللغة الإنجليزية). تمت أرشفته من الأصل في 20 يوليو 2018. اطلع عليه بتاريخ 20 يوليو 2018. 
  75. ^ "Media MTU Sizes by Interface Type". Juniper Networks, Inc. (باللغة الإنجليزية). تمت أرشفته من الأصل في 20 سبتمبر 2017. اطلع عليه بتاريخ 29 يوليو 2018. 
  76. ^ "MTU Behavior on Cisco IOS XR and Cisco IOS Routers". Cisco Systems, Inc. (باللغة الإنجليزية). تمت أرشفته من الأصل في 30 يونيو 2017. اطلع عليه بتاريخ 29 يوليو 2018. 
  77. ^ Gast، Matthew (2002). 802.11 Wireless Networks: The Definitive Guide (باللغة الإنجليزية) (الطبعة الأولى). O'Reilly Media. صفحة 46. ISBN 0596001835. 
  78. ^ Diaconu، Felix (2011). "IEEE 802.11 MAC frame fragmentation performances in jammed environments" (PDF). Bul. Inst. Politehnic, Iaşi, s. Electrot., Energ., Electron. 58 (2): 81-88. 
  79. ^ Jeff T. Buckwalter (1999). Frame Relay: Technology and Practice (باللغة الإنجليزية) (الطبعة الأولى). Addison-Wesley Professional. صفحة 215. ISBN 0201485249. 
  80. أ ب ت ث Andrew G. Malis (ديسمبر 1997). "Frame Relay Fragmentation Implementation Agreement FRF.12" (PDF). Broadband Forum (باللغة الإنجليزية). تمت أرشفته من الأصل (PDF) في 26 أبريل 2016. اطلع عليه بتاريخ 28 يوليو 2018. 
  81. ^ Andrew G. Malis. "Frame Relay, section: Frame Relay Fragmentation". Rhys Haden (باللغة الإنجليزية). تمت أرشفته من الأصل في 12 يونيو 2017. اطلع عليه بتاريخ 28 يوليو 2018. 
  82. أ ب ت Sklower، K.؛ Lloyd، B.؛ McGregor، G.؛ D. Carr، W.؛ Coradetti، T. (أغسطس 1996). "RFC 1990, The PPP Multilink Protocol (MP)". The Internet Society (باللغة الإنجليزية). اطلع عليه بتاريخ 25 يوليو 2018. 
  83. ^ Brown، C.؛ Malis، A. (سبتمبر 1998). "RFC 2427, Multiprotocol Interconnect over Frame Relay". The Internet Society (باللغة الإنجليزية). صفحة 27. اطلع عليه بتاريخ 29 يوليو 2018. 
  84. ^ "Frame Relay Glossary" (PDF). Cisco systems, Inc (باللغة الإنجليزية). صفحة 3. تمت أرشفته من الأصل (PDF) في 12 مايو 2016. اطلع عليه بتاريخ 29 يوليو 2018. 
  85. ^ Simpson، W. (يوليو 1994). "RFC 1661, The Point-to-Point Protocol (PPP)". The Internet Society (باللغة الإنجليزية). اطلع عليه بتاريخ 25 يوليو 2018. 
  86. ^ "Understanding Link Fragmentation and Interleaving Configuration". Juniper Networks, Inc. (باللغة الإنجليزية). 24 أكتوبر 2017. تمت أرشفته من الأصل في 20 يوليو 2018. اطلع عليه بتاريخ 29 يوليو 2018. 
  87. ^ Charles M. Kozierok (20 سبتمبر 2005). "PPP Multilink Protocol (MP/MLP/MLPPP)". The TCP/IP Guide (باللغة الإنجليزية). تمت أرشفته من الأصل في 23 يناير 2017. اطلع عليه بتاريخ 25 يوليو 2018. 
  88. ^ Charles M. Kozierok (20 سبتمبر 2005). "PPP Multilink Protocol (MP/MLP/MLPPP)". The TCP/IP Guide (باللغة الإنجليزية). تمت أرشفته من الأصل في 22 ديسمبر 2017. اطلع عليه بتاريخ 25 يوليو 2018. 
  89. ^ "Configuring Link Fragmentation and Interleaving (LFI) With Campus ATM Switches". Cisco Systems, Inc. (باللغة الإنجليزية). تمت أرشفته من الأصل في 13 مايو 2017. اطلع عليه بتاريخ 25 يوليو 2018. 
  90. ^ Charles M. Kozierok (20 سبتمبر 2005). "PPP Multilink Protocol (MP) Frame Format". The TCP/IP Guide (باللغة الإنجليزية). تمت أرشفته من الأصل في 21 يناير 2018. اطلع عليه بتاريخ 29 يوليو 2018. 
  91. ^ Postal، J. (أغسطس 1981). "RFC 792, Internet Control Message protocol, DARPA internet program,protocol specification.". The Internet Society (باللغة الإنجليزية). اطلع عليه بتاريخ 14 يوليو 2018. 
  92. ^ Gupta، M. (مارس 2006). "RFC 4443, Internet Control Message Protocol (ICMPv6),for the Internet Protocol Version 6 (IPv6) Specification". The Internet Society (باللغة الإنجليزية). اطلع عليه بتاريخ 15 يوليو 2018. 
  93. ^ POSTEL، JONATHAN B . (1980). "Internetwork Protocol Approaches". IEEE TRANSACTIONS ON COMMUNICATIONS. IEEE. 28 (4): 604 - 611. ISSN 0090-6778. doi:10.1109/TCOM.1980.1094705. 
  94. ^ "Inter-Switch Link and IEEE 802.1Q Frame Format". Cisco systems, Inc, (باللغة الإنجليزية). تمت أرشفته من الأصل في 10 يونيو 2017. اطلع عليه بتاريخ 29 يوليو 2018. 
  95. ^ "802.1Q-2014 - IEEE Standard for Local and metropolitan area networks--Bridges and Bridged Networks". IEEE Standards. IEEE. 2014. ISBN 978-0-7381-9433-2. doi:10.1109/IEEESTD.2014.6991462. 
  96. ^ "Ethernet Jumbo Frames" (PDF). IEEE Communications Magazine. ethernet alliance. 2009. 
  97. ^ Ross، David Andrew (2010). "Securing IEEE 802.11 Wireless LANs" (PDF). Queensland University of Technology: 119. 
  98. ^ "802.11 Packet Size". Certified Wireless Network Professionals. (باللغة الإنجليزية). 5 أغسطس 2005. تمت أرشفته من الأصل في 23 فبراير2017. اطلع عليه بتاريخ 29 يوليو 2018. 

وصلات خارجية[عدل]