Some thoughts in 2012. Most of the grubby network data format rules must be agreed upon between pairs nodes which are connected by a data link. Here are some conventions that require a broader agreement but this is good background for the issues. An earlier spike with some merit.
One of the aims of DSR is to minimize the amount of global agreement necessary for smooth network function. This helps avoid travails such as the current IPv6 turmoil.
We assume a net of nodes and data links connecting nodes pairwise. A node knows a connected link by an interface number from 1 to 15.
Implicit here is that nodes are simple conventional software platforms which sometimes crash but have non-volatile storage into which they can afford to write occasionally, like a disk. Reputation of nodes will emerge at higher levels and reputations last for timescales longer than mean-time between crashes.
As I review the material below I realize that I have made some implicit suppositions which I should perhaps warn the reader of
In this terminology the leaves of the net are themselves nodes and SS within packets arriving there serves only to convey the return path, if any. In fact SS interpretation is at the discretion of the leaf and its meaning is left up to the sender and receiver. Nodes might charge more for a large SS and thus create an incentive to put data for the receiver in the payload. If the packet includes a return path then upon arrival, the return path serve as a destination path that leads back to the sender.
If a packet arrives at a node with a return path denoting a path thru a local neighborhood of conventional nodes (that obey these conventions) then the node knows where the packet entered the neighborhood.
There are link messages on a link that are addressed only to the node at the other end of the link. They are conceptually distinct from packets and evil packets from afar must not be mistaken for link messages. Packets could be carried between nodes in link messages but that is a local decision. The integrity of link message may be more critical than packet blocks but again that is not a global matter. More here.
Global upper limits on the size of each of SS and payload might be strategic. Alternatively scouts might gather limits imposed by particular links.
Possible extra turn op semantics
traceroute as possible global protocol.
Circuits, Backpressure, Hardware
When a node comes up it senses some interfaces. It recalls its own private and public keys. It sends out on each of its interfaces a ‘running’ link message which includes its own public key. Whenever a ‘running’ or ‘welcome’ link message arrives on an interface it associates the public key in the payload with the interface and for ‘running’ responds with a ‘welcome’ message over that interface, including its own public key. For the ‘running’ message all scouts that are registered with the recipient node, are notified of the public key and interface number.
When the destination path of a newly arrived packet is empty, the node is the end receiver of a packet. Such a packet may be from a network scout whereupon it replies with its array of interfaces along with available public keys. It also remembers the scout and the path by which to reach it. The packet from the scout must include funds for the reply, and perhaps a bit extra. Possibly a financial arrangement with the scout may be made at this time for the node to inform the scout of new neighbors. There is a pattern here: Higher level functions pay lower level functions.
See some possible link formats.