Categorygithub.com/adrianosela/rdtp
repositorypackage
0.0.0-20210802190648-70695b7f4a67
Repository: https://github.com/adrianosela/rdtp.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

rdtp - Reliable Data Transport Protocol

Go Report Card Documentation license

[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:

  • UDP - User Datagram Protocol [RFC]
  • TCP - Transmission Control Protocol [RFC]

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)