做了那么久网络都没有很好的总结下arp使用。真的不应该,并且发现自己对这个协议还真的不太熟悉。正好今天遇到一个问题,虽然问题没有解决但是也将arp协议重新的熟悉了一遍。
今天遇到的问题:
QCA 4004模块在做ota升级的时候,发现数据网络不通。这可把我搞晕了,因为之前是验证ok的。真正原因是什么呢?
模型如下:
PC1 和 PC2 使用TFTP的客户端和服务器是可以正常工作的,这个确定了TFTP server是可用的。但是现在QCA 4004做TFTP client时,发现总是timeout。这个是什么原因,只能通过抓包,发现没有tftp报文。难道是网络没有通,因为地址已经取到了。因此在PC1 ping QCA4004,可以通,那么肯定可以确定链路肯定是通的。经过wireshark过滤网口的数据包,发现。没有tftp报文,这时候我过滤出arp。发现PC1 收到了QCA4004的arp request。但是PC1并没有回复respone。导致链路不通。这个应该是tftp不能通的原因。
说了那么久没有到重点,接下来我们分析下arp报文。
arp 格式:
问题:有了IP为什么还需要MAC?
在以太网环境中数据的传输所依懒的是MAC地址而非IP地址。
在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
因此在进行通讯前,我们必须要知道对方的mac地址。这必须要使用arp协议了。