以太网帧格式解析

        以太网的正式标准是IEEE802.3,它规定了以太网传输的帧结构。

        以太网帧格式如下图所示:

        以太网传输数据时,是按照上图的格式,自左到右依次传输的。需要注意的是前导码和SFD不属于以太网协议的内容,应该是属于物理层数据同步相关的内容。 具体解析如下:

 名称字节数数值含义
前导码7字节0x55_5555_5555_5555同步码,通过串行数据的“01”交替,实现数据的同步。
帧起始界定符1字节0xD5表示一帧的开始。后面紧跟以太网的帧头
目的MAC地址6字节/以太网协议的第一个字段。指示目标设备(接收端)的MAC地址。分为广播地址、单播地址和多播地址。广播地址的数值为0xFFFF_FFFF_FFFF,用于和所有设备进行通信。
源MAC地址6字节/发送端的MAC地址。
长度/类型2字节/

当该字段的数值小于1536个字节时,表示的是数据的长度。

当为0x0800时,表示该数据包是IPv4协议包。

当为0x08DD时,表示该数据包是IPv6协议包。

当为0x0806时,表示该数据包是ARP协议包。

数据46~1500字节/

以太网中的数据长度最小是46字节,最大1500字节(正常情况下是这样的,但是存在巨帧等数据包)。最大值1500称为以太网的最大传输单元MTU。限制数据包大小的原因是担心单个数据包的发送时间太长,在计算机中排队的数据包队列太长,导致其他应用一直卡住,体验变差。

TCP、IP、UDP、ARP等协议数据,就包含在此部分里。

校验FCS4个字节/

为了确保数据的正确性,在网络包尾部增加了一个CRC32的校验结果,用来检测数据传输是否正确。CRC校验的范围:目的MAC、源MAC、长度/类型、数据。

另外关于CRC校验计算部分,可以参考文章:CRC计算流程详解和FPGA实现_crc32 fpga实现-CSDN博客

        这里需要注意的是,以太网两帧之间的时间间隔,IFG。

        不管10M/100M/1000M的网络,两帧之间最少有96bits的间隔时间。也就是说:

        10M的IFG=96*100ns=9600ns

        100M的IFG=96*10ns=96ns

        1000M的IFG=96*1ns=96ns

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

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

相关文章

学习ArkTS -- 状态管理

装饰器 State 在声明式UI中,是以状态驱动试图更新: 状态(State):指驱动视图更新的数据(被装饰器标记的变量) 视图(View):基于UI描述渲染得到用户界面 说明…

病理验证mIF和TMA路线(自学)

