Internet2
Site Index | Internet2 Searchlight |
Membership | Communities | Services | Projects | Events | Newsroom | About
 | Internet2 Home | E2Epi Home

End-to-End Performance Initiative

About NDT
>Architecture
>COOKBOOK
>FAQs
>Downloads
>IP
>Suggestions

Manual Pages
  >ndt.conf(5)
  >web100clt(1)
  >web100srv(8)
  >fakewww(8)

Network Performance
> perfSONAR
> BWCTL
> OWAMP
> NDT
> Thrulay
> Workshops
> NPToolkit
> Measurement Point Directory
> RPM

Community Engagement
> Working Groups
> Collaborations


Network Diagnostic Tool (NDT)


web100srv(8) Manual Page



web100srv(8)                                                      web100srv(8)


NAME

       web100srv - NDT server-side testing and analysis engine.


SYNOPSIS

       web100srv [options]


DESCRIPTION

       The  Network  Diagnostic  Tester  (NDT) tool is a client/server program
       that provides network configuration and performance testing to a user's
       desktop or laptop computer.  The system is composed of a client program
       (command line or java applet) and a pair of  server  programs  (a  web-
       server and a testing/analysis engine).

       The  NDT server components are deployed on a Web100-enhanced server and
       these processes are started at boot time. A simple web server, fakewww,
       provides  a front end to the testing and analysis engine. It allows any
       Java-enabled web browser to access the  testing  and  analysis  engine,
       eliminating the need to pre-load software on the desktop computer. This
       greatly enhances the utility of the system. The  testing  and  analysis
       engine,  web100srv,  exchanges data with a command line or Java applet-
       based client program to test the client computer and the  network  path
       between the client and server. A series of specific tests are conducted
       with the purpose of identifying well know configuration  problems  that
       adversely  affect  network  performance.  The goal is to allow users to
       self-test their desktop or laptop computer and produce results that are
       acceptable to a site network administrator.

       The  web100srv  program provides the testing and analysis features that
       make the NDT an effective diagnostic tool. The basic operation is:

              ?      A client program connects to the server opening a command
                     channel  on  the  well-know  TCP  port 3001. This command
                     channel is maintained throughout the life of the test  to
                     allow  the exchange of test results.  This client program
                     may be the Java applet, automatically downloaded via  the
                     web  services  interface,  or  a  command  line  program,
                     web100clt, pre-loaded on the client computer. The  server
                     accepts this request, forks a child process to handle the
                     specific tests, and goes back to listen for new requests.
                     There  are  several operational modes (see options below)
                     that may cause the child to start a test, handle multiple
                     simultaneous  clients, or immediately terminate the pend-
                     ing request.

              ?      Once a test request is accepted,  the  server  returns  a
                     pair  of  TCP  port  numbers that the client must use for
                     further testing. The server process does a  passive  open
                     on these ports via the listen(2) command. The client per-
                     forms the active open, via  the  connect(2)  command,  to
                     allow  it  to  operate, even when located behind a NAT or
                     other filtering firewall. By default, the server uses TCP
                     port numbers 3002 and 3003 for this testing service.

              ?      Testing  begins  with  the client opening a connection on
                     port 3003.  The server records and returns the negotiated
                     TCP max segment size, along with the server's view of the
                     IP addresses used  for  this  connection.   These  values
                     allow the client to determine if a NAT or filtering fire-
                     wall is located in the network path.  The  connection  is
                     closed  and the client records the results for later dis-
                     play.

              ?      Next, the client opens a connection on port  3002.   Data
                     is streamed from the client to the server for 10 seconds.
                     The result is a measurement of  the  achieved  throughput
                     from  the  client to the server - i.e., the upload direc-
                     tion. By default, the server fork(2)'s a child process to
                     monitor  the  packet  dispersion  of the packets sent and
                     received during this test. A simple pcap(3) program notes
                     the arrival time of each packet and computes a throughput
                     rate for each pair. These results are then quantized into
                     a limited number of bins, one for each link technology to
                     be identified, and a weighted average is  also  computed.
                     At  the  end  of  the test these bins are returned to the
                     parent process for analysis.

              ?      Then, the client opens a connection on port  3003.   Data
                     is streamed from the server to the client for 10 seconds.
                     The result is a measurement of  the  achieved  throughput
                     from the server to the client - i.e., the download direc-
                     tion. By default, the server fork(2)'s a child process to
                     capture  another  set of packet dispersion events. (Note:
                     the server process must have enough privileges to perform
                     this  snooping  on the network interface.) After the test
                     stream has finished, the server retrieves a set of Web100
                     kernel  variables  and counters. These variables are used
                     by the analysis engine to determine what, if  any,  fault
                     conditions occurred.

              ?      The  final  step  is  to  analyze the collected data. The
                     packet dispersion results are used to calculate the  bot-
                     tleneck  link  technology  used on the network path. This
                     value provides an upper limit on how fast an  application
                     may  operate.  The  current  list  of  detected  links is
                     defined below. Following the link detection, the analysis
                     engine  looks  for  signs  of  duplex  mismatch and cable
                     faults that cause non-congestive packet loss.  These  two
                     conditions  will adversely effect throughput, but may not
                     show up with simple connectivity testing,  allowing  them
                     to  remain undetected for long periods of time. The final
                     step is to analyze the connection for signs of congestion
                     and  full/half  duplex operation. These normal conditions
                     can help identify when problems exist and when  the  net-
                     work is operating properly.


