TCP/IP

TCP/IP is the standard communication protocol used for the Internet connections. It is a more secure and reliable protocol than FTP. TCP/IP has rules for error correction and even if the connection is interrupted before completing a file transfer, you can continue the file transmitting after the connection is reestablished.

Using the TCP/IP communication method in MassTransit, you can quickly transfer large numbers of files. TCP/IP is very suitable for transmitting small or not too large files in local area networks (LAN) and metropolitan area networks (MAN).

Note: TCP/IP communication method is available in MassTransit HP only.

Configuring TCP/IP Incoming Calls

To receive an incoming TCP/IP call on your MassTransit HP Server, you need to configure a TCP/IP Listen.

Info: In MassTransit HP 7.0.1, there is a new option available to prevent "File Transfer Failed" actions firing (if configured) when Receive Files From User or Send Files To User general privileges are disabled.

When Send Files To User or Receive Files From User privileges are disabled and there are files for sending or receiving on TCP/IP connections, a warning is logged. This warning causes actions with File Transfer Fails trigger condition to fire. This behavior can be disabled by setting the "LOG_SEND_RECV_PRIVILEGE_AS_WARNING" parameter in the MassTransitEngine.cfg file (the file is located in the MassTransit installation directory) to false as shown below:
    LOG_SEND_RECV_PRIVILEGE_AS_WARNING = FALSE
This will cause the messages to be logged as "Info" instead of "Warning", which will prevent the "File Transfer Fails" actions from firing. You must restart the MassTransit service for changes to apply.

Info: For information about available additional configurations, see the Additional Configurations section on this page.

Configuring a TCP/IP Listen

Note: MassTransit allows you to configure multiple TCP/IP listens.

To receive an incoming TCP/IP call, you first need a TCP/IP Listen:

  1. In MassTransit Administrator, open the Setup window by clicking on the Setup button from the Navigation Bar or select the Setup... option from the Window main menu.
  2. In the Incoming Calls tab, click on the Add... button.
  3. The "Add Incoming Call" window appears. From the Method drop-down menu, select the TCP/IP option.
  4. The Configure TCP/IP for Incoming Calls window appears. Select the IP address you want MassTransit to listen on from the IP Address to listen on for incoming calls drop-down menu. Selecting All means that MassTransit will be listening for incoming calls on all network interfaces. That is the default option. If you select a particular IP address, MassTransit will use only that address to listen on.

  5. Enter the port number that will be used for the TCP/IP connection in the Port field, or leave the default setting.

    Note: If you or the calling party have/has a firewall, it must be set to allow traffic on this port.

  6. Click on the OK button to save the changed settings. The configured TCP/IP method should appear as active in the Setup window.
  7. Click on the OK button in the Setup window.

You should be able to receive incoming TCP/IP calls now.

Enabling and Disabling the Listen

In the "Incoming Calls" tab of the Setup window, all created listens are listed. In the first column of the list, there is an indicator showing whether the listen is enabled or not.

Configuring TCP/IP Outgoing Calls

In order to be able to place an outgoing TCP/IP call to a contact, you need to configure that contact to use the TCP/IP communication method.

Info: MassTransit 7.2 and later will no longer connect on the TCP/IP protocol to versions of MassTransit earlier than MassTransit 4.5.

Info: In MassTransit HP 7.0.1, there is a new option available to prevent "File Transfer Failed" actions firing (if configured) when Receive Files From User or Send Files To User general privileges are disabled.

When Send Files To User or Receive Files From User privileges are disabled and there are files for sending or receiving on TCP/IP connections, a warning is logged. This warning causes actions with File Transfer Fails trigger condition to fire. This behavior can be disabled by setting the "LOG_SEND_RECV_PRIVILEGE_AS_WARNING" parameter in the MassTransitEngine.cfg file (the file is located in the MassTransit installation directory) to false as shown below:
    LOG_SEND_RECV_PRIVILEGE_AS_WARNING = FALSE
This will cause the messages to be logged as "Info" instead of "Warning", which will prevent the "File Transfer Fails" actions from firing. You must restart the MassTransit service for changes to apply.

