* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download network
Net neutrality law wikipedia , lookup
IEEE 802.1aq wikipedia , lookup
Distributed firewall wikipedia , lookup
Multiprotocol Label Switching wikipedia , lookup
Asynchronous Transfer Mode wikipedia , lookup
Piggybacking (Internet access) wikipedia , lookup
TCP congestion control wikipedia , lookup
Deep packet inspection wikipedia , lookup
Computer network wikipedia , lookup
Network tap wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Internet protocol suite wikipedia , lookup
List of wireless community networks by region wikipedia , lookup
Airborne Networking wikipedia , lookup
Packet switching wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Part 1: Networking Review
Goals:
 review key topics
from intro networks
course
equalize backgrounds
identify remedial
work
ease into course
Overview:
 overview
 error control
 flow control
 congestion control
 routing
 LANs
 addressing
 synthesis:
“a day in the life”
control timescales
1-1
What’s a network: “nuts and bolts” view
 network edge: millions of end-
system devices:
 pc’s workstations, servers
 PDA’s, phones, toasters
running network apps
 network core: routers,
switches forwarding data
router
server
workstation
mobile
local net
regional net
packets: packet switching
calls: circuit switching
 communication links
fiber, copper, radio, …
company
net
1-2
What’s a network protocol?
 Means (algorithm) for exchanging information
 “understanding” between two (or more) entitites
about “means” of exchanging information
 shared (agreed upon, standardized) set of rules
for communication
“how” you send/receive stuff (actions)
Format of data exchanged
1-3
What’s a protocol?
a human protocol and a computer network protocol:
Hi
TCP connection
req.
Hi
TCP connection
reply.
Got the
time?
Get http://gaia.cs.umass.edu/index.htm
2:00
<file>
time
1-4
What’s a protocol?
human protocols:
 “what’s the time?”
 “I have a question”
 introductions
… specific msgs sent
… specific actions taken
when msgs received,
or other events
network protocols:
 machines rather than
humans
 all communication
activity in Internet
governed by protocols
protocols define format,
order of msgs sent and
received among network
entities, and actions
taken on msg
transmission, receipt
1-5
A closer look at network structure:
 network edge:
applications and
hosts
 network core:
 routers
network of
networks
 access networks,
physical media:
communication links
1-6
The network edge:
 end systems (hosts):
 run application programs
 e.g., WWW, email
 at “edge of network”
 client/server model
 client host requests, receives
service from server
 e.g., WWW client (browser)/
server; email client/server
 peer-peer model:
 host interaction symmetric
 e.g.: Gnutella, KaZaA
1-7
Network edge: connection-oriented service
Goal: data transfer
between end sys.
 handshaking: setup
(prepare for) data
transfer ahead of time
Hello, hello back human
protocol
set up “state” in two
communicating hosts
 TCP - Transmission
Control Protocol
Internet’s connectionoriented service
TCP service [RFC 793]
 reliable, in-order byte-
stream data transfer
loss: acknowledgements
and retransmissions
 flow control:
 sender won’t overwhelm
receiver
 congestion control:
 senders “slow down sending
rate” when network
congested
1-8
Network edge: connectionless service
Goal: data transfer
between end systems
same as before!
 UDP - User Datagram
Protocol [RFC 768]:
Internet’s
connectionless service
 unreliable data
transfer
 no flow control
 no congestion control
App’s using TCP:
 HTTP (WWW), FTP
(file transfer), Telnet
(remote login), SMTP
(email)
App’s using UDP:
 streaming media,
teleconferencing,
Internet telephony
1-9
The Network Core
 mesh of interconnected
routers
 the fundamental
question: how is data
transferred through net?
 circuit switching:
dedicated circuit per
call: telephone net
 packet-switching: data
sent thru net in
discrete “chunks”
1-10
Network Core: Circuit Switching
End-end resources
reserved for “call”
 link bandwidth, switch
