Computer/네트워크

[네트워크] 혼잡 제어

치즈랑 2026. 7. 13. 00:58

https://app.notion.com/p/3-2-TCP-34ee2a9f37498095b5c5d5cf6789c76d?source=copy_link#34fe2a9f37498069a636fdbca9e72110

 

3장 2, 연결지향형 TCP, 혼잡 제어 | Notion

목표

forest-helenium-82b.notion.site

 

혼잡 제어 (네트워크)

혼잡 제어가 필요한 이유 (원인과 비용 관점에서)

  • ~혼잡 제어 → 문제
  • 혼잡 제어 → ~ 문제
  • 재전송 X, 타임아웃이 매우 큰 경우, 타임아웃이 보통인 경우
  • 전송률을 증가시켰을 때 어떤 일이 일어나는지
  1. 시나리오 1 : 2개의 송신자, 무한 버퍼, 하나의 라우터
  • 가정
    • 오류 복구 (재전송) X, 흐름 제어 X, 혼잡 제어 X
    • 호스트 A 평균 전송률 : λin 바이트/초
    • 라우터의 용량 R = 공유 출력 링크
    • 라우터에 무한 버퍼 O
  • 호스트 A, 호스트 B 각각 λin 바이트/초

 

  • 아래의 그래프는 호스트 A의 연결 성능
  • a 연결당 처리량(수신자측에서의 초당 바이트 수)
    • 송신자 전송률 0 ~ R/2 - 수신자 처리량 = 송신자 전송률
    • 송신자 전송률 R/2 이상 - 수신자 처리량 = R/2
      • Why ? 2개의 송신자가 하나의 라우터를 공유하기 때문에
      • = 링크는 안정 상태에서는 R/2를 초과 X
    • 결론 Not bad
  • b 링크 용량 근처에서의 동작 결과 - 혼잡 원인 제공
    • 송신자 전송률 R/2 근접 ⇒ 평균 지연 大
    • 송신자 전송률 R/2 초과 ⇒ 평균 지연 무제한
      • R, 호스트 A = 0.6R, 호스트 B = 0.6R
      1. 1초 뒤 : 라우터 버퍼에 0.2R 쌓임
      2. 2초 뒤 : 라우터 버퍼에 0.4R 쌓임
      3. ··· ⇒ ∞
    ⇒ 패킷 도착률이 링크 용량에 근접할수록 큐잉 지연이 커진다.

 

  1. 시나리오 2 : 2개의 송신자, 유한 버퍼, 하나의 라우터
  • 가정 : 오류 제어(재전송) = 신뢰적
  • 원본 데이터 송신율 = λ 바이트/초
  • 원본 데이터 + 재전송 데이터 송신율 = λ‛ 바이트 /초
    • 네트워크에 재공된 부하(offered load)
  • ※ 전송률 vs 송신율 정의보완___
    • 전송률 = 링크의 최대 용량
    • 송신율 = 실제로 밀어 넣는 양. (원본 데이터 / 재전송)
    • → 시나리오 1의 경우는 재전송이 없었고 다른 조건(IP 계층으로 내리는 속도)를 고려하지 않았기에 전송률로 표기

 

  • a 라우터 버퍼가 비어 있을 때만 송신자가 재전송
    • λin = λ‛in = λout
    • R/2 초과 X
  • b 패킷이 확실히 손실된 것을 알았을 때만 송신자가 재전송 = 타임아웃 太 - 혼잡 원인
    • 예시 그래프에 따르면 λ‛in 가 R/2인 경우 λout = R/3
      • 전송한 R/2 = 원본 데이터 (0.333R 바이트/초) + 재전송 데이터 (0.166R 바이트/초)
      • 비용 : 버퍼 오버플로 때문에 버려진 패킷을 위해 재전송
  • c 큐에서 지연되고 있지만 너무 일찍 타임아웃 되어서 재전송 되는 경우 - 혼잡 원인
    • 원래의 패킷, 재전송된 패킷 (복사본) 모두 수신자에게 전송
    • 따라서 평균적으로 각 패킷이 두번씩 전달 = R/4의 처리량을 가진다
    • 비용 : 라우터가 패킷의 불필요한 복사본들을 전송하는 데 링크 대역폭을 사용

 

  1. 시나리오 3 : 4개의 송신자, 유한 버퍼, 두 개의 라우터 (멀티홉 경로)
    • 가정
      • 호스트 A → 호스트 C
      • R1 (A→C, D→B 공유)
      • R2 (A→C, B→D 공유)

  1. λ‛ in 이 작은 경우
    • 오버플로 거의 X
    • λout 선형 증가
  2. λ‛ in 이 큰 경우
    • R2에서 일어나는 일
    1. A~C는 이미 R1 거쳐서 링크 용량 R 한계를 가짐(도착률)
    2. B~D는 R2가 첫 번째 라우터 = λ‛ in가 커지면 송신율이 무한하게 커짐
    3. B~D가 링크 용량을 많이 차지해서 A~C가 경쟁에서 짐
    4. λout 감소 → 0으로 수렴 (종단 간 처리율 0으로 감소)
  • 비용 : R1에서 보냈으나 R2에서 버려진 패킷 증가 (우선순위를 부여했으면 어땠었을까.)
  • ⇒ R1 라우터 낭비

혼잡 해결 방식

  • 종단 간의 혼잡 제어
    • 혼잡 제어에 네트워크 계층이 직접적으로 도움 X
    • = 종단 시스템이 네트워크를 “관찰”해서 추측
      • TCP 손실 이벤트
        • 타임아웃
        • 3개의 중복 ACK
      • → 네트워크 혼잡이구나! → 혼잡 윈도우 크기 줄이자!
  • 네트워크 지원 혼잡 제어
    • 네트워크 계층이 직접적으로 도움 O (피드백, 송/수신자 모두에게)
    • IBM SNA [Schwartz 1982], DEC DECnet [Jain 1989; Ramakrishnan 1990] architectures, ATM
      [Black 1995] 채택
    • ATM ABR(Available Bite Rate) 혼잡 제어
      • 라우터는 자신이 출력 링크에 제공할 수 있는 전송률을 송신자에게 알림.
    1. 직접 피드백 (Direct network feedback)
      • 네트워크 라우터 → 송신자
      • 초크 패킷(choke packet) 형태로 혼잡하다고 알림
    2. 라우터가 송신자 → 수신자 패킷 특정 필드에 표시/수정
      • 완전한 왕복 시간(RTT)

728x90