Transcript PPT
CPS110:
Networks
Landon Cox
March 25, 2009
Network hardware reality
Lots of different network interface cards (NICs)
3Com/Intel, Ethernet/802.11x
Each NIC has a fixed hardware address
MAC address: 01:10:C6:CE:8E:42
Send packet to LAN by specifying MAC address
Max packet size is 1500 bytes
Packets can be reordered, corrupted, dropped
Anyone can sniff packets from the network
Virtual/physical interfaces
Applications
Device
indepe
ndence
Route
across
networ
ks
Symbol
ic host
names
Large
messag
es
Process
to
process
Ordere
d
messag
es
Reliabl
e
messag
ing
Byte
stream
s
Secure
transm
ission
Proced
ure
calls
Distinc
t
messag
es
Insecur
e
transm
ission
Messag
es
OS
Many
types
of NICs
Deliver
only on
LAN
Hardware
MAC
addres
ses
Small
messag
es
NIC to
NIC
Unorde
red
messag
es
Unrelia
ble
messag
ing
Distributed computing
Try to make multiple computers look like one
We won’t really cover
Take CPS 214
Distributed shared memory
Distributed file systems
Parallelizing compilers
Process migration
Protocol layers
NFS
(files)
HTTP
(web)
SMTP
(email)
SSH
(login)
RPC
Applications
Abstraction
UDP
Abstraction
TCP
IP
Ethernet
ATM
Abstraction
PPP
Hardware
OSI model
Open Systems Interconnections
Layer 7
Applications
Applications
Layer 6
Presentation
Presentation
Layer 5
Session
Session
Layer 4
Transport
Transport
Layer 3
Network
Network
Layer 2
Layer 1
DataLink
DataLink
Physical
Physical
Network layers (the stack)
Build higher-level services on simpler ones
IP over Ethernet
TCP over IP
HTTP over TCP
Why build in layers?
Could have 0 layers (build directly on top of HW)
What would happen?
Have to build from scratch each time HW changes
E.g. one firefox for wired NIC, one for wireless NIC
Network layers (the stack)
Build higher-level services on simpler ones
IP over Ethernet
TCP over IP
HTTP over TCP
Why build in layers?
Could have 1 layer (OS provides single layer)
What would happen?
Better to let applications choose functionality they need
Unneeded features usually cost something (performance)
E.g. would you ever not need reliable communication?
Virtual/physical interfaces
Applications
Route
across
networks
OS
Deliver
only on
LAN
Hardware
Routing
HW lets us send to neighbor on same LAN
Single-hop route
Want to send to computer on another LAN
Multi-hop route
IP (Internet Protocol) handles this
Local-area network
Typically, switched Ethernet
Ethernet
switch
Messages delivered using
Ethernet MAC address
E.g. 00:0D:56:1E:AD:BB
Unique to physical card (like a serial number)
Switch knows all connected computers’ MAC addresses
Routing
Can’t put all computers on one switch!
Think of the wiring logistics
Want to connect two LANs together
Use a machine that straddles two networks
Called a router or gateway or bridge
LANs and routers form the Internet
Internet graph
A
B
Each letter is a router,
possibly with a LAN
connected to it.
C
E
D
G
F
Internet graph
Each node is an
Autonomous
System (AS). Can
think of as an
ISP.
Internet graph
A
B
C
E
D
G
F
How does D know how to get to router G?
Should it send messages to E, C, or F?
Internet routing is imprecise
Internet has no centralized state
Makes it (supposedly) more fault-tolerant
Routing is hard when a network is
Large (a lot to track)
Dynamic (connections change quickly)
Incentives to lie (make money by accepting traffic)
The Internet exhibits all three
Basic idea
Routers propagate info about the graph to each other
BGP (Border Gateway Protocol)
Traceroute example
www.kernel.org
Unix traceroute utility
Virtual/physical interfaces
Applications
Symbolic
host
names
OS
MAC
addresse
s
Hardware
Naming other computers
Low-level interface
Provide the destination MAC address
00:13:20:2E:1B:ED
Middle-level interface
Provide the destination IP address
152.3.140.183
High-level interface
Provide the destination hostname
crocus.cs.duke.edu
Translating hostname to IP addr
Hostname IP address
Performed by Domain Name Service (DNS)
Used to be a central server
/etc/hosts at SRI
What’s wrong with this approach?
Doesn’t scale to the global Internet
DNS
Centralized naming doesn’t scale
Server has to learn about all changes
Server has to answer all lookups
Instead, split up data
Use a hierarchical database
Hierarchy allows local management of changes
Hierarchy spreads lookup work across many computers
Example: www.cs.duke.edu
nslookup in interactive mode
Translating IP to MAC addrs
IP address MAC address
Performed by ARP protocol
Only done after you get to the right LAN
How does a router know the MAC address of 152.3.140.183?
ARP (Address Resolution Protocol)
If it doesn’t know the mapping, broadcast through switch
“Whoever has this IP address, please tell me your MAC address”
Cache the mapping
“/sbin/arp”
Why is broadcasting over a LAN ok?
Number of computers connected to a switch is relatively small
Virtual/physical interfaces
Applications
Large
messages
OS
Small
messages
Hardware
Message sizes
Hardware interface
Max Ethernet message size is 1500 bytes
Application interface
IP maximum packet size is 64 kbytes
What if the route narrows?
Start at Ethernet max of 1500 bytes
Could traverse ATM w/ max of 53 bytes
Message sizes
IP layer fragments larger MTU to smaller MTU
Computer 1
Router
Computer 2
IP
IP
IP
Ethernet
Ethernet
ATM
ATM
Virtual/physical interfaces
Applications
Processtoprocess
OS
NIC-toNIC
Hardware
Processes vs machines
IP is machine-to-machine
E.g. crocus.cs.duke.edu www.kernel.org
Process abstraction
Each app thinks it has its own machine
Give each process multiple virtual NICs
Processes vs machines
Hardware interface
One network endpoint per machine
Application interface
Multiple network endpoints per machine
Sockets
Software endpoints for communication
Like virtual network cards
Sockets
Another example of virtualized hardware
Thread virtual processor
Address space virtual memory
Endpoint/socket virtual NIC
NIC and socket both have unique identifiers
NIC: MAC address
Socket: ‹hostname, port number›
bind () assigns a port number to a host’s socket
Sockets
OS allows apps to program sockets
E.g. BSD sockets
WinSock has pretty much same interface
Processes name each other via sockets
Each message includes a destination ‹host, port›
Tells routers which computer gets message
Tells dst computer which process gets message
Sockets
OS can multiplex multiple connections over one NIC
Kinds of sockets: UDP (datagrams), TCP (ordered, reliable)
Course administration
Project 2 due on Friday
Two groups are done
Many more are very close
Normal office hours Thursday and Friday
Use Friday discussion section to answer P2 questions
Any questions?