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 12
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.5 Socket Programming
2.6 P2P applications
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
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)
3
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
peer joining torrent:
registers with tracker to getlist of peers, connects tosubset of peers(neighbors)
has no chunks, but willaccumulate them over timefrom other peers
P2P file distribution: BitTorrent
underline_base
while downloading, peer uploads chunks to other peers
churn: peers may come and go
once peer has entire file, it may (selfishly) leave or(altruistically) remain in torrent
peer may change peers with whom it exchanges chunks
Alice
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)
4
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
BitTorrent: requesting, sending file chunks
requesting chunks:
at any given time, differentpeers have different subsetsof file chunks
periodically, Alice asks eachpeer for list of chunks thatthey have
Alice requests missingchunks from peers, rarestfirst
sending chunks: tit-for-tat
Alice sends chunks to those fourpeers currently sending herchunks at highest rate
other peers are choked byAlice (do not receive chunksfrom her)
re-evaluate top 4 every10secs
every 30 s: randomly selectanother peer,  starts sendingchunks
optimistically unchoke thispeer
newly chosen peer may jointop 4
underline_base
(modified by Cheung for EE586; based on K&R original)
5
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
BitTorrent: tit-for-tat
Alice
Bob
(1) Alice optimistically unchokes 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
desktop_computer_stylized_medium
desktop_computer_stylized_medium
(modified by Cheung for EE586; based on K&R original)
6
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: ss 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)
7
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:
assigning (key, value) pairs to peers.
basic idea:
convert each key to an integer
Assign integer to each peer
put (key,value) pair in the peer that is closestto the key
underline_base
(modified by Cheung for EE586; based on K&R original)
8
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
DHT identifiers
assign integer identifier to each peer in range[0,2n-1] for some n.
each identifier represented by n bits.
require each key to be an integer in same range
to get integer key, hash original key
e.g., key = hash(Led Zeppelin IV)
this is why its is referred to as a distributed hashtable
underline_base
(modified by Cheung for EE586; based on K&R original)
9
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 in lecture: closest is theimmediate successor of the key.
e.g., n=4; 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)
10
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
1
3
4
5
8
10
12
15
Circular DHT (1)
each peer only aware of immediate successor andpredecessor.
overlay network
underline_base
(modified by Cheung for EE586; based on K&R original)
11
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
Define closestas closestsuccessor
Circular DHT (1)
underline_base
(modified by Cheung for EE586; based on K&R original)
12
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)
13
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 8simmediate successor its second successor.
what if peer 13 wants to join?
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)
14