capacity
 dedicated resources:
no sharing
 circuit-like
(guaranteed)
performance
 call setup required
1-11
Network Core: Packet Switching
each end-end data stream
divided into packets
 user A, B packets share
network resources
 each packet uses full link
bandwidth
 resources used as needed,
Bandwidth division into “pieces”
Dedicated allocation
Resource reservation
resource contention:
 aggregate resource
demand can exceed
amount available
 congestion: packets
queue, wait for link use
 store and forward:
packets move one hop
at a time
 transmit over link
 wait turn at next
link
1-12
Network core: routing
Goal: move data among routers from source to dest.
datagram packet network:
circuit-switched network:
 destination address determines
 call allocated time slots
next hop
of bandwidth at each
 routes may change during session
link
 analogy: driving, asking directions
 fixed path (for call)
No notion of call state
virtual circuit network:
 packet carries tag, tag
determines next hop
 fixed path (for call) determined
at call setup time
 routers maintain little per-call
state; resources not allocated
determined at call
setup
switches maintain lots
of per call state
(what?): resource
allocation
1-13
Packet switching vs circuit switching: why?
 “reliability” – no congestion, in order data in
circuit-switching
 packet switching: better bandwidth use
 state, resources: packet switching has less
state
good: less control-plane processing resources along
the way
More dataplane (address lookup) processing
 failure modes (routers/links down):
 packet switching routing reconfigures sub-second
timescale;
 circuit-switching: more complex recovery – need to
involve all (downstream) switches on path
1-14
Access networks and physical media
Q: How to connection end
systems to edge router?
 residential access nets
 institutional access networks
(school, company)
 mobile access networks
Keep in mind:
 bandwidth (bits per second)
of access network?
 shared or dedicated?
1-15
Example access net: home network
Typical home network components:
 ADSL or cable modem
 router/firewall
 Ethernet
 wireless access
point
to/from
cable
headend
cable
modem
router/
firewall
Ethernet
(switched)
wireless
laptops
wireless
access
point
1-16
So we have seen “pieces” of network
 edge, core, links
 protocols
How do we talk about “structure” of network and its
architecture?
 layered architecture
structure allows identification, relationship of complex system’s
pieces: layered reference model for discussion
layer N builds on services provided by layer N-1
Layer N provides service to layer N+1
 physical topology, interconnection
1-17
Internet protocol stack
 application: supporting network
applications
ftp, smtp, http
application
 transport: host-host data transfer
 tcp, udp
transport
 network: routing of datagrams from
network
source to destination
ip, routing protocols
 link: data transfer between
neighboring network elements
link
physical
ppp, ethernet
 physical: bits “on the wire”
1-18
Layering: logical communication
E.g.: transport
 take data from app
 add addressing,
reliability check
info to form
“datagram”
 send datagram to
peer
 wait for peer to
ack receipt
 analogy: post
office
data
application
transport
transport
network
link
physical
application
transport
network
link
physical
ack
data
network
link
physical
application
transport
network
link
physical
data
application
transport
transport
network
link
physical
1-19
Layering: physical communication
data
application
transport
network
link
physical
application
transport
network
link
physical
network
link
physical
application
transport
network
link
physical
data
application
transport
network
link
physical
1-20
Internet structure: network of networks
 roughly hierarchical
 at center: “tier-1” ISPs (e.g., UUNet, BBN/Genuity,
Sprint, AT&T), national/international coverage
 treat each other as equals
Tier-1
providers
interconnect
(peer)
privately
Tier 1 ISP
Tier 1 ISP
NAP
Tier-1 providers
also interconnect
at public network
access points
(NAPs)
Tier 1 ISP
1-21
Internet structure: network of networks
 “Tier-2” ISPs: smaller (often regional) ISPs
 Connect to one or more tier-1 ISPs, possibly other tier-2 ISPs
