Re: Thinking about ICP

From: Peter Marelas <maral@dont-contact.us>
Date: Sat, 2 Aug 1997 20:02:33 +1000 (EST)

On Sat, 2 Aug 1997, Joao Carlos Mendes Luis wrote:

> Hi,
>
> Although ICP over UDP/IP allows use of multicast querying, it lacks
> congestion control. In fact, it could over-congestion an external
> link to a point that instead of getting a better usage of bandwidth
> you would end up with an unusable backbone.
>
> Are there plans to put ICP (or something similar) over TCP/IP ?
> If not, could we start thinking about this ? One single conection
> to each sibling and parent would probably do the best job.
>
> Optimizations to this TCP pipe would be:
>
> 1) Detecting lost links, and reconecting them after some time.
> 2) Detect over-congestion (queue always full, blocking socket I/O) on
> one link and taking some control action (which ?).
> 3) ICP over TCP proxy. (humm...) Since we'll no more have
> multicast support, we could have some kind of exploder
> to run at network mesh nodes, simulating a multicast tree.
>

We currently have this problem at a National Exchange Point where we have
many siblings querying each other over multiple WAN's.

The idea I put forward was to "cluster" the siblings in groups of 8 like so:

        [ 8 cluser sibling ] [ 8 cluster sibling ]
                 x x
                       x x
                             x x
                              [ ICP relay ]
                             x x
                       x x
                 x x
        [ 8 cluser sibling ] [ 8 cluster sibling ]

All siblings in a cluster would also include the ICP relay system as a sibling.
The ICP relay system would fire off UDP_REQUESTS to all other siblings in
the "other" clusters.
The ICP relay would relay back to the original requestor a single MISS or a HIT with the real proxies hostname so the object can be fetched.
What this elimintates is each sibling having to reply to the requestor with
a MISS.
 
This architecture could scale further by having an ICP relay in each cluster.
Then having the ICP relays talk to each other.

        [ 8 cluster sibling ] [ 8 cluster sibling ]
                 x x
                 x x
                 x x
           [ ICP Relay ] xxxxxxxxxxxxxxxxxxxxxxxxx [ ICP Relay ]
                 x x x x
                 x x x
                 x x x x
           [ ICP Relay ] xxxxxxxxxxxxxxxxxxxxxxxxx [ ICP Relay ]
                 x x
                 x x
                 x x
        [ 8 cluster sibling ] [ 8 cluster sibling ]

In this configuration it would make sense to have TCP connections between the relays.

Another possiblility is to have the ICP relay receive STORE and RELEASE information from all the siblings in its "cluster". In doing so it can determine (without querying the siblings in its cluster) which sibling does and doesnt have the
object.

Regards
Peter Marelas

--
Phase One Interactive - Sun Solaris/Unix/Networking Consultant
P.O Box 549, Templestowe 3106 Melbourne, Australia
URL: http://www.phase-one.com.au/
Received on Sat Aug 02 1997 - 03:18:12 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:35:55 MST