Sponsored By
Efika 5200B Project
Remote Aid Deployment System

in category Other
proposed by ronin on 2nd March 2006 (accepted on 20th March 2006)
[View Full Project]
  Brushes and Tar
posted by ronin on 11th August 2007


After dividing the system into two components, i decided the backbone of the system was needed before anything else.

When looking at the system and the limitations imposed by the wireless connection between nodes I began to think that my first design was needlessly complex by treating the download mechanism for voice/picture data and messages differently. Essentially the two are the same; "DATA". So with that in mind they can be treated exactly the same. When this was considered I decided that if the UDP packets were too large they waste a large quantity of bandwidth. For example if the packet size was determined as 1KB and the user wanted to send a message with about 20 characters in it, the rest of the packet would be wasted. I am currently deciding on the maximum packet size and at the moment a data payload of 128 bytes plus packet information overhead would be ideal as it is a compromise between size and speed.

Ok now onto how the upload/download manager works. When the user pushes a message onto the network layer, the message is serialized and packetized, then an announcement is placed onto the broadcast socket (to all adjacent connected nodes) that indicates the node has data it wants to upload. Naturally the message can be a general message addressed to all nodes or it could be a message that is restricted to a smaller number of recipients.

If it is a general each node reports back to the transmitting node that it wants to download the data. After a small period of time (a time-out) the transmitting node knows of the connected nodes that are interested in the message. And so it will follow the following formula to determine the minimum number of packets per node that need to be seeded. This formula is round((number of packets+1)/(number of peers)). From this each receiving node shares data to reduce load on the originating node. This process repeats as it ripples through the network uploading the message to all nodes.

However the approach needed for messages that are limited to a small number of recipients requires a different approach to succeed. This will be the topic of the next blog entry.
Genesi Network: Genesi - Main Site Power2People PowerDeveloper