Розрахунок реальної продуктивності TCP-з'єднання
Пропускна здатність мережевого каналу та його фактична продуктивність для одного потоку TCP часто суттєво відрізняються. Навіть якщо ви маєте високошвидкісне підключення, фізичні обмеження середовища передачі даних, затримки та втрати пакетів встановлюють жорстку верхню межу швидкості.
Калькулятор затримки та пропускної здатності мережі дозволяє розрахувати теоретичний та практичний максимум швидкості для одного TCP-з'єднання. Вводячи параметри фізичного каналу та налаштування протоколу, ви можете миттєво визначити, який саме фактор є найвужчим місцем системи.
Вхідні параметри для моделювання мережевого шляху
Для точного розрахунку лімітів продуктивності інструмент використовує кілька ключових параметрів, які користувач вводить у відповідні поля:
- Швидкість каналу: Найповільніший сегмент на шляху — часто номінальна швидкість вашого тарифу. Значення має бути більшим за нуль. Одиницю виміру обирають у списку поруч із полем.
- Час кругового обходу (RTT): Час пінгу до віддаленого кінця — використовуйте найбільше значення, яке ви очікуєте під навантаженням. Значення має бути більшим за нуль. Одиницю виміру обирають у списку поруч із полем.
- Розмір даних: Корисне навантаження для передачі — файл, резервна копія, набір даних. Значення має бути більшим за нуль. Одиницю виміру обирають у списку поруч із полем.
- Вікно приймача: Байти, які приймач може буферизувати. Значення має бути більшим за нуль і не може перевищувати 1,073,725,440 байтів. Якщо залишити це поле порожнім, обмеження розміру вікна не застосовуватиметься.
- Розмір MSS: Байти корисного навантаження на пакет — 1,460 заповнюють стандартний кадр Ethernet. Допустимі значення — цілі числа від 1 до 65,495. Якщо залишити поле порожнім, накладні витрати та втрати пакетів ігноруватимуться.
- Втрата пакетів (%): Середня ймовірність втрати пакетів. Значення має бути в діапазоні від 0 до 100 відсотків. Порожнє поле або 0 означає відсутність обмеження втратами.
- Десяткові знаки: Визначає точність відображення результатів після коми.
Для швидкого ознайомлення з роботою інтерфейсу передбачена кнопка Завантажити приклад, яка заповнює поля тестовими даними, а також кнопка Очистити для скидання всіх значень.
Результати обчислень та визначення вузьких місць
Після введення даних калькулятор миттєво виводить результати, розділені на кілька категорій. Головним показником є Очікувана пропускна здатність TCP, яка супроводжується динамічним підписом обмежено через ‹constraint›. Залежно від умов, обмежувальним фактором може стати:
- пропускну здатність каналу,
- вікно приймача,
- втрату пакетів.
Окрім цього, користувачеві доступні такі метрики:
- Час передачі
- Час до першого байта (1 RTT)
- Час передачі даних
- Добуток пропускної здатності на затримку
- Вікно для заповнення шляху
- Пропускна здатність, обмежена вікном
- Пропускна здатність, обмежена втратами (Mathis)
- Межа каналу після накладних витрат
- Ефективність протоколу
Для збереження отриманих результатів можна скористатися кнопкою Копіювати результат.
Динамічні системні сповіщення
Залежно від введених параметрів, система генерує важливі попередження щодо конфігурації мережі:
- Якщо для заповнення каналу потрібне вікно, що перевищує стандартний ліміт TCP без масштабування, з'являється повідомлення "Для заповнення цього шляху потрібне вікно
‹window›— це вище за немасштабований максимум у 65,535 байтів, тому обидві сторони мають узгодити масштабування вікон TCP (RFC 7323)." - Якщо вимоги до вікна перевищують абсолютний ліміт протоколу, виводиться повідомлення "Для заповнення цього шляху потрібне вікно
‹window›— це перевищує найбільше вікно, яке TCP може узгодити (1,073,725,440 байтів). Один потік на цьому шляху ніколи не зможе перевищити‹value›." - Якщо збільшення буфера може покращити швидкість, відображається порада "Збільшення вікна приймача до
‹window›дозволило б цій передачі досягти‹value›." - При високому рівні втрат з'являється попередження "Втрати понад 1% виходять за межі надійного діапазону моделі Mathis — сприймайте межу втрат як оптимістичну."
Математичні формули та підстановка значень
У розділі Формули та підстановка детально показано весь процес розрахунку:
- Загальна формула:
пропускна здатність = min(швидкість × ефект., вікно ÷ RTT, MSS ÷ RTT ÷ √p) · BDP = швидкість × RTT - Ефективність протоколу:
Ефективність протоколу = MSS ÷ (MSS + 78 B) = ‹mss› ÷ ‹frame› = ‹eff› (40 B заголовків пакетів + 38 B у лінії) - Межа каналу:
Межа каналу = швидкість × ефективність = ‹rate› × ‹eff› = ‹value› - BDP:
BDP = швидкість × RTT = ‹rate› × ‹rtt› = ‹bdp› = ‹bytes› - Вікно для заповнення шляху:
Вікно для заповнення шляху = BDP ÷ 8 = ‹bdp› → ‹window› - Межа вікна:
Межа вікна = вікно ÷ RTT = ‹window› ÷ ‹rtt› = ‹value› - Межа втрат (Mathis):
Межа втрат (Mathis) = MSS ÷ RTT ÷ √p = ‹mss› ÷ ‹rtt› ÷ √‹p› = ‹value› - Очікувана пропускна здатність:
Очікувана пропускна здатність = найменша з цих меж = ‹value› → обмежено через ‹constraint› - Час передачі:
Час передачі = RTT + 8 × розмір ÷ пропускна здатність = ‹rtt› + 8 × ‹size› ÷ ‹throughput› = ‹time›
Правила розрахунку та обмеження моделі
- Одиниці виміру: Усі розрахунки базуються на десятковій системі (1 kbit = 1,000 біт, 1 MB = 1,000,000 байтів). Файлові менеджери операційних систем зазвичай використовують двійкові одиниці (де 100 MB насправді означає 100 MiB, що дорівнює приблизно 104.86 десяткових MB).
- Накладні витрати: Модель враховує стандартний Ethernet, додаючи 78 байтів на кожен пакет (40 байтів для заголовків TCP/IP та 38 байтів фізичного рівня).
- Модель Mathis: Розрахунок впливу втрат пакетів базується на припущенні про їх рівномірний розподіл. Модель є точною лише при втратах менше ніж 1%.
- Межі масштабування: Максимальне вікно TCP без масштабування становить 65,535 байтів. За допомогою RFC 7323 ліміт можна збільшити максимум до 1,073,725,440 байтів.
- Спрощення моделі: Розрахунки виконуються для стабільного стану одного TCP-потоку. Реальні фактори, такі як фаза повільного старту, алгоритми контролю перевантажень, затримки TLS-рукостискання та продуктивність процесора на кінцевих точках, не враховуються, тому фактична швидкість може бути нижчою за розраховану межу.
Конфіденційність та обробка даних
Кожне введене вами значення обчислюється у цьому браузері — нічого нікуди не надсилається. Обчислення відбуваються локально на вашому пристрої, що гарантує конфіденційність параметрів вашої мережевої інфраструктури.
Поширені запитання (FAQ)
Що таке добуток пропускної здатності на затримку і чому він визначає розмір вікна?
BDP — добуток швидкості каналу на час кругового обходу — це обсяг даних у дорозі в будь-який момент. TCP може мати щонайбільше одне непідтверджене вікно в дорозі, тому вікно, менше за BDP, залишає канал частково порожнім: при 100 Mbit/s із RTT 50 ms канал вміщує 625 kB, а вікно розміром 65,535 байтів заповнює заледве десяту його частину. Саме тому для швидких довгих шляхів потрібне масштабування вікон TCP (RFC 7323), яке збільшує узгоджуваний максимум із 65,535 байтів приблизно до 1 GB.
Чому моя передача повільніша за швидкість каналу, за яку я плачу?
Один потік TCP стикається з трьома незалежними межами, і найнижча з них перемагає. Накладні витрати протоколу зменшують сам канал приблизно на 5% — стандартний кадр Ethernet переносить 1,460 байтів корисного навантаження з 1,538 байтів у лінії. Вікно приймача обмежує пропускну здатність як вікно ÷ RTT, тому класичне вікно розміром 65,535 байтів обмежує шлях із затримкою 50 ms приблизно до 10.5 Mbit/s незалежно від швидкості каналу. А втрати обмежують її як (MSS ÷ RTT) ÷ √втрат. Результат вище вказує, яка саме межа є вирішальною для ваших чисел.
Як втрата пакетів обмежує пропускну здатність TCP?
TCP сприймає втрату як перевантаження і вдвічі зменшує швидкість надсилання при кожній події втрати, тому навіть крихітні частки втрат мають значення на швидких шляхах. Модель Mathis оцінює межу як (MSS ÷ RTT) ÷ √p — при втратах 0.01% на шляху з RTT 50 ms та MSS 1,460 байтів це становить близько 23 Mbit/s, незалежно від швидкості каналу. Модель передбачає рівномірно розподілені, незалежні події втрат; при втратах нижче приблизно 1% вона добре відображає реальність, а для пакетних втрат є оптимістичною.
Чи збігаються мегабайти тут із мегабайтами у моєму файловому менеджері?
Не зовсім. На цій сторінці використовуються десяткові одиниці, що є мережевим стандартом: 1 kbit = 1,000 біт, а 1 MB = 1,000,000 байтів. Більшість файлових менеджерів рахують в одиницях на основі 1024, часто помилково позначаючи їх як MB — файл розміром «100 MB» там зазвичай дорівнює 100 MiB ≈ 104.86 десяткових MB, тому його передача триває приблизно на 5% довше, ніж свідчить десяткове число. Введіть тут 104.86 MB, щоб точно узгодити значення.