اذا لم تجد ما تبحث عنه يمكنك استخدام كلمات أكثر دقة.
إنّ تقطيع رزم البيانات وإعادة تجميعها هو وظيفة رئيسية لبروتوكولات الشبكة. يدعم الإصداران الرابع والسادس من بروتوكول الإنترنت تقطيع حمولة رزم البيانات التي يتجاوز طولها قيمة محددة، إلى قطع تُستعمل لإنشاء رزم بيانات ذات أطوال أصغر من الرزمة الأصلية. تمرر الرزم المُقطعة إلى طبقة ربط البيانات ليصار إلى تغليفها وإنشاء أطر البيانات.
يكون تقطيع رزمة بيانات الإصدار الرابع من بروتوكول الإنترنت (بالإنجليزية: IP Fragmentation) ضروريّاً عندما يتم توليدها في شبكة محلية أُولى تسمح بحجم كبير لوحدة النقل العظمى الخاصة بطقبة الشبكة، لكنّ مسار الرزمة يقطع شبكة ثانية يكون حجم وحدة النقل العظمى فيها أصغر بالقيمة، وعندها لابد من تقطيع الرزمة في عقدة ما على المسار من أجل أن تصل إلى وجهتها. نتيجة لذلك، يتم توليد رزم بيانات بأطوال أصغر من طول الرزمة الأصلية.
يمكن أن تحصل عملية تقطيع الرزم في المُضيف المصدر الذي يُولّدها، أو في أي عقدة على مسارها نحو وجهتها، ويدعم البروتوكول أيضاً مفهوم التقطيع المتعدد، أي يمكن أن يتم تقطيع رزمة البيانات أكثر من مرة عبر مسارها، ولكن لا يمكن إعادة تجميع الرزمة الأصلية إلا في الوجهة النهائية.
تتكون ترويسة الإصدار الرابع من بروتوكول الإنترنت من 14 حقلاً، لا ترتبط جميعها بعملية التقطيع. الحقول المُرتبطة بعملية التقطيع هي حقل مُعرّف القطعة، وحقل الأعلام وحقل الإزاحة، كما تتأثر قيمة حقلي الطول الإجمالي والتحقق الجمعي بعملية التقطيع وتختلف قيمتها في القطع عن قيمتها في الرزمة الأصلية، بعض الخيارات تُنسخ لكل قطعة، وبعضها لا يُنسخ إلا للقطعة الأولى، ويتحدد ذلك بعلم خاص هو علم النسخ (بالإنجليزية: Copied flag) الذي يوجد في بداية كل خيار.
يمكن للمضيف المصدر أن يُؤشّر الرزم التي لا يريدها أن تُقطّع برفع علم عدم التقطيع، في هذه الحالة لا يتم تقطيع الرزمة أبداً، وفي حال تعذّر إيصال الرزمة بدون تقطيعها، فسيتم التخلص منها. إذا تمّ تقطيع رزمة البيانات في المصدر أو في أي عقدة على المسار فلابد من إعادة تجميع القطع الناتجة في المُضيف الوجهة، ولا يتمّ تجميع قطع الرزمة في أي عقدة على المسار. يُستخدم حقل المُعرّف لتمييز رزمة البيانات الأصلية وجميع القطع الناتجة عن عملية التقطيع، ويقوم المُضيف الوجهة باستعمال هذا الحقل للتمييز بين مجموعات القطع الناتجة عن تقطيع رزم بيانات مختلفة بغرض إعادة تجميعها.
لإعادة تشكيل رزمة البيانات الأصلية، يجب أن يعرف المُضيف الوجهة موقع حمولة القطعة بالنسبة للحمولة الأصلية، ولتحقيق ذلك، هناك حقل خاص في ترويسة البروتوكول هو حقل إزاحة القطعة، وهو يدل على الموقع النسبي لحمولة القطعة قي الرزمة الأصلية. وعند تشكيل الرزمة الأصلية في الوجهة يتم ضبط قيمة حقل الإزاحة فيها إلى الصفر، إذا خضعت الحمولة للتقطيع المتعدد على طول المسار، فإن فيمة الإزاحة تدل دوماً على الموقع النسبي في الرزمة الأصلية، وليس في قطعة ما، مهما تعددت مراحل التقطيع.
حقول ترويسة البروتوكول المُستخدمة في عملية التقطيع:
يجب عدم الخلط بين حقلي المُعرّف وإزاحة القطعة في ترويسة بروتوكول الإنترنت، فحقل المُعرّف هو قيمة مميزة تُعرّف بشكلٍ فريد رزمة البيانات الأصلية وكل القطع الناتجة عن عملية التقطيع سواء تم كمرحلة واحدة أو كان متعدداً، أما حقل الإزاحة فهو يمثل الموقع النسبي للقطعة الناتجة بالنسبة لبقية القطع ضكن رزمة البيانات الأصلية.
وصفت خوارزمية التقطيع في محددات البروتوكول، وهي تتبع المراحل التالية:
أما عملية إعادة التجميع، فهي تجري بشكل معاكس، وهناك عدة خوارزميات لإنجازها، جرى مناقشتها في وثيقة طلب التعليقات RFC 815.
طوّر المهاجمون عدد من الهجمات التي تعتمد على التقطيع أو ثغرة أمنية قد تنتج عن استخدامه، من هذه الهجمات:
نُوقشت هذه الهجمات وطريقة التصدي لكل منها بالتفصيل في وثيقة طلب التعليقات RFC 1858.
في هذا المثال، يُفترض أن طول ترويسة الإصدار الرابع من بروتوكول الإنترنت هي 20 بايت، أي لا يوجد أي خيارات إضافية. إنّ قيمة وحدة النقل العظمى الخاصة بطبقة الشبكة هو 1500 بايت، ويجري التقطيع على مرحلة واحدة فقط لرزمة بيانات طولها الإجمالي هو 5140 بايت، أي أنها مكونة من حمولة هي 5120 وترويسة هي 20 بايت وقيمة المُعرّف في ترويسة بروتوكول الإنترنت فيها هو 345.
إنّ حجم الحمولة الأكثر مُلائمة لحجم وحدة النقل العظمى هو 1480 بايت، وهو يسمح بتشكيل رزمة بيانات ذات طول مُطابق تماماً لحجم وحدة النقل العظمى من خلال تغليف الحمولة 1480 بترويسة البروتوكول 20، ليكون طول الرزمة الأولى الإجمالي هو 1500 بايت، وإزاحتها هي 0 لأنّها تحتوي على القطعة الأولى، ويجب أن يضبط علم المزيد من القطع إلى القيمة 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))، بينما تكون قيم بقية الحقول الخاصة بالتقطيع في الترويسة مُطابقة للقيم في ترويسات الرزم السابقة.
إنّ مجموع أطوال الرزم الناتجة عن عملية التقطيع هو 5200 بايت، وهو أكبر من طول الرزمة الأصلية بمقدار 60 بايتاً أو 1.15%، وهي حمولة إضافية تنتج عن إضافة الترويسات للقطع الناجمة عن عملية التقطيع.
إن تقطيع رزم البيانات التي يتجاوز طولها قيمة محددة بوحدة النقل العظمى لطبقة الشبكة هي وظيفة أساسيّة للإصدار السادس من بروتوكول الإنترنت. بشكلٍ مشابه للإصدار الرابع من بروتوكول الإنترنت، يقوم الإصدار السادس بتقطيع حمولة رزمة بيانات لإنقاص طولها، وينتج عن ذلك مجموعة من القطع التي تستعمل لتنتج رزم بيانات جديدة، أطوالها أقل أو تساوي قيمة وحدة النقل الأعظيمة. ولكن على عكس الإصدار الرابع من بروتوكول الإنترنت، في الإصدار السادس، لا يحدث التقطيع إلا في المُضيف المصدر فقط، ولا تقوم المُوجّهات بتقطيع رزمة بيانات الإصدار السادس تحت أي ظرف، لذلك فإن معرفة وحدة النقل العظمى للمسار هي عملية ذات أهمية خاصة في البروتوكول، وإذا لم يتمكن البروتوكول من تحديدها فإنّه يعتمد أدنى طول مسموح لرزمة البيانات وهو 1260 بايت.
لا تحتوي ترويسة البروتوكول الأساسية على حقول خاصة بعملية التقطيع، ولكن هناك ترويسة أخرى خاصة بالتقطيع تسمى ترويسة القطعة (بالإنجليزية: Fragment Header) يقوم البروتوكول بإضافتها في حال تقطيع الرزمة، إذا أضيفت هذه الترويسة بعد الترويسة الأساسية، يحب أن تكون قيمة حقل "الترويسة التالية" في ترويسة البروتوكول الأصلية مضبوطة إلى القيمة 44.
يبلغ طول ترويسة القطعة 8 بايت، وتتألف من 6 حقول، هي بحسب ترتيب وردوها:
تتألف رزمة بيانات الإصدار السادس من بروتوكول الإنترنت من ترويسة البروتوكول الأساسية، ومجموعة من التوسيعات التي تشمل خيارات إضافية أو ترويسات مُحددة لابد من معالجتها في كل عقدة على المسار، بالإضافة إلى قسم الحمولة الذي يضمّ ترويسات الطبقات العليا، ويكون التقطيع إلزامياً عندما يتجاوز طول الرزمة قيمة وحدة النقل العظمى، والتي غالباً ما تكون وحدة النقل العظمى الدنيا للمسار الذي ستسلكه رزمة البيانات، بخلاف ذلك، تُضبط القيمة بشكلٍ آلي القيمة الدنيا المدعومة لوحدة النقل العظمى في أسوء الحالات وهي 1280 بايت. وُصفت خوارزمية التقطيع في وثيقة طلب التعليقات الخاصة بالبروتوكول.
تتم عملية التقطيع بتقسيم حمولة الرزمة الأصلية إلى عدد من القطع، بحيث لا يزيد طول الرزمة الناتجة عن إضافة ترويسة القطعة وترويسة البروتوكول والتوسيعات إلى أي من القطع عن وحدة النقل العظمى. تكون أطوال القطع الناتجة من مرتبة 8 بايت، أي أن أصغر حمولة قطعة يكون طولها 8 بايت، وثاني أصغر قطعة تكون بطول 16 بايت وهكذا، وتلتزم كل القطع بذلك فيما عدا القطعة الأخيرة.
بشكلٍ عام تنتج عن عملية التقطيع ثلاث حالات مختلفة:
ينتج عن استخدام التقطيع في الإصدار السادس من بروتوكول الإنترنت عدد من الثغرات أمنيّة التي قد تستخدم لشن هجمات مثل هجوم القطعة الصغيرة أو هجوم القطع المتراكبة، وتختلف إمكانية شن الهجمات بحسب نظام التشغيل الذي يستعمل البروتوكول. بشكلٍ مُشابه للإصدار الرابع من بروتوكول الإنترنت، لم تمنع مُحددات الإصدار السادس إنشاء قطع متراكبة عند التقطيع، أي من الممكن أن يتكرار نفس المقطع من الحمولة في أكثر من قطعة، على أن يُعتمد المقطع الوارد في آخر قطعة تمّ استقبالها عند التجميع، يسبب ذلك ثغرة أمنية، ويسمح بتنفيذ هجوم القطع المتراكبة، لاحقاً تمّ التأكيد بوضوح على منع تراكب القطع عند التقطيع في وثيقة طلب التعليقات RFC 5722.
يقبل مُضيف الإصدار السادس من بروتوكول الإنترنت أن تحتوي رزمة البيانات على ترويسة القطعة بدون تكون القطعة ناتجة عن عملية تقطيع، وتسمى هذه القطع بالقطع الذرية (بالإنجليزية: Atomic Fragment) وهي تنتج في حالات خاصة ناقشها المعيار الأصلي للبروتوكول، على الرغم من أن هذه القطع تكون وحداناً، أي لا يجب أن يتم تجميعها مع أي قطع أخرى، فإنّ المُضيف الوجهة يعاملها مُعاملة القطع التي تنتظر التجميع، ما يُسبب ثغرة أمنية، فقد يقوم المهاجم بإرسال قطعة خبيثة مع قيم مُناسبة في ترويسة القطعة، بحيث تكون قطعة ذرية تقبل التجميع مع قطع أخرى خبيثة تُرسل لاحقاً، ناقشت الوثيقة RFC 6946 كيفية معالجة القطع الذرية لتلافي هذا النوع من الهجمات.