拓扑图

配置

路由器R2:
GigabitEthernet 0/0/0 IP Address: 192.168.1.1 Subnet Mask: 255.255.255.0
Serial 0/1/0 IP Address: 192.168.1.2 Subnet Mask: 255.255.255.0

PC0:
IP Address: 192.168.1.2 Subnet Mask: 255.255.255.0

PC1:
IP Address: 192.168.1.3 Subnet Mask: 255.255.255.0


终端设备IP配置方法

例如,点击PC0 -> Desktop -> IP Configuration,填写IP Address,子网掩码自动设置,Default Gateway默认网关我们写上路由器的IP地址192.168.1.1,后面会用到

仿真测试

把软件右下角的 RealTime 模式点击切换为 Simulation 仿真模式,点击上边的Edit Filters按钮,打开过滤器选择,把除了 ARPICMP 的其他都取消勾选,目的是为了让我们更方便能看到ARP协议的过程。然后打开PC0页面,PC0 -> Desktop -> Command prompt,打开命令行,跟Windows Dos一模一样的界面,然后尝试输入ping 192.168.1.1,发现右边的Even List中出现两个待发送的包,分别是ICMP包和ARP包

然后点击右边类似播放器快进的"下一步"按钮,会发现ARP包发送到交换机,再点击一次,包则被交换机分发到子网下所有设备,继续向前,路由器接到包后发送一个返回包,应答自己就是192.168.1.1设备,而PC1则将包丢弃,因为它的IP地址不是PC0要请求的地址。最后PC1再将ICMP包发往路由器。


在我们将剩余包全部通过后,再次重新执行这个过程,会发现PC1不再像之前一样发送ARP包,而是直接将ICMP包发送到路由器,这是因为:ARP地址解析协议中。在对本地网络上的IP地址(例如192.168.1.1)执行ping操作时,会将IP地址192.168.1.1转换为MAC地址。因为计算机间的通信底层中实际是通过物理地址进行通信。另外,系统会保留一个ARP缓存表,在其中存储有IP地址与MAC地址相关联的信息。尝试将数据包发送到IP地址时,系统将首先查阅此表以查看其是否已经知道MAC地址。如果缓存了一个值,则不使用ARP。


所以,在一次ping时,PC1在ARP表中找不到IP地址,于是使用ARP协议向网络发送广播数据包,询问 "谁是192.168.1.1"。而且我们在第一次仿真时,点击拓扑图中出现的ARP包,再点击Outbound PDU Details,则可以看到待发ARP包的数据信息,发现其中的DEST ADDRFFFF.FFFF.FFFF,这是因为,广播数据包必须发送到一个特殊的MAC地址,而该地址会使网络上的所有计算机都可以接收它,这个地址正是FFFF.FFFF.FFFF而IP地址符合要求的任何计算机都将使用ARP数据包进行应答,应答的数据包中包含 “我是192.168.1.1” 信息和自己的能用于接收数据包的MAC地址信息,同时自己也将请求方的Ip地址和mac地址存入ARP缓存表


拓扑图中待发数据包

ARP包头部数据

查看和删除ARP缓存表

在完成第一次ping命令后,在PC1命令行中,输入arp -a,可查看到路由器的ip地址对应的mac地址已经缓存到表中了,然后输入arp -d,这条命令会删除所有缓存,再重新查找,发现缓存表已经为空,这时候重新ping,会发现PC1又将重新发送广播ARP数据包。

