혼잡 제어(Congestion Control)란?

네트워크가 너무 붐벼 패킷이 손실되는 상태(혼잡)를 피하기 위해 송신 측이 보내는 양을 조절하는 구조. TCP는 혼잡 윈도를 가지며, 슬로 스타트로 급격히 늘린 뒤에는 조금씩 늘리고, 패킷 손실을 검출하면 크게 줄인다(AIMD). 손실이나 지연의 증가 양상, 측정한 대역폭 등을 단서로 삼는 CUBIC, BBR 등의 방식이 있다. 수신 측의 처리에 맞추는 흐름 제어와는 목적이 다르다.

일본어 명칭: 輻輳制御

혼잡 제어(Congestion Control)은(는) 네트워크 기초, 웹 기술 기초 등 2개 분야의 연습 문제 3개에 나와요.

분야: 네트워크 기초

도전해 보기: 혼잡 제어(Congestion Control) 관련 문제

TCP 혼잡 제어의 기본적인 개념으로 올바른 것은?

  1. A수신 측 버퍼의 빈 공간을 송신 측에 알려 버퍼가 넘치지 않게 한다
  2. B패킷 손실 등을 혼잡의 신호로 보고 송신 측이 혼잡 윈도를 줄여 보내는 양을 줄이며, 혼잡이 없으면 조금씩 늘린다
  3. C혼잡한 라우터가 각 송신자에게 보내도 되는 속도를 수치로 지시하고, 송신 측은 그에 따른다
정답과 해설 보기

정답: B. 패킷 손실 등을 혼잡의 신호로 보고 송신 측이 혼잡 윈도를 줄여 보내는 양을 줄이며, 혼잡이 없으면 조금씩 늘린다

네트워크 도중의 라우터가 혼잡해지면 대기열이 길어져 지연이 늘고, 넘친 패킷은 버려집니다. TCP의 송신 측은 ACK가 돌아오지 않는 것이나 중복된 ACK로부터 손실을 추정하여, 스스로 보내는 양(혼잡 윈도)을 줄입니다. 연결을 시작할 때는 슬로 스타트로 1왕복마다 거의 2배로 늘려 비어 있는 대역폭을 재빨리 탐색하고, 그 후에는 조금씩 늘리다가 손실이 생기면 크게 줄입니다(가산적 증가·승산적 감소). 실제로 보낼 수 있는 양은 혼잡 윈도와 수신 윈도 중 작은 쪽으로 정해집니다. 늘리는 방식이나 혼잡을 판단하는 방식이 다른 CUBIC, BBR 등의 방식이 사용되고 있습니다.

1.5 MB의 텍스트 데이터를 gzip으로 3분의 1 크기로 압축하여 보낸다. 대역폭이 10 Mbps, RTT가 100 ms이고, 데이터를 보내기 시작하기 전에 TCP 연결, TLS 핸드셰이크, HTTP 요청에 합쳐서 3왕복이 걸린다고 한다. 1 MB = 10^6바이트로 하고, 압축과 압축 해제 시간, 헤더, TCP의 혼잡 제어에 의한 대기는 무시한다. 데이터를 다 받을 때까지의 시간에 가장 가까운 것은?

  1. A약 0.4 s
  2. B약 0.7 s
  3. C약 1.5 s
정답과 해설 보기

정답: B. 약 0.7 s

압축한 후의 크기는 1.5 ÷ 3 = 0.5 MB이고, 비트로 고치면 0.5 × 8 = 4 Mbit입니다. 이를 10 Mbps로 보내는 시간은 4 ÷ 10 = 0.4 s이며, 보내기 시작하기 전의 3왕복인 3 × 0.1 = 0.3 s를 더하면 합계 약 0.7 s입니다. 압축하지 않으면 1.5 MB = 12 Mbit의 전송에 12 ÷ 10 = 1.2 s가 걸려 합계는 약 1.5 s가 됩니다.

해설 속 혼잡 제어(Congestion Control)

혼잡 제어(Congestion Control)이(가) 나오는 문제 (3)

  1. TCP 혼잡 제어의 기본적인 개념으로 올바른 것은?
  2. 1.5 MB의 텍스트 데이터를 gzip으로 3분의 1 크기로 압축하여 보낸다. 대역폭이 10 Mbps, RTT가 100 ms이고, 데이터를 보내기 시작하기 전에 TCP 연결, TLS 핸드셰이크, HTTP 요청에 합쳐서 3왕복이 걸린다고 한다. 1 MB = 10^6바이트로 하고, 압축과 압축 해제 시간, 헤더, TCP의 혼잡 제어에 의한 대기는 무시한다. 데이터를 다 받을 때까지의 시간에 가장 가까운 것은?
  3. TCP의 흐름 제어에서 수신 측이 윈도 크기(수신 윈도)를 송신 측에 알리는 목적으로 올바른 것은?

이 용어가 포함된 비교

관련 용어

TCP(전송 제어 프로토콜) 라우터(Router) 패킷(Packet) RTT(왕복 시간) TLS HTTP(하이퍼텍스트 전송 프로토콜) 흐름 제어(Flow Control) 3-way 핸드셰이크(Three-way Handshake) 기본 게이트웨이(Default Gateway) 라우팅(경로 제어)

용어집으로 돌아가기