小编lxg*_*xgr的帖子

每个主机的 TCP 源端口是否必须是唯一的?

我了解到 TCP 连接由元组(源 IP、源端口、目标 ip、目标端口)标识。从理论上讲,因此应该可以让一个来自 host1:port1 的客户端连接到 server1:port1,同时另一个客户端(在 host1 上运行)从 host1:port1 连接到 server2:port1。

我已经在 J​​ava 中进行了一些测试,到目前为止似乎是可能的。

但是,我多次阅读到主机地址的源端口必须是唯一的,这基本上意味着最多有 65536 个并发传出 TCP 连接的硬限制。真的吗?

更新:这是我的 Java 代码。这似乎有效,并且 netstat -t 清楚地显示来自端口 9990(一个到 9997,一个到 9998)的两个活动的传出连接。至少在现代 Linux 上,这似乎是可能的?

Socket s1 = new Socket();
s1.setReuseAddress(true);
SocketAddress saremote = new InetSocketAddress("localhost",9999);
SocketAddress salocal = new InetSocketAddress("localhost",9990);
s1.bind(salocal);
s1.connect(saremote);


Socket s2 = new Socket();
s2.setReuseAddress(true);
SocketAddress saremote2 = new InetSocketAddress("localhost",9998);
SocketAddress salocal2 = new InetSocketAddress("localhost",9990);
s2.bind(salocal2);
s2.connect(saremote2);
Run Code Online (Sandbox Code Playgroud)

和 netstat -t 输出(截断):

tcp6       0      0 localhost:9990 …
Run Code Online (Sandbox Code Playgroud)

tcp socket

12
推荐指数
2
解决办法
1万
查看次数

/32 以太网上通过 DHCP 的子网

是否可以通过 DHCP 为以太网主机分配仅主机本身的子网掩码,例如 192.168.1.123/32?常见的操作系统是否支持这种配置?

我希望主机将所有流量发送到路由器(而不是直接发送到同一网段上的其他主机),但仍然让它们能够通信(因此没有“客户端隔离”);有效地创建点对点链接,但无需任何客户端配置。

更新:我的目的是配置一个运行 dd-wrt ​​的家庭路由器,以便所有流量都必须通过路由器上的 IP 堆栈,因此可以通过一些 ipfilter 规则对其进行过滤。我希望有一个通用的解决方案,一种实现点对点以太网连接的标准方法,仍然可以由 DHCP 为所有公共操作系统自动配置。

根据迄今为止的反应,这似乎并不容易。我将阅读有关 VLAN 的更多信息,然后重新考虑我的计划。

dhcp subnet

5
推荐指数
2
解决办法
4228
查看次数

仅 IPv4 的应用程序如何在仅 IPv6 的主机上工作?

有什么方法可以让不支持 IPv6 的应用程序继续在只有 IPv6 连接的主机上工作?

主机的 IPv4 实现可以知道这个问题,只需将 IPv4 地址封装在 IPv6 标头中(如 0::ffff:[ipv4]?),但是这些包在哪里转换为真正的 IPv4 数据包?

当前的操作系统是否已经为仅支持 IPv4 的应用程序提供了这种功能?提供商的 NAT64 或其他网关是否能够提供所需的功能?

如果提供商未使用 NAT64 的标准前缀 (64:FF9B::/96),则如何确定实际前缀?操作系统和网络堆栈会处理所有这些吗?

当应用程序已经知道 IPv6,但仍想与 IPv4 主机通信时,这是如何工作的?前缀在哪里确定,在网络堆栈中,还是应用程序必须处理?

nat ipv6

3
推荐指数
1
解决办法
1631
查看次数

UDP 和 NAT - 超时是双向的吗?

每次客户端发送或接收数据包时,UDP 连接是否通过 NAT 重置超时,或者是否有任何(常见)实现要求客户端主动发送某些内容以保持连接活动?

我正在开发一个 UDP 流应用程序,我想知道如果没有有效负载数据,除了服务器已经发送的心跳之外,我是否还必须让客户端发送一个定期心跳。

nat udp

2
推荐指数
1
解决办法
3438
查看次数

标签 统计

nat ×2

dhcp ×1

ipv6 ×1

socket ×1

subnet ×1

tcp ×1

udp ×1