![Page 1: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/1.jpg)
3/27/17
1
ComputerNetworks
ArvindKrishnamurthy
1
MaterialbasedoncoursesatStanford,Princeton,andMIT
Focusofthecourse
2
???
![Page 2: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/2.jpg)
3/27/17
2
Focusofthecourse(2)• Three“networking”topics:
– Communications– Networking– Distributedsystems
• Ourfocusisonthe“middle”layer
3
But,WhatisNetworking?
4
![Page 3: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/3.jpg)
3/27/17
3
APlethoraofProtocolAcronyms?
5
BGPARP
HTTP
DNS
PPP
OSPF
DHCP
TCP
UDP
SMTP
FTP
SSH
MAC
IPRIP
NAT
CIDR
VLAN VTP
NNTP
POP
IMAP
REDECN
SACK
SNMP
TFTP
TLS
WAPSIP IPX
STUN
RTP
RTSP
RTCP
PIM
IGMPICMP
MPLS
LDP
HIP
LISP
LLDP
BFD
AHeapofHeaderFormats?
6
![Page 4: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/4.jpg)
3/27/17
4
TCP/IPHeaderFormatsinLego
7
ABigBunchofBoxes?
8
Router Switch
FirewallNAT
Loadbalancer
DHCPserver
DNSserver
Bridge
Hub
Repeater
Basestation
ProxyWANaccelerator
GatewayIntrusionDetectionSystem
Packetshaper
RouteReflector
LabelSwitchedRouter Scrubber
Packetsniffer
DeepPacket
Inspection
![Page 5: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/5.jpg)
3/27/17
5
ATonofTools?
9
traceroutenslookup
ping
ipconfigrancid
whois
tcpdump
wiresharkNDT
iperf
dummynet
syslog
tratsnort
bro
arpwatch
mrtg
nmap
ntop
dig
wget
net-snmp
ATonofTools?
10
traceroutenslookup
ping
ipconfigrancid
whois
tcpdump
wiresharkNDT
iperf
dummynet
syslog
tratsnort
bro
arpwatch
mrtg
nmap
ntop
dig
wget
net-snmp
![Page 6: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/6.jpg)
3/27/17
6
TheMainPoint1. TolearnhowtheInternetworks»
– Whatreallyhappenswhenyou“browsetheweb”?
– WhatareTCP/IP,DNS,HTTP,NAT,VPNs,802.11etc.anyway?
2. Tolearnthefundamentalsofcomputernetworks
11
12
WhylearnabouttheInternet?
1. Curiosity»2. Impactonourworld»
![Page 7: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/7.jpg)
3/27/17
7
Fromthisexperimentalnetwork…
13
ARPANET~1970
(a)Dec.1969. (b)July1970. (c)March1971.
14
Tothis!
• Aneverydayinstitutionusedatwork,home,andon-the-go
• Visualizationcontainsmillionsoflinks
Attribution:ByTheOpte Project[CC-BY-2.5],viaWikimediaCommons
Internet~2005
![Page 8: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/8.jpg)
3/27/17
8
15
Question
• Whatdoyouthinkaretheissuesthatonehastotackletogrowfromasmallnetworktoanextremelylargenetwork?
Internet– SocietalImpact• Anenablerofsocietalchange
– Easyaccesstoknowledge– Electroniccommerce– Personalrelationships– Discussionwithoutcensorship
16
![Page 9: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/9.jpg)
3/27/17
9
Internet– Economicimpact• Anengineofeconomicgrowth
– Advertising-sponsoredsearch– “Longtail”onlinestores– Onlinemarketplaces– Crowdsourcing
17
TheMainPoint(2)1. TolearnhowtheInternetworks2. Tolearnthefundamentalsof
computernetworks– Whathardproblemsmustthey
solve?– Whatdesignstrategieshave
provenvaluable?
18
![Page 10: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/10.jpg)
3/27/17
10
19
NotaCourseGoal
• TolearnITjobskills– Howtoconfigureequipment
• e.g.,Ciscocertifications
– Butcoursematerialisrelevant,andweusehands-ontools
CourseMechanics• Course Administration
– Everything you need to know will be on the course web page:
http://www.cs.washington.edu/csep561/
• Teaching Assistants:– Yuchen & Ming
![Page 11: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/11.jpg)
3/27/17
11
21
CourseLogistics
1. Readings2. Weeklyreports:25%3. Projects/Homeworks:75%
• Ingroupsoftwo• Ifyouwanttoworkindividually,thenyoucanjustdo
assignments1and2(withdifferentdeadlines)• Detailsonwebsite
22
AssignmentFramework• Mininet – emulationsystemfromStanford• Allowsyoutocreatenodes,switches,linksallonasinglemachine
• Assignment1:TCPdynamics• Assignment2:Buildasimplerouter• Assignment3:BuildaNAT
![Page 12: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/12.jpg)
3/27/17
12
23
Topics
24
Topics
![Page 13: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/13.jpg)
3/27/17
13
25
Topics
26
Exercise
• Considerawebobjectfetch“index.html”from“nytimes.com”– Whatareallthestepsinvolvedinperformingthefetch?
![Page 14: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/14.jpg)
3/27/17
14
27
KeyInterfaces• Between(1)appsandnetwork,and(2)networkcomponents– Moreformaltreatmentlateron
host
app
28
KeyInterfaces(2)1. Network-applicationinterfaces
definehowappsusethenetwork– Sockets arewidelyusedinpractice
host
app
![Page 15: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/15.jpg)
3/27/17
15
29
2. Network-networkinterfacesdefinehownodesworktogether– Traceroute canpeekinthenetwork
KeyInterfaces(3)
host
app
PeekinginsidetheNetworkwithTraceroute
![Page 16: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/16.jpg)
3/27/17
16
31
NetworkServiceAPIHidesDetails• Appstalktootherappswithnorealideaofwhatisinsidethenetwork– Thisisgood!Butyoumaybecurious…
host
appapp
host
???
32
Traceroute• Widelyusedcommand-linetooltolethostspeekinsidethenetwork– OnallOSes (tracert onWindows)– DevelopedbyVanJacobson~1987– Usesanetwork-networkinterface(IP)inwayswewillexplainlater
![Page 17: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/17.jpg)
3/27/17
17
Traceroute (2)• Probessuccessivehopstofindnetworkpath
33
...
LocalHost
RemoteHost
Traceroute (3)
34
...
LocalHost Remote
Host
1hop 2hops3hops N-1hops
Nhops
![Page 18: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/18.jpg)
3/27/17
18
UsingTraceroute
35
UsingTraceroute (2)• ISPnamesandplacesareeducatedguesses
36
...
Mycomputer www.uw.edu(www1.cac.washington.edu)
tde3hops
Telefonica4hops
Level36 hops
pnw-gigapop1hop
UW3 hops
NYC SanJose Seattle
UW
Home1 hop
100ms180ms
>200ms
![Page 19: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/19.jpg)
3/27/17
19
Traceroutetoanothercommercialwebserver-bash-3.1$traceroute www.nyse.comtraceroute towww.nyse.com (209.124.184.150),30hopsmax,40bytepackets1acar-hsh-01-vlan75.cac.washington.edu(128.208.2.100)0.327ms 0.353ms 0.392ms2uwcr-hsh-01-vlan3904.cac.washington.edu(205.175.110.17)0.374ms 0.412ms 0.443ms3uwcr-hsh-01-vlan1901.cac.washington.edu(205.175.103.5)0.595ms 0.628ms 0.659ms4uwbr-ads-01-vlan1902.cac.washington.edu(205.175.103.10)0.445ms 0.472ms 0.501ms5ccar1-ads-ge-0-0-0-0.pnw-gigapop.net(209.124.176.32)0.679ms 0.747ms 0.775ms6a209.124.184.150.deploy.akamaitechnologies.com.184.124.209.in-addr.arpa(209.124.184.150)0.621ms 0.456ms 0.419ms
Whatisgoingon?
-bash-3.1$nslookup www.nyse.comName:a789.g.akamai.netAddress:209.124.184.137
TheSocketAPI(§1.3.4,6.1.2-6.1.4)
![Page 20: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/20.jpg)
3/27/17
20
39
Network-ApplicationInterface• Defineshowappsusethenetwork
– Letsappstalktoeachotherviahosts;hidesthedetailsofthenetwork
host
appapp
host
40
MotivatingApplication• Simpleclient-serversetup
request
reply
![Page 21: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/21.jpg)
3/27/17
21
41
MotivatingApplication(2)• Simpleclient-serversetup
– Clientappsendsarequesttoserverapp– Serverappreturnsa(longer)reply
• Thisisthebasisformanyapps!– Filetransfer:sendname,getfile(§6.1.4)– Webbrowsing:sendURL,getpage– Echo:sendmessage,getitback
• Let’sseehowtowritethisapp…
42
SocketAPI• Simpleabstractiontousethenetwork
– ThenetworkserviceAPIusedtowriteallInternetapplications
– PartofallmajorOSes andlanguages;originallyBerkeley(Unix)~1983
• Supportstwokindsofnetworkservices– Streams:reliablysendastreamofbytes»– Datagrams:unreliablysendseparatemessages.(Ignore
fornow.)– Question:whenwouldyouusestreamsvs.datagrams?
![Page 22: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/22.jpg)
3/27/17
22
43
SocketAPI(2)• Sockets letappsattachtothe
localnetworkatdifferentports
Socket,Port#1
Socket,Port#2
SocketAPI(3)
44
Primitive MeaningSOCKET CreateanewcommunicationendpointBIND AssociatealocaladdresswithasocketLISTEN Announcewillingnesstoacceptconnections;givequeuesizeACCEPT PassivelyestablishanincomingconnectionCONNECT ActivelyattempttoestablishaconnectionSEND SendsomedataovertheconnectionRECEIVE ReceivesomedatafromtheconnectionCLOSE Releasetheconnection
![Page 23: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/23.jpg)
3/27/17
23
45
UsingSocketsClient(host1) Server(host2)Time
46
UsingSockets(2)Client(host1) Server(host2)Time
5:connect*
1:socket 2:bind1:socket
3:listen
9:send
6:recv*
4:accept*
7:send8:recv*
10:close 10:close
request
reply
disconnect
connect
*=callblocks
![Page 24: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/24.jpg)
3/27/17
24
47
ClientProgram(outline)socket() //makesocketgetaddrinfo() //serverandportname
//www.example.com:80connect() //connecttoserver[block]…send() //sendrequestrecv() //awaitreply[block]… //dosomethingwithdata!close() //done,disconnect
48
ServerProgram(outline)socket() //makesocketgetaddrinfo() //forportonthishostbind() //associateportwithsocketlisten() //preparetoacceptconnectionsaccept() //waitforaconnection[block]…recv() //waitforrequest…send() //sendthereplyclose() //eventuallydisconnect
![Page 25: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/25.jpg)
3/27/17
25
ProtocolsandLayering(§1.3)
50
NetworksNeedModularity• Thenetworkdoesmuchforapps:
– Makeandbreakconnections– Findapaththroughthenetwork– Transfersinformationreliably– Transfersarbitrarylengthinformation– Sendasfastasthenetworkallows– Sharesbandwidthamongusers– Securesinformationintransit– Letsmanynewhostsbeadded– …
![Page 26: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/26.jpg)
3/27/17
26
51
NetworksNeedModularity• Thenetworkdoesmuchforapps:
– Makeandbreakconnections– Findapaththroughthenetwork– Transfersinformationreliably– Transfersarbitrarylengthinformation– Sendasfastasthenetworkallows– Sharesbandwidthamongusers– Securesinformationintransit– Letsmanynewhostsbeadded– …
Weneedaformofmodularity,tohelpmanagecomplexityandsupportreuse
52
ProtocolsandLayers• Protocols andlayering isthemainstructuringmethodusedtodivideupnetworkfunctionality– Eachinstanceofaprotocoltalksvirtuallytoitspeer usingtheprotocol
– Eachinstanceofaprotocolusesonlytheservicesofthelowerlayer
![Page 27: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/27.jpg)
3/27/17
27
ProtocolsandLayers(2)• Protocolsarehorizontal,layersarevertical
53
X
YY
XInstanceofprotocolX
Peerinstance
Node1 Node2
Lowerlayerinstance(ofprotocolY)
ProtocolX
ServiceprovidedbyProtocolY
Question:whatisanexampleofaprotocolandwhatabstractiondoesitprovide/relyon?
ProtocolsandLayers(3)• Setofprotocolsinuseiscalledaprotocolstack
54
![Page 28: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/28.jpg)
3/27/17
28
55
ProtocolsandLayers(4)• Protocolsyou’veprobablyheardof:
– TCP,IP,802.11,Ethernet,HTTP,SSL,DNS,…andmanymore
• Anexampleprotocolstack– UsedbyawebbrowseronahostthatiswirelesslyconnectedtotheInternet
56
Encapsulation• Encapsulation isthemechanismusedtoeffectprotocollayering– Lowerlayerwrapshigherlayercontent,addingitsowninformationtomakeanewmessagefordelivery
– Likesendingaletterinanenvelope;postalservicedoesn’tlookinside
![Page 29: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/29.jpg)
3/27/17
29
Encapsulation(2)
57
HTTP
TCP
IP
802.11
Encapsulation(3)
58
HTTP
TCP
IP
802.11
HTTP
TCP HTTP
TCP HTTPIP
TCP HTTPIP802.11
HTTP
TCP
IP
802.11(wire)
HTTP
TCP HTTP
TCP HTTPIP
TCP HTTPIP802.11
TCP HTTPIP802.11
![Page 30: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/30.jpg)
3/27/17
30
Encapsulation(4)• Normallydrawmessagelikethis:
– Eachlayeraddsitsownheader
• Moreinvolvedinpractice– Trailersaswellasheaders,encrypt/compresscontents– Segmentation(dividelongmessage)andreassembly
59
802.11 IP TCP HTTP
Firstbitsonthewire Lastbits
60
Demultiplexing• Incomingmessagemustbepassedtotheprotocolsthatituses
??
UDPTCP
ARPIP
Ethernet
SMTP HTTP DNS
![Page 31: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/31.jpg)
3/27/17
31
Demultiplexing (2)• Donewithdemultiplexing keys intheheaders
61
Ethernet IP TCP HTTP
UDPTCP
ARPIP
Ethernet
SMTP HTTP
Ethertype value
IPprotocolfield
TCPportnumber
HostIncomingmessage
DNS
62
Protocols• Whataretheimplicationsofprotocolsandlayering?– Arethereanydownsidestoprotocols/layering?– Arethereanyperformancecosts?
![Page 32: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/32.jpg)
3/27/17
32
AdvantageofLayering• Usinginformationhidingtoconnectdifferentsystems
63
HTTP
TCPIP
802.11
Browser
HTTP
TCP
IPEthernet
Server
64
Guidance• Whatfunctionalityshouldweimplementatwhichlayer?– Thisisakeydesignquestion– Referencemodels provideframeworksthatguideus»
![Page 33: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/33.jpg)
3/27/17
33
OSI“7layer”ReferenceModel• Aprincipled,internationalstandard,toconnectsystems
– Influential,butnotusedinpractice.(Woops)
65
– Providesfunctionsneededbyusers– Convertsdifferentrepresentations– Managestaskdialogs– Providesend-to-enddelivery– Sendspacketsovermultiplelinks– Sendsframesofinformation– Sendsbitsassignals
InternetReferenceModel• Afourlayermodelbasedonexperience;omitssomeOSIlayersandusestheIPasthenetworklayer.
66
4.Application – Programsthatusenetworkservice
3.Transport – Providesend-to-enddatadelivery
2.Internet – Sendpacketsovermultiplenetworks
1.Link – Sendframesoveralink
![Page 34: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/34.jpg)
3/27/17
34
InternetReferenceModel(2)• Whatareexamplesofcommonprotocolsineachlayer?
67
4.Application3.Transport
2.Internet
1.Link
InternetReferenceModel(3)• IPisthe“narrowwaist”oftheInternet
– Supportsmanydifferentlinksbelowandappsabove
68
4.Application3.Transport
2.Internet
1.Link Ethernet802.11
IP
TCP UDP
HTTPSMTP RTP DNS
3GDSLCable
![Page 35: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/35.jpg)
3/27/17
35
IPSuite:EndHostsvs.Routers
69
HTTP
TCP
IP
Ethernetinterface
HTTP
TCP
IP
Ethernetinterface
IP IP
Ethernetinterface
Ethernetinterface
SONETinterface
SONETinterface
host host
router router
HTTP message
TCP segment
IP packet IP packetIP packet
70
Layer-basedNames(2)• Fordevicesinthenetwork:
Network
LinkNetwork
Link
Link Link
Physical PhysicalRepeater
Switch(orbridge)
Router
![Page 36: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/36.jpg)
3/27/17
36
71
Layer-basedNames(3)• Fordevicesinthenetwork:
Proxyormiddleboxorgateway
Network
LinkNetwork
Link
AppTransport
AppTransport
Buttheyalllooklikethis!
72
ANoteAboutLayers• Theyareguidelines,notstrict
– Mayhavemultipleprotocolsworkingtogetherinonelayer
– Maybedifficulttoassignaspecificprotocoltoalayer
![Page 37: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/37.jpg)
3/27/17
37
Best-EffortPacket-DeliveryService
Host-NetworkDivisionofLabor• Packetswitching
– Dividemessagesintoasequenceofpackets– Headerswithsourceanddestinationaddress
• Best-effortdelivery– Packetsmaybelost– Packetsmaybecorrupted– Packetsmaybedeliveredoutoforder
host host
network
![Page 38: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/38.jpg)
3/27/17
38
Host-NetworkInterface:WhyPackets?
• Datatrafficisbursty– Loggingintoremotemachines– Exchanginge-mailmessages
• Don’twanttowastebandwidth– Notrafficexchangedduringidleperiods
• Bettertoallowmultiplexing– Differenttransfersshareaccesstosamelinks
• Packetscanbedeliveredbymostanything– RFC1149:IPDatagramsoverAvianCarriers
Host-NetworkInterface:WhyBest-Effort?
• Neverhavingtosayyou’resorry…– Don’treservebandwidthandmemory– Don’tdoerrordetection&correction– Don’trememberfromonepackettonext
• Easiertosurvivefailures– Transientdisruptionsareokayduringfailover
• Canrunonnearlyanylinktechnology– Greaterinteroperabilityandevolution
![Page 39: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/39.jpg)
3/27/17
39
IntermediateTransportLayer• But,applications wantefficient,accuratetransferofdatainorder,ina
timelyfashion– Lettheendhostshandleallofthat– (Anexampleofthe“end-to-endargument”)
• Transportlayercanoptionally…– Detectandretransmitlostpackets– Putout-of-orderpacketsbackinorder– Detectandhandlecorruptedpackets– Avoidoverloadingthereceiver– <insertyourrequirementhere>
DirectoriesandRouting
78
![Page 40: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/40.jpg)
3/27/17
40
RelationshipBetweenLayers
79
linksession
path
name
address
Directories:MappingNametoAddress
80
linksession
path
name
address
![Page 41: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/41.jpg)
3/27/17
41
TypesofDirectories• Simplisticdesigns
– Askeveryone(e.g.,floodinginARP)– Telleveryone(e.g.,pushing/etc/hosts)– Centraldirectory
• Scalabledistributeddesigns– Hierarchicalnamespace(e.g.,DNS)– Flatnamespace(e.g.,DistributedHashTable)
81
Routing:MappingLinktoPath
82
linksession
path
name
address
![Page 42: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/42.jpg)
3/27/17
42
PathComputation• Spanningtree(e.g.,Ethernet)
– Onetreethatconnectseverypairofnodes• Shortestpaths(e.g.,OSPF,IS-IS,RIP)
– Shortest-pathtreerootedateachnode
• Locallyoptimalpaths(e.g.,BGP)– Eachnodeselectsthebestamongitsneighbors
• End-to-endpaths(e.g.,sourcerouting)– Eachnodepicksthebestend-to-endpath
83
NetworkDiscoveryandBootstrapping
84
![Page 43: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/43.jpg)
3/27/17
43
RelationshipBetweenLayers
85
linksession
path
name
address
ThreeKindsofIdentifiersHost Name IP Address MAC Address
Example www.cs.princeton.edu 128.112.7.156 00-15-C5-49-04-A9
Size Hierarchical, human readable, variable length
Hierarchical, machine readable, 32 bits (in IPv4)
Flat, machine readable, 48 bits
Read by Humans, hosts IP routers Switches in LAN
Allocation, top-level
Domain, assigned by registrar (e.g., for .edu)
Variable-length prefixes, assigned by ICANN, RIR, or ISP
Fixed-sized blocks, assigned by IEEE to vendors (e.g., Dell)
Allocation, low-level
Host name, local administrator
Interface, by DHCPor an administrator
Interface, by vendor
86
![Page 44: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/44.jpg)
3/27/17
44
LearningaHost’sAddress
• WhoamI?– Hard-wired:MACaddress– Staticconfiguration:IPinterfaceconfiguration– Dynamicallylearned:IPaddressconfiguredbyDHCP
• Whoareyou?– Hard-wired:IPaddressinaURL,orinthecode– Dynamicallylookedup:ARPorDNS
87
me youadapter adapter
88
MappingBetweenIdentifiers• DynamicHostConfigurationProtocol(DHCP)
– GivenaMACaddress,assignauniqueIPaddress– …andtellhostotherstuffabouttheLocalAreaNetwork– Toautomatetheboot-strappingprocess
• AddressResolutionProtocol(ARP)– GivenanIPaddress,providetheMACaddress– ToenablecommunicationwithintheLocalAreaNetwork
• DomainNameSystem(DNS)– Givenahostname,providetheIPaddress– GivenanIPaddress,providethehostname
![Page 45: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/45.jpg)
3/27/17
45
89
DynamicHostConfigurationProtocol
arrivingclient DHCP server
Host learnsIP address,Subnet mask, Gateway address, DNS server(s), and a lease time.
90
AddressResolutionProtocol(ARP)• EveryhostmaintainsanARPtable
– (IPaddress,MACaddress)pair• Consultthetablewhensendingapacket
– MapdestinationIPaddresstodestinationMACaddress– Encapsulateandtransmitthedatapacket
• But,whatiftheIPaddressisnotinthetable?– Senderbroadcasts:“WhohasIPaddress1.2.3.156?”– Receiverresponds:“MACaddress58-23-D7-FA-20-B0”– SendercachestheresultinitsARPtable
![Page 46: Computer Networks - courses.cs.washington.edu · 3/27/17 22 43 Socket API (2) • Socketslet apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 Socket](https://reader035.vdocuments.site/reader035/viewer/2022070107/6024e7c2358620767228e223/html5/thumbnails/46.jpg)
3/27/17
46
91
requesting hostcis.poly.edu
gaia.cs.umass.edu
root DNS server
local DNS serverdns.poly.edu
1
23
4
5
6
authoritative DNS serverdns.cs.umass.edu
78
TLD DNS server
DomainNameSystemHostatcis.poly.eduwants
IPaddressforgaia.cs.umass.edu
Recursive query: #1Iterative queries: #2, 4, 6
Questions• Shouldaddressescorrespondtotheinterface(pointofattachment)ortothehost?
• Whydowehaveallthreeidentifiers?Doweneedallthree?
• Whatshouldbedonetopreventspoofingofaddresses?