Subject: [alto] ALTO with CPID extension

From: Song Haibin <[email-masked]>
Date: Fri, 04 Jun 2010 15:42:04 +0800

Hi all,

I would like to make a clarification on how CPID works and in which way it
will benefit. 

First the ALTO server collects network topology and policy information from
network equipments. And then constructs a cost/priority matrix among the
network aggregation points. And after a mathematical decomposition, the
original cost/priority matrix turns into the multiply products of two
matrixes. And each cost/priority value in the original matrix is the
multiply product of two vectors in the latter two matrixes. And these
vectors become the CPIDs for peers under those aggregation points. There are
two kinds of CPIDs, CPIDsource and CPIDdestination in the case the
priority/cost from one area to another area is not equal to the cost vice
versa. A small map indicates the priority from the current ISP/AS to other
ISP/AS (one to many) will also be needed.

Second, the CPID for each area and the the very small map could be delivered
to the local DHCP server in that area, and the end user will get their CPID
through the DHCP server. The ALTO server does not have to process any user
requests. The end user does not need to know more information than that got
from the DHCP server.

Third, as each end user or resource provider all have their own CPIDs. The
end user will choose peers according to the source and destination CPIDs and
priority from its ISP/AS to others.

I would agree that the network map and cost/priority map could be
re-calculated by efforts if an application has millions of users and wants
to collect this kind of information (CPID and IP addresses). But ALTO server
does not have to process user requests (offload to local DHCP server, no
burst load on the ALTO server, you even do not need ALTO server discovery in
this case). And the end user does not have to search the big map to find all
the PIDs for destination peers and then search the costs in the cost map.

My two cents,
Haibin