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

Я попытался отключить быстрые нажатия через коммандос ip route для определенного диапазона сети и устройства, но, похоже, это не дало никакого эффекта. В качестве дополнительной информации я использую ядро 4.4 на этом компьютере. Если вам нужна дополнительная информация, спросите, и я предоставлю.

2 ответа2

1

Получатель должен подтвердить пакет в течение определенного времени, поскольку в противном случае отправитель предполагает, что пакет потерян, и повторно его отправит. Если ваш получатель отправит данные, ACK будет добавлен к этим данным. Если данные не отправляются, необходимо отправить чистый ACK, чтобы отправитель узнал вовремя, что пакет был получен.

0

Как оказалось, приложение, которое давало мне эти чистые ACK, использовало сокет с установленной опцией TCP_NODELAY, поэтому на каждый пакет отвечали как можно скорее, не ожидая дополнительных данных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .