[Webinar] Learn how to a build a cloud-first strategyRegister Now

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 274
  • Last Modified:

Why is TCP socket slower then Rendezvous?

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
1 Solution
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.

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

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now