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连接是不是在局域网中受到限制?的主要内容,如果未能解决你的问题,请参考以下文章