순간이 영원해 지는 곳
TCP delayed ACK time 본문
TCP에서 Receiver는 데이터 패킷을 잘 수신하면 Acknowledgement(ACK) 패킷을 Sender 에게 전송한다.
ACK 패킷 전송 횟수를 줄이기 위해 Delayed ACK 라는 방식을 사용하는데, 아래 링크를 보면 윈도우 운영체제에서는 Delayed ACK timer(하나의 패킷을 수신하고 곧장 ACK 을 보내지 않고 다음 패킷을 기다리는 시간)는 200ms 이다.
http://support.microsoft.com/kb/328890
위에 링크에는 아래와 같은 내용이 있다.
RFC 1122에 지정된 대로 TCP는 지연된 응답을 사용하여 미디어의 송신 패킷 수를 줄입니다. Windows 2000 이상에서의 TCP는 수신한 각 TCP 세그먼트에 대해 응답을 보내는 대신 일반적인 방법으로 지연된 ACK를 구현합니다. 즉, 특정 연결에서 TCP가 데이터를 수신할 때 다음 경우 중 하나에 해당할 때만 응답을 돌려보냅니다. · 수신된 이전 세그먼트에 대해 응답이 보내지지 않았을 경우 · 한 세그먼트가 수신되지만 다른 세그먼트는 해당 연결에 대해 200밀리초 내에 도착하지 않는 경우 일반적으로 응답은 지연된 ACK 타이머(200밀리초)가 만료되지 않는 한 해당 연결에서 다른 TCP 세그먼트가 수신될 때마다 보내집니다. |
위에 녹색 부분에 대한 설명을 좀 더 한다면,
· 수신된 이전 세그먼트에 대해 응답이 보내지지 않았을 경우
- Receiver 가 패킷을 하나 받고 Delayed ACK timer 가 만료되지 않은 상태에서 다른 패킷을 하나 더 받으면 곧장 ACK 패킷을 전송
· 한 세그먼트가 수신되지만 다른 세그먼트는 해당 연결에 대해 200밀리초 내에 도착하지 않는 경우
- Receiver가 패킷을 하나 받고 Delayed ACK timer 가 만료되면 ACK 패킷을 전송
아래 링크는 Delayed ack 응답 절차에 대한 예가 있다. (영문)
http://ask.wireshark.org/questions/4798/when-does-delayed-ack-start
아래는 www.naver.com 에 접속 했을 때 Wireshark 로 패킷을 캡춰한 내용이다. HTTP도 TCP를 사용하는데, 아래처럼 데이터 패킷 두 개를 수신할 때마다 ACK 패킷을 전송하는 것을 확인할 수 있다.
'통신 & 네트워크' 카테고리의 다른 글
TCP 세션 당 이론적인 max throughput 계산 (17) | 2013.02.20 |
---|---|
LTE에서 IPv4, IPv6 주소 할당 방법 (0) | 2013.01.04 |
RTP, RTCP, RTSP 정리 (4) | 2011.01.26 |
리눅스로 AP 만들기 (hostapd 설치) (8) | 2011.01.03 |
WFQ 동작 과정 (패킷 처리 예제) (5) | 2009.08.17 |