Wireshark Lab: Ethernet and ARP v7.0

news2025/7/10 6:09:22

Wireshark Lab: Ethernet and ARP v7.0

实验内容戳这里
介绍部分转自乌漆WhiteMoon

Ethernet

以太网

以太网在现在的有线局域网中有着支配者的地位,就像是因特网使得全球互联那样。其实局域网技术还有令牌环、FDDI 和 ATM 等,但是以太网仍然具有很多独特的优势,使其保持着广泛的使用,原因有:

  1. 以太网是第一个广泛部署的高速局域网,网络从业者对其更为熟悉;
  2. 以太网相对令牌环、FDDI 和 ATM 等技术更为简洁、便宜;
  3. 以太网也不断发展,诞生出更多数据效率高的新版本,使得其可以与新的局域网技术仍保持竞争力;
  4. 以太网的网络硬件很便宜,因为以太网技术非常流行。
    在这里插入图片描述

以太网硬件

初始的以太局域网使用同轴电缆总线互联结点,也就是总线型。使用总线拓扑的以太网是广播局域网,也就是所有传输的真传输到总线连接的所有适配器来处理。这就说明了所有结点会在同一冲突域中,因此彼此之间很容易发生冲突,需要用具有二进制指数回退的CSMA/CD 多路访问协议。
在这里插入图片描述
在发展之后就出现了基于集线器的星形拓扑以太网,集线器是物理层设备,操作的不是以太帧而是各个字节。集线器的工作原理是当在一个接口接收到一个比特,就将这个比特生成一个副本并向其他接口发送。随着不断的发展,后续交换机取代了集线器,仍然使用星形拓扑。星形拓扑的好特点是没一个节点的冲突域是单独的,结点间彼此不冲突。

在这里插入图片描述

以太网帧

以太网帧有 6 个字段:
在这里插入图片描述

  1. 数据:46~1500 字节,这是上层协议的载荷,这个字段将承载了 IP 数据报。由于以太网的 MTU是 1500 字节,因此经常需要给数据报分片;
    目的地址\源地址:6 字节,包含目的适配器\源适配器的 MAC 地址;
  2. 类型:2 字节,指定以太网复用的网络层协议,因为主机能够支持多种网络层协议;
  3. CRC:4 字节,循环冗余检测用于令接收适配器检测真中是否引入查错;
    前同步码:8 字节,前 7 字节都是 “10101010”,用于“唤醒”接收适配器,并且同步时钟,最后一个字节是 “10101011”。

以太网服务

以太网向网络层提供 2 种服务。首先是无连接服务,也就是适配器之间发送接收真,发送网卡和接收网卡间不需要“握手”,类似于 IP 协议和 UDP 协议。第二是不可靠服务,虽然接收适配器执行 CRC 校验,但是这个校验并不发送类似 ACK 的确认帧。虽然将到时传递到网络层的数据流出现间隙,这种传输方式可以使得以太网可以简洁且便宜。对于这种间隙,接收方遇到查错帧就直接丢弃,若要修复丢弃帧的数据,需要依靠类似 TCP 这样的高层协议。

ARP

地址解析协议

由于 IP 地址是网络层地址,MAC 地址是链路层地址,因此当我需要传输数据时就需要对地址进行转换。在同一个 LAN 里如何在一直目的 IP 地址的前提下确定 MAC 地址?这就需要 ARP 协议。这个好像和 DNS 有些相似之处,DNS 是在因特网中进行主机的主机名解析,ARP 是在一个子网上的主机和路由器接口解析 IP 地址。
每台主机和路由器在内存中有 ARP表,表中有 3 个内容,前两个是 IP 地址和 MAC 地址,这表示了 IP 地址和对应的 MAC 地址的映射关系,还有一个是 TTL,这是每个映射关系保存的时间,这是因为我们其实不必要去为每一台主机和路由器都存储映射关系,毕竟有的主机我可能从来不访问。
拥有 ARP 表之后是怎么实现功能呢?首先发送方构造一个 ARP 查询分组,这个分组用于询问子网上的所有主机和路由器,使用 MAC 广播地址(FF-FF-FF-FF-FF-FF)发送分组,LAN 中的所有结点都会受到这个 ARP 查询分组,此时只有接收方会接收这个分组匹配,这个匹配是通过ARP 模块实现的,模块的作用是将适配器将 ARP 分组传入时,检查 IP 地址是否与 ARP 的目的 IP 地址匹配。匹配成功之后就可以用单播(不是广播)发送 ARP 响应分组,其他的就忽略这个分组。发送方接收到这个响应分组之后,就在 ARP 表中缓存该 IP-MAC 映射关系,然后超时后刷新。
这里有 2 个细节需要注意。首先是 ARP 查询分组是广播,而响应分组是单播。第二是 ARP 是即插即用的,也就是 ARP 表不需要手动配置,只需要让协议自动建立就行。
在这里插入图片描述

