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
tchi@slip.net
chiAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

lockhartCommented:
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.

Mike
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
JIEXACommented:
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.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
System Programming

From novice to tech pro — start learning today.