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.
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:
Note: If you or the calling party have/has a firewall, it must be set to allow traffic on this port.
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.
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:
Note: If you or the party you are calling have/has a firewall, it must be set to allow traffic on the specified port.
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.
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