V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Zhang
V2EX  ›  服务器

关于网络地址转换

  •  
  •   Zhang · 2012-06-18 14:50:35 +08:00 · 3412 次点击
    这是一个创建于 4341 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我最近终于搞清楚路由器的作用了,原来路由器是用来连接两层网络的。我发现给某个远程服务器发包时,途中经过n个路由器,也就是说途中要经过n-1层网络,每穿越一层网络,ip包的地址都要改写一次,这样怪不得网络延时会很高了。要是ipv6普及后,我们是不是可以不需要这么多层网络,所有的网络设备都在一层网络上,这样数据包就不需要穿越n层网络了,这样就节省了ip包地址改写的时间,那时候网络的延时就会下降到很可观,对不对?真是好憧憬呀!大家积极畅想呀!
    12 条回复    1970-01-01 08:00:00 +08:00
    Zhang
        1
    Zhang  
    OP
       2012-06-18 14:59:27 +08:00
    个人感觉多层网络简直就是灾难呀?这种网络根本不是平的!
    lululau
        2
    lululau  
       2012-06-18 15:01:22 +08:00
    路由器主要功能是还路由吧。。。。
    dndx
        3
    dndx  
       2012-06-18 15:11:43 +08:00
    LZ你的理解是不正确的,如果你没有公网IP,边界路由器需要做SNAT才能保证你的数据包能正确回传。一旦数据包的IP被改写为公网IP后,在互联网的传输过程中,中继路由器不会再改动你的源IP而只负责接力传输。如果真的像你说的那样,那么互联网就根本不可能实现,因为同时传输的数据量大到无法估计,如果每一跳都做SNAT,那么没有任何一个路由器能存储这么多的链接信息。
    iyten
        4
    iyten  
       2012-06-18 15:24:22 +08:00
    我就觉得奇怪。难道说ttl没减1那么ip就被改动一次?这个是不可能的。在公网上传输ip 要nat的估计就是isp的安全措施了。比如说电信骨干网上不可能大量出现铁通的ip,如果有那就说明有问题了,那么这时候就会nat,还有企业内部出去的话也是要做nat的。欢迎下面继续喷。
    013231
        5
    013231  
       2012-06-18 15:25:56 +08:00
    樓主的理解是完全錯誤的.
    1. IP報文的源IP和目標IP在傳輸時通常不會變化(也有例外, 比如NAT).
    2. 路由節點間不是"分層"關係.
    3. IPv6對減少路由節點的數量沒有明顯幫助.
    clowwindy
        6
    clowwindy  
       2012-06-18 15:39:27 +08:00
    楼主的理解适用于长城宽带和宽带通 XD
    blank_dlh
        7
    blank_dlh  
       2012-06-18 15:56:00 +08:00
    不是每层都NAT的亲。。
    局域网和公网(相对来说)连接处的路由做NAT,公网上的路由节点只是做转发用的。
    ichigo
        8
    ichigo  
       2012-06-18 16:28:32 +08:00
    其实你还是没明白路由功能..
    Zhang
        9
    Zhang  
    OP
       2012-06-18 17:42:45 +08:00
    @ichigo 你明白吗?
    Zhang
        10
    Zhang  
    OP
       2012-06-18 17:49:42 +08:00
    每经过一次NAT,应该说目的地ip不会变,而来源地ip会变的
    billryan
        11
    billryan  
       2012-06-18 18:21:03 +08:00
    IPV6的出现主要是为了解决IPV4地址不够的问题,NAT正是由于IPV4地址不够才出现的临时性解决方案,但是NAT违背了网络设计的初衷(分层结构设计)。IPV6普及后NAT后慢慢消失,确实节约了地址映射的那部分时间,但这与路由器没有直接的关系,路由器主要的功能是根据目的地址进行路由选路(是工作在第三层(网络层)的网络设备)。NAT只适用于那些无法分配到足够公网IP地址的场合,而且这是由一个叫做「NAT盒」来干的事,与路由器没半毛钱关系... 建议楼主看看潘爱民翻译的《计算机网络》补一补网络方面的知识
    dndx
        12
    dndx  
       2012-06-18 18:32:24 +08:00
    @Zhang 正如 @billryan 所说,SNAT是为了解决IP地址不足的问题,比如你有一个IP地址192.168.1.2,你要请求8.8.8.8一些信息,如果没有路由器帮你做SNAT,你的数据包【有可能】被8.8.8.8收到,【但是】8.8.8.8不知道怎么将包回复给192.168.1.2,这种目标地址是私有地址的数据包在Internet上是无意义的,会直接被BGP路由器丢弃。

    同 @ichigo ,建议LZ补一补基础知识...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1035 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:48 · PVG 03:48 · LAX 12:48 · JFK 15:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.