| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 实验三 ARP 协议分析实验 -> 正文阅读 |
|
[网络协议]实验三 ARP 协议分析实验 |
1、ARP 协议分析实验??? 1.ARP 协议介绍 ??? ARP 是地址解析协议(Reverse? Address?? Resolution?? Protocol)的缩写,负责实现从IP 地址到物理地址(如以太网MAC 地址)的映射。在实际通信中,物理网络使用硬件地址进行报文传输。IP报文在封装为数据链路层帧进行传送时,就有必要把 IP地址转换为对应的硬件地址,ARP正是动态地完成这一功能的。 ??? ?(1)ARP 报文格式 ????????????????????????????? ??图1 ARP 报文格式 ??? ARP 协议报文是定长的,其格式如图1 所示,报文中每一字段的含义如下: ??? * 硬件类型:表示物理网络的类型,“0X0001”表示以太网; ??? * 协议类型:表示网络网络协议类型,“0X0800”表示IP 协议; ??? * 硬件地址长度:指定源/ 目的站物理地址的长度,单位为字节; ??? * 协议地址长度:指定源/ 目的站IP 地址的长度,单位为字节; ??? * 操作:指定该报文的类型,“1”为ARP 请求报文,“2”为ARP 响应报文; ??? * 源端硬件/IP 地址:由ARP 请求者填充; ??? * 目的站物理地址:在请求报文中为0,在响应报文中,由由发送响应报文的主机填写接收该报文的目的主机的物理地址; ??? * 目的站IP 地址:由ARP 请求者填充,指源端想要知道的主机的IP 地址。只有IP 地址等于该IP 地址的主机才向源主机发送相应报文。 ???? (2)ARP 的工作方式 ??? 在以太网中,每台使用ARP 协议实现地址解析的主机都在自己的高速缓存中维护着一个 地址映射表,这个ARP表中存放着最近和它通信的同网络中的计算机的 IP???? ????????????????地址和对应的MAC 地址。 ?? ?注意:不同网络中的IP地址将对应网关。 ? ??? 当两台计算机通信时,源主机首先查看自己的ARP表中是否有目的主机的 IP 地址项,若有则使用对应的MAC 地址直接向目的主机发送信息;否则就向网络中广播一个ARP请求报文,当网络中的主机收到该ARP请求报文时,首先查看报文中的目的IP 地址是否与自己的IP 地址相符,若相符则将请求报文中的源IP 地址和MAC 地址写入自己的ARP表中;然后,创建一个ARP响应报文,将自己的MAC 地址填入该响应报文中,发送给原主机。 ? ??注意:ARP响应报文不再广播,而是直接发送给请求者。? ??? 源主机收到响应报文后,取出目的IP 地址和 MAC 地址加入到自己的 ARP 表中,并利用获得的目的MAC 地址向目的端主机发送信息。 ??? 在实际中,为了节省内存空间和ARP 表的查询时间,若某一个ARP 地址项很久没有使用,则会从地址映射表中删除。 ?? ?2.Arp 命令简介 ?? ?本次实验使用的Windows自带的Arp命令提供了显示和修改地址解析协议所使用的地址映射表的功能。 ??? Arp 命令的格式要求如下: ??? ARP -s inet_addr eth_addr [if_addr] ??? ARP -d inet_addr [if_addr] ??? ARP -a [inet_addr] [-N if_addr] ??? 其中: ??? * -s:在ARP 缓存中添加表项:将 IP地址 inet_addr 和物理地址ether_addr关联,物理地址由以连字符分隔的6个十六进制数给定,使用点分十进制标记指定IP地址,添加项是永久性的; ??? * -d:删除由inet_addr指定的表项; ??? * -a:显示当前ARP表,如果指定了inet_addr则只显示指定计算机的IP和物理地址; ??? * inet_addr:以点分十进制标记指定IP地址; ??? * -N:显示由if_addr指定的ARP表项; ??? * if_addr:指定需要选择或修改其地址映射表接口的IP地址; ??? * ether_addr:指定物理地址; ?3.实验环境与说明 ???? (1)实验目的 ??? 分析ARP 协议的报文格式,理解ARP 协议的解析过程。 ???? (2)实验设备和连接 ??? 实验设备和连接图如图2所示,一台S2126G交换机连接了2台PC机,分别命名为PC1、PC2,交换机命名为Switch。? ??????????????????????????? ?图2?? ARP 协议分析实验连接图 ? ?4.实验步骤 步骤1:按照如图2所示连接好设备,配置PC1和PC2的IP地址; 步骤2:在:? PC1、PC2两台计算机上执行如下命令,清除ARP缓存: ARP –d 步骤3:在PC1、PC2两台计算机上执行如下命令,查看高速缓存中的ARP地址映射表的内容: ARP –a 步骤 4:在PC1和PC2上运行 Wireshark 截获报文 ??? 步骤5:在主机PC1上执行Ping命令向PC2发送数据报; 步骤6:执行完毕,保存截获的报文并命名为arp-1; 步骤7:在PC1、PC2两台计算机上再次执行ARP–a命令,查看高速缓存中的ARP 地址映射表的内容: ? ??1)这次看到的内容和步骤3 的内容相同吗?结合两次看到的结果,理解ARP 高速缓存的作用。 ?不同,ARP高速缓存里边保存了之前进行ARP会话时返回的ARP应答中的IP地址和MAC地址对应列表。一般一条记录保存20分钟左右。目的是:下次再要访问ARP高速缓存中的IP地址的主机时,不需要再次发送ARP请求去获取MAC地址。直接从高速缓存中读取就可以了。可以有效缓解链路的压力。 ??? 2)把这次看到到的高速缓存中的ARP 地址映射表写出来。 ??? 步骤8:重复步骤:4—5,将此结果保存为arp-2; ??? 步骤9:打开arp-1,完成以下各题: ??? 1)在截获的报文中由几个ARP报文?在以太帧中,ARP协议类型的代码值是什么? 有两类ARP报文,ARP协议类型的代码值是0x0800 ??? 2)打开arp-2,比较两次截获的报文有何区别?分析其原因。 不需要在进行广播ARP了,因为第一次连接时已经广播过了,已经有了记录。 3)分析arp-1中ARP报文的结构,完成表1。 ?????????????????????????????? 表1 ARP 报文分析
?????????????????????????????? |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/9 2:05:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |