一文搞懂数据链路层

news2024/9/30 5:30:43

数据链路层

    • 1. 简介
    • 2. MAC
    • 3. 以太网

1. 简介

(1)概念

链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。

数据链路(data link) 除了物理线路(双绞线电缆、同轴电缆、光线等介质)外,还包括通信协议来控制这些数据的传输。

数据链路层的协议定义了通过通信媒介互连设备之间的传输规范。

(2)功能

数据链路层将0、1序列的数据集合为一个叫做“”的块传递给物理层,物理层把二进制0、1序列的帧转换成电压高低、光的强弱,实现传输。

主要实现以下3个功能:

  • 封装成帧
  • 透明传输
  • 差错控制

(3)数据链路分类

数据链路名通信媒介传输速率主要用途
以太网同轴电缆10MbpsLAN
以太网双绞线电缆10Mbps~100GbpsLAN
以太网光纤电缆10Mbps~100GbpsLAN
无线电磁波数个 Mbps~LAN~WAN
ATM双绞线电缆/光纤电缆25Mbps/155Mbps/622MbpsLAN~WAN
FDDI光纤电缆双绞线电缆100Mbps
帧中继双绞线电缆/光纤电缆约64k~1.5MbpsWAN
ISDN双绞线电缆/光纤电缆64k~1.5MbpsWAN

2. MAC

MAC地址(Media Access Control address)是用于标识网络设备的唯一标识符。它是一个由6组十六进制数字(0-9,A-F)组成的48位地址。
在这里插入图片描述

  • 第1位:单播地址(0)/多播地址(1)
  • 第2位:全局地址(0)/本地地址(1)
  • 第3-24位:厂商识别码,由IEEE管理并保证各厂家之间不重复
  • 第25~48位:由厂商管理并保证产品之间不重复

3. 以太网

(1)概念

以太网(Ethernet)是目前应用最普遍的计算机局域网技术,最早由美国 Xerox公司创建并由Xerox、Intel和 DEC公司联合开发形成了基带局域网规范。

后来,IEEE 802.3标准制定了以太网的技术标准,规定了包括物理层的连线、电子信号和介质访问层协议的内容。目前,以太网已取代了令牌环、FDDI和ARCNET等其他局域网技术。

互联网与以太网:互联网指的是通过TCP/IP协议族相将各个局域网连接在一起网络。

在这里插入图片描述
(2)以太网帧

以太网帧由1、0交替组成的前导码(Preamble)表示开始,确保对端网卡能够与其同步。前导码占8个字节,末尾是值为“11”的SFD(StartFrame Delimiter)的域(以太网中最后2比特称为SDF,而IEEE802.3中最后8比特称为SDF),这个域之后就是以太网的帧体。

在这里插入图片描述
以太网帧帧体组成如下:

  • 以太网的首部(14个字节):目标 MAC地址(6个字节)、源MAC地址(6个字节)、上层协议类型(2个字节)
  • 数据(46~1500个字节)
  • 帧检验序列(FCS,FrameCheck Sequence,4个字节)

在通信传输过程中由于噪声干扰,可能会影响发送数据导致乱码位的出现。FCS 中保存着整个帧除以生成多项式的余数在接收端也用同样的方式计算,如果得到FCS 的值相同,就判定所接收的帧没有差错,否则就将将那些受到噪声干扰的错误帧丢弃。

在这里插入图片描述

IEEE802.3 Ethernet与一般的以太网在帧的稍有区别。以太网帧中表示类型的字段,在IEEE802.3以太网中却表示帧的长度。此外,数据部分的前端还有LLC 和 SNAP等字段。

在这里插入图片描述

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

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

相关文章

Java获取方法参数名称方案||SpringBoot配置顺序注解

一: Java获取方法参数名称的方法 普盲: getDeclaredMethods与getMethods的的区别 1、getMethods返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口的公共 member 方法。 2、getDeclaredMethods返回 Method 对象的一个数组&#xff0c…

STM32+ESP8266水墨屏天气时钟:简易多级菜单(数组查表法)

项目背景 本次的水墨屏幕项目需要做一个多级菜单的显示,所以写出来一起学习,本篇文章不单单适合于水墨屏,像0.96OLED屏幕也适用,区别就是修改显示函数。 设计思路 多级菜单的实现,一般有两种实现的方法 1.通过双向…

HTTPS协议的工作原理:保护网络通信的安全盾牌

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

力扣每日一题 2024/3/24 零钱兑换

