NETSEND(1)

πŸ“¦
version 0.0~svnr250 Β· 3 versions
, in debian bookworm, debian trixie, ubuntu noble, ubuntu questing

πŸŽ€ NAME πŸŽ€

netsend β€” a speedy filetransfer and network diagnostic program πŸ’…

(also, hi bestie, this is the NETSEND(1) manual page, ok let's go ✨)


🌈 SYNOPSIS 🌈

netsend [OPTIONS] PROTOCOL MODE { COMMAND | HELP }

πŸ¦‹ DESCRIPTION πŸ¦‹

🧚 PROTOCOL

Protocol is one of

tcp, udp, udplite, dccp, sctp or tipc.

When you're using tipc, you also have to specify a socket type, like:

netsend tipc MODE -t SOCK_STREAM

periodt. no socket type, no vibes 🫢

🧚 MODE

Mode is either receive or transmit. that's it. that's the whole mood.


✨ OPTIONS ✨

  • -r Nn,Nd,Nm,Nf β€” round trip probes options, the whole little family πŸ‘‘:
    • Nn β€” number of iterations of round trip probes. Default is to perform 10 attempts. Don't set to less then 5 because measurement results will not very predicating. (their words, not mine 😭)
    • Nd β€” size of rtt payload. This is the number of bytes piggybacking (plus the netsend rtt header). Default is 500 byte, maybe your mtu minus netsend header minus protocol header (tcp, udp) will better fit for your needs.
    • Nm β€” for the round trip time probes netsend calculates a deviation. With this flag you can adjust the filter. Default is 4. Lower values drain more probes out, so be carefully with this option.

For example: if you have measured rtt probes of 4, 5, 5, 6 and 15 ms. The average is 7. Covariance is 16.4 and deviation is 4.04. If you select 2 here as the multiplier, then you filter all rtt probes with higher values then 8.08 (for this example you filer 15ms out).

This will help to discard some nonesense probes who are evoked through cold code paths (cache misses, page faults, ...) or network anomalies. Use this option carefully! πŸ”₯

  • -f β€” forces to don't perform rtt probes but take N milliseconds as average value. With this option you can figure out the behaviour of satelite links (e.g you say -D500f)
  • -b β€” followed by a number: sets read/write buffer size to use. Default is 8192 for read/write and size_of_file_to_send for mmap/sendfile.
  • -m β€” followed by a memadvise(2) option: normal, sequential, random, willneed, dontneed, noreuse.
  • -p β€” followed by a number: set TCP/UDP/DCCP/SCTP port to use. Default is 6666. πŸ’€ (yes really)
  • -P β€” followed by scheduling policy: sched_rr, sched_fifo, sched_batch or sched_other
  • -s β€” followed by a setsockopt(2) optname and optval. netsend maps setsockopt levels and optlen internally. running netsend -s list will print a list of all setsockopt optnames currently recognized by netsend.
  • -T β€” followed by either human or machine: sets output format
  • -u β€” followed by the transmit function to use. One of sendfile, mmap, splice or rw. When not specified, rw (read/write) is used.

Note that not all protocols support all transfer methods, e.g. TIPCs connectionless sockets (SOCK_RDM and SOCK_DGRAM) do not support the sendfile system call. Also, the amount of data that can be sent in a single operation may be limited by the network protocol used.


🌸 EXAMPLES 🌸

Listen for incoming SCTP connections, incoming data goes to stdout:

./netsend -T human -v stressful sctp receive

Send file largefile via TCP with output in machine parseable format:

./netsend -T machine tcp transmit largefile host.example.org

Receive data via TCP with MD5SIG from peer 10.0.0.1:

./netsend tcp transmit -C largefile ffff::10.0.0.1 ./netsend tcp
receive -C ffff::10.0.0.1

πŸ’– EXIT STATUS πŸ’–

netsend returns a zero exist status if it succeeds. Non zero is returned in case of failure. Following failure codes are implemented:

 0 - succeed
 1 - failure in memory handling
 2 - command line option error
 3 - failure which fit in any categories
 4 - network error
 5 - failure in netsend header (maybe corrupted hardware)
 6 - netsend internal error (should never happen[tm])
ok so 0 = slay, anything else = we're crying 😭 and 6 should literally never happen (the [tm] is doing a lot of heavy lifting there ngl)

πŸ‘‘ AUTHOR πŸ‘‘

Hagen Paul Pfeifer Florian Westphal


πŸ¦‹ SEE ALSO πŸ¦‹

http://netsend.berlios.de


and that's the whole page bestie 🫢 this was netsend (yeah, NETSEND(1), same thing) as rendered by perl v5.36.0 β€” go forth and transfer files speedily βœ¨πŸ’…

πŸ“¦ where this page comes from