DataMover For Networks Print E-mail

Help Topics

Getting Started

DataMover for Networks is a winsock application that performs benchmarking and functional level testing on IPv4 and IPv6 network endpoints.  The solution consists of a client and server application that run on different machines.  The client is capable of performing I/O to multiple servers simultaneously, and the server is capable of servicing multiple clients simultaneously.  Both the client and server require a valid license.  The client/server application can be used to identify network bottlenecks, perform end-to-end data integrity tests, and analyze network performance.  The client can operate in half duplex mode (IN or OUT data direction), full duplex mode (IN and OUT data direction simultaneously), and external loopback mode (the server is used to receive and send the data back to the client).  Error checking can be enabled or disabled for all modes of operation. 

Image

Image

Server Operation

The server requires minimal configuration input from the user.  When it's started, the server will automatically start listening on the first valid IPv4 or IPv6 interface that it finds on the host system but the user may select a different interface if desired.  Changing to a new interface is as simple as selecting a new address in the interface dropdown and stopping/starting the server application.

  1. Interface - Dropdown that allows the user to select a new listening inteface.
  2. Active Connections - Number of active sessions active on the server that are processing I/O.
  3. Listening On - Current interface that the server is listening and servicing requests on.
  4. Start - Starts the server application on the specified interface.
  5. Stop - Disconnects all active connections and stops the server application from listening or servicing any further TCP processing.
  6. Cancel - Disconnects all active connections, stops the server application and terminates the application.
  7. Help - Displays local help window.
  8. Client Listing - Displays a list of all active and previously active connections.
    1. Address - IP address of client connected to server.
    2. Client Port - TCP port of client.
    3. Server Port - TCP port of server.
    4. Status - Status of current conection.
      1. LISTENING - Server is waiting for a connection.
      2. CONNECTED - Server is connected but not performing data I/O with the client.
      3. PROCESSING - Server is connected and performing data I/O with the client.
      4. DISABLED - Server is disabled on this specfic port.  This should only occur if the STOP button has been pressed or a serious error has occurred on the server (see application event log for details).
    5. Operation - Type of I/O operation being performed with the client.
      1. IN - Server is currently receiving data from the client (client is performing a write operation).  If error checking has been enabled on the client, the server will perform an data integrity check on the received data.  If an error is detected, a data miscompare application event log entry will be posted by the server.
      2. OUT - Server is currently transmitting data to the client (client is performing a read operation).
      3. LOOPBACK - Server receives and transmits data to the client in a sequential fashion.  After the server receives all of the data, it will transmit the data back to the client, mimicking an external loopback operation.

Client Operation

