Jiyong Park Seoul National University, Korea

Slides:



Advertisements
Similar presentations
Congestion Control Reasons: - too many packets in the network and not enough buffer space S = rate at which packets are generated R = rate at which receivers.
Advertisements

Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
TCP Congestion Control Dina Katabi & Sam Madden nms.csail.mit.edu/~dina 6.033, Spring 2014.
Practice Questions: Congestion Control and Queuing
Prentice HallHigh Performance TCP/IP Networking, Hassan-Jain Chapter 10 TCP/IP Performance over Asymmetric Networks.
TDC365 Spring 2001John Kristoff - DePaul University1 Internetworking Technologies Transmission Control Protocol (TCP)
L13: Sharing in network systems Dina Katabi Spring Some slides are from lectures by Nick Mckeown, Ion Stoica, Frans.
How to get good TCP performance over asymmetric networks Hari Balakrishnan MIT Lab for Computer Science With:
TCP: flow and congestion control. Flow Control Flow Control is a technique for speed-matching of transmitter and receiver. Flow control ensures that a.
Lect3..ppt - 09/12/04 CIS 4100 Systems Performance and Evaluation Lecture 3 by Zornitza Genova Prodanoff.
1 Transport Layer Computer Networks. 2 Where are we?
Link Scheduling & Queuing COS 461: Computer Networks
Copyright © Lopamudra Roychoudhuri
1 TCP - Part II Relates to Lab 5. This is an extended module that covers TCP data transport, and flow control, congestion control, and error control in.
Lecture 9 – More TCP & Congestion Control
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
Computer Networking Lecture 18 – More TCP & Congestion Control.
TCP: Transmission Control Protocol Part II : Protocol Mechanisms Computer Network System Sirak Kaewjamnong Semester 1st, 2004.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
1 Computer Networks Congestion Avoidance. 2 Recall TCP Sliding Window Operation.
TCP OVER ADHOC NETWORK. TCP Basics TCP (Transmission Control Protocol) was designed to provide reliable end-to-end delivery of data over unreliable networks.
ECE 4110 – Internetwork Programming
Random Early Detection (RED) Router notifies source before congestion happens - just drop the packet (TCP will timeout and adjust its window) - could make.
TCP Transmission Control Protocol Part 2 CH 23 Aseel Alturki.
Data Link Layer Flow and Error Control. Flow Control Flow Control Flow Control Specifies the amount of data can be transmitted by sender before receiving.
TCP Traffic Characteristics—Deep buffer Switch
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Congestion Control 0.
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
1 Flow & Congestion Control Some slides are from lectures by Nick Mckeown, Ion Stoica, Frans Kaashoek, Hari Balakrishnan, and Sam Madden Prof. Dina Katabi.
TCP over Wireless PROF. MICHAEL TSAI 2016/6/3. TCP Congestion Control (TCP Tahoe) Only ACK correctly received packets Congestion Window Size: Maximum.
Window Control Adjust transmission rate by changing Window Size
TCP - Part II.
DMET 602: Networks and Media Lab
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
By, Nirnimesh Ghose, Master of Science,
Topics discussed in this section:
Chapter 3 outline 3.1 transport-layer services
Satellite TCP Lecture 19 04/10/02.
Introduction to Networks
COMP 431 Internet Services & Protocols
CMPT 371 Data Communications and Networking
PART 5 Transport Layer Computer Networks.
Chapter 3 outline 3.1 Transport-layer services
Generalizing The Network Performance Interference Problem
Introduction of Transport Protocols
Precept 2: TCP Congestion Control Review
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
TCP.
Lecture 19 – TCP Performance
ECE 4450:427/527 - Computer Networks Spring 2017
So far, On the networking side, we looked at mechanisms to links hosts using direct linked networks and then forming a network of these networks. We introduced.
PUSH Flag A notification from the sender to the receiver to pass all the data the receiver has to the receiving application. Some implementations of TCP.
Chapter 5 Peer-to-Peer Protocols and Data Link Layer
CS640: Introduction to Computer Networks
Figure Areas in an autonomous system
CS4470 Computer Networking Protocols
Congestion Control Reasons:
TCP Congestion Control
The Transport Layer Reliability
Transport Layer: Congestion Control
Chapter 3 outline 3.1 Transport-layer services
Chapter 5 Peer-to-Peer Protocols and Data Link Layer
Lecture 4 Peer-to-Peer Protocols and Data Link Layer
TCP: Transmission Control Protocol Part II : Protocol Mechanisms
Error Checking continued
Lecture 6, Computer Networks (198:552)
Presentation transcript:

