V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Yangz
V2EX  ›  问与答

看 TCP/IP 协议族一书,关于 NAT 有些问题

  •  
  •   Yangz · 2016-09-03 17:38:27 +08:00 · 2679 次点击
    这是一个创建于 3003 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天看_TCP/IP_协议族,看到 NAT 的时候有些疑问:如果 NAT 使用一台路由器将专用网络与全球网络分开,并且使用一张转换表来决定相应交付的转发;那么来自内部的对于典型端口(比如说 80 )的大量请求会造成这个路由器对外的典型端口发生拥堵吗? 这种拥堵: 1 、或是我理解错误,还是真实存在呢? 2 、假如确实存在,应付它的办法是不是分时多工之类的?

    14 条回复    2016-09-05 17:49:28 +08:00
    ltux
        1
    ltux  
       2016-09-03 17:59:00 +08:00
    何为“对外的典型端口”?你最好给个例子详细说明你的问题,基于你现在的描述我看不出来你到底是怎么理解的。
    NAT 转换是 ip:port 成对转换。
    Yangz
        2
    Yangz  
    OP
       2016-09-03 20:06:21 +08:00
    @ltux ltux 你好!我理解的一种情况是:专用网络里有很多设备同时通过 80 端口基于 HTTP 外网服务器进行 GET ,此时路由器处会造成拥堵吗?关于第二个问题:假如有拥堵,路由器是不是会有一个处理请求的队列,按照一定的顺序进行处理呢?
    Reficul
        3
    Reficul  
       2016-09-03 20:36:19 +08:00
    路由器后面的主机去 GET 外网服务器,不一定要通过 80 端口吧。远端是 80 端口,主机上应该是一个高位的随机端口。

    另外主机后面的 IP:port 经过 NAT 就是通过路由器外网 IP :随机端口 与远端服务器通信的
    gefranks
        4
    gefranks  
       2016-09-03 20:41:09 +08:00
    据说访问量特别大的时候是会有拥堵,因为路由器上的转换后的源端口和源 ip 不够用了,但是一般不会。
    wevsty
        5
    wevsty  
       2016-09-03 20:41:28 +08:00
    楼上正解
    访问远端 80 端口并不是意味着一定通过 NAT 的 80 端口出去,是 NAT 设备随机一个高位端口用来通讯的。所以不存在堵塞的问题
    billlee
        6
    billlee  
       2016-09-03 22:32:44 +08:00
    楼主你 TCP 都没理解对吧,连接服务器的 80 端口时,客户端并不需要使用 80 端口的。
    firefox12
        7
    firefox12  
       2016-09-03 22:39:07 +08:00
    你理解是对的,端口会不够用。 路由器不会堵塞,它会简单的扔掉过载的包。对路由器而言只有 ip 包 没有消息的概念
    flynaj
        8
    flynaj  
       2016-09-04 02:20:29 +08:00 via Android
    肯定会啊,包处理速度,还有带宽都是会的,队列,还是丢包,看路由器处理了,感兴趣可以整个 ros 研究一下,这是它的流控部分 http://wiki.mikrotik.com/wiki/Manual:Queue
    kaneg
        9
    kaneg  
       2016-09-04 11:02:37 +08:00 via iPhone   ❤️ 1
    端口数量是有限的,做多 65536 个,如果客户的请求数量超过了,应该就会出现阻塞和丢包
    Yangz
        10
    Yangz  
    OP
       2016-09-04 11:04:07 +08:00
    @Reficul @Yangz @firefox12 @flynaj @gefranks @wevsty 谢谢大家,我现在明白一些了。 @billlee 是的,我对传输控制协议了解得还不多,我再去学习一下。 @flynaj flynaj 你好,请问你指的 ros 是什么呢?我看了一下,感觉像 QoS ,不知是不是我搞错了。
    wevsty
        11
    wevsty  
       2016-09-04 12:22:31 +08:00
    @Yangz ros 指的是一个软路由 OS
    flynaj
        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,那些虚拟机格式.
    xieyudi1990
        13
    xieyudi1990  
       2016-09-04 19:02:22 +08:00 via Android   ❤️ 1
    NAT 网关动的是 TCP 源端口。

    我一直认为, NAT 不能算是标准的路由器,只能算是代理。
    Yangz
        14
    Yangz  
    OP
       2016-09-05 17:49:28 +08:00 via iPhone
    @flynaj @wevsty 谢谢!我有空实验一下 ros 这个系统。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1116 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:43 · PVG 02:43 · LAX 10:43 · JFK 13:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.