Tier-2 ISP pays
tier-1 ISP for
connectivity to
rest of Internet
 tier-2 ISP is
customer of
tier-1 provider
Tier-2 ISP
Tier-2 ISP
Tier 1 ISP
Tier 1 ISP
Tier-2 ISP
NAP
Tier 1 ISP
Tier-2 ISPs
also peer
privately with
each other,
interconnect
at NAP
Tier-2 ISP
Tier-2 ISP
1-22
Internet structure: network of networks
 “Tier-3” ISPs and local ISPs
 last hop (“access”) network (closest to end systems)
local
ISP
Local and tier3 ISPs are
customers of
higher tier
ISPs
connecting
them to rest
of Internet
Tier 3
local
local
ISP
Tier-2 ISP
ISP
ISP
ISP
Tier-2 ISP
Tier 1 ISP
Tier 1 ISP
Tier-2 ISP
local
local
ISP
ISP
local
NAP
Tier 1 ISP
Tier-2 ISP
local
ISP
Tier-2 ISP
local
ISP
1-23
Internet structure: network of networks
 a packet passes through many networks!
local
ISP
Tier 3
local
local
ISP
Tier-2 ISP
ISP
ISP
ISP
Tier-2 ISP
Tier 1 ISP
Try a
traceroute!
Tier 1 ISP
Tier-2 ISP
local
local
ISP
ISP
local
NAP
Tier 1 ISP
Tier-2 ISP
local
ISP
Tier-2 ISP
local
ISP
1-24
Part 0: Networking Review
Goals:
 review key topics
from intro networks
course
 equalize backgrounds
 identify remedial
work
 ease into course
Overview:
 overview
 error control
 flow control
 congestion control
 routing
 LANs
 addressing
 synthesis:
“a day in the life”
control timescales
1-25
Error control
 reliable point-point communication
 A generic problem: application-to-application, over path,
over link
 what’s the error model:
 bits flipped in packet?
 packets “lost?
 packets delayed or reordered?
1-26
Bit level error detection
EDC= Error Detection and Correction bits (redundancy)
D = Data protected by error checking, may include header fields
• Error detection not 100% reliable!
• protocol may miss some errors, but rarely
• larger EDC field yields better detection and correction
1-27
Parity Checking
Single Bit Parity:
Detect single bit errors
Two Dimensional Bit Parity:
Detect and correct single bit errors
Much more powerful error
detection/correction schemes:
Cyclic Redundancy Check (CRC)
0
Simple form of forward
error correction (FEC)
0
1-28
Internet checksum
Goal: detect “errors” (e.g., flipped bits) in transmitted
segment (note: used at transport layer only)
Sender:
 treat segment contents
as sequence of 16-bit
integers
 checksum: addition (1’s
complement sum) of
segment contents
 sender puts checksum
value into UDP checksum
field
Receiver:
 compute checksum of received
segment
 check if computed checksum
equals checksum field value:
 NO - error detected
 YES - no error detected. But
maybe errors nonetheless?
1-29
Recovering from lost packets
 Why are packets lost: at end system, “within”
network
Limited storage, discarded in congestion
outages: eventually reroute around failure (~sec world’s
recovery ties hopefully)
worst
acronym
dropped at end system e.g., on NIC
 ARQ: automatic request repeat
 sender puts sequence numbers on packets (why)
 receiver positively or negatively acknowledges correct
receipt of packet
 sender starts (logical) timer for each packet, timeout
and retransmits
1-30
Reference: section 3.4 in K&R
rdt3.0: channels with errors and loss
Assumption: underlying
channel can also lose
packets (data or ACKs)
checksum, seq. #, ACKs,
retransmissions will be
of help, but not enough
 Why seq #s
detect reordering
ACK, NAKing
Detect missing packet
Duplicate detection due
to retransmissions
Approach: sender waits
“reasonable” amount of
time for ACK
 retransmits if no ACK
