Чи потрібен ACK при використанні надійних протоколів, таких як TCP? Скільки створюється штраф за накладну / пропускну здатність?


5

Чи потрібен ACK при використанні надійних протоколів, таких як TCP? Скільки створюється штраф за накладну / пропускну здатність?


22
Ви говорите про додатки на рівні додатків або на рівні TCP?
grawity

12
Як протокол знає, чи є його надійним, якщо немає підтвердження його надійного?
Подорожник Geek

8
Саме ACK робить його надійним.
user207421

Прапор ACK використовує 1 біт на пакет і завжди присутній у tcp-комунікаціях як 0 або 1. Отже, 80 000 пакетів = приблизно 8 к. Зазвичай пакет складає 1500 байт, виключаючи jumbo пакети, так що 114mb vs 8k. Пакети Jumbo становлять 9000, так що 686 Мб проти 8 к.
кібернард

Відповіді:


25

Чи потрібен ACK при використанні надійних протоколів, таких як TCP?

Так. ACK - це механізм, який робить TCP надійним протоколом.

Якщо ACK були видалені з протоколу, TCP більше не знатиме, чи був пакет скинутий або втрачений і тому його потрібно повторно передавати.

Це зробило б це більше схожим на UDP.


Скільки створюється штраф за накладну / пропускну здатність?

Взагалі на це не можна відповісти, оскільки це залежить від мережевих умов між двома кінцевими точками.

Очевидно, що накладні витрати найнижчі, якщо немає втрати пакету, але якщо є значна втрата пакету, то накладні витрати будуть набагато вищими, оскільки дані передаються повторно.


Подальше читання


5

Ви запитували про "надійні протоколи, як TCP / IP"; Я відповім за TCP / IP.

Чи потрібен ACK під час використання TCP?

Так, це невід'ємна частина TCP / IP. TCP / IP - протокол розсувного вікна . ACK дозволяє одержувачу "ковзати у вікно", дозволяючи відправнику надсилати більше даних. Без ACK TCP / IP не надсилатиме більше непідтверджених даних, ніж дозволяє розмір вікна.

Без розсувного вікна відправник повинен був би зберегти весь вміст потоку даних на випадок, якщо одержувач захоче повторно передати частину його частини. Розсувне вікно дозволяє відправника просто зберігати деяку невелику частину потоку даних для можливої ​​повторної передачі.

Скільки створюється штраф за накладну / пропускну здатність?

У випадку, коли розмір вікна адекватний умовам мережі, а пропускна здатність приймача для відправника не є насиченою, ACK (і порядковий номер, що йде разом з ним) не повинен спричиняти покарання за пропускну здатність. Це тому, що TCP / IP не вимагає, щоб пакет був підтверджений, перш ніж наступний пакет може бути відправлений. За сприятливих умов відправник може відправляти без пауз, одночасно отримуючи потік ACK від одержувача.


2
Якщо дані протікають обома способами, ACK є вільними, оскільки інформація ACK їде в тих же пакетах, що і дані.
pedz

3

Прикладний рівень ACK є кращим, щоб знати, що інший кінець фактично обробив дані. Надійність TCP сама по собі не допомагає програмі дізнатися, чи фактично надійшли дані та обробляються іншим кінцем. Поширене непорозуміння, що TCP сам по собі робить спілкування надійним. Дані через TCP-з’єднання можна затримувати довільно в буферах або на стороні відправника, або на стороні одержувача, і якщо з'єднання розривається, то відправник не може знати, скільки обробляється одержувачем, якщо тільки не використовуються ACK рівня додатка .

Накладні витрати - це додатковий зворотний бік між сторонами, але якщо є постійне спілкування, то йому не потрібно додавати затримок, якщо дані надсилаються паралельно. Пропускна здатність накладних частот досить мала, як мінімум, приймач може ACK простим 1-байтовим пакетом, але в більш складних випадках пакетів ACK може знадобитися кілька десятків байт.


1
Ласкаво просимо на сайт. І дякую за таке гарне перше повідомлення. Ви просто заощадили мені час написання відповіді, щоб вирішити те, чого не було в попередніх відповідях.
kasperd
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.