HCIA_数据链路层

如果数据进行封装时,基于E2或者802.3标准,此时我们称之为是一个以太网帧

1、EthernetII

采用EthernetII协议会在数据基础之上多出18Byte,EthernetII的数据长度是46-1500B

  • FCS(Frame check Sequence)帧校验序列:算法——CRC循环冗余校验(整体信息),FSC用于差错校验。
  • Type:用于标识上层的协议。
  • S.MAC(Source Mac):源mac,发送者的mac信息。
  • D.MAC(Destination Mac):目的mac,接收者的mac信息
  • MAC地址:物理地址(网卡地址)
    • 每个设备出厂时,烧录进网卡芯片中。
    • 在一个以太网中,标识设备在链路上的什么位置。
2、IEEE802.3
  • 采用IEEE802.3协议会在数据基础之上多出21Byte~26Byte(取决于是否使用的是私有协议(SNAP)),IEEE802.3的数据长度是38-1492B
  • 如果对于数据链路层的协议,需要进行额外的控制,或者开发某一类私有化的协议,此时使用 802.3。

  • Length:记录data长度
  • LLC(Logical Link Control)逻辑链路控制:
    • D.SAP 目标服务接入点:标识目标端上层的协议。?
    • S.SAP 源服务接入点:标识源端数据采用的协议。?
    • Control:目前没有被开发出来
  • SNAP(Sub Network Access Point)子网络接入点:
    • 如果采用公有化协议,此字段是不会出现的。只有使用私有化协议,SNAP字段才会被激活。
    • Org Code:机构标识
    • Type:PID,标识厂商的私有化协议是什么。
3、MAC地址

MAC地址由两部分组成:

  • 供应商代码:前24位代表该供应商代码,由IEEE管理和分配。
  • 序列号:剩下的24位序列号由厂商自己分配。

单播:通信形式上,点对点,单对单的通信,类似QQ私聊

  • 数据封装时,E2/802.3的源MAC和目的MAC都是单播MAC,则为单播通信。
  • 单播MAC地址:从高到低第8个bit为0,且一定为0,其他任意。能够配置在设备的网卡上的MAC地址叫做单播MAC地址。

组播:通信形式上,点对多点,单对多的通信,类似QQ群聊

  • 数据封装时,因为组播代表的是一组的集合,面向的一组的通信,此时该地址不能成为数据的源地址,仅可以充当数据的目的地址。(D:组播MAC,S:单播MAC)
  • 组播MAC地址:从高到低第8个bit为1,且一定为1,其他任意。
  • 组播通信的特点:通信前,每个设备要自己进行加组,如果没有加入进该组,则数据即便接受也无法处理,如果此时已经提前加组,则该数据可以进行处理。【IGMP->加组/应用实现自动加组】【互联网组管理协议=组播的】
  • 组播地址的特点:是一个虚拟的MAC地址,不存在于设备的接口上,该MAC地址第8bit一定为1.

广播:在通信形式上,点对所有,单对所有的通信。广而播之/强制的接受处理。

  • 数据封装时,因为广播代表的是所有人集合,面向所有人的通信,此时广播MAC不能作为数据的源地址,仅可以充当数据的目的地址。
  • 广播MAC地址:从高到低第48个bit全部为1,且一定为1。
3、数据发送和接受的动作

发送者的动作:

  • 由发送者填充源目的Mac信息,以及Type字段标识上层协议,以及CRC循环冗余校验,将数值填充至FCS。填充完毕之后,此时借助物理层,转变为二进制比特流,从链路中传递。

情况一:目的mac为单播mac

单播数据抵达接收端接口以后,接收者的动作:

  • 首先看目的mac地址(看是否是自己的mac地址,如果是进行下一步,如果不是丢弃)
  • 将数据也进行CRC检验,比对FCS字段,如果不同则丢弃,如果相同进行下一步。
  • 查看type字段,交由type字段标识的上层协议处理。

情况二:目的mac为组播mac

组播数据抵达接收端接口以后,接收者的动作:

  • 首先看目的mac地址,查看自己本地是否加组。如果加组进行下一步,如果没有加组则丢弃
  • 将数据也进行CRC检验,比对FCS字段,如果不同则丢弃,如果相同进行下一步。
  • 查看type字段,交由type字段标识的上层协议处理。

情况三:目的mac为广播mac

