TCP : 체증제어/ 혼잡제어

박상준·2022년 8월 22일
0

면접지식

목록 보기
13/32

TCP : 체증제어/ 혼잡제어

Congestion ( 체증, 혼잡 )

망에 입력되는 트래픽 양이 망이 처리 할 수 있는 한도(Capacity) 를 초과하는 경우 체증이 발생한다.

다음 그림은 단위 시간 당 입력되는 패킷의 수(input load)와 단위 시간당 처리되는 패킷의 수(throughput), 그리고 패킷이 처리될 떄 까지의 지연 시간(delay) 관계를 보여 주고 있다.

Congestion control ( 혼잡 제어 )

패킷망에서는 트래픽의 흐름은 일정하지 않다.

  • 회선망과의 차이점

망의 트래픽 처리 용량(capacity)을 최대 트래픽 전송율보다 크게 유지할 수 있다면 체증을 피할 수 있다.

Congestion control 접근법

두 가지 congestion control에 대한 접근법 (흐름제어, 혼잡제어)

  1. 예방적 (Preventive) 체증 제어 - 사전
    • 사전에 망에 입력되는 트래픽의 양을 제어
      • 망 사업자와 사용자와의 계약 - > 그 이상 트래픽 사용 금지 !
    • 라우터에서 패킷을 전송시, 사전에 약속된 계약에 따라 패킷의 전송 순위를 결정
  2. 반응적 (Reactive) 체증 제어 - 사후
    • 체증 현상이 발생할 때 트래픽의 양을 감소

반응적 체증 제어란?

Congestion의 발견(detection)

  • Congestion 이 발생하는 것을 인식한다.
  • 패킷의 지연시간, 라우터의 버퍼의 길이 등을 계속 측정을 하면 congestion 상태의 초기에 이를 발견가능

Congestion에 대한 대응 (통보와 rate control)

  • 트래픽을 과도하게 유발시키는 소스들이 체증이 해소될 때까지 트래픽을 보내는 것을 보류하도록 통보
    • 후방 압박, 초크패킷 전송 등.

반응적 체증 제어를 수행하기에 적합한 계층은 네트워크 계층, 장치 : 라우터

하지만 인터넷 프로토콜에서는 체증 제어의 임무를 TCP가 수행하도록 하고 있다.

  • 근데.. TCP는 end node 이다.. end node에서 체증 제어 임무를 수행하는 것은 옳지 않음.

TCP congestion control

Congestion의 발견

  • TCP 는 송신한 패킷에 대해 ACK을 수신한다.
  • 만약 정해진 시간이 지날 때까지 ACK 이 도착하지 않으면 congestion 이 발생하는 것으로 판단 (Timeout)

Congestion에 대한 두 가지 대응 (Rate control)

  1. TCP호스트는 처음에는 적은 양은 패킷 전송을 하고 점차 양을 늘려나간다. (Slow Start)
    • timeout과 상관없이 모든 호스트는 Slow Start로 패킷을 전송한다.
  2. Congestion 이 발생한 것으로 판단되면 (timeout), 전송되는 패킷의 양을 초기 상태로 줄여서 다시 시작한다. (Congestion Avoidance)
profile
이전 블로그 : https://oth3410.tistory.com/

0개의 댓글