[강의정리] 데이터통신과네트워크 Transport Layer 기말


Congestion control

  • Congestion: 너무 많은 소스에서 너무 많은 데이터를 빠르게 네트워크로 보낼 경우 네트워크가 처리할 수 있는 허용 용량(band width)을 넘어 혼잡 발생

  • Flow control과 다름

    • Flow control: 상대방이 데이터를 받을 수 있을 때 그 허용량만큼 보내주는것
    • Congestion control: 네트워크 관점에서 데이터가 많아지면 그것을 조절
  • 선제 조건:

    • 패킷 로스 발생
    • 큐잉 딜레이가 늘어남

Congestion: scenario 1

  • two sender, two reiciver

  • one router, inf buffer

  • output link capacity: R (출력 링크 용량)

  • 패킷이 유실되도 no retransmisson

  • 람다in R/2씩 보내도 람다out R/2

  • 딜레이관점에선 람다in이 증가할수록 딜레이는 기하급수적으로 증가

Congestion: scenario 2

  • one router, fin buffers
  • sender retransmission of timed-out packet
    • application-layer input = application-layer output
    • tranport-layer input includes retransmissions

이상적인 상황: perfect knowledge

  • sender는 buffer에 유효공간이 있을 때만 data를 보냄
  • 람다’in = 람다out

loss packets는 lost 될수있음, 라우터에서 버퍼가 꽉찼을때 드랍

  • sender는 패킷이 유실된걸 알때 다시 보냄
  • 람다’in >= 람다out

현실적인: 중복패킷

  • queueing delay 때문에 timeout 발생후 재전송

  • 최악의 경우 람다’in/2 = 람다out

  • costs of congestion: network congestion이 많아지면 필요하지 않는 재전송이 많아짐

Congestion: scenario 3

  • four senders
  • multihop paths
  • timeout/retransmission 존재

TCP congestion control:

  • End-to-end congestion control: 데이터가 로스가 발생하거나 속도가 느려지면 보내는양 조절
  • Network-assisted congestion control: 라우터들이 네트워크 복잡도 측정, 유저한테 알려줌

Sender가 transmission rate 정해두고 증가, loss가 생기면 조절

  • congestion window, cwnd
  • 매 RTT(round trip time)마다 1MSS(maximum segment size)만큼 증가
  • 로스가 발생하면 반으로 줄임

TCP Congestion control: sender 측에서 돌아감

  • sender에서는 window 2개 (cwnd, rwnd(recived window))

  • LastByteSent-LastByteAcked<=min(cwnd, rwnd)

  • TCP sending rate: cwnd/RTT bytes/sec

TCP Congestion control algorithm

  • slow start
  • congestion avoidance
  • fast recovery
Slow start
  • connection이 시작되면 TCP의 sending rate를 loss가 처음 발생할 때까지 1MSS단위로 증가
  • every RTT 마다 sending rate가 2배씩 증가됨
  • initial rate가 작지만, exponentially fast(기하급수적으로 빠르게)하게 증가
Congestion Avoidance
  • ssthresh: congestion avoidance를 시작하는 시점(마지막 congestion이 발생했을 때 기점의 sending rate 절반)
Fast Recovery
  • cwnd size를 duplicate ACKs의 갯수만큼 증가
  • 필수적인건 아님

TCP Fairness

  • K TCP 세션, Bandwidth R
  • 각각 평균 rate R/K

Explicit Congestion Notification (ECN)

  • Network-assisted congestion control:
    • ECN 비트: 라우터가 패킷이 혼잡하면 설정해줌

댓글