子网外的地址解析

在相同子网内的 ARP 很好理解,那么当子网中的主机要向子网外发送网络层数据报时,ARP 又是怎么工作的呢?对于主机,每台主机只有一个 IP 地址和一个适配器,对于一台路由器来说,每个接口都有一个 IP 地址,也都有一个 ARP 模块和一个适配器。
在这里插入图片描述
当一个子网向另一个子网发送 IP 数据报时,发送主机向适配器传递,此时应该传递什么 MAC 地址呢?明显不是目的主机的 MAC 地址,因为在所在子网中该地址与所有的适配器之间都不匹配,那就只好丢弃了。所以适当的 MAC 地址应该是路由器接口的适配器地址,但是路由器接口的 MAC 地址怎么获取?ARP 嘛!
接下来路由器就需要将数据报发到正确的目的地去,也就是要发到哪个接口去呢?可以查询路由器的转发表,根据转发表送到对应的接口去。接口收到数据包之后,适配器把数据报封装到新的帧中,发送到下一个子网去,下一个子网的 MAC 地址怎么确定?再搞个 ARP 就行了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/36815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第十三届蓝桥杯 C++ B 组省赛 G 题———积木画(AC)

目录1.积木画1.题目描述2.输入格式3.输出格式4.样例输入5.样例输出6.样例说明7.数据范围8.原题链接2.解题思路AC_code1.积木画 1.题目描述 小明最近迷上了积木画, 有这么两种类型的积木, 分别为 III 型(大小为 2 个单位面积) 和 LLL 型 (大小为 3 个单位面积): 同…

java面试强基(12)

什么是泛型?有什么作用? Java 泛型(Generics) 是 JDK 5 中引入的一个新特性。使用泛型参数,可以增强代码的可读性以及稳定性。 编译器可以对泛型参数进行检测,并且通过泛型参数可以指定传入的对象类型。…

多媒体技术论文研读报告

多媒体技术论文研读报告 一、论文基本信息 论文题目为:基于多模态特征融合嵌入的相似广告检索方法,作者信息:南京大学计算机软件新技术国家重点实验室,南京大学软件学院冯奕、周晓松、李传艺、葛季栋、骆斌,深圳市腾…

2022最新JUC+多线程面试题

Java中实现多线程有几种方法 创建线程的常用的几种方式: 继承Thread类 实现Runnable接口 (重写run方法,无返回值) 实现Callable接口( JDK1.5>,重写call方法,可以自定义返回值 ) 线程池方…

带式输送机的传动装置设计

目 录 摘 要 I Abstract II 1 绪论 1 1.1设计概述 1 1.2研究内容及参数 1 1.3 带传动 2 1.4圆锥-圆柱齿轮传动减速器 2 2结构设计 4 2.1V带传动 4 2.2减速器内部的传动零件 4 2.3联轴器的选择 4 3 设计计算过程及说明 6 3.1选择电动机 6 3.1.1电动机类型和结构型式选择 6 3.1.2…

android源码-ContentProvider实现原理分析

前言: 最初的目的是想研究下ContentProvider产生ANR原因的,但是如果要讲ANR的原因,那么必须要了解ContentProvider的完整实现原理,所以本篇就先讲一下ContentProvider的实现原理,下一篇再去讲ANR的原因。 本篇主要会讲…

估值破千亿,被资本疯抢的广汽埃安会是广汽的未来吗?

