【数据链路层】以太网帧包解析

文章目录

    • 以太网的帧结构
    • 解析数据链路层信息


以太网的帧结构

在这里插入图片描述
使用抓包工具,查看数据链路层信息:
在这里插入图片描述


解析数据链路层信息

(1)协议类型:代表上层的协议 (IP=00800 ARP=00806 IPv6=86DD )
如图中所示:
在这里插入图片描述
在每一层中都存在一个字段表示上层的协议 是什么,以太网中协议类型为0x86dd,表明上层协议是IPv6。在IPv6 中下一个协议头字段为58,表明上层协议是IPv6-ICMP。

(2)帧大小范围 :64B~1518B
(3)MTU :最大传输单元,每次发送数据的最大值(默认为1500B,大于或小于该值的数据帧都有问题)
问题一:如何计算包大小?用工具随便抓取一个包计算下大小。
在这里插入图片描述
图中 带有[ ] 符号里的数字单位为字节,具体表示为: [ 从开始到现在的字节数 / 这个字段或这个协议总字节数 ]
以太网 - II[Ethernet - II] [0/14]
    从开始到现在的字节数为0;以太网头总字节数为14
互联网协议版本6[Internet Protocol Version 6] [14/72]
    从开始到现在的字节数为14;IPv6 总字节数为72
ICMPV6 - 互联网控制消息协议版本6[ICMPV6 - Internet Control Message Protocol Version 6] [54/32]
    从开始到现在的字节数为54;ICMPV6 总字节数为32
帧校验序列[FCS - Frame Check Sequence]
    默认4字节
综上所示,包大小为 54+32+4 = 90字节。(与抓包大小显示的字节数一致,正确)

问题二、抓到的包最大1518字节,为什么不是1526字节 ?
以太网最大帧长应该是 7字节前导同步码 + 1字节帧开始定界符 + 6字节的目的MAC + 6字节的源MAC + 2字节的帧类型 + 1500 + 4字节的FCS。最大帧应该是1526字节,但是实际上我们抓包得到的最大帧是1518字节。
在数据帧到达网络接口卡(NIC)的过程中,物理层首先会移除前导同步码和帧的开始定界符。随后,NIC会执行循环冗余校验(CRC)来验证帧的完整性;如果CRC校验失败,则该帧会被丢弃。如果校验通过,NIC将检查目的MAC地址是否与自己的硬件地址匹配,或者是否是一个允许接收的多播或广播地址。只有当地址匹配时,NIC才会将帧传递给设备驱动程序进行进一步处理。此时网络抓包工具才能捕获到数据帧,但捕获内容不包括前导同步码、帧定界符。因此,实际抓取的数据帧长度最大为6字节的目的MAC、6字节的源MAC、2字节的帧类型、4字节的FCS加上最多1500字节的数据负载,总共1518字节。

问题三、ping包解析
命令行中执行:ping www.baidu.com 默认发包32字节,抓包查看32字节是在哪个字段里。
在这里插入图片描述
将ping包字节扩大到1000字节,命令行输入 ping www.baidu.com -l 1000
在这里插入图片描述
(4)FCS帧校验序列 4B :用来检测数据的完整性,不完整的会被之间丢弃(不会重传,靠上层实现重传)
在这里插入图片描述

(5)MAC地址 :代表一个网络接口的物理地址,全球唯一
在这里插入图片描述
MAC地址由两部分组成,分别是供应商代码和序列号。前24位是IEEE电气和电子工程师协会分配给厂商,后24位是厂商分配的用户。
数据链路层基于MAC地址进行帧传输。
上述问题二中有详细解析主机接收到数据帧的动作:1.检测FCS,通过下一步(反则丢弃)2.检测DMAC,通过交给上层(反则丢弃)。

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

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

相关文章

金蝶AAS-V9.0前后端部署

前言 包含金蝶AAS9.0部署,前端部署,后端部署。 金蝶AAS9.0部署 1. 下载金蝶AAS9.0安装包上传至服务器; 2. 解压安装包; unzip -d /opt/AAS-V9.0 AAS-V9.0.zip3. 配置JAVA路径; echo $JAVA_HOME vim /opt/AAS-9.0…

