2.1 前言

本章介绍了Interenet 中使用的网络层地址,也就是我们常说的IP地址。本章讨论了如何为Interenet 中的设备分配地址,有助于路由可扩展性的地址层次结构分配方式,以及特殊用途的地址。还讨论了IPv4和IPv6地址结构的用途和区别。(简单来说就是本章内容又抽象又难理解) Interenet 服务提供商 (ISP)

2.2 IP地址的表示

目前我们最流行的、最熟悉的地址类型:IPv4。这些地址通常采用点分四组或者点分十进制的表示法(eg:180.97.33.108)每个数字的范围为[0,255]。为了方便记住,它使用简单的十进制,而大部情况下,我们关注这种地址的二进制结构 (eg:  10110100     01100001    00100001    01101100  |  也就是 180.97.33.108)由例子可知 IPv4长度为32位。 在IPv6中,地址的长度为128位,是IPv4的4倍。IPv6地址的传统表示方法是采用称为 字段 的四个十六进制数,这些块或者字段使用冒号分隔(eg: 5f05:2000:80ad:5800:0058:0800:2023:1d71)。



另外已有一些达成共识的IPv6简化方法已经标准化[RFC4291]: 1.一个块中前导的零不必书写。(:0058:0800 可写成  58:800) 2.全零的块可以省略,并用符号  ::  代替。 3.在 IPv6 格式中嵌入 IPv4 地址可使用混合符号形式 ,紧接着IPv4部分的地址块值为 ffff 其余部分使用点分四组格式 (eg: ::ffff:10.0.0.1)。它被称为IPv4映射的Ipv6。 4.IPv6的低32位通常使用点分四组表示。它被称为IPv4兼容的IPv6地址。(PS:但与IPv4映射地址不同) 由于[RFC4291]提供灵活性的同事造成了不必要的混淆,于是乎又有了[RFC5952]: 1.前导的零必须压缩。 2. :: 只能用于影响最大的地方(最多的零),如果多个块中包含等长度的零,顺序靠前的优先。 3.a到f十六进制数字应该用小写。



2.3 基本的IP地址结构

由于拥有大量的地址(尤其是IPv6),可以方便地将地址空间划分成块。IP地址根据类型和大小分组。大多数IPv4地址最终被细分为一个地址,用于识别连接Internet 或某些专用的内联网计算机借口。这些地址称为 单播地址

2.3.1 分类寻址

当初定义Internet 地址结构时,每一个单播IP地址都有一个网络部分(网络号),用于识别接口使用的IP地址在哪个网络中可以发现;以及一个主机地址(主机号),用于识别网络部分给出的网络中的特定主机。 现实中不同的网络可能有不同的主机,每一台主机都需要一个唯一的IP地址。一中划分方式就是更具当前网络预计主机数量,从而将大小不同的IP地址空间分配给不同站点。   最初地址空间的划分涉及五大类


