TCP Retransmission   TCP 재전송

(2022-06-18)

Fast Retransmission, Fast Retransmit, 빠른 재전송, Duplicate Acknowledgement, 중복 ACK


1. TCP 재전송오류(패킷 손실,지연,중복,순서역전 등)라고 믿어지는 즉, 확인응답되지 않은 데이터를 재전송
  
  ㅇ 한편, `재전송`,`흐름제어`,`혼잡제어` 셋 모두가 함께 연관되므로 같이 고려되어야 함
     - 例) 재전송이 흐름제어의 일부 기능이지만, 많아지면 오히려 혼잡을 악화시키는 등 


2. TCP 재전송에서 큐 관리 원칙

  ㅇ 재전송에 필요한 사항 둘(2) : (복사본 저장, 재전송 타이머)
     - 재전송   : TCP 세그먼트 전송시, 그 복사본을 재전송 에 저장시킴
     - 재전송 타이머  : TCP 세그먼트의 매 전송시 마다, 재전송 타이머 가동

  ㅇ 즉, TCP세그먼트를 매번 송신 마다, 그에따른 재전송 타이머의 가동과 동시에 재전송 에 보관
     - 어떤 세그먼트타이머 만료 전에 확인응답이 오면, 에서 즉시 삭제
     - 어떤 세그먼트타이머 만료되면, 자동 재전송 실시
     - 심지어, 재전송한 세그먼트확인응답 오기 전까지는, 계속 에 머물게됨
     - 계속된 재전송 후에도 전송 실패가 계속되면, TCP 연결 강제 종료

  ㅇ 큐 관리 효율성 제고 : 슬라이딩 윈도우
     - 바로 앞 세그먼트 전송에 대한 확인응답을 기다리지 않고,
     - 수신측이 통보하는 윈도우 크기 내에서 묶어서 순서대로 연속 송신


3. TCP에서 재전송을 결정하는 기반 구분시간 기반 재전송 (Time-based Retransmission)  :  TCP 타이머 기반 
     - 확인응답을 기다리는 시간에 대한 재전송 타임아웃 (RTO)
        . 적응적 재전송 알고리즘 (Adaptive Retransmission Algorithm)
           .. 변화무쌍한 인터넷 환경에 따라, 각 TCP 연결감시하면서,         ☞ RTT 측정 참조
           .. 적절한 타임아웃추정하고, 변화에 따라 적응적으로 타임아웃 값을 수정함

  ㅇ 명시적 재전송 피드백  :  SACK, ECN
     - TCP에서 선택 옵션 사항임
        . SACK : 여러 세그먼트손실세그먼트 만 선택적으로 확인응답하는 방식
        . ECN : 혼잡 알림 필드 사용

  ㅇ 빠른 재전송 (Fast Retransmission : Fast Recovery, Fast Retransmit)
     - 수신측으로부터의 궤환(재전송 요청) 형태에 기반을 두고,
        . 패킷 손실 추정
     - 지연 없이 바로 타임아웃, 즉각 재전송 실시
        . 즉, RTO(재전송 타임아웃 시간)을 끝까지 기다리지 않는 빠른 재전송

     * 주로, 빠른 재전송은, 중복 ACK에 의해 유발됨
        . 중복 ACK (Duplicate Acknowledgement)  :  하나의 원래 ACK와 중복된 ACK
           .. 일련의 세그먼트를 연이어 전송할 때, 중간 세그먼트손실되어 수신되면, 
           .. 수신측은, 모두 같은 순서번호인 중복 ACK를 발생시키며, 즉각 확인응답을 함
           .. 즉, 중복 ACK는, 순서 역전 및 중간에 뻥뚫린 구멍이 있음을 의미
        . 한편, 송신측은, 중복 ACK를 받으면, 이를 손실인지 지연인지를 구분키 위해,
           .. 수 개 정도(통상,3개) 기다림 (duplicate ACK threshold or dupthresh)

     - 빠른 재전송 (Fast Retransmit)
        . 정상적인 재전송  과정을 따르지 않고, 중간 누락된 세그먼트를 빠르게 재전송

     - 빠른 회복 (Fast Recovery)
        . 이미 여러번 ACK가 오게되면, 비록 세그먼트들이 순서가 어긋나게 수신되더라도,
          네트워크 혼잡이라 여기지 않고, 송신률을 빠르게 증가시킴

     * [참고] ☞ TCP 혼잡제어 참조

TCP 흐름/혼잡 제어
   1. TCP 혼잡제어   2. Slow Start   3. Silly Windown Syndrome   4. TCP 타이머   5. RTT 예측   6. 확인응답   7. TCP 재전송  
TCP 오류제어
   1. 오류제어   2. TCP 체크섬   3. 확인응답   4. TCP 재전송  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"