【问题标题】:max number of connection from single client to same server on same port从单个客户端到同一端口上同一服务器的最大连接数
【发布时间】:2014-06-09 22:54:44
【问题描述】:

如果我有一个“实时 IP 地址”,即如果我在其上运行服务器,任何人都可以通过 Internet 访问该服务器的 IP 地址。

现在假设我在网关下有一组具有“实时 IP 地址”的计算机。

以下是真的吗?

如果此 IP 地址下的所有计算机在同一端口 80 上使用 keep-alive 标头访问同一 google 服务器,则最大连接数可以是 2^16=65536

我是如何得出这个数字的?

TCP/IP 数据包由 (src.ip, src.port, dst.ip, dst.port) 标识

对于我们的情况,如果我们从服务器端查看而不是 src.ip=MY LIVE IP, dst.ip=google server ip, dst.port=80 所以我们剩下的是 16 位的 src.port。

如果以上是真的那么:

最大套接字连接数也是 2^16,因为每个 TCP 连接只能有一个套接字。这是真的吗?

【问题讨论】:

标签: sockets networking tcp client-server


【解决方案1】:

理论上是这样,一个客户端的最大并发连接数,无论是否连接到同一台服务器,都是 65536。然而,IPv4 地址空间短缺是一个现实,ISP 已经开始实施 A+P 策略扩大可用地址的数量。

A+P 表示地址加端口共享。这意味着端口号的某些位用于可寻址目的。这在实践中意味着 IPv4 公共地址可能由不同的客户共享,每个客户都被分配了一系列端口。这限制了每个客户的可用连接数。您的操作系统可能仍会为源端口选择一个介于 0-65565 之间的随机数,但在某些时候,您的私有 IPv4 源地址和端口会在被使用之前被分配到您分配的源端口范围内。

这是一个高级主题,但值得考虑。 RFC6346 有更多相关信息。

【讨论】:

    【解决方案2】:

    哇,多么酷而邪恶的攻击想法。是的,只要您所说的网关进行 NAT,该攻击就应该有效。

    但是,请注意,google.com 有大量 IP 地址,每个客户端都会尝试,因此您需要对每个 IP 地址进行攻击。例如,我的电脑看到 google.com 有 16 个不同的 IP。

    【讨论】:

    • 这不是为了攻击,而是为了我的理解......如果我们点击单个谷歌 ip,上述情况是否属实
    • @user2410148 是的,我想是的。
    猜你喜欢
    • 2013-05-27
    • 2016-12-23
    • 2015-10-14
    • 2021-02-03
    • 2019-03-15
    • 2023-04-08
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    相关资源
    最近更新 更多