TCP: вимкнути чисті ACK?


0

У мене є сценарій, коли я хочу відключити чисті ACK (TCP ACK без даних), але я не можу знайти, як це зробити. Чи є варіант, який я можу встановити так, щоб ACK завжди передавався на наступний пакет даних (з якого я можу бути впевнений, що він з'явиться)?

Я спробував вимкнути швидкі дії через ip routeкомандос для певного мережного діапазону та пристрою, але це, мабуть, не мало ніякого ефекту. В якості додаткової інформації я використовую 4.4 ядро ​​на цій машині. Якщо вам потрібна додаткова інформація, запитайте, і я надам.

Відповіді:


1

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


Мені це відомо, але я дуже впевнений, що дані надсилаються в межах часу (я думаю, що 500 мс?) Я ще раз перегляну, щоб підтвердити, що це не причина, по якій він надсилає чисті ACK, але я дійсно не Я не вірю. Редагувати: Я переглянув свій PCAP, він надсилає звичайні дані набагато раніше, ніж потрібно, тому проблема не повинна бути тайм-аутом.
random_error

0

Як виявилося, програма, яка давала мені ці чисті ACK, використовувала розетку з набором опцій TCP_NODELAY, тож на кожен пакет відповіли як можна швидше, не чекаючи додаткових даних.

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