Dalesa

Dalesa is a peer-to-peer web cache designed for Local Area Networks (LAN). Dalesa is a free and opensource software developed by Lanka Software Foundation under GPL license.

Introduction

Dalesa can be used as an alternative to centralized web caches in a Local Area Network. This is done by exposing local web browser caches to the entire P2P network. This is achieved through a daemon (computer software) which act as a web proxy in every participating node. If a web request misses the local cache then the system fail-back to multicast based lookup protocol to query the P2P network, if any other node on the network gives a positive response to this query then the web object will be fetched from that node. Dalesa uses random wait times and response piggy backing to reduce the number of multicasts on the network at a time. If number of multicasts are unacceptably high on the network then the protocol it self will make the network unstable and slow.

Architecture

Dalesa web cache has two major components. The core of the system is libdalesa, it is the core library that acts as a group communication framework. The other component is a web cache that uses libdalesa for remote cache object lookups. libdalesa is a generic framework for group communication which currently . As an abstraction layer it is possible to encapsulate numerous group communication mechanisms like Distributed Hash Tables other than currently available IP multicasting based protocol. The protocol identifies web objects by the SHA-1 hash of their origin URLs, this approach has reduced the size of UDP datagrams multicasted over the network carrying information related to URLs which are typically quite lengthier than 160 bits these days.

Smarter Approach for Multicast based Discovery

  • Case 1: In a situation where there are N number of nodes and N − n nodes out of them have already cached a web object O when r(<=n) number of nodes simultaneously lookup for web object O. In a such situation there will be r number of multicast lookups and r.(Nn) multicast responses, where there will be r + r.(Nn) number of messages altogether which are duplicates and mutually related on the medium. Depending on the size of N,n,r and the available bandwidth on the network performance of the lookup protocol will vary, in extreme cases the network may even get deteriorate to the point it becomes unusable.
  • Case 2: If a node n queries for a web object Oi from domain D which has N amount of cacheable web objects then node n will most probably make N number of lookups to find a set of web objects O1, ... , ON and possibly there will be N number of responses if some other node has already cached those web objects. Therefore for node n visiting domain D with N number of cacheable objects there will be 2.N number of lookups and responses all together on the network.

These problems are solved as given below.

Wait for a Random Amount of Time Before Responding

This is to avoid response redundancy mentioned in Case 1. All N − n nodes which has already cached the web object will pick a random value between 0 − 100 and will wait for that much of milliseconds before sending the response multicast, if any of these N − n number of nodes sees some other node sending a response to the same request then it will give up responding otherwise when node times out it will send the response. This approach will greatly reduce the probability of a sudden network flood caused by redundant responses.

Piggyback URLs that may be Relevant for the Requester

This is to reduce the number of lookups made to find web objects from the same domain D. Here the responder will send a list of cached web objects from the same domain D in addition to what has been requested by the requester. But the list limits to the maximum size of the payload allowed in a single UDP datagram.

Awards & Grants

  • Dalesa was awarded with an ICTA (Sri Lanka) eSociety grant in 2009.
  • Dalesa won an special mention award at ICTA e-Swabhimani 2009 National Awards 2009.

Releases

  • Dalesa-0.1-rc1 was released in January 2010.

Publications

  • A paper on design of Dalesa was published at eAsia 2009 held in Colombo.

Problems

  • Security and integrity are the major problems in Dalesa. As it has no mechanism to verify integrity and authenticity of cache objects, content poisoning attacks are possible. In a content poisoning attack a rouge user can respond to a lookup message and force the requester to fetch a malicious file from his node.
  • Dalesa howto 1
  • Dalesa presentation 2