TCP 혼잡제어

  • end-end control
    • TCP는 네트워크가 혼잡한지 직접적으로 알 수 없음
    • 지속적으로 Sender의 전송량을 변화시키며 혼잡제어를 한다.
      • 지속적으로 전송 패킷의 양을 늘리고, 혼잡 발생 시 window size를 줄임.
  • Sender는 Timeout 또는 응답패킷이 3번 중복될 때 네트워크가 혼잡하다고 인식한다.
    • Timeout을 패킷 중복보다 심각한 혼잡으로 인식한다.
  • 혼잡제어 알고리즘 종류
    • AIMD
    • slow start

AIMD

  • 패킷 손실이 발생하면 window size를 반으로 줄인다. (최소 : 1)
  • RTT마다 1mss씩 증가시킨다. → 선형 증가
  • 혼잡 회피라고도 한다. → 느리게 증가시키기 때문!
    • 절반으로 줄어든 시점 = 혼잡 발생 시점
    • 상대적으로 심각하지 않은 '중복 패킷 응답' 발생 시 AIMD 알고리즘을 수행한다.

# MSS : Maximum segment size, 한번에 전송하는 패킷 개수

Slow start

  • 혼잡이 발생하면 1MSS로 초기화
  • ACK마다 1MSS씩 증가 → RTT마다 윈도우사이즈가 2배가 됨
  • Threshold : 혼잡 발생 당시 MSS의 절반
    • MSS가 1이 된 시점 = 혼잡 발생 시점
    • 상대적으로 심각한 'Timeout' 발생 시 Slow start 알고리즘을 수행한다.
    • Slow start 알고리즘 수행 중 Threshold에 도달하면 혼잡 회피를 위해 선형적으로 증가한다.
      • RTT 5 ~ 13, RTT 18 ~ 24 : 선형증가

0개의 댓글

관련 채용 정보