If you select this menu item, the connection settings dialog box will appear (Figure 1).
Figure 1: Data source connection settings
Use this tab to configure the incoming connection settings. The incoming data stream will be split into two or more identical data streams (replicated) and delivered to the specified recipients.
TCP is a time-proven, reliable protocol. It is probably the one that is most widely used in IP networks. The benefit of using this protocol is its ability to maintain and control a connection between computers. TCP also inherently supports data integrity checking. Some of this protocol’s drawbacks are data redundancy and a transmission delay due to connection establishment.
UDP is a connectionless protocol, that is, it allows you to send data without establishing a connection. Like TCP, UDP is an upper-layer protocol for IP networks. Unlike TCP, UDP doesn’t guarantee data delivery and doesn’t support error checking. But UDP allows you to directly send and receive data packets, while applications using UDP can check for data integrity and, if necessary, resend data. For example, you can use this protocol to send small multicast packets. When using UDP, applications follow the “fire and forget” principle.
Each connection in TCP Splitter can work as:
Name is the name of your connection. It will be displayed in the list in the TCP Splitter main window.
IP address and port are specified for a remote server if TCP Splitter runs in the client mode, or for the local computer if TCP Splitter runs in the server mode.
Sending timeout is a parameter that allows you to set a time interval for grouping data and sending them in one IP packet.
The following settings apply only to TCP/IP:
TCP keep-alive mode is an option that, if turned on, makes TCP Splitter send keep-alive data packets at the specified interval. If the client (server) doesn’t respond within the specified time, TCP Splitter will automatically close the connection because the lack of response indicates a loss of connection with the client (server). If you select “System” for the keep-alive mode, TCP Splitter will apply the interval and timeout values used by Windows.
These settings (Figure 2) are only applicable if the connection to the data source works in the server mode.
Figure 2: Additional server settings
Max. number of clients is a parameter that allows you to limit the number of clients that can simultaneously connect to the server. This way, you can optimize the server load if there are too many clients. If the value is zero, it means that the number of connections is not limited.
Allowed IP addresses is a parameter that can be used in the server mode only. It allows you to specify one or more IP addresses allowed to connect to the server. In that case, any connection attempts originating from any other IP addresses will be rejected. This parameter is very useful if you are sending data over the Internet, or if the server is connected to a large corporate network. You can enter multiple allowed IP addresses, one address per line. If you leave the field empty, TCP Splitter will accept connection attempts originating from any IP addresses.
Use this tab (Figure 3) to configure connections to the data recipients. Such connections always use the client mode. If you do not specify any IP address and/or port for a data recipient, that recipient will be effectively disconnected.
IP address and port are parameters for the remote server.
Protocol type is either TCP or UDP. Please note that the source and the recipient do not have to use the same protocol.
Data direction is a parameter that you can use to forbid data transmission in one of the directions (from the data source to the data recipient, or vice versa). A check mark means that data transmission in that direction is allowed.
Please note that if you split a data stream that contains packets whose reception must be acknowledged by the recipient, sending such an acknowledgment by the second or third recipient may result in data desynchronization. In that case, we recommend that you disable data transmission from secondary recipients to the source.
Source -> Recipient. Send only in the last active connection is an option that you can use if the recipient initiates data transmission from the source to the recipient. For example, the recipient sends a request and waits for a response. If you turn this option on, any data that TCP Splitter receives from the source will be sent only to the specific recipient that sent the request. This condition will be automatically deactivated when the specified time is over. It will be automatically activated again if TCP Splitter receives a new request from the recipient.
Figure 3: Data recipient connection settings
Use this tab (Figure 4) to configure additional connection settings for the data recipients. These settings will be applied only if the recipient is TCP Splitter (for example, in the “Bypassing NAT” use case).
Encrypt transmitted data is an option that allows you to encrypt all transmitted data.
Additional keep-alive packets is an option that, if turned off, makes TCP Splitter add nonstandard keep-alive packets for the TCP connection. It may be necessary if the standard keep-alive packets are blocked by the routers.
Send zeros is an option that, if turned off, makes TCP Splitter use a special keep-alive packet: one zero byte.
Figure 4: Additional settings
How does it work?
As soon as you configure the connection, TCP Splitter will connect to the specified address (if TCP Splitter runs in the client mode), or wait for clients to connect to it (if it runs in the server mode). When a connection is established, TCP Splitter will try to establish a new connection with each specified data recipient. If the data source operates in the server mode, a new connection will be opened for each client connected.
In case TCP Splitter fails to connect to a data recipient, it can store up to 1 MB of data for each connection in its internal buffer. When the connection is reestablished, TCP Splitter will first send the data from the buffer. If the buffer is full, the oldest data will be overwritten.
If the connection to the data source fails, TCP Splitter will automatically close the corresponding connections with the recipients. In that case, the data from the internal buffer will be irretrievably lost.