请教局域网多台电脑同时访问外网的问题
一个只有一个公网IP的局域网内有200台电脑,每台电脑同时运行350个访问外网的进程,这样局域网内同时运行70000个访问外网的进程。因为局域网内只有一个公网IP,总共才有65535个外网端口(暂且不考虑系统保留的端口),怎么映射全这70000个进程?还有(70000-65535)个进程如何映射?难道使用了TCP/IP协议的特殊字段?
这个问题没人会么?不可能吧,高手请出招~~ 本帖最后由 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。
最后我想说 做事情一定要讲究格局, 一个好的架构非常重要... 回复 3# hanzhenlll
谢谢你~
我只想问还有(70000-65535)个进程能映射出去么?操作系统和TCP/IP支持不? 访问外网的这些个进程是去访问同一个外网IP:PORT么 你真搞清了这个65535是什么意思?
socket唯一性的确定需要一个四元组,源地址/端口和目标地址/端口,只要这个四元组不重复就不会打架,否则一个server怎么支持多个连接…… lz理解有问题。 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个向外通信的进程怎么映射? 这映射关系不就是靠在网关的端口号来建立的么,这没错吧?
貌似这个就不对吧。 NAT,如果出口只有一个,那台网关路由还是什么,都一个ip,一个ip对应的port,就两字节
页:
[1]
2