컴퓨터과학/0 +컴퓨터 네트워킹

[컴퓨터 네트워킹] 4-3) TCP Congestion control

힘들면힘을내는쿼카 2021. 9. 19. 13:01
728x90
반응형

TCP Congestion control

Too many sources sending too much data too fast for network to handle.

-> 네트워크를 공유하고 있는 노드들이 서로 양보해야함

  • End to end
  • Network-assisted

 

TCP Congestion control

 

  • AMID approach
    • Additive increase: 천천히 증가
    • Multiplicative decrease: 반으로 감소
  • Congestion window(cwnd)
    • 송신측이 ack 없이 한번에 데이터를 보내는 크기(congestion contro을 위해 계속 변함)
  • TCP Receive window(rwin)
    • 수신측이 ack없이 한 번에 data를 받을 수 있는 크기
  • 상대방에게 자신이 처리 가능한 buffer 크기 만큼을 window size값으로 알려주면 수신측에서 해당 크기 만큼 ack를 받지 않고 한번에 데이터 전송..

 

반응형

TCP Congestion control algorithm

  • TCP Tahoe
    • Slow start
    • Congestion avoidance
    • Fast retransmit
  • TCP Reno
    • Slow start
    • Congestion avoidance
    • Fast retransmit
    • Fast recovery in case of fast retansmit
  • TCP NewReno
    • Slow start
    • Congestion avoidance
    • Fast retransmit
    • Modified fast recovery for multiple packet losses

 

 

TCP Tahoe(1988)

  • 특징
    • Slow start(cwnd = 1MSS)
    • Congestion avoidance
    • Fast retransmit
      •   retransmission upon 3 duplicate ACKs
  • The slow start begins
    • Timeout
    • fast retransmit

 

 

TCP Reno(1990)

  • Tahoe의 한계
    • Timeout과 duplicate ACKs를 구별할 수 없음
    • cwnd를 1MSS로 설정(throughput 감소)
  • Packet loss에 대한 2가지 응답
    • Loss indicated by timeout(same Tahoe)
      • cwnd set to 1 MSS
      • Slow start to ssthresh, then congestion avoidance begins
    • Loss indicated by fast retransmit
      • cwnd cut in half
      • Fast recovery, then congestion avoidance

Fast recovery

  • Half cwnd maintained until a non-duplicate ACK is received
    • Amount of packet in transit kept from decreasing more than expected
  • Fast recovery는 window size를 반으로 줄이고
    non-duplicate ACK, 내가 지금 loss를 발견 하기 까지의 non-duplicate ACK 이외에 새로운 ACK를 받을 때 까지 대기를 하는 것입니다.
  • Operation
    • 3개의 중복 ACK 발생
    • Cwnd를 반으로 후려침
    • 가장 오래되고 unack packet을 재전송함
    • 또한 중복 패킷의 숫자만큼 congestion window를 늘림
    • Non duplicate ACK는 congestion avoidance start를 생성.

 

TCP NewReno

  • Vulnerability of Reon’s fast recovery
    • In case of multiple packet losses, cwnd may be reduced too much
      • 1번째 발생 -> 1/2
      • 2번째 발생 -> 1/4
      • 3번째 발생 -> 1/8
  • Refinement of Reno’s fast recovery
    • Cwnd의 사이즈를 유지하면서 데이터 재전송

 

 

SACK(Selective ACK) option

결국은 selective repeat 방식 하고 같은 의미인데

하나의 ACK 메시지 내에 이렇게 필드를 분할 해서 특정 segment들에대해서 ACK 응답을 보낼 수 있도록 디자인 되었다는 것이 특

 

 

TCP vs UDP

728x90
반응형