一、网络层的定义
网络层属于OSI参考模型的第三层,它传输的数据单元是数据分组或数据报。
二、IPv4
IP可分类为IPv4和IPv6,IPv4是32bit(4byte)的IP地址,IPv6是128bit(16byte)的IP地址,如下:
(一)分类依据
IP地址分为五类,用A、B、C、D、E五类来表示,表示为X类IP地址,IP地址可以使用32位的二进制表示,即4个字节,也可以通过点分十进制表示法写成十进制的形式。
每类地址都由两个固定长度的字段组成,第一个字段是网络号,标志主机(或路由器)所连接的网络,且网络号在互联网范围内是唯一的;第二个字段是主机号,标志该主机(或路由器),且主机号在网络号所指明的网络范围内也是唯一的。
(二)IP地址分类
A、B、C类地址都是单播地址,即一对一通信,D类地址是组播地址,即一对多通信,E类保留作实验。
A类IP地址:通过点分十进制表示法,写成二进制时,其第一位总是0,我们只看IP地址前8位:
0000 0000=0
0111 1111=127(除了第一位其它置为1)
所以其地址范围为1.0.0.0-127.255.255.255
但是由于A类地址中127.X.X.X为保留地址,即环回地址,用于向自己发送数据,回送到本机,所以我们可以记:
A类IP地址为1.0.0.0-126.255.255.255。
另外其中10.X.X.X为私有地址,用于局域网络中。
B类IP地址:写成二进制时,其前两位总是10,IP地址前8位:
1000 0000=128
1011 1111=191(除了前两位其它置为1)
所以其IP地址范围为128.0.0.0-191.255.255.255
其中也有私有地址和保留地址,保留地址为169.254.X.X,也称为APIPA或自动专用IP地址,当IP地址设置为自动获取时,且无法获取相应的DHCP服务时,用于作临时主机地址。B类的私有地址为172.16.0.0-172.31.255.255。
C类IP地址:写成二进制时,其前三位总是110,IP地址前8位:
1100 0000=192
1101 1111=223(除了前三位其它置1)
所以其IP地址范围为192.0.0.0-223.255.255.255
C类只有私有地址,为192.168.X.X。
D类IP地址:D类不分网络地址和主机地址,用于组播,写成二进制时,前四位总是1110,IP地址前8位:
1110 0000=224
1110 1111=239
所以其IP地址范围为224.0.0.0-239.255.255.255。
E类IP地址:E类与D类一样,也是不分网络地址和主机地址。
写成二进制时,前四位总是11110,IP地址前8位:
1111 0000=240
1111 0111=247
所以其IP地址范围为240.0.0.0-247.255.255.255。
(三)私有网络地址
由于在构建局域网中,允许一些私有网络地址为用户使用,这些私有网络地址在访问Internet时会经过NAT(网络地址转换)技术将其转换为公网地址然后再访问Internet,在A类、B类、C类中有以下私有网络地址:
私网地址 | 数量 |
10.0.0.0~10.255.255.255 | 1个A类地址 |
172.16.0.0~172.31.255.255 | 16个B类地址 |
192.168.0.0~192.168.255.255 | 256个C类地址 |
(四)网络、主机号位数
A类地址的网络位8位,主机位24位;B类地址的网络位和主机位都为16位;C类网络位24位,主机位8位;D类、E类不分网络地址和主机地址。
A类地址:A类地址的网络位为8位,所以只占1个字节,其最大可指派的网络数为2^7^-2=126(减2的原因是网络位全0的保留地址和网络位为127的环回地址,环回地址用于环回测试),可指派的网络号为1-126。
主机位占3个字节,即24位,则A类网络中的最大主机数为2^24^-2(减2的原因是主机位全0表示该主机所连接的网络地址和主机位全1表示该网络上的所有主机)。
B类地址:B类地址的网络位和主机位都为16位,因为其前两位总是10,所以网络位只有14位可分配,且B类网络地址128.0.0.0不指派,所以其最大可指派的网络数为2^14^-1,可指派的网络号为128.1-191.255。
扣除主机位全0和全1,则B类网络中的最大主机数为2^16^-2。
C类地址:其前三位总是110,所以只有21位可分配,且C类网络地址192.0.0.0不指派,所以其最大可指派的网络数为2^21^-1,可指派的网络号为192.0.1-223.255.255。
扣除主机位全0和全1,则C类网络中的最大主机数为2^8^-2=254。
(五)特殊IP地址
IP地址中有几类特殊的IP地址,分别是有限广播(全局广播)、直接广播(定向广播)、网络地址、全零地址和环回地址。
1、有限广播(全局广播)的网络位和主机位全为1,例255.255.255.255;
2、直接广播(定向广播)的主机位全为1,例192.1.168.255;
3、网络地址的主机位全为0,例192.168.1.0;
4、全零地址的所有位全为0,例0.0.0.0;
5、环回地址格式为127.X.X.X。
其中全零地址和环回地址可作为源地址,全零地址和网络地址不可作为目标地址。
(六)IPv4数据报
IP协议是计算机网络之间相互通信的协议,IP数据报头结构如下:
IP数据报头结构分为首部和数据部分。
1、版本
标识数据报的IP版本号,目前广泛使用的IPv4,即IP协议版本号为4。
2、首部长度
长度为4位,常用的值(最小值)是5,即首部长度为0101,表示报头为20byte;最大值为15,即首部长度为1111,表示60byte。
另外当IP分组的首部长度不是4byte的整数倍时,必须使用最后的填充字段进行填充。
3、区分服务
长度为8位,用于指定特殊数据处理方式,该字段分为前6位区分代码点(DSCP)和显式拥塞通知字段(ECN),前者用于定义64个不同服务类别,后者ECN用于通知拥塞。
4、总长度
长度为16位,所以数据报的最大长度为216-1=65535byte,因为IP层下面的每一种数据链路层协议都规定了一个数据帧的数据字段的最大长度,即最大传送单元(MTU),所以当一个IP数据报封装成数据链路层的帧时,其不能超过规定的MTU。
常用的以太网规定MTU值为1500byte,即单个数据报不能超过1500字节,而超过1500字节就需要分段(分片),数据报首部中的总长度字段指分片后的每一个分片的首部长度与该分片的数据长度的总和。
5、标识符
长度为16位,用于分片和重装配,由于同一数据报分片后其标识符相同,分片后各数据报片能正确地重装成原来的数据报。
6、标记字段
长度为3位,只有两位有意义,最低位记为MF,MF=0表示这是数据报分片的最后一个,MF=1表示后面还有分片的数据报。第二位记为DF,DF=1表示不能分片,DF=0表示允许分片。
位数 | 0 | 1 |
第1位 | × | × |
第2位(DF) | 允许分片 | 不允许分片 |
第3位 (MF) | 最后一个分片 | 更多分片 |
7、分片偏移字段
分片偏移字段指出分片后,某片在原分组中的相对位置,长度为13位,以8byte为偏移单位,除了最后一个数据报片外,每个分片的长度是8byte(64位)的整数倍。
8、生存时间
长度为8位,生存时间(TTL)用于随着数据报最多可以经过的路由器数目,用于防止无限制转发消耗网络资源。
TTL由发送数据的源主机设置,每经过一个路由器时,TTL减去数据报在该路由器所消耗的时间,当TTL值减为0时,该数据报被丢弃。
9、协议字段
长度为8位,用于指明数据报携带的数据使用的协议类型,即IP层所封装的上层协议,使目的主机将数据部分上交给相关协议处理。
以下是常用的协议以及其协议字段值:
10、首部检验和
字段长度为16位,用于检验数据报的首部(不检验数据部分),为了减少计算检验和的工作量,所以不采用CRC校验码,而是根据IP首部计算得到检验码。
11、源地址、目的地址字段
该两个字段长度都为32位,用于表明发送IP数据报文的源主机IP地址和接收IP报文的目标主机IP地址。
12、可选字段
该字段长度可变,从1字节到40字节不等,取决所选择的项目,即增加首部的可选字段用于增加IP数据报的功能,实际上很少使用,
另外因为很多路由器不考虑IP首部的可选字段,所以在IPv6版本中IP数据报的首部长度是固定的。
三、划分子网
通过IP地址中的子网号字段,可以将两级IP地址变成三级IP地址,称为划分子网(子网寻址或子网路由选择),划分子网增加了灵活性,但减少了能够连接在网络上的主机总数。
具体步骤是:从网络的主机号借用若干位作为子网位,从而使两级IP地址变成三级IP地址,由原本的网络号.主机号变为网络号.子网号.主机号。
在传送IP数据报时,首先根据IP数据报的目的网络号找到连接在本单位网络上的路由器,该路由器收到IP数据报后,再根据目的网络号和子网号找到目的子网,将IP数据报传送给目的主机。。
四、子网掩码
(一)子网掩码的表示
子网掩码用于区分网络地址、主机地址、广播地址,是表示网络地址和子网大小的重要指标,它屏蔽主机号,获取网络号,用于判断目标主机是否与本机处于一个网络中。
其形式是网络号部分全0,主机号部分全0,子网掩码除了使用点分十进制表示法表示,也可以通过建网比特数,采用斜线记法,即/ 从左到右连续为1的总数,比如/24表示255.255.255.0。
可以通过子网掩码看出有多少位是网络位和主机位,比如子网掩码255.255.255.0,二进制为1111 1111.1111 1111.1111 1111.0000 0000,通过建网比特数表示为/24,即从左到右连续为1的总数为24,所以网络位为24位,主机位为8位。
(二)默认子网掩码
若一个网络不划分子网,则该网络的子网掩码就是默认子网掩码,如下:
A类默认子网掩码:255.0.0.0
B类默认子网掩码:255.255.0.0
C类默认子网掩码:255.255.255.255
(三)VLSM和CIDR
可变长子网掩码(VLSM)通过对部分子网再次进行子网划分,可用于节约IP地址,使寻址效率更高,同时IP的利用率也更高。
在无类别域间路由(CLDR)中,路由器使用前缀来描述网络位的位数,从而提高IPv4的可扩展性和效率,通过使用路由聚合,也称为超网,从而有效地减小路由表的大小,进而提高路由器的查找效率。
五、ICMP
(一)ICMP的定义
ICMP,即Internet控制报文协议,用于在IP主机和路由器之间传递控制信息,它允许主机或路由器报告差错情况和提供有关异常情况的报告,它封装在IP数据报中,作为其中的数据部分,加上IP数据报的首部发送出去。
(二)ICMP分类
ICMP分为ICMP差错报告报文和ICMP询问报文。
ICMP差错报告报文分为四种:终点不可达;时间超过;参数问题;改变路由(重定向)。
例如tracert命令,它用于确定IP数据包访问目标所采取的路径,使用了时间超过和终点不可达报文。
常用的ICMP询问报文有两种:回送请求和回答;时间戳请求和回答。
例如分组网间探测ping命令,就使用了ICMP差错报告报文的回送请求和回答。
六、ARP、RARP
(一)ARP和RARP的定义
ARP称为地址解析协议,用于从网络层使用的IP地址解析出数据链路层使用的硬件地址,也就是将32位的IP地址解析成48位的MAC地址。
因为IP协议中使用了ARP协议,所以可以归于网络层,但也可以将其归于数据链路层,ARP报文封装在以太网MAC帧中进行发送。
RARP则是反向地址解析协议,目前的DHCP协议已包含了RARP的功能。
ARP的请求过程如下:
1、发出ARP请求分组:首先以广播方式发出,即对所有主机都发出请求的方式来发出ARP请求分组,该分组由主机本身的IP地址、MAC地址以及需要解析的IP地址三个部分组成。
2、ARP响应:所有主机都能收到ARP请求分组,但只有与请求解析的IP地址一致的主机予以响应,并以单播方式向ARP请求分组发送ARP响应分组,该分组由响应方的IP地址和响应方的MAC地址组成。
3、主机写高速缓存:
每一台主机都有一个ARP高速缓存,其中由本局域网上的各主机和路由器的IP地址到硬件地址的映射表。
发送主机收到响应分组后,将IP地址和MAC地址的映射写入ARP高速缓存,由于每个映射都设置了一定的生存时间,大于该时间段的会被删除。
(二)ARP病毒
ARP病毒利用ARP协议的漏洞进行传播的一类病毒的总称,它通过感染主机然后向网络发送大量虚假的ARP报文,其中目的IP地址为网关IP地址,目的MAC地址为感染木马的主机MAC地址。另外,ARP病毒会在局域网中产生大量的广播包,从而造成广播风暴。
解决ARP病毒和发现ARP病毒的方法有:
接入交换机绑定固定的MAC地址;查看接入交换机的端口异常(即一个端口短时间出现多个MAC地址);安装ARP防火墙;发现主机ARP缓存中的MAC地址不正确时可以执行 arp -d 命令来清除ARP缓存;主机使用 arp -s 网关IP地址/网关MAC地址 命令来设置静态绑定。
七、关于网络层的相关计算题
可看之前的文章,里面有IP地址和子网划分等等的计算求解:(*长期更新)软考网络工程师学习笔记——数据链路层与网络层的相关计算题