前言:
每台连接到Internet的设备都至少有一个IP地址,IP地址就像我们日常生活中使用的电话号码,下面我们来了解一下Internet是如何识别主机和路由器,并且完成他们之间流量的交互。
两种IP地址
IPV4:
IPV4地址采用的是点分四组或点分十进制表示法
点分四组表示法由四个用点分隔的十进制数组成。每一个数字都是非负数,范围是【0,255】
点分四组表示 | 二进制表示 |
0.0.0.0 | 00000000 00000000 00000000 00000000 |
1.2.3.4 | 00000001 00000010 00000011 00000100 |
10.0.0.255 | 00001010 00000000 10000010 01101011 |
165.195.130.107 | 10100101 11000011 10000010 0110101 |
255.255.255.255 | 111111111 11111111 11111111 11111111 |
IPV6:
块或字段:4个十六进制的数
在IPV6中,地址的长度是128位,是IPV4地址长度的4倍
IPV6地址的传统表示方法是采用称为块或字段的四个十六进制数,这些被称为块或字段的数由冒号分隔
用户不是特别熟悉这些十六进制数,但是将十六进制数转换为二进制却更加容易
目前一些取得共识的IPV6地址简化表示法已经被标准化
1.一个块中前导的零不必书写
2.全零的块可以省略,并用符号 : : 代替。但是为了避免出现歧义,一个IPV6地址中符号 : : 只能出现一次。
3.在IPv6格式中嵌入IPv4 地址可使用混合符号形式,紧接着IPv4部分的地址块的值为fff,地址的其余部分使用点分四组格式。例如,IPv6地址 : : ffff : 10.0.0.1 可表示为IPv4地址10.0.0.1.它被称为IPv4映射的IPv6地址
4.IPv6地址的低32位通常采用点分四组表示法。 因此,IPv6 地址 : : 0102 : f001相当于地址 : : 1.2.240.1。被称为IPv4兼容的IPv6地址。
特别需要注意的是IPv4兼容地址与IPv4的映射地址不同,兼容地址只是过渡时处理,现在已经不需要了。
不必要的混淆的情况
IPv6地址的冒号分隔符可能与其他分隔符混淆,比如ip地址和端口之间的冒号。此时RFCC5952制定了一些规则去缩小选择范围
1.前导的零必须压缩。
2. : : 只能用于影响最大的地方(压缩最多的零),但并不只是针对16位的块。如果多个块中包含等长度的零,顺序靠前的块将被替换为 : : 。
3.a到f的十六机制数字应该用小写表示。
基本的IP地址结构
由于拥有大量的地址,可以方便地将地址空间划分为块。IP地址可根据类型和大小分组。大多数IPv4地址块被细分为一个地址。
单播地址:用于识别连接Internet或某些专用的内联网的计算机网络接口。(IPv4地址空间中大部分是单播地址空间)
广播:
组播:
任播:
分类寻址
起初,定义地址结构的时候,每个单播地址都有一个网络部分和主机地址。网络部分:用于识别接口使用的IP地址在哪个网络中可被发现。主机部分:用于识别网络部分给出的网络中特定的主机。因此地址中的一些连续位称为网络号,其余为称为主机号。
不同网络可能有不同数量的主机,每台主机都需要一个唯一的IP地址。一种划分方法是基于当前或者预计的主机数量,将不同大小的IP地址分配给不同的站点。地址空间的划分设计五大类。
此处应该有图~~~~~~~~~
A,B,C类地址用于为Internet(单播地址)中的接口分配地址,以及其他一些特殊情况下使用。类的划分由头几位来定义:0——A,10——B类,110——C类,1110——D类,1111——E类。D类地址供组播使用,E类地址保留。
子网寻址
在一个站点接入Internet后为其分配一个网络号,然后由站点管理员进一步划分本地的子网数。该实现可以通过子网寻址。一个站点被分配一个A类,B类,C类的网络号,保留一些剩余主机号进一步用于站点内分配。该站点可能将基础地址中的主机部分进一步划分为一个子网号和一个主机号。本质上说,子网寻址为IP的地址结构增加了一个额外的部分,但没有为地址增加长度。
子网寻址提供了额外灵活性,但是增加了成本,子网字段和主机字段定义是由站点制定的(不是网络号分类决定的),一个站点和主机需要一种新的方式去确认子网部分和主机部分,在未出现子网之前,该信息可从网络号中获取。