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请求。
ARP协议工作原理实验的更多相关文章
- ARP协议工作原理
转载请注明来源:https://www.cnblogs.com/hookjc/ ARP数据包根据接收对象不同,可分为两种: 1. 广播包(Broadcast).广播包目的MAC地址为FF-FF- ...
- TCP/IP协议工作原理简述
TCP/IP协议工作原理简述 // */ // ]]> TCP/IP协议工作原理简述 Table of Contents 1 概要 2 应用层 3 传输层 4 网络层 5 链路层 1 概要 ...
- FTP(文件传输协议)工作原理
目前在网络上,如果你想把文件和其他人共享.最方便的办法莫过于将文件放FTP服务器上,然后其他人通过FTP客户端程序来下载所需要的文件. 1.FTP架构 如同其他的很多通讯协议,FTP通讯协议也采用客户 ...
- http协议工作原理及工作流程
什么是url ? url = 协议 + 域名 + 资源路径 比如: https://www.baidu.com/index.html http : 超文本传输协议 https: 安全套接字协议 HTT ...
- HTTP协议-工作原理及消息结构
HTTP协议 HTTP协议是Hyper Test Transfer Protocol(超文本传输协议)的缩写 适用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传输协 ...
- ARP协议工作流程
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机, ...
- HTTP协议工作原理
HTTP简介 超文本传输协议(HTTP:Hypertext Transport Protocol)是万维网应用层的协议,它通过两个程序实现:一个是客户端程序(各种浏览器),另一个是服务器 ...
- http协议工作原理(转)
WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是Web网页.WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间 ...
- 【FTP】FTP(文件传输协议)工作原理(SFTP)
目前在网络上,如果你想把文件和其他人共享.最方便的办法莫过于将文件放FTP服务器上,然后其他人通过FTP客户端程序来下载所需要的文件. 1.FTP架构 如同其他的很多通讯协议,FTP通讯协议也采用客户 ...
随机推荐
- (opencv10)膨胀和侵蚀(Dilation与Erosion)
(opencv10)膨胀和侵蚀(Dilation与Erosion) 图像形态学操作 图像形态学操作-基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学 形态学有四个基本操作:腐蚀, ...
- 当vue 页面加载数据时显示 加载loading
参考:https://www.jianshu.com/p/104bbb01b222 Vue 页面加载数据之前增加 `loading` 动画 创建组件 1.新建 .vue 文件: src -> c ...
- 【LeetCode】841. 钥匙和房间
841. 钥匙和房间 知识点:图:递归 题目描述 有 N 个房间,开始时你位于 0 号房间.每个房间有不同的号码:0,1,2,...,N-1,并且房间里可能有一些钥匙能使你进入下一个房间. 在形式上, ...
- 大数据学习(03)——HDFS的高可用
高可用架构图 先上一张搜索来的图. 如上图,HDFS的高可用其实就是NameNode的高可用. 上一篇里,SecondaryNameNode是NameNode单节点部署才会有的角色,它只帮助NameN ...
- 桌面小部件AppWidgetProvider简单分析
1.一般桌面小部件涉及到的类 AppWidgetProvider :BroadcastRecevier子类,用于接收更新,删除通知 AppWidgetProvderInfo:AppWidget相关信息 ...
- Python中strip()、lstrip()、rstrip()函数的用法
Python中使用函数strip().lstrip().rstrip()来剔除字符串前后的特定字符 函数语法为:str.strip(chars) 返回值是一个新的字符串,不更改源字符串 其中,参数ch ...
- Python从零开始编写控制程序(一)
Python之从零开始编写控制程序(一) 在此声明:本博客仅供学习参考,任何产生相关违法犯罪行为与本人无关. 另外如果有师傅有好的思路和想法,可以和我一起沟通交流. 最近在一直尝试做Powershel ...
- 一周内被程序员疯转3.2W次,最终被大厂封杀的《字节跳动Android面试手册》!
一眨眼又到金三银四了,不知道各位有没有做好跳槽涨薪的准备了呢? 今天的话大家分享一份最新的<字节跳动Android面试手册>,内容包含Android基础+进阶,Java基础+进阶,数据结构 ...
- 使用脚本下载Gmail邮件附件
以下脚本连接上我的Gmail帐号,将收件箱中2013年1月份的新语丝邮件的附件保存在当前目录的xys文件夹中. import imaplib import email import os dir_na ...
- CodeReview of JDK Source Code
jdk1.6.0_35/src.zip, only java package is reviewd(full package review caused a OutofMemory on java h ...