ARP地址解析协议的一些基本概念

ARP地址解析协议在网络通信中占据着十分重要的地位。当编写两个ip之间进行通信的程序时,只需要知道两个ip地址就可以让它们进行通信,但是在标准OSI网络模型下,数据链路层,物理层(这两层通称网络接口层)是低于网络层的,简单来说,到了这两层它其实是不认识什么IP地址的,它们之间的通信其实是通过mac地址(也就是常说的物理地址或者硬件地址)实现的。

ARP地址解析协议有什么作用呢?和它的翻译一样,它的作用就是地址解析,只不过这个地址解析是将IP地址解析成MAC地址。

ARP地址解析协议在网络通信中的原理是怎样的呢?这里我们假设A,B两台主机处于同一网段下,A知道B的IP地址,A想和它通信,但是不知道B的MAC地址,在链路层上的通信就无法实现,于是A就要想办法得到B的MAC地址。A构建一个ARP数据包,这个ARP数据包包括A的IP地址,MAC地址还有B的IP地址,以及一些参数,这里可能以后会讨论到。然后A将这个数据包广播到该网段下,当B接收到了这个ARP包时,会填上自己的MAC地址,并且将源IP,MAC地址和目的IP,MAC地址相互调换一下,也就是自己成为了发送方,并修改ARP数据包的操作字段(表达这个数据包是ARP应答数据包,之前那个不带B的MAC地址的是ARP请求数据包,操作字段在作为ARP请求数据包时为1,作为应答包时为2,作为RARP请求包时为3,作为RARP应答包时为4),并且以单播的方式发送给A,在做这些操作的同时,B也会记录下A的IP地址和MAC地址,这样,双方都知道了对方的IP地址和MAC地址,自然也就能进行通信了。

这就是ARP数据包的格式

帧类型表示后面数据的类型。对于ARP请求或者应答来说,该字段的值为0x0806。

硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。通常为6和4(ipv4)。


猜你喜欢

转载自blog.csdn.net/fengzhantian/article/details/80503052