Protocol and test application for discovering neighbors on the same LAN.
Discovery works by broadcasting/multicasting advertisements over a
broadcast neighbor capability. When an advertisement capsule is received
it is compared against previously seen advertisements before taking one of
the following actions:
- If it is our own advertisement, it is ignored and immediately dropped.
- If it hasn't been seen, any local advertisements attached to the
receiving neighbor are rebroadcast to bring the new neighbor up to date.
Then it is added to the NodeCache with a user specified expiration time and
any external interests are notified.
- If it has been seen, the expiration time is refreshed.
Optionally, the protocol can be configured to verify advertisements against
a public key. This can ensure that a node doesn't associate with
unauthorized neighbors, or, can be used as a simple grouping methodology.
For example, groups of nodes on the same LAN can limit associations by
using a separate key pair for each group.
In addition to the normal class files, the protocol also carries the
protocol.properties file. This is a Java properties file that
carries some configuration data and describes the protocol to the webmin
interface. Properties that the protocol will pay attention to are as
follows:
- parameter.algorithm - The algorithm to use when verifying signatures.
- parameter.expiration-time - The amount of time to remember previous
advertisements.
- parameter.advertise-frequency - The amount of time to wait between
advertisement broadcasts.
Note: If you would like to change these in the development
environment you need to edit the protocol.properties.in file
and rerun make.