received in this time
 if pkt (or ACK) just delayed
(not lost):
 retransmission will be
duplicate, but use of 0,1
seq. #’s already handles
this
 receiver must specify seq
# of pkt being ACKed
 requires countdown timer
1-31
rdt3.0 sender
rdt_send(data)
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt)
start_timer
rdt_rcv(rcvpkt)
L
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt)
&& isACK(rcvpkt,1)
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) ||
isACK(rcvpkt,0) )
timeout
udt_send(sndpkt)
start_timer
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt)
&& isACK(rcvpkt,0)
stop_timer
stop_timer
timeout
udt_send(sndpkt)
start_timer
L
Wait
for
ACK0
Wait for
call 0from
above
L
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) ||
isACK(rcvpkt,1) )
Wait
for
ACK1
Wait for
call 1 from
above
rdt_send(data)
rdt_rcv(rcvpkt)
L
sndpkt = make_pkt(1, data, checksum)
udt_send(sndpkt)
start_timer
FSM specification of sender (details not important)
1-32
rdt3.0 in action
1-33
rdt3.0 in action
1-34
Part 0: Networking Review
Goals:
 review key topics
from intro networks
course
 equalize backgrounds
 identify remedial
work
 ease into course
Overview:
 overview
 error control
 flow control
 congestion control
 routing
 LANs
 addressing
 synthesis:
“a day in the life”
control timescales
1-35
Flow Control (in TCP)
flow control
sender won’t overrun
receiver’s buffers by
transmitting too much,
too fast
receiver: explicitly informs sender of (dynamically changing)
amount of free buffer space
 RcvWindow field in TCP segment
sender: keeps the amount of transmitted, unACKed data less
than most recently received RcvWindow
RcvBuffer = size or TCP Receive Buffer
receiver buffering
RcvWindow = amount of spare room in Buffer
1-36
Principles of Congestion Control
Congestion:
 informally: “too many sources sending too much
data too fast for network to handle”
 different from flow control!
 manifestations:
 lost packets (buffer overflow at routers)
 long delays (queueing in router buffers)
 a top-10 problem!
1-37
Causes/costs of congestion: scenario 1
Host A
 two senders, two
receivers
 one router,
infinite buffers
 no retransmission
Host B
lout
lin : original data
unlimited shared
output link buffers
 large delays
when congested
 maximum
achievable
throughput
1-38
Causes/costs of congestion: scenario 2
 one router, finite buffers
 sender retransmission of lost packet
Host A
Host B
lin : original
data
l'in : original data, plus
retransmitted data
lout
finite shared output
link buffers
1-39
Causes/costs of congestion: scenario 2
= l
(goodput)
out
in
 “perfect” retransmission only when loss:
 always:
l
l = lout
in
retransmission of delayed (not lost) packet makes l
in
l
(than perfect case) for same
out
larger
“costs” of congestion:
 more work (retrans) for given “goodput”
 unneeded retransmissions: link carries multiple copies of pkt
1-40
Causes/costs of congestion: scenario 3
 four senders
Q: what happens as l
in
and l increase ?
 multihop paths
 timeout/retransmit
in
Host A
lin : original data
lout
l'in : original data, plus
retransmitted data
finite shared output
link buffers
Host B
1-41
Causes/costs of congestion: scenario 3
H
o
s
t
A
l
o
u
t
H
o
s
t
B
Another “cost” of congestion:
 when packet dropped, any “upstream transmission
capacity used for that packet was wasted!
1-42
Approaches towards congestion control
Two broad approaches towards congestion control:
End-end congestion
control:
 no explicit feedback from
network
 congestion inferred from
end-system observed loss,
delay
 approach taken by TCP
Network-assisted
congestion control:
 routers provide feedback
to end systems
 single bit indicating
congestion (SNA,
DECbit, TCP/IP ECN,
ATM)
 explicit rate sender
