[네트워크] 3-6. Principles of congestion control

kkado·2023년 4월 14일
0

네트워크

목록 보기
17/49

⚠️ 들어가기 앞서
경북대학교 컴퓨터학부 COMP0414-001 컴퓨터망 과목을 공부하며 정리한 글입니다.


1. Congestion?

앞서 여러 차례 언급했던 혼잡에 대해 제어하는 방법을 알아보고자 한다.
먼저, 혼잡이란 무엇인지 알고 넘어가자.

Congestion(혼잡) 이란, 데이터의 양이 너무 많아 감당할 수 없는 상태를 말한다.

혼잡이 발생하면 그 결과 전송한 패킷이 queueing 됨에 따라 긴 지연 시간이 발생하거나, 라우터 버퍼가 꽉 차게 되면 overflow되어 packet loss가 발생할 수 있다.

한 가지 유의할 점이, flow control(흐름 제어)와는 다른 개념이다.

  • 흐름 제어는 수신자의 상태를 확인하고 송신자가 패킷을 보내는 속도를 조절하여 수신자와의 데이터 처리 속도를 맞추는 과정이다.
  • 혼잡 제어는 송신 측의 데이터 전달과 네트워크의 데이터 처리 속도 차이를 해결하기 위한 기법이다.

2. cause/cost of congestion

scenario #1

첫 번째 상황은 다음과 같은 조건 하에 고려된다.

  • 두 개의 송신자, 두 개의 수신자
  • 하나의 라우터는 무제한의 버퍼를 가지고 있음
  • 라우터의 link capacity는 R
  • 데이터 전송 속도는 λ
  • 재전송 하지 않음

  • 두 개의 송신자가 하나의 link를 공유하기 때문에 각자 최대 R/2 까지 이용할 수 있다.
  • 지연의 경우 queueing이 계속 발생하기 때문에 무한으로 증가한다.

scenario #2

  • 두 개의 송신자, 두 개의 수신자
  • 하나의 라우터의 버퍼 크기는 유한함
  • 송신자는 timeout 되었거나 소실된 패킷에 대해서 재전송 함
  • 응용 계층에서는 시스템이 stable하기 위해 입력 속도와 전송 속도가 같아야 한다. (λin = λout)
  • TCP에서는 재전송 하기 때문에 λ'in >= λin (여기서 λ'in는 original data + retransmitted data)

재전송되는 패킷이 있기 때문에 λ'in이 R/2 일 때 λout은 R/2보다는 낮은 값이 된다.

여기서 premature timeout이 발생하여 불필요하게 재전송되는 패킷도 추가될 경우, λout은 더 낮게 형성된다.

scenario #3

  • 4명의 송수신자
  • 여러 개의 경로 및 라우터
  • timeout 및 재전송이 발생

만약 빨간 경로의 λ가 증가한다면?
위쪽 라우터의 버퍼 중 빨간 경로의 패킷이 차지하는 비중이 늘어나게 되고 파란 경로의 throughput이 감소한다.

λ이 계속해서 증가하게되면 빨간색 패킷과 파란색 패킷이 지나는 라우터의 버퍼는 유한하기 때문에 통과하는 파란색의 패킷은 점점 줄어들고 Host B에서 파란색의 throughput에서 점점 더 loss가 발생한다. 그래서 c/2 시점 이후로는 0으로 수렴하게 된다.

정리

  • throughput은 capacity를 절대 넘을 수 없다.
  • capacity가 증가할수록 delay는 큰 폭으로 증가한다.
  • 손실 및 재전송은 효율적인 throughput을 저해한다.
  • 불필요한 중복 전송은 효율적인 throughput을 더 크게 저해한다.

3. 해결책

end-end congestion control

  • 네트워크에서 명시적인 피드백을 주지는 않지만, 패킷을 보냈는데 거기에 대한 응답이 오지 않으면 관찰적으로 loss 또는 delay가 발생하고 있다고 추론 가능하다.
  • 네트워크의 도움 없이 송신자가 알 수 있는 방법이다.

network-assisted congestion control

  • 라우터 자체가 혼잡 제어를 지원하며, 네트워크 내에서 혼잡을 감지하고 이를 통과하는 송/수신자에게 피드백을 준다.

profile
베이비 게임 개발자

0개의 댓글