E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
1
EE 586 Communication andSwitching Networks
Lecture 7
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
2-2
Chapter 2: outline
Syllabus for this chapter
2.1 Principles
2.2 Web and HTTP
2.5 DNS
2.6 P2P applications
Socket Programming
underline_base
(modified by Cheung for EE586; based on K&R original)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
3
DNS: Domain Name System
Implementations
distributed databaseimplemented in hierarchy ofmany name servers
application-layer protocol host,routers, name servers tocommunicate to resolvenames (address/nametranslation)
complexity at network’s“edge”
(modified by Cheung for EE586; based on K&R original)
DNS services
Domain Name System
Human-understandablehostname  IP address
Host aliasing
mail server aliasing
load distribution
Name assignmentmanaged by InternetCorporation forAssigned Names andNumbers (ICANN)
underline_base
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-4
DNS records
DNS: distributed db storing resource records (RR)
type=NS
name is domain (e.g.,foo.com)
value is hostname ofauthoritative nameserver for this domain(e.g., dns.foo.com)
RR format: (name, value, type, ttl)
type=A
name is hostname
value is IP address
type=CNAME
name is alias name for somecanonical (the real) name
www.ibm.com is reallyservereast.backup2.ibm.com
value is canonical name
type=MX
value is name of mailserverassociated with name
underline_base
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-5
underline_base
Inserting records into DNS
Say you form a new startup Network Utopia andwant a domain name networkutopia.com
Set up an authoritative name server(dns.networkutopia.com) to map IP addresses to
Your web server (www.networkutopia.com)
Your mail server (mail.networkutopia.com) ….
Register name networkuptopia.com at a DNS registrar
(networkutopia.com, dns1.networkutopia.com, NS)
(dns1.networkutopia.com, 212.212.212.1, A)
Where should we put these two RR records?
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-6
Root DNS Servers
com DNS servers
org DNS servers
edu DNS servers
poly.edu
DNS servers
umass.edu
DNS servers
yahoo.com
DNS servers
netutopia.com
DNS servers
pbs.org
DNS servers
DNS: a distributed, hierarchical database
client wants IP for www.netutopia.com; 1st approx:
client queries root server to find com DNS server
client queries .com DNS server to get netutopia.com DNS server
client queries dns.netutopia.com DNS server to get  IP address forwww.netutopia.com
underline_base
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-7
DNS: root name servers
contacted by local name server that can not resolve name
root name server:
contacts TLD/authoritative name server if name mapping notknown
gets mapping
returns mapping to local name server
    13 root nameserversworldwide
worldf
a. Verisign, Los Angeles CA
    (5 other sites)
b. USC-ISI Marina del Rey, CA
l. ICANN Los Angeles, CA
   (41 other sites)
e. NASA Mt View, CA
f. Internet Software C.
Palo Alto, CA (and 48 othersites)
i. Netnod, Stockholm (37 other sites)
k. RIPE London (17 other sites)
m. WIDE Tokyo
(5 other sites)
c. Cogent, Herndon, VA (5 other sites)
d. U Maryland College Park, MD
h. ARL Aberdeen, MD
j. Verisign, Dulles VA (69 other sites )
underline_base
g. US DoD Columbus,OH (5 other sites)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-8
TLD, authoritative servers
top-level domain (TLD) servers:
responsible for com, org, net, edu, aero, jobs, museums,and all top-level country domains, e.g.: uk, fr, ca, jp
Network Solutions maintains servers for .com TLD
Educause for .edu TLD
authoritative DNS servers:
organizations own DNS server(s), providingauthoritative hostname to IP mappings for organizationsnamed hosts
can be maintained by organization or service provider
underline_base
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-9
Local DNS name server
does not strictly belong to hierarchy
each ISP (residential ISP, company, university) hasone
also called default name server
when host makes DNS query, query is sent to itslocal DNS server
has local cache of recent name-to-address translationpairs (but may be out of date!)
acts as proxy, forwards query into hierarchy
underline_base
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-10
underline_base
DNS: caching, updating records
once (any) name server learns mapping, it cachesmapping
cache entries timeout (disappear) after some time (TTL)
TLD servers typically cached in local name servers
thus root name servers not often visited
cached entries may be out-of-date (best effortname-to-address translation!)
if name host changes IP address, may not be knownInternet-wide until all TTLs expire
update/notify mechanisms proposed IETF standard
RFC 2136
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-11
underline_base
requesting host
cis.poly.edu
gaia.cs.umass.edu
root DNS server
local DNS server
dns.poly.edu
1
2
3
4
5
6
authoritative DNS server
dns.cs.umass.edu
7
8
TLD DNS server
DNS nameresolution example
host at cis.poly.eduwants IP address forgaia.cs.umass.edu
iterated query:
contacted serverreplies with name ofserver to contact
I dont know thisname, but ask thisserver
desktop_computer_stylized_medium
desktop_computer_stylized_medium
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-12
4
5
6
3
recursive query:
puts burden of nameresolution oncontacted nameserver
heavy load at upperlevels of hierarchy?
requesting host
cis.poly.edu
gaia.cs.umass.edu
root DNS server
local DNS server
dns.poly.edu
1
2
7
authoritative DNS server
dns.cs.umass.edu
8
underline_base
DNS nameresolution example
TLD DNS
server
desktop_computer_stylized_medium
desktop_computer_stylized_medium
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
access_point_stylized_small
antenna_radiation_stylized
cell_tower_radiation_gray
access_point_stylized_gray_small
access_point_stylized_gray_small
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
car_icon_small
iphone_stylized_small
antenna_radiation_stylized
antenna_stylized
laptop_keyboard
screen
antenna_stylized
laptop_keyboard
screen
antenna_stylized
laptop_keyboard
screen
desktop_computer_stylized_medium
antenna_stylized
laptop_keyboard
screen
Pure P2P architecture
no always-on server
peers are intermittently connectedand change IP addresses
examples:
file distribution (BitTorrent)
VoIP (Skype)
Key question:
Why are their services free?
Answer:
Every new customer increases thecapacity of the system – selfscalability
underline_base
(modified by Cheung for EE586; based on K&R original)
13
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
File distribution: client-server vs P2P
Question: how much time to distribute file (size F) fromone server to N  peers?
peer upload/download capacity is limited resource
us
uN
dN
server
network (with abundant
 bandwidth)
