IP 地址
由因特网名字和编号分配机构 (Intemet Corporation for Assigned Names and Numbers ,
ICANN) [ICANN 2012J 管理,管理规则基于 [RFC 2050J 非营利的 ICANN 组织 [N
1998J 的作用不仅是分配 地址,还管理 DNS 根服务器 它还有一项容易引起争论的工
作,即分配域名与解决域名纷争 ICANN 向区域性因特网注册机构(如 ARIN RIPE
APNIC LACNIC) 分配地址,这些机构一起形成了 lCANN 的地址支持组织 [ASO-ICANN
2012J ,处理本地域内的地址分配/管理
DHCP 是一个客户-服务器协议 客户通常是新达到的主机,它要获得包括自身使用
IP 地址在内的网络配置信息 在最简单场合下,每个子网(在图 4-17 的编址意义下)
将具有一台 DHCP 服务器 如果在某子网中没有服务器,则需要一个 DHCP 中继代理(通
常是一台路由器) ,这个代理知道用于该网络的 DHCP 服务器的地址 4-20 显示了连接
到子网 223. 1. 2/24 DHCP 服务器,具有一台提供中继代理服务的路由器,它为连
接到子网 223. 1. 1124 223. 1. 3/24 的到达客户提供 DHCP 服务 在我们下面的讨论中,
将假定 DHCP 服务器在该子网上是可供使用的
每台服务器提供的报文包含有收到的发现报文的事务皿、向客户推荐的
址、网络掩码以及 IP 地址租用期 (address lease time) ,即 地址有效的时间量
服务器租用期通常设置为几小时或几天[ Droms 2002
NAT
考虑图 4-22 中的例子 假设一个用户坐在家庭网络主机 10.0.0.1 旁,请求 地址为
128.119.40.186 的某台 Web 服务器(端口 80 )上的一个 Weh 页面 主机 10.0.0.1 为其
指派了(任意)源端口号 3345 并将该数据报发送到 LAN NAT 路由器收到该数据报,
为该数据报生成一个新的源端口号 5001 ,将游、 替代为其广域网一侧接口的 地址
138. 76. 29. ,且将源端口 3345 更换为新端口 5001 当生成一个新的源端口号时 NAT
由器可选择任意一个当前未在 NAT 转换表中的源端口号 (注意到因为端口号字段为 16
比特长, NAT 协议可支持超过 60000 个并行使用路由器广域网一侧 IP 地址的连接! )路由
器中的 NAT 也在它的 NAT 转换表中增加一表项 Web 服务器并不知道刚到达的包含HTTP
请求的数据报已被 NAT 路由器进行了改装,它会发回一个响应报文,其目的地址是 NAT
路由器的 IP 地址,其目的端口是 5001 当该报文到达 NAT 路由器时,路由器使用目的
地址与目的端口号从 NAT 转换表中检索出家庭网络浏览器使用的适当 地址
(10.0.0.1) 和目的端口号 (3345 于是,路由器改写该数据报的目的 地址与目的端
口号,并向家庭网络转发该数据报
NAT 在近几年已得到了广泛的应用 但是,我们应当提及的是,许多 IETF 团体中的
纯化论者大声疾呼反对 NAT 第一,他们认为端口号是用于进程编址的,而不是用于主机
编址的 (这种违规用法对于运行在家庭网络中的服务器来说确实会引起问题,因为我们
网络层 235
已在第 章看到,服务器进程在周知端口号上等待人请求 )第二,他们认为路由器通常
仅应当处理高达第 层的分组 ,他们认为 NAT 协议违反了所谓端到端原则,即主
机彼此应相互直接对话,结点不应介入修改 地址与端口号 第四,他们认为应使用
IPv6 (参 4.4.4 节)来解决 IP 地址短缺问题,而不是不计后果地用一种如 NAT 之类的
权宜之计来修补存在的问题 但不管喜欢与杏, NAT 已成为因特网的一个重要组件
NAT 的另 个重要问题是它妨碍P2 应用程序,包括P2 文件共享应用和P2PIP 语音
应用 章讲过在一个P2 应用程序中,任何参与对等方 应当能够对任何其他参与对
发起一条 TCP 连接 该问题的实质在于如果对等方 在一个 NAT 后面,它不能充
当服务器并接收 TCP 连接 如我们将在课后习题中所见,如果对等方 不在一个 NAT
后面,则该 NAT 问题能够绕过去 在这种情况下,对等方 能够首先通过一个中间对等
与对等方 联系,其中 不位于 NAT 之后并与 已经创建了一条进行中的 TCP
对等方 则能够经对等方 请求对等方 ,发起直接返回对等方 的一条 TCP 连接
一旦对等方 之间创建一条直接的P2 连接,这两个对等方就能够交换报文或
文件 这种雇佣关系被称为连接反转( connection reversal , ,实际上被许多P2 应用程序用
NA 穿越 (NAT Iraversal) 如果对等方 和对等方 都在它们自己的 NAT 后面,这种
情况有些棘手,但是能够使用应用程序进行中继处理,正如我们在第 章中对于 Skype
继所见到的那样
内部编址:
10.0.0.0-10.255.255.255;172.16.0.0-172.31.255.255;192.168.0.0-192.168.255.255
UPnP:
UPnP 允许外部主机使用 TCP UDP 对NAT 化的主机发起通信会话长
期以来 NAT 一直对P2 应用程序十分不利; UPnP由于提供了有效和健壮的 NAT 穿越解决
方案,可能成为了P2 应用程序的救世主 这里我们对 NAT UPnP 的讨论十分简要,对
NAT 更为详细的讨论参见 [Huston 2004;