Page 53 - Web性能权威指南
P. 53

表3-1:保留的IP地址范围

                   IP地址范围                 地址数量
                   10.0.0.0~10.255.255.255  16 777 216
                   172.16.0.0~172.31.255.255  1 048 576
                   192.168.0.0~192.168.255.255  65 536
                   其中一段(或所有三段)IP 地址是不是很眼熟?在你的局域网中,路由器给你的
                   计算机分配的 IP 地址很可能位于其中一段。这个地址就是你在内网中的私有地
                   址。在需要与外网通信时,NAT 设备会将它们转换成外网地址。
                   为防止路由错误和引起不必要的麻烦,不允许给外网计算机分配这些保留的私有
                   IP 地址。



                 3.2.1 连接状态超时

                 NAT 转换的问题(至少对于 UDP 而言)在于必须维护一份精确的路由表才能保证
                 数据转发。NAT 设备依赖连接状态,而 UDP 没有状态。这种根本上的错配是很多
                 UDP 数据报传输问题的总根源。况且,客户端前面有很多个 NAT 设备的情况也不
                 鲜见,问题由此进一步恶化了。

                 每个 TCP 连接都有一个设计周密的协议状态机,从握手开始,然后传输应用数据,
                 最后通过明确的信号确认关闭连接。在这种设计下,路由设备可以监控连接状态,
                 根据情况创建或删除路由表中的条目。而 UDP 呢,没有握手,没有连接终止,实际
                 根本没有可监控的连接状态机。

                 发送出站 UDP 不费事,但路由响应却需要转换表中有一个条目能告诉我们本地目标
                 主机的 IP 和端口。因此,转换器必须保存每个 UDP 流的状态,而 UDP 自身却没有
                 状态。
                 更糟糕的是,NAT 设备还被赋予了删除转换记录的责任,但由于 UDP 没有连接终
                 止确认环节,任何一端随时都可以停止传输数据报,而不必发送通告。为解决这个
                 问题,UDP 路由记录会定时过期。定时多长?没有规定,完全取决于转换器的制造
                 商、型号、版本和配置。因此,对于较长时间的 UDP 通信,有一个事实上的最佳做
                 法,即引入一个双向 keep-alive 分组,周期性地重置传输路径上所有 NAT 设备中转
                 换记录的计时器。








                                                                            UDP的构成   |   35
   48   49   50   51   52   53   54   55   56   57   58