计算机网路自顶向下方法总结4.3网际协议:IPv4、寻址、IPv6及其他
目录
4.3 网际协议:IPv4、寻址、IPv6及其他
4.3.1 IPv4数据报格式
4.3.2 IPv4数据报分片
4.3.3 IPv4编址
1.获取一块地址
2.获取主机地址
4.3.4 网络地址转换
4.3.5 IPv6
1.IPv6数据报格式
2.从IPv4到IPv6的迁移
因特网网络层的关键方面和著名的网际协议IP。
网络层分组称为数据报。IPv4数据报格式见书中图4-16,其中关键的字段如下:
并不是所有链路层协议都能承载相同长度的网络层分组,所以需要进行分片。
一个链路层帧能承载的最大数据量叫作最大传送单元(Maximum Transmission Unit,MTU)。注意和MSS区分。
分片的方法是将IP数据报中的数据分片成两个或者多个较小的IP数据报,但单独的链路层帧封装起来,然后通过输出链路发送这些帧。每个这些较小的数据报称为片(fragment)。
IPv4的设计这决定将数据报的重新组装工作放到端系统中,而不是放到网络路由器中。
IP数据报首部的标识、标志、片偏移字段在分片时发挥作用:发送主机通常将它发送的每个数据报的标识号加1。最后一片的标志比特被设为0,所有其他片的标志比特被设为1。片偏移字段用来指定该片应该放在初始IP数据报的哪个位置。
主机与物理链路之间的边界叫作接口(interface)。路由器必须拥有两条或者更多接口。每台主机和路由器接口拥有自己的IP地址。
因此,从技术上讲,一个IP地址与一个接口相关联,而不是与包括该接口的主机或者路由器相关联。
IP地址通常使用点分十进制记法(dooted-decimal notation)书写。
在全球因特网中的每台主机和路由器上的每个接口,都必须有一个全球唯一的IP地址,NAT后面的接口除外。
在路由器后面的接口通过一个并不包含路由器的网络互连起来,可能由一个以太网LAN互联,在此情况下,这些接口通过以太网交换机或者通过一共无线接入点互联,便形成了一个子网(subnet)。子网也称为IP网络或者网络。IP编址为这个子网分配一个子网掩码(network mask),他们的子网地址是相同的。
因特网的地址分配策略被称为无类别域间路由选择(Classless Interdomain Routing,CIDR)。
形式为a.b.c.d/x的地址x最高比特构成了IP地址的网络部分,称为该地址的前缀(prefix)。一个组织通常被分配一块连续的地址,即具有共享共同的前缀。组织外部路由器向组织内部转发一个数据报时,只需要考虑该地址的前x比特,大大减少了路由器中转发表的长度。剩余32-x比特可认为时用于区分之组内部设备。只有当组织内部的路由器转发分组时,才会考虑这些比特。
使用单个网络前缀通告多个网络的能力通常称为地址聚合(address aggregation),也称为路由聚合(route aggregation)或路由摘要(route summarization)。
书中实践原则中详细介绍了这部分。
CIDR之前,IP地址的网络部分被分为8,16,24比特,这种编址方案称为分类编址(classful addressing)。具有8,16,24比特子网地址的子网分别被称为A,B,C类网络。
组织从它的ISP那里获得地址,ISP从因特网名字和编号分配机构(Internet Corporation for Assigned Names and Numbers,ICANN)那里获得地址。ICANN不仅分配IP地址还管理DNS根服务器,并且分配域名与解决域名纷争。
系统管理员通常手工配置路由器的IP地址(常常在远程通过网络管理工具进行配置)。
主机地址也能手动配置,但更多的使用动态主机配置协议(Dynamic Host Configuration,DHCP)。DHCP允许主机自动获取一个IP地址。
DHCP协议又被称为即插即用协议(plug-and-play protocol)或零配置(zeroconf)协议,是一个客户-服务器协议。每个子网将具有一台DHCP服务器或者DHCP中继代理。
主机获得地址的四个步骤:
DHCP有一个严重的缺陷,当一个节点连接到一个新的子网,要从DHCP得到一个新的IP地址,当一个移动节点在子网之间移动时,就不能维持与远程应用之间的TCP连接。
网络地址转换(Network Address Translation,NAT)。
具有专用地址的地域是指其地址仅对该网络种的设备由意义的网络。许多专用网络或具有专用地址的地域使用了相同的地址空间10.0.0.0/24,在一个给定家庭网络的设备能够使用10.0.0.0/24编址彼此发送分组。然而,转发到家庭网络之外进入更大的全球因特网的分组显然不能使用该地址。这就需要使用NAT。
NAT路由器上有一张NAT转换表(NAT translation table),并且在表项中包含了端口号及其IP地址。具体的例子见书中。
由于IPv4地址空间已经用完,所以开发了一种新的IP协议,IPv6。
IPv6地址长度从32比特扩大到128比特,还引入了任播地址(anycast address)。
IPv6数据报格式:
和IPv4有许多相同的地方。
IPv6不允许在中间路由器上进行分片与重新组装。删除了首部检验和和选项字段。IP首部为定长的40字节。
IPv6可以兼容IPv4,但是IPv4系统不能处理IPv6的数据报。
IPv4到IPv6迁移的方法包括建隧道(tunneling)。将整个IPv4数据报放到一个IPv4数据报的数据字段中。