华为HCIA-Datacom学习笔记——OSI数据链路层

2023-11-10

系列文章目录

第一章:网络的定义和网络的历史

第二章:数据交换传输形式

第三章:OSI物理层

第四章:OSI数据链路层



前言

本文是华为HCIA-Datacom网络工程师的个人学习笔记,本人能力有限内容仅供参考,欢迎各为大佬指正。

一、以太

以太(Ether)是古希腊哲学家亚里士多德所设想的一种物质。是物理学史上的一种假想的物质概念。在亚里士多德看来,物质除了水、火、气、土之外,还存在于天空上层的以太。随着近代物理的发展人们将以太定义为电磁波,电磁波描述网络的传输

1、以太网

用以太组成一个网的结构称为以太网。

二、网络通信协议

OSI
TCP/IP
IPX/SPX——novell(诺威尔软件公司)提出的网络通信协议
SNA——IBM(蓝色巨人公司)提出的网络通信协议
小结:各个通信协议都有相应的对标,只是相应的划分与命名有区别。

③、局域网下的协议划分

Ethernet 2(E2) IEEE 802.3(802.3)
1.D MAC:目的 MAC地址 1.D MAC:目的 MAC地址
2.S MAC:源 MAC地址 2.S MAC:源 MAC地址
3.TYPE:类型—标识网络层的协议 length=长度–标识data数据的大小
/ LLC=逻辑链路控制,目标服务接入点=SAP
/ D SAP:我要去往的服务
/ S SAP:发送时携带的自身服务
/ control:控制器,迄今为止没有开发出来
/ SNAP:子网络接入服务点-标识私有路由技术
/ org code:标识出谁研发的type=PID:标识研发出来的是什么技术
4.FCS:帧校验序列-差错检测-CRC循环冗余校验 4.FCS:帧校验序列-差错检测-CRC循环冗余校验
E2的帧格式 802.3的帧格式

E2的单播数据传输过程:
1、由发送者填充源目MAC地址信息,以及TYPE字段表示上层协议,并且进行CRC校验。将校验的值填充至FCS字段中,向下让物理层进行转发。
2、接收端,收到数据后
3、
(1)首先检查目的MAC是否为自身,如果不是则丢弃,如果是进行下一步处理
(2)将数据同样进行一次CRC校验,然后比对自身FCS字段,如果不同则丢弃,如果相同则进一步处理;
(3)查看TYPE字段,交由type字段标识,交由上层协议处理

注意:E2承载开放协议,802.3既可以承载开放协议,也可以承载私有协议。

选择:如果面对,数据传输量很大,并且还需要压缩上层DATA数据长度时–优选E2
如果面对,数据流量,进行额外的私有协议传输—优选802.3
数据在经过数据链路层封装时,只能封装一种

三、以太网的MAC地址

1.mac地址

mac地址是物理网卡上的物理地址,烧录在网卡上。具有不可替换,全球唯一的特性(相当于人的身份证号码)。由IEEE定义。

IEEE=电气电子工程师学会–全球最大的专业技术组织—定义各类通信行业领域规则的。

划分步骤将48位进行划分
OUI——24位
24位——划分给华为(供应商)
由华为继续划分
12位——0代表交换机
12位——1代表路由器
物理地址. . . . . . . . . . . . . : 02-00-4C-4F-4F-50
16进制对映2进制的话—1比4的关系
1=0001
2=0010
3=0011


A(10)=1010
B(11)=1011
C(12)=1100
D(13)=1101
E(14)=1110
F(15)=1111

2.MAC类型

对于MAC地址来说,根据通信形式不同还存在不同MAC类型:
单播:物理网卡上所有的MAC地址都为单播地址数据通信,进行点到点的访问,就叫单播通信数据封装,源单播MAC,目的单播MAC,则为单播通信。

组播 :虚拟出来的MAC地址,IGMP协议生成的,将单播地址加入进来数据通信,点到多点进行访问,那么就叫组播通信数据封装,源单播MAC和目的组播MAC通信时,则为组播通信。

== 广播==:数据通信,点到所有进行访问,那么就加广播通信数据封装,源单播MAC和目的广播MAC通信时,则为广播通信。
区分形式:
单播MAC地址:从左向右,第8bit,为0,就为单播通信

组播MAC地址:从左向右,第8bit,为1,就为组播通信

广播MAC地址:从左向右,全部为1,就为广播通信

各个环境的总结

场景A-单播环境:

