Initial commit
This commit is contained in:
commit
6599484af0
121
CRAPRNIAC Protocol.md
Normal file
121
CRAPRNIAC Protocol.md
Normal file
@ -0,0 +1,121 @@
|
||||
# CRAPRNIAC: Completely Ridiculous Amateur Protocol for Radio Node IP Auto-Configuration
|
||||
|
||||
## Status of this Memo
|
||||
|
||||
This document describes version 0.1a of CRAPRNIAC, a protocol designed to facilitate IP network bootstrapping over very slow amateur radio links (e.g., VHF AX.25 at 1200 baud). It is published for whatever unexpected practical utility it may have. Distribution of this memo is unlimited.
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
Existing service discovery and dynamic host configuration protocols for TCP/IP networks are not ideal for bandwidth-constrained, high-latency, and lossy VHF packet radio environments. CRAPRNIAC addresses this by defining a join-and-configure protocol between a "base station" and one or more "client stations" that aims to cut the chatter.
|
||||
|
||||
The goal is to:
|
||||
- Minimize the number of packet exchanges required for a client to join a VHF packet network.
|
||||
- Allow manual or automatic IP configuration with a minimum of overhead.
|
||||
- Bring honor to you and your house.
|
||||
|
||||
## 2. Protocol Overview
|
||||
|
||||
CRAPRNIAC defines four primary message types:
|
||||
|
||||
| Message Type | Purpose |
|
||||
|:-------------|:--------|
|
||||
| CRAP_BEACON | Base station announces network availability. |
|
||||
| CRAP_REQUEST | Client requests to join the network. |
|
||||
| CRAP_ACCEPT | Base station assigns configuration to client. |
|
||||
| CRAP_ACK | Client acknowledges receipt and acceptance. (optional) |
|
||||
|
||||
Messages are transmitted as plain ASCII text using simple pipe-separated (`|`) fields, allowing easy parsing by humans and computers alike.
|
||||
|
||||
## 3. Message Format
|
||||
|
||||
Each CRAPRNIAC message is a single text string with the following general format:
|
||||
|
||||
```
|
||||
<PROTOCOL_VERSION>|<MESSAGE_TYPE>|<PAYLOAD_FIELDS...>
|
||||
```
|
||||
|
||||
### 3.1 Example Messages
|
||||
|
||||
#### CRAP_BEACON
|
||||
```
|
||||
0.1|CRAP_BEACON|KI5QKX-10|HAMNET-HOUSTON
|
||||
```
|
||||
Fields:
|
||||
- Base Station Callsign
|
||||
- Network Name
|
||||
|
||||
#### CRAP_REQUEST
|
||||
```
|
||||
0.1|CRAP_REQUEST|N0CALL-7|HAMNET-HOUSTON
|
||||
```
|
||||
Fields:
|
||||
- Client Callsign
|
||||
- Network Name
|
||||
|
||||
#### CRAP_ACCEPT
|
||||
```
|
||||
0.1|CRAP_ACCEPT|N0CALL-7|HAMNET-HOUSTON|44.127.254.12/24|44.127.254.1|44.127.254.1|3600
|
||||
```
|
||||
Fields:
|
||||
- Client Callsign
|
||||
- Network Name
|
||||
- Assigned IP Address
|
||||
- Netmask
|
||||
- Gateway IP
|
||||
- DNS Server IP
|
||||
- Lease Time (seconds)
|
||||
|
||||
#### CRAP_ACK (optional)
|
||||
```
|
||||
0.1|CRAP_ACK|N0CALL-7|44.127.254.12|OK
|
||||
```
|
||||
Fields:
|
||||
- Client Callsign
|
||||
- Assigned IP Address
|
||||
- Status
|
||||
|
||||
## 4. Base Station Behavior
|
||||
|
||||
1. Periodically transmit CRAP_BEACON.
|
||||
2. Upon receiving a CRAP_REQUEST, allocate an IP address.
|
||||
3. Respond with CRAP_ACCEPT containing IP configuration details.
|
||||
4. Optionally await CRAP_ACK.
|
||||
5. Maintain a list of active clients and lease expirations.
|
||||
|
||||
## 5. Client Behavior
|
||||
|
||||
1. Listen for CRAP_BEACON transmissions.
|
||||
2. Send CRAP_REQUEST to desired base station.
|
||||
3. Receive and parse CRAP_ACCEPT.
|
||||
4. Configure network stack accordingly.
|
||||
5. Optionally send CRAP_ACK.
|
||||
6. Periodically rejoin if lease expires or connectivity is lost.
|
||||
|
||||
## 6. Design Considerations
|
||||
|
||||
- **Minimal Airtime Usage:** Critical for low-bandwidth links.
|
||||
- **Human-Readable:** Easy troubleshooting with a dumb terminal.
|
||||
- **Flexibility:** Can extend in future versions with additional fields.
|
||||
- **Backward Compatibility:** Protocol version prefix allows for graceful upgrades.
|
||||
|
||||
## 7. Security Considerations
|
||||
|
||||
The S in CRAPRNIAC stands for Security!
|
||||
|
||||
## 8. Other Considerations
|
||||
|
||||
CRAPRNIAC will squat on whatever amateur frequencies operators choose.
|
||||
|
||||
## 9. Conclusion
|
||||
|
||||
CRAPRNIAC provides a starting point for connecting TCP/IP stacks over slow amateur radio links. By limiting the number and length of transmissions required for negotiation, it offers networking over VHF that works like it smells.
|
||||
|
||||
## 10. Further Development
|
||||
|
||||
Future enhancements may include optional mesh extensions self-organizing slowness.
|
||||
|
||||
---
|
||||
|
||||
**Author:** John Burwell
|
||||
**Date:** April 2025
|
||||
|
||||
Loading…
Reference in New Issue
Block a user