an alto protocol: p4p/info export

41
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

Upload: muniya

Post on 21-Mar-2016

42 views

Category:

Documents


4 download

DESCRIPTION

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. Outline. Key architectural concepts Protocol specification - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: An ALTO Protocol:  P4P/Info Export

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

Outline

Key architectural concepts Protocol specification Comparison with other schemes

ALTO/IETF 74 2

Page 3: An ALTO Protocol:  P4P/Info Export

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

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

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

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

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

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

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

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

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

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

Example 1: ALTO Client Embedded in App. Tracker

Page 14: An ALTO Protocol:  P4P/Info Export

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

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

Example 2: ALTO Client Embedded in a P2P Client

Page 17: An ALTO Protocol:  P4P/Info Export

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

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

Example 3: ALTO Client Embedded in a P2P Client using Ranking

Page 20: An ALTO Protocol:  P4P/Info Export

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

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

Backup Slides

Page 23: An ALTO Protocol:  P4P/Info Export

Examples with Animations

Page 24: An ALTO Protocol:  P4P/Info Export

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

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

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

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

Example 2: ALTO Client Embedded in a P2P Client

Page 29: An ALTO Protocol:  P4P/Info Export

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

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

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

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

Example 3: ALTO Client Embedded in a P2P Client using Ranking

Page 34: An ALTO Protocol:  P4P/Info Export

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

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

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

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

Tracker ISP Data Structures

ISP 1 ISP M

ISPPIDMapPIDMap

PIDMapPortalAPI

ISPPDistanceMapPDistanceMap

PDistanceMapPortalAPI

ALTO

Page 39: An ALTO Protocol:  P4P/Info Export

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

Per Channel Data Structures

isp1 ispK

Peer Group1

PeerGroup2

Peer Group 3

Peer Group 4

ALTO

Page 41: An ALTO Protocol:  P4P/Info Export

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