TCP: 순수 ACK를 비활성화하시겠습니까?

TCP: 순수 ACK를 비활성화하시겠습니까?

순수 ACK(데이터가 없는 TCP ACK)를 비활성화하려는 시나리오가 있지만 이를 수행하는 방법을 찾을 수 없습니다. ACK가 항상 다음 데이터 패킷(그것이 올 것이라고 확신할 수 있음)에 피기백되도록 설정할 수 있는 옵션이 있습니까?

특정 네트워크 범위 및 장치에 대해 특공대 를 통해 QuickACK를 비활성화하려고 시도했지만 ip route아무런 효과가 없는 것 같습니다. 추가 정보로, 저는 이 머신에서 4.4 커널을 실행하고 있습니다. 더 많은 정보가 필요하시면 문의해 주시면 제공해 드리겠습니다.

답변1

패킷은 특정 시간 내에 수신자에 의해 승인되어야 합니다. 그렇지 않으면 발신자는 패킷이 손실되었다고 가정하고 재전송할 것이기 때문입니다. 수신자가 데이터를 보내면 ACK가 해당 데이터에 추가됩니다. 데이터가 전송되지 않으면 순수 ACK를 전송하여 패킷이 수신되었음을 발신자에게 제 시간에 알려야 합니다.

답변2

알고 보니 이러한 순수 ACK를 제공한 애플리케이션은 TCP_NODELAY 옵션이 설정된 소켓을 사용했기 때문에 추가 데이터를 기다리지 않고 가능한 한 빨리 모든 패킷에 응답할 수 있었습니다.

관련 정보