6.033 spring 2021 - mitweb.mit.edu/6.033/www/lec/s07-full.pdfkatrina lacurts | [email protected] |...

37
Katrina LaCurts | [email protected] | 6.033 2021 6.033 Spring 2021 Lecture #7: Introduction to Networking Katrina’s favorite lecture

Upload: others

Post on 19-Jul-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

6.033 Spring 2021Lecture #7: Introduction to Networking Katrina’s favorite lecture

Page 2: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

how do modules of a system communicate if they’re on separate machines?

Class Browser(on machine 1)

def main(): html = browser_load_url(URL) ...

def browser_load_url(url): msg = url # could reformat send request wait for reply html = reply # could reformat return html stub

Class Server(on machine 2)

def server_load_url(): ... return html

def handle_server_load_url(url): wait for request url = request html = server_load_url(URL) reply = html send reply stub

client server

network

Page 3: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

how do modules of a system communicate if they’re on separate machines?

client server

Page 4: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

how do modules of a system communicate if they’re on separate machines?

client server

Page 5: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

how do modules of a system communicate if they’re on separate machines?

point-to-point links: get a source to talk to a directly-

connected destination

Page 6: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

how do modules of a system communicate if they’re on separate machines?

Page 7: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

how do modules of a system communicate if they’re on separate machines?

switches: help forward data to destinations that are far away

switches do other things, too

Page 8: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

how do modules of a system communicate if they’re on separate machines?

end point

switch

link

Page 9: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

how do modules of a system communicate if they’re on separate machines?

as this system grows, we need to think about how to turn this

set of links into a network

end point

switch

link

Page 10: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

how do modules of a system communicate if they’re on separate machines?

as this system grows, we need to think about how to turn this

set of links into a network

end point

switch

link

link communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

Page 11: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

how do modules of a system communicate if they’re on separate machines?

as this system grows, we need to think about how to turn this

set of links into a network

end point

switch

linkA

B

C

D

EF

G

HI

J

link communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

Page 12: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

how do modules of a system communicate if they’re on separate machines?

as this system grows, we need to think about how to turn this

set of links into a network

end point

switch

linkA

B

C

D

EF

G

HI

J

link

network naming, addressing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

Page 13: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

how do modules of a system communicate if they’re on separate machines?

end point

switch

linkA

B

C

D

EF

G

HI

J

as this system grows, we need to think about how to turn this

set of links into a network

link

network naming, addressing, routing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

Page 14: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

how do modules of a system communicate if they’re on separate machines?

end point

switch

linkA

B

C

D

EF

G

HI

J

as this system grows, we need to think about how to turn this

set of links into a network

link

network

transport sharing the network, reliability (or not)

naming, addressing, routing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

Page 15: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

how do modules of a system communicate if they’re on separate machines?

end point

switch

linkA

B

C

D

EF

G

HI

J

as this system grows, we need to think about how to turn this

set of links into a network

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)

naming, addressing, routing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

Page 16: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)

naming, addressing, routing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

Page 17: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1970s: ARPAnet

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)

naming, addressing, routing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

Page 18: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1970s: ARPAnet

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)

naming, addressing, routing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

https://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/historical.html

Page 19: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1970s: ARPAnet

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)

naming, addressing, routing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

https://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/historical.html

Page 20: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1970s: ARPAnet

hosts.txt

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)

naming, addressing, routing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

https://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/historical.html

Page 21: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1970s: ARPAnet

hosts.txt

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)

naming, addressing, routing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

https://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/historical.html

Page 22: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1970s: ARPAnet

hosts.txt distance-vectorrouting

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)

naming, addressing, routing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

https://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/historical.html

Page 23: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1970s: ARPAnet

hosts.txt distance-vectorrouting

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)

naming, addressing, routing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

https://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/historical.html

Page 24: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1970s: ARPAnet

hosts.txt distance-vectorrouting

1978: flexibility and layering

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)

naming, addressing, routing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

https://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/historical.html

Page 25: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1970s: ARPAnet

hosts.txt distance-vectorrouting

1978: flexibility and layering

with a layered model, we can swap out protocols at one layer without much (or perhaps any) change to protocols at other layers

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)

naming, addressing, routing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

https://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/historical.html

Page 26: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1970s: ARPAnet

hosts.txt distance-vectorrouting

1978: flexibility and layering

with a layered model, we can swap out protocols at one layer without much (or perhaps any) change to protocols at other layers

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)examples: TCP, UDP

naming, addressing, routing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

examples: IP

TCP, UDP

https://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/historical.html

Page 27: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1970s: ARPAnet

hosts.txt distance-vectorrouting

1978: flexibility and layering

with a layered model, we can swap out protocols at one layer without much (or perhaps any) change to protocols at other layers

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)examples: TCP, UDP

naming, addressing, routing

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

examples: IP

TCP, UDP

early 80s: growth → change

https://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/historical.html

Page 28: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1978: flexibility and layering

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)examples: TCP, UDP

1970s: ARPAnet early 80s: growth → change

hosts.txt

