Skip to content

[WIP] A cross OS transport layer service implemented as a daemon process

License

Notifications You must be signed in to change notification settings

adrianosela/rdtp

Repository files navigation

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)

About

[WIP] A cross OS transport layer service implemented as a daemon process

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages