划分子网和构造超网
前面我们介绍了子网划分方式,这种方式有着访问IP地址方便的优点,但是,随着互联网主机的增加,缺点也越来越明显,那就是有些网络给了A类的IP地址,但是它的主机数量不多,IP地址存在很大的浪费,我们应该怎样去解决这个问题呢???
1、划分子网:
就是在原来网络的基础上,再对其进行划分,就像我们先把蛋糕分成两块,再把两个半块蛋糕再进行划分,就是这样子的。
在互联网上就是对其二类地址内部再一次进行划分,二类地址中网络号是16位,主机号16位,划分子网后,网络号可能变成20位,主机号变成12位,总的没有变,只是部分变了,划分子网后,网络外部来看,没有什么差别,只是在网络内部,进行传输分组的时候,有一些变化,因为我们划分了子网,虽然整体网络的网络号没变,但是网络内部的子网的网络号发生了变化,所以我们在传输分组的时候,需要用子网掩码来确定子网的网络号。
2、子网掩码:
(1)由于IP数据报的首部无法看出源主机或目的主机所连接的网络是否进行了子网的划分,IP数据包的首部没有包含任何关于子网划分的信息;使用子网掩码,路由器可以转发IP数据报到相应的子网中去;
(2)子网掩码是路由器用来查找目的主机所在的子网的IP地址的;
(3)路由器把三级IP地址的子网掩码和收到的数据报的目的IP地址逐位相“与”(AND),得出所要求的子网的网络地址;
(4)不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算,就立即得到网络地址来;
(5)因特网的标准规定:所有的网络都必须使用子网掩码,同时在路由器的路由表中也必须有子网掩码这一栏;如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码;
(6)默认子网掩码:
A类地址的默认子网掩码:255.0.0.0
B类地址的默认子网掩码:255.255.0.0
C类地址的默认子网掩码:255.255.255.0(默认的子网掩码与网络号相与之后,网络号没有发生变化)
(7)子网掩码是一个网络或一个子网的重要属性:路由器和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器;
(8)采用固定长度子网时,所划分的所有子网的子网掩码都是相同的;
(9)子网数是根据子网号subnet-id计算出来的,若subnet-id有N位,则共有2的N次方种可能的排序;除去全0和全1这两种情况,就得出表中的子网数;
(10)若使用较少位数的子网号,则每一个子网上可连接的主机数就较多;若使用较多位数的子网号,则子网的数目较多但每个子网上可连接的主机数就较少;
(11)划分子网增加了灵活性,但却减少了能够连接在网络上的主机总数;
(12)同样的IP地址和不同的子网掩码可以得出相同的网络地址,但是,不同的掩码的效果是不同的;子网号和主机号不同的划分方法,可划分的子网数和每一个子网中的最大主机数都是不同的;
3、使用子网时分组的转发:
路由表必须包含以下三项内容:目的网络地址,子网掩码和下一跳地址;
划分子网后,分组转发的算法:
(1)从收到的数据报的首部提取目的IP地址D;
(2)先判断是否为直接交付,对路由器直接连接的网络逐个进行检查:用各网段的子网掩码和D逐位相“与”(AND)操作,看结果是否和相应的网络地址匹配;若匹配,则把分组进行直接交付(当然还需要把D转换为物理地址,把数据报封装在MAC帧中发送出去),转发任务结束;否则就是间接交付,执行(3);
(3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由器中所指明的下一跳路由器;否则,执行(4);
(4)对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和D逐位相“与”(AND操作),其结果为N;若N与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则,执行(5);
(5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6);
(6)报告转发分组出错;
另外一种解决网络IP地址浪费的方法就是构建超网(CIDR)(网络名词学起来好烦人)
4、无分类编址CIDR(构成超网):
(1)我们知道,在地址分类的方法里面,不管哪一类地址,网络号和主机号所占的长度都是固定不变的,只要你确定了这个网络号,那就是固定长度的,这样用起来就很不灵活,而且也直接导致了IP地址资源的浪费,因此,伟大的工程师们又提出了构建超网的算法:
这种方法的网络号和主机号所占的长度是可变的。
(2)具体记法:“斜线记法”或称“CIDR记法”,即在IP地址后面加上斜线“/”,然后写上网络前缀所占的位数;128.14.35.7/24
CIDR把网络前缀都相同的连续IP地址组成一个“CIDR地址块”,我们只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数;
(3)CIDR使用32位的地址掩码,地址掩码有一串1和一串0组成,而1的个数就是网络前缀的长度;斜线记法中,斜线后面的数字就是地址掩码中1的个数;
(4)斜线记法除了可以表示IP地址外,还可以表示这个地址的网络前缀有几位,剩下的就是主机位;通过简单的计算,还可以得出这个地址块中的最下地址和最大地址;
(5)路由聚合:一个CIDR地址块中很多地址,在路由表中利用CIDR地址块来查找目的网络;路由聚合也称为构造超网
(6)CIDR记法有很多种形式:10.0.0.0/10可简写为:10/10;在网络前缀的后面加一个星号*:00001010 00*,*号表示IP地址中的主机号;
(7)构成超网的方法:就是将网络前缀缩短。网络前缀越短,其地址块所包含的地址数就越多;
(8)最长前缀匹配:
路由表中每个项目由“网络前缀”和“下一跳地址”组成,但是在查找路由表时,可能会得到不止一个匹配结果;
应当从匹配结果中选择具有最长网络前缀的路由;这叫做最长前缀匹配,这是因为网络前缀越长,其地址块就越小,因而路由就越具体;