خطوات الاستخدام
أدخل حجم نافذة الازدحام الأولية (initialWindow) بالحزم. هذا هو عدد الحزم التي يمكن إرسالها دون انتظار تأكيد استلام في بداية الاتصال. القيمة الافتراضية عادةً هي 10 حزم (RFC 6928). كلما زادت هذه القيمة، زادت سرعة البدء، لكنها قد تسبب ازدحامًا في الشبكات البطيئة.
أدخل معدل البيانات المستهدف (targetRate) بوحدة بت في الثانية (bps). هذا هو المعدل الذي ترغب في الوصول إليه بعد مرحلة البداية البطيئة. على سبيل المثال، 1 جيجابت في الثانية = 1,000,000,000 بت/ثانية. ملاحظة: المعدل الفعلي يعتمد على حجم القطعة (MSS)، والذي نفترضه هنا 1460 بايت (أي 11680 بت) بناءً على القيمة النموذجية في شبكات Ethernet.
أدخل وقت الرحلة ذهابًا وإيابًا (RTT) بوحدة المللي ثانية كما يطلبها الحقل، وتحوّله الحاسبة داخليًا بقسمته على 1000. هذا هو الزمن اللازم لإرسال حزمة من المصدر إلى الوجهة واستلام تأكيد استلامها. يتراوح عادةً بين بضعة ملِي ثوانٍ للشبكات المحلية (مثل 20) ومئات الملِي ثوانٍ للشبكات البعيدة (مثل 200)، وسقفه في الحاسبة 10000 مللي ثانية.
أدخل أقصى حجم للقطعة (MSS) بالبايت. قيمته النموذجية فوق Ethernet هي 1460 بايت، وقد ينخفض إلى 512 في بعض الشبكات أو يرتفع مع إطارات Jumbo. تضربه الحاسبة في 8 لتحويله إلى بت قبل التطبيق، فلا تحتاج إلى حساب التحويل يدويًا كما كان موضَّحًا في الإصدار السابق.
تقوم الحاسبة بحساب المدة الزمنية اللازمة للوصول إلى المعدل المستهدف باستخدام الصيغة: \( \text{Time} = \log_2\left(\frac{\text{targetRate} \times \text{RTT}}{\text{initialWindow} \times \text{MSS}}\right) \times \text{RTT} \)، حيث MSS (أقصى حجم للقطعة) = 1460 بايت × 8 = 11680 بت. تعتمد هذه الصيغة على تضاعف نافذة الازدحام كل RTT حتى الوصول إلى المعدل المطلوب. ونقطتان تنفيذيتان تُطبقهما الحاسبة بعد اللوغاريتم: الأولى أن عدد الدورات يُقرَّب لأعلى إلى عدد صحيح لأن التضاعف يقع في دورات منفصلة لا في كسر دورة، والثانية أن الناتج يُجبر على الصفر إذا كانت النافذة الابتدائية تكفي أصلًا (لأن اللوغاريتم يصبح سالبًا، والمدة زمنيةٌ لا يمكن أن تكون سالبة). فتكون المدة النهائية = عدد الدورات بعد التقريب × RTT بالمللي ثانية، وتعرض التفاصيلُ MSS بالبت والنافذة اللازمة بالحزم وعدد الدورات النظري والمقرَّب والمدة بالثواني.
أمثلة محلولة
تطبيقات عملية على مدة البداية البطيئة TCP بخطوات الحل كاملة.
الحل
أولاً، نحسب قيمة MSS بالبت: 1460 بايت × 8 = 11680 بت. نطبق الصيغة: \( n = \log_2\left(\frac{1,000,000,000 \times 0.02}{10 \times 11680}\right) = \log_2\left(\frac{20,000,000}{116,800}\right) \approx \log_2(171.23) \approx 7.42 \) دورة RTT. المدة النظرية = n × RTT = 7.42 × 0.02 = 0.1484 ثانية، ولكن بما أن النافذة تتضاعف في دورات كاملة فقط فإن n يُقرَّب لأعلى إلى 8 دورات، وتكون المدة التي تُخرجها الحاسبة 8 × 20 = 160 ملي ثانية (0.16 ثانية). هذا يعني أن الاتصال يحتاج إلى نحو 0.16 ثانية للوصول إلى سرعة 1 جيجابت/ثانية في ظل ظروف مثالية (بدون فقدان حزم) وبتقدير MSS = 1460 بايت المُدخل في الحاسبة.
الحل
MSS = 11680 بت. تطبيق الصيغة: \( n = \log_2\left(\frac{100,000,000 \times 0.2}{10 \times 11680}\right) = \log_2\left(\frac{20,000,000}{116,800}\right) \approx \log_2(171.23) \approx 7.42 \) (نفس القيمة لأن حاصل ضرب targetRate × RTT هو نفسه: 100Mbps × 0.2 = 20M, و 1Gbps × 0.02 = 20M). المدة النظرية = 7.42 × 0.2 = 1.484 ثانية، وبعد تقريب الدورات إلى 8 كاملة تُخرج الحاسبة 8 × 200 = 1600 ملي ثانية (1.6 ثانية). أي أن الوصول إلى 100 ميجابت/ثانية يستغرق نحو 1.6 ثانية بسبب ارتفاع زمن الاستجابة، مع أن عدد الدورات هو نفسه في المثال الأول لأن حاصل ضرب targetRate × RTT لم يتغيّر (100Mbps × 0.2 = 20M, و 1Gbps × 0.02 = 20M). هذا يبين أن المدة تُقاس بعدد دورات RTT وبتضخيم من RTT نفسه.
أمثلة محسوبة
قيم مُدخَلة ونتيجة محسوبة فعليًا بواسطة مدة البداية البطيئة TCP.
مرجع — جيجابت على شبكة محلية (20 ms)
- النافذة الابتدائية (حزم)
- 10
- المعدل المستهدف (بت/ثانية)
- 1,000,000,000
- زمن الرحلة ذهاباً وإياباً (مللي ثانية)
- 20
- أقصى حجم للقطعة MSS (بايت)
- 1,460
- النافذة المطلوبة (حزم)
- 1,712.33
- MSS بالبت
- 11,680
- RTT بالثواني
- 0.02
- عدد دورات RTT النظرية
- 7.42
- عدد دورات RTT المقرب
- 8
- المدة بالثواني
- 0.16
مرجع — مئة ميغابت عبر رابط بعيد (200 ms)
- النافذة الابتدائية (حزم)
- 10
- المعدل المستهدف (بت/ثانية)
- 100,000,000
- زمن الرحلة ذهاباً وإياباً (مللي ثانية)
- 200
- أقصى حجم للقطعة MSS (بايت)
- 1,460
- النافذة المطلوبة (حزم)
- 1,712.33
- MSS بالبت
- 11,680
- RTT بالثواني
- 0.2
- عدد دورات RTT النظرية
- 7.42
- عدد دورات RTT المقرب
- 8
- المدة بالثواني
- 1.6
مرجع — المعدل المستهدف مُتحقَّق ابتداءً
- النافذة الابتدائية (حزم)
- 10
- المعدل المستهدف (بت/ثانية)
- 1,000,000
- زمن الرحلة ذهاباً وإياباً (مللي ثانية)
- 20
- أقصى حجم للقطعة MSS (بايت)
- 1,460
- النافذة المطلوبة (حزم)
- 1.71
- MSS بالبت
- 11,680
- RTT بالثواني
- 0.02
- عدد دورات RTT النظرية
- -2.55
- عدد دورات RTT المقرب
- 0
- المدة بالثواني
- 0
مرجع — MSS صغير (512) يبطئ الوصول
- النافذة الابتدائية (حزم)
- 10
- المعدل المستهدف (بت/ثانية)
- 100,000,000
- زمن الرحلة ذهاباً وإياباً (مللي ثانية)
- 100
- أقصى حجم للقطعة MSS (بايت)
- 512
- النافذة المطلوبة (حزم)
- 2,441.41
- MSS بالبت
- 4,096
- RTT بالثواني
- 0.1
- عدد دورات RTT النظرية
- 7.93
- عدد دورات RTT المقرب
- 8
- المدة بالثواني
- 0.8