FCASTN(1)

NAME
fcastn - send or receive files using the MultiCast Library (MCL) using the NORM protocol

SYNOPSIS
fcastn [-h[elp]] [-send] [-recv] [-a address[/port]] [-if address] [-v verbosity_level] [-stat stat_level] [-silent] [-tmp tmp_dir_string] [-p low|med|high|lan] [-p size[/rate]] [-P] [-t ttl] [-R] [-fec n] [-src address [-int] [-never] [-force] [file list or directory]

DESCRIPTION
fcastn is a multicast file distribution application built over the MultiCast Library (MCL) which uses the NORM (NACK/ACK Oriented Reliable Multicast) protocol. fcastn can run both as a sender or a receiver. fcastn has many features like the ability to send recursively all the files of a given directory and its subdirectories but unlike fcast (which is based on the ALC reliable multicast protocol), it cannot be used in ``on-demand'' mode, but only in ``push'' mode. fcastn communicates many meta-data information along with the files in order to precisely re-construct the file at the receiver. An application-level checksum (using the same algorithm as that of TCP) is also used in order to detect possible transmission errors.

OPTIONS
The following arguments can be provided both at a sending or receiving fcast.

-h[elp]
    Gives the credits, the compilation parameters and all the possible fcast 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 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)

-if 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. (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 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)

-p low|med|high|lan
    Specifies the transmission profile. Possible values are: low (LOW_RATE_INTERNET), med (MID_RATE_INTERNET), hig (HIGH_SPEED_INTERNET), and high (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). (communicated to MCL) WARNING: it is important that the transmission and reception profiles match, so use it 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 use it on both ends (only -p size at a receiver).

-P  If enabled, causes fcast to make a pause before exiting (WIN32 only). Used to prevent the closing of console window when fcast 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, fcast recursively sends the whole directory tree given as a parameter. At the receiver side, the same directory tree is created in the CURRENT directory (fcast never goes upward).

-fec n
    Set the FEC ratio to n. This FEC ratio is the N/K ratio, of the total number of symbols after FEC encoding (data + FEC) to the number of source symbols (data). A default value of 2 is used, meaning that the same amount of FEC symbols as original source symbols is produced. Using -fec 1 means that no FEC packets will be produced. A limitation in this version is that this ratio must be an integer. (communicated to MCL)

The following arguments are specific to a receiver.

-src address
    Specifies the unicast IPv4 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!).

EXAMPLE
Here is a simple example where we send the file "foo.bar" on group 225.1.2.3 :
fcastn -send -a225.1.2.3/2323 -v1 ./foo.bar
A more complex example is the following, sending the whole directory "foobar/" :
fcastn -send -a225.1.2.3/2323 -stat1 -phigh -R foobar/
A receiver for the previous exemple:
fcastn -recv -R -a225.1.2.3/2323 -stat1 -phigh -never
Here is a session where we completely specify the transmission parameters (1024 bytes of payload per packet, and 1Mbps transmission rate):
fcastn -send -a225.1.2.3/2323 -v1 -p1024/1000000 ./foo.bar
fcastn -recv -a225.1.2.3/2323 -v1 -p1024

COPYRIGHTS
Copyright (c) 1999-2002 INRIA - Universite Paris 6 -
All rights reserved
(main authors: Vincent ROCA    - vincent.roca@inrialpes.fr
               Julien  LABOURE - julien.laboure@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)fortheALCversion, mcl_ctl(3), MCL documentation, the INRIA Research Report 4411 (March 2002) titled "Improving the Efficiency of a Multicast File Transfer Tool Based on ALC"

AUTHORS
Vincent ROCA (INRIA Rhone-Alpes, Planete project)
Julien LABOURE (INRIA Rhone-Alpes, Planete project)
$Id: fcastn.man.1,v 1.1.1.1 2003/05/12 09:45:26 roca Exp $