Flexicast QUIC Demo

Run a receiver

To run a receiver and join the demo, you only need docker installed. The receiver connects to the Flexicast source (193.191.171.131:4435) and receives heartbeats over multicast. If the receiver notices it isn't receiving multicast data natively, it will fallback on AMT.

Requirements

Start the container

docker run --rm -it --init --network host --pull always \
  -e RUST_LOG=info -e SRC_PORT=4435 \
  corentindetry/fcquic-beacon-receiver:fcping 193.191.171.131 1

Or clone the repo and run ./run_demo.sh, which simply runs the same container. Extra arguments are passed to the receiver binary, e.g../run_demo.sh --pretty-print false.

To obtain more information, you can run the script with RUST_LOG set to info or debug.

Use ctrl-c to stop the receiver. When the container is stopping, the QLOGs of the connection are sent over to our source server for analysis. You can disable qlog collection by settingQLOGDIR to an empty string (-e QLOGDIR=).

What you receive

Each heartbeat is a JSON message containing a session id, sequence number, timestamp, and interval,... Heartbeats are sent every 4 seconds, and every 5th heartbeat also carries a random 100 kilobytes payload, the sha256 hash of the payload is sent in the heartbeat to check integrity.

Check that it works

You should receive heartbeats within a few seconds. If the receiver fallsback to AMT, you should see the line Left MULTICAST group 239.239.239.36, or when running the receiver with env RUST_LOG=info, you should see a line Left multicast group after creating AMT gateway.

Data we collect

We will collect the following information about the connection:

This information will only be used for research purposes, and will allow us to improve our Flexicast QUIC implementation, find new potential issues, and gain insights only attainable from real deployments. TODO: retention period and contact.