Guralp Systems Limited
MAN-SWA-0001 Issue M - Scream User's Guide
Section Index: 7.1 Client pull 7.2 Server push 7.3 Server Buffer 7.4 Gap recovery

Chapter 7. Forwarding data over a network

Previous chapters have described how to use Scream! to access data directly from a digitiser or via another copy of Scream! These data can come from serial ports, modem lines or anywhere on a local or wide-area network. This functionality is controlled from the My Client tab of the Network Control window and from the Com Ports tab of the Setup dialogue and is described in Chapter 4.

Once data sources have been configured, Scream! can then act as a server to forward data to other computers running Scream!, any equipment running Platinum, such as Güralp NAMs, archival programs and/or processing software such as Antelope and Earthworm. Data are transmitted in GCF format using the Scream transport protocol. This functionality is controlled from the My Server tab of the Network Control window:

To access this window from Scream's Main Window, select Windows→Network Control from the menu or use the keyboard shortcut + .

Scream! can serve data in two ways. In the first, clients may request data from the Scream! server. This method is known as “client pull”. Alternatively, Scream! can keep a list of clients which need to be provided with data. This method is known as “server push”.

Note: In the illustrations in the following sections, we will show the Scream system that is transmitting data as a desktop PC and the system that is receiving data as a laptop. This is just a convenient shorthand: any system that can run Scream can act as a server.

7.1 Client pull

In a client pull configuration, Scream listens for incoming UDP requests from clients and serves data to them automatically.

To start a server and listen for pull requests from clients, tick the Transmit data from local Com Ports check-box and/or the Transmit data from Network check-box on the My Server pane. Scream will start listening on the UDP port specified in the Network Control window as the Port used for all network communications.

Caution: If your server is behind a firewall, you will need to unblock the UDP port at the server side to receive these requests.

7.2 Server push

In a server-push configuration, the server must be configured with a list of clients. GCF data will be pushed to the client using the scream transport protocol over UDP.

Note: If you are using Scream as a client, you can simply tick the Receive Data check-box on the My Client tab to begin receiving data. If your client is behind a firewall, you will need to unblock the UDP port at the client side.

To configure Scream to push data to a particular client:

You can add any number of clients, including broadcast addresses and multicast groups. If you want to broadcast or multicast UDP packets, you should obtain suitable addresses from your network administrator.

The list of clients to which Scream! is currently sending data is shown in the Clients table at the top of the My Server pane. Block-by-block details of the data being transmitted are shown in the Block Tx pane. Other server operations are reported in the Control pane to its right.

Both “server push” and “client pull” clients are listed in this pane. You can see which clients are using which method by looking in the Time-out column. When a pull client requests data, its time-out is reset and then starts counting down toward zero (as is the case for 10.10.0.33 in the screen-shot above). If a pull client's time-out value reaches zero, Scream! assumes it has stopped listening and removes it from the list. On the other hand, push clients do not have a time-out, because Scream! will always try and transmit to them. Thus, clients using pull have a time-out figure listed in this column, whilst push clients are shown with the entry None, as is the case for 10.10.0.37 in the screen-shot above.

To alter the IP address or destination port of a client, right-click on it and select Edit…. Enter the new IP address and port as for Add…, and click 

To remove a client from the list, right-click on it and select Delete.

7.3 Server Buffer

The Scream server must store a history of the data transmitted in case the client does not receive all data and requests "back-filling". Scream! stores this history on disk so that it can be very large, if desired. The Server Buffer tab of the Network Control window allows the configuration of the size and location of this disk-based buffering.

If disk-based buffering is not enabled, Scream! will use a small memory-based buffer.

It is recommended that the user ensures there is sufficient disk space available on the drive selected to hold the buffer. The buffer size can be specified in either time (Days, Weeks or Years), or in terms of disk usage (MiB, GiB or TiB).

7.4 Gap recovery

In addition to the normal UDP data protocol, Scream! has facilities for attempting to recover missing data. When Scream! receives a block of data that indicates a gap (because the sequence number is not contiguous), it opens a new TCP connection to the server (from the same port). Once this connection is made, Scream! requests the missing data and, if they are available, the server transmits them over the same TCP connection. The UDP data stream continues unaffected.

If you are using a firewall on either side of the connection and want Scream! to be able to recover missing data in this way, you will need to unblock the relevant port for both UDP and TCP traffic.