BING(8)

πŸ“¦ version 1.3.5, in debian bookworm, ubuntu jammy, ubuntu noble

πŸ’– BING(8) πŸ’–

okay bestie, buckle UP, because we're about to talk about bing β€” the System Manager's Manual icon we all needed πŸ’…


✨ NAME ✨

bing β€” compute point to point throughput using two sizes of ICMP ECHO_REQUEST packets to pairs of remote hosts. no cap, that's literally what it does 🫢


🌸 SYNOPSIS 🌸

bing [-dDnrRPvVwz] [-c count] [-e samples] [-f samplefile] [-i wait]
     [-p pattern] [-s small packetsize] [-S big packetsize]
     [-u size increment] host1 host2 [...]

look at all those lil flags, she's so versatile πŸ’…βœ¨


πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the vibe: bing figures out the bandwidth on a point-to-point link by yeeting ICMP ECHO_REQUEST packets out into the world 🌈 and measuring their roundtrip times for different packet sizes on each end of the link. it's giving science, it's giving measurement, it's giving obsessed πŸ”₯

host1 is supposed to be the nearest end of the link, while host2 is the other end. like, one is home base and the other is the far-away bestie 🏠➑️🌍

The options are as follows β€” and bestie, there are MANY, so let's gooo:

  • -c count β€” stop after count resets of the stats. only useful in conjunction with the -e option, fr fr. defaults to 1.
  • -d β€” set the SO_DEBUG option on the socket being used. just a lil debug moment πŸ›
  • -D β€” display the measured throughput at every received packet. by default it's only displayed when the computed value changes, which itself changes only when the minimum roundtrip time for one of the packet sizes changes. so yeah, -D is the "tell me EVERYTHING, I'm nosy" flag πŸ‘€
  • -e samples β€” reset stats after sending samples ECHO_REQUEST packets.
  • -f samplefile β€” saves the bandwidth measurements to the file samplefile. receipts!! πŸ“
  • -i wait β€” wait wait seconds for each ECHO_REPLY packet. the default is to wait for four seconds ⏳
  • -n β€” numeric output only. no attempt will be made to lookup symbolic names for host addresses. we're keeping it raw numbers only, no names, periodt πŸ’―
  • -P β€” be pedantic regarding round-trip times. okay so normally, bing assumes that the roundtrip time for a small packet should always be smaller than the roundtrip time for a big packet to the same host, that for a given size the roundtrip time for host1 should always be smaller than the roundtrip time for host2, and that the increase in the roundtrip time between host1 and host2 should always be bigger for big packets than for small packets. bing takes advantage of this to better determine the minimum roundtrip times. Option -P disables this behaviour, in the unlikely event it could be of any use someday. even IP/X25 links are not weird enough to require this, though πŸ’€
  • -p pattern β€” you may specify up to 16 β€œpad” bytes to fill out the packet you send. this is useful for diagnosing data-dependent problems in a network. for example, -p ff will cause the sent packet to be filled with all ones. custom padding? we love a customizable queen πŸŽ€
  • -R β€” record route. includes the RECORD_ROUTE option in the ECHO_REQUEST packet and displays the route buffer on returned packets. note that the IP header is only large enough for nine such routes. many hosts ignore or discard this option, lowkey rude of them πŸ™ˆ
  • -r β€” bypass the normal routing tables and send directly to a host on an attached network. if the host is not on a directly-attached network, an error is returned. this option can be used to ping a local host through an interface that has no route through it (e.g., after the interface was dropped by routed(8)). going off the beaten path, main character energy πŸš€
  • -s packetsize β€” specifies the number of data bytes to be sent in the small packets. the default and minimum value is 8.
  • -S packetsize β€” specifies the number of data bytes to be sent in the big packets. the default is 108. the size should be chosen so that big packet roundtrip times are long enough to be accurately measured (depending on clock resolution and number of hops). big packet supremacy 🫢
  • -u size increment β€” specifies that bing should start sending packets of the size of small packetsize and then increase the size by size increment until it reaches big packetsize. a lil glow-up arc for your packets ✨
  • -v β€” verbose output. ICMP packets other than ECHO_RESPONSE that are received are listed. spill the tea β˜•
  • -V β€” very verbose output. the roundtrip time of each received echo is displayed. even MORE tea, we're spilling the whole kettle πŸ«–
  • -w β€” display possible warnings about roundtrip times all the time. by default, warnings are printed only at the end. early warning system, we love to see it ⚠️
  • -z β€” fill packets with uncompressible (pseudo-random) data. chaos mode, but make it ✨intentional✨

Round-trip times and packet loss statistics are computed. if duplicate packets are received, they are not included in the packet loss calculation, although the round trip time of these packets is used in calculating the minimum/average/maximum round-trip time numbers. when the specified number of loops have been made or if the program is terminated with a SIGINT, a brief summary is displayed πŸ“Š

This program is intended for use in network testing, measurement and management. Because of the load it can impose on the network, it is unwise to use bing during normal operations or from automated scripts.

bestie. seriously. don't run this on a busy network or from a cron job, she's LOUD and she will stress out your network. this is a "we're doing a controlled experiment" tool, not a "just vibing in prod" tool 😭

πŸ’€ BUGS πŸ’€

  • Many Hosts and Gateways ignore the RECORD_ROUTE option. not me finding out the hard way πŸ™ˆ
  • The maximum IP header length is too small for options like RECORD_ROUTE to be completely useful. There's not much that that can be done about this, however. it's giving "we tried" 😭
  • Some of the final stats (average throughputs) almost never give a even marginally correct result. so like... don't trust those numbers too hard, bestie πŸ’…

🌈 SEE ALSO 🌈

netstat(1), ifconfig(8), ping(8), routed(8), traceroute(8)


πŸ‘‘ AUTHOR πŸ‘‘

Pierre Beyssac <pb@fasterix.freenix.fr>


okay that's the whole page, you ate it, you understood it, you're a networking icon now πŸŽ€βœ¨

Debian 🌸 April 3, 1995 β€” and that's the BING(8) energy, bestie. go measure some throughput πŸ’–πŸ¦‹

πŸ“¦ where this page comes from