网络层
网络层概述
网络层位于OSI模型的第三层,它定义网络设备的逻辑地址,也就是我们说的IP地址,能够在不同的网段之间选择最佳数据转发路径。在网络层中有许多协议,其中主要的协议是IP协议。
IP数据包格式
IP数据报是可变长度的,它由两部分组成:首部和数据
- 首部由两部分组成:固定部分和可变部分
- 固定部分20字节,可变部分由一些选项组成,最长40字节
版本号:表示IP协议的版本是ipv4 还是ipv6
首部长度:表示IP报头的多大,固定长度:20字节+可选项最多40字节
优先级与服务类型:表示是否有需要优先发送的报文
总长度:表示IP报头+数据的总大小
- IP数据包最大长度为 65536 字节(2^16次方)
- 由于MTU(最大传输单元)的限制,长度超过1500字节的数据报都将被分片传输
标识符 :IP数据报的编号,标识主机发送的每一个数据报,同一个数据报的所有分片都具有相同的标识值
标志:表示数据是否进行了分片
段偏移量:表示该IP包在该组分片包中的位置TTL: time to live 生存时间
- 每个数据报发出去时,会添加一个生存时间
- 数据包每经过一台路由器,TTL值会减1,当TTL为0时,数据包被丢弃
- TTL可以防止数据包陷入路由死循环,预防路由环路,避免数据包在网络中无限循环浪费带宽资源
协议号:表示IP协议上层所使用的协议
协议号 协议名称
1 ICMP
6 TCP
17 UDP
首部校验和:用来做IP头部的正确性检测,但不包含数据部分
源IP地址 :表示发送这个数据包的设备的IP地址
目标IP地址:表示接收这个数据包的设备的IP地址
特别说明:数据每经过一台路由器,TTL值就会减1 TTL的作用:预防路由环路
ICMP协议
1、什么是ICMP?
因特网控制报文协议ICMP(Internet Control Message Protocol)是一个差错报告机制,是TCP/IP协议簇中的一个重要子协议,通常被IP层或更高层协议(TCP或UDP)使用,属于网络层协议,主要用于在IP主机和路由器之间传递控制消息,用于报告主机是否可达、路由是否可用等。这些控制消息虽然并不传输用户数据,但是对于收集各种网络信息、诊断和排除各种网络故障以及用户数据的传递具有至关重要的作用。
作用:测试网络联通性。
2、ICMP的典型应用
IP数据报及其他应用程序通过ICMP报文可以实现多种应用,其中Ping程序和Tracert(Traceroute)程序最为常见。
Ping
Ping程序是最常见的用于检测IPv4和IPv6网络设备是否可达的调试手段,它使用ICMP的echo信息来确定:
- 远程设备是否可达;
- 与远程主机通信的来回旅程(round-trip)的延迟;
- 报文包的丢失情况。
Tracert
Tracert程序主要用于查看数据包从源端到目的端的路径信息,从而检查网络连接是否可用。当网络出现故障时,用户可以使用该命令定位故障点。
Tracert利用ICMP超时信息和目的不可达信息来确定从一个主机到网络上其他主机的路由,并显示IP网络中每一跳的延迟(这里的延迟是指:分组从信息源发送到目的地所需的时间,延迟也分为许多的种类——传播延迟、传输延迟、处理延迟、排队延迟等)。
3、ICMP 消息提示
以下是几种常见的ping反馈结果:
Reply from 目标地址——表示连接建立成功
Destination host unreachable——表示目标主机不可达
此反馈常见原因:
- 同网段中没有这个IP地址
- 跨网段通信时,本主机没有填写网关地址
Request timed out——表示请求时间超时
此反馈常见原因:
- 数据包从主机中发出去了,但是中间传输的网络设备无法找到目标主机
- 数据包从主机中发出去了,传输的网络设备将数据包发送给目标主机了,但是目标主机没有回复,或者目标主机回复的消息,中间的传输设备没能正常转发给源主机
- 对方主机没有填写网关地址
Unknown host——未知主机名
此提示常见原因:
- IP地址是一个不合法的IP地址,或者是一个不存在的主机名
ARP协议
1、ARP协议概述
ARP(Address Resolution Protocol,地址解析协议)是用来将IP地址解析为MAC地址的协议。主机或三层网络设备上会维护一张ARP表,用于存储IP地址和MAC地址的映射关系,一般ARP表项包括动态ARP表项和静态ARP表项。地址解析协议ARP即可实现将IP地址解析为MAC地址。
作用:基于目标IP获取相应目标MAC,完成数据帧的封装,实现数据的快速转发
解析方式:发送arp广播,得到mac地址后,缓存到arp缓存表中
ARP核心工作表
- ARP表,包含的是IP地址与MAC地址的对应关系条目
- ARP条目分为静态和动态两种类型
- 动态ARP条目的存活时间是 1200s (华为的网络设备的arp缓存表的默认老化时间)
- ARP动态条目存活时间是120s(windows系统的arp缓存表的默认老化时间)
数据发送原理
- 任何设备在发送数据包之前,必须检查 ARP 表,查看包含去往目标IP地址时所使用的MAC地址
- 如果ARP表包含目标IP地址对应的条目,则使用目标MAC封装数据
- 如果ARP表不包含对应的ARP条目信息,则发送ARP请求,获得目标MAC
2、ARP有哪些类型?
动态ARP
动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,也可以被静态ARP表项覆盖。
动态ARP适用于拓扑结构复杂、通信实时性要求高的网络。
静态ARP
静态ARP表项是由网络管理员手工建立的IP地址和MAC地址之间固定的映射关系。静态ARP表项不会被老化,不会被动态ARP表项覆盖。
静态ARP表项分为短静态ARP表项和长静态ARP表项。
- 短静态ARP表项:手工建立IP地址和MAC地址之间固定的映射关系,未同时指定VLAN和出接口。
- 长静态ARP表项:手工建立IP地址和MAC地址之间固定的映射关系,并同时指定该ARP表项所在VLAN和出接口。
免费ARP
设备主动使用自己的IP地址作为目的IP地址发送ARP请求,此种方式称免费ARP。
免费ARP有如下作用:
- IP地址冲突检测:当设备接口的协议状态变为Up时,设备主动对外发送免费ARP报文。正常情况下不会收到ARP应答,如果收到,则表明本网络中存在与自身IP地址重复的地址。如果检测到IP地址冲突,设备会周期性的广播发送免费ARP应答报文,直到冲突解除。
- 用于通告一个新的MAC地址:发送方更换了网卡,MAC地址变化了,为了能够在动态ARP表项老化前通告网络中其他设备,发送方可以发送一个免费ARP。
- 在VRRP备份组中用来通告主备发生变换:发生主备变换后,MASTER设备会广播发送一个免费ARP报文来通告发生了主备变换
3、ARP报文格式
ARP报文类型:
- ARP请求报文,源设备以广播的方式发送,向所有设备请求MAC地址
- ARP回应报文,目标设备以单播的方式回应,直接返回给源设备
ARP请求和应答的报文格式如下图所示:
报文的长度是42字节。前14字节的内容表示以太网首部,后28字节的内容表示ARP请求或应答报文的内容。
报文中相关字段的解释如下图所示: