Generalizing The Network Performance Interference Problem Jiyong Park Real-Time Operating Systems Laboratory, Seoul National University, Korea 12, Dec. 2005
Contents Overview Background Knowledge Network Model Analysis of The Model Solution Mechanism Future Work Conclusion
Overview (1/3) Goal JEC paper Generalizing the network performance interference problem. Proposing a universal solution mechanism for the problem. JEC paper Submitted at Aug. 2005 Analysis and solution only for a specific network configuration Queue size = 100, upload speed = 800 Kbps, ...
Number of ACK packets for opposite direction Overview (2/3) Result of Analysis Factors that affects the throughput Delay of ACK should be as short as possible. Number of ACK in the queue should be minimized. Number of ACK packets for opposite direction in the queue delay of ACK packet
Overview (3/3) Basic Idea Solution Mechanism Delay of ACK should be as short as possible. Solution: Priority of ACK > priority of data Number of ACK in the queue should be minimized. Solution: Drop probability of ACK > drop probability of data Solution Mechanism Idea from RED (Random Early Detection) queue Separate queues for ACK and non-ACK packets
Background Knowledge
Bandwidth-Delay Product Bandwidth-delay product is the number of packets that are in-flight in a link. Example of a conveyor belt. For a network link Number of people in a conveyor belt = 2 * 2 = 4 peoples 2 peoples/minute It takes 2 minute. Maximum number of packets = μ t / L Transmission speed = μ (bytes/second) Number of packets = λ t / L Packet size = L(byte) Propagation delay = t (seconds) Packet speed = λ (byte/second) (λ ≤μ)
Capacity of a Path Capacity of a Path (C) Maximum number of packets (of bytes) that can be in-flight in the path. Sum of bandwidth-delay product of all links and capacity of buffers If we send more packets than C, excessive packets will be dropped at the queue. B2 λc tc λa ta λb tb B1
TCP Overview – 1. Flow Control (1/3) Window Number of data packets that can be sent without being acknowledged. Represented as variable wnd. Sliding window Upon receiving ACK, window slides.
TCP Overview – 1. Flow Control (2/3) Operation on Sender’s Side If an ACK is received, Transmit k data packets immediately (slide the window by k). k = seq. number of current ACK – seq. number of previous ACK Sent & ACKed Sent & Not ACKed Not sent window (wnd = 5) λ data packets/sec Sender user data (infinite) 1 2 3 4 5 6 7 8 9 10 11 11 12 13 14 12 13 14 λa ACK packets/sec ACK received: 5 6 9 Data sent: 11 12 13 14
TCP Overview – 1. Flow Control (3/3) Operation on Receiver’s Side If a data packet is received, Send one ACK packet immediately. Seq. number of the ACK := seq. number of last data packet that has been received in-order λ data packets/sec Receiver Data received 1 2 3 4 5 6 7 8 9 10 11 ACK sent: 6 7 7 7 7 11 λ ACK packets/sec Rate of incoming ACK packets = Rate of outgoing data packets (packets/sec)
TCP Overview – 2. Congestion Avoidance (1/2) Window size (wnd) can be vary. wnd = min(cwnd, maxwnd) maxwnd: buffer size of the receiver (determined when establishing a connection) cwnd: size of the congestion window (variable) cwnd is updated as follows. If an ACK is received, cwnd is increased. Network is not congested. Put more packets in the link. If data loss is detected, cwnd is decreased. Network is congested. Put less packets in the link.
TCP Overview – 2. Congestion Avoidance (2/2) cwnd increment algorithm has two phases. Slow start phase (aggressive phase) when cwnd < ssthresh cwnd += 1 (upon receiving 1 ACK) Congestion avoid phase (cautious phase) when cwnd > ssthresh cwnd += 1/cwnd (upon receiving 1 ACK) cwnd ssthresh logarithmic increment exponential increment time slow start congestion avoid
TCP Overview – 3. Loss Recovery (1/2) Loss of a data packet can be detected by Timer expiration, Three duplicated ACKs, or Selective ACK. If packet loss is detected, cwnd is decreased. ssthresh is updated. ... Exact mechanisms are different among various TCP implementations. TCP tahoe, TCP reno, TCP new-reno, TCP-SACK, ... Good mechanisms are less affected by the data packet loss.
TCP Overview – 3. Loss Recovery (2/2) Figure taken from Anurag Kumar, “Comparative Performance Analysis of Versions of TCP in a Local Network with a Lossy Link”, In IEEE Transactions on Network, 1998
Performance of TCP (1/2) Assumption Data packet is not lost. If you want to calculate the throughput with data packet loss, refer to the previous slide. Throughput (λ) (unit: bytes per second) Average number of bytes sent during a certain period of time. A certain period of time: RTT (round-trip-time) During RTT, TCP sender transmits wnd data packets.
wnd = number of data packets + number of ACK packets Performance of TCP (2/2) During RTT, TCP sender transmits wnd data packets. data packet Sender Receiver 1st 2nd RTT wnd-th ACK packet wnd = number of data packets + number of ACK packets The sender has been just transmitted a data packet. That packet is wnd-th packet currently in the link. It takes RTT for the sender to receive ACK packet for the data packet. (by the definition of RTT) If the sender receives the ACK packet, it is the wnd-th ACK packet since 1. The sender need wnd ACK packets to transmit wnd data packets. So, the sender should have been transmitted wnd data packets during RTT.
Network Model
Network Model (1/2) BU Node A Node B uplink μU tU downlink WU μD WD tD BD Subscript D and U mean downlink and uplink respectively. B: queue capacity (in packets) μ: link speed (in byte per seconds) t: link delay (in seconds) D: size of a TCP data packet (in byte) A: size of a TCP ACK packet (in byte) W: maximum window size Links are loss free. Constraints μD > μU (downlink is faster than uplink) D > A
Network Model (2/2) Data is sent and received greedily. There are always packets to send. There are always rooms to receive packets. Two simultaneous TCP connections Connection d: node B node A (download) Connection u: node A node B (upload)
Generality of the Model Chain of links can be simplified as a single link. bottleneck link μ B total delay = t t μ B
Analysis of The Model
Throughput To calculate throughput, we need Average window size: wnd Round-trip-time: RTT
Calculation of Average Window Size (1/2) Assumption maxwnd should be larger than P = C-BU-BD If not, link is always underutilized. Average window size can be calculated. wnd wnd maxwnd C C average wnd maxwnd average wnd P P time time Case 1: maxwnd > C Case 2: P < maxwnd < C
Calculation of Average Window Size (2/2) From now on, let wndD: average window size for download traffic wndU: average window size for upload traffic
Calculation of RTT RTT = dD+dU dU : delay on downlink BU Node A Node B uplink μU tU downlink WU μD WD tD BD dD : delay on downlink
Calculation of RTT - Delay on Downlink dD = tD + queuing delay downlink μD tD BD dD : delay on downlink tD queuing delay
Calculation of RTT – Queuing Delay (1/5) Queuing delay consists of Transmission time of ACK packets in the queue. Transmission time of data packets in the queue. μD DDQ: number of data packets in this queue AUQ: number of ACK packets in this queue
Calculation of RTT – Queuing Delay (2/5) There are total wndD packets (ACK+data) in the path. Data packets on downlink (DDL) Data packets on downlink queue (DDQ) ACK packets on uplink (ADL) ACK packets on uplink queue (ADQ) ADQ ADL Node A Node B μU WU μD WD DDL DDQ
Calculation of RTT – Queuing Delay (3/5) DDL: number of data packets on downlink Use bandwidth-delay product Let λD as download throughput λD/D data packets per second tD
Calculation of RTT – Queuing Delay (4/5) ADL + ADQ = number of ACK packets for download traffic For the node B, uplink is seen as a queue-less link with delay dU Use bandwidth-delay product again λD/D ACK packets per second dD
Calculation of RTT – Queuing Delay (5/5) ADQ ADL Node A Node B μU WU μD WD DDL DDQ
Calculation of RTT
Calculation of Throughput Non-zero Delay of ACK Number of ACK packets in queue (from opposite direction)
Factors That Effects The Throughput Delay of ACK in reverse link Number of ACK packets from opposite direction in queue in forward link We should minimize these two values!
Solution Mechanism
Basic Idea Minimize delay of ACK packets. Give high priority to ACK packets. (ACK packets are processed prior to data packets) Minimize number of ACK packets in queue. Drop ACK packets more than data packets. This does not affect to the performance since ACK is cumulative.
Solution Mechanism (1/2) Minimize delay of ACK packets Give high priority to ACK packets (ACK packets are processed prior to data packets) ACK-separation queuing mechanism Output queue for data packets (100 packets) low data Priority- based Packet Scheduler Packet Classifier ACK high Output queue for ACK packets (100 packets)
Solution Mechanism (2/2) Minimize number of ACK packets in queue Drop ACK packets more than data packets. This does not affect to the performance since ACK is cumulative. Use modified RED queue (Random Early Detection)
time-averaged queue size RED Queue S. Floyd and V. Jacobson, “Random early detection gateways for TCP congestion avoidance,” IEEE/ACM Transactions on Networking vol. 1, no. 4, pp. 397-413, August 1993. When queue is almost full: drop many packets When queue is almost empty: don’t drop packets time-averaged queue size incoming packet queue S drop probability drop probability drop S
Modified RED Queue for Our Problem Give high drop probability (Pa) to ACK packets Give low drop probability (Pd) to data packets Sa = time-averaged queue size of ACK queue Sd = time-averaged queue size of data queue Pa Pd 1 Sd
Future Work Devise better drop probability equations. Summarize related work. Verify the proposed solution using Simulator (NS-2) Modification of NS-2 is required. It is a very time-consuming job.
Thank You!!!