[rabbitmq-discuss] TCP-level connection limitations (was Re: RabbitMQ cluster with potentially millions of connections)

Tony Garnock-Jones tonygarnockjones+rabbitmq at gmail.com
Mon Jan 28 17:43:37 GMT 2013


Hi Jason,

On 26 January 2013 12:14, McIntosh Jason <mcintoshj at gmail.com> wrote:

> with TCP/IP communications an interface only has 65k ports (roughly).


If my understanding is correct, this is less of a limitation than it seems.

TCP connections are identified by a quad of source-IP, source-port, dest-IP
and dest-port. So if you have a service listening on 10.1.2.3 port 5672,
the connections will, on the server, look like

  192.168.34.56:43556 <--> 10.1.2.3:5672
  172.16.99.104:50602 <--> 10.1.2.3:5672
  10.202.14.66:61082 <--> 10.1.2.3:5672

and so on. In each case, the IP/port of the server's end of the socket is
the same. This means that you're not limited to 65k TCP connections per
interface; instead, you're limited to approximately 2^48
= 281,474,976,710,656 connections *per listening socket* :-)

The rest of your message is spot on, in particular regarding file
descriptor and memory limits in the operating system and C libraries.

Regards,
  Tony


-- 
Tony Garnock-Jones
tonygarnockjones at gmail.com
http://homepages.kcbbs.gen.nz/tonyg/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20130128/3dceea2d/attachment.htm>


More information about the rabbitmq-discuss mailing list