concept

TCP Flow Control How large files moves across the Internet John Hawkinson Massachusetts Institute of Te...

1 downloads 224 Views 685KB Size
TCP Flow Control How large files moves across the Internet

John Hawkinson Massachusetts Institute of Technology

March 20, 2008 / 6.UAT Concept Talk v1.7

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

1 / 11

Flow Control

“Flow Control” or “Congestion Control” How data moves across the Internet

The Internet is all about moving data When you view a web page, you’re moving a file across the Internet Other ways?

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

2 / 11

Flow Control

“Flow Control” or “Congestion Control” How data moves across the Internet

The Internet is all about moving data When you view a web page, you’re moving a file across the Internet Other ways? Downloading software (e.g., FireFox) Transferring files Watching movies Sending e-mail

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

2 / 11

Flow Control

“Flow Control” or “Congestion Control” How data moves across the Internet

The Internet is all about moving data When you view a web page, you’re moving a file across the Internet Other ways? Downloading software (e.g., FireFox) Transferring files Listening to music Watching movies Sending e-mail Games

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

2 / 11

Flow Control

Packets Data is divided into small packets

Definition To send anything across the Internet, it is divided into small pieces, called packets. Most packets are 1500 bytes long. How big is 1500 bytes?

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

3 / 11

Flow Control

Packets Data is divided into small packets

Definition To send anything across the Internet, it is divided into small pieces, called packets. Most packets are 1500 bytes long. How big is 1500 bytes? 1.5 kilobytes

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

3 / 11

Flow Control

Packets Data is divided into small packets

Definition To send anything across the Internet, it is divided into small pieces, called packets. Most packets are 1500 bytes long. How big is 1500 bytes? 1.5 kilobytes About 250 words

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

3 / 11

Flow Control

Packets Data is divided into small packets

Definition To send anything across the Internet, it is divided into small pieces, called packets. Most packets are 1500 bytes long. How big is 1500 bytes? 1.5 kilobytes About 250 words 110 pixel by 110 pixel black-and-white picture

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

3 / 11

Flow Control

Packets Data is divided into small packets

Definition To send anything across the Internet, it is divided into small pieces, called packets. Most packets are 1500 bytes long. How big is 1500 bytes? 1.5 kilobytes About 250 words 110 pixel by 110 pixel black-and-white picture 39 pixel by 39 pixel color picture (525 packets make a screen!)

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

3 / 11

Flow Control

Packets Data is divided into small packets

Definition To send anything across the Internet, it is divided into small pieces, called packets. Most packets are 1500 bytes long. How big is 1500 bytes? 1.5 kilobytes About 250 words 110 pixel by 110 pixel black-and-white picture 39 pixel by 39 pixel color picture (525 packets make a screen!) An MP3 of this year’s Oscar-winning Best Original Song, Falling Slowly, is 3.7 megabytes, or 1265 packets.

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

3 / 11

Flow Control

Packets Data is divided into small packets

Definition To send anything across the Internet, it is divided into small pieces, called packets. Most packets are 1500 bytes long. How big is 1500 bytes? 1.5 kilobytes About 250 words 110 pixel by 110 pixel black-and-white picture 39 pixel by 39 pixel color picture (525 packets make a screen!) An MP3 of this year’s Oscar-winning Best Original Song, Falling Slowly, is 3.7 megabytes, or 1265 packets. This presentation: 684kb, 468 packets.

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

3 / 11

Flow Control

Links Don’t drop a packet!

Every link on the Internet has finite “bandwidth,” or capacity. Usually measured in bits-per-second, but we can think of it in packets-per-second.

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

4 / 11

TCP

TCP Transmission Control Protocol

Chunks data into packets

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

5 / 11

TCP

TCP Transmission Control Protocol

Chunks data into packets Handles reassembly on the far end

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

5 / 11

TCP

TCP Transmission Control Protocol

Chunks data into packets Handles reassembly on the far end Guarantees in-order delivery

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

5 / 11

TCP

TCP Transmission Control Protocol

Chunks data into packets Handles reassembly on the far end Guarantees in-order delivery Handles packet acknowledgement

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

5 / 11

TCP

TCP Transmission Control Protocol

Chunks data into packets Handles reassembly on the far end Guarantees in-order delivery Handles packet acknowledgement Handles packet retransmission

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

5 / 11

TCP

The Problem Without flow control, shared links fill up; how much can the network support?

Alice, Courteny, and Eileen are in Los Angeles. Bob, Donald, and Frank are in Boston. Three conversations are sharing the same link.

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

6 / 11

Slow Start

Slow Start TCP Solves this with “Slow Start”; gradual window increase

TCP defines a window, maximum number of packets in-flight

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

7 / 11

Slow Start

Slow Start TCP Solves this with “Slow Start”; gradual window increase

TCP defines a window, maximum number of packets in-flight Window starts out as one packet long

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

7 / 11

Slow Start

Slow Start TCP Solves this with “Slow Start”; gradual window increase

TCP defines a window, maximum number of packets in-flight Window starts out as one packet long Every time a packet is acknowledged, window is increased by one

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

7 / 11

Slow Start

More Slow Start

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

8 / 11

Slow Start

Plot without Slow Start

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

9 / 11

Slow Start

Plot with Slow Start

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

10 / 11

Appendix

Acknowledgements & References

Excellent further reading, and the source of these graphs: Jacobson, Van. Congestion Avoidance and Control. Proceedings of SIGCOMM ’88 (Palo Alto, CA, Aug. 1988) http://www-nrg.ee.lbl.gov.

John Hawkinson (MIT)

TCP Flow Control

20 Mar 2008 / 6.UAT CT v1.7

11 / 11