TCP Control & Fairness

gmkim·2023년 11월 28일
0

Network

목록 보기
5/9
post-thumbnail

Principles of Congestion Control

Congestion

  • 네트워크가 처리하기에는 너무 많은 데이터를 너무 빨리 보내는 자원이 너무 많음
  • 라우터에서 버퍼 오버플로우가 발생 -> 패킷 손실
  • 라우터 버퍼에서 queueing -> delay가 길어짐

Approches Towards Congestion Control

Network-assisted congestion control

  • 라우터가 혼잡 상태에 관한 정보를 수신자에게 직접 전달하는 방식
  • SNA, ATM, DECbit 등에서 사용

end-end congestion control

  • 네트워크로부터 어떠한 피드백도 받지 않고
  • 손실이나 지연 등을 end system이 추측하는 방법
  • TCP에서 사용

TCP Congestion Control

  • 접근: 네트워크 혼잡에 따라 연결에 트래픽을 보내는 전송률을 각 송신자가 제한하도록 하는 것이다.
  • additive increase: loss가 발생하기 전까지 모든 RTT마다 cwnd를 1 MSS씩 증가시킨다.
  • multiplicative decrease: loss가 발생하면 cwnd를 절반으로 줄인다.
  • cwnd(congestion window): TCP 송신자가 네트워크로 트래픽을 전송할 수 있는 비율을 제한
  • 송신자의 전송 제한: (LastByteSent-LastByteAcked) ≤ cwnd
  • cwnd: 네트워크 혼잡에 따라 유동적이다.
  • TCP 전송 속도: (cwnd/RTT) bytes/sec
  • loss 발생
    • timeout
      • cwnd는 1 MSS로 설정됨
      • threshold까지는 exponential하게 증가하다가, 그 후부터는 linearly하게 증가
    • 3개의 중복된 ACK 들어옴
      • cwnd는 절반이 되고, linearly하게 증가
    • TCP Tahoe는 항상 cwnd가 1로 설정됨 (loss 발생하면)

TCP Fairness

  • 목표 : if K TCP sessions share same bottleneck link of bandwidth R, each should have average rate of R/K

Not Fair because of UDP

  • 멀티미디어 앱은 가끔 TCP를 사용하지 않고 UDP를 사용
    • send audio/video at constant rate, tolerate packet loss

Unfair allocation of R due to parallel TCP connection

  • application can open multiple parallel connections between two hosts
    • web browsers do this
profile
🌊 Flooding loads of work

0개의 댓글