핵심 인사이트 (3줄 요약)

  1. 본질: 혼잡 회피(Congestion Avoidance)는 슬로우 스타트로 미친 듯이 팽창하던 속도(CWND)가 임계점(ssthresh)에 도달했을 때, "여기서부터는 배수(x2)로 올리면 무조건 사고 난다! 지금부터는 패킷 100개를 보내서 영수증을 다 받아야 겨우 속도(CWND)를 딱 1개씩만 늘려라!"라며 브레이크를 걸고 정속 주행으로 찔끔찔끔 올라가는 안전 모드다.
  2. AIMD 알고리즘 (핵심 철학): 이 동작을 수학적으로 **AIMD (Additive Increase, Multiplicative Decrease)**라고 부른다. 속도를 올릴 때는 조심스럽게 "덧셈(+1)"으로 올리고(AI), 사고가 터져서 브레이크를 밟을 때는 얄짤없이 "나눗셈(/2)"으로 확 깎아버리는(MD) 극단적인 보수주의 철학이다.
  3. 공평성(Fairness)의 달성: 인터넷에 100대의 컴퓨터가 접속했을 때 어떤 놈은 1기가, 어떤 놈은 10메가를 쓰면 불공평하다. 이 AIMD 알고리즘이 돌아가면, 많이 쓰던 놈은 사고 날 때 절반으로 왕창 깎이고, 적게 쓰던 놈은 조금 깎이게 되어, 결국 100대의 컴퓨터가 대역폭을 $1/100$씩 똑같이 나눠 쓰게 되는 마법의 평등이 달성된다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

  • 개념: TCP 혼잡 제어의 2단계로, CWND가 ssthresh(임계치) 이상일 때 네트워크 혼잡을 유발하지 않도록 윈도우 크기를 선형적(Linear, +1 MSS per RTT)으로 서서히 증가시키는 상태.

  • 필요성: 슬로우 스타트는 눈을 감고 엑셀을 밟는 것과 같다. 1 -> 2 -> 4 -> 8 -> 16 -> 32. 만약 도로의 한계가 17이었다면? 16에서 32로 두 배 점프하는 순간 라우터는 터진다. "임계점(16)에 도달했다는 건 이제 턱밑까지 물이 찼다는 뜻이야! 여기서부터는 32로 점프하지 말고, 17, 18, 19... 이렇게 1씩만 올려서 도로 한계선(17)을 조심조심 더듬으면서 찾아내자!"

  • 💡 비유: AIMD(혼잡 회피)는 젠가(Jenga) 게임에서 **"탑이 아슬아슬할 때의 블록 빼기"**와 같습니다.

    • 게임 초반(Slow Start)에는 탑이 튼튼하니 한 번에 블록을 2, 3개씩 휙휙 빼도 무너지지 않습니다.
    • 탑이 휘청거리기 시작하는 시점(ssthresh)부터는, 숨을 꾹 참고 조심스럽게 딱 1개씩만(Additive Increase) 빼야 합니다.
    • 그러다 결국 탑이 와르르 무너지면(Packet Drop), 벌칙으로 쌓아둔 점수를 절반으로 왕창 깎아버립니다(Multiplicative Decrease).

📢 섹션 요약 비유: AIMD는 회사원의 **"월급과 주식 투자"**의 법칙입니다. 매달 월급을 모을 때는 100만 원씩 찔끔찔끔 힘겹게 더해지지만(Additive Increase), 경제 위기(혼잡)가 와서 주식이 폭락할 때는 순식간에 내 재산이 반토막(Multiplicative Decrease) 나버리는 눈물겨운 현실의 수학입니다.


Ⅱ. 혼잡 회피의 덧셈 로직과 AIMD의 기적 (Deep Dive)

1. 1 RTT당 딱 1개 증가 (+1 MSS)

슬로우 스타트는 영수증(ACK) 1개가 올 때마다 CWND를 1씩 늘렸다(그래서 패킷 10개를 쏘면 10개가 와서 $10+10=20$으로 2배가 되었다). 하지만 혼잡 회피 상태에 들어가면 로직이 바뀐다.

  • 내가 패킷 10개를 쐈다 (CWND=10).
  • 영수증(ACK)이 1개 올 때마다 CWND를 1 올리는 게 아니라, 1 / 10 (즉 1 / CWND) 만큼만 찔끔 올린다.
  • 결과적으로 영수증 10개가 다 도착해야 비로소 $1/10 * 10 = 1$ 이 되어, 내 CWND는 10에서 딱 11로 딱 1칸 성장하게 된다. (완벽한 선형 증가 곡선).

2. AIMD에 의한 공평성(Fairness) 수렴 원리

네트워크 공학에서 가장 아름다운 현상으로 꼽힌다. 100Mbps 선로에 사용자 A(80M 사용)와 사용자 B(20M 사용)가 있다 ──▶ 혼잡 발생! (총 100M 도달).

  1. 라우터가 꽉 차서 패킷을 버린다 (Drop 발생).
  2. A와 B는 동시에 이를 감지하고 속도를 깎는다 (Multiplicative Decrease).
  3. A는 80M에서 절반인 40M로 무려 40M나 깎인다!
  4. B는 20M에서 절반인 10M로 고작 10M만 깎인다!
  5. 합계가 50M가 되어 혼잡이 풀린다.
  6. 다시 둘 다 1Mbps씩 똑같이 야금야금 올린다 (Additive Increase). A는 41M, B는 11M...
  • 결과: 이 짓을 수십 번 반복하다 보면, 많이 쏘던 놈은 훅훅 깎이고, 적게 쏘던 놈은 찔끔 깎이면서 마침내 A와 B가 50M : 50M 로 완벽하게 1:1 수렴(Fairness)하게 된다.
 ┌─────────────────────────────────────────────────────────────┐
 │                AIMD 공평성(Fairness) 수렴의 마법 핑퐁            │
 ├─────────────────────────────────────────────────────────────┤
 │                                                             │
 │   [ 100M 대역폭 한계선 ]                                        │
 │                                                             │
 │   * 1라운드 혼잡: A(80) + B(20) = 100 ──▶ 절반 삭감!           │
 │                 A(40) + B(10) = 50  (격차 30으로 줄어듦)       │
 │                                                             │
 │   * 2라운드 증가: 둘 다 25씩 똑같이 늘림 (+25)                    │
 │                 A(65) + B(35) = 100 ──▶ 꽉 참! 절반 삭감!      │
 │                 A(32.5) + B(17.5) = 50 (격차 15로 더 줄어듦!) │
 │                                                             │
 │   ▶ "이 톱니바퀴를 무한 반복하면, 결국 거인과 난쟁이는 완벽하게       │
 │      똑같은 덩치 (50 vs 50)로 키가 맞춰지는 기적이 일어난다!"        │
 └─────────────────────────────────────────────────────────────┘

📢 섹션 요약 비유: AIMD는 세금 징수의 원리와 같습니다. 돈을 벌 때(속도 증가)는 부자나 빈자나 똑같이 연 1천만 원씩 일률적으로 벌게 놔둡니다(Additive). 하지만 국가 위기(혼잡)가 오면 재산 비례세(Multiplicative)를 때려, 부자의 재산을 절반(40M) 몰수하고 빈자의 재산도 절반(10M) 몰수합니다. 이 정책을 수십 번 반복하면 부자와 빈자의 재산 격차는 사라지고 평등해집니다.