OPTIONS

       -a     Generate  an  administrator  view web page. The NDT server main-
              tains a log file that contains  the  results  from  every  test.
              This  allows  the  NDT administrator to examine the test results
              when users complain. This option allows the NDT administrator to
              make  a summary of these results available to the user community
              via the web interface. When enabled, this options generates  the
              results web page.

       -d     Print debugging information. This option increments the internal
              debugging flag, allowing the display of run-time diagnostic mes-
              sages.   Repeated  use  of  this  option increases the amount of
              debugging information that will be  displayed.  Note:  debugging
              information prints to stderr.

       -m     Select  single  or multi-test mode. By default, the NDT operates
              in single test mode. This means that only a  single  client  may
              run  a  test at any given time. The NDT administrator may choose
              to allow multiple clients to run  concurrent  tests  instead  of
              this single client mode. Note: doing so allows clients to inter-
              fere with each other, possibly congesting the NDT's  local  net-
              work link.

       -q     Disable  FIFO  queuing. By default, the NDT operates with a FIFO
              queue, allowing multiple clients to request tests. If the server
              is  currently  performing  a  test,  the  requesting  client  is
              informed that the server is busy and testing will  begin  within
              xx  seconds.  The NDT administrator may disable this queuing and
              reject test requests while the server is busy. In this mode, the
              user must manually request another test.

       -r     Record  Web100  variables when the server is receiving data.  By
              default, the server does not capture Web100 variables during the
              client  to  server throughput test. There is a minimal amount of
              Web100 data collected when TCP is operating in a  receive  mode.
              This  option allows the NDT administrator to collect and examine
              this Web100 data.

       -t     Write a tcpdump(8) formatted  file  to  disk.  By  default,  the
              server tries to perform a packet dispersion analysis of all data
              sent and received on the  test  ports  (3002  and  3003).   This
              options  allows  the administrator to capture these data streams
              for later analysis. The tcpdump(8) and tcptrace(1) programs  can
              be used to analyze these trace files.

       -x     Enable  any  experimental code. The server program is constantly
              being modified and, from time  to  time,  experimental  code  is
              installed.   This  option allows the NDT administrator to invoke
              this code at run time.

       -v     Print version number and exit.

       -b buffer_size
              This option allows the NDT administrator to set the TCP send and
              receive  buffer  sizes  via  the setsockopt(2) function.  Values
              larger than 64 Kbytes  will  result  in  large  windows  if  the
              RFC1323 window scaling option is enabled on the client host.  By
              default, the server uses the system  default  values.   The  NDT
              administrator may override the system defaults with this option.

       -f variable_FN
              By default, the /usr/local/ndt/web100_variables file contains  a
              list  of  Web100  variables  that should be collected by the NDT
              server. This options allows the NDT  administrator  to  specifi-
              cally define the location and name of this file.

       -i device
              By  default,  the NDT server monitors the 1st Ethernet interface
              for the packet dispersion testing. This option  allows  the  NDT
              administrator to select a different interface.

       -l log_FN
              By  default,  the NDT server writes the results of every test to
              the /usr/loca/ndt/web100srv.log log file. This option allows the
              NDT administrator to define a new location and name for this log
              file

       -p port #
              By default, the NDT server listens  for  test  request  on  port
              3001.   This  option allows the NDT administrator to change this
              port number.


LIMITATIONS

       The NDT service is continuing to undergo testing and upgrading.  Better
       diagnostic  algorithms  are being developed to improve the accuracy and
       reliability of this service.


EXAMPLES

       web100srv -a >& /dev/null &

              Start server with administrator view enabled

       web100srv -ddd

              Start server in foreground and enable 3  levels  of  debug  mes-
              sages.


SEE ALSO

       The http://e2epi.internet2.edu/ndt/ web site, web100clt(1), fakewww(8),
       and setsockopt(2).


ACKNOWLEDGMENTS

       This material is based, in part, on work supported by the National Sci-
       ence  Foundation (NSF) under Grant No. ANI-0314723. Any opinions, find-
       ings, conclusions or recommendations expressed  in  this  material  are
       those  of the author(s) and do not necessarily reflect the views of the
       NSF.

                         $Date: 2004/05/20 21:49:12 $             web100srv(8)

Man(1) output converted with man2html

NDT 28 May, 2004
The original idea and implementation of the web-based testing server was designed and implemented by Tom Dunnigan from Oak Ridge National Laboratory. It has been extensively modified by Rich Carlson and changed to perform the current functions. This material is based on work supported [in part] by the Office of Science, U.S. Department of Energy under Contract W-31-109-ENG-38 and Argonne National Laboratory.

Parts of this work were supported by Cisco Systems Academic Research and Technology Initiatives, University Research Program under the Word for Others contract P-03008 while Rich Carlson was at Argonne National Laboratory. 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.
 
© 1996 - 2008 Internet2 - All rights reserved | Terms of Use | Privacy | Contact Us
1000 Oakbrook Drive, Suite 300, Ann Arbor MI 48104 | Phone: +1-734-913-4250