当前位置: 首页 > news >正文

ARP协议工作原理分析(基于Wireshark)

      主机(或路由器)在网际层完成路由决定后,需要将IP数据报封装成数据帧发送给目的主机或(路由器),主机(或路由器)都有自己的ARP缓存,里面存放着局域网内有过数据传输的主机(路由器)的IP地址到硬件地址的映射,可以通过arp   -a 命令查看主机的arp缓存,如图1-12所示:

图1-12 arp-a命令显示结果

      在初始时,主机没有与其他主机(或路由器)有数据交流时,其arp缓存是空的,没有任何数据,如图1-13所示,当PC1要将数据发往Internet服务器网站www.njxzc.edu.cn时,在网际层路由决定首先要把数据发往网关192.168.2.1(路由器地址)。

图1-13   网络拓扑

      因PC1没有与路由器有过数据传输,因此其arp 缓存为空,在确定要将数据传输到192.168.2.1后,为封装成数据帧,PC1必须首先获得192.168.2.1的MAC地址,PC1于是发送ARP请求给本网络中的所有主机,ARP请求格式如图1-14所示:

图1-14 ARP请求

     ARP请求是一个广播帧,其目标硬件地址(Destination)为ff:ff:ff:ff:ff:ff,源硬件地址(Source)为d8:fc:93:3b:1f:19,其类型字段Type值为0x0806,该值表明数据帧是ARP请求或者响应;ARP请求内容中包含硬件地址的长度,IP地址的长度以及发送者的IP地址192.168.2.199,请求192.168.2.1对应的MAC地址,target MAC部分为00:00:00:00:00:00,这是是需要对方填写的。

      网络中的主机(或路由器)均会收到此报文(因为这是一个广播帧),但只有路由器回应此报文,因为只有路由器的IP地址和请求中目标IP地址(Target IP address)相同,于是路由器给出一个ARP响应,如图1-15所示:

图1-15 ARP响应

        ARP响应是一个单播帧,其目标硬件地址为d8:fc:93:3b:1f:19,源硬件地址cc:81:da:6f:57:a1,这正是PC1请求的地址,类型字段Type的值依然是0x0800,该单播帧的响应内容中包含了具体的源、目的IP地址以及MAC地址,PC1收到以后就将路由器的IP地址与MAC地址(192.168.2.1  cc:81:da:6f:57:a1)放入自己的ARP缓存,此时,PC1就可以将数据封装在数据帧中发送给路由器,如图1-16所示:

1-16封装的数据

     该数据帧中封装的是IP数据报(其类型字段值为0x0800),其目标硬件地址为路由器接口的地址,路由器收到数据帧后,会把数据继续往前传输

http://www.dtcms.com/a/392184.html

相关文章:

  • CKS-CN 考试知识点分享(14) Istio网络策略
  • TCP 协议全解析:握手、挥手、重传与流控的深度剖析
  • 计算机视觉(opencv)实战二十七——目标跟踪
  • 深度学习中神经网络与损失函数优化
  • 整体设计 完整的逻辑链条 之1 点dots/线lines/面faces 的三曲:三进三出的三个来回
  • 微调基本理论
  • LeetCode算法日记 - Day 48: 课程表II、火星词典
  • 【面板数据】地级市中国方言多样性指数数据集
  • C++编程学习(第35天)
  • SS443A 霍尔效应传感器:高性能磁感应解决方案
  • MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
  • GitHub 热榜项目 - 日榜(2025-09-20)
  • 怎么判断 IP是独享的
  • Linux多进程编程(上)
  • 如何在Spring Boot项目中添加自定义的配置文件?
  • 【MySQL初阶】01-MySQL服务器和客户端下载与安装
  • AI搜索的下一站:多模态、个性化与GEO的道德指南
  • OpenLayers地图交互 -- 章节四:修改交互详解
  • Gradle插件的分析与使用
  • 如何避免everything每次都重建索引
  • 基于SIFT+flann+RANSAC+GTM算法的织物图像拼接matlab仿真,对比KAZE,SIFT和SURF
  • 笔记:现代操作系统:原理与实现(3)
  • 【智能系统项目开发与学习记录】Docker 基础
  • 数据展示方案:Prometheus+Grafana+JMeter 备忘
  • flask获取ip地址各种方法
  • 17.6 LangChain多模态实战:语音图像文本融合架构,PPT生成效率提升300%!
  • MyBatis实战教程:SQL映射与动态查询技巧
  • 在 Windows Docker 中通过 vLLM 镜像启动指定大模型的方法与步骤
  • 分类预测 | Matlab实现SSA-BP麻雀搜索算法优化BP神经网络多特征分类预测
  • GO实战项目:基于 `HTML/CSS/JS + Gin + Gorm + 文心一言API`AI 备忘录应用