网络层之划分子网以及构造超网
- 首先了解到ip数据报中首部检验和:首部检验和只检验数据报的首部,奴检验数据部分数据报的首部固定长度为40个字节,但是数据部分过多,部检验数据部分可减少工作量。在发送端,将数据报的首部全度以二进制形式表示,把首部检验和字段置零,然后全部相加,相加之后取反码,再将该数值写入检验和字段。在接收端,将数据报首部全部写成二进制样式,然后相加再取反码,若结果为0,则表示正确,若结果不为零,则丢弃该数据。
- ip层转发分组过程:<1>从数据报首部取出源地址,然后通过计算得到目的网络号。<2>若该网络与该路由直接相连,则直接交付。<3>若该网络不与路由器直接相连,则查看目的网络是否为特定主机路由,若是,则把数据报装发给指定的下一跳路由。<4>如果不是,那么看路由表中是否有到达目的网络号,若有,则将数据报转发给下一跳特定主机路由。<5>若没有,则转发到默认路由。<6>否则,报告分组转发错误。
划分子网以及构造超网
- 划分子网
二级ip地址利用率较低以及不灵活,所以才划分子网。而划分子网又称为三级ip地址,因为多了一个子网号(该子网号是借主机位来划分的)。
如将一个B类ip地址145.13.0.0划分为三个子网:145.13.3.0,145.13.21.0,145.13.7.0。这是借了主机位八位,那么主机位只有八位了。
在划分子网之后,本网络之外的看到的还是一个网络,而不能看见有三个子网,那么这就引入了ip数据报的转发问题。
ip数据报转发问题:引入子网掩码,子网掩码表示方法是通过把主机位都为0,网络位都为1来表示的。例如,145.13.3.0,那么这是一个二级ip地址,且是一个具有八位子网号的ip地址,则其子网掩码为:11111111 11111111 11111111 00000000,若它只是一个二级ip地址,尚没有划分,那么其子网掩码为:11111111 11111111 00000000 00000000。通过把ip地址按二进制展开然后与子网掩码按位与即可得到子网的网络地址。划分子网虽然增加了灵活性,但是却减少了连在网络上的主机数。 - 无分类编址CIDR(构造超网)
无分类编址的IP地址由两部分组成,即网络前缀以及主机号,所以构成超网是将三级ip地址又回到了二级ip地址。
那么该具体如何表示,利用斜线记法,又称为CIDR记法。即在ip地址后面加一根/即可,而/后面的数字是网络前缀转换成二进制子网掩码为1的个数,即网络前缀的个数。例如:128.14.35.7/20,那么该ip地址表示成子网掩码为:11111111 11111111 1111 0000 0000000。
那么为什么它就能够构成超网呢?其实很简单,就是把后面的主机位按最小到最大的顺序排列出来就是它的所有ip地址,统称为地址块。例如:128.14.35.7/20,其最小值为128.14.32.0/20(10000000 00001110 00100000 00000000),最大值为128.14.47.255(10000000 00001110 00101111 11111111)。
在路由器表中,通过路由聚合可以用一个项目表示传统路由的多个ip地址,所以路由聚合又称为构成超网。
那么我们又遇到了和划分子网一样的问题,ip数据报该如何晓得它转发给谁呢,它要到达的目的网络地址需要通过哪些路径呢?我们引入了最长前缀匹配方法。即接收到的数据报转换成二进制形式,然后将其与目的ip地址的子网掩码按位相与。若有多个符合,那么选择网络前缀最长的那个,即/后面数字最大的那个。例如,路由表接收到一个ip地址:206.0.71.130/22,路由表中有两个ip地址:206.0.68.0/22,206.0.71.128/25,那么将206.0.68.0/22分别与路由表中的两个ip地址的子网掩码相与。
206.0.68.0/22和206.0.68.0/22(11111111 11111111 11111100 00000000)=206.0.68.0/22(符合),再与下一项进行同样操作发现也符合,那么我们应该选择/25那项,因为它的前缀最长。