ARP、DHCP
以太网数据帧学习:以太网帧-两种格式
插上网线发生了什么:先通过DHCP获取IP地址,然后在发数据时通过ARP请求与响应获取目的MAC地址。
1. ARP协议
ARP协议与抓包:ping演示抓包
ARP报文详解:报文解析
怎么处理ARP数据帧:
ARP协议是通过报文进行工作的,是一个独立的三层协议,所以ARP报文在向数据链路层传输时不需要经过IP协议的封装,而是直接生成自己的报文,其中包括ARP报头,到数据链路层后再由对应的数据链路层协议(如以太网协议)进行封装。
2. DHCP协议
DHCP原理学习:DHCP
DHCP属于应用层,基于UDP
DHCP抓包分析:抓包参考
3. 四层模型
从UDP-IP-ETH-PHY
3.1 对于UDP的报文格式:
校验和计算方法:计算方法
包含接收方的校验和验证:IP头和UDP
另外TCP的报文如下:
各个字段的含义:tcp头部说明
3.2 IP数据报格式
参考:layout
校验和计算方法:只计算头部的校验和 参考方法
3.3 以太网帧结构
以太网数据帧学习:以太网帧-两种格式
arp报文
报文结构:参考博客
字段1:ARP请求的目的以太网地址,全1时,代表广播地址。
字段2:发送ARP请求的以太网地址。
字段3:以太网帧类型表示后面的数据类型,ARP请求和ARP应答此字段为:0x0806。
字段4:硬件地址类型,硬件地址不止以太网一种,是以太网类型时,值为1。
字段5:表示要映射的协议地址的类型,要对IPv4地址进行映射,此值为0x0800。
字段6和7:表示硬件地址长度和协议地址长度,MAC地址占6字节,IP地址占4字节。
字段8:是操作类型字段,值为1,表示进行ARP请求;值为2,表示进行ARP应答;值为3,表示进行RARP请求;值为4,表示进行RARP应答。
字段9:是发送端ARP请求或应答的硬件地址,这里是以太网地址,和字段2相同。
字段10:是发送ARP请求或应答的IP地址。
字段11和12:是目的端的硬件地址和IP地址。
RARP(Reverse Address Resolution Protocol)是一个用于将硬件地址(MAC地址)映射到IP地址的网络协议。RARP的应用场景主要在局域网环境中,以下是一些常见的应用场景:
-
磁盘less工作站引导: 在某些情况下,磁盘less工作站(Diskless Workstation)可能需要获取其IP地址。这时,磁盘less工作站可以使用RARP协议请求网络中的RARP服务器,以获取自己的IP地址,然后才能启动并连接到网络。
-
网络引导: 一些计算机在启动时需要知道其IP地址,特别是在没有配置文件或本地存储的情况下。通过使用RARP,这些计算机可以通过其MAC地址动态地获取其IP地址,从而能够成功引导并加入网络。
-
无人值守安装: 在一些自动化的网络安装场景中,RARP可以用于为新安装的设备分配IP地址。这对于大规模部署和系统自动化是非常有用的,因为设备可以在启动时自动获取其IP地址,而无需手动配置。
需要注意的是,随着时间的推移,RARP逐渐被DHCP(Dynamic Host Configuration Protocol)取代,因为DHCP提供了更加灵活和功能丰富的IP地址分配服务。DHCP不仅可以提供IP地址,还可以分配其他网络配置参数,如子网掩码、网关和DNS服务器等。因此,在现代网络中,RARP的应用逐渐减少。
icmp报文
更详细的说明:参考博文