1、由发送者填充源目MAC地址信息,以及TYPE字段表示上层协议,并且进行CRC校验。将校验的值填充至FCS字段中,向下让物理层进行转发。
2、接收端,收到数据后
3、(1)首先检查目的MAC是否为自身,如果不是则丢弃,如果是进行下一步处理
(2)将数据同样进行一次CRC校验,然后比对自身FCS字段,如果不同则丢弃,如果相同则进一步处理;
(3)查看TYPE字段,交由type字段标识,交由上层协议处理。

场景B-组播环境

1、由发送者填充源目MAC地址信息,以及TYPE字段表示上层协议,并且进行CRC校验。将校验的值填充至FCS字段中,向下让物理层进行转发。
2、接收端,收到数据后
3、(1)首先检查目的MAC是否为自身,如果不是则丢弃,如果是则查看自身是否加入到组播组中,如果没加入丢弃,如果加入了进行下一步
(2)将数据同样进行一次CRC校验,然后比对自身FCS字段,如果不同则丢弃,如果相同则进一步处理;
(3)查看TYPE字段,交由type字段标识,交由上层协议处理。

场景C-广播环境

1、由发送者填充源目MAC地址信息,以及TYPE字段表示上层协议,并且进行CRC校验。将校验的值填充至FCS字段中,向下让物理层进行转发。
2、接收端,收到数据后
3、(1)首先检查目的MAC是否为自身,如果是广播,如果是进行下一步处理
(2)将数据同样进行一次CRC校验,然后比对自身FCS字段,如果不同则丢弃,如果相同则进一步处理;
(3)查看TYPE字段,交由type字段标识,交由上层协议处理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

华为HCIA-Datacom学习笔记——OSI数据链路层 的相关文章

  • JS实现随机抽奖功能

    点击开始按钮开始抽奖 div依次变红 下面是js代码 需要的自取
  • MLOps极致细节:4. MLFlow Projects 案例介绍(Gitee代码链接)

    MLOps极致细节 4 MLFlow Projects 案例介绍 Gitee代码链接 MLFlow Projects允许我们将代码及其依赖项打包为一个可以在其他平台上以可复制 reproducible 和可重用 reusable 的方式运行
  • 对称群与置换群 定义

    我刚接触抽象代数的那段时间 一直在考虑一个问题 抽象代数有什么实际应用 后来听说 群在研究一些具有对称性质的对象时有奇效 于是我试着用群去描述一些简单的几何变换 发现确实如此 这就是我在置换那篇文章的最后让大家思考等边三角形变换的原因 如果
  • C++多态概念和意义

    目录 一 什么叫重写 二 面向对象期望的重写 1 示例分析 2 所期望的重写 三 多态的概念和意义 1 多态的概念 2 C 如何支持多态概念 3 多态内部运行剖析 4 多态的意义 5 修改示例代码 四 静态联编和动态联编 五 小结 一 什么
  • DragGAN报错Setting up PyTorch plugin “bias_act_plugin“... Failed!和FAILED: bias_act.cuda.o解决办法

    问题 DragGAN终于开源了 于是下载安装结果报错了 查了一大堆资料 都没有解决办法 于是安装了个ChatGLM2 6B 在上面将自己的问题粘贴上去 给出了解决方案 结果直接解决了一天没有解决的问题 下面附上运行之后报的错误 File u
  • nestjs:改变debug端口

    目的 多个项目 如果不改调试端口 会出现无法同时调试的情况 说明 nest start debug port port 不写默认为9229
  • C++11列表初始化

    2023年7月17日 周一上午 今天在看GitHub上的源码时看到了这种用法 于是研究了一下 并把自己的研究成果记录成博客 目录 C 11为什么要推出列表初始化 举例说明 统一初始化语法 对象和容器的初始化得以用一种统一的方式来进行 防止窄

