链路层
负责相邻设备之间的的数据传输
以太网协议-----eth协议:
协议格式
48位源端-对端mac地址:哟用于识别指定相邻的设备
mac地址:uint8_t mac[6]-----网卡的物理硬件地址,出厂时就设置好了
16位上层协议类型:用于数据分用时,上层协议的选择
32位CRC:即数据帧尾,内含校验和,进行差错校验等操作
ARP协议
ARP协议:介于网络层与链路层之间的协议,通过IP地址获取MAC地址
协议格式
注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况 是多余的,但如果链路层是其它类型的网络则有可能是必要的。
硬件类型指链路层网络类型,1为以太网;
协议类型指要转换的地址类型,0x0800为IP地址;
硬件地址长度对于以太网地址为6字节;
协议地址长度对于和IP地址为4字节;
op字段为1表示ARP请求,op字段为2表示ARP应答。
ARP请求通过IP地址获取MAC地址的流程:
在局域网中广播ARP请求(包含信息:smac+sip+0+dip) ,相邻设备收到ARP请求后,检测目的IP地址是否与自己符合,不符合则是直接丢弃,符合则组织ARP应答:将自己的MAC地址填充进行应答。
两端的mac–ip映射关系会保存一段时间(一般是20–30分钟)