力扣HOT100 - 32. 最长有效括号

解题思路&#xff1a; 栈 class Solution {public int longestValidParentheses(String s) {int max 0;// 也可以使用 Stack<Integer> stacknew Stack<>();但Stack是遗留类&#xff0c;不推荐Deque<Integer> stack new LinkedList<>();stack.push(…

怎么做微信在线预约

在快节奏的现代生活中&#xff0c;我们总是追求更高效、更便捷的服务体验。而微信&#xff0c;这个拥有数亿用户的社交平台&#xff0c;早已不仅仅是一个聊天工具&#xff0c;它更是一个融合了多种功能的综合性服务平台。今天&#xff0c;就让我们一起探讨如何通过微信在线预约…

线程池的一些问题

核心线程数1.最大线程5.队列5.存活时间10s 1.场景一 如果核心线程数.被一直占用得不到释放.新进来1个任务.会怎么样?答: 会在队列中中死等. 只要进来的任务.不超过队列的长度,就会一直挡在队列中死等 package com.lin;import java.util.concurrent.Executors; import java.u…

通过阿里云的PAI基于开源LLM搭建RAG检索增强对话系统

5月9日参加阿里云AI云峰会活动&#xff0c;学习了下如何借助阿里云的PAI服务进行搭建RAG检索增加对话系统。 前提&#xff1a; 为了方便省钱&#xff0c;建议先通过免费的优惠圈&#xff0c;这样就可以先不花钱学习一下啦。开始实验之前&#xff0c;请务必打开 阿里云免费试用…

QT在场景中利用freetype实现独立的文字绘制子类QxFreeTypeTextItem

QT在场景中利用freetype实现独立的文字绘制子类QxFreeTypeTextItem&#xff0c;继上一章节讲过qt中如何编译freetype Qt编译和使用freetype矢量字库方法https://blog.csdn.net/wangningyu/article/details/138927379#QT利用freetype提取字库图片_qt freetype-CSDN博客文章浏览…

【SpringBoot】SpringBoot3-基本介绍

目录 环境基本介绍pom.xml启动器依赖管理机制分析为什么导入starter-web所有相关依赖都导入进来&#xff1f;为什么版本号都不用写&#xff1f;自定义版本号第三方的依赖 总结 自动配置机制理解默认的包扫描规则配置默认值按需加载自动配置总结 自动配置流程问题流程步骤流程总…

Python数据分析与数据可视化 概念

考试题型&#xff1a; 一、填空题&#xff08;1分*10&#xff09; 二、程序代码填空&#xff08;1分*20&#xff09; 三、读程序写结果&#xff08;10分*4&#xff09; 四、程序设计&#xff08;10分*1&#xff09; 五、问答题&#xff08;20分*1&#xff09; 考试范围&#x…

沃尔玛自建自养号测评的优势,提升产品排名的新选择

在沃尔玛平台上&#xff0c;产品排名和销量的提升对于卖家而言至关重要&#xff0c;而产品测评则是实现这一目标的有效途径。然而&#xff0c;市场上对于测评的需求激增&#xff0c;随之而来的是寻找测评服务的种种困难和风险。因此&#xff0c;越来越多的卖家选择自建自养号测…

cdn引入vue的项目嵌入vue组件——http-vue-loader 的使用——技能提升

最近在写MVC的后台&#xff0c;看到全是jq的写法&#xff0c;但是对于用惯了vue的我&#xff0c;真是让我无从下手。。。 vue的双向绑定真的很好用。。。 为了能够在cdn引入的项目中嵌入vue组件&#xff0c;则可以使用http-vue-loader了 步骤1&#xff1a;下载http-vue-loader…

使用TerraScan静态扫描KubernetsIaC文件

terrascan https://github.com/tenable/terrascan Terrascan 是基础架构即代码的静态代码分析器。Terrascan 允许&#xff1a; 将基础架构作为代码无缝扫描&#xff0c;以查找错误配置。监控已配置的云基础架构&#xff0c;以查找引入终端安全评估漂移的配置更改&#xff0…

