خطوات الاستخدام
أدخل حجم الحمولة الفعلية (بالبايت) الذي تريد إرساله عبر نفق IPSec ESP. هذا هو حجم البيانات الأصلية قبل التشفير، مثل حزمة IP كاملة أو جزء منها. كلما زاد الحجم، زادت نسبة الحمل الإضافي.
اختر نوع التشفير المستخدم: AES-GCM أو AES-CBC. AES-GCM يوفر تشفيرًا مع مصادقة مضمنة (ICV) ولا يحتاج إلى حشو إضافي (padding)، بينما AES-CBC يتطلب حشوًا لجعل الحمولة مضاعفًا لحجم الكتلة (16 بايت).
اضغط على زر 'احسب' ليقوم الحاسب بحساب الحجم الإجمالي للحزمة بعد إضافة حمل IPSec ESP. مكوّنات الحمل هي: رأس ESP (SPI + Sequence Number) = 8 بايت، ومتجه التشفير IV = 8 بايت، ثم الحقول الختامية pad length و next header = بايت لكل منهما، وأخيراً ICV: 12 بايت مع AES-CBC (HMAC-SHA1-96) و 16 بايت مع AES-GCM (وسم المصادقة). الفرق الأساسي: AES-CBC يفرض حشواً يجعل (الحمولة + الحشو + بايتا الذيل) مضاعفاً لـ 16 بايت، ويُحسب الحشو بـ (16 − ((payloadSize + 2) mod 16)) mod 16؛ أما AES-GCM (وضع العداد) فلا يحتاج حشواً ويكون الحشو صفراً. وبذلك: overhead(GCM) = 8+8+1+1+16 = 34؛ overhead(CBC) = 8+8+1+1+12 = 30 + الحشو.
راجع النتيجة: سيظهر لك حجم الحزمة النهائي (بالبايت) والحمل الإضافي (بالنسبة المئوية أو بالبايت). يمكنك تعديل الإدخالات ومقارنة أنواع التشفير المختلفة.
استخدم هذه المعلومات لتخطيط سعة الشبكة وتقليل التجزئة (fragmentation). مثلاً، إذا تجاوز الحجم الإجمالي MTU (1500 بايت)، فسيحدث تجزئة وقد تحتاج لضبط MSS.
أمثلة محلولة
تطبيقات عملية على الحمل الإضافي IPSec بخطوات الحل كاملة.
الحل
أدخل payloadSize=1400 و cipher=aes-cbc. أولاً، نحتاج لحساب الحشو (padding). يجب أن يكون إجمالي البيانات (payload + padding + pad length + next header) مضاعفًا لـ 16 (block size). لذا نحسب: padding = (16 - ((payloadSize + 2) % 16)) % 16. في هذا المثال: (1400+2)=1402; 1402 mod 16 = 10; padding = (16-10) % 16 = 6. ثم overhead ثابت: header (8) + IV (8) = 16; padding + pad length (1) + next header (1) = 6+1+1=8; ICV (12) = 12. المجموع: 16+8+12=36 بايت. الحجم الإجمالي = 1400 + 36 = 1436 بايت. نسبة الحمل الإضافي = 36/1400 ≈ 2.57%.
الحل
مع AES-GCM، لا حاجة للحشو للحفاظ على مضاعفات الكتلة لأن GCM لا يتطلب ذلك (يستخدم counter mode). لكن قد يكون هناك حشو طفيف لمحاذاة الحزمة؟ عملياً، padding = 0 أو قليل (لتلبية حد الحجم). غالبًا ما تفترض الحاسبات padding=0. إذن overhead: header (8) + IV (8) = 16; padding (0) + pad length (1) + next header (1) = 2; ICV (16) = 16; المجموع = 34 بايت. الحجم الإجمالي = 1400 + 34 = 1434 بايت. نسبة إضافية أقل قليلاً (34/1400 ≈ 2.43%). لكن ملاحظة: AES-GCM يحتاج عادةً لـ IV بحجم 8 أو 12 بايت، هنا اخترنا 8. في بعض التطبيقات قد يكون 12. كما أن ICV في GCM هو 12 أو 16 بايت. سنفترض 16. يجب على المستخدم معرفة الإعدادات الدقيقة لشبكته.
أمثلة محسوبة
قيم مُدخَلة ونتيجة محسوبة فعليًا بواسطة الحمل الإضافي IPSec.
مرجع — حمولة 1400 بايت مع AES-CBC (حشو 6 بايت)
- حجم الحمولة (بايت)
- 1,400
- نوع التشفير
- aes-cbc
مرجع — نفس الحمولة مع AES-GCM (بلا حشو)
- حجم الحمولة (بايت)
- 1,400
- نوع التشفير
- aes-gcm
مرجع — حمولة MSS كاملة تصبح 1500 بايت بعد CBC
- حجم الحمولة (بايت)
- 1,460
- نوع التشفير
- aes-cbc
مرجع — حمولة 16 بايت: الحمل يفوق البيانات نفسها
- حجم الحمولة (بايت)
- 16
- نوع التشفير
- aes-gcm