Content-type: text/html
Manpage of FLUTE
FLUTE
Section: Misc. Reference Manual Pages (1)
Updated:
Index
Return to Main Contents
NAME
flute - send or receive files, as specified in FLUTE (RFC 3926) and using
the ALC transport protocol (RFC 3452).
SYNOPSIS
flute
[-h[elp]]
[-send]
[-recv]
[-a address[/port]]
[-ifa address]
[-ifn ifname]
[-demux demux_level]
[-v verbosity_level]
[-stat stat_level]
[-silent]
[-tmp tmp_dir_string]
[-o speed/space/cpu]
[-p low|med|high|lan]
[-p size[/rate]]
[-l nb_of_layers]
[-cc congestion_control_protocol]
[-P]
[-t ttl]
[-R]
[-cont]
[-repeat n]
[-fec n]
[-src address
[-int]
[file or directory]
At a sender:
flute -send [options] file
flute -send [options] -R directory
At a receiver:
flute -recv [options]
DESCRIPTION
flute
is a multicast file distribution application built over the
MultiCast Library (MCLv3) which uses the ALC (Asynchronous
Layered Coding) reliable multicast protocol.
flute
can run both as a sender or a receiver.
flute
has many features like the ability to send recursively all the files
of a given directory and its subdirectories, and the possibility to be used
in
``on-demand''
or
``push''
mode.
flute
communicates many meta-data information along with the files in
associated File Delivery Tables (FDT), in order to let the receiver
choose what files he wants to receive.
An application-level MD5 checksum is also used in order to detect
possible transmission errors.
fcast
and
flute
differ from the fact that the first one uses private, non standard,
solutions, while the second one strictly follows IETF standards.
fcast
is appropriate when looking for a simple yet efficient tool, while
flute
is appropriate when using IETF standardized solutions is mandatory, or
when a large set of files are sent within a session and receivers
may be interested only in a subset of them.
flute
filtering mechanism is in that case a real asset.
The two tools are otherwise sharing many similarities, as well
as most arguments.
OPTIONS
The following arguments can be provided
both at a sending or receiving flute.
- -h[elp]
-
Gives the credits, the compilation parameters and all the possible
flute
arguments.
- -send or -recv
-
Set the Fcast application mode to
sender
OR to
receiver.
You must ALWAYS specify one of these two modes.
- -a address[/port]
-
Specifies the unicast or multicast IPv4 or IPv6 address of the base layer and its UDP
port number (if specified).
If no
-a
and/or
/port
argument is provided, then the default target address (usually that of
the loopback interface) and port number of MCL are used.
With multicast addresses, the address and port number of layers 1 and above
are derived from that of the base layer by MCL (usually by incrementing the
address and port number).
(communicated to MCL)
- -ifa address
-
The network interface to use is the one attached to the local address
specified (or hostname specified).
This option is only required on multi-homed hosts or on routers as the
default interface chosen by the system without this option to send/receive
multicast may not be the one you want to use.
The alternative is to use
-ifn ifname.
(communicated to MCL)
- -ifn ifname
-
The network interface to use is the one attached to the name
specified (e.g.
-ifneth0
).
This option is only required on multi-homed hosts or on routers as the
default interface chosen by the system without this option to send/receive
multicast may not be the one you want to use.
The alternative is to use
-ifa address.
(communicated to MCL)
- -demux N
-
Sets the LCT Transport Session Identifier (or TSI) to
N.
At a sender this TSI is included in each packet sent.
At a receiver <src_addr; TSI> are used to fully identify the ALC session
and to filter incoming packets.
If no
-demux
argument is provided, then any packet matching the source address (if
provided) will be accepted with the risk they belong to other sessions
(e.g if they use the same <multicast address, port> tuple).
This demux label is also usefull to make sure that the current session will
not get confused by packets from previous incarnation session.
The receivers and the sender must of course agree beforehand and use the
same value.
By default a value of 0 is used.
(communicated to MCL)
-v verbosity_level
Specifies the level of verbosity desired from the MCL library.
This option also automatically enables the -stat 2 option to
add statistics.
Note that full verbosity requires that the MCL library be compiled in
DEBUG mode.
(communicated to MCL)
- -stat stat_level
-
Specifies the level of statistics desired from the MCL library.
Level 0 (default) means nothing, level 1 means that only the final
statistics (at end of session) will be displayed, level 2 means that each
time an object is fully received, statistics are displayed.
(communicated to MCL)
- -silent
-
Enables the silent mode (nothing is sent to stdout).
- -tmp tmp_dir_string
-
Set the MCL temporary directory to be tmp_dir_string rather than its
default (usually "/tmp" with Unix).
The argument is a string, e.g. :
-tmp/home/roca/tmp
(communicated to MCL)
- -objaggr
-
Enables the object aggregation mode.
This mode is highly efficient when sending a large number of small objects
(i.e. files) since FEC encoding now operates on the large object (that is the
result of the aggregation of all the small objects), rather than on
each small object.
Transmissions are an order of magnitude more efficient.
This solution is similar in spirit to the one described in
<draft-neumann-rmt-flute-file-aggregation-00.txt>.
This mode requires that the recursive mode is set (to transmit several files).
(communicated to MCL)
- -o space/speed/cpu
-
Specifies the optimization profile (in particular the order in which packets
are sent on each layer).
Possible values are:
space
to optimize the maximum memory space required at a receiver,
speed
to optimize the reception speed, and
cpu
to differ CPU intensive tasks at a receiver (recommanded on a
CPU bounded host).
If not specified, the default value of MCL is used instead.
(communicated to MCL)
WARNING: it is important that the transmission and reception optimization match, so use it on both ends.
The following arguments define the transmission profiles.
One can use either a predefined profile, or do everything by hand,
or redefine some parameters of the predefined profiles.
These arguments must be specified at the sender and/or at the receiver,
as explained.
- -p low|med|high|lan
-
Specifies the transmission profile.
Possible values are:
low
(low rate Internet),
med
(mid rate Internet),
high
(high speed Internet), and
lan
(high speed LAN).
If not specified, the default value of MCL is used instead.
The
-p size[/rate]
argument can be used instead (but not at the same time).
The
-plan
profile is dedicated to LAN environments, which means that no
congestion control is used (CCI field of the LCT header left to zero, which
also means that no loss statistics are possible),
and a single ALC layer is defined. Use with care...
The exact parameters associated to each of these four profiles
can be changed either (1) with the
-p size[/rate]
or
-l number_of_layers
or
-cc congestion_control_protocol
arguments,
or (2) by modifying the src/alc/mcl_tx_prof.cpp file.
(communicated to MCL)
WARNING: it is important that the transmission and reception profiles match, so specify the profile on both ends.
- -p size[/rate]
-
Specifies the datagram size (in bytes) (at a sender or receiver), and
optionally the transmission rate (in bits/s) (only at a sender).
This argument cannot be used along with one of the
-p low|med|high|lan
arguments.
(communicated to MCL)
WARNING: it is important that the transmission and reception profiles match, so specify it on both ends (only -p size at a receiver).
- -l number_of_layers
-
Specifies the maximum number of layers to use.
If not specified, the default value of MCL is used instead.
Note that a receiver is anyway constrained by the number of layers
offered by the source.
(communicated to MCL)
- -cc congestion_control_protocol
-
Specifies the congestion control protocol to use.
-cc0
specifies that NO CONGESTION CONTROL is used, and a single
layer is selected.
Use this mode only in appropriate environments, not over the Internet
where congestion control is mandatory.
This argument replaces the now deprecated "singlelayer" mode.
-cc1
specifies RLC congestion control (often needed for interoperability tests).
-cc2
specifies FLID-SL congestion control. This is the default, since this
protocol is less aggressive than RLC.
If nothing is specified, the default value of MCL is used instead.
(communicated to MCL)
- -singlelayer (DEPRECATED)
-
This argument is DEPRECATED and replaced by the -cc0 argument,
which must be used when no congestion control is required.
-
- -P
-
If enabled, causes flute to make a pause before exiting (WIN32 only).
Used to prevent the closing of console window when flute is done, thus
giving some time to read outputs.
The following arguments are
specific to a sender.
- -t ttl
-
Specifies the time to live (ttl) value of the IP header.
If not specified, the default value of MCL is used instead (usually 1).
Use -t 1 if all the receivers are attached to the same LAN as the source.
(communicated to MCL)
- -R
-
Enables the recursive mode.
Using this flag, flute recursively sends the whole directory tree given as a
parameter.
At the receiver side, the same directory tree is created in the CURRENT
directory (flute never goes upward).
- -cont
-
Set the
continuous mode
for "on-demand" transmissions (i.e. receivers arrive
at their discretion, download the file and leave).
By default it is not set.
(communicated to MCL)
- -repeat n
-
repeat n times the packet sequence on each layer.
Note that
-repeat 0
means that data is sent once.
By default, data is sent only once (no repeat) on a given layer in ``push''
mode, and data is sent continuously in ``on-demand'' mode.
This parameter is usefull to increase the probability of good reception
at optimal speed by all receivers when working in ``push'' mode.
(communicated to MCL)
- -fec n
-
Set the FEC ratio to n, a float point value greater or equal to 1.0.
This FEC ratio is the N/K ratio, of the
total number of symbols after FEC encoding (data + parity) to the
number of source symbols (data).
A default value of 2.0 is used, meaning that the number of parity
symbols is the same as the number of original source symbols.
Using
-fec 1.0
means that no parity packet will be produced.
(communicated to MCL)
The following arguments are
specific to a receiver.
- -src address
-
Specifies the unicast IPv4 or IPv6 address or name of the source.
At a receiver <src_addr; TSI> are used to fully identify the ALC session
and to filter incoming packets.
If no
-src
argument is provided, then any packet matching the TSI (if provided)
will be accepted with the risk they belong to other sessions
(e.g if they use the same <multicast address, port> tuple).
(communicated to MCL)
- -int -never or -force
-
Sets the overwriting mode for an
receiver when a file to save already exists.
int
stands for interactive mode, meaning that the user will always be asked
before overwriting a file.
Using
never
, files are never overwritten.
Finally
force
means that any existing file will be automatically overwritten.
Default is
int
mode where the answer will quickly disappear!).
In all cases, Fcast can be aborted by typing
CTRL-C.
EXAMPLE
Here is a simple example where we send the file "foo.bar"
on group 225.1.2.3 (and above) :
flute -send -a225.1.2.3/2323 -v1 ./foo.bar
A more complex example is the following, sending the whole directory "foobar/"
in object aggregation mode for higher transmission efficiency, over a LAN:
flute -send -a225.1.2.3/2323 -demux123 -stat1 -plan -objaggr -R foobar/
A receiver for the previous exemple:
flute -recv -R -a225.1.2.3/2323 -demux123 -stat1 -plan -objaggr -never
Here is a session where we completely specify the transmission parameters
(1024 bytes of payload per packet, and 1Mbps transmission rate):
flute -send -a225.1.2.3/2323 -v1 -p1024/1000000 ./foo.bar
flute -recv -a225.1.2.3/2323 -v1 -p1024
COPYRIGHTS
Copyright (c) 1999-2004 INRIA - All rights reserved
(main authors: Vincent ROCA - vincent.roca@inrialpes.fr
Julien LABOURE - julien.laboure@inrialpes.fr
Christoph NEUMANN - christoph.neumann@inrialpes.fr)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
SEE ALSO
fcast(1)
mcl_ctl(3),
MCL
documentation,
INRIA Research Report 5225 for an introduction to LDGM-* large block
FEC codes,
RFC 3926 (FLUTE), and <draft-neumann-rmt-flute-file-aggregation-00.txt>.
AUTHORS
Christoph NEUMANN (INRIA Rhone-Alpes, Planete project)
Vincent ROCA (INRIA Rhone-Alpes, Planete project)
Julien LABOURE (INRIA Rhone-Alpes, Planete project)
$Id: flute.man.1,v 1.1 2004/12/17 12:07:11 roca Exp $
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
- EXAMPLE
-
- COPYRIGHTS
-
- SEE ALSO
-
- AUTHORS
-
This document was created by
man2html,
using the manual pages.
Time: 16:26:53 GMT, December 21, 2004