网络层知识点
网络层概述
注意:
数据报和分组的关系:分组是一段比较长的数据,将它进行切割成一段段之后(分片)就得到数据报
网络层的功能:
- 功能1:(路由)分组转发(算法)和路由选择(算法以及协议)
简单来说:就是将数据在网络上选择一条最佳的线路发送出去。 - 功能2:异构网络互连
简单来说:就是可以在不同的网络上进行连接。 - 功能3:拥塞控制(这是一种全局性的控制,而流量控制仅是两端进行控制)
IP协议
IP数据报的格式和IP数据报分片(重点掌握)
IP数据报中的各字段:
需要注意的几点:
- 总长度:一般总长度不会超过最大值1500字节(<=MTU,即帧的最大数据部分);
- 标识:表示当必须分片时,分片后的数据每一个IP数据报分组的标识都是同一个数,这样才能最后通过标识组装成原来的数据报。(例如:发送一个数据报,这个数据报过大进行分片,分成2个分组,每一个分组IP首部的标识字段都是3,那样才能在达到下一个目的结点组装起来)
- 标志:只有最后两位有意义,最后一位为MF,当MF=1表示后面还有分片,MF=0表示这是最后一个分片。中间一位为DF,当DF=0才能允许分片。
- 片偏移:8个字节为一个单位,当出现为100,表示该分片从源数据报的第8 *100=800字节开始分割的。
- 总长度的1对应着1个字节,片偏移的1对应着8个字节,首部长度的1对应着4个字节。
IP地址的分类(重点掌握)
注意:IP地址为32位标识符,不仅网络上的主机会分配一个IP地址,而且网络上的路由器的每个接口也会分配一个IP地址。
IP地址共分为A,B,C,D,E类:
A类网络号:
A类网络号占8位,但只有7位可供使用(该字段的第一位已经固定为0),可指派的网络号是126个(2的7次方-2)。
网络号-2的原因:
1.IP地址不可能全部为0,即00000000,全0表示“本网络”。
2.网络号为127(01111111)保留本地当做环回测试本主机的进程之间的通信。
B类网络号:
B类网络号占16位,前两位固定为(1 0);但是B类网络号需要-1,因为128.0.0是不指派的,最小指派的网络号为128.1.0;
C类网络号:
C类网络号占24位,前三位固定为(1 1 0);但是C类网络号也需要-1,因为192.0.0.0是不指派的,最小指派的网络号为192.0.1;
A,B,C类的主机号:
ABC类的主机个数都需要-2,原因:
1.全0的主机号表示所连的是本主机的单个网络。
2.全1的主机号表示所有主机。
ABC类的可指派的网络号个数和主机个数:
子网划分(重点掌握)
注意:在ABC类网络中,子网不支持全0和全1,而下面要说的CIDR无分类编址,就支持全0和全1
子网掩码(重点掌握)
子网掩码就是用来和ip地址一起计算子网的地址的
方法就是通过子网掩码逐位写成二进制然后而原来ip地址进行与运算,就可以得到子网ip地址
在子网掩码中,一串0表示主机号所占的位数,而连续的1表示网络号+子网号;
例题:
分析:已知子网掩码为255.255.192.0,所以把IP地址转化成2进制数和子网掩码进行“与运算”;
141.14. 01001000.00011000
255.255.11000000.00000000 "与运算“
得出:141.14.64.0
例题2:
分析:已知子网掩码,通过子网掩码和IP地址进行“与运算”,算出网络地址;因为告知在所在子网发送广播分组,所以主机号为全1,全1表示所有主机。
180.80.01001101.00000000
255.255.11111100.00000000 “与运算"
得出子网网络地址:180.80.76.0
因为需要发送广播,所以主机号全1,则目的地址为180.80.01001111.11111111
转换成10进制为180.80.79.255,
所以选D;
使用子网划分的路由分组转发算法
首先,我们需要知道一个知识点:
如何判断两个IP地址是不是在同一个网络中:
1.看看子网掩码是不是一样;(如果不一样,说明所在的网络不属于同一个子网)
2,通过IP地址和子网掩码进行”与运算”的出来的网络地址是不是一样;
当一个IP地址通过路由表去查询转发的下一站时,但是我们并不知道这个数据报的目的IP地址的子网掩码,这时候就需要通过子网划分的路由分组转发算法,使用路由转发算法通常需要经过以下几个步骤:
- 先从该收到的分组或IP数据报中提取目的IP地址;
- 优先级最高-》和路由表中的能直接交付的网络地址的子网掩码进行与运算,如果和对应子网掩码的网络地址匹配,则直接交付;
- 特点主机路由-》如果目的地址和特定主机路由匹配,则将该分组转发到下一跳的路由;
- 动态生成路由-》与路由表中的所有网络地址的子网掩码进行与运算,如果得出来的网络地址与该对应子网掩码的网络地址相匹配,则将该分组转发到下一跳的路由器;
- 如果路由表中有默认路由,则将该分组传输给所指明的默认路由;
- 报告转发分组出错(通过ICMP协议);
无分类编址(CIDR)
需要注意的是:在CIDR无分类编址中,网络号都可以全0和全1;
而地址掩码使用方法和子网掩码的使用方式一样;网络号表示为1,主机号表示为0;
构造超网(重点掌握)
简单来说:和划分子网区别是一个逆向过程;
如何去构造超网?
方法:将网络前缀缩短;
上图所示:如果网络1和网络2的下一跳地址都是R2路由表
如果不是使用构造超网,我们需要在路由表中添加网络1和网络2的网络地址,显得有些冗余;
使用超网后:
根据斜线计数法,得出网络1的网络前缀为206.1.0(17位),而网络2的网络前缀为206.1.1(17位),那么我们可以把这两个网络构造成一个超网,把网络前缀缩短到前缀完全相同的位数,那么就得出一个网络:206.1(16位),以后只要经过网络1和网络2的IP地址都只需要匹配这个超网地址即可。
最长前缀匹配
优先选择匹配的网络前缀最长的转发路径
例题1:
分析:通过IP地址和路由表中的各网络前缀,也就是他们的地址掩码进行匹配,得出网络地址;
看看是否和当前网络地址进行匹配,当然,如果有多个匹配,优先选择网络前缀最长的匹配;
答:和A类对应是132.0.0.0/8 (可以,但是不是最优选择,网络前缀为8位)
和B类对应的是132.0.0.0/11 (可以,但是不是最优选择,网络前缀为11位)
和C类对应的是132.19.236.0 (不匹配)
D类是默认路由,优先级最低;
所以选择B;
例题2:
分析:
根据IP地址可以得出网络号占了24位,而通过子网掩码得知占用了剩下的8位主机号的5位;
答:子网个数为2的5次方,而地址个数为2的3次方-2,因为可分配的地址,而全0和全1不可分配; 32,6;
ARP协议(通过IP地址去获取Mac地址)
APR协议作用:因为IP数据包通过以太网发送,以太网设备并不识别32位IP地址,他们通过以48位Mac地址传输,所以我们需要通过IP地址去获取Mac地址。在以太网中,一个主机要和另一个主机进行直接通信,必须知道目的主机的Mac地址,这时候就需要使用到ARP协议。
简单的工作流程:比如说主机1 需要去和主机3进行通信,但是只知道主机3的IP地址,并不知道它的Mac地址,所以我们通过广播ARP请求分组,分组中有自己的IP地址和目的IP地址以及自己的Mac地址,当这里的以太网主机都听到这个广播信息,就会去匹配目的IP地址看看是不是找自己的,如果这时候主机3进行匹配发现目的IP地址是自己的,就会单播一个ARP响应分组,分组中有主机的IP 地址和自己的Mac地址,主机1收到这个分组,成功获取到主机3的Mac地址,就可以进行通信了。
例题:
分析:画图如下
答:6次;
ICMP协议(用于更有效转发IP数据报和提高交付机会)
ICMP报文可以有哪几种类型:
ICMP差错报文的几种种类:
ICMP询问报文有哪几种类:
路由算法概念和路由选择协议(部分掌握)
路由算法是网络层最重要的部分,它负责确认一个进来的分组应该被传输到那一条输出线路上;
路由算法的分类:
AS就是多个路由器之间构成的单独的小圈子,圈子内使用自己的协议,圈子和圈子之间用的是BGP协议
RIP协议和距离向量路由算法(掌握)
RIP协议
RIP协议:1.是通过距离向量算法得出-》选通过路由器最少的一条路(最多只能包含15个路由器),当出现16或者选择路径中出现差错,都会变成16;
2. 每隔30s和相邻路由交换路由表信息;
3.上层传递的协议是通过UDP;
RIP协议的优点和缺点:
优点:
1.实现简单,开销小;
缺点:
- 使用的最大距离为15,16表示不可达,限制网络规模的扩大;
2.坏消息传的慢;
距离向量算法
简单来说:就是通过收到相邻的路由表传来的路由信息,更新自己的路由信息,比较相邻路由表和自己的路由表选出最佳的路由路径(比如(自己)路由器A的路由表到达N1网络需要5跳,而相邻的路由器B的路由表达到N1网络需要7跳,那么路由器A的路由表到达N1网络的这条信息不回改变,还是需要5跳);180s没有收到相邻的路由器的路由信息就表示这个路由器坏了,不可到达,设置跳数为16;
OSPF协议和链路状态算法(理解)
知道OSPF协议是通过链路状态算法实现的,并且也是内部网关协议,传递的协议是IP;
BGP协议(理解)
知道BGP协议是外部网关协议,通过距离向量算法实现的,上层传递的协议是TCP;
三种协议的比较
路由器设备
三个层次的设备的区别:
路由选择算法和路由分组转发算法的区别(掌握)
简单来说:通过路由选择算法得出路由表中的条目,根据条目可以选择最优的路由路径;
而路由分组转发算法是通过得出几条都可以选择的路由路径的基础上,根据优先级选择转发的最优路径;