خطوات الاستخدام
الخطوة 1: فهم مفهوم تحجيم نافذة TCP. في بروتوكول TCP، يتم استخدام حقل 'حجم النافذة' (Window Size) للإعلان عن عدد البايتات التي يمكن للمستلم استقبالها دون تأكيد. هذا الحقل محدود بـ 16 بت، مما يحدد أقصى قيمة نظرية تبلغ 65535 بايت. ومع ذلك، مع ظهور الشبكات عالية السرعة وارتفاع زمن الوصول (Latency)، أصبحت هذه القيمة غير كافية لتحقيق الاستفادة القصوى من عرض النطاق الترددي. لذلك تم تقديم آلية تحجيم النافذة (Window Scaling) في RFC 1323، والتي تسمح بضرب قيمة النافذة في عامل (Scale Factor) لزيادة الحجم الفعلي. العامل هو عدد صحيح من 0 إلى 14، ويتم التفاوض عليه أثناء مرحلة إنشاء الاتصال (Three-way Handshake). الصيغة الرياضية: الحجم الفعلي = حجم النافذة المعلن × 2^عامل التحجيم.
الخطوة 2: إدخال قيمة حجم النافذة (Window Size). هذه القيمة هي الرقم الصحيح الموجود في حقل حجم النافذة في رأس TCP (عادةً ما بين 0 و65535). يجب إدخالها بالبايت. لاحظ أن هذه القيمة هي التي يعلنها المستقبل (Receiver) وليس المرسل. قد تكون هذه القيمة هي القيمة الافتراضية لنظام التشغيل أو تم تعديلها يدويًا. مثال: في نظام Windows، يمكن أن تكون القيمة الافتراضية 65535 إذا تم تمكين تحجيم النافذة، لكن القيمة الفعلية قد تكون أقل بسبب إعدادات أخرى.
الخطوة 3: إدخال عامل التحجيم (Scale Factor). عامل التحجيم هو عدد صحيح يتراوح من 0 إلى 14. يتم تحديده أثناء التفاوض على الاتصال، ويشير إلى عدد البتات التي سيتم إزاحتها لليسار (Left Shift) على قيمة حجم النافذة. على سبيل المثال، إذا كان عامل التحجيم = 7، فهذا يعني أن النافذة الفعلية ستكون حجم النافذة مضروبًا في 2^7 = 128. يمكن الحصول على عامل التحجيم من خلال مراقبة حزمة TCP SYN أو SYN-ACK في برنامج مثل Wireshark. غالبًا ما تستخدم الأنظمة عوامل مثل 3 أو 6 أو 7 أو 8 حسب حالة الشبكة.
الخطوة 4: حساب حجم النافذة الفعلي. تقوم حاسبة تحجيم نافذة TCP بضرب قيمة حجم النافذة في 2^عامل التحجيم. الناتج هو حجم النافذة الفعلي بالبايت، والذي يمثل عدد البايتات التي يمكن للمستلم استقبالها دون إرسال تأكيد. يمكن تحويل هذه القيمة إلى كيلوبايت (KB) أو ميجابايت (MB) أو حتى جيجابايت (GB) بقسمتها على 1024 أو 1,048,576 حسب الحاجة. تذكر أن هذا الحجم يؤثر بشكل كبير على الإنتاجية (Throughput)، خاصة في الشبكات ذات زمن الوصول العالي (High RTT).
الخطوة 5: تفسير النتيجة واستخدامها. حجم النافذة الفعلي هو أقصى كمية من البيانات يمكن إرسالها قبل انتظار تأكيد. لتحقيق أقصى أداء، يجب أن يكون حجم النافذة مساويًا على الأقل لمنتج عرض النطاق الترددي وزمن الوصول (Bandwidth-Delay Product). على سبيل المثال، إذا كان عرض النطاق الترددي 100 Mbps وزمن الوصول 100 مللي ثانية، فإن منتج التأخير-العرض هو 100 Mbps × 0.1 s = 10 Mbits = 1.25 MB. يفضل أن تكون نافذة TCP أكبر من هذه القيمة لضمان عدم وجود فترات خمول. يمكن استخدام هذه الحاسبة لتحديد عامل التحجيم المناسب أو لتحليل أداء الشبكة الحالي.
أمثلة محلولة
تطبيقات عملية على تحجيم نافذة TCP بخطوات الحل كاملة.
الحل
لحساب حجم النافذة الفعلي: نستخدم الصيغة: الحجم الفعلي = حجم النافذة × 2^عامل التحجيم = 20000 × 2^7 = 20000 × 128 = 2,560,000 بايت. نقوم بتحويله إلى ميجابايت: 2,560,000 / 1,048,576 ≈ 2.44 ميجابايت. لحساب الإنتاجية القصوى النظرية: الإنتاجية = حجم النافذة / زمن الوصول (RTT). الإنتاجية = 2.44 MB / 0.2 s = 12.2 MB/s = 97.6 Mbps. لكن عرض النطاق هو 1 جيجابت/ثانية (1000 Mbps)، لذا فإن الإنتاجية محدودة بحجم النافذة وليست بعرض النطاق. لتحقيق الاستفادة الكاملة من عرض النطاق، يجب أن يكون حجم النافذة على الأقل: (1000 Mbps × 0.2 s) / 8 = 25 MB. لذا فإن النافذة الحالية (2.44 MB) غير كافية، ويجب زيادة عامل التحجيم إلى مثلاً 13 (لتعطي 20000 × 8192 = 163.84 MB) للسماح بإنتاجية أعلى. هذا المثال يوضح أهمية تحجيم النافذة في الشبكات ذات زمن الوصول العالي.
الحل
الحجم الفعلي = 65535 × 2^14 = 65535 × 16384 = 1,073,725,440 بايت ≈ 1.074 جيجابايت. هذا حجم كبير جدًا، وهو أقصى حجم نظري يمكن تحقيقه باستخدام عامل تحجيم 14. بالنسبة لشبكة LAN بزمن وصول 1 مللي ثانية وعرض نطاق 40 جيجابت/ثانية، فإن منتج التأخير-العرض = 40 Gbps × 0.001 s = 40 Mbits = 5 MB. حجم النافذة 1.074 جيجابايت أكبر بكثير من 5 MB، مما يعني أن الإنتاجية ستكون محدودة بعرض النطاق وليس بحجم النافذة. في الواقع، يمكن أن يؤدي حجم النافذة الكبير جدًا إلى مشاكل في الذاكرة أو فيضان المخزن المؤقت، ولكن في هذه الحالة، بما أن زمن الوصول صغير، فإن الإنتاجية ستصل إلى 40 جيجابت/ثانية. لكن من الناحية العملية، تستخدم أنظمة التشغيل عوامل تحجيم أصغر لتجنب هدر الموارد. هذا المثال يوضح أنه ليس من الضروري دائمًا استخدام أكبر عامل تحجيم، بل يجب أن يكون متناسبًا مع ظروف الشبكة.
أمثلة محسوبة
قيم مُدخَلة ونتيجة محسوبة فعليًا بواسطة تحجيم نافذة TCP.
أوراكل — خادم على شبكة عالية زمن الوصول
- حجم النافذة
- 20,000
- عامل التحجيم (0-14)
- 7
أوراكل — أقصى نافذة قابلة للتمثيل
- حجم النافذة
- 65,535
- عامل التحجيم (0-14)
- 14
أوراكل — TCP بلا Window Scaling
- حجم النافذة
- 65,535
- عامل التحجيم (0-14)
- 0
أوراكل — أصغر نافذة معلنة
- حجم النافذة
- 1
- عامل التحجيم (0-14)
- 14
أوراكل — قوى الاثنين النقية
- حجم النافذة
- 16,384
- عامل التحجيم (0-14)
- 8