安全测试】arp协议的工作原理?

2020-06-15 11:43发布

2条回答
网络安全-郭家乐
2楼 · 2020-06-15 14:52

每台主机都会在自己的ARP缓冲区中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。
当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址。
如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。
此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。
如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中。
如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址。
源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。
如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。

乐xenia
3楼 · 2020-08-26 15:04

ARP数据包根据接收对象不同,可分为两种:
    1. 广播包(Broadcast)。广播包目的MAC地址为FF-FF-FF-FF-FF-FF,交换机设备接收到广播包后,会把它转发给局域网内的所有主机。
    2. 非广播包(Non-Broadcast)。非广播包后只有指定的主机才能接收到。

   ARP数据包根据功能不同,也可以分为两种:
    1. ARP请求包(ARP Request)。ARP请求包的作用是用于获取局域网内某IP对应的MAC地址。
    2. ARP回复包(ARP Reply)。ARP回复包的作用是告知别的主机,本机的IP地址和MAC是什么。

    广播的一般都是ARP请求包,非广播的一般都是ARP回复包。

    假设局域网内有以下两台主机,主机名、IP地址、MAC地址分别如下:
        主机名   IP地址          MAC地址
        A        192.168.0.1     AA-AA-AA-AA-AA-AA
        B        192.168.0.2     BB-BB-BB-BB-BB-BB

    当主机A需要与主机B进行通讯时,它会先查一下本机的ARP缓存中,有没有主机B的MAC地址。如果有就可以直接通讯。如果没有,主机A就需要通过ARP协议来获取主机B的MAC地址,具体做法相当于主机A向局域网内所有主机喊一嗓子:“喂~谁是192.168.0.2?我是192.168.0.1,我的MAC地址是AA-AA-AA-AA-AA-AA
。你的MAC地址是什么,快告诉我”,这时候主机A发的数据包类型为:广播-请求。

    当主机B接收到来自主机A的“ARP广播-请求”数据包后,它会先把主机A的IP地址和MAC地址对应关系保存/更新到本机的ARP缓存表中,然后它会给主机A发送一个“ARP非广播-回复”数据包,其作用相当于告诉主机A:“嘿,我是192.168.0.2,我的MAC地址是BB-BB-BB-BB-BB-BB”。当主机A接收到主机B的回复后,它会把主机B的IP地址和MAC地址对应关系保存/更新到本机的ARP缓存表中,之后主机A和B就可以进行通讯了。

    从上述局域网主机通讯过程可以看出,主机在两种情况下会保存、更新本机的ARP缓存表,
    1. 接收到“ARP广播-请求”包时
    2. 接收到“ARP非广播-回复”包时


相关问题推荐

  • 回答 2

    某网站的登录功能,用户登录页面需要填写用户名和密码,假设如果其中一个用户名和密码是admin和123456,当用户输入在相应的表单中输入正确的用户名和密码之后,此应用的相应函数执行一定的验证(验证用户名和密码是否匹配),服务器执行SQL语句(表名是user)...

  • 回答 2

    AWVS的主要功能模块Blind SQL Injector:盲注工具HTTP Editor:http协议数据包编辑器WebScanner:Web安全漏洞扫描(核心功能)Site Crawler:遍历站点目录结构(爬虫功能)HTTP Sniffer:HTTP协议嗅探器HTTP Fuzzer:模糊测试工具Authentication Tester:Web...

  • 回答 2

    1、创建新的扫描2、选择常规扫描3、选择appsacn4、填写目标的URL5、进行登录,点击记录,选择AppScan IE浏览器6、填写登录账号和密码,然后进行登录,登录成功后,点击我已登陆站点7、等待系统记录信息完成后,如果成功会显示已成功配置登录8、测试策略选择缺...

  • 回答 3

    按照阶段划分白盒测试,灰盒测试,黑盒测试按照测试执行方式手工测试,自动化测试按照对象分app测试,游戏测试,等按照目的分功能测试,性能测试,安全测试,稳定性测试,易用性测试,可移植性测试等还有单元测试 集成测试 系统测试...

  • 回答 5

    安全测试一直是测试中的必须要关注的点,但也一直是行业中的一个难点,因为需要考虑的事情太多了,我个人没有专业做过安全测试,但是可以提出国际标准MASVS中的一些关注点,mavsv将安全一共分为了三个级别,分别是L1:标准安全等级  L2:纵深防御   L3:抵...

  • 回答 5
    已采纳

    目前主要安全测试方法有:①静态的代码安全测试:主要通过对源代码进行安全扫描,根据程序中数据流、控制流、语义等信息与其特有软件安全规则库进行匹对,从中找出代码中潜在的安全漏洞。静态的源代码安全测试是非常有用的方法,它可以在编码阶段找出所有可能...

  • 回答 4
    已采纳

    测试工具1、nessus 环境扫描2、acuneitx web网络扫描3、Dependency-Check依赖库扫描4、BurpSuite 抓包校验

  • 回答 8

    网络安全测评是对网络中网络结构、功能配置、自身防护等方面的测评和分析,发现网络中可能存在的安全功能缺陷、配置不安全等方面的问题。网络安全测评主要测评内容包括网络结构安全、网络访问控制、网络安全审计、边界完整性检查、网络入侵防范、恶意代码防范...

  • 回答 3

    一、什么是sql注入呢?        所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单...

  • 回答 4

    cookie测试对于会话cookie,要测试其在不退出web系统的情况下起作用,同时也要测试退出web系统后不起作用,即重新登录时没有上次操作的痕迹。对于持久cookie,要测试其在退出web系统后仍然起作用,即重新登录时保留上次操作的痕迹。对于持久cookie,还要进行c...

  • 回答 1

    搞Web开发离不开安全这个话题,确保网站或者网页应用的安全性,是每个开发人员都应该了解的事。本篇主要简单介绍在Web领域几种常见的攻击手段及Java Web中的预防方式。XSS ,SQL注入,DDOS,CSRF...

  • 回答 1

    一种路由选择协议,用于传递路由表信息。路由表是用来决定数据流量的转发路径。同时还会计算出多条去往相同路径中的最短路径。就好比去一个陌生的城市去旅游,在某个起点(路由器A),你想要去往某个景点X,这时候有2个人,一个导游(路由器B),一个路人(路...

  • 回答 1

  • 回答 1

    TCP是字节流传输协议,发送消息前的三次握手,发送过程中的顺序编号,确认应答(ACK)机制,开启时钟计时,客户端超时重传,服务端的差错检测(检验和)等。

  • 回答 2

    uri和url的定义略)区别就是uri定义资源。url就不用说了,还定义了如何找到这个资源;网页的绝对地址(absolutepath)就是uri,到一个文件夹/。比如说,一个服务器上,而url不单定义这个资源...

没有解决我的问题,去提问