liveBook · Manning

Peer routing

As explained in Rust Servers, Services, and Apps

Peer routing is a technique in which nodes forward messages toward destination peers through other nodes in a peer-to-peer network.

Peer routing forwards messages toward destination peers through other nodes when the receiving node is not the intended destination. It is a core requirement for peer-to-peer communication. section 11.1 section 11.1.4

A routing design must account for:

  • Maintaining a peer routing table containing references to other peers. section 11.1.4
  • Handling networks with thousands of dynamically joining and leaving nodes, where no single node can keep a complete, accurate table. section 11.1.4
  • Using knowledge of other peers to communicate with a target node. section 11.2

Packet-like forwarding

A node can receive a message intended for another peer and forward it along one of several possible routes, similar to how data packets are distributed in the IP protocol. section 11.1

Figure 11.1 Client/server vs. peer-to-peer computing

Compare client/server communication with peer-to-peer communication before applying routing to a node network. section 11.1

How Rust Servers, Services, and Apps covers it

How deep it goes
Defines routing tables and dynamic-network constraints, but does not detail routing algorithms or implementation steps.
Examples
Uses IP packet distribution and client/server-versus-P2P network diagrams as explanatory examples.
What it assumes
Assumes basic peer-to-peer network concepts and distinguishes nodes from peers while introducing routing as a network requirement.
How it connects
Connects peer discovery, peer identity, transport, security, messaging, and content discovery.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Rust Servers, Services, and Apps. The section links point to the parts of the book it draws on.