should send at
1-43
Case study: ATM ABR congestion control
ABR: available bit rate:
 “elastic service”
RM (resource management)
cells:
 if sender’s path
 sent by sender, interspersed
“underloaded”:
 sender should use
available bandwidth
 if sender’s path
congested:
 sender throttled to
minimum guaranteed
rate
with data cells
 bits in RM cell set by switches
(“network-assisted”)
 NI bit: no increase in rate
(mild congestion)
 CI bit: congestion
indication
 RM cells returned to sender by
receiver, with bits intact
1-44
Case study: ATM ABR congestion control
 two-byte ER (explicit rate) field in RM cell
 congested switch may lower ER value in cell
 sender’ send rate thus minimum supportable rate on path
 EFCI bit in data cells: set to 1 in congested switch
 if data cell preceding RM cell has EFCI set, sender sets CI
bit in returned RM cell
1-45
TCP Congestion Control
 end-end control (no network assistance)
 transmission rate limited by congestion window
size, Congwin, over segments:
Congwin
1-46
TCP congestion control:
 “probing” for usable
bandwidth:
ideally: transmit as fast
as possible (Congwin as
large as possible)
without loss
increase Congwin until
loss (congestion)
loss: decrease Congwin,
then begin probing
(increasing) again
 two “phases”
 slow start
 congestion avoidance
 important variables:
 Congwin
 threshold: defines
threshold between two
slow start phase,
congestion control
phase
1-47
TCP Slowstart
Host A
initialize: Congwin = 1
for (each segment ACKed)
Congwin++
until (loss event OR
CongWin > threshold)
RTT
Slowstart algorithm
Host B
 exponential increase (per
RTT) in window size (not so
slow!)
 loss event: timeout (Tahoe
TCP) and/or or three
duplicate ACKs (Reno TCP)
time
1-48
TCP Congestion Avoidance: Tahoe
TCP Tahoe Congestion avoidance
/* slowstart is over
*/
/* Congwin > threshold */
Until (loss event) {
every w segments ACKed:
Congwin++
}
threshold = Congwin/2
Congwin = 1
perform slowstart
Numerous improvements: TCP Reno, SACK
1-49
Part 0: Networking Review
Goals:
 review key topics
from intro networks
course
 equalize backgrounds
 identify remedial
work
 ease into course
Overview:
 overview
 error control
 flow control
 congestion control
 routing (and network
layer services)
 LANs
 addressing
 synthesis:
“a day in the life”
control timescales
1-50
Network layer functions
 transport packet from
application
transport
network
data link
physical
sending to receiving hosts
 network layer protocols in
every host, router
three important functions:
 path determination: route
taken by packets from source
we won’t
to dest. Routing algorithms
consider this
 switching: move packets from
router’s input to appropriate
router output
 call setup: some network
architectures require router
call setup along path before
data flows
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
our focus in 653 later
1-51
Network service model
Q: What service model
for “channel”
transporting packets
from sender to
receiver?
 guaranteed bandwidth?
 preservation of inter-packet
timing (no jitter)?
 loss-free delivery?
 in-order delivery?
 congestion feedback to
sender?
CRUCIAL
question!
The most important
abstraction provided
by network layer:
? ?
?
virtual circuit
or
datagram?
1-52
Virtual circuits
“source-to-dest path behaves much like telephone
circuit”
performance-wise
network actions along source-to-dest path
 call setup, teardown for each call before data can flow
 each packet carries VC identifier (not destination host ID)
 every router on source-dest path maintains “state” for
each passing connection
transport-layer connection only involved two end systems
 link, router resources (bandwidth, buffers) may be
allocated to VC
to get circuit-like perf.
1-53
Virtual circuits: signaling protocols
 used to setup, maintain teardown VC
 used in ATM, frame-relay, X.25
 not used in today’s Internet
