TCP连接是不是在局域网中受到限制?

Posted

技术标签:

【中文标题】TCP连接是不是在局域网中受到限制?【英文标题】:Is TCP connect restricted in local area network?TCP连接是否在局域网中受到限制? 【发布时间】:2022-01-10 19:45:36 【问题描述】:
    服务器IP是151.101.129.69 我家的电脑IP是192.168.0.1,我的办公室电脑IP也是192.168.0.1,当然这两台电脑在不同的位置。

如果我的两台电脑都连接到服务器端口 80,它必须是 2 个 TCP 连接。 我们知道一个 TCP 连接由 4 部分组成,源 IP/端口和目标 IP/端口,所以不能同时这样(非常巧合的是,两个客户端都从 12345 端口开始连接):

    我家的电脑连接:192.168.0.1:12345 151.101.129.69:80 我的办公室电脑连接:192.168.0.1:12345 151.101.129.69:80

我的猜测是,世界上的每一个 TCP 连接实际上都不跨网关连接,更像是:

192.168.0.1:12345(homePC) 41.100.90.2:33333(homeRouter) 151.0.1.1:44444(someKindOfPublicGateway) 151.101.129.69:80(server) 上面的示例显示实际上有 3 个 TCP 连接,而我的办公室 PC 可能同时像这样: 192.168.0.1:12345(officePC) 10.132.10.88:55555(officeRouter) 133.10.100.1:44444(officeNetworkGateway) 140.144.10.1:54321(someKindOfPublicGateway) 133.10.101.1296:8服务器)

所以它实际上是不同的公共网关 ip/port 连接到服务器。

我的理解正确吗?

【问题讨论】:

【参考方案1】:

我的猜测是,世界上的每个 TCP 连接实际上都不会跨网关连接

你描述的是NAT,即网关重写源IP和端口。这不是 TCP 的要求。 TCP的要求是客户端和服务器之间有网络路由,即客户端可以到达服务器,服务器可以到达客户端。

使用private IP addresses 就像 192.168.0.1 虽然不可能有这样的网络路由到 Internet 上的某个主机,因为私有 IP 地址根据定义在公共 Internet 中是不可路由的。这就是为什么需要某种转换为公共可路由 IP 的原因,而 NAT 提供了这一点。

对于公共 Internet 上的系统或同一私有 LAN 内的系统之间的 TCP 连接,这种转换不是必需的。因此这里不需要网关。请注意,公共互联网上的系统不仅仅是服务器。相反,许多机构也为其客户提供公共 IP 地址。 NAT主要用于解决IPv4地址短缺的问题,即用于住宅接入、封闭公司网络或移动网络。有了 IPv6,这种短缺不再是问题,一些网络在同一网络中使用私有 IPv4 地址(需要 NAT)和公共 IPv6(不需要 NAT)。

【讨论】:

@DanielFarrell:端口映射影响 TCP 层。 IP层没有端口之类的东西。

以上是关于TCP连接是不是在局域网中受到限制?的主要内容,如果未能解决你的问题,请参考以下文章

一个TCP端口最多可以同时连接多少个客户端

tcp协议通过啥来区分不同的连接

tcp协议通过啥来区分不同的连接

为啥在局域网中使用UDP比TCP好?请说明详细的具体的原因

请问计算机使用的无线网络使用的是TCP/IP协议吗?

怎样设置TCP的连接数