naming, addressing, routingexamples: IP

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

TCP, UDP

with a layered model, we can swap out protocols at one layer without much (or perhaps any) change to protocols at other layers

distance-vectorrouting

https://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/historical.html

Page 29: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1978: flexibility and layering

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)examples: TCP, UDP

1970s: ARPAnet early 80s: growth → change

OSPF, EGP, DNShosts.txt

naming, addressing, routingexamples: IP

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

TCP, UDP

with a layered model, we can swap out protocols at one layer without much (or perhaps any) change to protocols at other layers

distance-vectorrouting

https://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/historical.html

Page 30: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1978: flexibility and layering

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)examples: TCP, UDP

1970s: ARPAnet early 80s: growth → change

OSPF, EGP, DNS

late 80s: growth → problems

hosts.txt

naming, addressing, routingexamples: IP

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

TCP, UDP

with a layered model, we can swap out protocols at one layer without much (or perhaps any) change to protocols at other layers

distance-vectorrouting

https://personalpages.manchester.ac.uk/staff/m.dodge/cybergeography/atlas/historical.html

Page 31: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1978: flexibility and layering

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)examples: TCP, UDP

1970s: ARPAnet early 80s: growth → change

OSPF, EGP, DNS

late 80s: growth → problems

hosts.txt

naming, addressing, routingexamples: IP

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

TCP, UDP

with a layered model, we can swap out protocols at one layer without much (or perhaps any) change to protocols at other layers

distance-vectorrouting

https://www.vox.com/a/internet-maps

Page 32: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1978: flexibility and layering

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)examples: TCP, UDP

1970s: ARPAnet early 80s: growth → change

OSPF, EGP, DNS

late 80s: growth → problems

hosts.txt

naming, addressing, routingexamples: IP

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

TCP, UDP

with a layered model, we can swap out protocols at one layer without much (or perhaps any) change to protocols at other layers

distance-vectorrouting

congestion collapse

https://www.vox.com/a/internet-maps

Page 33: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1978: flexibility and layering

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)examples: TCP, UDP

1970s: ARPAnet early 80s: growth → change

OSPF, EGP, DNS

late 80s: growth → problems

policy routinghosts.txt

naming, addressing, routingexamples: IP

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

TCP, UDP

with a layered model, we can swap out protocols at one layer without much (or perhaps any) change to protocols at other layers

distance-vectorrouting

congestion collapse

https://www.vox.com/a/internet-maps

Page 34: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1978: flexibility and layering

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)examples: TCP, UDP

1970s: ARPAnet early 80s: growth → change

OSPF, EGP, DNS

late 80s: growth → problems

policy routinghosts.txt

naming, addressing, routingexamples: IP

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

TCP, UDP

with a layered model, we can swap out protocols at one layer without much (or perhaps any) change to protocols at other layers

distance-vectorrouting

congestion collapse CIDR

https://www.vox.com/a/internet-maps

Page 35: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1978: flexibility and layering

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)examples: TCP, UDP

1993: commercialization

1970s: ARPAnet early 80s: growth → change

OSPF, EGP, DNS

late 80s: growth → problems

policy routinghosts.txt

naming, addressing, routingexamples: IP

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

TCP, UDP

with a layered model, we can swap out protocols at one layer without much (or perhaps any) change to protocols at other layers

distance-vectorrouting

congestion collapse CIDR

https://www.vox.com/a/internet-maps

Page 36: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1978: flexibility and layering

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)examples: TCP, UDP

1993: commercialization

1970s: ARPAnet early 80s: growth → change

OSPF, EGP, DNS

late 80s: growth → problems

policy routinghosts.txt

naming, addressing, routingexamples: IP

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

TCP, UDP

with a layered model, we can swap out protocols at one layer without much (or perhaps any) change to protocols at other layers

distance-vectorrouting

congestion collapse CIDR

http://blog.lastpass.com/2013/05/for-the-love-of-security-end-of-week-link-round-up/internet-1993-3/

Page 37: 6.033 Spring 2021 - MITweb.mit.edu/6.033/www/lec/s07-full.pdfKatrina LaCurts | lacurts@mit.edu | 6.033 2021 how do modules of a system communicate if they’re on separate machines?

Katrina LaCurts | [email protected] | 6.033 2021

1978: flexibility and layering

link

network

transport

application the things that actually generate traffic

sharing the network, reliability (or not)examples: TCP, UDP

1993: commercialization

1970s: ARPAnet early 80s: growth → change

OSPF, EGP, DNS

late 80s: growth → problems

policy routinghosts.txt

naming, addressing, routingexamples: IP

communication between two directly-connected nodesexamples: ethernet, bluetooth, 802.11 (wifi)

TCP, UDPdistance-vectorrouting

congestion collapse CIDR

on the Internet, we have to solve all of the “normal” networking problems (addressing, routing, transport) at

massive scale, while supporting a diverse group of applications and competing economic interests

CAIDA’s IPv4 AS Core, February 2017

(https://www.caida.org/research/topology/

as_core_network/2017/)