DragonFly On-Line Manual Pages
powstream(1) DragonFly General Commands Manual powstream(1)
NAME
powstream - Client daemon application for continuous one-way latency
tests.
SYNOPSIS
powstream [options] testpeer [server]
DESCRIPTION
powstream is a command line client daemon application that is used to
initiate a continuous stream of one-way latency tests from the testpeer
to the client host.
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.
powstream creates a continuous stream of one-way packet samples by
stitching together multiple OWAMP test sessions. It was designed to
allow for continuous monitoring of one-way latencies. To create a
continuous stream of packets, powstream actually opens two control
sockets to the server and, effectively, double-buffers OWAMP test
sessions. The start-time of each subsequent session is defined by the
computed send time of the last packet in the previous session.
There are special considerations for this type of application that do
not exist for the owping application. Specifically, it is important to
reduce the amount of control communication that occurs to minimize any
session resets that could occur due to breakdowns in control
communication. (We really want to see periods of time where the network
is broken.) Therefore, it is important to create fairly long OWAMP test
sessions. On the other hand, it is nice to get fairly immediate
feedback if there is packet loss. To facilitate this, powstream can
summarize data for smaller time periods than the actual test session
periods it uses. The -N option is used to indicate how many packet
records should be in these smaller sub-session files while the -c
option is used to indicate how many packet records should be in the
complete session.
powstream outputs a data file and a summary file for each time period
defined by the -c option. The files will be placed in the directory
indicated by the -d option. Additionally, powstream will output a
summary file for each time period defined by the -N option. The smaller
summary sub-session files should be thought of as preliminary data.
The later, larger complete session files will have additional
information available to determine the validity of the data.
Specifically the larger file is created after the Stop-Sessions message
has been received from the sender host over the control socket. This
message includes information about any packet records that the sender
did not send; therefore, the preliminary data could show packet loss
when, in reality, the sending process never sent the expected packets.
powstream saves data files and summary files for each session in the
current directory, or the directory specified by the -d option. The
filesnames 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 owp for raw data files and sum for textual
summary files.
powstream 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 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 powstream client-daemon is used to request the intensity of the
test. Specifically, the parameters allow the user to select the mean
packet interval for a pseudo-exponential distribution, the packet size,
and the loss timeout.
With no options specified, powstream will perform tests of 300 packets
each at a rate of approximately 1 packet every 0.1 seconds from the
testpeer. With no options specified, the test sessions will not be
subdivided to provide intermediate results.
powstream produces data in two formats: raw owamp data files and
summary statistics. The data files are the same binary format saved
from owping and can be parsed using owstats. The summary files are
identical to the -M output format from owstats.
OPTIONS
-h
Print a usage message and exit.
Default:
Unset.
Test Configuration Options:
-c count
Number of test packets to send in each test session.
Default:
300
-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 receiver 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.
Default:
1.0 (seconds)
-i meanwait
meanwait indicates the average time to wait between sending
packets. powstream uses an exponentially distributed pseudo-
random distribution with a mean interval about the value given.
The intent of this is to negate periodicity effects.
Default:
0.1 (seconds)
-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.
For the OWAMP results to be statistically relevant the timeout
option should be specified the same for comparable sessions.
Default:
10 seconds
-s size
Size of the padding to add to each minimally-sized test packet.
The minimal size for a test packet in open mode is 14 bytes. The
minimal size for a test packet in authenticated or encrypted
mode is 32 bytes.
Default:
0 (bytes)
-t
Indicates that powstream should set up sender-side OWAMP test
sessions instead of the default receiver-side sessions. This
mode of operation is more problematic because intermediate
summary data must be fetched from the remote server on regular
intervals using an additional socket connection instead of just
summarizing portions of a local data file.
Default:
unset
-z delayStart
Time to wait before starting the test. powstream waits
approximately 10 seconds before starting the first test by
default. The delayStart value is added to this amount.
Default:
0
Connection/Authentication Options:
-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
Indicates that powstream should 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 pass-phrase.)
-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 is used to identify 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 powstream prompts the user for a pass-phrase.
Default:
Unset
Output Options:
-b bucket_width
To reasonably compute the delay summary statistics, powstream
creates a histogram of the delays. (This can be 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.
The histogram is presented within the summary statistics file.
Default:
0.0001 (100 usecs)
-d dir
dir indicates the directory in which to save all raw owp data
files and all textual summary data files.
Default:
(current working directory)
-e facility
facility indicates the syslog facility to which powstream should
send all error messages.
Default:
LOG_USER
-N count
Number of test packets to put in sub-session summary files.
powstream can use large session durations to minimize control
communication during execution. This option is used to make
powstream output sub-session summary files at shorter periods.
The data should be considered preliminary because it is being
generated before the actual end of the test session. The OWAMP
control protocol shares information from the sending process to
the receiver about any packets it skipped sending when the test
session ends. Because this data is being generated before the
session actually ends, any packets the sending process did not
get a chance to send will show up as lost packet records in
these files.
This is the trade-off for getting more immediate access to the
data.
If this option is not set, then sub-session summary files will
not be produced.
This value must be a divisor of the value specified for the -c
option.
Default:
unset
-p
Print the names of data files and summary statistic files to
STDOUT when they are completed.
Default:
unset
-R
Suppress printing error messages to STDERR. They will still be
sent to syslog.
Default:
unset (errors print to STDERR and syslog)
-v
Print more verbose information in error messages.
Default:
unset
ENVIRONMENT VARIABLES
OWAMP Environment Variable Description
----------------------------------------------------------------
OWAMP_DEBUG_TIMEOFFSET Offset time by this amount (float)
EXAMPLES
powstream somehost.com
Contact somehost.com and request ongoing tests with a sending
rate of a packet approximately every 0.1 seconds, with 300
packets per session. (Each session will last about 30 seconds.)
Save the data and summary files in the current directory.
powstream -L 10 -i 1 -c 10800 -N 30 -d datadir -p somehost.com
Contact somehost.com and request ongoing tests. Use a timeout
duration of 10 seconds. Tests will have a sending rate of a
packet approximately every 1 second, with 10800 packets per
complete session. (Each session will last about 3 hours.) Create
sub-session summary statistic files, as well, with 30 packets
per sub-session. (Each sub-session will provide a sample period
of about 30 seconds.) Save the data and summary files in the
current directory and print each filename as it is produced.
SEE ALSO
owampd(8), owping(1), owstats(1), owfetch(1) and the
http://e2epi.internet2.edu/owamp/ web site.
ACKNOWLEDGMENTS
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.
$Date: 2009-01-12 09:46:23 -0500 (Mon, 12 Jan 2009) $
powstream(1)