مدت زمان ارسال یا دریافت یک فایل مثلا8G با پهنای باندمثلا 64K، بین دو لینک ارتباطی را چه طوری میتوان محاسبه کرد ؟

پهنای باندی که از سرویس دهنده میخرید براساس SLA يا Service Level Agreement – توافق فی مابین، میزان دیتایی که در واحد ثانیه قابل ارسال و دریافت از اینترنت است را مشخص میکند. اگر فرض کنیم که این عدد درست باشد و سرویس دهنده میزان واقعی را به شما اختصاص دهد (پهنای باند Dedicated به شما اختصاص دهد) شما در هر زمان باید قادر باشید که از تمام پهنای باند خود استفاده کنید.

پس پهنای باند به میزان دیتا در ثانیه بر میگردد اما ربطی به Delay یا تاخیر ارتباط شما ندارد. بطور مثال ممکن است ارتباط شما با Youtube یا Skype به 200 میلی ثانیه تا 700 میلی ثانیه برگردد (بسته به مقصد و مسیری که بسته های IP ارسال میشوند.)

بطور مثال اگر از ماهواره در بین راه استفاده شود:
برای اینکه ماهواره به نسبت یک نقطه روی زمین ثابت باشد باید در مدار GEO یا Geostationary orbit قرار گیرد که به نسبت یک نقطه از زمین بدون حرکت بنظر رسد تا بتوان Dish خود را ثابت به آن نقطه Fix کرد، به این مدار بخاطر محقق آن Clark Belt نیز گفته میشود.
بخاطر قرارگیری Satellite ها در مدار GEO که در 36000 کیلومتری زمین قراردارد با احتساب سرعت نور که 30000 کیلومتر در ثانیه است 120 میلی ثانیه نیاز داریم تا سیگنال به ماهواره رسیده و از آنجا به نقطه مقصد ارسال شود (مخابره از نقطه زمینی یک تا ماهواره و از هوا به نقطه دوم زمینی = 240 میلی ثانیه.)
پس اگر از ماهواره استفاده شود و بخواهیم مقصد را PING کنیم با توجه به رفت و برگشت بسته های ICMP برای هر بسته حدودا 250 میلی ثانیه زمان رفت و 250 میلی ثانیه جهت دریافت Reply سپری میشود (حداقل 500ms) نیاز داریم.

اگر از فیبرنوری استفاده شود مسیر زمینی کوتاهتری فراهم شده و میزان Delay کمتر خواهد بود بطور مثال وقتی RIPE.net را پینگ میکنم از مسیر فیبر استفاده میشود و RIPE را در 160 میلی ثانیه میبینم (80 میلی ثانیه برای رفت و 80 برای برگشت.)
حال برگردیم به سوال شما،
برای پهنای باند 64Kbps حمل یک فایل 8 Gigabyte چقدر زمانبر است؟

میدانیم که پهنای باند را بر حسب بیت مشخص میکنیم یعنی برخلاف فایل و Storage که براساس بایت (با B نشان داده میشود) عدد مورد نظر را در 8 ضرب میکنیم تا برحسب b یا بیت به میزان مورد نظر برسیم:
8 x 8 = 64 bit

یعنی 64 گیگابیت یا دقیقتر آن (از آنجا که هر کیلو بایت یا بیت 1024 واحد است نه هزار)
8 x 1024 x 1024 x 1024 x 8 = 68719476736 bit

حال برای این میزان بیت با در نظر گرفتن پهنای باند 64 هزار بیت در ثانیه به:
68719476736 / 64000 = 1073742 second = 17896 min = 298 hours = 12.5 days

نیاز داریم. در حالیکه اگر پهنای باند 2.5 مگابیت داشتید این میزان به 7 الی 8 ساعت کاهش پیدا میکرد.

اما این محاسبه کافی نیست!

از آنجا که محتویات Data داخل IP و TCP حمل میشود باید Header های اضافی و پارامتر های زیادی را محاسبه کرد که به عدد نهایی Throughput يا حداکثر توان انتقال لینک شما گفته میشود.


برای محاسبه میزان Throughput به فاکتورهای متعددی باید رجوع کرد:
MTU و MSS، Header Size ، TCP Window Size و همچنین RTT و Delay.

MTU میزان حداکثر دیتایی است که در یک بسته قرار میگیرد و عموما 1500 بایت یا 12000 بیت است. از این میزان عموما 40 بایت به Header های IP و TCP تعلق دارد پس 1460 بایت برای دیتای واقعی شما در هر Packet در نظر میگیریم.
هر چقدر میزان MTU بیشتر باشد میزان تاخیر نیز بیشتر میشود زیرا دیتای بیشتری در یک بسته حمل میشود اما نکته مثبت آن کمتر شدن Header های IP و TCP به ازای دیتای واقعی است.

پس اگر از هر 1500 بایت 1460 بایت آن محتویات فایل مورد نظر شما باشد در ارتباط 64 کیلوبیت میتوانید 510306 بیت در ثانیه را دیتای حقیقی قلمداد کنیم و محاسبه عوض میشود و یک ساعت جهت هدر ها افزایش زمان خواهیم داشت:
68719476736 / 63788 = 1077310 second = 17955 min = 299 hours

مساله بعدی TCP Window Size است که براساس استاندارد حداکثر 64 کیلوبایت است.
استفاده از Window Size برای کنترل سرعت در یک ارتباط TCP و اصلاح خطا ها در ارتباط يا Error Recovery است. یعنی هر چه پهنای باند هم داشته باشید در یک ارتباط TCP محدود به Window Size هستید بطور مثال پهنای باند 10 مگابیت من تا مقصد 200 میلی ثانیه تاخیر دارد. 64 کیلوبایت سایز Window برابر با 524288 بیت است.

اگر تاخیر را تا مقصد 200 میلی ثانیه فرض کنیم حداکثر توان حمل دیتا در یک ارتباط TCP برابر با:
524288 bits / 0.2 seconds = 2621440 = 2.5 mbps

پس بدون در نظر گرفتن پهنای باند من تا مقصد حداکثر پهنای باند در یک TCP Session برای من 2.5 مگابیت خواهد بود اگر بخواهم تا سقف 10 مگابیت خود را از مقصد بکشم باید از برنامه های Download استفاده کنم که تعداد بیشتری Connection تا سایت مورد نظر را فراهم میکنند و با Download همزمان در 4 Connection به عدد 10 مگابیت میرسد.

حال برای شما که 400 میلی ثانیه تا مقصد تاخیر دارید این عدد به 256 کیلوبیت در ثانیه محدود میشود که عدد بسیار کمی است. اما از آنجا که پهنای باند شما 64 کیلوبیت است به مشکلی در این زمینه برنخواهید خورد و نیاز به TCP Connection بیشتر ندارید!

در RFC 1323 راه حلی برای افزایش Window Size ارائه شده که توسط ویندوز ویستا نیز بکارگرفته میشود. از آن جا که این مساله در کل اینترنت بصورت یکپارچه پشتیبانی نمیشود؛ در بسیاری از موارد سرعت انتقال در ویستا کندتر از بقیه سیستم عامل ها شده و میتوان قابلیت Receive Window Auto-Tuning را غیرفعال کرد.


منبع: محاسبه پهنای باند سيسکو به پارسی