ARP协议(地址解析协议)

来源:互联网 发布:java线程安全集合类 编辑:程序博客网 时间:2024/05/22 06:04
ARP协议作用
  • 在通讯时,网络数据包首先是被网卡接收到再去向上一层一层处理,如果接收到的数据包的MAC地址与本机不符直接丢弃。因此在通讯之前必须获得目的主机的MAC地址,ARP协议就起到这个作用。

ARP数据报格式

这里写图片描述

  • 帧类型:ARP(0806)
  • 硬件类型:链路层网络类型(以太网)
  • 协议类型:要转换的地址类型,(0x0800位IP地址)
  • 硬件地址长度:MAC地址长度(6)
  • 协议地址长度:IP地址长度(4)
  • op字段:1表示ARP请求;2表示ARP应答

ARP的请求与应答

这里写图片描述


ARP缓存表
  • 用命令 arp -a 查看
  • 有过期时间(一般为20分钟),过期后再使用就要再次发送请求
    (http://www.linuxidc.com/Linux/2012-02/54054.htm)

ARP抓取对应主机MAC地址
#!/bin/bashi=1count=0while [ $i -le 254 ]do    if [$count -gt 20];then        count=0        sleep 2    fi    ping -c1 "192.168.0.$i"&    let i++    let count++done

Linux脚本有3中运行方式,以运行test.sh脚本为例。
  • 输入定向到Shell脚本,具体来讲就是利用输入重定向的机制,让Shell解释器顺次读取每一行脚本命令,进行执行。
    bash > test.sh
  • 类似方法一,只不过它是以脚本文件名为参数的
    bash bash.sh
  • 将脚本文件设置成执行文件,直接在提示符下调用。
    chmod u+x test.sh
    ./test.sh