当前位置: 首页 > 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;适用于…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行&#xff1a; rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归&#xff08;Tail Recursion&#xff09; 什么是 Loop&#xff08;循环&#xff09;&#xff1f; 复杂度分析 头递归&#xff08;Head Recursion&#xff09; 树形递归&#xff08;Tree Recursion&#xff09; 线性递归&#xff08;Linear Recursion&#xff09;…...