Info: For information about available additional configurations, see the Additional Configurations section on this page.


Configuring a TCP/IP Server Contact

Note: This configuration is per contact. You need to set the TCP/IP communication method for each contact that you want to use TCP/IP.

Follow these steps for setting a TCP/IP Server contact:

  1. In the MassTransit Administrator, open the Contacts window.
  2. In the Contacts window, click on the Add... button to add a new contact, or highlight an existing Server contact and click Edit... to edit it.
  3. Enter/change the desired information:
    1. if you are creating a new Server contact, see detailed information about how to do that on the Contacts page and then continue with the steps below.
    2. if you are editing an existing Server contact, continue with steps below.
  4. In the Outgoing Calls tab of the Setup window, select the TCP/IP option from the Communication method drop-down menu.

  5. The Configure TCP/IP for Calls window appears.

  6. In the upper field of the window, type the hostname or the IP address of the Server contact.
  7. In the second field, enter the port number that the other server is listening on.

    Note: If you or the party you are calling have/has a firewall, it must be set to allow traffic on the specified port.

  8. Click OK when the required information is entered. If you click Cancel the changes will not be saved.
  9. Click on the OK button in the "Contact Information" window to save the changes. If you click Cancel, the changes will be canceled.

The configuration of the TCP/IP Server contact is complete. You should be able to place a call to the remote TCP/IP server.

Info: For information about how to place a call, see Connecting to Other Servers section on the Contacts page.

Increasing Throughput on High Latency Networks Using CTCP and ECN

To better utilize TCP communication over long distances, Microsoft has developed a new implementation of the TCP/IP protocol stack, known as the Next Generation TCP/IP stack. Many applications require fast data transfer over high speed and long distance networks. These particular types of networks have large "bandwidth delay product" , or BDP, which means that they can have substantial amounts of unacknowledged data in the network. In many of today’s networks, the BDP has increased beyond what was imagined when the TCP protocol was designed. In order to allow for this increase in BDP, several extensions to TCP have been created and most modern TCP/IP stacks implement these features. However, these features are not always enabled by default and need to be explicitly turned on by system administrators.

Compound TCP (CTCP) in the Next Generation TCP/IP stack aggressively increases the amount of data sent at a time by monitoring the bandwidth-delay product, delay variations, and packet losses. CTCP also ensures that its behavior does not negatively impact other TCP connections. This protocol is available in Windows Server 2008 and Windows Vista, however, there are hot fixes that can be applied to Windows XP 64-bit and Windows 2003. For more information about hotfixes, please refer to the http://support.microsoft.com/kb/949316 article.

The novel Compound TCP has the following properties:

In addition, Microsoft has also added support for Explicit Congestion Notification (ECN). ECN allows end-to-end notification of network congestion without dropping packets. Without ECN, nеtwork congestion can cause packet loss because transmission do not decrease automatically and packets continue to be sent even though they will not be received due to the congestion. ECN allows packets to be marked if network congestion is detected and then uses this marking as a signal that the network is congested. Detection of marked packets will automatically slow down the sending. Windows Server 2008 and Windows Vista support ECN, but it is disabled by default. You can enable ECN support if you type the following command in an elevated command prompt:
    netsh interface tcp set global ecncapability=enabled

Acronis has done extensive lab testing of MassTransit with the CTCP protocol and ECN. We have found them to enhance throughput by as much as 300 percent. Testing consisted of two Windows 2008 Servers with a network simulator between the servers. The network simulator allows the bandwidth and latency to be controlled. The figure below shows the detailed results.

The blue bars represent CTCP/ECN enabled and the red bars both disabled.

Info: For more information, please refer to:

"The Compound TCP for High-speed and Long Distance Networks" – http://research.microsoft.com/en-us/projects/ctcp/

"New Networking Features in Windows Server 2008 and Windows Vista" – http://technet.microsoft.com/en-us/library/bb726965.aspx

Compound TCP – http://en.wikipedia.org/wiki/Compound_TCP