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
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,
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
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
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.
FILETYPE is owp for raw data files and sum for textual summary
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
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.
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.
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.
The powstream client-daemon is used to request the intensity of
Specifically, the parameters allow the user to select the mean packet interval
for a pseudo-exponential distribution, the packet size, and the loss
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.