Інтернет

Огляд алгоритму Nagle для мережевої комунікації TCP

Автор: Peter Berry
Дата Створення: 13 Липня 2021
Дата Оновлення: 11 Травень 2024
Anonim
Огляд алгоритму Nagle для мережевої комунікації TCP - Інтернет
Огляд алгоритму Nagle для мережевої комунікації TCP - Інтернет

Зміст

Алгоритм Nagle, названий на честь інженера Джона Нагле, був розроблений для зменшення перевантаженості мережі, спричиненої "проблемами з невеликими пакетами" з додатками TCP. Реалізації UNIX почали використовувати алгоритм Nagle у 1980-х, і він залишається стандартною особливістю TCP сьогодні.

Як працює алгоритм Nagle

Алгоритм Nagle обробляє дані на стороні надсилання програм TCP методом, який називається цокання. Він виявляє повідомлення невеликого розміру та накопичує їх у більші пакети TCP, перш ніж надсилати дані по дроту, тим самим уникаючи генерування надмірно великої кількості невеликих пакетів. Технічна специфікація алгоритму Nagle була опублікована в 1984 р. Як RFC 896. Рішення щодо накопичення великої кількості даних та часу, поки потрібно чекати між відправленнями, є критичними для її загальної продуктивності.


Nagling може більш ефективно використовувати пропускну здатність мережевого з'єднання за рахунок додавання затримок (затримки). Приклад, описаний в RFC 896, ілюструє потенційні переваги пропускної здатності та причину його створення:

  • Програма TCP, яка перехоплює натискання клавіш на клавіатурі і хоче повідомити кожен символ, який вводиться в приймач, може генерувати серію повідомлень, кожне з яких містить 1 байт даних.
  • Перш ніж ці повідомлення можуть бути надіслані по всій мережі, кожне з них має бути упаковано разом із інформацією заголовка TCP відповідно до вимог TCP / IP. Кожен заголовок має розмір від 20 до 60 байт.
  • Без приборкань цього прикладу додаток генерує мережеві повідомлення, що складаються з 95% або більше інформації заголовка (щонайменше 20 з 21 байта) та 5% або менше фактичних даних з клавіатури відправника. Використовуючи алгоритм Nagle, ті самі дані могли замість цього доставлятись за допомогою меншої кількості повідомлень і 95% вмісту, що становить інформацію про клавіатуру - дуже велика економія пропускної здатності.

Програми керують використанням алгоритму Nagle за допомогою параметра програмування розеток TCP_NODELAY. Системи Windows, Linux та Java зазвичай включають Nagle за замовчуванням, тому програми, написані для цих середовищ, повинні вказати TCP_NODELAY, коли потрібно вимкнути алгоритм.


Обмеження

Алгоритм Nagle можна використовувати тільки з TCP. Інші протоколи, включаючи UDP, не підтримують його.

Програми TCP, які потребують швидкої реакції в мережі, як-от дзвінки через Інтернет або ігри для шутерів від першої особи, можуть не працювати добре, коли функцію Nagle увімкнено. Затримки, спричинені тим, що алгоритму потрібно зайвий час для збирання менших шматочків даних разом, можуть викликати помітне відставання візуально на екрані або в цифровому аудіопотоці. Ці програми, як правило, відключають Nagle.

Цей алгоритм був спочатку розроблений в той час, коли комп'ютерні мережі підтримували набагато меншу пропускну здатність, ніж сьогодні. Описаний вище приклад ґрунтувався на досвіді Джона Нагла в компанії Ford Aerospace на початку 1980-х, де наїзди на компроміси в їх повільній, сильно завантаженій мережі далеких відстаней мали сенс. Наразі стає все менше ситуацій, коли мережеві програми сьогодні можуть отримати користь від його алгоритму.

Наші Публікації

Рекомендується Вам

8 кращих SD-карт 2020 року
Tehnologies

8 кращих SD-карт 2020 року

Наші редактори незалежно досліджують, тестують та рекомендують найкращі продукти; ви можете дізнатися більше про наш процес огляду тут. Ми можемо отримувати комісії за покупки, зроблені з обраних нам...
Як зробити сканування телеканалу
Життя

Як зробити сканування телеканалу

У категорії Налаштування виберіть пункт Мовлення варіант. У розділі "Трансляція" виберіть Автопрограма. У параметрі Автоматична програма виберіть Початок. Після вибору Пуск новий екран пере...