zoukankan      html  css  js  c++  java
  • ARP协议工作原理实验

    一、实验目的
    验证“在向目的主机发送数据包时会先查询ARP高速缓存,如果ARP高速缓存中已保存了目的主机的MAC地址,不进行ARP查询,使用ARP高速缓存中的MAC地址;如果缓存中没有IP对应的MAC地址,发送ARP请求。”

    二、实验设备
    一台笔记本电脑操作系统为Windows 10,使用VMware Workstation Pro安装虚拟操作系统Ubuntu19.1。虚拟机使用NAT模式与宿主主机连接。安装Wireshark-3.2.7抓包工具和Win10Pcap工具。(NAT模式的网络拓扑图如下图)

    三、实验原理
    Ping命令使用ICMP协议。对目的主机进行Ping的原理:源主机对目的主机发送ICMP请求,接收ICMP应答的过程。
    ARP协议工作原理:如果不知道目的主机IP地址对应的MAC地址,则会广播发送ICMP请求包,目的主机回应ICMP应答包。

    四、实验过程
    以Ubuntu来作为一台计算机,对Ubuntu进行Ping操作来模拟发送数据包。使用Wireshark抓包工具捕获数据包,来判断是否有ARP请求发出。

    五、实验步骤
    1、打开Ubuntu,查看Ubuntu的IP地址及MAC地址(如图1)。

    (图1)
    2、打开Windows 10操作系统的命令提示符(cmd),输入ipconfig /all查看Windows的IP地址和MAC地址(如图2)

    (图2)
    输入arp -a查看ARP高速缓存中的IP地址对应的MAC地址(如图3)。其中192.168.81.254为DHCP服务器,192.168.81.1为宿主机虚拟网卡地址。

    (图3)
    3、打开Wireshark选择Ubuntu所在的网卡适配器,进行抓包。
    4、在Windows 10下的cmd输入命令ping 192.168.81.128(如图4)

    (图4)
    抓得的数据(如图5)抓得的数据包不包含ARP请求包,即在ping操作之前没有进行ARP查询。说明ARP高速缓存中已保存了对方的MAC地址,不进行ARP查询。

    (图5)
    5、在Windows 10下以管理员权限打开cmd输入arp -d *,清空ARP高速缓存中的IP地址于MAC地址的对应关系,在输入arp -a查看ARP高速缓存中的IP地址与MAC地址的对应关系。(如图6)。

    (图6)
    6、再次用Wireshark抓包,同时在Windows 10下ping 192.168.81.128,抓的数据包(如图7)。在四次ICMP请求和应答报文前,有一次ARP请求和应答。说明在高速缓存中没有对方的IP地址对应的MAC地址时,会先发送ARP请求,获得IP地址与MAC地址的对应关系。

    (图7)
    7、再次在cmd中输入arp -a查看ARP缓存中信息(如图8)。

    (图8)
    六、实验结果
    1、ARP高速缓存中存在IP地址和MAC地址的对应关系时,从图5中可以看到在ICMP报文段(ping命令)前没有arp请求和应答(没有ARP数据包)
    2、ARP高速缓存中没有IP地址和MAC地址的对应关系时,从图7中可以看到在ICMP报文段(ping命令)前存在一次arp请求和应答。说明ARP高速缓存中没有目标IP地址与MAC地址的对应关系时会发送ARP请求,查询IP地址与MAC地址的对应关系。
    七、结论
    在发送数据包时会先查询ARP缓存,如果缓存中已保存了对方的MAC地址,不进行ARP查询,使用缓存中的MAC地址;如果缓存中没有IP对应的MAC地址,发送ARP请求。

  • 相关阅读:
    WinDbg调试C#技巧,解决CPU过高、死锁、内存爆满
    Window环境下搭建Git服务器
    Virtual Box虚拟机Ubuntu系统安装及基本配置
    修改VS2017新建类模板文件添加注释
    .net core 使用IIS作为宿主Web服务器,部署常见问题
    Asp.Net进程外Session(状态服务器Session、数据库Session)
    百度地图DEMO-路线导航,测距,标点
    c#文件图片操作
    C#代码安装Windows服务(控制台应用集成Windows服务)
    通过经纬度获取地址信息
  • 原文地址:https://www.cnblogs.com/HanYG/p/13875718.html
Copyright © 2011-2022 走看看