10个必备功能跨境电商ERP开发全指南

跨境电商平台开发是当前电商行业的热门话题。随着全球贸易的不断发展&#xff0c;企业越来越关注并重视跨境电商ERP系统的开发和应用。在本文中&#xff0c;我们将深入探讨跨境电商ERP开发的必备功能&#xff0c;为您呈现全面的指南。 1. 跨境订单管理 跨境电商平台需要具备全…

go语言中Print,Printf和Println的区别

Print是Golang的fmt包中的内置函数&#xff0c;使用其操作数的默认格式打印格式并写入标准输出&#xff1b; Println是Golang的fmt包中的内置函数&#xff0c;用于在结尾处打印带有新行的消息到控制台。它需要零个或多个任意类型的参数&#xff0c;并使用空格分隔它们&#xff…

CST电磁仿真软件什么是Schematic?三维模型和电路协同仿真【小白必学教程】

什么是Schematic? 使用CST Design Studio进行的各种分析&#xff01; Schematic 进行三维仿真时&#xff0c;有时需要将3D模型和电路图放在一起进行仿真分析。比如需要天线和匹配电路协同仿真&#xff0c;两者构成完整的电路图可以系统地分析In/0ut特性。按下3D工作界面下方…

docker本地(非公网)搭建gpt-4-all 和 GPTS 多模态对话页面(支持Chat Gpt4o「omni」)

文章目录 GPT-4o简介API-key的获取Linux环境部署gpt-4-all 和 GPTS 多模态访问测试 GPT-4o简介 新模型 GPT-4o&#xff0c;其中的「o」代表「omni」&#xff08;即全面、全能的意思&#xff09;&#xff0c;这个模型同时具备文本、图片、视频和语音方面的能力 API-key的获取 …

在Ubuntu22.04搭建xfce远程桌面

由于Ubuntu22.04云服务器&#xff08;带GPU&#xff09;只开放部分端口&#xff0c;某些服务&#xff08;如nacos&#xff09;有Web前端需要访问&#xff0c;但是相应的端口并没有开放&#xff0c;只有SSH端口可以使用。于是&#xff0c;就在Ubuntu22.04上安装xfce桌面环境&…

JavaScript对象设计哲学:八种模式塑造高效代码

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、引言 &#x1f680;二、Object 构造函数 &#x1f9f1;&#x1f4cc; 基本用法&#x1f4cc; 重要性&#x1f4cc; 实际应用案例 三、对象字面量 &#x1f4d8;&#x1f4cc; 定义属性&#x1f4cc; 定义方法&#x1f4…

2023年数维杯国际大学生数学建模挑战赛D题洗衣房清洁计算解题全过程论文及程序

2023年数维杯国际大学生数学建模挑战赛 D题 洗衣房清洁计算 原题再现&#xff1a; 洗衣房清洁是人们每天都要做的事情。洗衣粉的去污作用来源于一些表面活性剂。它们可以增加水的渗透性&#xff0c;并利用分子间静电排斥机制去除污垢颗粒。由于表面活性剂分子的存在&#xff…

如何修改照片的dpi值?在线图片更改dpi快捷方法

不少小伙不知道如何去改变图片分辨率&#xff0c;因为能用的到分辨率dpi的地方也不多&#xff0c;但是当我们在求职、考公或者是打印照片的时候&#xff0c;就经常看到会要求图片分辨率为300dpi以上了&#xff0c;本文将分享一款图片处理工具&#xff0c;它能快速完成修改图片分…

Vue3专栏项目 -- 三、使用vue-router 和 vuex(上)

前面我们开发了两个页面的组件&#xff0c;现在我们需要把它们分成几个页面了&#xff0c;那么一个网页多个页面我们都熟悉&#xff0c;针对不同的url渲染不同的html静态页面&#xff0c;这是web世界的基本工作方式。 有时候我们点击一个东西&#xff0c;地址栏的路由跳转&…