A 类:(网络号:8位 ; 7位自由 头位 为0 )       |(主机号:24位) (0.0.0.0 ~ 127.255.255.255) B 类:(网络号:16位 ; 14位自由 头位 为10 )  |(主机号:16位) (128.0.0.0 ~ 191.255.255.255) C 类:(网络号:24位 ; 21位自由 头位 为110 )|(主机号:8位 ) (192.0.0.0 ~ 223.255.255.255) D 类:组播地址(32位;28位自由)(224.0.0.0 ~ 239.255.255.255) E 类:保留(32位;28位自由)  (240.0.0.0 ~ 255.255.255.255)   A、B、C 类空间用于单播地址。其中 A类地址拥有最多的主机数 C类地址拥有最多的网络数。(实际分配中第一个与最后一个地址通常不适用所以 计算的时候要 -2

2.3.2 子网寻址

Internet 发展初期 首先遇到一个困难,很难为接入Internet的新网段分配一个新的网络号。人美为了解决这个问题,很自然的想到一中方式,在一个站点接入Internet后为其分配一个网络号,然后由网络管理员进一步划分本地子网数。 以B类地址为例


[网络号(16位;14位自由)][子网ID(8位)][主机ID(8位)]

红色部分为集中分配 即 2^14 可用。 蓝色部分为站点本地管理员 分配 即支持 254个子网,每个子网又支持254台主机。 (Q:现在是否还在使用这种寻址方式?若是 B类地址 是否被用完)


2.3.3 子网掩码

子网掩码是由一台主机或路由器使用的分配位,以确定如何从一台主机对应的IP地址中获得网络和子网信息。IP子网掩码的长度与对应的IP地址长度相同,既可以是静态的,也可以是动态的(DHCP)。 子网掩码中的一位设为1 表示一个IP地址的对应位与一个地址的网络/子网部分的对应位置相结合,并将结果作为转发数据报的基础。相反,子网掩码中的一位设为0,表示一个IP地址的对应作为主机ID的一部分。

2.3.5 广播地址

在每个IPv4子网中,一个特殊的地址被保留作为子网广播地址。 子网广播地址的构建方式为:对子网掩码取反,并与子网中的任意计算机的地址进行或运算。 除了子网广播地址,特殊用途地址(255.255.255.255)被保留作为本地网络广播,他不会被路由器转发。

2.3.6 Ipv6地址和接口标识符

除了比IPv4地址长一杯这个因素,IPv6还有一些额外特点。Ipv6使用特殊前缀表示一个地址范围。IPv6地址范围指的是它可用的网络规模。 节点本地Ipv6地址:只用于同一计算机内通信 全球性Ipv6地址:Internet 范围内 链路本地IPv6地址:之用于同一网络链路或Ipv6前缀中的节点 这里重点讲一下链路本地IPv6地址:链路本地IPv6地址使用接口标识符(IID)作为一个单播IPv6地址的分配基础。除了地址是以二进制的000开始之外,IID在所有情况下都作为一个IPv6的低序位,这样他们在同一网络中有唯一前缀。IID的长度通常为64位,并直接由一个网络接口相关的链路层MAC地址形成。 EUI表示扩展唯一标识符;EUI-64标识符开始于一个24位的组织唯一标识符(OUI),接着是是一个由组织分配的40位扩展标识符 这些地址的第一个字节的低两位分别u位和g位。当u位被设置时,表示改地址是本地管理;当g位被设置是表示改地址是一组或组播类型得治。(目前只关心g位没被设置的情况)

2.4 CIDR和聚合

20世纪90年代初,Internet开始面临更严重的问题: 1.到1994年,一半以上的B类地址被分配。(预计B类地址空间大约在1995年被用尽)。 2.全球路由表的条目数,1995年大约为65000条,而且仍在增长中,路由性能收到影响。 3.32位的IPv4地址被认为不足以应对Internet在21世纪初的预期规模。 为了帮助缓解IPv4地址(特别是B类地址)的压力,分类寻址方案通常使用一个类似VLSM(Variable Length Subnet Masking)的方案,扩展Internet 路由系统以支持无类别域间路由CIDR)。使用CIDR,未经过预定义的任何地址范围可作为一个类的有部分(Q:不理解),但需要一个类似子网掩码的掩码,有时也称为CIDR掩码。 因此,除了网络号之外,核心Internet 路由器必须能解释和处理掩码。这个数字组合叫做 网络前缀,它用于IPv4和IPv6地址管理。 聚合:有些好理解,不过多赘述。

2.5.2 组播地址

一个IP组播地址,表示一组主机接口而不是单个接口。一般来说一个组可以跨越整个Internet。(Q:类似于工作组 和 VPN 有什么区别?)一个组覆盖的网络部分称为 组的范围。 任意源组播(ASM):当一台主机向一个组发送数据时,它会创建一个数据报,使用单播IP地址作为源地址,组播IP作为目的地址。已加入组的所有主机将接收到发送到该组的任何数据报。(发送方通常不知道主机是否接收到数据报,甚至不知道有多少主机接收到他发出的数据报) 特定源组播(SSM):在每个组中只有一个发送方,当一台主机加入这个组后,它会被指定一个信道地址,其中包括一个组的地址和一个IP源地址。

2.5.3 IPv4组播地址

IPv4中,D类地址(224.0.0.0 ~ 239.255.255.255)已经被保留支持组播。详细内容见书(表2-9)。

2.5.4 IPv6组播地址

Ipv6中,前缀ff00::8/已经预留给组播地址并且112位可用于保存组号。 基本的IPv6组播地址格式包括4个标志位(0,保留;R,包含会合点;P,使用单播前缀;T,是临时的) 4位范围值表示组播的范围(全球or本地)。详细见书P38。

2.6.1 分配

对于单播IPv4和IPv6的地址空间,IANA将分配权限主要委托给几个地区性 Internet注册机构(RIR),RIR之间通过一个组织相互协作,基2003年创建的号码资源组织NRO


AfriNIc — 非洲网络信息中心 APNIC — 亚洲太平洋地区网络信息中心 ARIN — 美洲Internet 号码注册机构 LACHINC – 拉丁美洲和加勒比地区的IP注册机构 RIPE NCC — 欧洲网络协调中心


往后的内容 书上内容详细易理解 在这里不过多赘述(书P44往后)。 (Q:多个供应商/多个网络/多个地址(多宿主)不理解