Xmpp PubSub或Comet实现是否可以使用超过65535个端口?

3
在Comet / Reverse Ajax / PubSub底层技术中,基础是长轮询。因此连接会保持开放状态一分钟左右。根据我对网络和操作系统的了解,TCP/IP仅支持65535个端口,那么我的问题是,任何服务器如何同时支持超过65535个连接?
在我正在构建的应用程序中,所有用户都将同时连接,并希望从服务器获得实时更新,例如股票交易实时更新。
干杯!
2个回答

6
您说得没错,有65535个不同的端口号,但是TCP服务器应用程序允许多个客户端连接到服务器上的同一端口。例如,在Web服务器中,所有客户端都连接到端口80。连接由4元组(src-address,src-port,dest-address,dest-port)唯一标识。
在设计您的实现时,一定要了解所谓的C10K问题。请查看:http://www.kegel.com/c10k.html

4
每个连接都有以下属性:
  • 源IP(可以是任何IP)
  • 源端口(可以是1024-65535范围内的任何端口)
  • 目标IP(您的服务器IP)
  • 目标端口(特定应用程序正在运行的端口)
因此,连接到服务器的数量受所有可能的IP乘以64000(大约)的限制。目前没有任何服务器可以处理这么多连接... :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接