شرح رأس IPv4 و IPv6
مقدمة
يُعد بروتوكولا الإنترنت (IP) من الأسس الحيوية في الشبكات الحديثة. يتم من خلالهما تحديد عنوان الأجهزة المتصلة بالشبكة وتوجيه البيانات بين هذه الأجهزة عبر الإنترنت. يوجد نوعان رئيسيان من بروتوكولات الإنترنت: IPv4 و IPv6. مع تطور التكنولوجيا وازدياد عدد الأجهزة المتصلة بالشبكة، ظهر IPv6 كحل لتوسيع القدرة على العناوين وتوفير مزايا إضافية، في حين ظل IPv4 هو المعيار الأكثر استخدامًا لعدة عقود. يُعد رأس البروتوكول جزءًا أساسيًا في كل من IPv4 و IPv6 لأنه يحتوي على المعلومات الضرورية لتمرير البيانات بين الأجهزة.
في هذا المقال، سنتناول بالتفصيل هيكل رأس كل من IPv4 و IPv6، وأهمية كل حقل فيهما، بالإضافة إلى الاختلافات الرئيسية بينهما.
1. IPv4 Header (رأس IPv4)
يعتبر رأس IPv4 بنية ثابتة تحتوي على العديد من الحقول التي تضمن توجيه البيانات بشكل صحيح عبر الشبكة. يتكون رأس IPv4 من 20 إلى 60 بايت، ويحتوي على 12 حقلًا رئيسيًا، كل منها يؤدي وظيفة معينة.
الهيكل العام لرأس IPv4
تتكون بنية رأس IPv4 من 5 أجزاء أساسية، وهي:
-
Version (الإصدار):
-
الحجم: 4 بت.
-
يحدد الإصدار الذي ينتمي إليه البروتوكول. في حالة IPv4، يكون هذا الحقل دائمًا 4.
-
-
Internet Header Length (طول رأس الإنترنت):
-
الحجم: 4 بت.
-
يحدد عدد الكلمات (word) في رأس IPv4. الكلمة الواحدة تساوي 32 بت أو 4 بايت. هذه القيمة تستخدم لحساب طول الرأس الفعلي عندما يكون هناك خيارات إضافية في الرأس تتجاوز الحجم الافتراضي البالغ 20 بايت.
-
-
Type of Service (نوع الخدمة):
-
الحجم: 8 بت.
-
يحدد كيفية التعامل مع حزم البيانات بناءً على الأولوية. يحتوي هذا الحقل على مجموعة من الخيارات مثل الأولوية، التأخير، القدرة على تحمل الأخطاء، و القدرة على التعامل مع الحزم المفقودة.
-
-
Total Length (الطول الكلي):
-
الحجم: 16 بت.
-
يحدد الطول الكلي للبيانات في الحزمة، بما في ذلك الرأس والبيانات الفعلية.
-
-
Identification (التحديد):
-
الحجم: 16 بت.
-
يستخدم لتحديد الحزم المترابطة التي تنتمي إلى نفس الجلسة. إذا تم تقسيم الحزمة إلى أجزاء أصغر، يتم تعيين نفس التحديد لجميع الأجزاء.
-
-
Flags (الرايات):
-
الحجم: 3 بت.
-
تشير إلى ما إذا كان يجب تقسيم الحزمة أم لا. يحتوي الحقل على معلومات تتعلق بإمكانية تقسيم الحزمة وإعادة تجميعها.
-
-
Fragment Offset (إزاحة التجزئة):
-
الحجم: 13 بت.
-
يستخدم عندما يتم تقسيم حزمة البيانات. يحدد المكان الذي يبدأ فيه الجزء الحالي من البيانات في الحزمة الأصلية.
-
-
Time to Live (TTL):
-
الحجم: 8 بت.
-
يحدد المدة الزمنية التي يمكن أن تظل خلالها الحزمة في الشبكة قبل أن تُعتبر مفقودة ويتم التخلص منها. يتم تقليص هذه القيمة مع مرور كل جهاز توجيه (راوتر) عبره.
-
-
Protocol (البروتوكول):
-
الحجم: 8 بت.
-
يحدد البروتوكول الذي يستخدمه المحتوى داخل الحزمة، مثل TCP أو UDP.
-
-
Header Checksum (تدقيق الرأس):
-
الحجم: 16 بت.
-
يتم استخدامه للتحقق من صحة البيانات في رأس IPv4. إذا كان هناك خطأ في البيانات، يتم التخلص من الحزمة.
-
-
Source Address (عنوان المصدر):
-
الحجم: 32 بت.
-
يحتوي على عنوان IPv4 للجهاز المرسل.
-
-
Destination Address (عنوان الوجهة):
-
الحجم: 32 بت.
-
يحتوي على عنوان IPv4 للجهاز المستقبل.
-
-
Options (الخيارات):
-
الحجم: متغير.
-
يحتوي على معلومات إضافية يمكن استخدامها من أجل تغيير سلوك البروتوكول. لا يُستخدم هذا الحقل عادة في معظم الحالات.
-
-
Padding (التوسيع):
-
الحجم: متغير.
-
يتم استخدامه لضمان أن طول الرأس يكون مضاعفًا للعدد 4 بايت.
-
مثال على رأس IPv4:
| Field | Size (bits) | Description |
|---|---|---|
| Version | 4 | يحدد الإصدار (4 لـ IPv4) |
| IHL (Internet Header Length) | 4 | يحدد طول رأس الإنترنت |
| Type of Service | 8 | يحدد نوع الخدمة |
| Total Length | 16 | يحدد الطول الكلي للحزمة (الرأس + البيانات) |
| Identification | 16 | يحدد معرف الحزمة |
| Flags | 3 | يشير إلى ما إذا كانت الحزمة مجزأة أم لا |
| Fragment Offset | 13 | يحدد مكان تجزئة الحزمة إذا كانت مجزأة |
| TTL (Time to Live) | 8 | يحدد الزمن الذي يمكن أن تظل فيه الحزمة في الشبكة |
| Protocol | 8 | يحدد البروتوكول المستخدم (مثل TCP أو UDP) |
| Header Checksum | 16 | تحقق من صحة الرأس |
| Source Address | 32 | عنوان الجهاز المرسل |
| Destination Address | 32 | عنوان الجهاز المستقبل |
| Options | متغير | خيارات إضافية (اختياري) |
| Padding | متغير | ملء الحقول لضمان مضاعفة الطول |
2. IPv6 Header (رأس IPv6)
في IPv6، تم تحسين هيكل الرأس بشكل كبير مقارنة بـ IPv4 للتكيف مع التحديات المستقبلية مثل عدد الأجهزة المتزايد ومتطلبات الأداء. رأس IPv6 ثابت الطول (40 بايت) على عكس رأس IPv4 الذي يتغير طوله حسب الخيارات.
الهيكل العام لرأس IPv6
يتكون رأس IPv6 من 8 حقول رئيسية:
-
Version (الإصدار):
-
الحجم: 4 بت.
-
يحدد الإصدار الذي ينتمي إليه البروتوكول. في IPv6، يكون دائمًا 6.
-
-
Traffic Class (فئة المرور):
-
الحجم: 8 بت.
-
مشابه لحقل “Type of Service” في IPv4. يُستخدم لتحديد الأولوية وجودة الخدمة (QoS).
-
-
Flow Label (تصنيف التدفق):
-
الحجم: 20 بت.
-
يتيح للأجهزة تصنيف الحزم في تدفقات معينة وتوجيهها بكفاءة.
-
-
Payload Length (طول الحمولة):
-
الحجم: 16 بت.
-
يُحدد طول البيانات في الحزمة بعد الرأس.
-
-
Next Header (الرأس التالي):
-
الحجم: 8 بت.
-
يُشير إلى البروتوكول الذي يليه في الحزمة، مثل TCP أو UDP.
-
-
Hop Limit (حد القفز):
-
الحجم: 8 بت.
-
مشابه لـ TTL في IPv4. يحدد الحد الأقصى لعدد أجهزة التوجيه التي يمكن أن تمر من خلالها الحزمة.
-
-
Source Address (عنوان المصدر):
-
الحجم: 128 بت.
-
عنوان IPv6 للجهاز المرسل.
-
-
Destination Address (عنوان الوجهة):
-
الحجم: 128 بت.
-
عنوان IPv6 للجهاز المستقبل.
-
مقارنة بين رأس IPv4 و IPv6
| الخاصية | IPv4 | IPv6 |
|---|---|---|
| طول الرأس | من 20 إلى 60 بايت | ثابت 40 بايت |
| طول العنوان | 32 بت | 128 بت |
| حجم العناوين | محدود (4.3 مليار عنوان) | لا محدود تقريبًا (عدد هائل من العناوين) |
| حقل التحكم في الوقت | TTL (8 بت) | Hop Limit (8 بت) |
| الحقل المخصص للتصنيف | لا يوجد | يوجد (Flow Label) |
| التجزئة | تدعم التجزئة | لا تدعم التجزئة |
الخاتمة
تعتبر رؤوس IPv4 و IPv6 من العناصر الأساسية في تصميم بروتوكولات الإنترنت. في حين أن رأس IPv4 قديم ويواجه تحديات بسبب الحجم المحدود للعناوين، إلا أن IPv6 يقدم حلولا
