지연 ACK(Delayed ACK)

TCP를 분석하다 보면 서버가 데이터를 두 번 보낸 뒤에야 클라이언트가 ACK를 보내는 경우가 있다.


TCP Server → TCP Client : Data
TCP Server → TCP Client : Data
TCP Server ← TCP Client : ACK


이 동작은 Delayed ACK, 지연 ACK로 설명할 수 있다.

수신할 때마다 바로 ACK를 보내지 않고, 일정 시간 안에 다음 데이터가 오면 그 뒤에 ACK를 보낸다. 보낼 데이터가 있으면 DATA와 ACK를 함께 보낼 수도 있다.




보통 타임아웃은 약 200ms로 설명되지만 구현과 운영체제 설정에 따라 달라질 수 있다.

작은 아이디어처럼 보여도 ACK 패킷 수를 줄여 전체 통신 효율에 영향을 준다. 네이글 알고리즘과 함께 사용할 때는 지연 문제가 생길 수 있어 같이 확인해야 한다.

Comments

댓글을 불러오고 있습니다.