CIDR构成超网
CIDR消除了原来的传统的 A,B, C, D类地址, 使用了各种网络前缀来代替原来分类地址中的网络号和子网号, IP 地址由原来的三级分类又变成了两级分类. 其中网络号和子网号是一个随机的长度. 其中 CIDR 也可以使用 / 的形式来表示, 其中在 / 前面写上网络前缀的位数.其中注意网络前缀所占的比特位就是三级编制中子网掩码中 1 的个数. 当网络前缀相同的时候就叫做地址块, 也叫做超网.
1. 常用的 CIDR 地址快
假如 CIDR 网络地址号为 128.14.32.0 /20, 此时最小的地址块就是128.14.32.0, 最大的地址号就是 128.14.32.255, 其中要注意, 主机号为全 1 的时候代表的是一个广播网, 主机号为全 0 的时候表示主机自己的网络. 因此全 0 和全1 一般不分配.
2. 路由聚合
一个 CIDR 地址块可以表示或多个地址, 这样会使得一个路由表中的一个路由就可以表示多个网络地址. 这是什么意思呢, 加入原来的 C 类网络用前24为表示网络号, 后面的8位表示主机号, 而前面的3为用来表示自己是一个 C 类网络地址, 此时表示的网络号就有 2^21 次方个网络, 而在构成超网中, 但是它占了24位, 也就是说 C 类网络地址用了24位表示了2^21个网络地址, 而在构成超网中, 当用前20位表示网络前缀的时候, 此时就可以认为是用20位比特表示了2^20个网络.即构成超网中提高了比特位的利用率而且扩大了网络地址的范围更加灵活.
3. 掩码
对于一个/20的地址块, 掩码就是网络号的前20位是1, 后12位是0, 这样得到的就是超网中的一个掩码.
4. CIDR 记法的其他形式
当用点分十进制表示网络地址的时候, 此时可以省略低位的连续的0. 比如 10.0.0.0 /10 可以表示为 10/10.同时也可以在网络前缀的后面加一个 . 其中 前面的是网络前缀, 后面的是连续的 0. 前缀越长变化空间越少, 地址块包含的地址数就越少. 在三级子网划分中, 子网号越长, 网络前缀就会越长.
前缀最长匹配
在 CIDR 中路由表中每一个项目包括了网络前缀和下一条的地址.在路由的过程中目的路由下一条选择网络前缀最长的路由. 因为路由越长, 主机号对应的位数就会越少, 这样寻找的范围就会减小, 有利于传输效率.
1. 二叉线索查找路由表
在前缀最长匹配算法中, 由于每次找到一个目的地址时需要找到前缀最短的路由, 因此这样就比较花费时间. 因此将网络前缀用二叉树的数据结构进行组织
先从IP地址中找出各个IP地址中唯一的前缀, 然后通过唯一的前缀构成二叉树, 其中二叉树的左孩子是对应的值为0, 右孩子是对应的值为0
2. 网络控制报文协议 ICMP
(1)差错报告报文
在数据报文进行传输的过程中, 某条路由可能不同了, 此时就需要发送一个差错报告, 高速对方这条路不通了
(2)询问报告报文
在数据进行传输的过程中前面的时候数据一方在之前的时候发现路由不通了, 此时在发送数据的时候就需要测试一下现在我要发送数据了, 这条路由通不通
1) 差错报文的 5 中错误
终点不可达
原点抑制
时间超过
参数问题
改变路由
2)ICMP询问报文
回送请求和回答报文
时间戳请求和回答报文
掩码地址请求和回答报文
路由器询问和通告报文