0%

[TCP/IP卷一]1.Internet地址结构

最近打算读一下计算机网路领域的圣经,并将一些重要知识点总结记录下来。

1.1 引言#

链接到Internet的设备都必须有一个 IP地址。基于TCP/IP协议的专用网络中 使用的设备 也具有IP地址。 IP路由器实现的转发程序使用IP地址来 识别流量去向;IP地址也表示流量的来源。 IP地址与电话号码类似,但人们知道电话号码,而 IP地址通常被Internet中的 DNS屏蔽在用户视野之外, DNS实现大多数人使用的是 名字而非数字化的IP地址。

个人用户通常由Internet 服务商(ISP)分配 地址,通过支付费用来获得地址和执行路由。

1.2 表示IP地址#

  • IPv4地址,通常采用 点分四组或者点分十进制表示法(192.168.0.1)。点分四组表示法由 四个用点分隔的十进制数组成。每个数字都是 [0,255]的非负整数(8位二进制可以表示),代表整个IP地址的四分之一(共占32位大小)。

  • IPv6,地址长度为 128位,是IPv4的四倍,它通常采用成为块或者字段的四个十六进制数(一个块大小为16位),这些数用冒号分隔。 例如一个包含8个块的IPv6可以写成 5f05:2000:80ad:5800:0058:0800:2023:1d71。虽然不像用户熟悉的十进制数,但将十六进制转换为二级制更容易。另外IPv6可以简化成标准化的 [RFC4291]:

    1. 一个块的前导零不必书写,如上面可以写成:5f05:2000:80ad:5800:58:800:2023:1d71
    1. 全零块可以省略,用::代替,例如 0:0:0:0:0:0:0:1可以写成 ::1。为了避免歧义,一个IPv6中::只能使用一次
    1. IPv6格式嵌入IPv4地址可使用混合符号形式,如IPv6地址::ffff:10.0.0.1可以表示IPv4地址为10.0.0.1。
    1. IPv6的 低32位通常用点分四组法。Ipv6地址::0102::f001相当于地址::1.2.240.1。它被称为IPv4兼容的IPv6地址。

后面[RFC5952]做了命名新的优化,这里不细讲了。

1.3 基本的IP地址结构#

IPv4 地址空间中有 4 294 967 296(2^32)个可能的地址,而 IPv6地址个数为(2^128):(不列了,实在太大了,根本用不完)。由于拥有大量地址,可以方便将地址空间 分为一个一个块

1.3.1 单播地址#

大多IPv4地址块被 最终细分为一个地址,用于 识别链接Internet或某些专用的内联网计算机网络接口。这些就是单播地址(IPv4 大部分都是单播地址空间)

除了单播地址,还有 广播,组播和任播地址

1.3.2 分类寻址#

  • 每个IP单播地址 = 网络部分(识别接口使用的iP地址在哪个网络可被发现) + 主机地址(识别网络部分下的特定主机)。 因此地址中一些连续位称为 网络号,其余称为 主机号
  • 现实中 不同网络下主机数量不一, 每台主机都需要一个唯一IP。 -- 方案1:基于当前或预计主机数量,将不同大小的IP地址空间分配给不同的站点。