Network Characterization Service for Beginner(papers) Table of Contents
Introduction to NCS How to use NCS NCS HighLight downloading distribution and re-build binaries
Syntax:
ncsd [-irtc] [-l] [-max #] [-P #] &
The "-l" option is for overcoming the non responsive and/or troubled network
elements (routers/switches), or firewall. Especially, when you see this message:
ncsd [1.2 Sep26-2K1] : can't reach the host3[xxx.yyy.xxx.hhh] with max_ttl(#)
try to analyze partial path instead
the error message is similar to the pipechar
pipechar [Mar25-2K1] : can't reach the host3[xxx.yyy.xxx.hhh] with max_ttl(#)
try to analyze partial path instead
The "-l" option should be used. The recommend arguments are:
ncsd -l -P 11 -irtc &
The "-max #" is also for the above reason. The recommend value is 25.
When try to use smaller value for "-max", use "-l" with it. These two options
may be forced to use in the future since we have found more and more routers
that send bogus ICMP and TTL to the source.
The less # for "-P" option will make faster initial probing, but may result
in less accurate measurements.
pipechar (a desktop version of NCS) uses these options in the same way.
tutorial of these tools explains the pipechar output.
Current ncsd distribution is non-registered version, which runs only in single
server mode. If this is the first time to run ncsd on a host, you may
see the following message:
ncsd [1.2 Sep26-2K1] : no cache file loaded; Error<2> No such file or directory
This is not an error. This tells that it is a new ncsd. Do not try to start
another ncsd, it is already running. You can use ncs client -- ncsC --
to inquire now.
Client:
Syntax:
ncsC -s ncsd-name [-ah] [-TCPWin] destination(s)
ncsC -rm destination(s)
ncsC -START | STOP destination
ncsC -chng [train #] [sched interval-tick [start tick]] destination
ncsd-name is the host where you run the NCS daemon (ncsd). You can change the
default ncsd name in ncsC_example.c, line 73, and recompile it:
{"-s", "%s", 0, 1, 1, "server name", 0, argu_ranges(DEMO_DEF_NCSD)},
to
{"-s", "%s", 0, 1, 1, "server name", 0, argu_ranges("your_NCSD_name")},
Most frequently used options:
-ah will report all hops info.
-TCPWin will report RTT and Tuned TCP window size for Tx.
-rm will remove a target from NCS cache. Only the initiator and the daemon
can remove the target. That is, if a target (destination) is probed
from host A, then host B will not be able to remove it. e.g.
host-A % ncsC target-someone
IP = ncsd-IP
1 hops to target-someone
hop 1: xyz.243.2.##: BW avl 99 Mb max 100 Mb; RTT min 0.4 avg 0.6 ms
hop 1: xyz.243.2.##: Dynamic bottleneck -- BW 99 Mb
hop 1: xyz.243.2.##: Static bottleneck -- BW 100 Mb
host-B % ncsC -rm target-someone
IP = ncsd-IP
ncsC [1.2 Sep25-2K1] : dst xyz.243.2.## failed to remove
Change path parameters
ncsC [-s server] -STOP destination
stops reprobing scheduler for this path on ncsd (server).
ncsC [-s server] -START destination
starts reprobing scheduler for this path on ncsd (server). Notice that this
command only be executed by the initiator (owner) of the path.
ncsC [-s server] -chng train length and/or sched interval-tick [start tick] destination
changes the probe train length, scheduler period, [and the scheduler start time]
on this path. These parameters can be changed in one command or separated
commands. Each tick is 5 minutes. For example:
ncsC [-s server] -chng sched 10 yahoo.com
changes the scheduling frequency from current to 50 minutes (10 x 5) for path
from server to yahoo.com. The starting time is unknown (whatever left in
previous scheduling).
ncsC [-s server] 12.34.45.56 -chng sched 10 60
changes the scheduling frequency from current to 50 minutes (10 x 5) for this
path, and start the new scheduling in 5 hours (60 * 5 minutes).
Caution:
ncsC [-s server] -chng sched 10 100 12.23.34.45
is ok, but
ncsC [-s server] -chng sched 10 12.23.34.45
will cause error. Put IP before the flag "-chng" in this case.
The default tick time can be changed. Define DEFAULT_SCHED_TIMER in Makefile
or change its value from 300, in ncsd.c, to whatever work for you. Then,
recompile the ncsd -- make ncsd.out .
"-EX" option has the same functionality as "-chng", but it is used only for
initiator. Once the path is initialized, use "-chng" to change parameters.
For other options, type "ncsC -h".
Reasons:
|
|
Note: The synchronous train technology imrpoves the probing mechanism that measures a higher speed link from a lower speed NIC. We have proved this algorithm that successfully measures Gigabit network from a 100 BT NIC (a 100 Bbit/s network) via Self-Configuring Network Monitor and Shomiti fiber analyzer. However, this algorithm needs to modify the NIC driver (on NIC timer) to get accurated packet timing for high-speed networks (Gigabit and higher), so currently it is only available for FreeBSD.
The reliable percentage is from converging coefficient. If linear regression can make convergence quickly in asymptotic approach, the reliability is considered high. The differential of the asymptotic rate is the reliability rate. If you try to probe a GigE or OC-12 from a 100BT or OC-3 NIC based host, the reliable percentage may be meaningless.
The default sink port is 2000. The very default is port 9 which most O.S.s have disabled it for some reason ??? Then, use "-u 2000" option to start pipechar from probing side.
The ncsd distribution includes ncsd.c (the daemon source), and ncsC_example.c, (client), in src/netest/sources/metric/ncs directory. The program API design document API is also available in that directory.
The binaries are for FreeBSD, BSD/OS, Solaris, Linux 2.4/2.2, AIX and IRIX. They include ncsd (daemon), ncsC (client), pipechar, netest , etc.
re-build binaries:
All dependent libraries and header files are also distributed in
src/netest/include and src/$ARCH/{bin, lib}.
To modify and recompile the program, change directory to
src/netest/sources/metric/ncsedit the file, change "cd" to src directory and type "install.ncs ????.out" to rebuild the binary, such as ???? = pipechar. For example,
For how to program a client to query the desired information from ncsd services,
please refer to the program API design document,
and the ncs Client program -- ncsC_example.c and ncs-api.h in the NCS
distribution .
For modifying ncs daemon -- ncsd.c -- please refer to the pipechar.h for
data information. Most characteristic information is in struct "hop_info",
pointed by pd_path in pc_d_t structure.
Tips for getting GigE fully utilized: (details are in papers ) 64-bit/66Mhz PCI 160-240 MBps memory bandwidth (66-100 MHz main bus) 300 MBps memory bandwidth (133 MHz main bus) or 32-bit/33Mhz PCI 600 MBps memory bandwidth or use jumbo frame or bad performance (normally is around 380-450 Mbps)
| Created on Friday, 2000 July 14; Revised at 2001 April | |
| Updated Thursday, 15-May-2003 15:15:00 PDT | ([an error occurred while processing this directive]) |