Title: SpeckZone Formation and Maintenance in Specknets
1SpeckZone Formation and Maintenance in Specknets
- Andrew Bates
- c.a.bates_at_sms.ed.ac.uk
2Overview
- Why do we need speckZones?
- The algorithm to form and maintain them.
- What is a good speckZone?
- Size
- Shape
- Connectivity
- Density
- Controlling the size
- Determining the number of specks in a zone.
3The need for speckZones
- An individual speck does not have enough memory
or processing power to be useful. - We can only run very simple programs in a few
Kilobytes of memory. - It is impossible to route between thousands of
individual specks with the current memory
constraint. - An individual speck moves around, is unreliable
and spends a lot of its time sleeping.
4The need for speckZones
- Group specks into speckZones of roughly equal
size. - The blue internal specks share memory and
processing power. - The green border specks handle communication with
neighboring zones. - Each speck can only be a member of one speckZone.
5The need for speckZones
- We can now program a speckZone rather than an
individual speck. - This gives us increased memory, processing power
and reliability. - We only have to route messages between a few
hundred zones rather than a few thousand
individual specks.
6Constraints for the speckZone algorithm
- The algorithm should be fully decentralised.
- It should not rely on a single speck to manage
each speckZone, as specks are unreliable. - Synchronisation should not be required.
- The speckZone must continue to operate if some of
its specks move away or run out of power. - The size of the speckZone must be maintained
despite the unreliability and mobility of specks.
7The algorithm
- The algorithm is decentralised, leaderless and
uses only local information. - Each speck has a state (or colour) that is
initially random. - Specks exchange colour information with their
one-hop neighbours. - If more than half of the surrounding specks have
a different colour from a given speck, that speck
will change colour. - The new colour is chosen according to the
distribution of colour in the local area. - Specks like to be the same colour as most of
their neighbours.
8Simulation (sparse network)
9Simulation (dense network)
10A good speckZone
- SpeckZones will have an optimum size
- Large zones have more memory/processing power.
- But if the zone is too large, it will be
expensive to manage. - The members of a zone should be close together
to reduce power required for communications
within the zone. - Applications that require a large amount of
communication between the zone may benefit from a
large surface area along zone boundaries.
11Controlling the size of a speckZone
- As we have just seen, there is a relationship
between the density of the network and the
natural size of the zones. - The density of the network determines the average
number of one-hop neighbours. - Using position information from Ryans Algorithm,
we can control the number of one-hop neighbours
and therefore the size of the zone.
12Controlling the size of a speckZone
- Specks start with a communication range of zero.
- If the zone size is below the specified minimum,
the communication range is increased. - If the zone size is above the specified maximum,
the communication radius is reduced. - The amount of alteration is proportional to the
difference between the required and actual zone
size.
13Preventing zones becoming too large
- Before a speck changes state, it must check if it
will make the new zone too large. If so, it
should not change state. - If we have a maximum zone size of 20, the blue
speck must not change to green, as this would
create one large zone. - If the zone is too large, the specks on the edge
of the zone should change state with an increased
probability.
14Counting the number of specks in a zone
- Each speck now needs to know how many specks are
in its current zone. - A zone must be able to count itself in a
decentralised way. - Each speck maintains a list of the members of the
zone that it belongs to. - This must be updated as the specks moves around
or join different zones.
15The simple counting method
- Each speck periodically sends a message
containing its ID and a sequence number. - Specks store these ID, sequence number pairs
and broadcast them on every iteration of the
algorithm. - Any specks that have not been heard from for a
few iterations are removed from the zone count. - A disadvantage of this approach is that messages
must be sent when there are no changes in the
zone.
16The efficient counting method
- Only changes to the members of a zone are
broadcast throughout the zone. - This significantly reduces the amount of
information that is sent in static networks. - If a new speck joins a zone, a message saying
that it has been added propagates throughout the
zone. - When a speck leaves the zone, a message saying
that it has left propagates throughout the zone.
17Joining and leaving zones
- When a speck changes state, it must
- Inform the old zone that it has left (if
possible) - Inform the new zone that it has joined
- If a speck does not hear from a neighbouring
speck for a few iterations, it should broadcast a
message advising that the neighbouring speck has
left the zone. - If a speck receives a message saying that it
should be removed from the zone, it must still be
in the zone.
18Maintaining accuracy when specks leave a zone
- A single speck leaving the zone may cut off more
than one speck. - Consider speck A. The source of B, C and D is B.
- If B leaves the zone, B should be removed form
As zone members list.
- A will now over-estimate the zone size at 3, as
it thinks C and D are still in the zone. - When B is removed, any other specks whos only
source is B should also be removed (C and D in
this case).
19Simulation (controlling the zone size)
- 1,000 Specks
- 100 Iterations
- Variable communication range
- Variable iteration times
- Minimum zone size 30
- Maximum zone size 40
- Using the simple counting method, due to a lot of
movement in the Specknet.
20Simulation (controlling the zone size)
21Simulation results
Sim time