Transcript
Page 1: Chapter  24 Congestion Control

1

Chapter 24

Congestion Control

Page 2: Chapter  24 Congestion Control

2

트래픽 특성

서비스에 따라 트래픽은 다양한 특성을 갖는다 .

트래픽의 특성을 나타내는 주요 파라메터(traffic descriptor)

Page 3: Chapter  24 Congestion Control

3

데이터 트래픽

데이터 트래픽은 매우 불규칙적인 특성을 갖는다 .(bursty traffic)

반면에 전화망의 음성 트래픽은 비교적 일정한 흐름의 트래픽이다 .

Page 4: Chapter  24 Congestion Control

4

Congestion( 체증 , 혼잡 )

망에 입력되는 트래픽 양이 망이 처리할 수 있는 한도를 초과할 경우 체증이 발생한다 .

다음 그림은 단위 시간 당 입력되는 패킷의 수 (input load) 와 단위 시간당 처리되는 패킷의 수 (throughput), 그리고 패킷이 처리될 때 까지의 지연 시간 (delay) 관계를 보여 주고있다 .

Page 5: Chapter  24 Congestion Control

5

Congestion control

Congestion 은 패킷 망에서 해결해야 할 가장 중요한 과제이자 가장 어려운 과제 중의 하나이다 .

두 가지 congestion control 에 대한 접근법 Preventive congestion control

사전에 망에 입력되는 트래픽 양을 조절한다 . Reactive congestion control

체증현상이 발생할 때 트패픽 양을 감소시킨다 .

Page 6: Chapter  24 Congestion Control

6

Reactive congestion control

Congestion 의 발견 (detection) Congestion 이 발생하는 것을 인식한다 . 패킷의 지연시간 , 라우터의 버퍼의 길이 등을 계속

측정을 하면 congestion 상태의 초기에 이를 발견해 낼 수 있다 .

Congestion 에 대한 대응 ( 통보와 rate control) 트래픽을 과도하게 유발시키는 소스들이 체증이

해소될 때까지 트래픽을 보내는 것을 보류하도록 통보한다 .(notification)

교과서의 후방 압박 (backpressure) 이나 초크 패킷 전송이 그 예이다 .

Page 7: Chapter  24 Congestion Control

7

TCP congestion control

Congestion 의 발견 (detection) TCP 는 송신한 패킷에 대해서 ACK 을 수신한다 . 만약 정해진 시간이 지날 때 까지 ACK 이 도착하지

않으면 congestion 이 발생한 것으로 판단하다 .(timeout)

Rate control TCP 호스트는 처음에는 적은 양의 패킷 전송을 하고

점차 양을 늘려나간다 .(slow start) Congestion 이 발생한 것으로 판단되면 전송되는

패킷의 양을 초기 상태로 줄여서 다시 시작한다 .(congestion avoidance)

Page 8: Chapter  24 Congestion Control

8

Congestion control 파라메터

Awnd (advertised window by receiver) 초기 연결 설정 단계에서 , TCP 는 상대방 TCP 에게

자신의 최대 버퍼 크기 ( 초기 Awnd) 를 알려준다 . 세그먼트를 수신할 때 마다 TCP 는 현재 자신의 버퍼

중 비어있는 공간의 크기 (Awnd) 를 알려준다 . Cwnd (congestion window)

TCP 가 세그먼트를 전송할 때 ACK 을 받지않고 연속해서 보낼 수 있는 세그먼트의 양을 결정한다 .

즉 , TCP 흐름 제어에 의하면 TCP 는 Awnd 만큼 연속해서 세그먼트를 전송할 수 있다 . 하지만 congestion control 에 의해서 Awnd 만큼 전송할 수 없고 Cwnd 만큼 전송하게 된다 .

Page 9: Chapter  24 Congestion Control

9

Slow Start

initialize: cwnd = 1 (one maximum segment size);

For each segment that is acknowleged

cwnd = cwnd + 1 until min(cwnd, awnd)

Page 10: Chapter  24 Congestion Control

10

Congestion Avoidance

TCP 는 timeout 될 때까지 ACK 을 받지 못하면 congestion avoidance 를 수행한다 .

Congestion Avoidance

If (segment timeout)

1. Set threshold = cwnd/2

2. Set cwnd = 1 and

restart “slow-start” until (cwnd = threshold)

3. If (cwnd threshold)

cwnd = cwnd + 1 every roundtrip time

Page 11: Chapter  24 Congestion Control

11

cwnd

Round-trip times

15

20

5

21

10

43 5 126 98 107 1311 15 1614

Time out occurs

Threshold

Slow Start 와 Congestion Avoidance

Page 12: Chapter  24 Congestion Control

12

Fast Retransmit 와 Fast Recovery 동일한 ACK 을 3 개 받을 경우

Fast Retransmit Timeout 되기 전이라도 바로 재전송한다 .

Fast Recovery Cwnd 를 현재의 Cwnd 의 반으로 줄인다 . 그리고 줄인 Cwnd 에서부터 linear 하게

증가시킨다 .

Page 13: Chapter  24 Congestion Control

13

Fast Retransmit 와 Fast Recovery

Page 14: Chapter  24 Congestion Control

14

Cwnd 의 변화 예


Top Related