Skip to content

andres-erbsen/rrtcp

Repository files navigation

Round Robin TCP

This repository contains implementation and testing code for Round Robin TCP, a "new" "transport layer network protocol" which uses a round-robin pool of TCP connections to facilitate better bidirectional audio over TCP.

Dependencies

The implementation and testing code is written in the Go programming language. The TOR tests and implementation require Go 1.4.1 or greater to run.

Protocols

Go implementations of UDP, TCP, and Round Robin TCP are located in the fnet folder. They use the Go net library which uses kernel implementations of these protocols.

Tests

*-clock-station runs simple peer-to-peer tests for each network protocol. To run the tests yourself, you must run two instances of a given clockstation, one as the listener and one as the dialer, both connected to the same address.

For example, to run the Round Robin TCP tests:

cd rrtcp-clock-station
go build
./rrtcp-clock-station -address "localhost:1111" -l
./rrtcp-clock-station -address "localhost:1111"

This listener has arbitrarily been chosen as the sender. Every 50 ms, it will send a packet and print the application send time of the packet, using the code in clockstation.

The dialer receiver will print the send time and corresponding receive time for each packet it receives, using the code in clockprinter.

Tor

udp-over-tor contains code that uses a Go Tor implementation to send packets using Round Robin TCP over TOR.

udp-over-tor-test contains code that performs tests analogous to the ones above, but using Tor. It includes an argument -deterministic to deterministcally select a TOR path given a seed, for the purpose of conducting symmetrical tests.

About

Realtime audio-over-TCP that sucks less

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published