数据链路层
1.负责相邻设备之间的传输,决定性因素是设备的MAC地址; .
MAC地址: 6字节的整数,uint8_ t addr[6] ; MAC地址在每一个机器上都是独一无二的;
以以网协议
目的MAC地址(6字节)+源MAC地址(6字节)+类型(2字节)+数据+CRC校验
类型:标识网络层使用什么协议;
数据:有效载荷
CRC校验:检测数据链路层的数据帧是否出差错;
ARP协议
作用:通过IP地址获取相邻设备的MAC地址
ARP协议的格式:
ARP协议格式=以太网首部+ 28字节ARP请求或者应答首部
以太网首部:
以太网目的地址: ARP请求的目的MAC地址,填充为全1 ,则表示广播地址;
以太网源地址: ARP请求的主机的MAC地址;
帧类型:以太网数据帧类型,表示上层使用什么协议--> ARP协议是介于网络层和数据链路层之间的协议
IP协议: 0x0800
ARP请求或者应答: 0x0806
28字节的请求或者应答
2字节硬件地址类型:定义运行ARP网络的类型--》以太网, 令牌环网(已经被淘汰)
2字节协议类型:表示使用什么协议,ip地址转换MAC地址的;
1字节的硬件地址长度:表示MAC地址的长度
1字节的协议地址程度:表示IP地址的长度
op :标识是ARP请求还是APR应答,表示请求,2表示应答]
发送端以太网地址:发送ARP请求或者应答主机的MAC地址
4字节发送端ip地址:发送ARP请求或者应答主机的IP地址
目的以太网地址:
ARP请求: 0x000000000000 ;
ARP应答:填充的是, ARP请求中的源MAC地址;
目的IP地址:目标主机的IP地址
ARP缓存表
1.每一台机器,会定时的获取相邻设备的MAC地址,时间为20min , 20min也是ARP缓存表的老化时间;2.如果在数据链路层没有在缓存表当中发现相邻设备的MAC地址,则发送ARP请求获取,否则,直接从缓存表当中获取,组织数据链路层的以太网数据帧;
ARP请求是广播发送的,如果是目标主机收到则处理,如果不是目标主机收到,则丢弃。