application
transport 5. Data flow begins
network 4. Call connected
data link 1. Initiate call
physical
6. Receive data application
3. Accept call
2. incoming call
transport
network
data link
physical
1-54
Datagram networks:
the Internet model
 no call setup at network layer
 routers: no state about end-to-end connections
 no network-level concept of “connection”
 packets typically routed using destination host ID
 packets between same source-dest pair may take
different paths
application
transport
network
data link 1. Send data
physical
application
transport
network
2. Receive data
data link
physical
1-55
Datagram or VC network: why?
Internet
 data exchange among
ATM
 evolved from telephony
computers
 human conversation:
 “elastic” service, no strict
 strict timing, reliability
timing req.
requirements
 “smart” end systems
 need for guaranteed
(computers)
service
 can adapt, perform
 “dumb” end systems
control, error recovery
 telephones
 simple inside network,
 complexity inside
complexity at “edge”
network
 many link types
 different characteristics
 uniform service difficult
1-56
Routing
Routing protocol
Goal: determine “good” path
(sequence of routers) thru
network from source to dest.
Graph abstraction for
routing algorithms:
 graph nodes are
routers
 graph edges are
physical links
link cost: delay, $ cost,
or congestion level
5
2
A
B
2
1
D
3
C
3
1
5
F
1
E
2
 “good” path:
 typically means minimum
cost path
 other def’s possible
1-57
Routing: only two approaches used in practice
Global:
 all routers have complete topology, link cost info
 “link state” algorithms: use Dijkstra’s algorithm to find
shortest path from given router to all destinations
Decentralized:
 router knows physically-connected neighbors, link costs
to neighbors
 iterative process of computation, exchange of info with
neighbors
 “distance vector” algorithms
 a ‘self-stabilizing algorithm’ (we’ll see these later)
1-58
Distance Vector Routing Algorithm
iterative:
 continues until no
nodes exchange info.
 self-terminating: no
“signal” to stop
asynchronous:
 nodes need not
exchange info/iterate
in lock step!
distributed:
 each node
communicates only with
directly-attached
neighbors
Each node:
wait for (change in local link
cost of msg from neighbor)
recompute distance table
if least cost path to any dest
has changed, notify
neighbors
1-59
Hierarchical Routing
Our routing review thus far - idealization
 all routers identical
 network “flat”
… not true in practice
scale: with 200 million
destinations:
 can’t store all dest’s in
routing tables!
 routing table exchange
would swamp links!
administrative autonomy
 internet = network of
networks
 each network admin may
want to control routing in its
own network
1-60
Hierarchical Routing
 aggregate routers into
regions, “autonomous
systems” (AS)
 routers in same AS run
same routing protocol
“intra-AS” routing
protocol
routers in different AS
can run different intraAS routing protocol
gateway routers
 special routers in AS
 run intra-AS routing
protocol with all other
routers in AS
 also responsible for
routing to destinations
outside AS
 run inter-AS routing
protocol with other
gateway routers
1-61
Intra-AS and Inter-AS routing
C.b
a
C
Gateways:
B.a
A.a
b
A.c
d
A
a
b
c
a
c
B
b
•perform inter-AS
routing amongst
themselves
•perform intra-AS
routers with other
routers in their
AS
network layer
inter-AS, intra-AS
routing in
gateway A.c
link layer
physical layer
1-62
Intra-AS and Inter-AS routing
C.b
a
Host
h1
C
b
A.a
a
Inter-AS Internet: BGP
routing
between
B.a
A and B
Host
h2
c
A.c
a
b
B
d
c
b
A
Intra-AS routing
within AS A
Intra-AS routing
within AS B
Internet: OSPF, IS-IS, RIP
1-63
Addressing
 What’s an address?
identifier that differentiates between me and
someone else, and also helps route data to/from
me
 Real world examples of addressing?
 mailing address
 office #, floor, etc
 different “levels of addressing”
Phone#
1-64
Addressing: network layer
 IP address: 32-bit