随机推荐

  • glsl语法整理

    glsl 语法 main 方法表示入口函数 标量 在GLSL中标量只有bool int和float三种 向量 共有vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3和bvec4九种类型
  • MySQL8 EXPLAIN 命令输出的都是什么东西?这篇超详细!

    引子 小扎刚毕业不久 在一家互联网公司工作 由于是新人 做的也都是简单的CRUD 刚来的时候还有点不适应 做了几个月之后 就变成了熟练工了 左复制 右粘贴 然后改改就是自己的代码了 生活真美好 有一天 领导说他做的有个列表页面速度很慢 半天
  • 结构体的总结

    目录 一 结构体的定义 二 对结构体的重命名 三 结构体和指针的结合 四 结构体和数组的结合 五 结构体大小 六 结构体嵌套 七 动态内存与结构体 八 总结 用结构体对学生成绩实行升序排序 一 结构体的定义 我们之前接触的数据类型有 基本数
  • GreenDAO数据库版本升级

    GreenDAO在进行默认的数据库升级时 会采取先删除所有的表 再全部重新建的操作 这就意味着所有的数据都会遗失 public void onUpgrade SQLiteDatabase db int oldVersion int newV
  • AttributeError: ‘NoneType‘ object has no attribute ‘shape‘

    在运行训练文件时 出现了这样的问题 AttributeError NoneType object has no attribute shape 后来参考了大神文章后发现是因为有的text文件路径不对 改了文件路径后运行没问题了 还可能有以下
  • 卡尔曼滤波(Kalman filter)及预测

    参考文章 https blog csdn net baidu 38172402 article details 82289998 https www jianshu com p 2768642e3abf kalman滤波的作用 1 数据 滤
  • 多层感知机的简洁实现

    import torch from torch import nn from torch nn import init import numpy as np import sys import torchvision from torchv
  • python 中,空的list是否等于None

    文章目录 最近在写测试用例过程中 在判断一个list为空时 随手写下了如下代码 if listinstance is None do something pass 发现当list为空时 程序死活进不去后面的处理语句 于是发现了以下相关文章
  • 从Java到Go:掌握Go语言开发地理位置服务

    目录 目录 1 为什么选择Go 2 Go语言基础 2 1 语法结构 2 2 变量 常量和类型 2 3 函数
  • 位运算技巧集

    位运算技巧集 一般用0xfffffff这种16位数 代替32位二进制数 Java中的幂指数运算不能是 这个符号代表的是异或运算符 与或非异或 两个大于号 向右移位运算 一般可以通过先将需要处理的数字变为二进制数 在观察数字 运算和最终结果之
  • python tcp连接状态判断_Socket套接字连接状态判断,接收数据笔记

    最近工作中涉汲到一些Socket 方面应用 如断线重连 连接状态判断等 今天做了一些总结 1 判断Socket 连接状态 通过 Poll 与 Connected 结合使用 重点关注 SelectRead 模式 方法名 Socket Poll
  • 刷脸支付市场谁才会是最后的大赢家

    2019年 刷脸支付设备的更新非常频繁 支付宝跟微信都推出了自己更新的刷脸设备 这是中国银联也开始战略规划准备迈进人脸识别这个移动支付市场 那么最后谁才会是最后的大赢家呢 每个行业 似乎都有相生相克的行业对手 他们之间的每一次交手 都能成为
  • 睿智的目标检测56——Pytorch搭建YoloV5目标检测平台

    睿智的目标检测56 Pytorch搭建YoloV5目标检测平台 学习前言 源码下载 YoloV5改进的部分 不完全 YoloV5实现思路 一 整体结构解析 二 网络结构解析 1 主干网络Backbone介绍 2 构建FPN特征金字塔进行加强
  • AD629测量负载电流的电路原理详解——精妙绝伦的电路设计

    AD629是ADI公司的一款精密差动放大器 可以承受最大270V的共模电压 使用AD629测量负载电流可以实现在有效抑制共模电压的同时放大差模电压以测量负载电流 如果要测量一个很小的差模信号 很多工程师的第一反应肯定是想到使用仪表放大器 然
  • stat 命令 – 显示文件的状态信息

    stat 命令的功能是用于显示文件的状态信息 Linux 系统中每个文件都有三个 历史时间 最后访问时间 ATIME 最后修改时间 MTIME 最后更改时间 CTIME 用户可以使用 stat 命令查看到它们 进而判别有没有其他人修改过文件
  • unity AR开发中遇到的一些错误总结

    1 Vuforia initialization failed 错误提示如下 Vuforia initialization failed UnityEngine Debug LogError Object Vuforia VuforiaAb
  • JDBC 注册数据库驱动语句

    先附上Microsoft SQL Server JDBC Driver 官方下载地址 https www microsoft com zh cn download driver aspx 初学JDBC 由于数据库软件的不同 我不能按着书上的
  • docker安装及修改默认镜像下载路径和配置加速器

    官方安装 Install Docker Engine on Ubuntu Docker Documentation 镜像存储迁移 Ubuntu20 04修改docker镜像存储位置并进行数据迁移 EastWood001 博客园 cnblog
  • C++运算符的重载

    前言 运算符重载是编译器提供给用户自定义的一种更方便的工作方式 定义 其实就是重新定义一些运算符的意思的 比如是让加法可以在类之间进行 当然我们要使用到关键字operator 话不多说 直接上代码 class Stu public frie
  • 华为HCIA-Datacom学习笔记——OSI数据链路层

    系列文章目录 第一章 网络的定义和网络的历史 第二章 数据交换传输形式 第三章 OSI物理层 第四章 OSI数据链路层 文章目录 系列文章目录 第一章 网络的定义和网络的历史 第二章 数据交换传输形式 第三章 OSI物理层 第四章 OSI数