目录 技术 使用配对病理切片 mIF验证 单基因使用TMA验证 技术 多重荧光免疫组化技术 (Multiplex immunohistochemical,mIHC) 也称作酪氨酸信号放大 (Tyramide dignal amplification,TSA) 技术,是一类利用辣根过氧化酶 (Horseradish Pero…

weblogic反序列化漏洞(CVE-2017-10271)复现

直接用vuluhub搭建现成的靶场做 访问靶场 打开是这样表示成功 想反弹shell 就先开启kali1的nc监听,这就监听2233端口吧 linux:nc -l -p 2233 抓包修改为攻击数据包 ip和端口可以任意修改 反弹的shell 还可以写入文件shell 只需要把提供的poc POS…

修复Windows搜索不工作的几种方法,总有一种适合你

序言 Windows搜索是Windows 10中一个非常有用的功能,它允许你搜索特定的程序、应用程序、文档、图片、文件、设置等,以便快速访问它们。但有时Windows搜索找不到我们预期的结果,甚至没有响应,这会给Windows用户带来很多不便。如果Windows 10中的搜索栏不工作,该怎么办?你…

【MySQL】SQL优化

SQL优化 插入数据 insert 一次插入数据和批量插入数据 insert into tb_test (id, name) values (1,Tom); insert into tb_test (id, name) values (1,Tom),(2,Jack),(3,Jerry);优化方案: 手动控制事务,且按主键顺序插入。start transaction; insert …

机器人实验室LAAS-CNRS介绍

一、LAAS-CNRS介绍 1、缩写介绍 同样的,给出英文缩写的全称,以便理解。这里的LAAS(Laboratory for Analysis and Architecture of Systems)指法国的系统分析与架构实验室,CNRS(Centre National de la Rec…

OpenHarmony实战开发-提升应用响应速度。

应用对用户的输入需要快速反馈,以提升交互体验,因此本文提供了以下方法来提升应用响应速度。 避免主线程被非UI任务阻塞减少组件刷新的数量 避免主线程被非UI任务阻塞 在应用响应用户输入期间,应用主线程应尽可能只执行UI任务(…

【电控笔记6.3】采样-Z转换-零阶保持器

本质 数字转模拟:零阶保持器 采样 z-1所描述的物理意义即为延迟T时间的拉氏转换e-sT 信号采样延时

Python --- 新手小白自己动手安装Anaconda+Jupyter Notebook全记录(Windows平台)

新手小白自己动手安装AnacondaJupyter Notebook全记录 这两天在家学Pythonmathine learning,在我刚刚入手python的时候,我写了一篇新手的入手文章,是基于Vs code编译器的入手指南,里面包括如何安装python,以及如何在Vs…

【通信原理笔记】【四】数字基带传输——4.1 数字基带信号

文章目录 前言一、数字信号二、数字基带信号波形2.1 码元波形2.2 相对码2.3 多电平码 总结 前言 从这一节开始介绍数字通信系统中的数字基带传输部分。与模拟通信系统相比,数字通信系统传输的对象是数字的离散信号而非连续的模拟信号,本节先学习什么是数…

在传统云安全失败时提供帮助的六种策略

随着基于内存的攻击的激增继续挑战传统的云安全防御,对主动和全面的安全措施的需求变得至关重要。采用结合端点检测和响应、内存完整性保护和定期更新的多层方法可以加强对这些难以捉摸的威胁的防御。 随着云计算技术在各行各业的迅速普及,数据保护和安全…

linux系统安全与应用【下】

目录 1.开关机安全控制 1.1GRUB限制 2.终端登录安全控制 2.1 限制root只在安全终端登录 2.2 禁止普通用户登录 3.弱口令检测 3.1 Joth the Ripper(JR) 4.网络端口扫描 4.1 nmap命令 1.开关机安全控制 1.1GRUB限制 通常情况下在系统开机进入GRU…

详解:老阳说的temu电商项目怎么做才更赚钱?

近年来,电商行业蓬勃发展,temu电商项目作为其中的一员,也受到了广泛关注。老阳作为行业内的资深人士,对于temu电商项目有着独到的见解。那么,如何才能做好temu电商项目呢? 首先,要明确temu电商项目的定位和…

Day39 网络编程(一):计算机网络,网络编程,网络模型,网络编程三要素

Day39 网络编程(一):计算机网络,网络编程,网络模型,网络编程三要素 文章目录 Day39 网络编程(一):计算机网络,网络编程,网络模型,网络…

day07 51单片机-串口通信

51 单片机-串口通信 1 串口通信 1.1 需求描述 本案例讲解如何通过串口和PC以9600波特率,无校验位、1停止位通信。最终实现PC向单片机发送字符串,单片机回复PC。本案例中采用串口1通信。 1.2 硬件设计 1.2.1 串口工作原理 串口是将数据按照比特逐一发送的通信接口。在串…

Python 开发实现登陆和注册模块

Python 开发实现登陆和注册模块 一、案例介绍 本例设计一个用户登录和注册模块,使用Tkinter框架构建界面,主要用到画布、文本框、按钮等组件。涉及知识点:Python Tkinter界面编程、pickle数据存储。本例实现了基本的用户登录和注册互动界面…

web前端 html5+css3相关知识点(跟着黑马学)8

先总结一下网页常见的布局方式: 1. 标准流 块级元素独占一行 -> 垂直布局 行内元素/行内块元素一行显示多个 -> 水平布局 2. 浮动 可以让原本垂直布局的块级元素变成水平布局。 3. 定位 可以让元素自由的摆放在网页的任意位置 一般用于盒子之间的层叠…

分布式锁(Redis)

一、序言 本文和大家聊聊分布式锁以及常见的解决方案。 二、什么是分布式锁 假设一个场景:一个库存服务部署在上面三台机器上,数据库里有 100 件库存,现有 300 个客户同时下单。并且这 300 个客户均摊到上面的三台机器上(即三台…

React 19 带来了 JSX 运行时的重要更新

在 React 的发展历程中,JSX 运行时一直扮演着重要的角色。在以前的的版本,JSX 运行时会克隆传入的 props 对象,这背后有着两大原因。 历史原因 React 保留了一些特殊的 prop 名称,如 key 和在 React 19 之前的 ref。这些 prop 并…

SpringBoot整合Swagger3生成接口文档

一:前言 Swagger 是一个 RESTful API 的开源框架,它的主要目的是帮助开发者设计、构建、文档化和测试 Web API。Swagger 的核心思想是通过定义和描述 API 的规范、结构和交互方式,以提高 API 的可读性、可靠性和易用性,同时降低 …