第四章-网络层
一、网络层几个重要概念
1、网络层提供简单灵活、无连接的、尽最大努力交付的数据报服务。(不实现可靠传输,可靠传输由运输层实现)
2、IP地址:32位的唯一标识符
3、特殊IP地址
4、三级IP地址(将主机号的若干位拿出来划分子网,作为子网号)
也就是网络号+子网号+主机号
5、IDR无分类编址(网络前缀+主机号)
比如:
6、地址掩码(也就是子网掩码,其中1的个数是网络前缀的长度)
不同的地址掩码可以得出相同的网络地址:
如果现在将地址掩码改成255.255.224.0,得到的结果相同
7、CIDR中的特殊地址块
前缀31,可以用于下图所示的路由器之间的点对点
二、IP数据报的格式(基本部分20字节)
(1)版本+首部长度:8位,一般来说是45H ,4表示ipv4,5表示5行,由于是4字节对其(一行4字节),所以首部长度20字节。
首部长度最大是60字节,为什么?首部长度本身占四位,四位最大是1111,也就是15,那么15*4=60字节。
(2)区分服务:8位,一般来说不使用
(3)总长度:首部长度+数据部分长度。16位最大可以表示65535字节。但是数据链路层数据部分在46-1500字节之间,怎么传输?答案是分片。
(4)标识:标识一个数据报,因为需要分片,并且每个数据报的分片不一定按序到达,所以需要标识来区分开。
(5)标志:3位,只有两位起作用。最低位MF(MORE FRAGMENT)。More表示还有分片,MF=1也就是这一片后面还有分片。中间位DF(DONOT FRAGMENT),表示不允许分片。也就是说DF=1的时候不能分片,DF=0才可以分片。
(6)片偏移:在原组中的相对位置,需要除以8.
(7)生存时间:TTL表示在网络中能经过的路由器的跳数。
(8)协议:应该是指出上层使用的是什么协议。比如6表示TCP,17表示UDP
(9)首部检验和:每次经过路由器都要发生改变,很明显,因为TTL一定发生变化,TTL一变化,那么首部就变化。
(10)源地址和目的地址:就是ip地址
(11)可变部分:1-40字节不等,为什么?因为最大是60字节,首部基本部分就有20字节。
三、网际协议IP
网际协议IP是TCP/IP体系中两个最主要的协议之一,与IP协议配套使用的还有四个协议。
注意网关是网络层以上的中继系统
使用转发器、网桥、集线器等等连接起来的主机仍然是一个局域网内。
1、地址解析协议ARP(用于同一个局域网内)
实际上从上图也可以看出来,ARP协议是比较靠下层(数据链路层)的,所
以其解决的问题实际上是找到MAC地址,也就是下一跳的目的mac地址。
(1)ARP缓存,每个主机都有一个ARP缓存,里面由本局域网中各个主机和路由器的IP地址->目的地址的映射。结合交换机的交换表,当然肯定也有一个有效时间。
(2)ARP请求是广播的,因为不知道目标主机的MAC地址,无法封装成帧。但是ARP应答是一对一的,因为已经知道了目标主机的MAC地址。
(2)ARP抓包分析
硬件类型0001表示以太网,协议类型0800表示IP数据报,后面的硬件地址长度6表示数据链路层的MAC地址是6个字节,协议地址长度4表示IP地址是4个字节(32位),操作表示是ARP请求还是ARP应答。然后的源站物理地址就是一个MAC地址。
这里的帧表示的就是一个ARP请求,为什么呢?因为目的MAC地址是0(但是需要注意的是这个0是位于IP数据报内部的,整个MAC帧的首部地址应该是全1,因为广播),指出了目的主机的IP地址是192.168.10.15
下图是一个ARP应答,跟上图的区别就是操作码部分发生了变化,另外就是目的MAC和源MAC地址跟上图相反。
下图是ARP的几种应用场景:
1、逆地址解析协议RARP(淘汰不用)
2、网际控制报文协议ICMP
ICMP是IP层的协议,其作为IP数据报的数据部分。
(1)ICMP个事件
(2)ICMP类型:差错报告报文和询问报文(第二行就跟这个有关)
(3)路由选择RIP
距离向量算法,路由器只能看到相邻路由器,邻居之间交换路由器信息以此
间接得到其它路由器的信息。
只适用于小型网络,一条路径上路由器最大只能有15个,距离16的时候就相当于不可达。
Rip选择的路径是具有最少路由器的那一条路径。
一开始的路由表:
更新之后的路由表:
格式如下:
5、路由选择OSPF
链路状态算法,所有路由器都会得到整个链路的拓扑图。
使用洪泛法,向自治系统中所有的路由器都发送本路由器相邻的路由器。