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