file, size F
us: server uploadcapacity
ui: peer i uploadcapacity
di: peer i downloadcapacity
underline_base
u2
d2
u1
d1
di
ui
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
(modified by Cheung for EE586; based on K&R original)
14
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
File distribution time dcs : client-server
us
u2
d1
d2
u1
dN
uN
Server
Network (with
abundant bandwidth)
F
All the N copies must comefrom the server:
dcs NF/us
Client i takes F/dtime todownload
dcs F/min(di= F/dmin
 
We must have
dcs  max { NF/us, F/dmin }
underline_base
(modified by Cheung for EE586; based on K&R original)
15
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
max { NF/us, F/min(di) } achievable. How?
Case 1: NF/us < F/dmin or us > Ndmin  “Fast Server”
Server uploads to each client
    simultaneously at rate dmin
Time required = F/dmin
Lower bound achieved
Case 2: NF/us > F/dmin or dmin > us/N  “Fast Client”
Server uploads to each client
    simultaneously at rate us/N
Time required = NF/us
Lower bound achieved
For large-scale downloading , the time is
dominated by NF/us which grows linearly with N.
underline_base
(modified by Cheung for EE586; based on K&R original)
16
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
File distribution time dP2P for P2P
us
u2
d1
d2
u1
dN
uN
Originating Peer
Network (with
abundant bandwidth)
F
Originating peer must uploadat least one copy:
dP2P  F/us
client i takes F/dtime todownload
dP2P  F/dmin
NF bits must be uploaded
Aggregate upload rate: us + ui
dP2P  NF(us + ui)
dP2P  max { F/us, F/dmin, NF/(us + ui) }
Assume asymmetry (DSL/Cable):  dmin is big
Can dP2P =max {F/usNF/(us + ui) } ?
Both the size AND the downloadspeed increase with N! Scalablesolution!
underline_base
(modified by Cheung for EE586; based on K&R original)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Client-server vs. P2P: example
(modified by Cheung for EE586; based on K&R original)
client upload rate = u,  F/u = 1 hour,  us = 10u,  dmin ≥ us
underline_base
18
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
(modified by Cheung for EE586; based on K&R original)
max {F/usNF/(us + ui) } achievable. How?
underline_base
Time needed:
Notice that all the N piecesare streamed to each peersimultaneously!
Time needed = F/us
Case 1: F/u> NF/(us + ui)
 us<(us + ui)/N or
 (N-1)usui      “Fast Client”
Originating Peer to others
Partition the file into N pieces
Send the j-th piece to peer j at therate of  usuj/iui
Total upload from the originatingpeer = j(usuj/iu)= us (Checked)
Between peers
Peer j uploads its share to all N-1peers simultaneously at usuj/iui
Total upload from peer 1
=  (N-1)usu1/iu< u (Checked)
19
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
(modified by Cheung for EE586; based on K&R original)
max {F/usNF/(us + ui) } achievable. How?
underline_base
Case 2: F/u< NF/(us + ui) us>(us + ui)/N  us>ui/(N-1) “Fast Server”
Originating Peer to others
Partition the file into N+1 pieces
Send the j-th piece to peer j at the rate of  uj/(N-1) and the last piecesimultaneously to all peers at speed (us - juj/(N-1))/N > 0 each.
Total upload from the originating peer
 = juj/(N-1)  + N(us - juj/(N-1))/N = us (Checked)
Between peers
Peer j uploads its share to all N-1 peers simultaneously at uj/(N-1)
Total upload from peer j =  (N-1)uj/(N-1)= u (Checked)
Time needed: (calculated for peer 1, but same for others)
Download speed from originating peer = u1/(N-1)+(us-ui/(N-1))/N
Download speed from others =u2/(N-1)+…+ uN/(N-1)
Total download speed = (us+uj)/N  Time needed = NF/(us+uj)
20
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
P2P file distribution: BitTorrent
tracker: tracks peers
participating in torrent
torrent: group of peersexchanging  chunks of a file
file divided into 256Kb chunks
peers in torrent send/receive file chunks
underline_base
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
(modified by Cheung for EE586; based on K&R original)
21
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
P2P file distribution: BitTorrent
tracker: tracks peers
participating in torrent
torrent: group of peersexchanging  chunks of a file
Alice arrives  …
Alice
file divided into 256Kb chunks
peers in torrent send/receive file chunks
underline_base
… obtains list
of peers from tracker
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
(modified by Cheung for EE586; based on K&R original)
22
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
P2P file distribution: BitTorrent
tracker: tracks peers
participating in torrent
torrent: group of peersexchanging  chunks of a file
Alice arrives  …
Alice
file divided into 256Kb chunks
peers in torrent send/receive file chunks
underline_base
… obtains list
of peers from tracker
… and begins exchanging
file chunks with peers in torrent
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
(modified by Cheung for EE586; based on K&R original)
23
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Requesting, sending file chunks
requesting chunks:
at any given time, differentpeers have different subsetsof file chunks
Alice requests missingchunks from peers, rarestfirst – ensure rapiddissemination of every partof the file
underline_base
(modified by Cheung for EE586; based on K&R original)
24
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Requesting, sending file chunks
requesting chunks:
at any given time, differentpeers have different subsetsof file chunks
Alice requests missingchunks from peers, rarestfirst – ensure rapiddissemination of every partof the file
sending chunks: promote altruism
tit-for-tat = Fast upload leads to fastdownload
underline_base
(modified by Cheung for EE586; based on K&R original)
25
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Requesting, sending file chunks
requesting chunks:
at any given time, differentpeers have different subsetsof file chunks
Alice requests missingchunks from peers, rarestfirst – ensure rapidpopulation of every part ofthe file
sending chunks: promote altruism
tit-for-tat = Fast upload leads to fastdownload
Alice sends chunks to those 4peers currently sending herchunks at highest rate
other peers are choked byAlice
re-evaluate top 4 every 10s
underline_base
(modified by Cheung for EE586; based on K&R original)
26
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Requesting, sending file chunks
requesting chunks:
at any given time, differentpeers have different subsetsof file chunks
Alice requests missingchunks from peers, rarestfirst – ensure rapidpopulation of every part ofthe file
sending chunks: promote altruism
tit-for-tat = Fast upload leads to fastdownload
Alice sends chunks to those 4peers currently sending herchunks at highest rate
other peers are choked byAlice
re-evaluate top 4 every 10s
But what happen if a new peerwith plenty of bandwidth join theparty?
underline_base
(modified by Cheung for EE586; based on K&R original)
27
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Optimistically Unchoke
Alice
Bob
underline_base
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
(modified by Cheung for EE586; based on K&R original)
28
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Optimistically Unchoke
Alice
Bob
(1) Alice optimistically unchokes a random Bob
underline_base
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
(modified by Cheung for EE586; based on K&R original)
29
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Optimistically Unchoke
Alice
Bob
(1) Alice optimistically unchokes a random Bob
(2) Alice becomes one of Bobs top-four providers; Bob reciprocates
underline_base
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
(modified by Cheung for EE586; based on K&R original)
30
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Optimistically Unchoke
Alice
Bob
(1) Alice optimistically unchokes a random Bob
(2) Alice becomes one of Bobs top-four providers; Bob reciprocates
(3) Bob becomes one of Alices top-four providers
higher upload rate: find bettertrading partners, get file faster !
underline_base
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
(modified by Cheung for EE586; based on K&R original)
31
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Distributed Hash Table (DHT)
DHT: a distributed P2P database
database has (key, value) pairs; examples:
key: SSN number; value: human name
key: movie title; value: IP address
Distribute the (key, value) pairs over the(millions of peers)
a peer queries DHT with key
DHT returns values that match the key
peers can also insert (key, value) pairs
underline_base
(modified by Cheung for EE586; based on K&R original)
32
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Q: how to assign keys to peers?
central issue:
Where should we put (key, value) ?
underline_base
(modified by Cheung for EE586; based on K&R original)
33
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Q: how to assign keys to peers?
central issue:
Where should we put (key, value) ?
basic idea:
Assume each peer is represented by an uniqueinteger ID
convert each key to an unique integer
e.g., key = hash(God Father Trilogy”)
this is why its is referred to as a distributed hash” table
put (key, value) pair in the peer whose ID isclosest to the key
underline_base
(modified by Cheung for EE586; based on K&R original)
34
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Assign keys to peers
rule: assign key to the peer that has theclosest ID.
convention: closest is the immediatesuccessor of the key.
e.g., peers: 1,3,4,5,8,10,12,14;
key = 13, then successor peer = 14
key = 15, then successor peer = 1
underline_base
(modified by Cheung for EE586; based on K&R original)
35
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
0001
0011
0100
0101
1000
1010
1100
1111
Whos responsible
for key 1110 ?
Circular DHT (1)
underline_base
(modified by Cheung for EE586; based on K&R original)
36
each peer onlyaware of immediatesuccessor andpredecessor.
Define closestas closestsuccessor
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
0001
0011
0100
0101
1000
1010
1100
1111
Whos responsible
for key 1110 ?
1110
1110
1110
1110
1110
1110
Circular DHT (1)
underline_base
(modified by Cheung for EE586; based on K&R original)
37
each peer onlyaware of immediatesuccessor andpredecessor.
Define closestas closestsuccessor
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
0001
0011
0100
0101
1000
1010
1100
1111
Whos responsible
for key 1110 ?
I am
O(N) messages
on avgerage to resolve
query, when there
are N peers
1110
1110
1110
1110
1110
1110
Circular DHT (1)
underline_base
(modified by Cheung for EE586; based on K&R original)
38
each peer onlyaware of immediatesuccessor andpredecessor.
Define closestas closestsuccessor
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Circular DHT with shortcuts
each peer keeps track of IP addresses of predecessor, successor,short cuts.
1
3
4
5
8
10
12
15
Whos responsible
for key 1110?
underline_base
(modified by Cheung for EE586; based on K&R original)
39
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Circular DHT with shortcuts
each peer keeps track of IP addresses of predecessor, successor,short cuts.
reduced from 6 to 2 messages.
possible to design shortcuts so O(log N) neighbors, O(log N)messages in query
1
3
4
5
8
10
12
15
Whos responsible
for key 1110?
underline_base
(modified by Cheung for EE586; based on K&R original)
40
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Peer churn
example: peer 5 abruptly leaves
1
3
4
5
8
10
12
15
handling peer churn:
peers may come and go (churn)
underline_base
(modified by Cheung for EE586; based on K&R original)
41
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Peer churn
example: peer 5 abruptly leaves
1
3
4
5
8
10
12
15
handling peer churn:
peers may come and go (churn)
each peer knows address of itstwo successors
each peer periodically pings itstwo successors to check aliveness
if immediate successor leaves,choose next successor as newimmediate successor
underline_base
(modified by Cheung for EE586; based on K&R original)
42
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Peer churn
example: peer 5 abruptly leaves
peer 4 detects peer 5 departure; makes 8 its immediatesuccessor;
1
3
4
5
8
10
12
15
handling peer churn:
peers may come and go (churn)
each peer knows address of itstwo successors
each peer periodically pings itstwo successors to check aliveness
if immediate successor leaves,choose next successor as newimmediate successor
underline_base
(modified by Cheung for EE586; based on K&R original)
43
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Peer churn
example: peer 5 abruptly leaves
peer 4 detects peer 5 departure; makes 8 its immediatesuccessor;
asks 8 who its immediate successor is; makes 8s immediatesuccessor its second successor.
1
3
4
5
8
10
12
15
handling peer churn:
peers may come and go (churn)
each peer knows address of itstwo successors
each peer periodically pings itstwo successors to check aliveness
if immediate successor leaves,choose next successor as newimmediate successor
underline_base
(modified by Cheung for EE586; based on K&R original)
44