next up previous
Next: Experiments Up: Implementation of Summary-Cache Enhanced Previous: The Protocol

Prototype Implementation

We modified the Squid 1.1.4 software to implement the above protocol. An additional bit array is added to the data structure for each neighbor. The structure is initialized when the first summary update message is received from the neighbor. The proxy also allocates an array of byte counters for maintaining the local copy of the bloom filter, and an integer array to remember the filter changes.

The current prototype sends the update messages via UDP, since ICP is built on top of UDP. A variant of the design would be to send the messages via TCP or multicast. Due to the size of these messages, it is perhaps better to send them via TCP or multicast. Furthermore, since the collection of cooperating proxies is relatively static, the proxies can just maintain a permanent TCP connection with each other to exchange update messages. Unfortunately, the implementation of ICP in Squid is on top of UDP only. Thus, the prototype deviates from the recommendation in Section 5.5 and sends updates whenever there are enough changes to fill an IP packet. The implementation further leverages Squid's built-in support to detect failure and recovery of neighbor proxies, and reinitializes a failed neighbor's bit array when it recovers.


next up previous
Next: Experiments Up: Implementation of Summary-Cache Enhanced Previous: The Protocol
Pei Cao
7/5/1998