TCPSPRAY(1)

๐Ÿ“ฆ
version 1.0.9 ยท 2 versions
, in alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, epel 10, epel 9, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable

๐ŸŒธ TCPSPRAY(1) โ€” like, the actual manual page, bestie ๐ŸŒธ

okay so this is the manual for tcpspray from the User's Manual section, and I'm gonna walk you through it like we're texting at 2am, except every single flag is still exactly where it should be. no cap. ๐Ÿ’…


โœจ NAME โœจ

tcpspray โ€” TCP/IP bandwidth measurement tool (Discard and Echo client)


๐ŸŽ€ SYNOPSIS ๐ŸŽ€

tcpspray [-46ev] [-b block_size] [-d wait_ยตs] [ -f filename] [-n count]
<hostname> [port]

periodt. that's the whole shape of it. ๐Ÿ’–


๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

so tcpspray uses the Discard protocol (that's RFC 863) or the Echo protocol (that's RFC 862) to do bandwidth measurements of TCP sessions between your local system and a Discard server or an Echo server. it's giving "scientific but make it chill." โœจ

on Unix-based hosts you can get a Discard and/or Echo server from the Internet super-server, inetd. and on Windows NT, the simple network protocols optional component does the same thing. iconic cross-platform moment. ๐Ÿ’…

you must specify the name or address of the server node. no server, no vibe check, sorry.

tcpspray will automatically try to use IPv6 when it's available. if IPv6 isn't available, or if it fails, it falls back to IPv4 like a polite little bestie. ๐Ÿซถ

but here's the tea: tcpspray4 and tcpspray6 are pickier โ€” they only try IPv4 and IPv6 respectively. no fallback, no backup plan, main character energy only. ๐Ÿ‘‘


๐Ÿ’– OPTIONS ๐Ÿ’–

  • -4, --ipv4 โ€” force usage of TCP over IPv4. that's it. that's the whole thing. ๐Ÿ‡ธ๐Ÿ‡ฎ
  • -6, --ipv6 โ€” force usage of TCP over IPv6. the other one. ๐Ÿ’œ
  • -b block_size, --bsize block_size โ€” send a block of the specified byte size. the default is 1024. slay. ๐Ÿ”ฅ
  • -d wait_ยตs, --delay wait_ยตs โ€” waits for the given amount of microseconds after any given block was sent, before attempting to send the next one. there is no delay by default, so it's just full send unless you say otherwise. โญ
  • -e, --echo โ€” use the Echo protocol instead of Discard. so instead of just throwing data out there, tcpspray will measure the time required to send data and receive it back. it's the difference between posting and getting a reply, honestly. ๐Ÿ˜ญ
  • -f filename, --fill filename โ€” read data from the specified file to fill sent blocks with. if the file is smaller than the size of blocks, or if no file were specified, the remaining trailing bytes are all set to zero. filling the void with zeros, literally. ๐Ÿ™ˆ
  • -h, --help โ€” display some help and exit. we love a helpful icon. ๐ŸŽ€
  • -n block_count, --count block_count โ€” send the specified amount of data blocks for the measurements. the default is 100. โœจ
  • -V, --version โ€” display program version and license and exit. the receipts, bestie. ๐Ÿงพ
  • -v, --verbose โ€” display more verbose informations. in particular, tcpspray will print a dot each time a block is sent. and if the Echo protocol is used (that's option -e), those dots will be erased as data is received back. so cute, the dots come and go. ๐Ÿฆ‹

๐ŸŒˆ DIAGNOSTICS ๐ŸŒˆ

if you get no response while you know the remote host is up, it's most likely that it has no Discard/Echo service running, or that these services are blocked by a firewall. not me getting ghosted by a firewall. ๐Ÿ’€

running tcptraceroute6(8) or tcptraceroute(8) toward the IPv6 or IPv4 remote host (respectively) might help detecting such a situation. detective work, but make it network-y. ๐Ÿ”


๐Ÿ”’ SECURITY ๐Ÿ”’

tcpspray does not require any privilege to run. low maintenance queen. ๐Ÿ‘‘


๐Ÿ’œ SEE ALSO ๐Ÿ’œ

tcp(7), inetd(8), tcptraceroute6(8), tcptraceroute(8)


๐ŸŒธ AUTHOR ๐ŸŒธ

Rรฉmi Denis-Courmont <remi at remlab dot net>

http://www.remlab.net/ndisc6/


okay and finally, the lil' sign-off: this page is tcpspray, dated $Date$, and it lives in section TCPSPRAY(1). that's the footer, bestie โ€” now go measure some bandwidth. ๐Ÿ’–โœจ๐Ÿซถ

๐Ÿ“ฆ where this page comes from