Jiyong Park Seoul National University, Korea 2005. 2. 22. Preventing network performance interference of bidirectional TCP traffic with packet scheduling in a home network gateway using an asymmetric link Jiyong Park Seoul National University, Korea 2005. 2. 22.

Contents Overview of TCP Network model Performance problems of TCP on asymmetric link Causes Normalized asymmetry ratio Bottleneck buffer size Competing reverse traffic Proposed Solutions CBQ CBQ with simple implementation ACK filtering (AF) / ACK reconstruction (AR) CBQ+AF/AR ACQ+AF/AR Our problem

Related Papers T.V. Lakshmnan et al., Window-based error recovery and flow control with a slow acknowledgement channel: a study of TCP/IP performance, INFOCOM, 1997 --(1) L. Kalampoukas et al., Improving TCP Throughput over Two-Way Asymmetric Links: Analysis and Solutions, SIGMETRICS, 1998 --(2) H. Balakrishnan et al., The Effects of Asymmetry on TCP Performance, MobiCom, 1997 --(3)

TCP Overview Three key mechanisms of TCP Reliability Acknowledge Flow control (speed difference between sender and receiver application) Sliding window Window advertisement Congestion control (packet loss, delay, ...) Slow start Congestion avoidance

TCP Overview – 2. Flow Control Window Number of packets that can be sent without acknowledged Sliding window Upon receiving ACK, window slides Window advertisement Receiver advertises its window size on ACK (sender cannot send more than that)

TCP Overview – 2. Flow Control Sender Buffer Sent ACKed Sent Not ACKed Will send TCP output window (size 5) user output 1 2 3 4 5 6 7 8 9 10 11 11 12 12 13 14 13 14 sequence number ACK received: 6 9

TCP Overview – 3. Congestion Control Two kinds of windows Congestion window (cwnd) Advertised window (awnd) actual window size = min(cwnd, awnd) Upon receiving ACK, increases cwnd (try to send more) Slow start (aggressive) (cwnd++ upon receiving 1 ACK) Congestion avoidance (cautious) (cwnd ++ upon receiving cwnd ACKs) Congestion is caused by Data packet loss (detected by duplicated ACK) Long delay (detected by timer expiration) Upon detecting congestion, decreases cwnd = 1 (restart)

TCP Overview – 3. Congestion Control Enters congestion avoidance phase when W > Wt Wt := Wt / 2 when congestion is detected congestion window size congestion detected time

TCP Overview – Packet Processing TCP protocol handler performs two major jobs Upon receiving ACK, send data packet Upon receiving data, deliver it to user and send ACK These two jobs are handled by one handler (no interleaving) User process Data packet IP(input) queue Output queue data ACK ACK packet ACK data awaken by interrupt handler Protocol handler

Network Model (1/2) BS : 66 US : 800Kbps Local Host TS : 10ms Remote Host TF: 10ms UF : 2.1Mbps BF : 66 WL: 66 WR : 66 W (maximum window size): maximum number of packets that can be in the network U: transmission speed in bps B: queue size in packets T: propagation delay Data packet size: 1040 byte ACK packet size: 40 byte

Network Model (2/2) Application programs are assumed to be greedy. There are always packets to send. There are always rooms to receive packets.

Asymmetry Ratio (1/2) Asymmetry Ratio (k) Service speed for data packet on forward link / Service speed for ACK packet on reverse link Example Fast link can send 1000 data packets per second Slow link can send 25 ACK packets per second Then k = 1000/25 = 40

Asymmetry Ratio (2/2) At the receiving side, one ACK is generated for one data packet received. If k > 1, ACKs are queued. If k <= 1, no problem. 1000 data pkt/s 25 ACK pkts/s Local Host Remote Host ACK Data 1000 data pkt/s

Lets first consider the case when only download traffic is present.

sequence number of data Effect of Small k ACK arrives periodically and smoothly (sequence number increases by 1) Smooth transmission sequence number sequence number of data sequence number of ACK time

Effect of Large k Output buffer size of slow link is the key. Size is too small: (k-1) out of k ACKs are dropped Size is too large: entire ACKs are queued 4m pkt/s m pkt/s 9 5 1 6 2 7 3 dropped 8 4 9 8 7 6 5 4 3 2 1

Large k with Small Buffer (1/2) Since ACK is cumulative, sequence number increases abruptly by k  Bursty transmission (output buffer is needed) sequence number sequence number of data k burst sequence number of ACK k burst time

Large k with Small Buffer (2/2) Output buffer on fast link should larger than k Bursty packets are regulated by buffer queue size burst regulated time

