新用户_请注册 发表于 2016-06-09 20:12

请教局域网多台电脑同时访问外网的问题

一个只有一个公网IP的局域网内有200台电脑,每台电脑同时运行350个访问外网的进程,这样局域网内同时运行70000个访问外网的进程。
因为局域网内只有一个公网IP,总共才有65535个外网端口(暂且不考虑系统保留的端口),怎么映射全这70000个进程?还有(70000-65535)个进程如何映射?难道使用了TCP/IP协议的特殊字段?

新用户_请注册 发表于 2016-06-12 09:13

这个问题没人会么?不可能吧,高手请出招~~

hanzhenlll 发表于 2016-06-12 15:58

本帖最后由 hanzhenlll 于 2016-06-12 16:07 编辑

这个问题感觉很难回答, 不清楚的设想的 “每台电脑同时运行350个访问外网的进程” 是基于什么环境下的.....


1. 从理论上说一个 IP最多可开启的端口是65535个 减去1024个保留端口 即实际可用端口。

2. 从设备上来讲 CISCO. HW, H3C实际支持的Session数量是不同的,如果Session < 64511 那么实际可以连接的数量=Session数量

3. 从带宽来讲, 因为国内的环境 公网的IP的带宽是受ISP电信商限制的,假如你的带宽 =10M, 连接数为10,平均单个可用的带宽为1M再此基础上新增连接数 都是有可能被电信商限制的, 具体限制措施 根据电信商的控制策略来决定,所以讨论该问题 带宽也是一个不得不讨论的指标。

4. 我们知道 连接分长连接,短连接, 如果是短连接的话理论上是可以支持70000个 网络连接工作的, 当然这个同时工作时体现在用户层面的 也就是说用户层可能察觉不到复用端口等待和切换的过程, 相关技术可以了解 PAT。


最后我想说 做事情一定要讲究格局, 一个好的架构非常重要...

新用户_请注册 发表于 2016-06-12 16:08

回复 3# hanzhenlll


    谢谢你~
我只想问还有(70000-65535)个进程能映射出去么?操作系统和TCP/IP支持不?

xinglp 发表于 2016-06-12 16:46

访问外网的这些个进程是去访问同一个外网IP:PORT么

windoze 发表于 2016-06-12 17:04

你真搞清了这个65535是什么意思?
socket唯一性的确定需要一个四元组,源地址/端口和目标地址/端口,只要这个四元组不重复就不会打架,否则一个server怎么支持多个连接……

fender0107401 发表于 2016-06-12 20:27

lz理解有问题。

新用户_请注册 发表于 2016-06-13 12:04

windoze 发表于 2016-06-12 17:04 static/image/common/back.gif
你真搞清了这个65535是什么意思?
socket唯一性的确定需要一个四元组,源地址/端口和目标地址/端口,只要这个四元组不重复就不会打架,否则一个server怎么支持多个连接 ...

这么举例说吧,局域网有一个公网IP(网关)和一个进程P1,P1向外网一个进程P2发送包,数据包走到网关时,网关要把数据包源地址改为P1的地址吧,这没错吧?P2收到数据包然后应答回复时,只是把目的地址写为网关IP的地址吧,这没错吧?网关要根据映射关系把数据包再转发给P1,这映射关系不就是靠在网关的端口号来建立的么,这没错吧?如此,因为端口号数量是有限的,最多才65535个,那么剩余70000-65535个向外通信的进程怎么映射?

fender0107401 发表于 2016-06-13 13:21

这映射关系不就是靠在网关的端口号来建立的么,这没错吧?

貌似这个就不对吧。

cokeboL 发表于 2016-06-13 14:00

NAT,如果出口只有一个,那台网关路由还是什么,都一个ip,一个ip对应的port,就两字节
页: [1] 2
查看完整版本: 请教局域网多台电脑同时访问外网的问题