CCNA 学习记录(三)通过仿真理解ARP协议的更多相关文章

  1. JavaScript学习记录三

    title: JavaScript学习记录三 toc: true date: 2018-09-14 23:51:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  2. 3.VUE前端框架学习记录三:Vue组件化编码1

    VUE前端框架学习记录三:Vue组件化编码1文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...

  3. leveldb 学习记录(三) MemTable 与 Immutable Memtable

    前文: leveldb 学习记录(一) skiplist leveldb 学习记录(二) Slice 存储格式: leveldb数据在内存中以 Memtable存储(核心结构是skiplist 已介绍 ...

  4. 三分钟网络基础-ARP协议

    什么是 ARP 协议 地址解析协议 ARP (Address Resolution Protocal):在同一局域网下,根据已知道的主机或路由器的 IP 地址,找出其相应的硬件地址. 高速缓存 每一个 ...

  5. Bootstrap 我的学习记录3 导航条理解

    以下理论内容copy自Bootstrap中文网 (一个不错的bootstrap学习网站) 导航条 默认样式的导航条 导航条是在您的应用或网站中作为导航页头的响应式基础组件.它们在移动设备上可以折叠(并 ...

  6. webrtc学习———记录三:mediaStreamTrack

    参考: https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack 转自http://c.tieba.baidu.com/p/3 ...

  7. 下页小希学MVC5+EF6.2 学习记录三

      目的:1 学习mvc+ef 2  写下日记也是对自己的督促 期待已久的EF终于来了. 学完本篇文章,你将会掌握基于EF数据模型的完整开发流程. 本次将会完成EF数据模型的搭建和使用. 基于这个模型 ...

  8. LoadRunner11学习记录三 -- 迭代和并发

    LoadRunner中%d和%s是什么意思? %d 格式化输出短整形数据,TC环境中占用两个字节,输出整数范围为:32768~32767.Visual C++环境中占用四个字节,输出数据范围为:-21 ...

  9. 【java并发编程艺术学习】(五)第二章 java并发机制的底层实现原理 学习记录(三) 原子操作的实现原理学习

    章节介绍 主要包括 术语定义.处理器如何实现原子操作.Java如何实现原子操作: 原子(atomic)本意是 不能再进一步分割的最小粒子,“原子操作” 意为 不可被中断的一个或一系列操作. 术语定义 ...

随机推荐

  1. 巨蟒python全栈开发-第11阶段 ansible_project3

    今日大纲: 1.用户创建 2.前端优化 3.用户编辑 4.用户删除 5.ansible api介绍 1.用户创建 新建一个user_create.html的页面 <form class=&quo ...

  2. ArcGIS下如何提取研究区域

    举个例子,如果我用“按位置选择工具”从shitrt图层中提取普查小区在count6中的部分,并将结果输出为shapefile文件cnty6trt,可以这么做: 就OK了

  3. jquery的操作

    jQuery jQuery介绍 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行 ...

  4. C - League of Leesins-构造

    题意就是给多个三元组(内部没有顺序),让你构造一个序列,使得所有的三元组都是存在的 简单的思考后就会发现一个简单的思路,开头的数一定只出现一次,进而可以找到头或者尾部的第一个三元组,然后我们知道序列最 ...

  5. 模板—插头dp(Ural 1519 Formula 1)

    括号表示法: 据说比下一个要快而且灵活. #include<iostream> #include<cstring> #include<cstdio> #define ...

  6. 「BZOJ3505」[CQOI2014] 数三角形

    「BZOJ3505」[CQOI2014] 数三角形 这道题直接求不好做,考虑容斥,首先选出3个点不考虑是否合法的方案数为$C_{(n+1)*(m+1)}^{3}$,然后减去三点一线的个数就好了.显然不 ...

  7. 在SpringBoot中使用JWT

    JWT简介 简介 JSON Web token简称JWT, 是用于对应用程序上的用户进行身份验证的标记.也就是说, 使用 JWTS 的应用程序不再需要保存有关其用户的 cookie 或其他sessio ...

  8. 为更强大而生的开源关系型数据库来了!阿里云RDS for MySQL 8.0 正式上线!

    2019年5月29日15时,阿里云RDS for MySQL 8.0正式上线,使得阿里云成为紧跟社区步伐,发布MySQL最新版本的云厂商.RDS for MySQL 8.0 产品是阿里云推出的 MyS ...

  9. iptables发布内部网络服务器

    要使因特网上的计算机访问到内部网的FTP服务器.WEB服务器,在做为防火墙的计算机上应添加以下规则: 1. echo 1 > /proc/sys/net/ipv4/ip_forward 2. 发 ...

  10. WPF Converter(转)

    WPF Binding 用于数据有效性校验的关卡是它的 ValidationRules 属性,用于数据类型转换的关卡是它的 Converter 属性.下面是实例: 1. Binding 的数据校验 & ...