P4P Implementation
description
Transcript of P4P Implementation
![Page 1: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/1.jpg)
P4P Implementation
Yale LANS
![Page 2: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/2.jpg)
P4P Portal Services
Location Portal Service
pDistance Portal Service
Two services because Different functionalities Different update time-scales
location large but more stable
![Page 3: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/3.jpg)
Location Portal Service
Allows an ISP to aggregate the Internet address space to define its own “my-Internet” view Highly preferred by ISPs during our field tests
The “my-Internet” view of an ISP consists of a set of PIDs (partition IDs)
![Page 4: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/4.jpg)
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
![Page 5: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/5.jpg)
“My-Internet” View of isp1: an Example
pid1.intra.isp1
pid2.intra.isp1
pid3.intra.isp1
pid4.intra.isp1 pid5.exter.isp1
pid6.exter.isp1
pid7.exter.isp1
![Page 6: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/6.jpg)
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
![Page 7: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/7.jpg)
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
![Page 8: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/8.jpg)
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)
![Page 9: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/9.jpg)
Example: Routing Cost pDistance of isp1
pid1
pid2
pid3
pid4 pid5
pid6
pid7
OSPF path cost;TE dual variables
f(BGP local pref., AS_PATH, …)Multihoming cost opt. dual
![Page 10: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/10.jpg)
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
![Page 11: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/11.jpg)
How May a P2P Application Use these P4P Portal Services? This depends on the applications
It is a place for application innovation
![Page 12: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/12.jpg)
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
![Page 13: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/13.jpg)
Tracker ISP Data Structures
ISP 1 ISP M
ISPPIDMapPIDMap
PIDMapPortalAPI
ISPPDistanceMapPDistanceMap
PDistanceMapPortalAPI
![Page 14: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/14.jpg)
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, …
![Page 15: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/15.jpg)
Per Channel Data Structures
isp1 ispK
Peer Group1
PeerGroup2
Peer Group 3
Peer Group 4
![Page 16: P4P Implementation](https://reader036.fdocuments.us/reader036/viewer/2022062409/5681461a550346895db3230e/html5/thumbnails/16.jpg)
Per Channel Data Structures: Peer Group by PID
pid1
pid7
list of clients in pid1
list of clients in pid7
total intra ISP
pid1
pid2
pid3
pid4
pid5
pid6
pid7
pid1
pid2
pid3
pid4
peering weight matrix