题目描述 用例说明 思路讲解 动态规划五步法 第一步确定dp数组的含义:dp[i]为凑到金额为i所用最少的硬币数量 第二步确定动态规划方程:凑足金额为j-coins[i]所需最少的硬币个数为dp[j-coins[i]],那凑足金额为j所用的最少硬币数为dp[j-coin…

【C语言】C语言实现扫雷三子棋

主页:醋溜马桶圈-CSDN博客 专栏:C语言_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.C语言实现三子棋 1.1 整体思路 1.2 游戏菜单的创建 1.3 游戏主体的实现 1.3.1 棋盘的初始化 1.3.2 打印棋盘 1.3.3 玩家下…

3分钟搞懂示波器测原副边波形

大家好,我是砖一。 今天分享一下如何用示波器测试原副边的波形,验证电源设计规格准确性。 一,试验目的 假设我们现在拿到的样品是属于开关电源类型的。 1,我们对于电源工程师设计出的一个开关电源样品测试原副边波形&#xff…

手撕算法-爬楼梯

描述 分析 一维动态规划。dp[i] dp[i-1] dp[i-2]; 初始状态&#xff1a;d[0] 0, dp[1] 1, dp[2] 2; 返回值:dp[n]; 代码 class Solution {public int climbStairs(int n) {if (n < 2)return n;int[] dp new int[n 1];dp[1] 1;dp[2] 2;for (int i 3; i < …

matlab批量读取目录下的文件的方法

批量处理可以提高效率&#xff0c;这里提供一个可以批量读取nc文件的代码&#xff1a; address C:\Users\Hello World!!\DESKTOP\TerraClimate_ppt\; % Get the list of files udir address; form *.nc; % Get the list of station names files GetFiles(udir,form); [n,p…

MySQL--select count(*)、count(1)、count(列名) 的区别你知道吗?

MySQL select count(*)、count(1)、count(列名) 的区别&#xff1f; 这里我们先给出正确结论&#xff1a; count(*)&#xff0c;包含了所有的列&#xff0c;会计算所有的行数&#xff0c;在统计结果时候&#xff0c;不会忽略列值为空的情况。count(1)&#xff0c;忽略所有的列…

IIS7/iis8/iis10安装II6兼容模块 以windows2022为例

因安全狗的提示 安全狗防护引|擎安装失败 可能原因是: IIS7及以上版本末安装1IS6兼容模块! .所以操作解决 如下. 在开始菜单中,找到服务器管理器.找到下图的IIS,右键添加角色和功能,找到web服务器的管理工具选项,iis6管理兼容性 打钩并安装. 如下图

C++ 实现BSTree

目录 BSTree.h 框架 insert insertR find findR erase eraseR InOrder 拷贝构造 赋值重载 BSTree.h 框架 template<class K> struct BSTreeNode {BSTreeNode<K>* _left;BSTreeNode<K>* _right;K _key;BSTreeNode(const K& key):_left(null…

2024智能EDM邮件营销系统使用攻略

在数字化营销领域&#xff0c;智能EDM&#xff08;Electronic Direct Mail&#xff09;邮件营销作为一种高效、精准的推广方式&#xff0c;正日益受到企业的高度重视。而要实现这一策略的成功落地&#xff0c;一个高可靠性和高稳定性的专业邮件发送平台则是不可或缺的关键环节。…

Linux V4L2 应用编程

V4L2&#xff1a;Video4Linux2&#xff0c;是 Linux 内核中的一个框架&#xff0c;提供了一套用于视频设备驱动程序开发的 API。它是一个开放的、通用的、模块化的视频设备驱动程序框架&#xff0c;允许 Linux 操作系统和应用程序与各种视频设备&#xff08;如摄像头、视频采集…

Less-1(sqlmap手工注入攻击)--sqli

第一步&#xff1a;判断他是什么sql注入&#xff1f; 1 报错 1 and 12 -- 错误结果(--表示注释符) 1 and 11 -- 正确结果 第二步&#xff1a;判断返回字段数 ?id1 order by 3-- 正确显示结果 ?id1 order by 4--当列数为4时开始报错&#xff0c;所以只有三列 注&#xf…

aurora仿真使用等

IP设置 代码 aurora_8b10b aurora_8b10b_inst (/**********************************************************************************///axi_stream tx.s_axi_tx_tdata(s_axi_tx_tdata), // input wire [0 : 31] s_axi_tx_tdata.s_axi_tx_tkeep(s_axi_tx_…

C++|类封装、类的分文件编写练习:设计立方体类、点和圆的关系

文章目录 练习案例1&#xff1a;设计立方体类CPP代码 练习案例2:点和圆的关系CPP代码 代码总结类的分文件编写 练习案例1&#xff1a;设计立方体类 设计立方体类(Cube) 求出立方体的面积和体积 分别用全局函数和成员函数判断两个立方体是否相等。 CPP代码 class Cube { pub…

【数据结构】堆和树详解堆和二叉树的实现堆的top-k问题

主页&#xff1a;醋溜马桶圈-CSDN博客 专栏&#xff1a;数据结构_醋溜马桶圈的博客-CSDN博客 gitee&#xff1a;mnxcc (mnxcc) - Gitee.com 目录 1.树概念及结构 1.1 树的概念 2.2 树的相关概念 1.3 树的表示 1.4 树在实际中的运用 2.二叉树的概念及结构 2.1 二叉树的概念…

手撕算法-长度最小的子数组

描述 分析 滑动窗口。窗口内的和大于等于tatger时&#xff0c;记录此时的长度&#xff0c;并比较是不是最小长度。窗口左边界右移&#xff0c;直到窗口内的和小于tatger。窗口内的和小于tatger时&#xff0c;窗口右边界右移。 代码 class Solution {public int minSubArray…

基于python+vue分类信息服务平台移动端的设计与实现flask-django-php-nodejs

分类信息服务平台是在Android操作系统下的应用平台。为防止出现兼容性及稳定性问题&#xff0c;框架选择的是django&#xff0c;Android与后台服务端之间的数据存储主要通过MySQL。用户在使用应用时产生的数据通过 python等语言传递给数据库。通过此方式促进分类信息服务平台信…

牛客NC108 最大正方形【中等 动态规划 Java,Go,PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/0058c4092cec44c2975e38223f10470e 思路 动态规划: 先初始化第一行和第一列。然后其他单元格依赖自己的上边&#xff0c;左边和左上角参考答案Java import java.util.*;public class Solution {/*** 代码中的类…