广播数据抵达接收端接口以后,接收者的动作:

  • 首先看目的mac地址如果是广播,则直接进行下一步。
  • 将数据也进行CRC检验,比对FCS字段,如果不同则丢弃,如果相同进行下一步。
  • 查看type字段,交由type字段标识的上层协议处理。

分组转发:数据切割为大小一致的长度此时传递时网络中每一个数据的长度大致相同,提升数据的转发效率。

MTU:最大传输单元存在每条链路中的概念如果报文的MTU值过大,而链路能够承载的MTU值过小,则可能导致数据丢弃。

当上层承载不同的协议时,E2的标识取值熟记的如下:规定好的。

  • ARP = 0x0806
  • IPv4 = 0x0800
  • IPv6 = 0x86DD

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux安装nodejs问题

安装nodejs后,使用node -v报下图 参考下面两个可解决:【Linux-编译器gcc/glibc升级】CentOS7.9使用NodeJS18时报错/lib64/libm.so.6: version GLIBC_2.27‘ not found-CSDN博客 报错信息ImportError: /lib64/libstdc.so.6: version CXXABI_1.3.9‘ not f…

技术分享 | app自动化测试(Android)--元素定位方式与隐式等待

元素定位是 UI 自动化测试中最关键的一步,假如没有定位到元素,也就无法完成对页面的操作。那么在页面中如何定位到想要的元素,本小节讨论 Appium 元素定位方式。 Appium的元素定位方式 定位页面的元素有很多方式,比如可以通过 I…

C++day4

1.思维导图 2.设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函数、析构函数和拷贝构造函数、拷贝赋值函数。 #include <iostream&…

mybatis在springboot当中的使用

1.当使用Mybatis实现数据访问时&#xff0c;主要&#xff1a; - 编写数据访问的抽象方法 - 配置抽象方法对应的SQL语句 关于抽象方法&#xff1a; - 必须定义在某个接口中&#xff0c;这样的接口通常使用Mapper作为名称的后缀&#xff0c;例如AdminMapper - Mybatis框架底…

2023年中国金融控股公司研究报告

第一章 行业概况 1.1 定义 金融控股公司这一术语最初源自美国&#xff0c;特别是在美国的《金融服务法案》关于银行控股公司组织结构的条文中&#xff0c;首次出现了“金融控股公司”&#xff08;Financial Holding Company&#xff09;这一法律术语&#xff0c;尽管法案中并…

使用Ruby编写通用爬虫程序

目录 一、引言 二、环境准备 三、爬虫程序设计 1. 抓取网页内容 2. 解析HTML内容 3. 提取特定信息 4. 数据存储 四、优化和扩展 五、结语 一、引言 网络爬虫是一种自动抓取互联网信息的程序。它们按照一定的规则和算法&#xff0c;遍历网页并提取所需的信息。使用Rub…

《安富莱嵌入式周报》第326期:航空航天级CANopen协议栈,开源USB PD电源和功耗分析,开源EtherCAT伺服驱动板,时序绘制软件,现代机器人设计

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 更新一期视频教程&#xff1a; BSP视频教程第28期&#xff1a;CANopen协议栈专题&#xff0c;CANopen主从机组网实战&a…

考研408-计算机网络 第一章-计算机网络体系结构学习笔记及习题

第一章 计算机网络体系结构 一 计算机网络概述 1.1 概念及功能 1.1.1 计算机网络的概念 计算机网络就是互连的、自治的计算机系统的集合 互连&#xff1a;通过通信链路互联互通 自治&#xff1a;各个节点之间无主从关系&#xff0c;高度自治的 1.1.2 计算机网络的功能 功…

【STM32】Systick定时器

一、STM32的5种定时器简介 1.独立看门狗&#xff08;IWDG&#xff09; VS 窗口看门狗&#xff08;WWDG&#xff09; 1.独立看门狗&#xff08;IWDG&#xff09; 独立看门狗&#xff1a;当没有到设定时间之前&#xff0c;给它喂了狗&#xff0c;就会回到初始值。 2.窗口看门狗…

【Linux】:初识git || centos下安装git || 创建本地仓库 || 配置本地仓库 || 认识工作区/暂存区(索引)以及版本库

