ARP协议

一、ARP协议

        ARP:地址解析协议。在IP以太网中,当一个上层协议要发包时,有了目的主机的IP地址,ARP协议该目的主机的MAC地址。

        在发包时,首先要封装第三层(网络层)和第二层(数据链路层)的报头,但是协议只知道目的主机的IP地址,不知道其MAC地址。

        在网络通讯中,源主机只知道目的主机的IP地址和端口号,不知道其MAC地址。而数据包首先是被网卡接收到再去处理上层协议。如果接收到的数据包的MAC地址与本机不符,则直接丢掉。因此,在通讯前,必须知道目的主机的MAC地址,ARP协议就起到了这个作用。

        对于以太网,数据链路层是根据48bit的以太网地址来确定目的接口,设备驱动程序从不检查IP数据报中的目的IP地址,ARP为IP地址到MAC地址之间提供映射。ARP只限于局域网。

        1.原理:ARP协议只适用于局域网

         1)在局域网中,网络中传输的实际是”帧“,帧里面带有目的主机的MAC地址

        2)在局域网中,一台主机要和另一台主机通信时,必须要知道目的主机的MAC地址。而目的主机的MAC就是通过ARP协议获得的。所谓”地址解析“就是源主机在发送帧之前将目的主机的IP地址转换为其MAC地址的过程。

        3)ARP协议的功能就是通过目的主机的IP地址查询目的主机的MAC地址。

        2.工作过程

        1)当主机A向本局域网内的主机B发送IP数据包时,主机A先在ARP缓存表中查看是否有B的IP地址。

        2)如果有,就得到主机B的MAC地址,将B的MAC地址写入到数据帧中,通过以太网将数据包发送到目的主机上。

        3)若查不到B的IP地址。主机A自动运行ARP协议

                a)ARP在本地局域网中广播一个ARP请求协议。意思是:我的IP是192.168.1.1,我的MAC是....,我想知道IP为192.168.1.2的MAC地址

                b)在本局域网内所有的主机都运行ARP协议。

                c)主机B在ARP请求包中见到了自己的IP,就向A发送一个ARP应答包,并写入自己的MAC地址。其余的所有的主机都不理睬这个ARP请求包。 ARP请求包是广播         的,但是ARP应答包是单播的。

                d)主机A收到ARP应答包后,将主机B的IP和MAC地址写入到ARP缓存表中。           

        3.帧格式

 ARP/RARP帧格式

        以太网地址:目的主机的MAC地址。全为1的MAC地址是广播地址

        以太网源地址:源主机的MAC地址

        帧类型:对于ARP协议,该字段为0x0806,。对于RARP协议,该字段为0x8035

        硬件类型:表示MAC的类型,值为1表示以太网地址。也就是说ARP还支持别的链路层协议

        协议类型:表示要映射的协议类型。值为0x0800表示IP协议

        硬件地址长度:与硬件类型对应的硬件地址长度,以字节为单位,若是以太网,则为6字节,MAC地址

        协议地址长度:与协议类型对应的协议地址长度。以字节为单位,若是IP协议,则为4字节。

       op:操作类型。1:ARP请求,2:ARP应答,3:RARP请求,4:RARP应答

        发送端以太网地址:如果是以太网,则是源主机的以太网源地址

        发送端IP地址:若是IP协议,则为源主机的IP地址

        目的以太网地址:若是以太网,则为目的端的以太网地址

        目的IP地址:目的端的IP地址

ARP请求包是广播的,但是ARP应答包是单薄的。

         4.ARP命令

         用 arp -a 可查看arp的缓存表

        用 arp -d 可删除

        用 arp -s ip mac 可向arp表中添加

        5.特殊情况

        ARP是解决同一个局域网中的主机或者路由器的IP与MAC的映射问题。若目标设备和源主机不在同一个局域网中

        1)主机A无法解析出主机B的MAC地址

        2)此时主机A需要将路由器R1的地址解析出来,将IP数据包发送给R1

        3)路由器R1找出下一跳R2,同时使用ARP协议解析出R2的MAC地址。于是将数据包按照R2的MAC地址转发给R2。

        4)路由器R2使用同样的方法,获取B的MAC地址,最终将数据包转发给B。

        6.ARP其它方面

                a)ARP欺骗

                b)IP冲突



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值