네트워크 기초
TCP의 송신 측이 세그먼트가 손실되었다고 판단하여 재전송하는 계기로 올바른 것은?
- A수신 측으로부터 도달하지 못한 세그먼트의 재전송을 요구하는 부정 응답(NAK)을 받았을 때
- B도중의 라우터로부터 패킷을 버렸음을 알리는 ICMP 메시지를 받았을 때
- C정해진 시간 안에 ACK가 돌아오지 않을 때(재전송 타임아웃), 또는 같은 확인 번호의 ACK(중복 ACK)를 연이어 받았을 때
정답과 해설 보기
정답: C. 정해진 시간 안에 ACK가 돌아오지 않을 때(재전송 타임아웃), 또는 같은 확인 번호의 ACK(중복 ACK)를 연이어 받았을 때
TCP의 수신 측은 도착한 데이터 다음 번호(다음에 받고 싶은 시퀀스 번호)를 ACK로 돌려보냅니다. 중간 세그먼트가 손실되면 그 뒤의 세그먼트가 도착해도 같은 번호의 ACK(중복 ACK)를 계속 돌려보냅니다. 송신 측은 중복 ACK를 3개 받으면 타임아웃을 기다리지 않고 그 세그먼트를 재전송합니다(빠른 재전송). ACK가 전혀 돌아오지 않는 경우에는 RTT 측정으로 정한 재전송 타임아웃 시간이 지난 뒤 재전송하고, 실패가 계속되면 타임아웃 시간을 2배씩 늘려 갑니다. TCP에는 부정 응답(NAK)이 없고, 혼잡으로 버린 패킷에 대해 라우터가 알리는 일도 일반적으로는 없으므로, 손실은 ACK의 상태로부터 추정합니다.