CS/Computer Network

[Network] Trnasport ( congestion control ~ fairness : end )

KimBangg 2021. 4. 30. 15:07

 

Tcp congestion control - > 네트워크 상의 데이터 처리를 효율적으로 하기 위해서 사용!

 

각각 sender가 커넥션으로 보내는 트래픽 속도를 줄이는 방법을 통해, control을 한다.

만약, Tcp sender가 congestion이 없다고 느끼며, 전송속도 UP, 있다고 느끼면 Down !

 

Questions

1. how does a TCP sender limit the rate at which it send traffic into its connection?

 

Congetsion control mechanism을 활용하는 sender는 congestion window(=cwnd)를 가지고 있다.

cwnd를 사용해서 sender는 packet으로 인해 connection이 overflow가 되지 않도록 하기 위해

=> LastByteSent - LastByteAcked <= min { cwnd, rwnd} 만큼의 데이터를 보낼 수 있으며 , 보내는 속도는 cwnd/RTT로 제한 되어야 한다.

 

 

2. how does a TCP congestion?

2-1) AIMD( Addictive_increase, Multiplicative-Decrease)

Loss가 감지되기 전 까지는 RTT당 1MSS만큼 증가 시키고, Loss가 발생하게 되면 cwnd를 half!

 

2-2 ) slow start

최초 cwnd는 = 1mss로 설정한 후, 충돌이 나기 전 까지는 2배씩 향상시키켜 빠르게 상승시킨다.

대표사진 삭제

사진 설명을 입력하세요.

 

 

2-3) loss 발견 및 대응 방법

1.timeout을 통해 loss가 발생한 경우

cwnd를 1로 초기화 시키고, threshold(충돌난 지점의 2/1)지점까지는 slow start 방식으로 진행 한 후,

threshold를 지나면 congestion avoidance를 위해 linear로 1mss씩 증가 시킨다.

 

2) 3duplicate 를 통해 loss를 알게 된 경우

 

RENO : loss 지점의 half부분 + 3 지점부터 시작.

Tahoe : Timeout loss와 같은 방식으로 구현.

 

 

 

대표사진 삭제

사진 설명을 입력하세요.

 

3) TCP throughput

 

W : loss가 발생했을 때의 windowsize를 의미한다.

 

avg window size = 3/4 * w;

avg throughput = 3.4*w per RTT

 

4) TCP fairness

K개의 TCP 연결이 R bps의 전송률 (bandwidth)의 link를 공유하는 경우, 각 전송률의 평균이 K/R가 가깝다면

Congestion control은 fairness하다고 정의 할 수 있다.

 

공정한 이유는 ?

- 이상적으로 두 처리율의 합은 R과 같아야 함

- 동등한 대역폭 공유와 전체 대역폭 이용선의 교차 지점 가까운 곳의 처리율

- throughput이 증가함에 따라, addictive는 increase slope of 1, 감소하는 비례하는 양 만큼하기 때문

 

 

UDP faireness

1) 멀티미디어 어플리케이션은 TCP를 사용하지 않음

=> loss < 속도 중요, 즉 congestion control 도입을 통해 속도의 감소를 원치 않는다.

 

하지만, TCP관점에서는 UDP가 공정하지 못하는데, 그 이유는 전송률 조절 및 협력을 하지 않기 때문에, tcp 트래픽을 밀어낼 가능성이 존재한다.