Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/offchan42/idle-rq-unix
Idle RQ protocol implementation with troublesome communication channel
https://github.com/offchan42/idle-rq-unix
arq c error-handling idle-rq protocol unix
Last synced: about 2 months ago
JSON representation
Idle RQ protocol implementation with troublesome communication channel
- Host: GitHub
- URL: https://github.com/offchan42/idle-rq-unix
- Owner: offchan42
- License: mit
- Created: 2017-05-02T15:34:26.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-05-02T15:47:42.000Z (almost 8 years ago)
- Last Synced: 2024-10-29T20:03:00.952Z (3 months ago)
- Topics: arq, c, error-handling, idle-rq, protocol, unix
- Language: C
- Size: 32.2 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
README
Idle RQ is normally implemented into the link layer as a protocol that control
errors from unreliable communication channel, but we are going to
implement this on the application layer with reliable communication channel
backend. How do we make it unreliable to test the error control scheme of Idle
RQ? The solution is to create a fake troublesome communication channel send()
API that might send or not send on demand. It might also corrupt your packet
information too! (I call packet as a frame in this work because the link layer
call it so)# Details
server serves as secondary AKA receiver
client serves as primary AKA senderbut you need to run the server first!
first we need to define our frame structure
our frame is a short big (2 bytes)
the first 8 bits are for sending byte data and the last 8 bits are reserved
for header data# Running
`make` for compilation on Unix`./server` to start a server then
`./client` to connect to the server, don't forget to change the IP variable
inside client.c file if you don't want to use the default localhost stuff.