The client is responsible for configuring all aspects of the client/server connection.  It determines the transfer size, data pattern type used, number of sessions to open, I/O mode, error checking on or off, and special testing modes.

  1. Connect - Starts the I/O session(s) with the server.
  2. IPv4 Address - IPv4 address of the server.
  3. IPv4 Address Check Box - Enable IPv4 addressing mode for this connection.
  4. Sessions - Number of sessions to open with server for this connection request.
  5. Transfer Size - Twenty selectable transfer sizes, ranging from 8 bytes to 4 Megabytes.
  6. I/O Direction - There are four different type of I/O directions or modes.
    1. IN - Half duplex read operation where server transmits data to the client using the predetermined transfer size.
    2. OUT - Half duplex write operation where the client transmits data to the server using the predetermined transfer size.
    3. BOTH - Full duplex operation where the server transmits data to the client and the client transmits data to the server simultaneously at the predetermined transfer size.
    4. LOOPBACK - Sequential half duplex operation where the client transmits data to the server at the predetermined transfer size and waits for the server to transmit the same data back to the client at the predetermined transfer size.  This process repeats indefinitely.
  7. Elapsed Time - Elapsed time in Days:Hours:Minutes:Seconds since all sessions were disabled.
  8. Status - There are three general status modes relating to all active sessions on the client.
    1. RUN - Will be displayed if atleast one session is active.
    2. STOP - Will be displayed if no sessions are active.
    3. FAIL - Will be displayed if one or more session threads detects an error (see application event log entry for more detail).
  9. Performance - Total aggregrate throughput of all active sessions in MB/s (megabytes per second).
  10. IOPS - Total aggregate IO completions of all active sessions per second (IO per second).
  11. Pattern - Edit window that allows the user to input a byte pattern that will be used in I/O operations (0x00h to 0xFFh).  This pattern will be used to initialize the I/O data buffers.  This window will also become read only when random data pattern or import data patterns have been selected.
  12. Active - Number of active sessions on the client.
  13. Special - Displays special test mode being used; currently 'QPERFTEST' for Quick Performance Test and 'PERFTEST' for Long Performance Test will be displayed.
  14. Extended - Displays error messages generated by session threads when they occur (see application event log entry for more details).
  15. Server Listing - Displays all active and previously active connections.
    1. Address - IP address of connected server.
    2. Client Port - TCP port of client.
    3. Server Port - TCP port of server.
    4. Status - Status of current connection.
      1. CONNECTED - TCP connection established with server but not processing I/O yet.
      2. PROCESSING - Processing I/O with server.
      3. ERROR - Error has occurred (see Windows Application Event log for more details).
      4. DISABLED - No longer connected or processing I/O with server.
    5. Operation - Type of I/O being performed with server.
      1. IN - Client is receiving data transmitted by the server.  If error checking has been enabled, client wll perform data integrity test on received data.
      2. OUT - Client is transmitting data to the server.  If error checking has been enabled, server will perform data integrity test on received data.
      3. BOTH - Client is receiving data from the server and transmitting data to the server simultaneously.  If error checking has been enabled, client will perform data integrity test on received data and server will perform data integrity on received data.
      4. LOOPBACK - Client transmits and receives data to and from the server in a sequential fashion.  Data is first transmitted by the client, server receives data and transmits back to client.  Client receives same data it transmitted and repeats operation.  If error checking is enabled, client performs data integrity test on received data.
    6. MB/s - Aggregrate throughput of all active sessions in megabytes per second.
    7. IOPS - Aggregate I/O completions per second for all active sessions.
    8. MB/s (IN) - Individual throughput for active session in megabytes per second (receive only).
    9. IOPS (IN) - Individual I/O per second for active session (receive only).
    10. MB/s (OUT) - Individual throghput for active session in megabytes per second (transmit only).
    11. IOPS (OUT) - Individual I/O per second for active session (transmit only).
    12. Chunk - Tranfer size used in all I/O transaction types.
    13. Error Checking - Will display Enabled or Disabled depending on error checking selection for session.
    14. Pattern - Data pattern or data pattern type being used for sessions.
    15. Error - Error code (see Windows Application event log for more details).
    16. Special - Displays special I/O mode when selected. Currently 'QPERFTEST' and 'LONGPERFTEST' special modes supported.
  16. Error Checking - Checking this box enables error checking on client and server for new connections.
  17. Multiple Nodes - Checking this box enables multiple node support which allows the user to select many source and destination IP pairs.  This feature allows multiple client and server sessions to be created at one time and can also be used for performance testing configurations.

Performance Testing

The client performs a quick or a long performance test selected by the user.  The number of sessions that will be run for the performance tests are determined by the user.  For the quick performance test, 8B and 4MB transfer sizes will be tested for IN, OUT and BOTH directions.  When the test completes, a results dialog will be displayed that allows the user to save the results to a text file.  For the long performance test, twenty transfer sizes will be tested, ranging from 8B to 4MB for IN, OUT and BOTH directions.  When the test completes, a results dialog will be displayed that allows the user to save the results to a comma delimited file.  For both tests, the numbers displayed for throughput and IOPS will be an average based on a static sample size controlled by the application.  Standard deviation for each calculated average is provided.

Bus Analyzer Signatures

If the client detects a data miscompare, it will send a specific signature to the server enabling any bus analyzer to trigger on the pattern.  The pattern for the data integrity failure is defined in the table below:

 ASCII

 HEX

 "MOOJIT GOT CRC ERROR ON LAST I/O         "

