네트워크 기초

TCP의 송신 측이 세그먼트가 손실되었다고 판단하여 재전송하는 계기로 올바른 것은?

  1. A수신 측으로부터 도달하지 못한 세그먼트의 재전송을 요구하는 부정 응답(NAK)을 받았을 때
  2. B도중의 라우터로부터 패킷을 버렸음을 알리는 ICMP 메시지를 받았을 때
  3. C정해진 시간 안에 ACK가 돌아오지 않을 때(재전송 타임아웃), 또는 같은 확인 번호의 ACK(중복 ACK)를 연이어 받았을 때
정답과 해설 보기

정답: C. 정해진 시간 안에 ACK가 돌아오지 않을 때(재전송 타임아웃), 또는 같은 확인 번호의 ACK(중복 ACK)를 연이어 받았을 때

TCP의 수신 측은 도착한 데이터 다음 번호(다음에 받고 싶은 시퀀스 번호)를 ACK로 돌려보냅니다. 중간 세그먼트가 손실되면 그 뒤의 세그먼트가 도착해도 같은 번호의 ACK(중복 ACK)를 계속 돌려보냅니다. 송신 측은 중복 ACK를 3개 받으면 타임아웃을 기다리지 않고 그 세그먼트를 재전송합니다(빠른 재전송). ACK가 전혀 돌아오지 않는 경우에는 RTT 측정으로 정한 재전송 타임아웃 시간이 지난 뒤 재전송하고, 실패가 계속되면 타임아웃 시간을 2배씩 늘려 갑니다. TCP에는 부정 응답(NAK)이 없고, 혼잡으로 버린 패킷에 대해 라우터가 알리는 일도 일반적으로는 없으므로, 손실은 ACK의 상태로부터 추정합니다.

이 분야 연습하기 분야로 돌아가기

네트워크 기초의 다른 문제

  1. DNS의 주된 역할로 올바른 것은?
  2. 캐시에 아무것도 들어 있지 않은 풀 서비스 리졸버(캐시 DNS 서버)가 www.example.com의 IP 주소를 알아낼 때 질의하는 순서로 올바른 것은?
  3. DHCP로 단말이 IP 주소를 얻을 때의 메시지 순서로 올바른 것은?
  4. HTTPS(HTTP를 TLS로 보호한 통신)로 보호되는 것으로 올바른 것은?
  5. TLS에서 브라우저가 접속한 서버를 '위장이 아니다'라고 판단할 수 있는 이유로 올바른 것은?