|
|
| |
owping(1) |
FreeBSD General Commands Manual |
owping(1) |
owping - Client application to request one-way latency tests.
owping [options] testpeer [server]
owping is a command line client application that is used to initiate
one-way latency tests.
Round-trip latency measurements (ping) are an accepted technique
to look for network problems; One-way measurements have the potential to be
even more useful. With round-trip measurements it is difficult to isolate
the direction in which congestion is experienced. Traffic is often
asymmetric with many sites being either primarily producers or consumers of
data. One-way measurements allow more informative measurements. It is much
easier to isolate the effects of traffic on specific parts of a network.
owping works by contacting an owampd daemon on the
remote peer host. owampd manages the resources of the host on which
it runs.
testpeer can be specified using rfc2396 and rfc2732 syntax
for both host and port specification:
- node:port
-
IPv4 syntax where node is either a DNS name or a numeric host address string
consisting of a dotted decimal IPv4 address. The port is an
optional port specifier to contact servers running on a non-default port
and can be left off in most cases. This syntax also works for IPv6
addresses specified using DNS names.
- [node]:port
- IPv6 syntax where node is specified using a numeric IPv6 host address
string. The []'s are required only if the optional port port
specifier is used.
server is an optional argument that indicates the
OWAMP server address if it is different from the testpeer.
This is mostly useful in the case of hosts with more than one network
interface where the OWAMP server is not listening on the interface
that you want to test. The server can be specified using the same
syntax as the testpeer.
The owping client is used to request the type of test
wanted. The parameters allow the user to select the full send schedule,
direction of test (send, receive, or both) as well as packet size. The
results are returned to the client after the test completes. The test will
not be complete until timeout after the last packet is scheduled to
be sent.
With no options specified, owping will perform concurrent
bidirectional tests of 100 packets each at a rate of approximately 1 packet
every 0.1 seconds to and from the testpeer. Then, the receivers on
each host will wait a reasonable period after that to count possible
duplicate packets. (See the -L option.) Upon completion of the
sessions, summary statistics are printed to STDOUT.
OWAMP supports three reporting formats. A textual summary
that was designed to be as similar to the results that ping produces
as possible. A machine readable summary format (-M). And finally a
raw format that prints out the data from each and every packet in as compact
of a format as possible (-R). The textual summary also allows the
information from each packet to be reported using the -v option. The
default textual summary will be used if neither the -M or the
-R options are specified. It includes:
- SID
-
Session Identifier. This value is unique for every test session.
- Sent, Lost, Duplicates
-
Number of packets that were sent, lost, and duplicated as seen by
OWAMP.
- Min Delay, Median Delay, Max Delay, Error Estimate
-
Minimum, median and maximum delay seen for sample. Maximum error estimate
for the sample. (The median is determined using a histogram, so the
resolution of this value is bounded by the -b parameter. This can
lead to misleading results, for example, for very small values of latency
it is possible to see a value for the median that is greater than the
maximum, but this is simply due to the resolution of the median
measurement.)
- Jitter
-
An estimate of how "stable" the delay samples are. OWAMP
reports the the 95th percentile of delay - 50th percentile of delay.
- Additional percentiles
-
If the -a option is used, those additional percentiles from the
sample are displayed.
- TTL (hops) information
-
As a packet traverses the network, the IP TTL field is decremented each time
the packet crosses a router. OWAMP has been designed to collect the
TTL information from the packets. The OWAMP sender sets the TTL of
all outgoing packets to 255. The OWAMP receiver retrieves the TTL
from the packet. The normal textual report uses this information to report
the number of hops (number of routers) the packet traversed. The number of
distinct values is reported as well as the minimum and maximum number of
hops seen in the given session. The other reporting formats just report
raw TTL values as seen in the packets. (It should be noted that if the
number of hops reported seems unusually large, it probably means the
OWAMP sender was not able to set the TTL value correctly. The
traceroute(1) program can be used to verify what OWAMP is
reporting.)
- Reordering
-
Finally OWAMP reports the amount of re-ordering it observed. A
description of the metric used to report this can be found at:
http://www.internet2.edu/performance/owamp/draft-shalunov-reordering-definition-02.txt.html
- -h
-
Print a usage message and exit.
- -c count
-
Number of test packets to send in the test session.
- -D DSCP
-
Set an RFC 2474 style DSCP value for the TOS byte in the sending packets.
This can be set using a 6-bit numeric value in decimal, hex, or octal.
Additionally, the following set of symbolic DSCP name constants are
understood. (Example applications are taken from RFC 4594.)
Name |
Value |
Service
Class |
Examples |
NONE |
000000 |
Standard |
Undifferentiated |
DEFAULT |
DF |
CS0 |
CS1 |
001000 |
Low-Priority
Data |
No BW assurance |
AF11 |
001010 |
High-Throughput
Data |
Store and forward |
AF12 |
001100 |
AF13 |
001110 |
CS2 |
010000 |
OAM |
OAM&P |
AF21 |
010010 |
Low-Latency
Data |
Web-based ordering |
AF22 |
010100 |
AF23 |
010110 |
CS3 |
011000 |
Broadcast
Video |
TV & live events |
AF31 |
011010 |
Multimedia
Streaming |
Streaming video and audio |
AF32 |
011100 |
AF33 |
011110 |
CS4 |
100000 |
Real-Time
Interactive |
Video conf and gaming |
AF41 |
100010 |
Multimedia
Conferencing |
H.323 video conferencing |
AF42 |
100100 |
AF43 |
100110 |
CS5 |
101000 |
Signaling |
Video conf and gaming |
EF |
101110 |
Telephony |
IP Telephony bearer |
CS6 |
110000 |
Network
Control |
Network routing |
CS7 |
111000 |
- -f | -F fromfile
-
Perform a One-way test from the target testpeer. The -F
form is used to save the results in fromfile. If no directional
options (-f, -F, -t, -T) are specified, owping requests
concurrent bidirectional tests, otherwise only the explicit directions are
performed.
- Default:
- True, unless the -t or -T have been specified
explicitly.
- -i send_schedule
-
send_schedule indicates the scheduled delay between sent packets.
This is done by specifying a list of delays in a comma separated
string (spaces are not allowed). Each delay is indicated by a
value and a type. There are two currently available types of
delays that can be specified:
- f
- [f]ixed offsets. This is used to indicate that the value is
a real offset.
- e
- [e]xponential. This is used to indicate an exponentially
distributed pseudo-random quantity with a mean about the value
given. (This is the default if no alpha qualifier is specified. The intent
of this is to negate periodicity effects.)
When the sending process starts, it looks at the first
delay in the list and waits that long to send the first packet. It
takes the next delay from the list to determine how much longer to
wait before sending the second packet. This process continues until there
are no more delay values specified in the list. At this point the
sending process loops back to the beginning of the complete
send_schedule and this process begins again. This continues until the
sending process has sent count packets as specified by the -c
option.
- Default:
- 0.1e (seconds)
- -E enddelay
-
Amount of time for a sender to wait after session completion (last packet
send-time plus timeout) before sending the stop sessions message.
This is important if the sender clock is running ahead of the
receiver clock.
A session is complete timeout after the send time of
the final packet. If the sender clock is ahead of the receivers clock,
the sender will declare the session complete before the receiver. The
receiver is only allowed to retain records for the packets that were
sent at least timeout before it receives the stop sessions
message from the sender. Therefore, if the sender clock is running ahead
of the receiver clock, the receiver will be forced to delete some number
of the final packets from the session.
This parameter directs the sender to wait enddelay
after session completion allowing the receiver clock to be essentially
enddelay later than the sender clock and still retain full
sessions.
- -L timeout
-
Amount of time to wait for a packet to be received before declaring it lost.
As such, it is also the amount of time the test session has to stay active
after the last packet is sent to be able to count duplicate packets. I.e.,
add this number to the duration of your session to determine how long to
expect a test session to take.
Note: The default of 2 seconds longer than a round-trip
estimate was simply a guess for how long a typical user would be willing
to wait after the end of the test for the results. For the OWAMP
results to be statistically relevant and to be able to compare data
between two sessions the timeout option should be specified.
- Default:
- 2 seconds longer than the round-trip estimate. (seconds)
- -P 0 | lowport-highport
-
Specify the specific port range to use for OWAMP-Test packets. This
can be specified in two ways. First, as 0 which would indicate
owping should allow the system to pick the port (ephemeral).
Second, as a range. lowport must be a smaller value than
highport and both numbers must be valid port values. (16 bit
unsigned integer values)
- -s size
-
Size of the padding to add to each minimally-sized test packet. The minimal
UDP payload for a test packet in open mode is 14 bytes. The minimal
UDP payload for a test packet in authenticated or encrypted
mode is 48 bytes.
- -t | -T tofile
-
Perform a one-way test toward the target testpeer. The
-T form is used to save the results in tofile. If no
directional options (-f, -F, -t, -T) are specified, owping
requests concurrent bidirectional tests, otherwise only the explicit
directions are performed.
- Default:
- True, unless the -f or -F have been specified
explicitly.
- -z delayStart
-
Time to wait before starting a test. owping attempts to calculate a
reasonable minimum delay to ensure that the start of the test happens
after completion of the setup protocol. If delayStart is specified
as a value less than this reasonable minimum delay, the reasonable minimum
will be used instead.
- Default:
- 2-3 times the round-trip estimate plus 1 (seconds)
- -4
-
Forces OWAMP clients to use IPv4 addresses only.
- Default:
- Unset. OWAMP will use IPv4 or IPv6 address, but tries IPv6 first.
- -6
-
Forces OWAMP clients to use IPv6 addresses only.
- Default:
- Unset. OWAMP will use IPv4 or IPv6 address, but tries IPv6 first.
- -A authmode
-
Specify the authentication modes the client is willing to use for
communication. authmode should be set as a character string with
any or all of the characters "AEO". The modes are:
- A
- [A]uthenticated. This mode encrypts the control connection and
digitally signs part of each test packet.
- E
- [E]ncrypted. This mode encrypts the control connection and encrypts
each test packet in full. This mode forces an encryption step between the
fetching of a timestamp and when the packet is sent. This adds more
computational delay to the time reported by OWAMP for each
packet.
- O
- [O]pen. No encryption of any kind is done.
The client can specify all the modes with which it is willing to
communicate. The most strict mode that both the OWAMP server and the
OWAMP client are willing to use will be selected. Authenticated and
Encrypted modes require a "shared secret" in the form of a
pass-phrase that is used to generate the AES and HMAC-SHA1 session keys.
- Default:
- "AEO".
- -k pfsfile
-
Use the pass-phrase in pfsfile for username to derive the
symmetric AES key used for encryption. username must have a valid
entry in pfsfile. pfsfile can be generated as described in
the pfstore(1) manual page.
- Default:
- Unset. (If the -u option was specified without the -k, the
user will be prompted for a passphrase.)
- -S srcaddr
-
Bind the local address of the client socket to srcaddr.
srcaddr can be specified using a DNS name or using standard textual
notations for the IP addresses. (IPv6 addresses are of course
supported.)
- Default:
- Unspecified (wild-card address selection).
- -u username
-
Specify the username that identifies the shared secret (pass-phrase) used to
derive the AES and HMAC-SHA1 session keys for authenticated and encrypted
modes. If the -k option is specified, the pass-phrase is retrieved
from the pfsfile, otherwise the user is prompted for a
pass-phrase.
- -a percentile_list
-
percentile_list indicates the list of quantiles to be reported out in
addition to median. This is done by specifying a list of
percentiles in a comma separated string (spaces are not allowed).
Each percentile is indicated by a floating point value between 0.0
and 100.0.
This value is only used if reporting summary statistics.
- -b bucket_width
-
A histogram of delays is created to compute the summary statistics. (This is
used to compute percentiles of delay such as median.) The
bucket_width indicates the resolution of the bins in the histogram.
This value is specified using a floating point value and the units are
seconds.
Because a histogram to compute the median (and other
percentiles of delay) the results can be misleading if the
bucket_width is not appropriate. For example, if all of the
delays in the sample are smaller than the value of bucket_width
then the median will be reported as bucket_width, a value that is
greater than the maximum delay in the sample. To avoid this,
bucket_width should be picked to be smaller than (max - min). The
default value was selected to be reasonable for most real network paths,
it is not appropriate for tests to the localhost however.
This value is only used if reporting summary statistics.
- Default:
- 0.0001 (100 usecs)
- -d dir
-
dir indicates the directory in which to save summary files if the
-p option is used.
- Default:
- (current working directory)
- -M
-
Print summary information in a more computer pars-able format. Specifically,
values are printed out in a key/value style. Units are seconds for all
time values.
The -M option is ignored if -Q is set.
- -N count
-
Number of test packets to put in sub-session summaries when computing
statistics on owamp session data.
This option is used to break down the summary statistics in
smaller sample sizes than a complete owp file. This is useful when
breaking up very long running sessions.
This option is only used for statistical output, and therefore
has no effect on the -R output mode.
- Default:
- Unset. (complete files are treated as the sample size)
- -n units
-
units indicates what units time values should be reported in.
units is specified using a single character specifying the units
wanted.
The available units are:
´n´ |
nanoseconds (ns) |
´u´ |
microseconds (us) |
´m´ |
milliseconds (ms) |
´s´ |
seconds (s) |
This is only used for the human-readable summary statistics and
the -v mode of reporting individual records. In particular, it is not
used for the -R or -M output modes.
- Default:
- Unset.
- -p
-
Save output summary information into files instead of printing it to STDOUT.
Also, print the names of the files to STDOUT. The files will be saved in
the directory specified by the -d option.
The summary filenames are in the format:
${START_TIME}_${END_TIME}.${FILETYPE}
STARTTIME and ENDTIME are the start and end
timestamps for the session or sub-session. The timestamps are ASCII
representation of 64 bit integers with the high-order 32 bits
representing the number of seconds since Jan 1, 1900 and the low-order
32 bits representing fractional seconds. The FILETYPE is
sum for -M summary files, and txt for the default
human-readable summary information.
This option is ignored if the -R option is
specified.
- -Q
-
Suppress the printing of all summary statistics and human-readable
individual delays (-v).
- -R
-
Print individual packet records one per line in the raw format:
SEQNO SENDTIME SSYNC SERR RECVTIME RSYNC RERR TTL
SEQNO |
Sequence number. |
SENDTIME |
Send timestamp. |
SSYNC |
Sending system synchronized (0 or 1). |
SERR |
Estimate of SENDTIME error. |
RECVTIME |
Receive timestamp. |
RSYNC |
Receiving system synchronized (0 or 1). |
RERR |
Estimate of RECVTIME error. |
TTL |
TTL IP field. |
The timestamps are ASCII representation of 64 bit integers with
the high-order 32 bits representing the number of seconds since Jan 1, 1900
and the low-order 32 bits representing fractional seconds. Lost packet
records are indicated with a RECVTIME of 0 (zero). The sequence number is
simply an integer. The error estimates are printed as floating-point numbers
using scientific notation. TTL is the IP field from the packet. The TTL in
sending packets should be initialized to 255, so the number of hops the
packet traversed can be computed. If the receiving host is not able to
determine the TTL field, this will be reported as 255. (Some socket API's do
not expose the TTL field.)
The -R option implies -Q.
- Default:
- Unset.
- -v
-
Print delays for individual packet records. This option is disabled by the
-Q and -R options.
OWAMP Environment Variable |
Description |
OWAMP_DEBUG_TIMEOFFSET |
Offset time by this amount (float) |
owping somehost.com
- Run two concurrent ~10-second test sessions at a rate of a packet every
0.1 seconds. One session sending packets from the local host to
somehost.com, the other session receiving packets from somehost.com.)
Print summary statistics of the results only.
owping somehost.com:98765
- Run the same two concurrent test sessions to a server running on
somehost.com but on a non-default port.
owping -u someuser somehost.com
- Run the default test as in the first example. Authenticate using the
identity someuser. owping will prompt for a
passphrase.
owping -f somehost.com
- Run a single ~10-second test session at a rate of one packet every 0.1
seconds with the packets being sent from somehost.com and received at the
local host.
owping -F from.owp somehost.com
- Same as the previous example, with the resulting data saved in from.owp.
The owstats program can be used to decode that datafile using the
same Output options that are available in owping.
owping -F from.owp -T to.owp somehost.com
- Run two concurrent ~10-second test sessions at a rate of a packet every
0.1 seconds. One session sending packets from the local host to
somehost.com, the other session receiving packets from somehost.com.)
Print summary statistics of the results and save the resulting data saved
in from.owp and to.owp.
owping -i 1e -c 10 somehost.com
- Run two concurrent ~10-second test sessions at an average rate of 1 packet
every second. One session sending packets from the local host to
somehost.com, the other session receiving packets from somehost.com.)
Print summary statistics of the results only.
owping -i 1f -c 10 somehost.com
- Run two concurrent ~10-second test sessions at a rate of 1 packet every
second. One session sending packets from the local host to somehost.com,
the other session receiving packets from somehost.com.) Print summary
statistics of the results only.
owping -i 1.0e,0f -c 20 somehost.com
- Run two concurrent ~10-second test sessions. Send back-to-back packet
pairs at an average rate of a packet pair every 1 seconds. One session
sending packets from the local host to somehost.com, the other session
receiving packets from somehost.com.) Print summary statistics of the
results only.
owampd(8), owstats(1), owfetch(1) and the http://e2epi.internet2.edu/owamp/ web
site.
This material is based in part on work supported by the National Science
Foundation (NSF) under Grant No. ANI-0314723. Any opinions, findings and
conclusions or recommendations expressed in this material are those of the
author(s) and do not necessarily reflect the views of the NSF.
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |