【计算机网络】lab2 Ethernet(链路层Ethernet frame结构细节)
🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀计算机网络_十二月的猫的博客-CSDN博客💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光
目录
1. 前言
2. 实验目的
3. 实验内容和实验步骤
4. 实验环境
5. 实验过程记录
step1:捕获一个ping数据包
step2:分析帧的结构
6. 实验结果分析
a. Ethernet帧结构(WireShark显示的结构会相对简单,也是帧中最重要的结构)
b. 以太网地址范围
c. Broadcast Frames 广播帧
7. 总结
1. 前言
本系列重点针对山东大学-软件学院-计算机网络实验的任务。
希望通过实验,一方面加强大家对理论知识的认识,另一方面提升大家的动手能力。
也希望我的博客能够给学弟学妹们的学习提供一些帮助。
2. 实验目的
前一篇文章:【计算机网络】lab1 Protocol Layers(物理层 传输数据 结构细节)-CSDN博客
通过WireShark工具对物理层传输的数据进行抓包,直观看到了物理层数据的结构特点:
这和我们学习的知识相吻合:因为物理层上有链路层、网络层、传输层和应用层四个层次,每一个层次遵循一种协议,因此会给数据加上一种协议头,总共有四个协议头(如上图)。
本篇文章,通过这次实验,我们来探索以太网帧Ethernet frame的结构细节。
Ethernet是一种流行的链路层协议,现代计算机连接到以太网交换机,而不是使用传统以太网。
Ethernet:以太网
帧:通常称为以太网帧
以太网协议:数据链路层遵循的协议
3. 实验内容和实验步骤
实验内容:
1、掌握网络抓包工具Wireshark、网络诊断工具ping的用法;
2、使用网络诊断工具ping触发网络消息;
3、使用网络抓包工具Wireshark获取并分析以太网数据帧;
4、掌握以太网帧的结构;
5、分析以太网地址范围;
6、分析以太网的广播帧。
实验步骤:
1. Capture a Trace
2. inspect the trace
3. Ethernet Frame Structure
4. Scope of Ethernet Addresses
5. Broadcast Frames
4. 实验环境
-
Wireshark
Wireshark 是一个网络协议分析工具,用于捕获和分析通过计算机网络传输的数据包。它能详细显示每个数据包的协议、源地址、目标地址、数据内容等信息,帮助用户诊断网络问题和分析网络流量。 -
ping
ping
是一个简单的网络诊断工具,用于测试计算机与另一台计算机之间的网络连接是否正常。它通过发送 ICMP Echo 请求并等待响应,来检查目标主机是否在线以及网络延迟情况。
5. 实验过程记录
step1:捕获一个ping数据包
ping 数据包 是一种使用 ICMP(Internet Control Message Protocol,互联网控制消息协议)协议的网络数据包,通常用于测试网络连接的可达性和延迟。
- 检查是否有ping数据包:选择远程web服务器或者其他可公开访问的Internet主机,使用ping发送一些ping messages;检查它是否回复(如果ping继续从远程服务器上弹出消息,可以用^C作为信号终止)。
a. 打开cmd,输入ping www.bing.com:
2.捕获ping数据包:启动wireshark,利用icmp这个filter捕获以太网帧;
a. 在WireShark上设置好参数:
b. 点击“开始”,则WireShark开始捕获ICMP协议的数据:
c. 再次进行ping操作。得到结果如下:
step2:分析帧的结构
有两种以太网:IEEE802.3(很少见)、DIX以太网(wireshark中称为Ethernet II),其结构如下:
a. 点击Ethernet,查看详细信息。各字段解释如下:
- preamble:前导码,wireshark中没有显示。功能:使接收端的适配器在接收MAC帧时迅速调整时钟频率,使它和发送端的频率相同
- SFD :帧开始定界符,wireshark中没有显示
- Destination:目的地址
- Source:源地址
- Type:表明使用的是IPv4还是IPv6
- MAC CLIENT DATA:数据字段的Data,wireshark中没有显示
- pad:填充,wireshark中没有显示
- FCS:校验位,wireshark中没有显示
Destination:
Source:
Type:
CheckSum:
广播帧MAC地址:
6. 实验结果分析
a. Ethernet帧结构(WireShark显示的结构会相对简单,也是帧中最重要的结构)
b. 以太网地址范围
这个问题其实包括两个部分:MAC地址范围和IP地址范围
MAC地址范围:以太网帧中,destination address和source address都是MAC地址,也就是硬件地址,和具体硬件有关。在帧传输中,需要路由器进行转发,因此在转发中路由器发生改变,硬件也就发生变化,MAC地址也将发生变化,所以说数据链路层的是负责节点到节点的通信的。MAC地址是在路由器转发过程中不停发生变化的。
IP地址范围:输入命令 ping www.bing.com 时,输入的是域名,经过DNS解析后得到目标IP地址,我自己的电脑又有一个源IP地址。因为网络层传输是主机到主机的,和硬件地址没有直接关系,所以传输过程中IP地址是不会变化的,保持不变。
c. Broadcast Frames 广播帧
以太网中,单播、组播、广播会使用不同的DMAC。
- unicast 单播:主机之间一对一通信。
- multicast 多播:主机之间一对一组通信。
- broadcast 广播:主机之间一对所有通信。
1、wireshark中显示的标准格式的广播以太网地址(DMAC)是:FF:FF:FF:FF:FF:FF
2、以太网地址的哪一位用于确定单播or多播/广播:802.11、802.5/802.6标准中是第一个字节的最后一位,即第8位;802.3/802.4中是第一位。0表示单播;1表示多播/广播。
7. 总结
本文到这里就结束啦~~
如果觉得对你有帮助,辛苦友友点个赞哦~
相关文章:

【计算机网络】lab2 Ethernet(链路层Ethernet frame结构细节)
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀计算机网络_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2.…...

路径规划之启发式算法之二十:麻雀搜索算法(Sparrow Search Algorithm,SSA)
麻雀搜索算法(Sparrow Search Algorithm,SSA)是一种受麻雀觅食和反捕食行为启发的新型的群智能优化算法,它模拟了麻雀种群的觅食行为和反捕食行为的生物学群体特征。该算法由薛建凯在2020年首次提出,旨在解决全局优化问题,具有求解精度高、效率高等特点。 一、算法原理 S…...

音频开发中常见的知识体系
在 Linux 系统中,/dev/snd 目录包含与声音设备相关的文件。每个文件代表系统中的一部分音频硬件或音频控制接口。以下是你列出的文件及其含义: 一.基本术语 样本长度(sample):样本是记录音频数据最基本的单位,计算机对每个通道采…...
【返璞归真】score检验:似然比的得分检验(Likelihood Ratio Score Test)
Score检验(Score Test)是一种用于假设检验的方法,特别是在统计建模中,常用于估计模型参数时检验某个假设是否成立。它的全名是“似然比的得分检验”(Likelihood Ratio Score Test),通常用于大样…...
三维重建(六)——3D Representation Methods: A Survey(北大总结三维表征--2024.10出版)
文章目录 一、摘要二、引言2.1 研究焦点和发展历程三、3D表征3.1 体素网格3.2 点云3.3 网格3.4 符号距离函数(SDF)3.5 神经辐射场(NeRF)3.6 三维高斯溅射(3D Gaussian Splatting, 3DGS)3.7 混合方法3.7.1 深度步进四面体(Deep Marching Tetrahedra, DMTet)3.7.2 三平面…...

html基础-认识html
1.什么是html html是浏览器可以识别的的标记语言,我们在浏览器浏览的网页就是一个个的html文档 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>认识html</title> </head> <body><h1…...

UE5 跟踪能力的简单小怪
A、思路 1、用素材的骨骼网格体创建小怪BP,绑定新的小怪控制器。 2、控制器的事件开始时,获取玩家状态,指定AI小怪自动向玩家移动。 复杂的AI需要用强大功能如黑板、行为树。 而简单的AI则可以用简单方法实现,杀鸡不用牛刀。视…...

Ubantu22系统安装Miniconda3
1、Anaconda和Miniconda异同 清华源镜像的Miniconda3和Anaconda都是用于管理Python环境和软件包的工具,但它们之间存在一些关键的不同之处。下面将分别介绍它们的特点以及使用清华源镜像的差异。 相同点: (1)功能相似:…...
130、java中在使用new ArrayList<>(),在参数中传入一个集合的作用
在Java中,当你使用new ArrayList<>()时,你正在创建一个新的ArrayList实例。如果你在其后跟一对尖括号,并在内部传入一个集合,那么这实际上是一个"初始容量"的概念。 例如,如果你有一个集合otherList&…...
Mybatis-plus-Join--分页查询
数据表四张: user: id,username,create_time,update_time product: id,name,price,number(库存),create_time,update_times order: id,quantity,order_time(下单时间),update_time order_detail:id,product_id,order_id,quant…...
对BG兼并点的理解-不断刷新版
常想常新,每次接触都有新理解,不确定想的是否正确,拿出来讨论,以最新结论为准 2024-9-19 1、仿真简并点时需要断开启动电路:启动电路会干扰DC结果的计算,可能看到加启动电路后简并点减少,但在…...

python的游标是什么
CURSOR(私有SQL 区)就是一个句柄,即指针或引用,指向sql私有区(一个用户的能打开的cursor数由参数open_cursors决定)【确切说,指向sql私有区里的固定部分(The persistentarea…...

硬件---14---PCB学习:PCB封装库及布局操作
一PCB封装元素的组成与介绍 二实例-贴片0603封装的创建 1封装命名 找不到封装库创建页面,可以配合右下角的Panels去找。 找到0603电阻或者电容的PCB封装,根据提供尺寸去设计PCB的封装。 <1>双击PCB器件封装 <2>命名 2放置焊盘ÿ…...
什么是MyBatis
MyBatis 简介 MyBatis 是一个流行的 Java 持久层框架(Persistence Framework),它主要用于简化数据库操作,提供了对数据库的映射支持,使得开发人员能够通过简单的配置和映射文件来执行数据库操作(如增、删、…...

开发技术-Java改变图片格式
图片上传页未做控制,导致上传的是GIF格式,导致图片识别失败。需要将GIF格式转为JPEG格式。 代码,是找AI写的,记录一下: import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; im…...

基于DockerCompose搭建Redis主从哨兵模式
linux目录结构 内网配置 哨兵配置文件如下,创建3个哨兵配置文件 # sentinel26379.conf sentinel26380.conf sentinel26381.conf 内容如下 protected-mode no sentinel monitor mymaster redis-master 6379 2 sentinel down-after-milliseconds mymaster 60000 s…...

aioice里面candidate固定UDP端口测试
环境: aioice0.9.0 问题描述: aioice里面candidate固定UDP端口测试 解决方案: /miniconda3/envs/nerfstream/lib/python3.10/site-packages/aioice import hashlib import ipaddress import random from typing import Optional import…...
Git使用教程-分支使用/合并分支提交
Git使用教程-分支使用 文章目录 Git使用教程-分支使用一、分支(branch)的基本操作:二、查看分支:参考 一、分支(branch)的基本操作: git clone https://.git git status …...
单元测试使用记录
什么是单元测试 简单来说就是对一个类中的方法进行测试,对输出的结果检查判断是否符合预期结果 但是在多年的工作中,从来没有哪个项目中真正系统的用到了单元测试,因此对它还是很陌生的,也就造成更加不会在项目中区使用它。 如何…...

LabVIEW实时信号采集与频谱分析
系统通过LabVIEW与PXIe硬件结合,实现高精度模拟信号的实时采集、频谱分析与可视化显示。核心功能包括采样率配置、快速傅里叶变换(FFT)、功率谱图生成及动态缩放调整,同时支持信号平均与噪声抑制。系统设计灵活,适用于…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...

GraphRAG优化新思路-开源的ROGRAG框架
目前的如微软开源的GraphRAG的工作流程都较为复杂,难以孤立地评估各个组件的贡献,传统的检索方法在处理复杂推理任务时可能不够有效,特别是在需要理解实体间关系或多跳知识的情况下。先说结论,看完后感觉这个框架性能上不会比Grap…...