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

【计算机网络】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. 实验环境

  1. Wireshark
    Wireshark 是一个网络协议分析工具,用于捕获和分析通过计算机网络传输的数据包。它能详细显示每个数据包的协议、源地址、目标地址、数据内容等信息,帮助用户诊断网络问题和分析网络流量。

  2. ping
    ping 是一个简单的网络诊断工具,用于测试计算机与另一台计算机之间的网络连接是否正常。它通过发送 ICMP Echo 请求并等待响应,来检查目标主机是否在线以及网络延迟情况。

5. 实验过程记录

step1:捕获一个ping数据包

       ping 数据包 是一种使用 ICMP(Internet Control Message Protocol,互联网控制消息协议)协议的网络数据包,通常用于测试网络连接的可达性和延迟。

  1. 检查是否有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是浏览器可以识别的的标记语言&#xff0c;我们在浏览器浏览的网页就是一个个的html文档 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>认识html</title> </head> <body><h1…...

UE5 跟踪能力的简单小怪

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

Ubantu22系统安装Miniconda3

1、Anaconda和Miniconda异同 清华源镜像的Miniconda3和Anaconda都是用于管理Python环境和软件包的工具&#xff0c;但它们之间存在一些关键的不同之处。下面将分别介绍它们的特点以及使用清华源镜像的差异。 相同点&#xff1a; &#xff08;1&#xff09;功能相似&#xff1a…...

130、java中在使用new ArrayList<>(),在参数中传入一个集合的作用

在Java中&#xff0c;当你使用new ArrayList<>()时&#xff0c;你正在创建一个新的ArrayList实例。如果你在其后跟一对尖括号&#xff0c;并在内部传入一个集合&#xff0c;那么这实际上是一个"初始容量"的概念。 例如&#xff0c;如果你有一个集合otherList&…...

Mybatis-plus-Join--分页查询

数据表四张&#xff1a; user&#xff1a; id,username,create_time,update_time product&#xff1a; id,name,price,number(库存),create_time,update_times order&#xff1a; id,quantity,order_time(下单时间),update_time order_detail:id,product_id,order_id,quant…...

对BG兼并点的理解-不断刷新版

常想常新&#xff0c;每次接触都有新理解&#xff0c;不确定想的是否正确&#xff0c;拿出来讨论&#xff0c;以最新结论为准 2024-9-19 1、仿真简并点时需要断开启动电路&#xff1a;启动电路会干扰DC结果的计算&#xff0c;可能看到加启动电路后简并点减少&#xff0c;但在…...

python的游标是什么

CURSOR&#xff08;私有SQL 区&#xff09;就是一个句柄&#xff0c;即指针或引用&#xff0c;指向sql私有区&#xff08;一个用户的能打开的cursor数由参数open_cursors决定&#xff09;【确切说&#xff0c;指向sql私有区里的固定部分&#xff08;The persistentarea&#xf…...

硬件---14---PCB学习:PCB封装库及布局操作

一PCB封装元素的组成与介绍 二实例-贴片0603封装的创建 1封装命名 找不到封装库创建页面&#xff0c;可以配合右下角的Panels去找。 找到0603电阻或者电容的PCB封装&#xff0c;根据提供尺寸去设计PCB的封装。 <1>双击PCB器件封装 <2>命名 2放置焊盘&#xff…...

什么是MyBatis

MyBatis 简介 MyBatis 是一个流行的 Java 持久层框架&#xff08;Persistence Framework&#xff09;&#xff0c;它主要用于简化数据库操作&#xff0c;提供了对数据库的映射支持&#xff0c;使得开发人员能够通过简单的配置和映射文件来执行数据库操作&#xff08;如增、删、…...

开发技术-Java改变图片格式

图片上传页未做控制&#xff0c;导致上传的是GIF格式&#xff0c;导致图片识别失败。需要将GIF格式转为JPEG格式。 代码&#xff0c;是找AI写的&#xff0c;记录一下&#xff1a; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; im…...

基于DockerCompose搭建Redis主从哨兵模式

linux目录结构 内网配置 哨兵配置文件如下&#xff0c;创建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端口测试

环境&#xff1a; aioice0.9.0 问题描述&#xff1a; aioice里面candidate固定UDP端口测试 解决方案&#xff1a; /miniconda3/envs/nerfstream/lib/python3.10/site-packages/aioice import hashlib import ipaddress import random from typing import Optional import…...

Git使用教程-分支使用/合并分支提交

Git使用教程-分支使用 文章目录 Git使用教程-分支使用一、分支&#xff08;branch&#xff09;的基本操作&#xff1a;二、查看分支&#xff1a;参考 一、分支&#xff08;branch&#xff09;的基本操作&#xff1a; git clone https://.git git status …...

单元测试使用记录

什么是单元测试 简单来说就是对一个类中的方法进行测试&#xff0c;对输出的结果检查判断是否符合预期结果 但是在多年的工作中&#xff0c;从来没有哪个项目中真正系统的用到了单元测试&#xff0c;因此对它还是很陌生的&#xff0c;也就造成更加不会在项目中区使用它。 如何…...

LabVIEW实时信号采集与频谱分析

系统通过LabVIEW与PXIe硬件结合&#xff0c;实现高精度模拟信号的实时采集、频谱分析与可视化显示。核心功能包括采样率配置、快速傅里叶变换&#xff08;FFT&#xff09;、功率谱图生成及动态缩放调整&#xff0c;同时支持信号平均与噪声抑制。系统设计灵活&#xff0c;适用于…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

JavaSec-RCE

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

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)

第一篇&#xff1a;Liunx环境下搭建PaddlePaddle 3.0基础环境&#xff08;Liunx Centos8.5安装Python3.10pip3.10&#xff09; 一&#xff1a;前言二&#xff1a;安装编译依赖二&#xff1a;安装Python3.10三&#xff1a;安装PIP3.10四&#xff1a;安装Paddlepaddle基础框架4.1…...

GraphRAG优化新思路-开源的ROGRAG框架

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