Large k with Large Buffer Large buffer is problematic. Throughput is decreased. ACKs are very delayed. Sender has to wait to receive the ACKs. Idle time occurs. Example: Maximum window size: 100 packets. k = 10 Time to send full window of data packets: t seconds Time to send full window of ACK packets: 10t seconds RTT = 11t seconds. Achieved throughput = 100 / 11t = 9/t Ideal throughput = 100/t

Summary of Single Download Connection k <= 1 No problem (our case) k > 1 Size of output buffer on slow link is small Bursty transmission. Solved by using output buffer on fast link (size > k) Size of output buffer on slow link is very big Big problem. Very long delay of ACKs. Reduced throughput.

Now, proceed to the case of two-way traffic.

Two-way Connection On uplink, ACK packets for download traffic Data packets for upload traffic Size of output buffer on the link is small Upload speed is reduced. Size of output buffer on the link is large Download speed is reduced. Local Host ACK Data Case of our ADSL Modem

Two-way Connection – Case 1 Size of output buffer on slow link is small Upload speed is reduced. ACK and data packets are also dropped. Dropping ACK is not a big problem (solvable by buffer)  Download speed is not affected. Dropping data packet is a big problem Timeout  Retransmission  Upload speed is reduced.

Two-way Connection – Case 2 Size of output buffer on slow link is large Download speed is reduced. ACKs are queued behind the big data packets ACK compressing ACK packets for download data packets for upload 9 8 7 6 5 4 3 2 1 9 8 7 6 5 4 3 2 1 Very big delay

Two-way Connection - Our Case k = 0.1 (ACK is seldom dropped) Window size = 66 Upload buffer size = 100 Upload buffer is small  Upload speed is reduced. Buffer size : 100 34 data packets for upload traffic 66 ACKs for download traffic 23 data packets are dropped

Proposed Solutions Paper #1 Paper #2 Paper #3 Upload buffer size is small Upload throughput is reduced Solution: round-robin queue scheduling Paper #2 Upload buffer size is big Download throughput is reduced Solution: queue scheduling Paper #3 Solution: ACC, AF, ACK-first, Sender adaptation Similar to our approach (More flexible than us) Similar to our approach (Better performance than us) We can adopt some techniques from here

Solution in the Paper #1 Round-robin queue scheduling f is big ACK for download 9 8 7 6 5 4 3 2 1 f RR scheduler data for upload 9 8 7 6 5 4 3 2 1 1-f f is big Upload: slow (starvation) Download: good f is small Upload: good (1-f of the full speed) Download: slowdown (bursty transmission and small size of fast buffer)

Solution in the Paper #2 Emulate fair queuing scheduler by counter-based implementation Upload speed is guaranteed by (1-f) of the full speed. Download speed is reduced Slow buffer size is large Uses simple FIFO ACKs are delayed very long

Solution in the Paper #3 Ack Filtering (AF) queuing Ack-first scheduling AF Remove all redundant cumulative ACKs in the queue If there is an ACK packet in the queue, always transmit it first. 10 9 8 7 6 5 4 3 2 1

Solution in the Paper #3 Download: full speed (no delay of ACK) Upload: starvation ACKs are arrived faster than they are processed. So, there are always at least one ACK in the queue. ACK has strictly higher priority than data. Data has no chance to be transmitted.  starvation

My Previous Solution Solution: Give higher priority to ACK over data Result Other papers: download performance was bad. Our result: both traffic was good. Reason: k is very small in our environment. Bandwidth consumed by ACK packets is very low About 11% (94Kbps on 800Kbps link) Enough bandwidth to send data packet for upload traffic

Our New Solution AF + Queue scheduling Queue scheduling AF Guarantees upload throughput AF Minimizes ACK latency for download traffic

Better Solution Proposed (1/5) Fatma Louati, Chadi Barakat, Walid Dabbous, Handling two-way TCP traffic in asymmetric networks, Speed Networks and Multimedia Communications (HSNMC), 2004 AF + AR + ACQ

Better Solution Proposed (2/5) AF + AR + ACQ AF Minimizes ACK latency for download traffic AR (ACK Regeneration) Regulates burst transmission caused by AF ACQ (Adaptive Class-based Queuing) A kind of CBQ in which the bandwidth ratio is changed automatically and periodically RFC 3449 recommendations (by the authors of the paper #3)

Better Solution Proposed (3/5) Ratio update algorithm rn: bandwidth allocated to data packet of upload traffic current download speed current upload speed

Better Solution Proposed (4/5) Performance metric Link efficiency of upload traffic + link efficiency of download traffic from 0 to 2 ACQ+AF/AR : 1.72

Better Solution Proposed (5/5) strong asymmetry weak asymmetry