repositorypackage
0.0.0-20210802190648-70695b7f4a67
Repository: https://github.com/adrianosela/rdtp.git
Documentation: pkg.go.dev
# README
rdtp - Reliable Data Transport Protocol
[IPPROTO_RDTP = 0x9D]
Specification of a reliable transport layer protocol to be used over IP networks, along a simplistic and modular implementation in Go.
To-Dos:
- Reliability
- Polish socket dialer
- Implement socket listener
- Implement selective acknowledgements
- Flow Control
- Receiver window in header
Based on:
Header Format
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| Src. Port | Dst. Port |
+--------+--------+--------+--------+
| Length | Checksum |
+--------+--------+--------+--------+
| Sequence Number |
+--------+-----------------+--------+
| Acknowledgement Number |
+--------+-----------------+--------+
| Flags | |
+--------+ |
| ( Data ) |
+ .... +
Important Notes:
The value for the underlying IP header's "Protocol" field must be set to 0x9D (157 -- currently Unassigned)
Over the Wire
Here's a Wireshark capture of an RDTP packet over the wire:
(The highlighted bytes are the RDTP header + payload)