发布时间: 2017-10-28 22:47:54
1、概述
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。
2、ARP的工作过程:
1) 当主机x和主机y在同一个网段中时:
首先主机x会查找自己的ARP缓存表,而这个表在windows系统中是使用ARP –A命令来进行查看的,如果存在主机y的ip地址与MAC地址之间的映射,那么可以直接使用这个关系中MAC地址对ip数据包进行封装。
如果在缓存表中没有找到这个关系,那么主机x以广播的方式发送一个ARP的请求报文,使得本网络中的每一个主机都能收到这个报文, 这个ARP报文中,包含主机x的源ip地址和源MAC地址,以及目的ip地址,目的MAC地址中内容是全为f的广播地址。
主机y收到这样的报文后,将主机x发送的ARP的x的ip和MAC的对应关系存入自己的缓存中,同样将构造一个相应的ARP报文,将自己的MAC地址放到报文中,单播会主机x。
主机x收到这个相应报文后,将自己的缓存表中添加主机y的MAC地址与ip地址的对应关系,然后进行数据发送。
2)当主机x和主机y不在同一个网段中时:
如果主机x不知道网关的MAC地址,(也就是说在主机x的缓存表中没有网关的MAC地址映射)那么主机x先构造一个ARP的广播的请求报文,请求网关的MAC地址,进而获得网关的MAC与ip的对应关系。
如果主机x的缓存中已经有了网关的MAC地址与ip地址之间的关系了,那么将主机x发给主机y的ARP报文中的目的MAC地址的位置填写网关的MAC地址,发给网关。
如果在网关的ARP缓存表中有y的MAC地址,则网关直接将来自主机x的报文中的目的MAC地址字段填写主机y的MAC地址直接发给主机y。
如果在网关的缓存中不存在主机y的MAC地址,那么网关继续以广播的方式发送一个ARP的请求报文,请求主机y的MAC地址,然后,主机y相应单播回自己的MAC地址,其他主机不响应,这里的过程就是相同的网段中的ARP的建立的过程了。
通过以上两种方式,就建立起了ARP的解析的过程。
上一篇: {H5}混合开发之ionic快速开始