3과 P4-1~
3.6 Principles of congestion control
Principles of Congestion control
Congestion: network load(부하)의 수가 네트워크에서 처리할 수 있는 수보다 더 커질 경우 발생합니다.
Congestion이 발생했을 때: 패킷 손실이 발생하고 딜레이가 길어집니다.
Congestion control은 패킷 전송 rate를 조절하는 메커니즘입니다. 효율과 공평성을 유지해야하죠
Causes/costs of congestion: scenario 3
congestion이 발생하면 쓸데 없이 delay가 발생하기 때문에 불필요한 retx가 생깁니다.
packet이 drop되면 그 전에 보냈던, 즉 upstream transmission이 무용지물이 됩니다.
Congestion Control
knee: throughput이 매우 느리게 증가하는 지점, delay가 빠르게 증가
Cliff: throughput이 매우 빠르게 0으로 감소하는 지점
Congestion control 목표: knee 근처에서 효율적이고 공평하게 resource를 할당하도록 뭔가를 조작하는 것
Approaches to congestion control
Implicit congestion control: 라우터에서 알려주는 메커니즘이 없습니다.(No explicit support) 그래서 congestion이 일어났는지를 추론합니다. TCP에서 사용하고 있습니다. packet loss의 유무로 congestion을 판별합니다.
Explicit congestion control: 라우터에서 congestion이 발생하면 확실하게 정보를 전달해줍니다. 이 전달해주는 방법은 BECN(Backward Explicit congestion Notification), FECN(Forward)입니다. BECN은 네트워크 라우터에서 센더의 뒤로 보내주고 FECN은 센더에서 리시버로 보내는 패킷에 표시를 합니다.
case study: ECN in IP/TCP
Explicit congestion notification(ECN)은 RFC 3168에 있습니다.
ECN은 AQM(Active Queue Management) 메커니즘입니다. 라우터에서 TCP에 congestion에 대해 알려줍니다. TCP는 ECN 신호를 drop된 packet과 같이 취급합니다.
ECN bits
6,7번에서 01 또는 10이면 지원을 합니다. 11일 경우 congestion이 발생했다는 것입니다.
ECN in IP/TCP(1)
ECT는 ECN간에 통신을 할때 주고 받는 데이터입니다.
ECN Negotiation in TCP
ECN in IP/TCP(2)
ECN케이블 라우터에서 incipient한 congestion을 감지하고 ECT가 IP-PDU안에 있는 set인지 봅니다.
ECN in IP/TCP(3)
ECN은 리시버가 IP-PDU와 CE set를 받을수있게 해줍니다.
ECN in IP/TCP(4)
ECN in IP/TCP(5)
ECN in IP/TCP(6)
ECN-NS
NS(Nonse sum)
3.7 TCP congestion control
Evolution of TCP
TCP Congestion control
window 크기를 조절해서 보내는 방식, sending rate는 윈도우 크기/RTT, congestion window를 도입했습니다. 이를 wnd라고 하고 효율적인 window크기는 cwnd의 최소 크기입니다.
control sending rate를 조절하는 방법은 congestion을 알아차릴 때 cwin크기를 늘이고 네트워크가 congest되었을 때 cwin 크기를 줄입니다.
congestion을 감지하는 버비 timeout과 중복된 ACK
Congestion Control: Efficient & Fair Allocation
Efficiency line을 따라가고 fairness line을 따라가서 둘이 만나는 지점입니다.
Control System Model
AIMD가 왜 써야하는 지를 위해 만든 system입니다.
user1이 x1만큼 데이터를 전송할 때 traffic의 양이 타겟보다 크면 1 작으면 0으로 알려줍니다.
Possible Congestion Control Mechanisms
MIAD
AIAD
MIMD
AIMD <-stable
AIMD
stable
Congestion control mechanisms in TCP
slow start
congestion avoidance
fast retransmission / fast recovery
Self-Clocking Mechanism in TCP
self-clocking 메커니즘은 패킷보존을 위한 매커니즘입니다.
Slow start
TCP가 시작할 때 window 크기에 따라 receiver에 의해 advertise됩니다. slow start는 결코 slow하지 않습니다.
처음에 cwnd를 1로 합니다. 단위는 MSS입니다. ACK을 받을 때마다 cwnd를 1segment를 증가시킵니다. 그래서 slow start는 느리지 않습니다.