Netcat

nc — arbitrary TCP and UDP connections and listens

The nc (or netcat) utility is used for just about anything under the sun involving TCP, UDP, or UNIX-domain sockets. It can open TCP connections, send UDP packets, listen on arbitrary TCP and UDP ports, do port scanning, and deal with both IPv4 and IPv6.

-lListen for an incoming connection rather than initiating a connection to a remote host.
-uUse UDP instead of TCP.
nc -l 8000

mbuffer – measuring buffer

mbuffer buffers I/O operations and displays the throughput rate. It is multi-threaded, supports network connections, and offers more options than the standard buffer.

-qquiet – do not display the status on the standard error output
-s <size>Use blocks of size bytes for buffer (default is determined on startup)
-m <size>Use a total of size bytes for buffer (default 2% of available memory) – size can be set with a trailing character (b and B for Byte, k for kByte, M for MByte, G for Gigabyte, and with % for a percentage of total physical memory)
mbuffer -q -s 128k -m 1G

pv – monitor the progress of data through a pipe

pv shows the progress of data through a pipeline by giving information such as time elapsed, percentage completed (with progress bar), current throughput rate, total data transferred, and ETA.

-r, --rateTurn the rate counter on. This will display the current rate of data transfer.
-t, --timerTurn the timer on. This will display the total elapsed time that pv has been running for.
-a, --average-rateTurn the average rate counter on. This will display the average rate of data transfer so far.
-b, --bytesTurn the total byte counter on. This will display the total amount of data transferred so far.
pv -rtab