【问题标题】:possible to use more then 65535 ports for Xmpp PubSub or Comet implementation?可以为 Xmpp PubSub 或 Comet 实现使用超过 65535 个端口吗?
【发布时间】:2010-01-25 19:46:53
【问题描述】:
在 Comet/Reverse Ajax/PubSub 底层技术/基础是 Long polling。所以连接保持打开一分钟左右..
根据我对网络和操作系统的了解,TCP/IP 仅支持 65535 个端口,所以我的问题是任何服务器如何同时支持超过 65535 个连接?
在我正在构建的应用程序中,所有用户都将同时连接,并希望从服务器实时更新.. 就像股票实时更新..
干杯,
【问题讨论】:
标签:
comet
xmpp
publish-subscribe
【解决方案1】:
您是正确的,因为有 65535 个唯一端口编号,但是 TCP 服务器应用程序允许许多客户端连接到服务器上的相同端口。例如,在 Web 服务器中,所有客户端都连接到端口 80。连接由 4 元组(src-address、src-port、dest-address、dest-port)唯一标识。
在设计您的实现时,您一定会想了解所谓的C10K problem。
【解决方案2】:
每个连接的属性如下:
- 源 ip(可以是任何)
- 源端口(可以是 1024-65535 范围内的任何端口)
- 目标ip(你的服务器ip)
- 目标端口(您的应用运行的特定端口)
所以到服务器的连接数受限于所有可能的 ip 数乘以 64000(大约)。到目前为止还没有服务器可以处理它...... :)