حاسبة نافذة TCP للإنتاجية
تحتاج سرعة 100 ميغابت في الثانية مع زمن ذهاب وإياب 50 ميلي ثانية إلى 625,000 بايت قيد الإرسال، أي أكثر بكثير من نافذة TCP التقليدية البالغة 65,535 بايت: أدخل السرعة والزمن لتعرف حجم النافذة وعامل التوسيع. مجانية في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- معدل النقل (Mbps)
- 100
- Rtt ms
- 50
- النافذة (بايت)
- 625,000
- النافذة (بت)
- 5,000,000
- النافذة (KiB)
- 610.3515625
- النافذة (MiB)
- 0.5960464478
الشبكات الطويلة عالية السعة —عرض نطاق كبير مضروبًا في زمن انتقال مرتفع— تُجهد TCP ما لم تكن نافذة الاستقبال كبيرة بما يكفي لإبقاء الأنبوب ممتلئًا خلال زمن ذهاب وإياب كامل. يحتاج مهندسو الشبكات وSRE والطلاب الذين يحدّدون أبعاد وصلات WAN أو مسارات الأقمار أو أنفاق السحابة بين المناطق إلى ناتج عرض النطاق والتأخير، لا إلى قاعدة تقريبية. تقبل حاسبة حجم نافذة TCP للإنتاجية معدل الإنتاجية المستهدف بالميغابت في الثانية وRTT المسار بالميلي ثانية، وتضربهما بمعامل التحويل الدقيق إلى بايتات، وتعيد النافذة المطلوبة بالبايت والبت والكيبيبايت والميبيبايت. كما تشير متى تكون نافذة TCP الكلاسيكية البالغة 65535 بايت بلا تحجيم صغيرة جدًا، وتوصي بأدنى إزاحة Window Scale وفق RFC 1323، وتُظهر أقصى إنتاجية يمكن بلوغها بلا تحجيم عند نفس RTT.
لماذا يساوي حجم النافذة عرض النطاق مضروبًا في التأخير
لا يمكن لـ TCP أن يحتفظ ببيانات غير مؤكدة تتجاوز النافذة التي يعلنها المستقبل (ونافذة الازدحام لدى المرسل). على مسار بسعة C بت في الثانية وزمن ذهاب وإياب R ثانية، تكون كمية البيانات التي يجب أن تكون في الطريق لاستغلال الوصلة بالكامل هي C مضروبًا في R — ناتج عرض النطاق والتأخير. اقسموا على ثمانية للتعبير عن الناتج بالبايت؛ هذا الرقم هو الحد الأدنى لنافذة الاستقبال لنقل بمعدل كامل في الحالة المستقرة إذا لم يكن التحكم بالازدحام هو القيد.
بوحدات هندسية مريحة، ميغابت في الثانية × ميلي ثانية × 125 تعطي بايتات، لأن ميغابتًا واحدًا في الثانية يعادل مئة وخمسة وعشرين ألف بايت في الثانية والميلي ثانية جزء من ألف من الثانية. مثال: مئة ميغابت في الثانية عند خمسين ميلي ثانية تحتاج ستمئة وخمسة وعشرين ألف بايت في الطريق. بدون هذا عمق المخزن المؤقت يفرغ المرسل نافذته ويتوقف وينتظر الإقرارات، فينخفض goodput المقاس كثيرًا دون معدل الخط رغم سلامة الوصلة المادية.
تُحدّد هذه النقطة حجم النافذة من BDP فقط؛ ولا تُنمذج فقدان الحزم أو slow start أو bufferbloat، فهي أدوات منفصلة في تخطيط السعة.
أين تثبت حاسبة نافذة TCP والإنتاجية قيمتها
يستخدم مصممو WAN ومراكز البيانات حاسبة حجم نافذة TCP قبل ترقية الدوائر حتى تطابق مخازن الاستقبال وافتراضات نظام التشغيل BDP الجديد بدل التخمين. يحوّل مهندسو السحابة الذين يحدّدون أبعاد تكرار قواعد البيانات بين المناطق أو نقل تخزين الكائنات RTT المنشور والميغابت المستهدف إلى بايتات مخزن ملموسة لخطط اختبار الحمل. تُظهر فرق backhaul الفضائي والجوال لماذا تظل وصلات متعددة الميغابت بطيئة عندما يكون RTT مئات الميلي ثانية وWindow Scale معطّلًا.
تحتاج القاعات ومختبرات الشهادات إلى مَرْجِع حتمي لواجبات ناتج عرض النطاق والتأخير يطابق وحدات الكتاب دون أخطاء جداول. تستفيد مواقع المحتوى التي تستهدف عبارات مثل حاسبة حجم نافذة TCP للإنتاجية من ويدجت حي يطابق مساره المجاني في المتصفح مسار الأتمتة المدفوع بايتًا ببايت على الوحدة الخالصة نفسها. التحقق الفاشل لا يستهلك الرصيد.
أبقوا الفقدان والإيقاع والتحكم بالازدحام في أدواتكم؛ واستخدموا هذه النقطة مصدر الحقيقة الوحيد لحساب BDP حتى تخطط الوثائق وrunbooks وعمال الحافة بالطريقة نفسها.
حالات الاستخدام
تخطيط سعة WAN وLFN
حوّلوا ميغابت/ث المستهدف وRTT المقاس إلى نافذة الاستقبال (وإزاحة التحجيم) اللازمة لملء مسار شبكة طويل عالي السعة.
تحجيم النقل السحابي بين المناطق
حدّدوا مخازن المقابس لتكرار قاعدة البيانات أو النسخ الاحتياطي أو الكائنات حتى لا تُحدّ الإنتاجية بنافذة غير مُحجَّمة قدرها 64 KiB.
الأسئلة الشائعة
ما ناتج عرض النطاق والتأخير (BDP)؟
BDP هو معدل الوصلة مضروبًا في RTT: البيانات التي يجب أن تكون في الطريق لإبقاء المسار ممتلئًا. ينبغي أن تكون نافذة TCP المعلنة على الأقل بهذا العدد من البايتات (دون حدود الازدحام).
هل يُنمذج هذا فقدان الحزم أو التحكم بالازدحام؟
لا. يحدّد حجم النافذة من BDP فقط حتى يمتلئ الأنبوب. الفقدان وتغيّر RTT ونوافذ الازدحام منفصلة؛ استخدموا أدوات أخرى لها.
كيف أحسب حجم نافذة TCP من السرعة وزمن الذهاب والإياب؟
اضرب السرعة بالميغابت في الثانية في زمن الذهاب والإياب بالميلي ثانية ثم في 125 لتحصل على البايتات. مع 100 ميغابت و50 ميلي ثانية يلزم 625,000 بايت قيد الإرسال لملء الرابط.
متى أحتاج إلى توسيع نافذة TCP؟
عندما تتجاوز النتيجة 65,535 بايت، وهو أقصى ما تعلنه نافذة TCP دون توسيع. وبالنسبة إلى 625,000 بايت تكون أصغر إزاحة لازمة هي 4، فيرتفع الحد الأقصى إلى 1,048,560 بايت.
ما أقصى سرعة للنقل دون توسيع النافذة؟
لا يتجاوز النقل 65,535 بايت في كل ذهاب وإياب. وعلى مسار زمنه 50 ميلي ثانية يصبح الحد 10.4856 ميغابت في الثانية مهما كانت سرعة الرابط، ولهذا تبطؤ عمليات النسخ البعيدة دون توسيع.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/tcp-window-for-throughput \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"throughput_mbps":100,"rtt_ms":50}'const res = await fetch("https://api.kit.forhosting.com/dev/tcp-window-for-throughput", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"throughput_mbps": 100,
"rtt_ms": 50
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/tcp-window-for-throughput",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"throughput_mbps": 100,
"rtt_ms": 50
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/tcp-window-for-throughput", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"throughput_mbps":100,"rtt_ms":50}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"throughput_mbps":100,"rtt_ms":50}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/tcp-window-for-throughput", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"throughput_mbps": 100,
"rtt_ms": 50
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.tcp_window_for_throughput",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
الحسابات خالصة وحتمية: ويدجت المتصفح المجاني ومسار API المدفوع يتشاركان الوحدة نفسها حتى لا تختلف خطط السعة عن اختبارات الأتمتة. المدخلات غير الموجبة تفشل بـ invalid_input ولا تُفوتر.
عقد الإدخال وWindow Scale وحقول الاستجابة
اقرنوا النتيجة بـ sysctl أو خيار المقبس في مكدسكم لمخزن الاستقبال وWindow Scale؛ هذه الحاسبة لا تدفع إعدادًا إلى المضيفين. أرسلوا جسم JSON عبر POST برقمين موجبين محدودين إلزاميين: throughput_mbps وهو معدل goodput أو معدل الوصلة المستهدف بالميغابت في الثانية، وrtt_ms وهو زمن الذهاب والإياب من الطرف إلى الطرف بالميلي ثانية. قد يصل كل حقل كرقم JSON أو كسلسلة رقمية. الحقول الناقصة والقيم غير المحدودة والصفر والسالبة تفشل بـ invalid_input مع رسالة تسمي الحقل؛ ولا تُفوتر هذه الإخفاقات. عند النجاح يعيد الجسم المدخلات، ويعيد window_bytes وwindow_bits وwindow_kib وwindow_mib لـ BDP، وclassic_max_window_bytes يساوي 65535، وwindow_scale_needed يساوي true عندما يتجاوز BDP ذلك الحد الكلاسيكي، وwindow_scale_shift كأصغر إزاحة RFC 1323 تُضاعف النافذة ذات الستة عشر بتًا بما يكفي لتغطية BDP (بحد أقصى 14)، وscaled_max_window_bytes يساوي 65535 مضروبًا في اثنين مرفوعًا إلى تلك الإزاحة، وmax_throughput_mbps_without_scale لنفس RTT إن بقيتم بلا تحجيم، وسلسلة صيغة قصيرة. مثال: throughput_mbps مئة وrtt_ms خمسون تعطيان 625000 لـ window_bytes وwindow_scale_needed true.
أين تثبت حاسبة نافذة TCP والإنتاجية قيمتها
ولأن التنفيذ pure parse من المستوى A، تكلف كل مكالمة ناجحة السعر الأساسي المنشور $0.002 دون رموز نموذج ودون شبكة صادرة.
حالات التكامل
تعليم ناتج عرض النطاق والتأخير
قدّموا للطلاب مرجع BDP حتميًا يعيد window_bytes ويشرح متى يصبح Window Scale وفق RFC 1323 إلزاميًا.
أسئلة تقنية
كيف أحسب حجم نافذة TCP لمعدل إنتاجية مستهدف؟
أرسلوا throughput_mbps وrtt_ms موجبين. تعيد API القيمة window_bytes = throughput_mbps × rtt_ms × 125 (ناتج عرض النطاق والتأخير بالبايت)، إضافة إلى البت وKiB وMiB.
متى يُطلب Window Scale؟
عندما يتجاوز window_bytes القيمة 65535، نافذة TCP الكلاسيكية بلا تحجيم. تضع الاستجابة window_scale_needed على true وتعطي أدنى window_scale_shift (RFC 1323).
كم تكلفة حاسبة نافذة TCP والإنتاجية؟
أداة المتصفح مجانية. طلبات API تستخدم رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل مكالمة ناجحة؛ الإدخال غير الصالح لا يُفوتر.