[zeromq-dev] multiple bind with one socket

Kelly Brock Kerby at inocode.com
Sat Oct 2 21:40:48 CEST 2010


Hi Martin,

> Hi Kelly,
> 
> Interesting discussion! :)
> 
> There are many topics involved so let's go through them one by one to
> keep it simple.
> 
> >> 1. If the packets are full (reach MTU size) the bandwidth overhead is
> >> same irrespective of how many TCP connections there are (it's IP
> traffic
> >> after all).
> >
> > 	Correct only in that you can't waste more in terms of "per-second"
> > once you've maxed out the pipe at full MTU.  It still doesn't come for
> free
> 
> I still don't follow.
> 
> Say the MTU size is 1100 and header size is 100.
> 
> Thus, each IP packet can transfer 1000 bytes of payload plus 100 bytes
> of header.
> 
> One connection sending 10000 bytes splits it into 10 packets, so we'll
> end up with 1100x10 = 11000 bytes transferred.
> 
> If you split the load between two connections, each has 5000 bytes to
> transfer. If splits it into 5 packets, i.e. 1100x5 = 5500 bytes. Two
> connections, each transferring 5500 bytes, gives 11000 bytes.
> 
> So we have 11000 bytes transferred in both cases.
> 
> What's the flow in the above reasoning?

	Err, you caught me being a doink..  :)  I'm mixing up some of the
historic systems I've used and not sticking to the raw tcp stream portion of
this.  It's tough to keep them separate after a number of years getting used
to the higher level wrappers.  I'm headed home now so will follow up in a
bit, there is still a benefit to be had to the virtual connections, just at
a different point.

KB




More information about the zeromq-dev mailing list