https://github.com/progval/sfcp-doc
[Work in progress] The Simplified Futuristic Connectivity Protocol -- a modified version of the FCP (cjdns' protocol)
https://github.com/progval/sfcp-doc
cjdns fcp sfcp
Last synced: about 2 months ago
JSON representation
[Work in progress] The Simplified Futuristic Connectivity Protocol -- a modified version of the FCP (cjdns' protocol)
- Host: GitHub
- URL: https://github.com/progval/sfcp-doc
- Owner: progval
- License: apache-2.0
- Created: 2018-11-02T18:40:09.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-11-03T18:14:35.000Z (over 6 years ago)
- Last Synced: 2025-02-12T05:38:55.652Z (4 months ago)
- Topics: cjdns, fcp, sfcp
- Homepage:
- Size: 4.88 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# The Simplified Futuristic Connectivity Protocol
The Simplified Futuristic Connectivity Protocol is a networking protocol reusing the
[core concepts of the FCP/`cjdns`](https://github.com/cjdelisle/cjdns/blob/master/doc/Whitepaper.md),
but stripping as much complexity as possible from the protocol, to make
it easier to implement -- and entirely documented.The address space is left unspecified rather than enforced to be fc00::/8 at
the protocol level.## Cryptographic layer
The [CryptoAuth](https://github.com/cjdelisle/cjdns/blob/master/doc/Whitepaper.md#the-cryptoauth)
specification is reuse as-is.
I believe it to already be the minimalist design to fulfill its goals.## Switch layer
The Switch Header is changed from this layout:
```
1 2 3
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 | |
- Route Label -
4 | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
8 | Congest |S| V |labelShift | Penalty |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
```to this one:
```
1 2 3
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 | |
- -
4 | |
- Route Label -
8 | |
- +
12 | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16 | Reserved |S| labelShift | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
```The Route Label expansion is to deal with horizon limits observed in
cjdns/Hyperboria.
As a consequence, the labelShift is one bit longer.Congest and Penalty are removed because they were unused by cjdns.
The Reserved bytes must be set to 0x00.## Routing Layer
The concept of Encoding Scheme is removed from the protocol, because it
was used as a way to deal with horizon limits.