identifier for host,
router interface
 interface: connection
between host, router
and physical link
router’s typically have
multiple interfaces
host may have multiple
interfaces
IP addresses
associated with
interface, not host,
router
223.1.1.1
223.1.2.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.2.9
223.1.3.27
223.1.2.2
223.1.3.2
223.1.3.1
223.1.1.1 = 11011111 00000001 00000001 00000001
223
1
1
1
1-65
IP Addressing
 IP address:
 network part (high
order bits)
 host part (low order
bits)
 What’s a network ?
(from IP address
perspective)
 device interfaces with
same network part of
IP address
 can physically reach
each other without
intervening router
223.1.1.1
223.1.2.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.2.9
223.1.3.27
223.1.2.2
LAN
223.1.3.1
223.1.3.2
network consisting of 3 IP networks
(for IP addresses starting with 223,
first 24 bits are network address)
1-66
IP addresses: how to get one?
Q: How does host get IP address?
 hard-coded by system admin in a file
 Wintel: control-panel->network->configuration->tcp/ip->properties
UNIX: /etc/rc.config
 DHCP: Dynamic Host Configuration Protocol:
dynamically get address: “plug-and-play”
 host broadcasts “DHCP discover” msg
 DHCP server responds with “DHCP offer” msg
 host requests IP address: “DHCP request” msg
 DHCP server sends address: “DHCP ack” msg
1-67
Part 0: Networking Review
Goals:
 review key topics
from intro networks
course
 equalize backgrounds
 identify remedial
work
 ease into course
Overview:
 overview
 error control
 flow control
 congestion control
 routing
 LANs
 addressing (cont.)
 synthesis:
“a day in the life”
control timescales
1-68
Link Layer: setting the context
1-69
Link Layer: setting the context
 two physically connected devices:
 host-router, router-router, host-host
 unit of data: frame
M
Ht M
Hn Ht M
Hl Hn Ht M
application
transport
network
link
physical
data link
protocol
phys. link
network
link
physical
Hl Hn Ht M
frame
adapter card
1-70
Link Layer Services
 Framing, link access:
encapsulate datagram into frame, adding header, trailer
implement channel access if shared medium (e.g., Ethernet)
‘physical addresses’ used in frame headers to identify
source, dest
• different from IP address!
 reliable delivery between two physically connected
devices
 flow control
 error detection/congestion
1-71
LAN Addresses and ARP
32-bit IP address:
 network-layer address
 used to get datagram to destination network
(recall IP network definition)
LAN (or MAC or physical) address:
 used to get frame from one interface to another
physically-connected interface (same network)
 48 bit MAC address (for most LANs)
burned in the adapter ROM
 WHY MAC and Internet addresses separate?
IP addresses depend on network that you’re on
MAC address in hardware makes it faster
1-72
LAN Addresses
Each adapter on LAN has unique LAN address
LAN (or MAC or physical) address:
 used to get datagram from one
interface to another physicallyconnected interface (same
network)
 48 bit MAC address (for most
LANs)
burned in the adapter ROM
1-73
LAN Address (more)
 MAC address allocation administered by IEEE
 manufacturer buys portion of MAC address space
(to assure uniqueness)
 Analogy:
(a) MAC address: like Social Security Number
(b) IP address: like postal address
 MAC flat address => portability
can move LAN card from one LAN to another
 IP hierarchical address NOT portable
 depends on network to which one attaches
1-74
From IP to MAC addresses
Starting at A, given IP
datagram addressed to B:
A
223.1.1.1
223.1.2.1
 look up net. address of B, find B
on same net. as A
 link layer send datagram to B
inside link-layer frame
frame source,
dest address
B’s MAC A’s MAC
addr
addr
223.1.1.2
223.1.1.4 223.1.2.9
B
223.1.1.3
datagram source,
dest address
A’s IP
addr
B’s IP
addr
223.1.3.27
223.1.3.1
223.1.2.2
E
223.1.3.2
IP payload
datagram
frame
1-75
ARP protocol
 A knows B's IP address, wants to learn physical
