An ALTO Protocol: P4P/Info Export
description
Transcript of An ALTO Protocol: P4P/Info Export
![Page 1: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/1.jpg)
An ALTO Protocol: P4P/Info Export
Richard Alimi, Doug Pasko, Reinaldo Penno,
Laird Popkin, Satish Raghunath, Stanislav Shalunov,
Yu-Shun Wang, Richard Woundy, Y. Richard Yang
Presenters: Y. Richard Yang, Reinaldo Penno
![Page 2: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/2.jpg)
Outline
Key architectural concepts Protocol specification Comparison with other schemes
ALTO/IETF 74 2
![Page 3: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/3.jpg)
Objective Provides network information to P2P
applications to achieve better peer selection.
ALTO/IETF 74 3
ALTO Server
ALTO Client(Tracker)
ALTO Client(Peer)
ALTO Protocol
![Page 4: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/4.jpg)
My-Internet View Each ALTO Server
maintains a “my-Internet” view
A my-Internet view consists of A set of network locations; ALTO Cost between each
pair of network locations for a given ALTO Cost Type.
ALTO/IETF 74 4
loc 5 loc 6
loc 1
loc 2
loc 4
loc 3
![Page 5: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/5.jpg)
ALTO Query/Response Basic ALTO Query:
ALTO Response:
ALTO/IETF 74 5
A set of source (resource consumer) network locations on the “my-Internet” view
A set of destination (resource provider) network locations on the “my-Internet” view
An ALTO Cost Type Mode: numerical or ordinal (ranking)
Numerical values/ranking from given sources to given destinations
![Page 6: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/6.jpg)
A Key Architectural Issue
How to specify the sets of source and destination network locations? Important for scalability,
privacy, & service availability
ALTO/IETF 74 6
Representation of the structure of the Internet. Young Hyun of CAIDA, using graph visualization tool code-named Walrus
![Page 7: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/7.jpg)
Source/Destination Grouping A Source Group is a set of network locations that
have similar ALTO Costs to other network locations
A Destination Group is a set of network locations that have similar ALTO Costs from other network locations
A Source/Destination Group may represent an IP Prefix, a point of presence (PoP), a type of customers (wireless, DSL, FiOS), an AS, or a set of AS(es)
ALTO/IETF 74 7
![Page 8: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/8.jpg)
8
Saul Steinberg; View of World from 9th Ave
Van Jacobson: “you want to use a hierarchical identifier space so that you can aggregate out detail as you get far away.”
![Page 9: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/9.jpg)
Grouping Benefits Grouping improves scalability
Source Group enables caching & redistribution Destination Group enables compact representation of
ALTO info Reduces load/overhead on ALTO Server and P2P
Trackers Allows group & cost info to update at different
timescales Grouping helps privacy
Peer perspective – masquerading individual peers ISP perspective – avoid revealing fine-grained network
topology by probing/learning experiments
ALTO/IETF 74 9
![Page 10: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/10.jpg)
ALTO Protocol: Key Design Features Clean instantiation of proposed architecture Maps well into existing P4P/Info Export implementations Transport – based on HTTP
Availability & maturity of HTTP clients & servers Scalability – Can utilize HTTP caching Flexible ALTO server implementation strategies
Decoupling message format from HTTP Evolve independently Make it possible to use P2P redistribution Adaptable to other transports
Textual encoding (currently based on SDP format) Ease understanding and debugging leverage existing SDP implementation
ALTO/IETF 74 10
![Page 11: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/11.jpg)
ALTO Network Information: Interfaces GetNetworkMap/GetNetworkIdentifier:
Mapping between network locations and Source/Destination Groups
GetCostMap: Defines costs amongst network locations and Source/Destination Groups
ALTO/IETF 74 11
![Page 12: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/12.jpg)
Interface Descriptor An ALTO Response may specify a URI:
Benefit: Allows flexible ALTO Server implementation strategies (e.g., pre-generated files, DB backend, .torrent, etc)
Interface descriptors serve as a “negotiation” step.
ALTO/IETF 74 12
GetNetworkMap-Complete /alto/networkmap-complete.txtGetNetworkMap-Source /alto/networkmap-<SRC-GRP>.txtGetNetworkMap /alto/msg.cgi?getnetworkmap
GetCostMap-Complete /alto/costmap-complete.txtGetCostMap-Source /alto/costmap-<SRC-GRP>.txtGetCost /alto/msg.cgi?getcost
![Page 13: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/13.jpg)
Example 1: ALTO Client Embedded in App. Tracker
![Page 14: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/14.jpg)
ALTO Client@appTracker
i=getcost /alto/msg.cgi?q=costi=getcostmap-complete /alto/cost-complete.txti=getnetworkmap /alto/msg.cgi?q=netmapi=getnetworkmap-complete /alto/netmap-complete.txt…
1. Request Interface Descriptor
ALTO Server(alto.isp.net:80)
2. Retrieve Network Map (cacheable)
GET /alto/netmap-complete.txt
r=getnetworkmapm=PID1 128.36.0.0/16m=PID2 130.132.0.0/16m=PID3 65.198.30.0/24
netmap-complete.txt can be cached at HTTP caches
3. Retrieve Cost Map (cacheable):
GET /alto/costmap-complete.txt
r=getcost COST routing numericalc=SRC PID1DEST PID1 1DEST PID2 8DEST PID3 3c=SRC PID2…
costmap-complete.txt can be cached at HTTP caches
![Page 15: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/15.jpg)
ALTO Client@appTracker
ALTO Server(alto.isp.net:80)
selected peer list
Peer 40
Peer 2
Peer 1
…
get peers
ALTOInfo
![Page 16: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/16.jpg)
Example 2: ALTO Client Embedded in a P2P Client
![Page 17: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/17.jpg)
1. Request Interface Descriptor
ALTO Server(alto.isp.net:80)
2. Retrieve Network Map (cacheable)
GET /alto/netmap-PID1.txt
r=getnetworkmapm=PID1 128.36.0.0/16m=PID2 130.132.0.0/16m=PID3 65.198.30.0/24
netmap-PID1.txt can be cached at HTTP caches
3. Retrieve Cost Map (cacheable):
GET /alto/costmap-PID1.txt
costmap-PID1.txt can be cached at HTTP caches
ALTO Client@P2P Client
(in PID1)
i=getcostmap-source /alto/costmap-PID1.txti=getnetworkmap-source /alto/netmap-PID1.txtp=PID1…
r=getcost COST routing numericalc=SRC PID1 DEST PID2 8c=SRC PID1 DEST PID3 13
![Page 18: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/18.jpg)
ALTO Server(alto.isp.net:80)
P2P Client(in PID1)
P2P Client Peer Exchange
DHT Tracker
ALTOInfo
DirectConnect
![Page 19: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/19.jpg)
Example 3: ALTO Client Embedded in a P2P Client using Ranking
![Page 20: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/20.jpg)
1. Request Interface Descriptor
ALTO Server(alto.isp.net:80)
ALTO Client@P2P Client
(in PID1)
i=getcost /alto/msg.cgi?q=costi=getcost-source /alto/cost-PID1.txti=getcost-complete /alto/cost-complete.txti=getnetworkmap /alto/msg.cgi?q=netmapi=getnetworkmap-source /alto/netmap-PID1.txti=getnetworkmap-complete /alto/netmap-complete.txtp=PID1
2. Request Ranking:
POST /alto/msg.cgi?q=cost HTTP/1
.1
q=getcost COST routing ordinal
C=SRC IP0 DEST IP1 IP2 … IP100
r=getcost COST routing ordinalc=SRC IP0 IP20 1IP11 2… IP42 50
![Page 21: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/21.jpg)
Comparisons of Proposals
ALTO/IETF 74 21
Cost Mode (Ord./Num.)
Source Grouping
Destination Grouping
Transport/Encoding
Caching of ALTO Info
P2P Redist.
H12 IP, IPPrefix IP, IPPrefix TCP/encoding not specified yet
Proxider/Oracle
Ranking Per [Src IP, list of Dst IP]; Mentioned possibility to replace IP by IPPrefix/ASN
IP address; Mentioned possibility to replace IP by IPPrefix/ASN
Not specified yet
Client to Service Query Response Protocol for ALTO
Ordinal/Numerical
Location context specifying precision level;Host location attribute can use PID for aggregation
Location context specifying precision levels;Host location attribute can use PID for aggregation
XML/MIME type (application/p2p-alto+xml); uri specifying service location; enroll to get config.; binary
ALTO (P4P/InfoExport)
Ordinal/Numerical ;
Numerical important for Primal/Dual OptimizationDecomp. and completeness
Flexiblegrouping including IP , IP Prefix, ASN, PID
Flexiblegrouping including IP, IP Prefix, ASN, PID
HTTP/Text (application/alto);interface descriptor to specify configuration
HTTP Caching Yes
![Page 22: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/22.jpg)
Backup Slides
![Page 23: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/23.jpg)
Examples with Animations
![Page 24: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/24.jpg)
ALTO Client@appTracker
ALTO Server(alto.isp.net:80)
i=getcost /alto/msg.cgi?q=costi=getcost-complete /alto/cost-complete.txti=getnetworkmap /alto/msg.cgi?q=netmapi=getnetworkmap-complete /alto/netmap-complete.txt…
Request Interface Descriptor
![Page 25: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/25.jpg)
ALTO Client@appTracker
ALTO Server(alto.isp.net:80)
Retrieve Network Map (cacheable):GET /alto/netmap-complete.txt
r=getnetworkmapm=PID1 128.36.0.0/16m=PID2 130.132.0.0/16m=PID3 65.198.30.0/24
netmap-complete.txt may be cached at HTTP caches
![Page 26: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/26.jpg)
ALTO Client@appTracker
ALTO Server(alto.isp.net:80)
Retrieve Cost Map (cacheable):GET /alto/costmap-complete.txt
r=getcost COST routing numericalc=SRC PID1DEST PID1 1DEST PID2 8DEST PID3 3c=SRC PID2…
cost-complete.txt may be cached at HTTP caches
![Page 27: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/27.jpg)
ALTO Client@appTracker
ALTO Server(alto.isp.net:80)
selected peer list
Peer 40
Peer 2
Peer 1
…
get peers
ALTOInfo
![Page 28: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/28.jpg)
Example 2: ALTO Client Embedded in a P2P Client
![Page 29: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/29.jpg)
ALTO Server(alto.isp.net:80)
Request Interface Descriptor
P2P Client(in PID1)
i=getcost /alto/msg.cgi?q=costi=getcost-source /alto/cost-PID1.txti=getcost-complete /alto/cost-complete.txti=getnetworkmap /alto/msg.cgi?q=netmapi=getnetworkmap-source /alto/netmap-PID1.txti=getnetworkmap-complete /alto/netmap-complete.txtp=PID1
![Page 30: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/30.jpg)
ALTO Server(alto.isp.net:80)
P2P Client(in PID1)
r=getnetworkmapm=PID1 128.36.0.0/16m=PID2 130.132.0.0/16m=PID3 65.198.30.0/24
Retrieve Network Map (cacheable):GET /alto/netmap-PID1.txt
netmap-PID1.txt may be cached at HTTP caches
![Page 31: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/31.jpg)
ALTO Server(alto.isp.net:80)
P2P Client(in PID1)
Retrieve Cost Map (cacheable):GET /alto/costmap-PID1.txt
r=getcost COST routing numericalc=SRC PID1 DEST PID2 8c=SRC PID1 DEST PID3 13
costmap-PID1.txt may be cached at HTTP caches
![Page 32: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/32.jpg)
ALTO Server(alto.isp.net:80)
P2P Client(in PID1)
P2P Client
Peer Exchange
DHT
new peers
Tracker
new peers
ALTOInfo
![Page 33: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/33.jpg)
Example 3: ALTO Client Embedded in a P2P Client using Ranking
![Page 34: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/34.jpg)
ALTO Server(alto.isp.net:80)
Request Interface Descriptor
P2P Client(in PID1)
i=getcost /alto/msg.cgi?q=costi=getcost-source /alto/cost-PID1.txti=getcost-complete /alto/cost-complete.txti=getnetworkmap /alto/msg.cgi?q=netmapi=getnetworkmap-source /alto/netmap-PID1.txti=getnetworkmap-complete /alto/netmap-complete.txtp=PID1
![Page 35: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/35.jpg)
ALTO Server(alto.isp.net:80)
P2P Client(in PID1)
r=getcost COST routing ordinalc=SRC IP0 IP20 1IP11 2… IP42 50
Request Ranking:POST /alto/msg.cgi?q=cost HTTP/1.1q=getcost COST routing ordinalC=SRC IP0 DEST IP1 IP2 … IP100
![Page 36: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/36.jpg)
How May a P2P Application Use ALTO Information?
This depends on the applications
It is a place for application innovation
ALTO
![Page 37: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/37.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
ALTO
![Page 38: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/38.jpg)
Tracker ISP Data Structures
ISP 1 ISP M
ISPPIDMapPIDMap
PIDMapPortalAPI
ISPPDistanceMapPDistanceMap
PDistanceMapPortalAPI
ALTO
![Page 39: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/39.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, …
ALTO
![Page 40: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/40.jpg)
Per Channel Data Structures
isp1 ispK
Peer Group1
PeerGroup2
Peer Group 3
Peer Group 4
ALTO
![Page 41: An ALTO Protocol: P4P/Info Export](https://reader035.fdocuments.in/reader035/viewer/2022062305/568156ee550346895dc49404/html5/thumbnails/41.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
ALTO