an alto protocol: p4p/i f ep4p/info export
TRANSCRIPT
![Page 1: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/1.jpg)
An ALTO Protocol: P4P/I f EP4P/Info Export
Richard Alimi, Doug Pasko, Reinaldo Penno, , g , ,
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/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/2.jpg)
Outline
Key architectural conceptsProtocol specificationpComparison with other schemes
ALTO/IETF 74 2
![Page 3: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/3.jpg)
Objectivej
Provides network information to P2P applications to achieve better peer selection.
ALTO Server
ALTO Client(Peer)
ALTO Protocol
ALTO Client(Tracker)
ALTO/IETF 74 3
![Page 4: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/4.jpg)
My-Internet Viewy
Each ALTO Server loc 5loc 6Each ALTO Servermaintains a
“my Internet” viewmy-Internet viewA my-Internet view loc 1
loc 4consists of
A set of network locations;ALTO Cost between each pair of network locations
loc 2loc 3
for a given ALTO Cost Type.
ALTO/IETF 74 4
![Page 5: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/5.jpg)
ALTO Query/ResponseQ y/ p
Basic ALTO Query:as c O Que yA set of source (resource consumer) network locations on the “my-Internet” viewyA set of destination (resource provider) network locations on the “my-Internet” viewAn ALTO Cost TypeMode: numerical or ordinal (ranking)
ALTO Response:Numerical values/ranking from given sources to given destinations
ALTO/IETF 74 5
![Page 6: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/6.jpg)
A Key Architectural Issuey
How to specify the sets of source and destination network locations?
Important for scalability, privacy, & service p y,availability
Representation of the structure of the Internet. Young Hyun of CAIDA, using graph visualization tool code-named Walrus
ALTO/IETF 74 6
![Page 7: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/7.jpg)
Source/Destination Grouping/ p g
A Source Group is a set of network locationsA Source Group is a set of network locations that have similar ALTO Costs to other network locationslocationsA Destination Group is a set of network locations th t h i il ALTO C t f th t kthat have similar ALTO Costs from other network locationsA 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/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/8.jpg)
Saul Steinberg; View of World from 9th Ave
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/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/9.jpg)
Grouping Benefitsp gGrouping improves scalability
S G bl hi & di t ib tiSource Group enables caching & redistributionDestination Group enables compact representation of ALTO infoALTO infoReduces load/overhead on ALTO Server and P2P TrackersAllows group & cost info to update at different timescales
Grouping helps privacyPeer perspective – masquerading individual peersISP perspective – avoid revealing fine-grained network topology by probing/learning experiments
ALTO/IETF 74 9
![Page 10: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/10.jpg)
Outline
Key architectural conceptsALTO Protocol DesigngComparison with Other Proposals
ALTO,/IETF 74 10
![Page 11: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/11.jpg)
ALTO Protocol: Key Design Featuresy gClean instantiation of proposed architectureMaps well into existing P4P/Info Export implementationsMaps well into existing P4P/Info Export implementationsTransport – based on HTTP
Availability & maturity of HTTP clients & serversy yScalability – Can utilize HTTP cachingFlexible ALTO server implementation strategies
D li f t f HTTPDecoupling message format from HTTPEvolve independentlyMake it possible to use P2P redistributionMake it possible to use P2P redistributionAdaptable to other transports
Textual encoding (currently based on SDP format)Ease understanding and debuggingleverage existing SDP implementation
ALTO/IETF 74 11
![Page 12: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/12.jpg)
ALTO Network Information: Interfaces
GetNetworkMap/GetNetworkIdentifier:
Mapping between network locations and S /D ti ti GSource/Destination Groups
GetCostMap: Defines costs amongst network locations and Source/Destination Groups
ALTO/IETF 74 12
![Page 13: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/13.jpg)
Interface DescriptorpAn ALTO Response may specify a URI:
GetNetworkMap-Complete /alto/networkmap-complete.txtGetNetworkMap-Source /alto/networkmap-<SRC-GRP>.txtGetNetworkMap /alto/msg cgi?getnetworkmapGetNetworkMap /alto/msg.cgi?getnetworkmap
GetCostMap-Complete /alto/costmap-complete.txtGetCostMap-Source /alto/costmap-<SRC-GRP>.txt
Benefit: Allows flexible ALTO Server implementation
GetCost /alto/msg.cgi?getcost
Benefit: Allows flexible ALTO Server implementation strategies (e.g., pre-generated files, DB backend, torrent etc).torrent, etc)
ALTO/IETF 74 13
![Page 14: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/14.jpg)
Example 1: ALTO Client E b dd d i A T kEmbedded in App. Tracker
![Page 15: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/15.jpg)
ALTO Client@appTracker
ALTO Server(alto.isp.net:80)
netmap-complete.txt can be p pcached at HTTP caches
r=getcost COST routing numericalc=SRC PID1c S CDEST PID1 1DEST PID2 8DEST PID3 3c=SRC PID2
costmap-complete.txt can be cached at HTTP caches
…
![Page 16: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/16.jpg)
ALTOInfo
ALTO Client@appTracker
ALTO Server(alto.isp.net:80)
Info
Peer 1
Peer 2…Peer 40
![Page 17: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/17.jpg)
Example 2: ALTO Client E b dd d i P2P CliEmbedded in a P2P Client
![Page 18: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/18.jpg)
ALTO Server(alto.isp.net:80)
ALTO Client@P2P Client
(i PID1)
netmap-PID1.txt can be cached at HTTP caches
(in PID1)
cached at HTTP caches
costmap-PID1.txt can be cached at HTTP caches
![Page 19: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/19.jpg)
P2P ClientALTOInfo
ALTO Server(alto.isp.net:80)
P2P Client(in PID1)
Info
PP2P Client Peer Exchange
DirectDirectConnect
DHT Tracker
![Page 20: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/20.jpg)
Comparisons of ProposalsCost Mode (Ord./Num.)
Source Grouping
Destination Grouping
Transport/Encoding
Caching ofALTO Info
P2P Redist.
p pH12 IP, IPPrefix IP, IPPrefix TCP/
encoding not specified yet
Proxider/Oracle
Ranking Per [Src IP, list of DstIP]; Mentioned possibility to replace IP by IPPrefix/ASN
IP address; Mentioned possibility to replace IP by IPPrefix/ASN
Not specified yet
Client to S i
Ordinal/N i l
Location context if i i i
Location context if i i i
XML/MIME type ( li ti / 2Service
Query Response Protocol for ALTO
Numerical specifying precision level;Host location attribute can use PID for aggregation
specifying precision levels;Host location attribute can use PID for aggregation
(application/p2p-alto+xml); urispecifying service location; enroll to get config.; binary
ALTO O di l/ Fl ibl Fl ibl HTTP/T t HTTP C hi YALTO (P4P/InfoExport)
Ordinal/Numerical ;
Numerical important for
Flexiblegrouping including IP ,IP Prefix, ASN, PID
Flexiblegrouping including IP, IP Prefix, ASN,PID
HTTP/Text (application/alto);interface descriptor to
HTTP Caching Yes
ALTO/IETF 74 20
Primal/Dual OptimizationDecomp. and completeness
specify configuration
![Page 21: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/21.jpg)
Backup Slides
![Page 22: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/22.jpg)
Example 3: ALTO Client E b dd d i P2P CliEmbedded in a P2P Client sing Rankingusing Ranking
![Page 23: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/23.jpg)
ALTO Server(alto.isp.net:80)
ALTO Client@P2P Client
(i PID1)(in PID1)
![Page 24: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/24.jpg)
Examples with Animations
![Page 25: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/25.jpg)
ALTO Client@appTracker
ALTO Server(alto.isp.net:80)
i=getcost /alto/msg.cgi?q=costi=getcost-complete /alto/cost-complete txt
Request Interface Descriptor
i getcost complete /alto/cost complete.txti=getnetworkmap /alto/msg.cgi?q=netmapi=getnetworkmap-complete /alto/netmap-complete.txt…
![Page 26: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/26.jpg)
ALTO Client@appTracker
ALTO Server(alto.isp.net:80)
Retrieve Network Map (cacheable):GET /alto/netmap complete txtGET /alto/netmap-complete.txt
r=getnetworkmapm=PID1 128.36.0.0/16PID2 130 132 0 0/16m=PID2 130.132.0.0/16
m=PID3 65.198.30.0/24
netmap-complete.txt may be cached at HTTP caches
![Page 27: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/27.jpg)
ALTO Client@appTracker
ALTO Server(alto.isp.net:80)
Retrieve Cost Map (cacheable):GET /alto/costmap complete txtGET /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 28: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/28.jpg)
ALTOInfo
ALTO Client@appTracker
ALTO Server(alto.isp.net:80)
Info
get peers
selected peer list
Peer 1
Peer 2…Peer 40
![Page 29: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/29.jpg)
Example 2: ALTO Client E b dd d i P2P CliEmbedded in a P2P Client
![Page 30: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/30.jpg)
P2P ClientALTO Server(alto.isp.net:80)
P2P Client(in PID1)
Request Interface Descriptor
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 31: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/31.jpg)
P2P ClientALTO Server(alto.isp.net:80)
P2P Client(in PID1)
Retrieve Network Map (cacheable):GET /alto/netmap PID1 txt
r=getnetworkmapm=PID1 128.36.0.0/16m PID2 130 132 0 0/16
GET /alto/netmap-PID1.txt
m=PID2 130.132.0.0/16m=PID3 65.198.30.0/24
netmap-PID1.txt may be cached at HTTP caches
![Page 32: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/32.jpg)
P2P ClientALTO Server(alto.isp.net:80)
P2P Client(in PID1)
Retrieve Cost Map (cacheable):GET /alto/costmap PID1 txtGET /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 33: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/33.jpg)
P2P ClientALTOInfo
ALTO Server(alto.isp.net:80)
P2P Client(in PID1)
Info
Peer
P2P Client
Peer Exchange
newnew peers
new peers
DHT Tracker
![Page 34: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/34.jpg)
Example 3: ALTO Client E b dd d i P2P CliEmbedded in a P2P Client sing Rankingusing Ranking
![Page 35: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/35.jpg)
P2P ClientALTO Server(alto.isp.net:80)
P2P Client(in PID1)
Request Interface Descriptor
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 36: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/36.jpg)
P2P ClientALTO Server(alto.isp.net:80)
P2P Client(in PID1)Request Ranking:
POST /alto/msg.cgi?q=cost HTTP/1.1q=getcost COST routing ordinalC=SRC IP0 DEST IP1 IP2 … IP100
r=getcost COST routing ordinalc=SRC IP0
C SRC IP0 DEST IP1 IP2 … IP100
IP20 1IP11 2… IP42 50
![Page 37: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/37.jpg)
How May a P2P Application Use y ppALTO Information?
This depends on the applications
It is a place for application innovation
ALTO
![Page 38: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/38.jpg)
Example: Tracker-Basedp
The tracker resolves the PIDs of clientsBy using PID Mapsy g p
The tracker uses a peering weight matrix to select initial peers for a new clientp
P i i ht t i t d diPeering weight matrix computed according to channel state and pDistance matrix
ALTO
![Page 39: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/39.jpg)
Tracker ISP Data Structures
ISPPIDMapPIDMap
PIDMapPortalAPI
ISPPDistanceMapPDistanceMap
PDi M P lAPIPDistanceMapPortalAPI
ISP 1 ISP MISP 1 ISP M
ALTO
![Page 40: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/40.jpg)
Per Channel Data Structures
A list of ISPs maintained for the channelst o S s a ta ed o t e c a e
A ISPVi f h i t i d ISPAn ISPView for each maintained ISP
An ISP view partitions the peers in the channel according into peer groupsg p g pA PeeringGuidance matrix guides how to select peers from the peer groups, p p g p ,
e.g., for a peer in peer group 1, how many peers to select from group 1, from group 2, …
ALTO
![Page 41: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/41.jpg)
Per Channel Data Structures
Peer PeerGroup1 Group2
Peer Group 3
Peer Group 4
i 1 i Kisp1 ispK
ALTO
![Page 42: An ALTO Protocol: P4P/I f EP4P/Info Export](https://reader031.vdocuments.net/reader031/viewer/2022011905/61d6c0c93b2b2b7e6a282838/html5/thumbnails/42.jpg)
Per Channel Data Structures: Peer Group by PID
pid1 list of clients in pid1
pid7 list of clients in pid7p p
total pid pid pid pid pid pid pidpeering weight matrix
intra ISP
p1
p2
p3
p4
p5
p6
p7
pid1
pid2
pid3
pid4
ALTO