A description of the routing process involved
Prerequisites: Readers should be familiar with the structure of the packets.
A packet includes a sender, a recipient and a target
The sender is set by the module creating the packet. The sender remains unchanged by any intermediary hop.
The recipient is set to the next hop on the route. The recipient field is always updates by any intermediary hop. Specifically, it is set to the next hop
The target is set by the sender. The target remains unchanged by any intermediary hops. The target is the ultimate destination for the packet.
On any incoming packets the routing table is updated.
Thereafter the following decision table is used to determine what to do with the packet:
|Me||Me||process the packet|
|Broadcast||Me||process the packet|
|Broadcast||Broadcast||process the packet|
The packet is processed locally. The packet is ACK'ed as success if it is executed properly or if it has turned into a no-op locally. It is ACK'ed as failure if a code path fails for any reason.
If a route is known towards the target, a packet with flags FORWARD and SUCCESS is generated and send
to the sender via the best known route to the sender (which may be different from the one the packet has
Note: the FORWARD and SUCESS packet signals only that a route was known and an attempt is started to deliver the packet. it does not indicate successfull forward delivery.
if no route is known towards the target, same process as above, except the SUCCESS flag is omitted.
The packet is sent as a broadcast on all media except the one where it came in on.
For example: If the packet came in via wireless (WLAN, 802.11) it will be forwarded via the 868Mhz radio, but not on the wireless. No ACK will be generated.
The packet is silently dropped.
We know several different hosttypes
1. a switch (e.g. a ) plug/socket
2. a java application/library (swing/android)
3. a cloud application