تتكون رزمة الإصدار الرابع من بروتوكول الإنترنت من ترويسة وحمُولة. يتراوح حجم الترويسة بين 20 و60 بايتاً، أمّا حجم الرزمة ككل، أي الترويسة والحمولة معاً، فمن الممكن أن يصل نظريّاً حتى 65535 بايت.
تتكوّن الترويسة من نوعين من الحقول، هي الحقول الإلزامية والخيارات. أمّا الحقول الإلزاميّة فهي بطول 20 بايتاً، وتُمثّل الحقول التي توجد دائماً في الترويسة، وأمّا الخيارات، فهي حقول غير إلزاميّة قد تُلحق بالترويسة، ويمكن أن يصل طولها الأعظم في رزمة واحدة إلى 40 بايت، وقد وصِفت بنية الحقول واستعمالتها في معيار البروتوكول.
الحقول الإلزاميّة
- حقل الإصدار: بطول 4 بت، ويحتوي دائماً على القيمة 4 في كل رزم الإصدار الرابع من بروتوكول الإنترنت.
- حقل طول الترويسة: بطول 4 بت، ويُحدد موقع نهاية الترويسة وبداية الحمولة، وهو يحتوي عدداً يُمثل عدد الكلمات بطول 32 بت، أو 4 بايت، المُوجودة في لترويسة، وبما أن طول الترويسة بدون خيارات هو 20 بايت، فإنّ أصغر قيمة صحيحة مُمكنة لهذا الحقل هي 5.
- حقل نوع الخدمة: بطول 8 بت، ويحتوي على تراميز خاصّة تُحدد جودة الخدمة QoS المطلوبة لنقل الرزمة، وتحديداً من خلال ضبط مُحددات: أحقية المُضيف والتأخير والإنتاجية والوثوقية. حُددت قيم المُحددات المستعملة لضبط هذا الحقل أولاً في معيار البروتوكول، ثُمّ في وثيقة طلب التعليقات RFC 1349 ، ثُمّ في الوثيقة RFC 2474.
- حقل الطول الإجمالي: بطول 16 بت، يُحدد حجم رزمة البيانات مُقدراً بالبايت. إنّ أكبر قيمة يمكن ترميزها في هذا الحقل هي 65535. نظريّاً، تُمثّل هذه القيمة الحجم الأعظم المُمكن لرزمة البيانات الإصدار الرابع من بروتوكول الإنترنت.
- حقل المُعرّف: بطول 16 بت، وهو يُميّز الرزمة وجميع القطع التي تنتج عن عملية تقطيعها، حيث يُساعد هذا الحقل بروتوكول الإنترنت العامل في طرف الوجهة على تمييز القطع الناتجة عن تقطيع رزم مُختلفة عن بعضها البعض ثمّ إعادة تجميعها لإنتاج الرزمة الأصليّة مجدداً، وتصف الوثيقة RFC 6864 كيفية استعمال هذا الحقل.
- حقل الأعلام: بطول 3 بتات، ويحتوي علمين هما علم عدم التقطيع، ويُستخدم لمنع تقطيع الرزمة تحت أي ظرفٍ، وعلم المزيد من القطع، ويُستخدم لتحديد القطعة الأخيرة في الترتيب من مجموعة القطع التي نتجت عن تقطيع رزمة ما. لا تُستخدم هذه الأعلام إلا إذا تمّ تقطيع الرزمة (10).
- حقل إزاحة القطعة: بطول 13 بت، يُستخدم هذا الحقل إذا فقط كانت الرزمة هي قطعة ناتجة عن تقطيع رزمة أكبر، وتُمثّل هذه القيمة إزاحة القطعة عن أول موقع في الرزمة الأصليّة، ويساعد هذا الحقل في إعادة تجميع القطع بشكلٍ سليم لنتاج الرزمة الأصلية في طرف الوجهة، خاصّةً إذا وصلت القطع بترتيبٍ مُغايّر لترتيب الإرسال.أمّا إذا لم تكن الرزمة قطعة من رزمة أكبر فإن هذا الحقل لا يُستعمل ويأخذ القيمة الصفريّة. تكون قيمة الإزاحة المُخزنة في هذا الحقل مقسومة على ثمانيّة، أي إذا احتوى الحقل القيمة 1 فإن قيمة الإزاحة الحقيقية هي 8 بايت، وأكبر قيمة ممكن للإزاحة في هذا الحقل هي: 213=8192، وتقابل 65536 بايت.
- حقل زمن حياة الرزمة: بطول 8 بت، وهو يحتوي عدد القفزات الأعظم الذي يُسمح للرزمة بالقيام بها. تقوم كل عقدة تُعالج الرزمة، كالموجّهات، بإنقاص قيمة حقل زمن الحياة بمقدار 1، وعندما تصل قيمة الحقل إلى الصفر يجب أن يتمّ التخلص من الرزمة. إنّ أقصى قيمة يُمكن أن يحتويها الحقل هي 255، وهي تُمثّل أكبر عدد قفزات مُمكن لمسار رزمة بيانات تدعم الإصدار الرابع من بروتوكول الإنترنت.
- حقل البروتوكول: بطول 8 بت، ويستعمل لأداء وظيفة التنضيد، ويضمّ ترميزاً يُستخدم لتحديد بروتوكول الطبقة التاليّة صُعوداً، تُحدد الهيئة المانحة لعناوين وأرقام الإنترنت قيم التراميز والمُستعملة والبروتوكولات المُقابلة له.
- حقل التحقق الجمعي: بطول 16 بت، ويحتوي ناتج خوارزميّة التحقق الجمعيّ التي تطبّق على حقول الترويسة فقط. تشرح مُحددات البروتوكول الخوارزميّة المُتبّعة لحساب قيمة هذا الحقل، ويجب الانتباه إلى ضرورة إعادة حساب قيمة هذا الحقل عند إجراء أي تغيير في محتوى الترويسة أثناء انتقالها عبر الشبكة، مثل حالات إنقاص قيمة زمن الحياة أو إجراء ترجمة عنوان الشبكة.
- حقل عنوان المصدر: بطول 32 بت، يحتوي عنوان بروتوكول الإنترنت للطرف الذي ولّد الرزمة، والذي يُسمّى مصدر الرزمة.
- حقل عنوان الوجهة: بطول 32 بت، يحتوي عنوان بروتوكول الإنترنت للوجهة النهائيّة للرزمة، والتي تُسمّى وجهة الرزمة.
الخيارات
حقل الخيارات (بالإنجليزية: Options) هو حقل اختياري في ترويسة الإصدار الرابع من برتوكول الإنترنت. قد يحتوي الحقل خياراً واحداً أو أكثر بطول أعظم قد يصل إلى 40 بايت في الرزمة الواحدة. إن ما هو اختياري هو وجود الخيارات في الترويسة من عدمه، أمّا دعمها فهو إلزامي في كل المُضيفين والمُوجّهات التي تدعم الإصدار الرابع من الإنترنت.
ليس هناك طول ثابت للخيار، ولكن لجميع الخيارات بنيّة مشتركة، ولا يشذّ عن هذه البنية إلا خياران فقط هما خيار النهاية وخيار لا عمليّة. يتألّف كل خيار من ثلاث حقول هي حقل النوع وطوله 8 بت، وحقل الطول وطوله 8 بت أيضاً، وحقل القيمة وهو ذو طول متغيّر بحسب الخيار، يتكوّن حقل النوع من ثلاث حقول فرعية هي:
- علم النسخ (بالإنجليزية: Copy flag، اختصاراً C): وهو بت وحيد، يستخدم في حالة تقطيع رزمة البيانات إلى عدد من الرمز الأصغر حجماً، ويحدد فيما إذا كان الخيار سيُنسخ إلى كل الرزم (C=1) أو لا (C=0).
- صنف الخيار: ويتحدد ببتين، وإما أن يكون الخيار خيار تحكم (10(0) = 2(00)) أو خيار تنقيح وقياس (10(2) = 2(10)).
- الرقم: وهو قيمة عددية مميزة لكل خيار، وطوله 5 بتات.
يمكن أن تحتوي الترويسة على أكثر من خيار، ويفصل عندها بين الخيارات خيار لا عمليّة، وتنتهي قائمة الخيارات دوماً بخيار النهاية ، الذي يجب أن ينتهي دائماً عند حدود كلمة بطول 32 بت، وإن لم يتحقق ذلك، يُصار إلى إكمال الفراغ بعدد من بتات الحشو (بالإنجليزية: Padding) للوصول إلى حدود الكلمة. بسبب إمكانية استعمالها لشن هجمات، ولضخامة حجم شبكة الإنترنت، فإن خيارات البروتوكول نادراً ما تستعمل فيها.
المصدر: wikipedia.org