Model - Robot DHQ

Go to content

Model

Design > Node-to-node Comm
The Robot DHQ design incorporates a very simple communications interconnection model. Briefly this is how it compares to the OSI model.

The Application Layer (Layer 7)

Application and end-user processes are encapsulated in the modules and nodes in the Robot DHQ design. Each module or node does a limited number of functions and in the typical case a new function or ability would involve the implementation of an additional node or module. Access to a particular function or module requires knowledge of the network map in order to access the functionality of that particular function or module. Changes to the connections between nodes changes the location of the node in the network map. This is why changes to the connections need to be discouraged. The undesireable consequences of such changes may include the necessity to make software changes in multiple nodes. To avoid this simply add new functionality and don't change existing connections.

Nodes and modules may be dedicated to identifying communication partners, quality of service, user authentication, privacy, etc. Data syntax and other constraints on data transmission are fixed by design. The Robot DHQ design is in a sense hyper focussed on the application layer.

The Presentation Layer (Layer 6)

Data presentation and syntax is fixed by design. Encryption is not a part of the Robot DHQ design. One goal of the design is to make all node-to-node communication as transparent and readable as possible. Message data is function and data oriented and not language oriented. The human readable ASCII codes are to be used by design. The application format and the "network" format are one and the same.

The Session (Layer 5)

The concept of a session is not a part of the Robot DHQ design. Connections are not established, managed or terminated. Applications exist at specific locations within the network map of the individual implementations. If the node running a particular application is powered it is connected and can respond unless it has some sort of software condition that prevents it from responding. Module firmware is coded to "ignore" any situation in which an expected response is not received. This is by design. Each node is expected to be autonomous and adopt some variety of "safe" behavior under any and all conditions as much as possible by design.

The Transport Layer (Layer 4)

The transport layer is responsible for flow control, end-to-end error recovery and successful complete data transfer. In the Robot DHQ design all messages are designed to be very short. Extremely long messages are avoided except that they may be produced for debug or diagnostic purposes. Fail safe and error tolerant design is specified and is expected. The Robot DHQ model is more like UDP than TCP or SPX.

The Network Layer (Layer 3)

The network layer provides switching, routing and the creation of logical paths or virtual circuits. This functionality is necessary and is the responsibility or the routing module and nodes that implement the routing module code. Routing instructions are encoded in a message as a message prefix when needed. This can be often or infrequent as it depends on the network map and the design of the implementation as a whole. Routing and forwarding are functions of the routing modules. For more on the Robot DHQ communications and network design go HERE.

Internetworking, error handling, congestion control and packet sequencing are not implemented in the Robot DHQ design but some of these may be implemented as separate modules in the future.

The Data Link Layer (Layer 2)

Most of the concepts covered by the data link layer are foreign to the Robot DHQ design. A few of these concepts may be implemented as standalone modules in the future.

The Physical Layer (Layer 1)

The Robot DHQ design specifies one particular physical interconnect cable with its electrical and mechanical characteristics. In simplest terms it is the electrical characteristics of the Arduino environment. ASCII serial TTL level logic includeing SPI, I2C, etc. For more about the Robot DHQ cable go HERE.
Back to content