Measure latency using TCP.
tcp-latency provides an easy way to measure latency using TCP.
Inspired by other similar tools,
tcp-latency comes from the need of running network diagnosis/troubleshooting tasks with Python on serverless infrastructure (as many providers don't include ping/ICMP support) but should work too in any other environment with Python>=36.
- Runs as a command-line tool or inside your code as a module.
- Custom parameters for a port, runs, timeout and wait time between runs.
- IPv4 (e.g 18.104.22.168) and domain (e.g google.com) host support.
- Human readable output when running as a command-line tool.
- No external dependencies.
- Small and extensible.
tcp-latency can be used both as a module and as a standalone script.
>>> from tcp_latency import measure_latency >>> measure_latency(host='google.com') [34.57] >>> measure_latency(host='22.214.171.124', port=80, runs=10, timeout=2.5) [433.82, 409.21, 409.25, 307.09, 306.64, 409.45, 306.58, 306.93, 409.25, 409.26]
Note: If omitted,
measure_latency() arguments use the same defaults that command-line mode.
$ tcplatency -h usage: tcp-latency [-h] [-p [p]] [-t [t]] [-r [r]] [-w [w]] h Measure latency using TCP. positional arguments: host optional arguments: -h, --help show this help message and exit -p [p], --port [p] (default: 443) -t [t], --timeout [t] (seconds, float, default: 5) -r [r], --runs [r] number of latency points (int, default: 5) -w [w], --wait [w] between each run (seconds, float, default: 1)
$ tcp-latency google.com tcp-latency google.com google.com: tcp seq=0 port=443 timeout=5 time=15.16 ms google.com: tcp seq=1 port=443 timeout=5 time=15.63 ms google.com: tcp seq=2 port=443 timeout=5 time=14.86 ms google.com: tcp seq=3 port=443 timeout=5 time=14.76 ms google.com: tcp seq=4 port=443 timeout=5 time=14.59 ms --- google.com tcp-latency statistics --- 5 packets transmitted rtt min/avg/max = 14.76/15.1025/15.63 ms $ tcp-latency 126.96.36.199 --port 80 --runs 3 --wait 0.5 tcp-latency 188.8.131.52 184.108.40.206: tcp seq=0 port=80 timeout=5 time=230.2 ms 220.127.116.11: tcp seq=1 port=80 timeout=5 time=228.96 ms 18.104.22.168: tcp seq=2 port=80 timeout=5 time=224.51 ms --- 22.214.171.124 tcp-latency statistics --- 3 packets transmitted rtt min/avg/max = 228.96/229.57999999999998/230.2 ms $ tcp-latency google.com -r 1 tcp-latency google.com google.com: tcp seq=0 port=443 timeout=5 time=34.36 ms --- google.com tcp-latency statistics --- 1 packets transmitted
pip install tcp-latency
How to contribute
- Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
- Fork the repository on GitHub to start making your changes to the master branch (or branch off of it).
- Write a test which shows that the bug was fixed or that the feature works as expected.
- Send a pull request and bug me until it gets merged and published.
Some things that would be great to have:
- Add transmitted vs received statistics (e.g packet loss)
- Add bytes information (ping-like)
- Add support for machine-readable output (JSON,XML,YAML).
- Add automated releases with TravisCI.
- Improve test suite.
How to contributeinformation (pyenv, tox, pre-commit...)
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size tcp_latency-0.0.10-py3-none-any.whl (5.7 kB)||File type Wheel||Python version py3||Upload date||Hashes View|
|Filename, size tcp-latency-0.0.10.tar.gz (4.4 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for tcp_latency-0.0.10-py3-none-any.whl