address of B
 A broadcasts ARP query pkt, containing B's IP
address
 all machines on LAN receive ARP query
 B receives ARP packet, replies to A with its (B's)
physical layer address
 A caches (saves) IP-to-physical address pairs until
information becomes old (times out)
 soft state: information that times out (goes
away) unless refreshed
1-76
Part 0: Networking Review
Goals:
 review key topics
from intro networks
course
 equalize backgrounds
 identify remedial
work
 ease into course
Overview:
 overview
 error control
 flow control
 congestion control
 routing
 LANs
 addressing (cont.)
 synthesis:
“a day in the life”
control timescales
1-77
Synthesis: which protocols involved?
www browser downloads page
1-78
Protocols involved in http GET
 User types ina URL, what happens?
 DNS: translate hostname to IP address
 Via DHCP, source has IP address of DNS server (suppose
DNS server is on same network segment)
 Create DNS query, pass to UDP, create UDP segment
containing DNS query, pass to IP on host
 Look in routing table (DHCP gave me default router),
recognize that DNS server is on same network.
 Use ARP to determine MAC address of DNS server
 Ethernet used to send frame to DNS server on physically
connected “wire” (network segment, ethernet “cable”)
 On DNS machine ethernet->IP->UDP. UDP looks at dest
port #, sees it is DNS, passes DNS query to DNS
application. (assume dns knows IP addresses of hostname
in original URL - address found!)
 DNS server sends UDP reply back to orginating machine
1-79
Protocols involved in http GET
 So: browser now has IP address of GET destination server
 Need to establish TCP connection to server, TCP connection
establishment sends SYN packet (will get an SYNACK back,
eventuallly….)
 SYN packet down to network layer, with IP address of server.
Since server destined “off my network”, SYN packet will need
to go through router.
 Look in routing table, see that destined off network, need to
send to “default gateway” (to get off my net)
 Use ARP to get MAC address of default gateway, create
Ethernet frame with gateway MAC address, containing IP
packet containing TCP segment, containing SYN
 It is IMPORTANT to realize that while the Ethernet frame
containing the IP datagram that contains the TCP SYN has as
its destination address the MAC address of the router, the IP
datagram (still) has as its destination address the IP address
of the remote www server
1-80
Protocols involved in http GET
Router receives Ethernet frame (frame is addressed to router), looks at IP
datagram and sees that IP datagram is not addressed to itself (IP datagram
is addressed to server). So router knows that it must forward the IP
datagram to the next hop router along the path to the eventual destination.
 Router checks routing tables (table values populated using intra,
possibly inter-, domain routing protocols like OSPF, RIP, IS-IS,
BGP (inter). Get IP address of next hop router.
Router puts IP packets in Ethernet frame, Ethernet frame
addressed to next hop router. MAC address of next hope router
determined by ARP. Frame sent to next hop router.
Network management shoehorn: arriving packets at interface
cause SNMP MIB variable for # arriving IP datagrams to be
incremented
…. This forwarding continues until IP datagram contain TCP SYN
eventually arrives at destination, gaia.cs.umass.edu (128.119.30.30)
Up to IP, demultiplex from Ethernet to IP using Ethernet TYPE
field to identify IP as upper layer protocol
From IP to TCP using protocol field of IP datagram,
SYN packet arrives at gaia TCP (FINALLY)
1-81
Protocols involved in http GET
 So …. SYN has arrived at gaia. Gaia sends back SYNACK to
intial sender
 Gaia gets synack, ready to send data.
 HTTP GET message now sent to gaia.cs.umass.edu in a TCP
segment, in IP datagram, Ethernet frame, along hops to
gaia.cs.umass.edu
 GET arrives! REPLY formulated by http server … and sent
1-82
					 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                            