Software Tools for Data transfer over network


Three data server software
  1. VSI2000 Data Sender (VDS)
  2. Channel Decomposer Server (CDS)
  3. Data Distribution Server (DDS)
and Software correlator Software Correlator is used for realtime e-VLBI data processing.
The software for data transfer is developed by using C++ class library, which is originally written by David Lapsley at Haystack. We used the library vtp-1.0.H and modified it (vtp-1.0.Hm). If you are interested in to use these data transfer software, please make contact to e-vlbi1 @ kasmial.nict.go.jp.
  1. VSI2000 Data Sender

    It sends out data in the following simple protocol.
    1. Waiting for a connection at a port (7000) for a connection from client. After a connection from client is established, a TCP packet named as "payload" is received. The contents of the "Payload" is as follows:
      struct Payload {
        unsigned long long  epoch; // total second since 1. Jan. 1970 given 
                                   //  by time(time_t *)
        unsigned long long length; // Sampling clock * length of time (samples)
        unsigned long long offset;
        unsigned int        clock; // Sampling clock (Hz)
        unsigned int     bit_mask; // Bit Mask to get specific data in the 32bit 
      }
      
      An example of C++ headder file is available.
    2. Then data is send out to the client until the repuested amount (length * 4 bytes) of data has been sent out.
    3. If the connection to the client is broken, it return to the initail state and wait for connection from client.

    The format of the data of stream from ADS-1000/2000 is as follows:
    560x77(622bytes)

    Note the bit assignment is HIGH and LOW bit instead of SIGN and MAGNITUDE. Thus the 2bit data code of data from smaller to larger are 00 01 10 11.

  2. Channel Decomposer Server

    Protocol/procedure is as follows:
    1. Waiting for a connection from "Master client" at a port (7002). When a TCP connection from client is established and a packet named "payload" is reveived from the client, that client is assigned "Master Client" and the bit-mask information of the payload is used for masking the data of the stream. The payload is immediately forwarded to data source server: VSI2000 data sender and wait for the data stream from that server.
    2. Waiting for connection from clients at a port (7003). The client connected at this port is assigned as "dummy client" and the same data stream sent out to "Master client" is provided for this client. Maximum number of "Master client" is 1 and maximum number of "Dummy client" is for 5. This "dummy client" is used for correlation processing of multiple baselines.
    3. When data stream from "data sender" is received, a specific data stream extracted by the bit-mask is extracted and sent out to "Master" and "Dummy" clients.
    4. If the connection to the data soruce or Master client is closed, it closes all the connection and return to the initial state.

  3. Data Distribution Server


    It works as follows:
    1. Waiting for a connection from a "Master client" at a port (7004). When a TCP connection from client is established and a packet named "payload" is reveived from the client, that client is assigned "Master Client". The payload is immediately forwarded to data source server and wait for the data stream from that server.
    2. Waiting for connection from clients at a port (7005). The client connected at this port is assigned as "dummy client" and the same data stream sent out to "Master client" is provided for this client. Maximum number of "Master client" is 1 and maximum number of "Dummy client" is for 5. This "dummy client" is used for correlation processing of multiple baselines.
    3. As the data stream from the data source is received, That data is sent out to "Master" and "Dummy" clients.
    4. When the connection to the data soruce or Master client is closed, it closes all the connection and return to the initial state.
  4. Software Correlator: