mirror of
https://github.com/jmcorgan/fips.git
synced 2026-07-22 07:48:26 +00:00
Design documentation illustration and review pass
Wire format diagrams: - Add 24 SVG diagrams covering every FMP and FSP wire format: common prefix, established frame headers, Noise IK handshake messages, handshake flow, TreeAnnounce, AncestryEntry, FilterAnnounce, LookupRequest/Response, SessionDatagram, Disconnect, SenderReport, ReceiverReport, FSP complete message, SessionSetup/Ack/Msg3, PathMtuNotification, CoordsRequired, PathBroken, and MtuExceeded - Replace ASCII art in fips-wire-formats.md with SVG references - Apply text edits to fips-mesh-layer.md, fips-mesh-operation.md, fips-transport-layer.md, and fips-ipv6-adapter.md Spanning tree dynamics: - Add 12 topology SVG diagrams: node join (overview + 3-panel steps), three-node convergence (4-panel), link addition with depth labels, link removal, partition formation, and 6 real-world example diagrams (office, mixed-link, two-site WAN topologies) - Rewrite all code blocks to narrative prose with diagram references - Add inline prior art attributions distinguishing Yggdrasil-derived concepts from FIPS-novel contributions - Add 3 new references (De Couto ETX, IEEE 802.1D, RFC 2328 OSPF) and Prior Art summary - Remove outdated sections: indirect partition note, integration test gaps, DHT-based lookup reference - Change "must elect a new root" to "must rediscover its new root" Spanning tree design review (fips-spanning-tree.md): - Rename "Root Election" to "Root Discovery" across docs - Add "What Is a Spanning Tree?" introductory section - Add parent selection intro explaining self-organization role - Fix tree distance example: 4 hops, not 2 - Clarify timestamp field as advisory only - Remove unimplemented ROOT_TIMEOUT and TREE_ENTRY_TTL from timing parameters and implementation status tables Bloom filter design review (fips-bloom-filters.md): - Add "What Is a Bloom Filter?" intro section - Rewrite Purpose section to frame filters as routing path identification - Correct FPR analysis (old values were 3-50x overstated) - Add Filter Occupancy Model based on network size and tree position - Fix filter expiration to describe actual MMP-based cleanup - Combine Scale Considerations with Size Classes after Wire Format - Fix stale FPR values in src/bloom/mod.rs comments Session layer review (fips-session-layer.md): - Add inline prior art attributions: Noise Protocol Framework, WireGuard, DTLS (RFC 6347), IKEv2 (RFC 7296), RFC 1191 PMTUD, Yggdrasil, NIP-44 - Replace warmup state machine ASCII art with SVG diagram - Convert CoordsWarmup wire format code block to prose - Add External References section with full citations Level 5 implementation doc cleanup: - Delete fips-software-architecture.md (redundant with protocol layer docs) - Delete fips-state-machines.md (Rust tutorial, not protocol design) - Add fipsctl command reference to README.md - Update cross-references in fips-intro.md, docs/design/README.md, fips-transport-layer.md, fips-configuration.md Fixes: - Correct fd::/8 to fd00::/8 in fips-session-layer.md, fips-identity-derivation.svg, and fips-node-architecture.svg - Fix config example MTU: 1197 → 1472 in fips-configuration.md File organization: - Move all SVG diagrams into docs/design/diagrams/ subdirectory - Update all diagram references to use new paths
This commit is contained in:
@@ -108,14 +108,14 @@ and applications know nothing about which physical media carry their traffic.
|
||||
This separation means new transports, protocol features, and application
|
||||
interfaces can be added independently.
|
||||
|
||||

|
||||

|
||||
|
||||
### Mapping to Traditional Networking
|
||||
|
||||
Readers familiar with the OSI model or TCP/IP networking may find it helpful
|
||||
to see how FIPS concepts relate to traditional layers:
|
||||
|
||||

|
||||

|
||||
|
||||
Note that FMP spans what would traditionally be separate link and network
|
||||
layers. This is intentional — in a self-organizing mesh, the same layer that
|
||||
@@ -168,7 +168,7 @@ Two application interfaces sit at the top of the stack: a native datagram
|
||||
API addressed by npub, and an IPv6 TUN adapter that maps npubs to `fd00::/8`
|
||||
addresses so unmodified IP applications can use the network transparently.
|
||||
|
||||

|
||||

|
||||
|
||||
The mesh routes application traffic across heterogeneous transports
|
||||
transparently. A packet may traverse WiFi, Ethernet, UDP/IP, and Tor links
|
||||
@@ -177,7 +177,7 @@ which transports are involved. Each hop is independently encrypted at the
|
||||
link layer, while a single end-to-end session protects the payload across
|
||||
the entire path.
|
||||
|
||||

|
||||

|
||||
|
||||
---
|
||||
|
||||
@@ -198,7 +198,7 @@ same keypair.
|
||||
|
||||
### FIPS Identity Handling
|
||||
|
||||

|
||||

|
||||
|
||||
The pubkey is the node's cryptographic identity, used in Noise IK handshakes
|
||||
for both link and session encryption. It is never exposed beyond the
|
||||
@@ -299,7 +299,7 @@ complementary mechanisms provide the information each node needs.
|
||||
|
||||
### Spanning Tree: The Coordinate System
|
||||
|
||||

|
||||

|
||||
|
||||
Nodes self-organize into a spanning tree through gossip — each node
|
||||
exchanges announcements with its direct peers and independently selects a
|
||||
@@ -363,7 +363,7 @@ the full network.
|
||||
See [fips-bloom-filters.md](fips-bloom-filters.md) for filter parameters and
|
||||
mathematical properties.
|
||||
|
||||

|
||||

|
||||
|
||||
The outbound filter for peer Q merges this node's identity with tree peer
|
||||
inbound filters except Q's (split-horizon exclusion). This creates
|
||||
@@ -405,7 +405,7 @@ These are cached at each node after being learned through discovery
|
||||
(LookupRequest/LookupResponse) or session establishment (SessionSetup). The
|
||||
coordinate cache is the critical piece that enables efficient forwarding.
|
||||
|
||||

|
||||

|
||||
|
||||
### Coordinate Caching and Discovery
|
||||
|
||||
@@ -419,7 +419,7 @@ Session establishment (SessionSetup) also carries coordinates, warming
|
||||
transit node caches along the path so that data packets can be forwarded
|
||||
without individual discovery at each hop.
|
||||
|
||||

|
||||

|
||||
|
||||
### Error Recovery
|
||||
|
||||
@@ -783,8 +783,6 @@ of self-sovereign identity systems. No novel cryptography is introduced.
|
||||
|
||||
| Document | Description |
|
||||
| -------- | ----------- |
|
||||
| [fips-software-architecture.md](fips-software-architecture.md) | Stable architectural decisions guiding the codebase |
|
||||
| [fips-state-machines.md](fips-state-machines.md) | Phase-based state machine pattern (Rust) |
|
||||
| [fips-configuration.md](fips-configuration.md) | YAML configuration reference |
|
||||
|
||||
### External References
|
||||
|
||||
Reference in New Issue
Block a user