نرخ اسمی (PHY) حداکثر سرعت تئوریک یک لینک است، اما پهنای باند واقعی (TCP Throughput) سرعتی است که شما در عمل هنگام انتقال فایل تجربه میکنید. این مقدار به دلیل سربار پروتکل TCP و شرایط شبکه (مانند تأخیر و اتلاف بسته) همیشه کمتر از نرخ اسمی است.
این عدد معمولاً کمتر از پهنای باند خام (raw bandwidth) یا اسمی هست، چون چند عامل باعث افت میشوند:
فرق پهنای باند اسمی و واقعی
- پهنای باند اسمی → ظرفیت فیزیکی لینک (مثلاً لینک فیبر 100Mbps یا وایرلس 50Mbps) که معمولاً در مشخصات تجهیزات نوشته میشه.
- پهنای باند واقعی TCP → سرعتی که بعد از احتساب سربارهای پروتکل (Overhead)، تاخیر (Latency)، و کیفیت لینک، میتوان در عمل روی TCP گرفت.
عوامل کاهش پهنای باند TCP
- سربار پروتکلها :TCP و IP هر کدام هدرهایی دارند (20 بایت برای TCP و 20 بایت برای IPv4)، به علاوه لایههای دیگر (Ethernet، PPP، VLAN و غیره). اینها بخشی از ظرفیت لینک را مصرف میکنند.
- تاخیر و فاصله (Latency / RTT) : TCP مکانیزمی به نام Window Size دارد که تعیین میکند قبل از دریافت تأیید (ACK) چقدر داده میتواند ارسال شود.
اگر تأخیر زیاد باشد و اندازه پنجره کوچک باشد، سرعت نهایی افت میکند. - از دست رفتن بستهها (Packet Loss) : حتی یک درصد کوچک Packet Loss میتواند باعث افت شدید سرعت TCP شود چون این پروتکل نیاز به ارسال مجدد دادههای از دست رفته دارد.
- کنترل ازدحام (Congestion Control) : TCP برای جلوگیری از اشباع شبکه، سرعت ارسال را به تدریج افزایش میدهد و اگر افت بسته رخ دهد، سرعت را کاهش میدهد
این اپلیکیشن یک تخمین واقعبینانه از این سرعت را برای شما محاسبه میکند.
محاسبه تقریبی پهنای باند TCP
پهنای باند واقعی TCP را میتوان با یک فرمول تقریبی تخمین زد. فرمول رایج به نام Mathis TCP Throughput Formula به صورت زیر است:
Throughput ≈ MSS / (RTT × √p)
در این فرمول:
- MSS: Maximum Segment Size یا بیشترین اندازه بسته TCP (به بایت)
- RTT: Round-Trip Time یا زمان رفت و برگشت بستهها (به ثانیه)
- p: نرخ از دست رفتن بستهها (Packet Loss) به صورت عددی بین 0 و 1
با استفاده از این فرمول میتوان دید که حتی اگر یک لینک پهنای باند اسمی بالایی داشته باشد، عوامل مانند تاخیر و از دست رفتن بسته میتوانند سرعت واقعی TCP را به شدت کاهش دهند. به عنوان مثال، اگر MSS = 1460 بایت، RTT = 0.1 ثانیه و Packet Loss = 1% باشد، پهنای باند واقعی تقریباً به این صورت محاسبه میشود:
Throughput ≈ 1460 / (0.1 × √0.01) ≈ 1460 / (0.1 × 0.1) = 1460 / 0.01 = 146,000 بایت بر ثانیه
برای تبدیل به مگابیت بر ثانیه، مقدار حاصل را در 8 ضرب میکنیم و بر 1,000,000 تقسیم میکنیم: Throughput ≈ 1.168 Mbps
این محاسبه به ما نشان میدهد که پهنای باند واقعی TCP همیشه کمتر از ظرفیت اسمی لینک است و عواملی مانند سربار پروتکل، تاخیر و افت بسته نقش مهمی در کاهش آن دارند.