协议篇之以太网ARP协议
- 一、什么是ARP协议?作用是什么?
- 二、ARP请求与ARP应答
- 三、以太网ARP数据报格式
- 四、总结
一、什么是ARP协议?作用是什么?
ARP(Address Resolution Protocol),地址解析协议,是一种TCP/IP协议中的网络层协议,通过发送目标主机IP地址给目标主机来获取目标主机的MAC地址。
二、ARP请求与ARP应答
ARP协议中ARP请求和ARP应答大致过程如下:
Step 1:首先,源主机知道目的主机的IP地址,那么,源主机向主机发送自己的MAC地址和IP地址以及目的主机的MAC地址(FF-FF-FF-FF-FF-FF)和IP地址,告诉目的主机:我知道你的IP地址,我现在把目的主机IP地址发送给你,你能帮我找找这个IP地址对应的MAC地址吗?这个过程称之为ARP请求。
Step 2:然后,目的主机接收到了来自源主机的ARP请求,目的主机根据接收到的目的主机IP地址,找到对应的MAC地址,然后目的主机向源主机发送MAC地址,告诉源主机:好的,已经接收到了你的ARP请求,根据你发送的目的主机IP地址,我找到了目的MAC地址,我现在发送给你。这个过程称之为ARP应答。
Step 3:最后,源主机与目的主机就可以根据源主机的MAC地址(已知的)、源主机的IP地址(已知的)以及目的主机的MAC地址(已知的)和目的主机的IP地址(获得的)建立起通信,进行数据的传输。
三、以太网ARP数据报格式
对于以太网UDP协议,其传输数据时的数据包格式如下,这在上文《协议篇之以太网UDP协议》中讲过。
那么,由于以太网ARP协议属于网络层(IP层),也就是说在进行ARP请求或者是进行ARP应答的过程中,我们发送的ARP请求与ARP应答,只是把原本的网络层(IP层)的数据报格式替换为ARP数据报格式,如下:
在这里,MAC层的数据段就是ARP数据报。ARP数据报中各段含义如下:
- 硬件类型:2Byte,1表示以太网接口;
- 协议类型:2Byte,上层协议的类型,ARP上层协议为IP协议,因此该协议类型为IP协议,其值为0x8000;
- 硬件地址长度:1Byte,MAC地址长度,为0x6;
- 协议地址长度:1Byte,IP地址长度,为0x4;
- 操作码:2Byte,表示该数据报是ARP请求还是ARP应答,1表示ARP请求,0表示ARP应答;
- 源MAC地址:6Byte,源主机的MAC地址,比如:ca-ef-1e-a1-23-45;
- 源IP地址:4Byte,源主机的IP地址,比如:192.168.1.2;
- 目的MAC地址:6Byte,目的主机的MAC地址,在ARP请求时,由于我们暂时不知道目的主机的MAC地址,所以发送的MAC地址设置为48’hff_ff_ff_ff_ff_ff,即广播地址;
- 目的IP地址:4Byte,目的主机的IP地址;
四、总结
那么,关于TCP/IP协议中的ARP协议,可以总结以下几点:
- ARP协议属于网络层协议,不管是ARP请求还是ARP应答,其实就是相当于原本在网络层(IP层)传输的是IP数据报,那么在进行ARP请求或ARP应答时传输的是ARP数据报;
- ARP协议通过广播ARP请求,询问目标节点的MAC地址,目标节点在接收到ARP请求后,向请求方返回一个ARP应答,包含其MAC地址;
好了,以上就是关于ARP协议的一些基础概念和ARP数据报格式的学习笔记,欢迎评论区友好交流批评指正!!!