今天看_TCP/IP_协议族,看到 NAT 的时候有些疑问:如果 NAT 使用一台路由器将专用网络与全球网络分开,并且使用一张转换表来决定相应交付的转发;那么来自内部的对于典型端口(比如说 80 )的大量请求会造成这个路由器对外的典型端口发生拥堵吗? 这种拥堵: 1 、或是我理解错误,还是真实存在呢? 2 、假如确实存在,应付它的办法是不是分时多工之类的?
1
ltux 2016-09-03 17:59:00 +08:00
何为“对外的典型端口”?你最好给个例子详细说明你的问题,基于你现在的描述我看不出来你到底是怎么理解的。
NAT 转换是 ip:port 成对转换。 |
2
Yangz OP @ltux ltux 你好!我理解的一种情况是:专用网络里有很多设备同时通过 80 端口基于 HTTP 外网服务器进行 GET ,此时路由器处会造成拥堵吗?关于第二个问题:假如有拥堵,路由器是不是会有一个处理请求的队列,按照一定的顺序进行处理呢?
|
3
Reficul 2016-09-03 20:36:19 +08:00
路由器后面的主机去 GET 外网服务器,不一定要通过 80 端口吧。远端是 80 端口,主机上应该是一个高位的随机端口。
另外主机后面的 IP:port 经过 NAT 就是通过路由器外网 IP :随机端口 与远端服务器通信的 |
4
gefranks 2016-09-03 20:41:09 +08:00
据说访问量特别大的时候是会有拥堵,因为路由器上的转换后的源端口和源 ip 不够用了,但是一般不会。
|
5
wevsty 2016-09-03 20:41:28 +08:00
楼上正解
访问远端 80 端口并不是意味着一定通过 NAT 的 80 端口出去,是 NAT 设备随机一个高位端口用来通讯的。所以不存在堵塞的问题 |
6
billlee 2016-09-03 22:32:44 +08:00
楼主你 TCP 都没理解对吧,连接服务器的 80 端口时,客户端并不需要使用 80 端口的。
|
7
firefox12 2016-09-03 22:39:07 +08:00
你理解是对的,端口会不够用。 路由器不会堵塞,它会简单的扔掉过载的包。对路由器而言只有 ip 包 没有消息的概念
|
8
flynaj 2016-09-04 02:20:29 +08:00 via Android
肯定会啊,包处理速度,还有带宽都是会的,队列,还是丢包,看路由器处理了,感兴趣可以整个 ros 研究一下,这是它的流控部分 http://wiki.mikrotik.com/wiki/Manual:Queue
|
9
kaneg 2016-09-04 11:02:37 +08:00 via iPhone 1
端口数量是有限的,做多 65536 个,如果客户的请求数量超过了,应该就会出现阻塞和丢包
|
10
Yangz OP |
12
flynaj 2016-09-04 15:05:07 +08:00
@Yangz 我现在用的这个 https://item.taobao.com/item.htm?id=3733944776
学习可以下载这个 http://www.mikrotik.com/download 装到虚拟机测试测试.下面 Cloud Hosted Router,那些虚拟机格式. |
13
xieyudi1990 2016-09-04 19:02:22 +08:00 via Android 1
NAT 网关动的是 TCP 源端口。
我一直认为, NAT 不能算是标准的路由器,只能算是代理。 |