Network Protocol Specification

From Death of Net Neutrality Wiki
Jump to: navigation, search

This page details the application-layer, network communications protocol used by this experiment. It is a custom, client-server protocol. Each node in the experiment (each network host) will implement both the client and the server functions of the protocol.

Server

The server will use two ports. One port will be the control port, the other will be the testing port. Data sent over the control port will be sent using TCP, while data sent over the testing port will be sent using UDP. The server will listen to the control port for commands that will tell it what to do on the testing port.

Server Commands
Client Command Server Response Description
CONNECT CONNECTED By responding, the server acknowledges the clients connection and indicates that it is ready to process commands. CONNECT should be used at the start of every connection. Future server versions will respond with CONNECTED #, where # is the server's version number.
TEST LATENCY LATENCY TEST STARTED The server's response indicates that a stream of data is now being sent from the testing port to the client.
DISCONNECT DISCONNECTING Once DISCONNECT is received, the server will acknowledge it and then immediately close the connection.

Each command ends with a new line. Unknown commands are responded to with UNKNOWN COMMAND.