Why is TCP socket slower then Rendezvous?

Posted on 1997-06-20
Last Modified: 2013-12-26
Sending 3MB (2MB send and 1MB reply) of data between two HP-UX workstations using TCP sockets takes about 70 seconds.
While sending the same amount of data between the same workstations using Rendezvous (a software message bus product) takes about 30 seconds.

1) Could anyone explain the performance difference? As far as I know, a Rendezvous client first sends the message through TCP socket to the Rendezvous daemon on the same host, and this daemon broadcasts this message through UDP socket to the daemon on the other host, and that daemon finally sends this message to the server on its same host. The reply message goes through the reverse route.

2) Is UDP socket more than twice faster than TCP socket? otherwise how could it easily offset the extra two hops the
message has to travel?
3) Is there anyway to tune the TCP sockets performance? 4) Could Rendezvous use some special technique to optimize socket performance?

Thanks a lot for your help in answering these questions.

Tom Chi
Question by:chi

Accepted Solution

lockhart earned 100 total points
ID: 1293630
UDP is much less secure than TCP since it is connectionless and has no reliability safeguards. TCP provides checksums, ACK/
NACK handshaking, timeout/re-transmit, duplicate detection, sequencing and flow control while UDP only supplies message boundaries and an optional checksum. Therefore, UDP is unreliable unless the application provides some internal checking. There is somce overhead associated with using TCP and its built-in safeguards. It sounds like Rendezvous takes advantage of TCP to start the transfer (probably tells the other side how many packets are coming and how big they are) then switches to the faster (and more dangerous) UDP for the actual transfer. It's not a bad approach since they could build sequencing info into the packet and be assured they got all packets just by counting then use the optional checksum to verify packet integrity.


Expert Comment

ID: 7509334
1. check kernel network buffer sizes, and possibly increase them (HP-UX Performance & Tuning Guide)

2. is the interface full-duplex, or half-duplex ?
 If it's half-duplex, may it be set to a full-duples mode ?
This may be your question too.

Featured Post

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Need a Shell script to start a service checking the port 6 50
MFC Dialog 9 49
sumHeights  challenge 17 70
Change to event 1 111
Introduction: Load and Save to file, Document-View interaction inside the SDI. Continuing from the second article about sudoku.   Open the project in visual studio. From the class view select CSudokuDoc and double click to open the header …
Introduction: The undo support, implementing a stack. Continuing from the eigth article about sudoku.   We need a mechanism to keep track of the digits entered so as to implement an undo mechanism.  This should be a ‘Last In First Out’ collec…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question