Computer Networks
Computer Networks
Introduction
Introduction 1-1
Chapter 1: introduction
our goal: overview:
get “feel” and what’s the Internet?
terminology what’s a protocol?
network edge; hosts, access net,
more depth, detail
physical media
later in course network core: packet/circuit
approach: switching, Internet structure
use Internet as performance: loss, delay,
throughput
example
security
protocol layers, service models
history
Introduction 1-2
Chapter 1: roadmap
1.1 what is the Internet?
1.2 network edge
end systems, access networks, links
1.3 network core
packet switching, circuit switching, network structure
1.4 delay, loss, throughput in networks
1.5 protocol layers, service models
1.6 networks under attack: security
1.7 history
Introduction 1-3
What’s the Internet: “nuts and bolts” view
millions of connected
PC mobile network
server computing devices:
wireless hosts = end systems global ISP
laptop
smartphone running network apps
home
communication links network
regional ISP
wireless fiber, copper, radio,
links satellite
wired
links transmission rate:
bandwidth
Packetswitches: forward
router packets (chunks of data) institutional
network
routers and switches
Introduction 1-4
“Fun” internet appliances
Web-enabled toaster +
weather forecaster
IP picture frame
http://www.ceiva.com/
Tweet-a-watt:
monitor energy use
Slingbox: watch,
control cable TV remotely
Internet
refrigerator Internet phones
Introduction 1-5
What’s the Internet: “nuts and bolts” view
mobile network
Internet: “network of networks”
Interconnected ISPs
global ISP
protocols control sending,
receiving of msgs
e.g., TCP, IP, HTTP, Skype, 802.11 home
network
Internet standards regional ISP
RFC: Request for comments
IETF: Internet Engineering Task
Force
institutional
network
Introduction 1-6
What’s the Internet: a service view
mobile network
Infrastructure that provides
services to applications: global ISP
Introduction 1-7
What’s a protocol?
human protocols: network protocols:
“what’s the time?” machines rather than
“I have a question” humans
introductions all communication activity
in Internet governed by
protocols
… specific msgs sent
… specific actions taken
when msgs received, or protocols define format, order
other events
of msgs sent and received
among network entities,
and actions taken on msg
transmission, receipt
Introduction 1-8
What’s a protocol?
a human protocol and a computer network protocol:
Hi TCP connection
request
Hi TCP connection
response
Got the
time? Get http://www.awl.com/kurose-ross
2:00
<file>
time
Introduction 1-10
A closer look at network structure:
network edge: mobile network
network core:
interconnected routers
network of networks institutional
network
Introduction 1-11
Access networks and physical media
Introduction 1-12
Access net: digital subscriber line (DSL)
central office telephone
network
DSL splitter
modem DSLAM
ISP
voice, data transmitted
at different frequencies over DSL access
dedicated line to central office multiplexer
cable splitter
modem
C
O
V V V V V V N
I I I I I I D D T
D D D D D D A A R
E E E E E E T T O
O O O O O O A A L
1 2 3 4 5 6 7 8 9
Channels
to/from headend or
central office
often combined
in single box
Introduction 1-16
Enterprise access networks (Ethernet)
institutional link to
ISP (Internet)
institutional router
Introduction 1-17
Wireless access networks
shared wireless access network connects end system to router
via base station aka “access point”
to Internet
to Internet
Introduction 1-18
Host: sends packets of data
host sending function:
takes application message
breaks into smaller two packets,
chunks, known as packets, L bits each
of length L bits
transmits packet into
access network at 2 1
transmission rate R R: link transmission rate
link transmission rate, host
aka link capacity, aka
link bandwidth
Introduction 1-20
Physical media: coax, fiber
coaxial cable: fiber optic cable:
two concentric copper glass fiber carrying light
conductors pulses, each pulse a bit
bidirectional high-speed operation:
broadband: high-speed point-to-point
multiple channels on cable transmission (e.g., 10’s-100’s
Gpbs transmission rate)
HFC
low error rate:
repeaters spaced far apart
immune to electromagnetic
noise
Introduction 1-21
Physical media: radio
signal carried in radio link types:
electromagnetic spectrum terrestrial microwave
no physical “wire” e.g. up to 45 Mbps channels
bidirectional LAN (e.g., WiFi)
propagation environment 11Mbps, 54 Mbps
effects: wide-area (e.g., cellular)
reflection 3G cellular: ~ few Mbps
obstruction by objects satellite
interference Kbps to 45Mbps channel (or
multiple smaller channels)
270 msec end-end delay
geosynchronous versus low
altitude
Introduction 1-22
Chapter 1: roadmap
1.1 what is the Internet?
1.2 network edge
end systems, access networks, links
1.3 network core
packet switching, circuit switching, network structure
1.4 delay, loss, throughput in networks
1.5 protocol layers, service models
1.6 networks under attack: security
1.7 history
Introduction 1-23
The network core
mesh of interconnected
routers
packet-switching: hosts
break application-layer
messages into packets
forward packets from one
router to the next, across
links on path from source
to destination
each packet transmitted at
full link capacity
Introduction 1-24
Packet-switching: store-and-forward
L bits
per packet
3 2 1
source destination
R bps R bps
R = 100 Mb/s C
A
D
R = 1.5 Mb/s
B
queue of packets E
waiting for output link
Introduction 1-26
Two key network-core functions
routing: determines source- forwarding: move packets from
destination route taken by router’s input to appropriate
packets router output
routing algorithms
routing algorithm
frequency
time
TDM
frequency
time
Introduction 1-29
Packet switching versus circuit switching
packet switching allows more users to use network!
example:
1 Mb/s link
each user: N
users
• 100 kb/s when “active”
• active 10% of time 1 Mbps link
circuit-switching:
10 users
packet switching: Q: how did we get value 0.0004?
with 35 users, probability >
10 active at same time is less Q: what happens if > 35 users ?
than .0004 *
* Check out the online interactive exercises for more examples Introduction 1-30
Packet switching versus circuit switching
is packet switching a “slam dunk winner?”
great for bursty data
resource sharing
simpler, no call setup
excessive congestion possible: packet delay and loss
protocols needed for reliable data transfer, congestion
control
Q: How to provide circuit-like behavior?
bandwidth guarantees needed for audio/video apps
still an unsolved problem (chapter 7)
access access
net net
access
net
access
net
access
net
access
net
access access
net access net
net
Internet structure: network of networks
Option: connect each access ISP to every other access ISP?
access access
net net
access
net
access
access net
net
access
access net
net
access
net
access
net
access
net
access
net
access access
net access net
net
Internet structure: network of networks
Option: connect each access ISP to a global transit ISP? Customer
and provider ISPs have economic agreement.
access access
net net
access
net
access
access net
net
access
access net
net
global
access
net
ISP access
net
access
net
access
net
access
net
access
net
access access
net access net
net
Internet structure: network of networks
But if one global ISP is viable business, there will be competitors
….
access access
net net
access
net
access
access net
net
access
access net
net
ISP A
access access
net ISP B net
access
ISP C
net
access
net
access
net
access
net
access access
net access net
net
Internet structure: network of networks
But if one global ISP is viable business, there will be competitors
…. which must be interconnected
access access
Internet exchange point
net net
access
net
access
access net
net
access
IXP access
net
net
ISP A
access
ISP C
net
access
net
access
IXP access
net
net
ISP A
access
ISP C
net
access
net
access
net regional net
access
net
access access
net access net
net
Internet structure: network of networks
… and content provider networks (e.g., Google, Microsoft,
Akamai ) may run their own network, to bring services, content
close to end users
access access
net net
access
net
access
access net
net
access
IXP access
net
net
ISP A
Content provider network
access IXP access
net ISP B net
access
ISP B
net
access
net
access
net regional net
access
net
access access
net access net
net
Internet structure: network of networks
to/from backbone
peering
… … …
…
to/from customers
Introduction 1-41
Chapter 1: roadmap
1.1 what is the Internet?
1.2 network edge
end systems, access networks, links
1.3 network core
packet switching, circuit switching, network structure
1.4 delay, loss, throughput in networks
1.5 protocol layers, service models
1.6 networks under attack: security
1.7 history
Introduction 1-42
How do loss and delay occur?
packets queue in router buffers
packet arrival rate to link (temporarily) exceeds output link
capacity
packets queue, wait for turn
packet being transmitted (delay)
B
packets queueing (delay)
free (available) buffers: arriving packets
dropped (loss) if no free buffers
Introduction 1-43
Four sources of packet delay
transmission
A propagation
B
nodal
processing queueing
B
nodal
processing queueing
Introduction 1-47
Queueing delay (revisited)
average queueing
R: link bandwidth (bps)
delay
L: packet length (bits)
a: average packet arrival
rate
traffic intensity
= La/R
La/R ~ 0: avg. queueing delay small La/R ~ 0
* Check out the Java applet for an interactive animation on queuing and loss La/R -> 1
Introduction 1-48
“Real” Internet delays and routes
what do “real” Internet delay & loss look like?
traceroute program: provides delay
measurement from source to router along end-
end Internet path towards destination. For all i:
sends three packets that will reach router i on path
towards destination
router i will return packets to sender
sender times interval between transmission and reply.
3 probes 3 probes
3 probes
Introduction 1-49
“Real” Internet delays, routes
traceroute: gaia.cs.umass.edu to www.eurecom.fr
3 delay measurements from
gaia.cs.umass.edu to cs-gw.cs.umass.edu
1 cs-gw (128.119.240.254) 1 ms 1 ms 2 ms
2 border1-rt-fa5-1-0.gw.umass.edu (128.119.3.145) 1 ms 1 ms 2 ms
3 cht-vbns.gw.umass.edu (128.119.3.130) 6 ms 5 ms 5 ms
4 jn1-at1-0-0-19.wor.vbns.net (204.147.132.129) 16 ms 11 ms 13 ms
5 jn1-so7-0-0-0.wae.vbns.net (204.147.136.136) 21 ms 18 ms 18 ms
6 abilene-vbns.abilene.ucaid.edu (198.32.11.9) 22 ms 18 ms 22 ms
7 nycm-wash.abilene.ucaid.edu (198.32.8.46) 22 ms 22 ms 22 ms trans-oceanic
8 62.40.103.253 (62.40.103.253) 104 ms 109 ms 106 ms
9 de2-1.de1.de.geant.net (62.40.96.129) 109 ms 102 ms 104 ms link
10 de.fr1.fr.geant.net (62.40.96.50) 113 ms 121 ms 114 ms
11 renater-gw.fr1.fr.geant.net (62.40.103.54) 112 ms 114 ms 112 ms
12 nio-n2.cssi.renater.fr (193.51.206.13) 111 ms 114 ms 116 ms
13 nice.cssi.renater.fr (195.220.98.102) 123 ms 125 ms 124 ms
14 r3t2-nice.cssi.renater.fr (195.220.98.110) 126 ms 126 ms 124 ms
15 eurecom-valbonne.r3t2.ft.net (193.48.50.54) 135 ms 128 ms 133 ms
16 194.214.211.25 (194.214.211.25) 126 ms 128 ms 126 ms
17 * * *
18 * * * * means no response (probe lost, router not replying)
19 fantasia.eurecom.fr (193.55.113.142) 132 ms 128 ms 136 ms
buffer
(waiting area) packet being transmitted
A
B
packet arriving to
full buffer is lost
* Check out the Java applet for an interactive animation on queuing and loss Introduction 1-51
Throughput
throughput: rate (bits/time unit) at which bits
transferred between sender/receiver
instantaneous: rate at given point in time
average: rate over longer period of time
server,
server with bits
sends linkpipe
capacity
that can carry linkpipe
capacity
that can carry
file of into
(fluid) F bitspipe Rs bits/sec
fluid at rate Rc bits/sec
fluid at rate
to send to client Rs bits/sec) Rc bits/sec)
Introduction 1-52
Throughput (more)
Rs < Rc What is average end-end throughput?
Rs bits/sec Rc bits/sec
Rs bits/sec Rc bits/sec
bottleneck link
link on end-end path that constrains end-end throughput
Introduction 1-53
Throughput: Internet scenario
per-connection end-
end throughput: Rs
min(Rc,Rs,R/10) Rs Rs
in practice: Rc or Rs
is often bottleneck
R
Rc Rc
Rc
Introduction 1-55
Protocol “layers”
Networks are complex,
with many “pieces”:
hosts Question:
routers is there any hope of
links of various organizing structure of
media network?
applications
protocols …. or at least our
hardware, discussion of networks?
software
Introduction 1-56
Organization of air travel
ticket (purchase) ticket (complain)
a series of steps
Introduction 1-57
Layering of airline functionality
airplane routing airplane routing airplane routing airplane routing airplane routing
Introduction 1-58
Why layering?
dealing with complex systems:
explicit structure allows identification,
relationship of complex system’s pieces
layered reference model for discussion
modularization eases maintenance, updating of
system
change of implementation of layer’s service
transparent to rest of system
e.g., change in gate procedure doesn’t affect rest of
system
layering considered harmful?
Introduction 1-59
Internet protocol stack
application: supporting network
applications
FTP, SMTP, HTTP application
transport: process-process data
transfer transport
TCP, UDP
network
network: routing of datagrams
from source to destination
link
IP, routing protocols
link: data transfer between physical
neighboring network elements
Ethernet, 802.111 (WiFi), PPP
physical: bits “on the wire”
Introduction 1-60
ISO/OSI reference model
presentation: allow applications
to interpret meaning of data, application
e.g., encryption, compression,
machine-specific conventions presentation
session: synchronization, session
checkpointing, recovery of data transport
exchange
network
Internet stack “missing” these
layers! link
these services, if needed, must be physical
implemented in application
needed?
Introduction 1-61
message M
source
application
Encapsulation
segment Ht M transport
datagram Hn Ht M network
frame Hl Hn Ht M link
physical
link
physical
switch
destination Hn Ht M network
M application Hl Hn Ht M link Hn Ht M
Ht M transport physical
Hn Ht M network
Hl Hn Ht M link router
physical
Introduction 1-62
Chapter 1: roadmap
1.1 what is the Internet?
1.2 network edge
end systems, access networks, links
1.3 network core
packet switching, circuit switching, network structure
1.4 delay, loss, throughput in networks
1.5 protocol layers, service models
1.6 networks under attack: security
1.7 history
Introduction 1-63
Network security
field of network security:
how bad guys can attack computer networks
how we can defend networks against attacks
how to design architectures that are immune to
attacks
Internet not originally designed with (much)
security in mind
original vision: “a group of mutually trusting users
attached to a transparent network”
Internet protocol designers playing “catch-up”
security considerations in all layers!
Introduction 1-64
Bad guys: put malware into hosts via Internet
malware can get in host from:
virus: self-replicating infection by receiving/executing
object (e.g., e-mail attachment)
worm: self-replicating infection by passively receiving
object that gets itself executed
spyware malware can record keystrokes, web
sites visited, upload info to collection site
infected host can be enrolled in botnet, used for
spam. DDoS attacks
Introduction 1-65
Bad guys: attack server, network infrastructure
Denial of Service (DoS): attackers make resources
(server, bandwidth) unavailable to legitimate traffic
by overwhelming resource with bogus traffic
1. select target
2. break into hosts around
the network (see botnet)
3. send packets to target from
compromised hosts
target
Introduction 1-66
Bad guys can sniff packets
packet “sniffing”:
broadcast media (shared ethernet, wireless)
promiscuous network interface reads/records all packets
(e.g., including passwords!) passing by
A C
Introduction 1-68
Chapter 1: roadmap
1.1 what is the Internet?
1.2 network edge
end systems, access networks, links
1.3 network core
packet switching, circuit switching, network structure
1.4 delay, loss, throughput in networks
1.5 protocol layers, service models
1.6 networks under attack: security
1.7 history
Introduction 1-69
Internet history
1961-1972: Early packet-switching principles
1961: Kleinrock - 1972:
queueing theory shows ARPAnet public demo
effectiveness of packet- NCP (Network Control
switching Protocol) first host-host
1964: Baran - packet- protocol
switching in military nets first e-mail program
1967: ARPAnet ARPAnet has 15 nodes
conceived by Advanced
Research Projects
Agency
1969: first ARPAnet
node operational
Introduction 1-70
Internet history
1972-1980: Internetworking, new and proprietary nets
Introduction 1-71
Internet history
1980-1990: new protocols, a proliferation of networks
Introduction 1-72
Internet history
1990, 2000’s: commercialization, the Web, new apps
early 1990’s: ARPAnet late 1990’s – 2000’s:
decommissioned more killer apps: instant
1991: NSF lifts restrictions on messaging, P2P file sharing
commercial use of NSFnet network security to
(decommissioned, 1995) forefront
early 1990s: Web est. 50 million host, 100
hypertext [Bush 1945, million+ users
Nelson 1960’s] backbone links running at
HTML, HTTP: Berners-Lee Gbps
1994: Mosaic, later Netscape
late 1990’s:
commercialization of the Web
Introduction 1-73
Internet history
2005-present
~750 million hosts
Smartphones and tablets
Aggressive deployment of broadband access
Increasing ubiquity of high-speed wireless access
Emergence of online social networks:
Facebook: soon one billion users
Service providers (Google, Microsoft) create their own
networks
Bypass Internet, providing “instantaneous” access
to search, emai, etc.
E-commerce, universities, enterprises running their
services in “cloud” (eg, Amazon EC2)
Introduction 1-74
Introduction: summary
covered a “ton” of material! you now have:
Internet overview context, overview, “feel”
what’s a protocol? of networking
network edge, core, access more depth, detail to
network follow!
packet-switching versus
circuit-switching
Internet structure
performance: loss, delay,
throughput
layering, service models
security
history
Introduction 1-75
Chapter 2
Application Layer
clients:
❖ communicate with server
client/server ❖ may be intermittently
connected
❖ may have dynamic IP
addresses
❖ do not communicate directly
with each other
Application Layer 2-7
P2P architecture
❖ no always-on server peer-peer
❖ arbitrary end systems
directly communicate
❖ peers request service from
other peers, provide service
in return to other peers
▪ self scalability – new
peers bring new service
capacity, as well as new
service demands
❖ peers are intermittently
connected and change IP
addresses
▪ complex management
application application
socket controlled by
process process app developer
transport transport
network network controlled
link by OS
link Internet
physical physical
application underlying
application layer protocol transport protocol
time
6. Steps 1-5 repeated for each of
10 jpeg objects
connection RTT
~
~ entity body ~
~ body
URL method:
❖ uses GET method
❖ input is uploaded in URL
field of request line:
www.somesite.com/animalsearch?monkeys&banana
ebay 8734
usual http request msg Amazon server
cookie file creates ID
usual http response
1678 for user create backend
ebay 8734
set-cookie: 1678 entry database
amazon 1678
usual http request msg
cookie: 1678 cookie- access
specific
usual http response msg action
above lets you send email without using email client (reader)
… …
gaia.cs.umass.edu
gaia.cs.umass.edu
type=A type=CNAME
▪ name is hostname ▪ name is alias name for some
▪ value is IP address “canonical” (the real) name
type=NS ▪ www.ibm.com is really
▪ name is domain (e.g., servereast.backup2.ibm.com
foo.com) ▪ value is canonical name
▪ value is hostname of
authoritative name type=MX
server for this domain ▪ value is name of mailserver
associated with name
2 bytes 2 bytes
identification flags
time to distribute F
to N clients using Dc-s > max{NF/us,,F/dmin}
client-server approach
increases linearly in N
Application Layer 2-78
File distribution time: P2P
❖ server transmission: must
upload at least one copy F
us
▪ time to send one copy: F/us
di
❖ client: each client must network
download file copy ui
▪ min client download time: F/dmin
❖ clients: as aggregate must download NF bits
▪ max upload rate (limting max download rate) is us + ui
time to distribute F
to N clients using DP2P > max{F/us,,F/dmin,,NF/(us + ui)}
P2P approach
increases linearly in N …
… but so does this, as each peer brings service capacity
Application Layer 2-79
Client-server vs. P2P: example
client upload rate = u, F/u = 1 hour, us = 10u, dmin ≥ us
3.5
P2P
Minimum Distribution Time
3
Client-Server
2.5
1.5
0.5
0
0 5 10 15 20 25 30 35
N
Application Layer 2-80
P2P file distribution: BitTorrent
❖ file divided into 256Kb chunks
❖ peers in torrent send/receive file chunks
Alice arrives …
… obtains list
of peers from tracker
… and begins exchanging
file chunks with peers in torrent
❖ DHT paradigm
❖ Peer churn
Simple Database
Simple database with(key, value) pairs:
• key: human name; value: social security #
Key Value
John Washington 132-54-3570
Diana Louise Jones 761-55-3791
Xiaoming Liu 385-41-0902
Rakesh Gopal 441-89-1956
Linda Cohen 217-66-5609
……. ………
Lisa Kobayashi 177-23-0199
12
60
13
48
25
40
32 “overlay network”
Resolving a query
60
13
48
O(N) messages 25
on avgerage to resolve
query, when there 40
32
are N peers
Circular DHT with shortcuts
1 What is the value for
value
key 53
12
60
13
48
25
40
32
• each peer keeps track of IP addresses of predecessor,
successor, short cuts.
• reduced from 6 to 3 messages.
• possible to design shortcuts with O(log N) neighbors, O(log N)
messages in query
Peer churn handling peer churn:
1
❖peers may come and go (churn)
❖each peer knows address of its
3 two successors
15
❖each peer periodically pings its
4 two successors to check aliveness
❖if immediate successor leaves,
12
5 choose next successor as new
immediate successor
10
8
example: peer 5 abruptly leaves
Peer churn handling peer churn:
1
❖peers may come and go (churn)
❖each peer knows address of its
3 two successors
15
❖each peer periodically pings its
4 two successors to check aliveness
❖if immediate successor leaves,
12
choose next successor as new
immediate successor
10
8
example: peer 5 abruptly leaves
❖peer 4 detects peer 5’s departure; makes 8 its immediate
successor
❖ 4 asks 8 who its immediate successor is; makes 8’s
immediate successor its second successor.
Chapter 2: outline
2.1 principles of network 2.6 P2P applications
applications 2.7 socket programming
▪ app architectures with UDP and TCP
▪ app requirements
2.2 Web and HTTP
2.3 FTP
2.4 electronic mail
▪ SMTP, POP3, IMAP
2.5 DNS
application application
socket controlled by
process process app developer
transport transport
network network controlled
link by OS
link Internet
physical physical
Application Example:
1. Client reads a line of characters (data) from its
keyboard and sends the data to the server.
2. The server receives the data and converts
characters to uppercase.
3. The server sends the modified data to the client.
4. The client receives the modified data and displays
the line on its screen.
Application Layer 2-97
Socket programming with UDP
UDP: no “connection” between client & server
❖ no handshaking before sending data
❖ sender explicitly attaches IP destination address and
port # to each packet
❖ rcvr extracts sender IP address and port# from
received packet
UDP: transmitted data may be lost or received
out-of-order
Application viewpoint:
❖ UDP provides unreliable transfer of groups of bytes
(“datagrams”) between client and server
write reply to
serverSocket read datagram from
specifying clientSocket
client address,
port number close
clientSocket
Application 2-99
Example app: UDP client
Python UDPClient
include Python’s socket
library
from socket import *
serverName = ‘hostname’
serverPort = 12000
create UDP socket for clientSocket = socket(socket.AF_INET,
server
write reply to
connectionSocket read reply from
clientSocket
close
connectionSocket close
clientSocket
sentence = connectionSocket.recv(1024)
read bytes from socket (but
not address as in UDP) capitalizedSentence = sentence.upper()
close connection to this connectionSocket.send(capitalizedSentence)
client (but not welcoming
socket) connectionSocket.close()
Application Layer 2-105
Chapter 2: summary
our study of network apps now complete!
❖ application architectures ❖ specific protocols:
▪ client-server ▪ HTTP
▪ P2P ▪ FTP
❖ application service
requirements: ▪ SMTP, POP, IMAP
▪ reliability, bandwidth, delay ▪ DNS
❖ Internet transport service ▪ P2P: BitTorrent, DHT
model ❖ socket programming: TCP,
▪ connection-oriented, UDP sockets
reliable: TCP
▪ unreliable, datagrams: UDP
network
▪ delay guarantees
▪ bandwidth guarantees
application
application
application P4 P5 P6 application
P3 P2 P3
transport
transport transport
network
network link network
link physical link
physical server: IP physical
address B
length checksum
why is there a UDP?
❖ no connection
application establishment (which can
data add delay)
(payload) ❖ simple: no connection
state at sender, receiver
❖ small header size
UDP segment format ❖ no congestion control:
UDP can blast away as
fast as desired
wraparound 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
sum 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
send receive
side side
sender receiver
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
udt_send(ACK)
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
udt_send(ACK)
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
udt_send(ACK)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt)
U L/R .008
sender = = = 0.00027
RTT + L / R 30.008
U L/R .008
sender = = = 0.00027
RTT + L / R 30.008
U 3L / R .0024
sender = = = 0.00081
RTT + L / R 30.008
data
checksum urg pointer
window size
acknowledgements: N
User
types
‘C’ Seq=42, ACK=79, data = ‘C’
host ACKs
receipt of
‘C’, echoes
Seq=79, ACK=43, data = ‘C’ back ‘C’
host ACKs
receipt
of echoed
‘C’ Seq=43, ACK=80
350
300
250
RTT (milliseconds)
200
sampleRTT
150
EstimatedRTT
100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
time (seconds) Transport Layer 3-62
SampleRTT Estimated RTT
TCP round trip time, timeout
❖ timeout interval: EstimatedRTT plus “safety margin”
▪ large variation in EstimatedRTT -> larger safety margin
❖ estimate SampleRTT deviation from EstimatedRTT:
DevRTT = (1-)*DevRTT +
*|SampleRTT-EstimatedRTT|
(typically, = 0.25)
SendBase=92
Seq=92, 8 bytes of data Seq=92, 8 bytes of data
timeout
ACK=100
X
ACK=100
ACK=120
SendBase=120
ACK=100
X
ACK=120
cumulative ACK
Transport Layer 3-69
TCP ACK generation [RFC 1122, RFC 2581]
ACK=100
timeout
ACK=100
ACK=100
ACK=100
Seq=100, 20 bytes of data
IP
flow control code
receiver controls sender, so
sender won’t overflow
receiver’s buffer by transmitting from sender
too much, too fast
receiver protocol stack
application application
network network
2-way handshake:
Q: will 2-way handshake
always work in
network?
Let’s talk
ESTAB ❖ variable delays
OK
ESTAB ❖ retransmitted messages
(e.g. req_conn(x)) due to
message loss
❖ message reordering
choose x
req_conn(x)
❖ can’t “see” other side
ESTAB
acc_conn(x)
ESTAB
choose x choose x
req_conn(x) req_conn(x)
ESTAB ESTAB
retransmit acc_conn(x) retransmit acc_conn(x)
req_conn(x) req_conn(x)
ESTAB ESTAB
data(x+1) accept
req_conn(x)
retransmit data(x+1)
data(x+1)
connection connection
client x completes server x completes server
client
terminates forgets x terminates forgets x
req_conn(x)
ESTAB ESTAB
data(x+1) accept
half open connection! data(x+1)
(no client!)
Transport Layer 3-79
TCP 3-way handshake
closed
Socket connectionSocket =
welcomeSocket.accept();
Socket clientSocket =
SYN(x) newSocket("hostname","port
number");
SYNACK(seq=y,ACKnum=x+1)
create new socket for SYN(seq=x)
communication back to client listen
SYN SYN
rcvd sent
SYNACK(seq=y,ACKnum=x+1)
ESTAB ACK(ACKnum=y+1)
ACK(ACKnum=y+1)
LAST_ACK
FINbit=1, seq=y
TIMED_WAIT can no longer
send data
ACKbit=1; ACKnum=y+1
timed wait
for 2*max CLOSED
segment lifetime
CLOSED
R/2
delay
out
Host A
out
❖ sender sends only when
router buffers available
in R/2
A
no buffer space!
Host B
Transport Layer 3-89
Causes/costs of congestion: scenario 2
Idealization: known loss R/2
packets can be lost,
dropped at router due when sending at R/2,
some packets are
out
to full buffers retransmissions but
A
free buffer space!
Host B
Transport Layer 3-90
Causes/costs of congestion: scenario 2
Realistic: duplicates R/2
❖ packets can be lost, dropped
at router due to full buffers when sending at R/2,
some packets are
out
❖ sender times out prematurely, retransmissions
in
timeout
copy 'in out
A
free buffer space!
Host B
Transport Layer 3-91
Causes/costs of congestion: scenario 2
Realistic: duplicates R/2
❖ packets can be lost, dropped
at router due to full buffers when sending at R/2,
some packets are
out
❖ sender times out prematurely, retransmissions
“costs” of congestion:
❖ more work (retrans) for given “goodput”
❖ unneeded retransmissions: link carries multiple copies of pkt
▪ decreasing goodput
Host D
Host C
C/2
out
in’ C/2
time
Transport Layer 3-99
TCP Congestion Control: details
sender sequence number space
cwnd TCP sending rate:
❖ roughly: send cwnd
bytes, wait RTT for
last byte last byte
ACKS, then send
ACKed sent, not-
yet ACKed
sent more bytes
(“in-
flight”) cwnd
❖ sender limits transmission: rate ~
~
RTT
bytes/sec
RTT
▪ initially cwnd = 1 MSS
▪ double cwnd every RTT
▪ done by incrementing
cwnd for every ACK
received
❖ summary: initial rate is
slow but ramps up
exponentially fast time
Implementation:
❖ variable ssthresh
❖ on loss event, ssthresh
is set to 1/2 of cwnd just
before loss event
W/2
TCP connection 1
bottleneck
router
capacity R
TCP connection 2
Connection 1 throughput R
Transport Layer 3-108
Fairness (more)
Fairness and UDP Fairness, parallel TCP
❖ multimedia apps often connections
do not use TCP ❖ application can open
▪ do not want rate multiple parallel
throttled by congestion connections between two
control
hosts
❖ instead use UDP:
❖ web browsers do this
▪ send audio/video at
constant rate, tolerate ❖ e.g., link of rate R with 9
packet loss existing connections:
▪ new app asks for 1 TCP, gets rate
R/10
▪ new app asks for 11 TCPs, gets R/2
segments to transport
physical physical
network
data link
layer network
physical
application
transport
❖ network layer protocols network
data link
physical
network
data link
network
data link
value in arriving
packet’s header
0111 1
3 2
❖ call setup, teardown for each call before data can flow
❖ each packet carries VC identifier (not destination host
address)
❖ every router on source-dest path maintains “state” for
each passing connection
❖ link, router resources (bandwidth, buffers) may be
allocated to VC (dedicated resources = predictable
service)
Network Layer 4-12
VC implementation
a VC consists of:
1. path from source to destination
2. VC numbers, one number for each link along path
3. entries in forwarding tables in routers along path
❖ packet belonging to VC carries VC number
(rather than dest address)
❖ VC number can be changed on each link.
▪ new VC number comes from forwarding table
1 3
2
VC number
interface
forwarding table in number
northwest router:
Incoming interface Incoming VC # Outgoing interface Outgoing VC #
1 12 3 22
2 63 1 18
3 7 2 17
1 97 3 87
… … … …
application application
transport 5. data flow begins 6. receive data
transport
network 4. call connected 3. accept call network
data link 1. initiate call 2. incoming call data link
physical physical
application application
transport transport
network 1. send datagrams
2. receive datagrams network
data link data link
physical physical
IP destination address in
arriving packet’s header
1
3 2
otherwise 3
examples:
DA: 11001000 00010111 00010110 10100001 which interface?
DA: 11001000 00010111 00011000 10101010 which interface?
Network Layer 4-19
Datagram or VC network: why?
Internet (datagram) ATM (VC)
❖ data exchange among ❖ evolved from telephony
computers ❖ human conversation:
▪ “elastic” service, no strict ▪ strict timing, reliability
timing req. requirements
▪ need for guaranteed service
❖ many link types ❖ “dumb” end systems
▪ different characteristics ▪ telephones
▪ uniform service difficult ▪ complexity inside
❖ “smart” end systems network
(computers)
▪ can adapt, perform control,
error recovery
▪ simple inside network,
complexity at “edge”
forwarding data
plane (hardware)
high-seed
switching
fabric
physical layer:
bit-level reception
data link layer: decentralized switching:
e.g., Ethernet ❖ given datagram dest., lookup output port
see chapter 5 using forwarding table in input port
memory
❖ goal: complete input port processing at
‘line speed’
❖ queuing: if datagrams arrive faster than
forwarding rate into switch fabric
Network Layer 4-23
Switching fabrics
❖ transfer packet from input buffer to appropriate
output buffer
❖ switching rate: rate at which packets can be
transferred from inputs to outputs
▪ often measured as multiple of input/output line rate
▪ N inputs: switching rate N times line rate desirable
❖ three types of switching fabrics
memory
input output
port memory port
(e.g., (e.g.,
Ethernet) Ethernet)
system bus
multiprocessor B
datagram
switch buffer link
fabric layer line
protocol termination
(send)
queueing
switch
switch
fabric
fabric
switch switch
fabric fabric
physical layer
…
in: one large datagram
▪ different link types, out: 3 smaller datagrams
different MTUs
❖ large IP datagram divided
(“fragmented”) within net reassembly
▪ one datagram becomes
several datagrams
▪ “reassembled” only at …
final destination
▪ IP header bits used to
identify, order related
fragments
Network Layer 4-35
IP fragmentation, reassembly
length ID fragflag offset
example: =4000 =x =0 =0
❖ 4000 byte datagram
one large datagram becomes
❖ MTU = 1500 bytes several smaller datagrams
interface 223.1.1.2
223.1.1.4 223.1.2.9
❖ interface: connection
between host/router and 223.1.3.27
physical link 223.1.1.3
223.1.2.2
▪ routers typically have
multiple interfaces
▪ host typically has one
active interface (e.g., wired 223.1.3.1 223.1.3.2
223 1 1 1
in chapter 5, 6.
223.1.3.27
223.1.1.3
223.1.2.2
is called a subnet
223.1.3.0/24
223.1.1.3
223.1.9.2 223.1.7.0
223.1.9.1 223.1.7.1
223.1.8.1 223.1.8.0
223.1.2.6 223.1.3.27
subnet host
part part
11001000 00010111 00010000 00000000
200.23.16.0/23
Organization 0
200.23.16.0/23
Organization 1
“Send me anything
200.23.18.0/23 with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Send me anything
ISPs-R-Us
with addresses
beginning
199.31.0.0/16”
Organization 0
200.23.16.0/23
“Send me anything
with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Send me anything
ISPs-R-Us
with addresses
Organization 1 beginning 199.31.0.0/16
or 200.23.18.0/23”
200.23.18.0/23
DHCP
223.1.1.0/24
server
223.1.1.1 223.1.2.1
223.1.2.0/24
223.1.3.1 223.1.3.2
223.1.3.0/24
DHCP offer
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 654
lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
yiaddrr: 223.1.2.4
transaction ID: 655
lifetime: 3600 secs
DHCP ACK
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 655
lifetime: 3600 secs
DHCP Eth
Phy DNS server: use DHCP
DHCP request encapsulated
DHCP
❖
in UDP, encapsulated in IP,
DHCP DHCP 168.1.1.1 encapsulated in 802.3
DHCP UDP Ethernet
IP
Ethernet frame broadcast
DHCP
❖
DHCP Eth router with DHCP
Phy server built into (dest: FFFFFFFFFFFF) on LAN,
router received at router running
DHCP server
❖ Ethernet demuxed to IP
demuxed, UDP demuxed to
DHCP
10.0.0.4
10.0.0.2
138.76.29.7
10.0.0.3
2. connection to
relay initiated 1. connection to 10.0.0.1
by client relay initiated
by NATed host
3. relaying
client established
138.76.29.7 NAT
router
3 probes 3 probes
3 probes
Network Layer 4-66
IPv6: motivation
❖ initial motivation: 32-bit address space soon to be
completely allocated.
❖ additional motivation:
▪ header format helps speed processing/forwarding
▪ header changes to facilitate QoS
data
32 bits
Network Layer 4-68
Other changes from IPv4
❖ checksum: removed entirely to reduce processing
time at each hop
❖ options: allowed, but outside of header, indicated
by “Next Header” field
❖ ICMPv6: new version of ICMP
▪ additional message types, e.g. “Packet Too Big”
▪ multicast group management functions
IPv6 datagram
IPv4 datagram
Network Layer 4-70
Tunneling
A B IPv4 tunnel E F
connecting IPv6 routers
logical view:
IPv6 IPv6 IPv6 IPv6
A B C D E F
physical view:
IPv6 IPv6 IPv4 IPv4 IPv6 IPv6
A B C D E F
physical view:
IPv6 IPv6 IPv4 IPv4 IPv6 IPv6
data data
A-to-B: E-to-F:
IPv6 B-to-C: B-to-C: IPv6
IPv6 inside IPv6 inside
IPv4 IPv4 Network Layer 4-72
Chapter 4: outline
4.1 introduction 4.5 routing algorithms
4.2 virtual circuit and ▪ link state
datagram networks ▪ distance vector
4.3 what’s inside a router ▪ hierarchical routing
4.4 IP: Internet Protocol 4.6 routing in the Internet
▪ datagram format ▪ RIP
▪ IPv4 addressing ▪ OSPF
▪ ICMP ▪ BGP
▪ IPv6 4.7 broadcast and multicast
routing
IP destination address in
arriving packet’s header
1
3 2
v 3 w
2 5
u 2 z
1
3
1
x y 2
graph: G = (N,E) 1
N = set of routers = { u, v, w, x, y, z }
E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
x resulting forwarding
9
table in u:
5 7
4 destination link
8 v (u,w)
u 3 w y z x (u,x)
2 y (u,w)
3 w (u,w)
7 4
z (u,w)
v
1
A 1+e A A A
2+e 0 0 2+e 2+e 0
D 0 0 B D 1+e 1 B D B D 1+e 1 B
0 0
0 e 0 0
C 0 1 1+e 0
C C C
1 1
e given these costs, given these costs, given these costs,
initially find new routing…. find new routing…. find new routing….
resulting in new costs resulting in new costs resulting in new costs
Network Layer 4-83
Chapter 4: outline
4.1 introduction 4.5 routing algorithms
4.2 virtual circuit and ▪ link state
datagram networks ▪ distance vector
4.3 what’s inside a router ▪ hierarchical routing
4.4 IP: Internet Protocol 4.6 routing in the Internet
▪ datagram format ▪ RIP
▪ IPv4 addressing ▪ OSPF
▪ ICMP ▪ BGP
▪ IPv6 4.7 broadcast and multicast
routing
let
dx(y) := cost of least-cost path from x to y
then
dx(y) = min
v
{c(x,v) + dv (y) }
from
from
y ∞∞ ∞ y 2 0 1
z ∞∞ ∞ z 7 1 0
node y cost to
table x y z y
2 1
x ∞ ∞ ∞
x z
from
y 2 0 1 7
z ∞∞ ∞
node z cost to
table x y z
x ∞∞ ∞
from
y ∞∞ ∞
z 7 1 0
time
Network Layer 4-90
Dx(z) = min{c(x,y) +
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
node x cost to cost to cost to
table x y z x y z x y z
x 0 2 7 x 0 2 3 x 0 2 3
from
from
y ∞∞ ∞ y 2 0 1
from
y 2 0 1
z ∞∞ ∞ z 7 1 0 z 3 1 0
node y cost to cost to cost to
table x y z x y z x y z y
2 1
x ∞ ∞ ∞ x 0 2 7 x 0 2 3 x z
from
from
y 2 0 1 y 2 0 1
from
y 2 0 1 7
z ∞∞ ∞ z 7 1 0 z 3 1 0
x ∞∞ ∞ x 0 2 7 x 0 2 3
from
from
y 2 0 1 y 2 0 1
from
y ∞∞ ∞
z 7 1 0 z 3 1 0 z 3 1 0
time
Network Layer 4-91
Distance vector: link cost changes
link cost changes:
1
❖ node detects local link cost change y
4 1
❖ updates routing info, recalculates x z
distance vector 50
❖ if DV changes, notify neighbors
t2 : y receives z’s update, updates its distance table. y’s least costs
do not change, so y does not send a message to z.
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b AS1
1d ❖ forwarding table
configured by both intra-
and inter-AS routing
Intra-AS Inter-AS algorithm
Routing Routing
algorithm algorithm ▪ intra-AS sets entries
Forwarding
for internal dests
table ▪ inter-AS & intra-AS
sets entries for
external dests
Network Layer 4-98
Inter-AS tasks
❖ suppose router in AS1 AS1 must:
receives datagram 1. learn which dests are
destined outside of AS1: reachable through AS2,
▪ router should forward which through AS3
packet to gateway 2. propagate this
router, but which one? reachability info to all
routers in AS1
job of inter-AS routing!
3c
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
3c
x
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
3c
x
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
?
Network Layer 4-101
Example: choosing among multiple ASes
❖ now suppose AS1 learns from inter-AS protocol that subnet
x is reachable from AS3 and from AS2.
❖ to configure forwarding table, router 1d must determine
towards which gateway it should forward packets for dest x
▪ this is also job of inter-AS routing protocol!
❖ hot potato routing: send packet towards closest of two
routers.
z
w x y
A D B
C
routing table in router D
destination subnet next router # hops to dest
w A 2
y B 2
z B 7
x -- 1
…. …. ....
Network Layer 4-106
RIP: example
A-to-D advertisement
dest next hops
w - 1
x - 1
z C 4
…. … ... z
w x y
A D B
C
routing table in router D
destination subnet next router # hops to dest
w A 2
y B 2
A 5
z B 7
x -- 1
…. …. ....
Network Layer 4-107
RIP: link failure, recovery
if no advertisement heard after 180 sec -->
neighbor/link declared dead
▪ routes via neighbor invalidated
▪ new advertisements sent to neighbors
▪ neighbors in turn send out new advertisements (if tables
changed)
▪ link failure info quickly (?) propagates to entire net
▪ poison reverse used to prevent ping-pong loops (infinite
distance = 16 hops)
transport transprt
(UDP) (UDP)
network forwarding forwarding network
(IP) table table (IP)
link link
physical physical
backbone
area
border
routers
area 3
internal
routers
area 1
area 2
3c
BGP
3a message
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
eBGP session
3a iBGP session
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
routing algorithms
Assume prefix is
local forwarding table in another AS.
entry prefix output port
138.16.64/22 3
124.12/16 2
212/8 4
………….. …
Dest IP
1
3 2
How does entry get in forwarding table?
High-level overview
1. Router becomes aware of prefix
2. Router determines output port for prefix
3. Router enters prefix-port in forwarding table
Router becomes aware of prefix
3c
BGP
3a message
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
3c
BGP
3a message
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
❖ Example: select
3c
3a 111.99.86.55
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
Router identifies port for route
3c router
3a port
3b
AS3 1 2c other
1c 4 2a networks
2 3
other 1a 2b
networks 1b AS2
AS1 1d
Hot Potato Routing
❖ Suppose there two or more best inter-routes.
❖ Then choose route with closest NEXT-HOP
▪ Use OSPF to determine which gateway is closest
▪ Q: From 1c, chose AS3 AS131 or AS2 AS17?
▪ A: route AS3 AS201 since it is closer
3c
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
How does entry get in forwarding table?
Summary
1. Router becomes aware of prefix
▪ via BGP route advertisements from other routers
2. Determine router output port for prefix
▪ Use BGP route selection to find best inter-AS route
▪ Use OSPF to find best intra-AS route leading to best
inter-AS route
▪ Router identifies router port for that best route
3. Enter prefix-port entry in forwarding table
BGP routing policy
legend: provider
B network
X
W A
customer
C network:
❖ A advertises path AW to B
❖ B advertises path BAW to X
❖ Should B advertise path BAW to C?
▪ No way! B gets no “revenue” for routing CBAW since neither W nor
C are B’s customers
▪ B wants to force C to route to w via A
▪ B wants to route only to/from its customers!
R3 R4 R3 R4
source in-network
duplication duplication
A A
B B
c c
D D
F E F E
G G
(a) broadcast initiated at A (b) broadcast initiated at D
A A
3
B B
c c
4
2
D D
F E F E
1 5
G G
(a) stepwise construction of (b) constructed spanning
spanning tree (center: E) tree
Network Layer 4-137
Multicast routing: problem statement
goal: find a tree (or trees) connecting routers having
local mcast group members legend
❖ tree: not all paths between routers used group
❖ shared-tree: same tree used by all group members member
not group
❖ source-based: different tree from each sender to rcvrs member
router
with a
group
member
router
without
group
member
s: source LEGEND
R1 2 router with attached
1 R4
group member
R2 5 router with no attached
3 4 group member
R5
i link used for forwarding,
R3 6
i indicates order link
R6 R7 added by algorithm
LEGEND
dense: sparse:
❖ group members densely ❖ # networks with group
packed, in “close” members small wrt #
proximity. interconnected networks
❖ bandwidth more plentiful ❖ group members “widely
dispersed”
❖ bandwidth not plentiful
source R6
❖ RP can send stop msg all data multicast R7
rendezvous
if no attached from rendezvous
point
point
receivers
▪ “no one is listening!”
❖ combination of hardware,
software, firmware network adapter
card
datagram datagram
controller controller
frame
otherwise
0 0
sender: receiver:
❖ treat segment contents ❖ compute checksum of
as sequence of 16-bit received segment
integers ❖ check if computed
❖ checksum: addition (1’s checksum equals checksum
complement sum) of field value:
segment contents ▪ NO - error detected
❖ sender puts checksum ▪ YES - no error detected.
value into UDP But maybe errors
checksum field nonetheless?
6-slot 6-slot
frame frame
1 3 4 1 3 4
frequency bands
FDM cable
node 2 2 2 2
node 3 3 3 3
C E C S E C E S S
Pros: Cons:
❖ single active node can ❖ collisions, wasting slots
continuously transmit at ❖ idle slots
full rate of channel
❖ nodes may be able to
❖ highly decentralized: only detect collision in less
slots in nodes need to be
in sync than time to transmit
packet
❖ simple
❖ clock synchronization
Link Layer 5-25
Slotted ALOHA: efficiency
!
❖ prob that given node has at best: channel
success in a slot = p(1- used for useful
p)N-1 transmissions 37%
❖ prob that any node has a of time!
success = Np(1-p)N-1
Link Layer 5-26
Pure (unslotted) ALOHA
❖ unslotted Aloha: simpler, no synchronization
❖ when frame first arrives
▪ transmit immediately
❖ collision probability increases:
▪ frame sent at t0 collides with other frames sent in [t0-
1,t0+1]
= p . (1-p)N-1 . (1-p)N-1
= p . (1-p)2(N-1)
… choosing optimum p and then letting n
= 1/(2e) = .18
1
efficiency =
1 + 5t prop /t trans
❖ efficiency goes to 1
▪ as tprop goes to 0
▪ as ttrans goes to infinity
❖ better performance than ALOHA: and simple, cheap,
decentralized!
data
Link Layer 5-37
Cable access network
Internet frames,TV channels, control transmitted
downstream at different frequencies
cable headend
CMTS
…
cable
cable modem … splitter
modem
termination system
Downstream channel i
CMTS
Upstream channel j
1A-2F-BB-76-09-AD
LAN
(wired or adapter
wireless)
71-65-F7-2B-08-53
58-23-D7-FA-20-B0
0C-C4-11-6F-E3-98
min)
0C-C4-11-6F-E3-98
137.196.7.88
A B
R
111.111.111.111
222.222.222.222
74-29-9C-E8-FF-55
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B
IP
Eth
Phy
A B
R
111.111.111.111
222.222.222.222
74-29-9C-E8-FF-55
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B
IP IP
Eth Eth
Phy Phy
A B
R
111.111.111.111
222.222.222.222
74-29-9C-E8-FF-55
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B
A B
R
111.111.111.111
222.222.222.222
74-29-9C-E8-FF-55
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B
A B
R
111.111.111.111
222.222.222.222
74-29-9C-E8-FF-55
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B
IP
Eth
Phy
A B
R
111.111.111.111
222.222.222.222
74-29-9C-E8-FF-55
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B
switch
star
bus: coaxial cable
Link Layer 5-55
Ethernet frame structure
sending adapter encapsulates IP datagram (or other
network layer protocol packet) in Ethernet frame
type
dest. source data
preamble address address (payload) CRC
preamble:
❖ 7 bytes with pattern 10101010 followed by one
byte with pattern 10101011
❖ used to synchronize receiver, sender clock rates
MAC protocol
application and frame format
transport
network 100BASE-TX 100BASE-T2 100BASE-FX
link 100BASE-T4 100BASE-SX 100BASE-BX
physical
A A A’
❖ switch learns which hosts
can be reached through B
which interfaces C’
A A A’
❖ frame destination, A’,
locaton unknown: flood C’ B
❖ destination A location 6 1 2
A’
S1
S3
A S2
F
D I
B C
G H
E
S4
S1
S3
A S2
F
D I
B C
G H
E
IP subnet
switch(es) supporting
VLAN capabilities can … …
be configured to Electrical Engineering Computer Science
(VLAN ports 9-15)
define multiple virtual (VLAN ports 1-8)
… …
2 8 10 16
… …
type
dest. source
preamble
address address
data (payload) CRC 802.1Q frame
PPP or Ethernet
MPLS header IP header remainder of link-layer frame
header
20 3 1 5
Link Layer 5-77
MPLS capable routers
❖ a.k.a. label-switched router
❖ forward packets to outgoing interface based only on
label value (don’t inspect IP address)
▪ MPLS forwarding table distinct from IP forwarding tables
❖ flexibility: MPLS forwarding decisions can differ from
those of IP
▪ use destination and source addresses to route flows to
same destination differently (traffic engineering)
▪ re-route flows quickly if link fails: pre-computed backup
paths (useful for VoIP)
R6
D
R4 R3
R5
A
R2
RSVP-TE
R6
D
R4
R5 modified
link state A
flooding
8 A 1 10 6 A 1
12 9 D 0
R6
0 0
D
1 1
R4 R3
R5
0 0
A
R2 in outR1 out
label label dest interface
in out out
label label dest interface 6 - A 0
8 6 A 0
Link Layer 5-82
Link layer, LANs: outline
5.1 introduction, services 5.5 link virtualization:
5.2 error detection, MPLS
correction 5.6 data center
5.3 multiple access networking
protocols 5.7 a day in the life of a
5.4 LANs web request
▪ addressing, ARP
▪ Ethernet
▪ switches
▪ VLANS
Border router
Load Load
balancer Access router
balancer
Tier-1 switches
B
A C Tier-2 switches
TOR switches
Server racks
1 2 3 4 5 6 7 8
Link Layer 5-85
Data center networks
❖ rich interconnection among switches, racks:
▪ increased throughput between racks (multiple routing
paths possible)
▪ increased reliability via redundancy
Tier-1 switches
Tier-2 switches
TOR switches
Server racks
1 2 3 4 5 6 7 8
Link layer, LANs: outline
5.1 introduction, services 5.5 link virtualization:
5.2 error detection, MPLS
correction 5.6 data center
5.3 multiple access networking
protocols 5.7 a day in the life of a
5.4 LANs web request
▪ addressing, ARP
▪ Ethernet
▪ switches
▪ VLANS
school network
68.80.2.0/24
web page
DHCP Eth
Phy DNS server: use DHCP
DHCP
router
❖ IP datagram forwarded from
(runs DHCP) campus network into comcast
❖ IP datagram containing DNS network, routed (tables created
query forwarded via LAN by RIP, OSPF, IS-IS and/or BGP
switch from client to 1st hop routing protocols) to DNS server
router ❖ demux’ed to DNS server
❖ DNS server replies to client
with IP address of
www.google.com Link Layer 5-93
A day in the life…TCP connection carrying HTTP
HTTP
HTTP
SYNACK
SYN TCP
SYNACK
SYN IP
SYNACK
SYN Eth
Phy