4D4F4F4A 49542047 4F542043 52432045

52524F52 204F4E20 4C415354 20492F4F

20202020 20202020

  
  

In most cases, the first DWORD (4D4F4F4A) should be sufficient to trigger the analyzer.

The bus analyzer trigger should be set to look for this pattern at offset 0x00h in the TCP PAYLOAD.

Linux Server Installation

  1. Untar the package ('tar -xvf dmnetwork.tar')
  2. Run install script ('./dmnetworkinstall.sh')
  3. Type 'moojitserver' in terminal window to start program.

Linux Server Operation

The Linux version of the server side application has the same feature/functionality as it's Windows counterpart.  It's a command line application that's capable of accepting command line arguments.  Below is a screenshot of the server menu which appears after entering at the command line 'moojitserver.' 

Image

The main menu will display version information, the license registration number (if registered) , the IP address it's listening on, and the number of active connections.  In this example, the server has already been registered and it's listening on IP address 193.168.100.164 with zero active clients.  Like it's Window counterpart, the server supports IP4 and IP6 addressing and is capable of servicing multiple clients simultaneously.  Registration and activation requires a licensing server or HASP key installed in a USB port on the host server machine.

Menu Items

  • Exit - Exits application.
  • Stop All Threads - Stops all server listening threads.
  • Start All Threads - Starts server listening on a given IP address.
  • Unregister License - Removes server registration from licensing server and puts server in demonstration mode.  All server threads must be stopped before performing this operation.
  • Register License - Registers and activates server license.  This can be used if the license has been previously unregistered by the user or if using the network licensing server and the temporary lease has expired.
  • Import and Register License - This step must be performed first when registering the server license.  A valid license file provided by The Moojit is required.  Selecting this option will display a submenu that asks the users to enter the path and filename of the license.  For example, if the license 12345678.lic is located in the /usr/temp directory, the user should enter '/usr/temp/12345678.lic.'  This step will import and register the license in one step.
  • Change Listening Interface - Selecting this input, will display a submenu that allows the user to change the IP interface that the server listens on.
  • Refresh Display - This option will update the main menu page and is helpful when trying to determine the number of active connections.

Command Line Arguments

The moojitserver accepts only one command line argument which can be any of the following:  IP4 address, IP6 address or interface name.  If no command line arguments are provided, the server will be listening on the first valid IP4 or IP6 address that it discovers on the host.  If a command line argument is provided and it's a valid IP address or interface name, the server will listen on the interface provided.  Below are examples of valid and invalid command line arguments:

'moojitserver eth0' - valid

'moojitserver xyz' - not valid

'moojitserver 192.168.0.1' - valid

'moojitserver 2002:1234::1' - valid

'moojitserver 192.168.1' - not valid

Client and Server Maximum Connection Limits

 Client  Server Direction Comments
 IP4  150 150 IN 
 IP4 150 150 OUT 
 IP4 300 300 BOTH 
 IP4 150 150 LOOPBACK 
 IP6 150 150 IN 
 IP6 150 150 OUT 
 IP6 300 300 BOTH 
 IP6 150 150 LOOPBACK 
 IP4+IP6 300 150 IN Simultaneous IP4 and IP6 traffic
 IP4+IP6 300 150 OUT Simultaneous IP4 and IP6 traffic
 IP4+IP6 600 300 BOTH Simultaneous IP4 and IP6 traffic
 IP4+IP6 300 150 LOOPBACK Simultaneous IP4 and IP6 traffic

Winsock and Berkeley Sockets Error Codes Reference

Advanced Test Features

The advanced network features can be enabled by opening the Prefereces dialog from the menu under 'Options.'  To turn on this feature, check the enable box in the 'Advanced Test Settings' section and select 'OK.'

Image

Enabling this feature will allow the user to select the source interface that will be used on the client.  This comes in handy when the host client machine has multiple interfaces and the user wants to have control over which interface will be used to connect to the server.  When the user selects the 'Connect' button, the 'Advanced Features' dialog will be displayed allowing the user to select the source network interface from the dropdown window.