&#x1f4ee;1.初识git Git 原理与使用 课程⽬标 • 技术⽬标:掌握Git企业级应⽤&#xff0c;深刻理解Git操作过程与操作原理&#xff0c;理解⼯作区&#xff0c;暂存区&#xff0c;版本库的含义 • 技术⽬标:掌握Git版本管理&#xff0c;⾃由进⾏版本回退、撤销、修改等Git操…

.NET Framework中自带的泛型委托Func

Func<>是.NET Framework中自带的泛型委托&#xff0c;可以接收一个或多个输入参数&#xff0c;并且有返回值&#xff0c;和Action类似&#xff0c;.NET基类库也提供了多达16个输入参数的Func委托&#xff0c;输出参数只有1个。 1、Func泛型委托 .NET Framework为我们提…

声音训练数据集哪里找?中文、英文

一般找数据集的都是需要训练底膜的&#xff0c;大家git上找的开源项目大多是预训练模型。预训练就是别人已经训练好的底膜&#xff0c;你在他的基础上进行调整。而我们训练如果他这个模型不理想是需要训练底膜的。 找的方式是从git开源上找 中文 推荐MockingBird&#xff0c;…

单链表的实现

单链表的实现 单链表的链表的概念及结构概念结构链表结构的分类链表常用的结构 无头单向不循环链表头文件 SList.h结构体 struct SListNode 源文件 SList.c创建结点 SLNode* SLBuyNode(SLDataType x)初始化链表 void SLInit(SLNode** pphead)链表尾部插入 void SLPushBack(SLNo…

【Qt之绘制兔纸】

效果 代码 class drawRabbit: public QWidget { public:drawRabbit(QWidget *parent nullptr) : QWidget(parent) {}private:void paintEvent(QPaintEvent *event) {QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing, true);// 绘制兔子的耳朵painter.s…

案例研究|腾讯音乐娱乐集团与JumpServer共探安全运维审计解决方案

近年来&#xff0c;得益于人民消费水平的提升以及版权意识的加强&#xff0c;用户付费意愿和在线用户数量持续增长&#xff0c;中国在线音乐市场呈现出稳定增长的发展态势。随着腾讯音乐于2018年12月上市&#xff0c;进一步推动了中国在线音乐市场的发展。 腾讯音乐娱乐集团&a…

用Rust和Scraper库编写图像爬虫的建议

本文提供一些有关如何使用Rust和Scraper库编写图像爬虫的一般建议&#xff1a; 1、首先&#xff0c;你需要安装Rust和Scraper库。你可以通过Rustup或Cargo来安装Rust&#xff0c;然后使用Cargo来安装Scraper库。 2、然后&#xff0c;你可以使用Scraper库的Crawler类来创建一个…

Config

因为我们微服务的模块太多了&#xff0c;这样每一个都有一个application.yml文件&#xff0c;假如说此时数据库的配置变了&#xff0c;这样一个个修改yml文件太麻烦了&#xff0c;所以我们想要一套集中式的&#xff0c;动态的配置管理设施是必不可少的。此时SpringCloud Config…

爬取Elastic Stack采集的Nginx内容

以下是一个简单的Go语言爬虫程序&#xff0c;用于爬取Elastic Stack采集的Nginx内容。请注意&#xff0c;这只是一个基本的示例&#xff0c;实际使用时可能需要根据具体情况进行修改和扩展。 package mainimport ("fmt""net/http""io/ioutil" )…

Intel oneAPI笔记(4)--jupyter官方文档(Unified Shared Memory)学习笔记

前言 本文是对jupyterlab中oneAPI_Essentials/03_Unified_Shared_Memory文档的学习记录&#xff0c;主要包含对统一共享内存的讲解 USM概述 USM (Unified Shared Memory)是SYCL中基于指针的内存管理。对于使用malloc或new来分配数据的C和C程序员来说应该很熟悉。当将现有的C…

【H616_语言小美_控制安卓刷抖音项目 orangePi zero2 (已开源) 】.md uptada:23/11/07

文章目录 H616_语言小美_控制安卓刷抖音项目小美效果展示H616 ubuntu系统 安装adb智能公元 SU-03T 离线语音模组 固件制作配合串口实现 小美_控制安卓刷抖音 H616_语言小美_控制安卓刷抖音项目 注意&#xff1a;orangePi zero2 H616 安装系统为ubuntu 小美效果展示 语言小美 …
最新文章