netspel is a playground to analyze various network protocols in situ -- running in a variety of environments. It can be used to understand protocol characteristics and estimate theoretical maximums.
The configuration glues everything together. Preferably the same configuration is used by both readers and writer but there may need to be minor differences. A JSON file is the base for all configuration; but as long as all of the required fields are present, the file is optional. The file is of the form:
{
"scheme-type": "<scheme-type>",
"writer-type": "<writer-type>",
"reader-type": "<reader-type>",
"additional": {
...
}
}
Field | CLI option | Description |
---|---|---|
scheme-type |
--scheme or -s |
A type implementing the Scheme interface |
writer-type |
--writer or -w |
A type implementing the Writer interface |
reader-type |
--reader or -r |
A type implementing the Reader interface |
additional |
--config-string or --config-int |
An optional section specifying arbitrary data used by the specified types. See below for CLI override mechanism. |
Options specified on the command line take precedence over JSON values. Values in the additional section can be specified or override JSON values using the following format:
--config-string <dot path>=<value>
or --config-int <dot path>=<value>
Dot paths are specified relative to the additional section. For example, given the following JSON config file:
{
"additional": {
"udp": {
"port": 23456
}
}
}
The port value can be overridden to a value of 12345
using the CLI option --config-int .udp.port=12345
.
Schemes orchestrate a run without any coupling to a specific protocol. Schemes can exercise readers and writers all while measuring various attributes of the run.
Type | Description |
---|---|
simple |
The simplest scheme available. |
streaming |
The Streaming scheme continuously streams messages at a specific rate. |
Adapters allow schemes to read and write using a specific network protocol.
Type | Protocol |
---|---|
udp |
User Datagram Protocol |
sse |
Server-Sent Events |
Type | Protocol |
---|---|
udp |
User Datagram Protocol |
sse |
Server-Sent Events |