Linux日常——ARP
来源:互联网 发布:英雄无敌3 10.13 mac 编辑:程序博客网 时间:2024/05/18 03:18
地址解析协议,即ARP(Address Resolution Protocol)
是根据IP地址获取物理地址的一个TCP/IP协议。
主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
通俗的说:
在⽹络通讯时,源主机的应⽤程序知道⽬的主机的IP地址和端⼜号,却不知道⽬的主机的硬 件地址,⽽数据包⾸先是被⽹卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址 与本机不符,则直接丢弃。因此在通讯前必须获得⽬的主机的硬件地址。ARP协议就起到这 个作⽤。
地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。
ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。
源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求 ⼴播到本地⽹段(以太⽹帧⾸部的硬件地址填FF:FF:FF:FF:FF:FF表⽰⼴播),⽬的主机接收到 ⼴播的ARP请求,发现其中的IP地址与本机相符,则发送⼀个ARP应答数据包给源主机,将⾃ ⼰的硬件地址填写在应答包中。 每台主机都维护⼀个ARP缓存表,可以⽤arp -a命令查看。缓存表中的表项有过期时间(⼀ 般为20分钟),如果20分钟内没有再次使⽤某个表项,则该表项失效,下次还要发ARP请求来获得 ⽬的主机的硬件地址。
ARP数据报的格式如下所:
下面是 ARP脚本抓取主机MAC地址:
#!/bin/bashindex=1num=0while [ $index -le 254 ]do if [ $sum -eq 20 ] then sleep 1 hum=0 countinue fi ping -c 1 "196.168.**.$index" & let index++ let num++done
- Linux日常——ARP
- Linux日常——端口
- Linux网络基础——ARP协议
- Linux日常——find指令、黏滞位
- Linux日常——进程状态
- Linux日常——信号(signal)
- Linux日常——CRC校验
- Linux日常——路由算法调研
- Linux日常——shell彩色进度条
- ARP 应用——ARP代理
- LINUX arp
- Linux arp --操作ARP缓存
- Linux日常管理和维护——软件管理
- Linux日常——信号(2)之阻塞信号
- Linux日常——进程组、作业、会话
- Linux日常——shell脚本中 “`”、“$()”、eval 的区别
- 日常Linux
- linux日常
- CodeForces
- 优先队列之二项队列(JAVA实现)
- boostrap表单验证
- 解决mac上Intelij idea启动速度慢,Debug卡死的问题
- TEXT函数
- Linux日常——ARP
- CRC校验
- POJ 2127 Greatest Common Increasing Subsequence 笔记
- 如何在ubuntu下使用opencv
- 循环冗余检验CRC
- java自学路线图(超全超详细)
- MATLAB读取wav文件
- 根文件系统
- 分支限界法