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

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

مفهوم الإزاحة

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

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

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

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

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

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

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

التقطيع في طبقة النقل

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

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

في بروتوكول التحكم بالنقل هناك مفهوم خاص مُرتبط بالتقطيع هو مقاس القطعة الأعظمي (بالإنجليزية:  Maximum Segment Size اختصاراً MSS) وهو يحدد الحمولة أو حجم البيانات التي يمكن لمُضيف ما أن يستقبله ضمن قطعة واحدة، يجب الإنتباه إلى أن ترويسة بروتوكول التحكم بالنقل غير مُشمولة ضمن مقاس القطعة الأعظمي، على عكس ووحدة النقل الأعظمية  الخاصة بطبقة الشبكة، التي تشمل ترويسة بروتوكول الشبكة بالإضافة للحمولة في وحدة بيانات بروتوكول تلك الطبقة.
إنّ اختيار مقاس القطعة الأعظمي الخاص ببروتوكول التحكم بالنقل يُؤثّر بشكل مباشر على عملية تقطيع رزم البيانات في طبقة الشبكة، فإذا كانت القيمة كبيرة جداً، كان التقطيع في طبقة الشبكة إلزاميّاً، أمّا إذا كانت صغيرة جداً، فلا يحصل تقطيع أبداً، ولكن الكلفة غير المباشرة لذلك ستكون باهظة ومُؤثّرة على  فعاليّة الإرسال، بسبب وجود حمل إضافي كبير هو مجموع أطوال الترويسات المُضافة إلى الرزم الصغيرة. يتم التحكّم بمقاس القطعة الأعظمي في بروتوكول التحكم بالنقل بشكل آليّ لتكون مُتوافقة مع قيمة النافذة المنزلقة الخاصة بالاتصال الذي قام البروتوكول بإنشائه.
إنّ القيمة الافتراضية لمقاس القطعة الأعظمي هي (536) بايت، وهي تضبط بشكل مستقل لكل طرف، ويمكن التفاوض على قيمتها في الاتجاهين بين الطرفين عند إنشاء الاتصال، ولكن لا يمكن تغييرها بعد ذلك.

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

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

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

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

قضايا أمنية

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

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

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

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

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

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

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

هوامش

1. الرسالة هي رسالة «لا يمكن بلوغ الوجهة» (بالإنجليزية: Destination unreachable Message)، لذلك يضبط حقل النوع في ترويسة البروتوكول إلى القيمة (3) وحقل الترميز إلى القيمة (4)، والتي تعني هناك حاجة للتقطيع ولكن علم عدم التقطيع مرفوع.
2. الرسالة هي رسالة «الرزمة كبيرة جداً» (بالإنجليزية: Packet Too big) لذلك يضبط حقل النوع في ترويسة البروتوكول إلى القيمة (2) وحقل الترميز إلى القيمة (0).
3. يجب التمييز بين بروتوكول طبقة الشبكة وبروتوكول التشبيك، والذي يسمى أيضاً البروتوكول المُوجّه، فالأول تصنيف للبروتوكولات بحسب طبقة نموذج الاتصال المعياري، أما الثاني فهو تصنيف للبروتوكولات بحسب الوظيفة، وبروتوكولات الشبكة هي البروتوكولات التي تقوم بوظائف طبقة الشبكة. إن كل بروتوكول شبكة هو بروتوكول طبقة شبكة، مثل الإصدار الرابع لبروتوكول الإنترنت، ولكن العكس غير صحيح، فبروتوكول رسائل التحكم في الإنترنت  هو بروتوكول طبقة شبكة، ولكنه ليس بروتوكول شبكة.
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) بايت، وثانيها الجسر المٌزوّد الموصوف بالمعيار (IEEE 802.1.ad) الذي يضيف (8) بايت بوسمة خاصة إلى الطول الأصلي فيصبح الطول الإجمالي (1526) بايت، وثالثها أطر الإيثرنت العملاقة (بالإنجليزية:  Jumbo frame) التي تُعرّف بأنها أي إطار إيثرنت يزيد طول حمولته عن (1500) بايت، وغيرها.
6. يسبب استخدام تقنيات أمنية مثل الخصوصية المكافئة للشبكات السلكية (WEP) أو أشكال مختلفة من الوصول الآمن للشبكة اللاسلكية (WPA) لتشفير إطار البيانات زيادة في الحجم الأعظمي قد تصل حتى (20) بايتاً، ليصبح حجم وحدة النقل الأعظمي الأقصى هو (2324) بايت.