TCP

이재윤·2021년 2월 21일
0

네트워크

목록 보기
6/9
post-thumbnail

💻TCP congestion control(혼잡 제어)

  • Congestion

    • Network가 처리할 수 있는 양을 넘어서는 많은 데이터가 빠르게 들어와 생기는 현상이다.
    • 패킷의 유실, 패킷의 지연을 초래할 수 있다.
  • 세가지 상황

    1. 두개의 senders, 두개의 receivers, 한개의 무한 버퍼를 갖는 라우터
      • 패킷이 유실될 일이 없기 때문에, 인풋과 아웃풋이 정비례 관계가 된다.
      • 라우터의 버퍼가 무한대여도 인풋이 이용가능한 output link capacity (R/2)에 가까워지면 delay가 기하급수적으로 증가하게 된다.
    2. 두개의 senders, 두개의 receivers, 한개의 유한 버퍼를 갖는 라우터
      1. 버퍼가 비어 있을 때만 전송하는 경우 (이상적)
        • 패킷이 유실될 일이 없으므로 재전송도 필요 없다. 따라서 입력과 출력이 정비례 관계를 가지게 된다.
      2. 패킷이 유실되는 경우
        • 라우터의 버퍼가 모두 차게되어 패킷이 유실되는 경우는 유실된 패킷을 재전송 해야 한다. 따라서 동일한 출력량을 얻기 위해서는 더 많은 입력 (패킷전송)이 필요하다.
      3. 응답 시간이 초과되는 경우
        • 응답제한 시간이 끝나는 경우 해당 패킷을 재전송 해야 한다.
    3. 네개의 senders와 receivers (다수의 senders와 receivers), 유한 버퍼를 갖는 라우터 (실제)
      • 모든 sender들이 최대로 패킷을 전송할 경우 도착하는 패킷들은 0에 수렴하게 된다.
      • 만약 패킷들이 유실될 경우, 패킷들을 전송하기 위해 사용되었던 네트워크 자원들이 낭비가 되는 문제가 발생한다.
  • Congestion Control의 두가지 접근 방법

    1. end-end congestion control
      • network layer에서 congestion을 감지하는 것이 아닌 end-system에서 loss와 delay를 통해 congestion을 감지한다.
      • TCP가 사용하는 방법이다.
    2. network-assisted congestion control
      • Router(network layer)가 congestion을 감지하는 방법이다.
        1. single bit (비트로 congestion 감지)
        2. explicit rate (전송률 통보)
  • TCP congestion control

    • AIMD(Additive Increase, Multiplicative decrease)
      1. Additice Increase
        Data Loss가 발견되기 전까기 CWND의 크기를 매 RTT당 1MSS만큼 증가 시킨다.
      2. Multiplicative Decrese
        Data Loss를 감지한 후에는 CWND의 크기를 절반으로 줄인다.
    • TCP Slow Start(Additive Increase)
      • Loss가 발견되기 전까지 발생하는 과정이다.
      • 처음 CWND의 크기는 1MSS이다.
      • 매 ACK당 1MSS가 증가하게 된다.
      • 초기 CWND의 값은 작지만 증가는 exponential하게 증가한다.
    • Congestion Avoidance
      CWND의 크기가 exponetial하게 증가하다가 ssthresh를 넘게 되면 1씩 증가하게 된다.
    • Loss Detected
      1. TCP Tahoe
        Dup ACK, Time out이 발생했을 경우, CWND의 크기를 1로, ssthresh의 크기를 CWND / 2로 설정한 후 TCP Slow Start단계로 진입한다.
      2. TCP Reno
        Dup ACK이 발생했을 경우, ssthresh와 CWND의 크기를 CWND / 2로 설정한 후 1씩 증가 시킨다.
        Time out이 발생했을 경우, TCP Tahoe와 같이 동작한다.
  • TCP Fairness
    K개의 TCP session이 bandwidth가 R인 link를 공유하고 있을경우, 각각의 평균 전송률은 R/k가 되어야 한다.

0개의 댓글