ARP协议

来源:互联网 发布:保健品网络推广怎么做 编辑:程序博客网 时间:2024/06/04 06:05

一、理解ARP协议
1、ARP协议的基本概念
(1)ARP协议就是地址解析协议;
(2)ARP协议是网络层的协议;
(3)ARP协议的用途是从网络层的IP地址解析出在数据链路层的硬件地址;
(4)每台主机都有一个ARP高速缓冲区,该缓冲区中存放了本局域网上各主机和路由器的IP地址到硬件地址的映射表。注意:该映射表经常动态更新。
2、ARP协议的格式
(1)格式如下图
这里写图片描述
说明:
(1)如果是ARP请求,则以太网目的地址的48个字节为全1,表示广播地址;如果是ARP应答,则以太网的目的地址为发送ARP请求的主机的硬件地址;
(2)哪台主机发送ARP请求/应答,就填哪台主机的硬件地址;
(3)帧类型填0x0806表示ARP帧;
(4)硬件类型填0X0001表示以太网;
(5)协议类型填0x0800表示IP协议;
(6)硬件地址长度为6;
(7)协议地址(IP协议)为4;
(8)op为0x0001表示ARP请求,op为0x0002表示ARP应答;
(9)发送端以太网地址表示发送ARP请求的主机的硬件地址;
(10)发送端IP地址表示发送ARP请求的主机的IP地址;
(11)目的以太网地址表示目的主机的硬件地址;
(12)目的IP地址表示目的主机的IP地址;
3、举例说明
场景一:主机A要向本局域网上的主机B发送IP数据报,主机A知道主机B的IP地址,目的是获得B主机的硬件地址。
步骤
前提:主机A先在其ARP高速缓存中查看有无B主机的IP地址;
情况一:如果找到了B主机的IP地址,就在自己的ARP高速缓存中查出B主机的硬件地址;

情况二:如果A主机没有在自己的ARP高速缓存区中查到B主机的IP地址,主机A就自动运行自己的ARP进程,然后按照以下步骤找出B主机的硬件地址
(1)主机A的ARP进程在本局域网上广播发送一个ARP请求,该请求的主要内容是:我的IP地址是192.168.0.55,硬件地址是00-05-5d-61-58-a8,我想知道IP地址为192.168.0.2的主机的硬件地址;
ARP请求格式如下:
这里写图片描述
(2)在本局域网上的所有主机运行的ARP进程都会接收到主机A的ARP请求,然后所有的主机都会将自己的IP地址与ARP请求中的IP地址对照,如果相同则接收这条ARP请求,否则不予理睬;
(3)主机 B的IP地址与ARP请求中的IP地址一致,就收下这条ARP请求,并向主机A发送ARP应答,该应答的主要内容是:我的IP地址是192.168.0.2,我的硬件地址是00-05-5d-a1-b8-40;
(4)主机A接收到主机B的ARP应答,就在其ARP高速缓存中写入主机B的IP地到硬件地址的映射。

主机A获得了主机B的硬件地址之后就将查到的B主机的硬件地址写入MAC帧,通过局域网将该MAC帧发给B主机;
4、几点注意事项
(1)当主机B接收到主机A的请求时,就将主机A的地址映射写到自己的ARP告诉缓存中,以后主机B向主机A发送数据报就很方便了;
(2)ARP高速缓存区总的每个映射地址都有生存时间,凡是超过生存时间的映射地址就会被删掉;
(3)ARP是解决同一局域网内的主机或者路由器的IP地址和硬件地址的映射问题的;
(4)从IP协议到硬件地址的解析是自动的,主机的用户对这种解析的过程是不知道的。
二、ARP脚本
介绍几个常用的命令
1、ifconfig命令
这里写图片描述
说明:
(1)eth0表示第一块网卡;
(2)Etherent表示连接的是以太网;
(3)HWadder:表示网卡的物理地址(MAC地址);
(4)inet addr:表示网卡的IP地址;
(5)Bcast:表示广播地址;
(6)Mask:表示掩码地址;
(7)第三行:UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节

(8)第四、五行:接收、发送数据包情况统计

(9)第七行:接收、发送数据字节数统计信息;
(10)lo 是表示主机的回环地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。
2、ping命令
(1)功能:Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性。
(2)命令格式:ping [参数] [主机名或IP地址]
(3)参考文章PING命令
3、arp -a 命令
功能:arp -a是用来查看地址解析表的,还有可以查看所有连接了我的计算机,显示对方IP和MAC地址
编写一个ARP脚本抓取对应主机硬件地址(MAC地址)
代码如下:
这里写图片描述
通过arp -a命令可以查看和当前设备有连接的所有IP地址和对应的MAC地址,可以发现有两个设备连接。
这里写图片描述

原创粉丝点击