P4P: Proactive Provider Assistance for P2P
Download
Report
Transcript P4P: Proactive Provider Assistance for P2P
P4P Implementation
Yale LANS
P4P Portal Services
Location Portal Service
pDistance Portal Service
Two services because
Different functionalities
Different update time-scales
location large but more stable
Location Portal Service
Allows an ISP to aggregate the Internet
address space to define its own “myInternet” view
Highly preferred by ISPs during our field tests
The “my-Internet” view of an ISP consists
of a set of PIDs (partition IDs)
PID
A PID denotes a set of network locations
A generalization of network aggregation
concepts such as autonomous system (AS) or
intradomain routing area
Can denote aggregation such as
a subnet, a point of presence (PoP), a type of customers (dsl
vs fiber), an AS, or a set of ASes
May define hierarchical PIDs, but focus on one
level so far
“My-Internet” View of isp1: an Example
pid4.intra.isp1
pid5.exter.isp1
pid1.intra.isp1
pid6.exter.isp1
pid2.intra.isp1
pid7.exter.isp1
pid3.intra.isp1
Implementation: Interfaces Defined in
the Location Portal Service
GetPID
(MUST)
IP address → PID
A list of IP addresses → their corresponding PIDs
GetPIDMap
(SHOULD)
PID → list of IP prefixes/ASNs belonging to the
PID
A list of PIDs → their corresponding PID Maps
Null → PID Maps for all PIDs
pDistance Portal Service
The pDistance Portal Service allows an ISP
to define the pDistance for any given pair of
network locations
network location: IP address/PID
If input is a pair of IP addresses, the ISP may either
return more precise metric, or internally map IP
addresses to PIDs and then return metric
pDistance: path metric distance, provider distance
pDistance
Semantics of pDistance depends on
Ordinal or numerical (default) pDistance
Type of pDistance, e.g.,
Routing Hop-Count pDistance
Routing Air-Mile pDistance
Routing Cost pDistance (default if not indicated)
Example: Routing Cost pDistance of isp1
f(BGP local pref., AS_PATH, …)
Multihoming cost opt. dual
pid4
pid5
pid1
pid6
pid2
pid7
pid3
OSPF path cost;
TE dual variables
Implementation: Interface Defined in
the pDistance Portal Service
GetpDistance
(MUST)
[a pair of network locations, and optionally type of
pDistance] → pDistance value
[A set of pairs of network locations and optionally
type of pDistance] → pDistance values
How May a P2P Application Use
these P4P Portal Services?
This depends on the applications
It is a place for application innovation
Example: Tracker-Based
The tracker resolves the PIDs of clients
By using PID Maps
The tracker uses a peering weight matrix to
select initial peers for a new client
Peering weight matrix computed according
to channel state and pDistance matrix
Tracker ISP Data Structures
ISPPIDMap
PIDMap
PIDMapPortalAPI
ISPPDistanceMap
PDistanceMap
PDistanceMapPortalAPI
ISP 1
ISP M
Per Channel Data Structures
A list of ISPs maintained for the channel
An ISPView for each maintained ISP
An ISP view partitions the peers in the channel
according into peer groups
A PeeringGuidance matrix guides how to select
peers from the peer groups,
e.g., for a peer in peer group 1, how many peers to
select from group 1, from group 2, …
Per Channel Data Structures
Peer
Group1
Peer
Group2
Peer
Group 3
Peer
Group 4
isp1
ispK
Per Channel Data Structures: Peer
Group by PID
pid1
list of clients in pid1
pid7
list of clients in pid7
peering weight matrix
total
intra
ISP
pid1
pid2
pid3
pid4
pid
1
pid
2
pid
3
pid
4
pid
5
pid
6
pid
7