답변:
TCP를 사용하여 패킷을 보내면 패킷과 함께 전송되는 시퀀스 번호가 있습니다. 수신자가 패킷을 수신하면 패킷이 수신되었음을 표시하는 시퀀스 번호와 함께 승인을 송신자에게 보냅니다. 귀하가 질문 한 방식에 따라, 귀하가 이것을 알고 있다고 가정합니다. 나는 다른 독자들을 위해 그것을 넣고 싶었다.
TCP 재전송은 시간 초과 내에 확인되지 않는 패킷입니다.
TCP 빠른 재전송은 소스가 패킷을받지 못했다는 확인을받는 경우입니다. 빠른 재전송 에서 인용 -무료 백과 사전
TCP 발신자가 동일한 승인 번호로 3 개의 중복 승인을 수신하면 (즉, 동일한 승인 번호를 가진 총 4 개의 승인), 발신자는 다음으로 높은 시퀀스 번호를 가진 세그먼트가 삭제되었다고 합리적으로 확신 할 수 있습니다.
나는 이것을 Microsoft 에서 소화했다 .
TCP는 각 아웃 바운드 세그먼트가 인터넷 프로토콜 (IP) 계층으로 전달 될 때 재전송 타이머를 시작합니다. 타이머가 만료되기 전에 TCP가 주어진 세그먼트의 데이터에 대한 승인을받지 못하면 세그먼트가 재전송됩니다.
재전송 시간 제한은 Van Jacobson 및 Mike Karels의 논문 "혼잡 방지 및 제어"에 설명 된 SRCM (Smooth Round Trip Time) 계산을 사용하여 ACM SIGCOMM 회의 진행 과정에서 연결 특성에 맞게 즉시 조정됩니다. 1988 년 11 월 데이터 통신에 관한 정보를 제공합니다. SRTT 계산에 대한 자세한 내용은 RFC 793 : 전송 제어 프로토콜 DARPA 인터넷 프로그램 프로토콜 사양을 참조하십시오 . 주어진 세그먼트에 대한 재전송 시간 제한은 해당 세그먼트의 각 재전송 후에 두 배가됩니다.
이 알고리즘을 사용하여 TCP는 일반적인 연결 지연에 맞게 자체 조정됩니다. 연결이 존재하지 않고 느리게 연결될 때 시간이 잘못 초과되는 것을 방지하기 위해 지연 시간이 긴 링크를 통한 연결보다 지연 시간이 긴 링크를 통한 TCP 연결 시간이 훨씬 오래 걸립니다.
경우에 따라 TCP는 특정 세그먼트의 재전송 타이머가 만료되기 전에 데이터를 재전송합니다. 가장 일반적인 이러한 상황은 빠른 재전송으로 알려진 기능으로 인해 발생합니다.
빠른 재전송을 지원하는 수신기는 현재 예상되는 것보다 높은 시퀀스 번호를 가진 패킷을 수신하면 일부 데이터가 삭제 된 것처럼 진행됩니다. 발신자가 명백히 삭제 된 데이터를 가능한 한 빨리 인식하도록 돕기 위해 수신자는 ACK 번호가 누락 된 것으로 보이는 시퀀스 번호로 확인 응답 (ACK)을 즉시 보냅니다. 수신자는 누락 된 것보다 높은 시퀀스 번호로 도착하는 들어오는 스트림의 각 추가 TCP 세그먼트에 대해 해당 시퀀스 번호에 대한 다른 ACK를 보냅니다.
보낸 사람이 동일한 시퀀스 번호를 확인하는 중복 ACK 스트림을 수신하고 표시된 시퀀스 번호가 현재 전송중인 세그먼트의 시퀀스 번호보다 빠르면, 보낸 사람은 이전에 보낸 하나 이상의 세그먼트가 삭제되었음을 유추 할 수 있습니다. 특정 수의 중복 ACK를 수신 한 후 고속 재전송 알고리즘을 지원하는 발신자는 수신자가 누락 된 세그먼트에 대해 재전송 타이머가 만료되기를 기다리지 않고 수신기가 데이터의 갭을 채우기 위해 요청하는 세그먼트를 재전송합니다. 이 최적화는 사용량이 많은 네트워크 환경에서 성능을 크게 향상시킵니다.
재전송이 빠르면 발신자는 재전송 타이머가 만료되기 전에 누락 된 TCP 세그먼트를 재전송합니다. 누락 된 TCP 세그먼트에 대해 재전송 타이머가 만료되지 않았기 때문에 누락 된 세그먼트가 대상에서 수신되어 빠른 재전송이 없었던 것보다 더 빠르게 수신자가 승인하며 발신자는 이후 세그먼트를 수신자에게 더 빨리 보낼 수 있습니다. 이 프로세스를 빠른 복구라고합니다. 빠른 재전송 및 빠른 복구는 RFC 2581 : TCP 혼잡 제어에 설명되어 있습니다.
본질적으로 자동 반복 요청 (ARQ)과 동일한 재전송은 손상되었거나 손실 된 패킷을 재전송하는 것입니다. 안정적인 통신을 제공하기 위해 패킷 교환 컴퓨터 네트워크를 통해 작동하는 프로토콜에서 사용되는 기본 메커니즘 중 하나를 나타내는 용어입니다. BUT 빠른 재전송은 TCP에 대한 향상된 기능으로, 손실 된 세그먼트를 재전송하기 전에 발신자가 기다리는 시간을 줄입니다. 빠른 재전송 개선 기능은 다음과 같이 작동합니다. 수신 확인 번호 (즉, 동일한 수신 확인 번호를 가진 총 4 개의 수신 확인)를 보낸 사람은 다음 높은 시퀀스 번호를 가진 세그먼트가 삭제되었다고 확신 할 수 있으며 순서가 잘못되지 않습니다. 발신자는 시간 초과를 기다리기 전에 삭제 된 것으로 추정 된 패킷을 재전송합니다. 자세한 내용과 알고리즘은이 링크를 확인하십시오 http://www.isi.edu/nsnam/DIRECTED_RESEARCH/DR_WANIDA/DR/JavisInActionFastRetransmitFrame.html