注意: 这个系列的博客只是为了巩固我学习的知识,参考的价值不是很大,如果需要,请转到http://www.cnblogs.com/ZCplayground/p/7764436.html
Internet 地址结构
连接到Internet的每个设备至少要有一个IP地址。基于TCP/IP协议的专用网络中使用的设备也需要IP地址。
表示IP地址
IPv4地址:
32bit
采用点分四组或者点分十进制表示。例如165.195.130.105
IPv6地址:
128bit
采用块或字段的四个十六位进制数表示。例如5f05:2000:80ad:5800:0058:0800:2023:1d71
该表示方法有以下共识:
- 块前导0必须省略,如上面的地址可以写成
5f05:2000:80ad:5800:58:800:2023:1d71
- 全零的块可以用
::
省略,但为了避免歧义,仅能使用一次且使用在省略块长度最长的地方(当多个省略块长度相同时,省略较高位的块)。例如2001:0:0:0:2:0:0:1
可以写成2001::2:0:0:1
基本的IP地址结构
IP地址可以根据类型和大小分组,那些用于识别连接Internet或某些专用的内联网的计算机网络接口称为单播地址。此外还有广播、组播和任播地址。但是,IPv6并没有广播地址
分类寻址
IPv4地址空间最初分成五大类如下图所示
A,B,C类用于单播地址,D用于组播而E地址保留。
其地址空间划为如下图所示
我们很容易可以看出,A,B类的网络号浪费了太多的主机号,而C类则不能为很多站点提供足够的主机号。就如同学校中有的教室大,有的教室很小。教务处按上面的方法分配教室的时候,就会出现有的教室只有少部分座位被利用,而有的教室却有很多人没有座位。所以可能有人就建议要建更大的教室,于是就有了IPv6。也有人提出了更加优化的分配方案,这些都是我们之后要谈的。
子网寻址
子网寻址的想法是,给站点分配A,B,C类的网络号,保留下一些剩余的主机号,让站点自行分配。这种方法使得站点管理员能够在子网数和每个子网预期的主机数中折中,减少了与其他站点的协调。
这就好比学校再不给每个班级分配教室了,而是把这个任务扔给了学院去处理。学院的灵活折中处理稍微的解决下了这个苦恼的问题。
那么什么是子网寻址呢?它是如何工作的呢?
在上图的这个例子中,我们再给定网络号的基础上,选定了8位子网号,剩下的8位为主机号。这样就有256个子网,每个子网可以包含254(256-2,其中子网的第一个和最后一个地址无效)台主机。注意:只有划分子网的网络中的主机和路由器知道子网的结构,Internet的其他部分仍将它作为站点相关的地址看待。
那么问题来了,如何知道网络号之后的子码和主机号码是怎么划分的?
子网掩码
子网掩码的长度和其IP地址相同。在数值上,子网掩码在对应主机位上均置0,其余位置均置1。于是有255.255.254.0
(可以简写成/23
)表示前面23位以后才是代表主机号码。
将地址与掩码按位与运算得到路由的地址的网络与子网标识符(前缀)。这样便可以知晓该地址的子网。
在对同一站点的不同部分,将不同长度的子网掩码应用于相同的网络号,就形成了可变长度子网掩码(VLSM)。
广播地址
广播地址是该IP地址与掩码取反进行或运算的结果。
当目的地址为某广播地址,如上图的128.32.1.255
时,数据报将发送给目标站点的所有主机
CIDR和聚合
无类别域间路由(CIDR)和聚合为解决下列原因而出现
- B类地址耗尽
- 路由表的条目数增加
前缀
使用CIDR,未经过预定义的任何地址范围都可以作为一个类的一部分,但是需要一个类似子网掩码的掩码,称之为CIDR掩码。CIDR掩码不再局限于一个站点,而对全球性路由系统都是可见的
除了网络号之外,核心Internet路由器必须能解释和处理掩码,这样的数字组合称为网络前缀
消除IP地址中网络和主机号的预定义分隔,将使更细粒度的IP地址分配范围成为可能。
例如192.125.3.0
写成前缀形式:192.125.3.0/24
。A 类和 B 类网络号用前缀 /8
和 /16
表示
聚合
减少路由表的条目数也很重要,就好比你在十字路口碰到了无数多的道路指向牌,你也会蒙蔽的。所以人们就想出了一些方法。
我们想到,路由表的条目数利用网络拓扑排列成一棵树,如果这棵树的上一层能够和目的IP地址的较高位吻合,接下的每一层依次匹配下来,就可以节省大量的时间。
做到这样的树,就要通过路由聚合这个过程来实现,即:
将相邻的多个IP前缀合并成一个短前缀,这样就可以覆盖更多的地址空间。而合并的方法便是进行按位与运算。
特殊用途地址
这里暂时不举例
组播地址
一个IP组播地址标识一组主机接口,而不是单个接口。
站点管理员可将路由器配置为管理范围边界,这意味着相关组的组播流量不会被路由器转发