linux的TCP连接数量最大不能超过65535个,那伺服器是如何应对百万千万的并发的?
光是在知乎上这个问题我都看了好几遍了,问之前先搜一下不好吗?简单说来:
TCP连接数量最大不能超过65535是错的。
一个连接由一个5元组决定(protocol,local IP,local port,remote ip,remote port),对于TCP,protocol固定是TCP,还有四个元素。对于伺服器来说,local port一般是固定的,比如HTTP(80),但是remote ip和remote port没有限制。
连接数量是没有限制的,除非是一个埠只能有一个连接。你说的这个65535是埠个数,这不光是Linux,所有的系统都只有这么多埠。埠数和连接个数没有必然联系。如果你学过网路编程的话,在创建连接的时候肯定是IP+port的形式,并且有一个参数指定最大连接数,这个最大连接数并没有限制,可以很小也可以非常大。推荐一本书给你:
推荐阅读: