어플리케이션(수신측)에서 읽지 않아서
네트워크 인프라 수준에서 뭔가 문제 발생
발생할 경우 네트워크 통신 속도가 느려짐
해결하기 위해 TCP 레벨에서는 혼잡제어를 함(송수신 속도룰 늦춤)
주로 네트워크 인프라 설정때문에 패킷 전달의 타이밍이 맞지 않아서 발생
out-of-order 패킷을 받을 경우 발생
수신측에서 이미 받은 패킷에 대하여 Ack를 한번더 보낸다.
EX) 송신측에서 1, 2, 3 데이터를 전송했는데 수신측에서 1, 3만 받는 경우 2 데이터가 송신되지 않아 송신측에 Dup Ack를 보낸다.
패킷을 보내었지만 Ack를 받지 못하였을 경우 발생함
EX) 총 3회에 걸쳐 Dup Ack을 받을 경우 재전송(Retransmission)을 보냄
잠깐의 네트워크 장애때문에 수신측에서 못받는 경우가 있을 수 있으며 잠시후 수신측에서 패킷을 마저 받을 수 있다.
그래서 Dup Ack를 받자마자 재전송을 하는게 아니라 3회까지 기다린다. 3회까지 Dup Ack가 발생하면 진짜로 패킷이 유실된 것이기에 그제서야 재전송을 한다
뭔가 프로그램이 비정상적으로 종료됨. 방화벽에서도 RST를 보내기도 함.