Skip to content

Add CRC32, ARQ, and timeout retransmission support#30

Open
Kiryuumaru wants to merge 1 commit intomasterfrom
feat/integrity-data
Open

Add CRC32, ARQ, and timeout retransmission support#30
Kiryuumaru wants to merge 1 commit intomasterfrom
feat/integrity-data

Conversation

@Kiryuumaru
Copy link
Owner

Add CRC32, ARQ, and timeout retransmission support

Enhanced the NetConduit multiplexer protocol with significant improvements to data integrity, reliability, and performance:

  • Added CRC32 checksums for frame integrity and ARQ logic for retransmission of corrupted or lost frames.
  • Expanded frame header to 17 bytes, including CRC32, sequence numbers, and extended frame types (e.g., NACK).
  • Implemented timeout-based retransmission for unreliable transports (e.g., UDP) with configurable timeouts and retry limits.
  • Introduced selective repeat ARQ with per-channel sequence tracking, reorder buffers, and NACK-based retransmission.
  • Updated control frames: extended CREDIT_GRANT to include ack_seq and added a new NACK frame.
  • Replaced frame-count-based resend buffer with a byte-based buffer aligned with MaxCredits for guaranteed retransmission safety.
  • Added detailed channel statistics for retransmissions and CRC failures.
  • Updated tests to verify reliability under packet drops, corruption, and mixed frame sizes.
  • Improved documentation to reflect the new frame format and ARQ features.

Enhanced the NetConduit multiplexer protocol with significant improvements to data integrity, reliability, and performance:

- Added CRC32 checksums for frame integrity and ARQ logic for retransmission of corrupted or lost frames.
- Expanded frame header to 17 bytes, including CRC32, sequence numbers, and extended frame types (e.g., NACK).
- Implemented timeout-based retransmission for unreliable transports (e.g., UDP) with configurable timeouts and retry limits.
- Introduced selective repeat ARQ with per-channel sequence tracking, reorder buffers, and NACK-based retransmission.
- Updated control frames: extended `CREDIT_GRANT` to include `ack_seq` and added a new `NACK` frame.
- Replaced frame-count-based resend buffer with a byte-based buffer aligned with `MaxCredits` for guaranteed retransmission safety.
- Added detailed channel statistics for retransmissions and CRC failures.
- Updated tests to verify reliability under packet drops, corruption, and mixed frame sizes.
- Improved documentation to reflect the new frame format and ARQ features.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant