如果接入分配的内网 IPv4 ,由于 CGNAT 所以会有最大连接数限制。但如果是公网 IPv6 的话,因为不存在 CGNAT 了,是不是运营商那头就没有连接数限制了(假定内网设备性能支持)?
如果接入分配的内网 IPv4 ,由于 CGNAT 所以会有最大连接数限制。但如果是公网 IPv6 的话,因为不存在 CGNAT 了,是不是运营商那头就没有连接数限制了(假定内网设备性能支持)?
1
Cert 5h 49m ago via Android
宽带的 IPv6 地址,也是公网 IPv6 ,没有 NAT 的问题。
|
2
huicopy 5h 44m ago
只有专线才不会限制连接数,家宽、商宽都会限制。
|
3
lls2007 4h 21m ago
一般内网是 2000 左右,公网在 8000 ,有些奇葩会限制在 1000 ,能用用的不爽
|
4
defaw 4h 18m ago
倒是可以开个临时 ipv6 实例在本地用 gpt 写代码全自动测出有没有限制,我正在写,一小时后回你。
|
5
mm2x 4h 11m ago
V6 因为是公网。目前限制比较小。我这反正 10000+能跑 V4 内网限制 2000 公网也是 10000+
|
6
xqzr 3h 59m ago
80,443 通的,应该就没有
|
7
defaw 3h 12m ago
## 环境
| 角色 | CPU | 内存 | 带宽 | |------|-----|------|------| | 客户端 | 16 核 | — | 300 兆 | | 服务器 | 2 核 (Xeon) | 1.6G | **3 Mbps** | ## 测试工具 Go 编写的 TCP echo 程序 `conntest`,工作模式: 1. **Phase 1 — 建连**: 并发 dial N 个 TCP 连接到服务器 2. **Phase 2 — 写**: 全部连接建立后,统一发送 1 字节 3. **Phase 3 — 读**: 等待服务器 echo 回显 1 字节 4. 两端开启 `TCP_NODELAY` ## 测试结果 ### 并发测试 | 连接数 | 建连耗时 | 写耗时 | 读耗时 | 失败 | 总耗时 | |--------|----------|--------|--------|------|--------| | 2,000 | 4.7s | 2.6ms | 12s | 0 | ~17s | | 10,000 | 5.4s | 8.5ms | 27s | 0 | ~33s | | 20,000 | 6.0s | 17.8ms | 73s | 10 | ~79s | | 40,000 | 11.0s | 33.7ms | 322s | 91 | ~5m33s | ### 流量消耗 (10,000 连接) | 方向 | 数据量 | 每连接 | |------|--------|--------| | 服务器接收 | 5,795 KB | ~590 B | | 服务器发送 | 6,426 KB | ~660 B | | **双向合计** | **~12 MB** | **~1,250 B** | 应用数据仅 2 字节,其余为 TCP/IP 首部开销。 ## 瓶颈分析 主要瓶颈在**服务器 3 Mbps 上行带宽**: - 每个 TCP 握手包 ~80 字节( IPv6 + TCP 首部) - 3 Mbps = 375 KB/s ,所有出站包串行排队 - 40,000 连接的 SYN-ACK + echo 回显纯带宽耗时已 ~17s - 叠加 2 核 CPU 的 goroutine 调度开销,read 阶段退化严重 ## 结论 1. IPv6 连通正常 2. 建连能力 OK ,40,000 连接全部建立成功 3. 瓶颈在服务器:**3 Mbps 带宽** + **2 核 CPU** 限制了并发吞吐 4. 每连接开销 ~1.25 KB |