最近,广汽埃安在新能源市场上捷报频传,先是宣布完成了182.94亿元的A轮融资,成近年国内新能源整车最大的单笔私募融资。品牌估值更是达到了震撼人心的1032.39亿,基本等于广汽集团AH总市值,也远超港股小鹏、零跑汽车的市…

就两秒?这说出去谁信啊!

文 | xiaoyi(转载请后台联系)关注公众号:小一的学习笔记截止发文,北上广深一共有6510条公交线路为了获取上面的这些线路信息,我写了一个爬虫,大概用了2秒左右就搞定,真爽!说出来你们…

Maven环境搭建

目录一、安装及环境配置1.1、下载1.2、Maven目录结构介绍1.3、环境配置二、关于Maven仓库的说明2.1、仓库基本分类(私服仓库和中央仓库均为远程仓库)2.2、本地仓库的默认位置(在setting.xml中配置)2.3、中央仓库连接位置的体现&am…

K8S部署后的使用:dashboard启动、使用+docker镜像拉取、容器部署(ubuntu环境+gpu3080+3主机+部署深度学习模型)

0、k8s安装、docker安装 参考:前两步Ubuntu云原生环境安装,dockerk8skubeedge(亲测好用)_爱吃关东煮的博客-CSDN博客_ubantu部署kubeedge 配置节点gpu: K8S调用GPU资源配置指南_思影影思的博客-CSDN博客_k8s 使用gpu…

机器学习-(手推)线性回归1-最小二乘法(矩阵表达)、几何意义

一、最小二乘法(矩阵表达)误差平均分散每个样本 如下数学推到过程(手推!!!): 数据介绍: D{(x1,y1),(x2,y2),......(xn,yn), Xi(P维列向量&…

留学Essay写作主要靠哪些步骤得分?

期末来了,留学生该怎么办?如何做Essay?下面我们介绍提高写作能力的有效技巧! What should international students do when the end of the semester comes?How to do Essay?Here we introduce effective skills to improve your writing …

[附源码]SSM计算机毕业设计农贸产品交易系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

SSM框架-从JDBC到Mybatis,你今天CRUD了吗?

1 Jdbc 1.1 jdbc入门使用 导入驱动jar包 新建一个目录lib,把jar包放进去 add as library 具体代码 public class JDBCdEMO {public static void main(String[] args) throws Exception{//1.注册驱动Class.forName("com.mysql.jdbc.Driver");//2.获取连…

vue2 - 基于Export2Excel.js导出Excel案例(js-xlsx插件二次封装使用)

目录一、项目场景二、实现思路三、准备工作1、下载js-xlsx2、下载Export2Excel.js3、下载file-saver和script-loader4、下载mock四、代码实现1、mock数据2、使用Export2Excel.js导入导出excel数据3、App.vue代码五、运行结果六、进阶(复杂表头的导出)一、…

让我们拥抱DataV,感受数据可视化的魅力

最近领导给安排了一个工作,做原型设计。看了37万字的项目需求文档,发现客户对数据可视化要求很高。为什么用户对可视化要求这高呢?可以说,可视化也是这两年的热点了,大数据,可视化,数字孪生频繁…

[HFCTF2020]EasyLogin

有注册登录,先注册一个账号然后登录进去 在登录页面的源代码发现 访问得到 /*** 或许该用 koa-static 来处理静态文件* 路径该怎么配置?不管了先填个根目录XD*/function login() {const username $("#username").val();const password $(…

树形表,自关联表查询技巧

方法一:部门表,部门表中除了自身主键id外,还有另一个字段parentId父id,可以一直递归下去 数据库表: 菜单这样展示就需要我们在接口的返回值中,返回这样的层级数据: [{"id": 1,"…

Mybatis-plus使用教程

注意点:我们在主启动类上需要扫描我们持久层文件下的所以接口 MapperScan("com.kuang.mapper") 配置日志 mybatis-plus.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImplCRUD扩展 1.插入测试 //测试插入Testpublic void testInse…

java之《浅入了解异常》适合预习,复习

🎇🎇🎇作者: 小鱼不会骑车 🎆🎆🎆专栏: 《java练级之旅》 🎓🎓🎓个人简介: 一名专科大一在读的小比特,努力学习编程是我…