计算机网络:(六)超详细讲解数据链路层 (附带图谱表格更好对比理解)
计算机网络:(六)超详细讲解数据链路层
- 前言
- 一、数据链路层
- 1. 数据链路层是什么?
- 2. 哪些设备需要数据链路层?
- 3. 数据链路层如何工作?
- 4. 数据链路层的俩种信道
- 4.1 点对点信道:一对一
- 4.2 广播信道:一对多
- 二、使用点对点信道的数据链路层
- 1. 物理链路
- 2. 数据链路
- 3. 数据链路层的运输单位(帧)
- 3.1 帧的产生过程(三层简化模型)
- 3.2 只看数据链路层
- 三、数据链路层的三大基本功能
- 1. 封装成帧
- 1.1 什么是封装成帧?
- 1.2 如何定界?
- 2. 透明传输
- 2.1 问题:数据里如果有SOH/EOT(帧开始符,帧结束符)怎么办?
- 2.2 解决方案:透明传输的实现机制
- 字符填充(字节填充)
- 比特填充(位填充)
- 2.3 透明传输的核心目标
- 3. 差错检测
- 3.1 比特差错:传输中0变1或1变0
- 3.2 检测工具:CRC(循环冗余检验)
- (1)核心思想:给数据加一个“校验码”
- (2)接收端:检查校验码是否匹配
- (3)示例计算:
- 4. 点对点信道数据链路层的“三步曲”
- 二、点对点协议 PPP
- 1. PPP协议是什么?
- 2. PPP的核心特点
- 3. PPP协议的组成
- 4. PPP帧格式
- 5. PPP协议的工作流程
- 6. PPP状态图
- 三、使用广播信道的数据链路层
- 3.1 局域网的数据链路层
- 3.2 CSMA/CD协议:解决网络冲突的规则
- 3.3 使用集线器的星形拓扑
- 3.4 以太网的信道利用率
- 3.5 以太网的MAC层
- 四、扩展的以太网
- 4.1 在物理层扩展以太网
- 4.2 在数据链路层扩展以太网
- 4.3 虚拟局域网(VLAN)
- 五、高速以太网
- 5.1 100BASE-T以太网(快速以太网)
- 5.2 吉比特以太网(1000BASE-T)
- 5.3 10吉比特以太网(10GBASE-T)
- 5.4 高速以太网的共同逻辑
- 总结(核心概念速记)
- 核心概念速记
- 点对点与广播信道对比
- 知识图谱
- 重点提炼
- 性能与技术对比表
- 帧结构对比
前言
- 在之前的系列博客中,我们已详细解析了**计算机网络物理层的**核心知识点。
- 本篇将聚焦于计算机网络数据链路层,系统展开该层次的协议机制、帧结构设计及差错控制等关键内容的深度讲解。
我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的计算机网络专栏,欢迎来阅读
https://blog.csdn.net/2402_83322742/category_12909527.html
一、数据链路层
1. 数据链路层是什么?
- 想象你和朋友打电话,手机要把声音转化为信号,通过基站、线缆等层层传递。
在计算机网络里,也有类似的"信号中转站",这就是数据链路层。
- 它的核心作用是:让相邻的设备(比如电脑和交换机、交换机和路由器)之间能准确地传递数据。
2. 哪些设备需要数据链路层?
-
主机(比如你的电脑H₁、H₂):它的"数据快递流程"是从最上层的应用层(比如微信发消息),到运输层、网络层,再到链路层,最后通过物理层把数据变成电信号或光信号发出去。
-
交换机(S₁、S₂)和路由器(R₁、R₂、R₃):它们更像"中转站员工",只需要链路层和物理层来处理数据的转发。
结论:只要是局域网里的设备,不管是主机还是交换机,都得有数据链路层,就像快递员必须认识路才能送件一样。
3. 数据链路层如何工作?
假设你从北京发快递到上海,中间可能经过公路、铁路、空运等不同运输方式。数据从主机H₁到H₂也是这样:
- 传输路径:H₁ → 电话网 → 路由器R₁ → 局域网 → 路由器R₂ → 广域网 → 路由器R₃ → 局域网 → H₂。
- 数据的传输过程:数据从H₁的链路层出发,就像穿上了特定的"运输包装"(专业叫"帧")
- 每经过一个路由器或交换机的链路层,就会根据当前网络的规则(比如电话网用一种规则,局域网用另一种规则)更换包装,直到到达H₂的链路层。
两个重要特点:
- 网络类型多样:可以是电话网、局域网、广域网等,就像快递可以走公路、铁路、空运。
- 协议可能不同:不同的链路层(比如电话网的链路层和局域网的链路层)可能用不同的协议,但目标都是让数据准确传递。
4. 数据链路层的俩种信道
数据在传递时,走的"路"有两种类型:
4.1 点对点信道:一对一
-
场景:就像你和朋友单独打电话,这条线路只有你们两人用。
-
优点:简单直接,没有冲突,就像专线快递,不会送错。
4.2 广播信道:一对多
- 场景:好比在一个大会议室里,所有人都能听到你说话(数据可以传给多个设备)。
- 无冲突情况:理想情况下,大家轮流发言,数据有序传递。
- 有冲突情况:但现实中可能多人同时说话(多个设备同时发数据),就会出现冲突,导致数据混乱。
- 解决办法:必须用专门的"规则"(共享信道协议)来协调,比如"先听再说"(听到没人说话再发数据),避免大家同时发言,就像会议主持人维持秩序。
二、使用点对点信道的数据链路层
- 在开始之前讲解使用点对点信道的数据链路层,我们先要了解一下什么是物理链路和数据链路
1. 物理链路
想象一条没有红绿灯、没有路标、没有交警的公路,这就是物理链路。
它只是一根无源的物理线路(比如网线、光纤),中间没有任何交换设备(如路由器、交换机),只能单纯传输0和1的电信号或光信号,但不知道如何管理这些信号。
2. 数据链路
如果给物理链路加上一套协议,再配上实现这些规则的硬件和软件(比如网卡),就变成了数据链路(逻辑链路)。
3. 数据链路层的运输单位(帧)
数据在数据链路层的传输形式是“帧”,可以理解为“数据包裹”。
3.1 帧的产生过程(三层简化模型)
- 网络层:生成IP数据报(比如你发的微信消息打包成一个数据块)。
- 数据链路层:给IP数据报加上“帧首部”和“帧尾部”(相当于包裹的地址标签和校验标签),变成“帧”。
- 物理层:把帧转化为二进制流(1010…)通过物理链路传输。
3.2 只看数据链路层
结点A的数据链路层把帧“扔”到物理链路上,结点B的数据链路层负责“接住”帧。
三、数据链路层的三大基本功能
1. 封装成帧
1.1 什么是封装成帧?
在数据前后加“首部”和“尾部”,组成一个帧,就像给信纸套上信封,信封的开头和结尾标明“这是一封信的开始/结束”。
- 首部尾部的作用:帧定界(告诉接收方“帧从哪里开始,哪里结束”)。
- MTU(最大传送单元):帧里的数据部分不能无限长,有一个长度上限(比如公路上的货车不能超载)。
1.2 如何定界?
如果数据是文本文件(可打印的ASCII码),可以用两个控制字符SOH,EOT来当开头与结尾:
SOH
(帧开始符)EOT
(帧结束符)
帧结构:SOH
→ 数据部分 →EOT
。
2. 透明传输
2.1 问题:数据里如果有SOH/EOT(帧开始符,帧结束符)怎么办?
假设数据部分不小心包含了EOT
的二进制码,接收方会误以为帧结束了,导致后面的数据被丢弃,此时数据链路层会怎样做?
2.2 解决方案:透明传输的实现机制
字符填充(字节填充)
原理:在数据中出现控制字符(如SOH、EOT)时,通过添加转义字符(Escape Character)来改变其二进制表示,避免被误判为帧边界。
PPP协议中的字符填充(了解就好)
- 帧定界符:SOH(0x01)、EOT(0x04)在PPP中通常用帧开始和结束标志
0x7E
表示。 - 转义规则:
- 若数据中出现
0x7E
(帧结束标志),则转义为0x7D + 0x5E
; - 若出现
0x7D
(转义字符本身),则转义为0x7D + 0x5D
; - 若出现ASCII码小于
0x20
的字符(如换行符、制表符),则在其前添加0x7D
并对该字符的第6位取反(例如,0x01
转义为0x7D + 0x21
)。
- 若数据中出现
示例:
若原始数据为
0x7E 0x01 0x7D
,则填充后变为:
0x7D 0x5E 0x7D 0x21 0x7D 0x5D
。
接收方收到数据后,遇到0x7D
则对后续字节进行逆转换,还原为原始数据。
比特填充(位填充)
原理:通过在数据中特定比特模式前插入额外比特,避免数据中出现与帧边界标志相同的比特序列。
比特填充的优势
与字符填充相比,比特填充不依赖字符编码(如ASCII),适用于任意二进制数据,且效率更高(插入比特的频率低于字符填充)。
2.3 透明传输的核心目标
透明传输确保数据链路层对上层协议“不可见”:
- 无论数据中包含何种字符或比特模式,接收方最终收到的内容与发送方完全一致。
- 这使得上层协议无需关心底层帧边界的处理细节,实现了“数据透明”的传输效果。
3. 差错检测
3.1 比特差错:传输中0变1或1变0
就像快递在运输中被挤压导致包装破损,数据在物理链路上传输时,可能因**为噪声干扰,某个比特从0变成1,或1变成0**(比如发送1010,接收1000)。
3.2 检测工具:CRC(循环冗余检验)
(1)核心思想:给数据加一个“校验码”
- 发送端:
① 原始数据(k位,比如101001
)后面补n个0(n由除数P的位数决定,比如P=1101是4位,n=3),得到101001000
。
② 用二进制除法除以除数P,得到余数R(n位,比如余数001
),这个余数就是FCS(帧检验序列,冗余码)。
③ 发送数据=原始数据+FCS(101001
+001
=101001001
)。
(2)接收端:检查校验码是否匹配
把收到的数据(原始+FCS)除以同样的P:
- 如果余数为0 → 数据正确,接受;
- 如果余数不为0 → 数据损坏,丢弃。
(3)示例计算:
-
原始数据M=101001(k=6位),除数P=1101(n+1=4位,n=3)。
-
发送端步骤:
① 补3个0:M→101001000(被除数)。
② 二进制除法(类似小学除法,每一步对齐,异或运算):
③ 发送数据=101001+001=101001001。
-
接收端收到后,用同样的P计算余数,若为0则正确。
4. 点对点信道数据链路层的“三步曲”
- 打包数据(封装成帧):给数据加首尾标记,确定帧边界,就像给信套信封。
- 允许任意数据(透明传输):哪怕数据里有“信封标记”,也能正确传输,不被误判。
- 检测错误(CRC):给数据加校验码,接收端检查是否损坏,就像快递员验收包裹是否完好。
通过这三个步骤,数据就能在点对点的信道上准确、有序地传输了,CRC是“体检工具”,能发现比特差错,但想实现“可靠传输”,还得加“重试机制”
二、点对点协议 PPP
1. PPP协议是什么?
- 还记得十几年前用电话线拨号上网吗?当你家电脑通过电话线连接到运营商(ISP)时,数据链路层用的就是点对点协议PPP。
- 它就像一个专业的"数据快递员",负责在两台设备(比如你的电脑和ISP的路由器)之间精准传送数据。
2. PPP的核心特点
- 不做多余工作:PPP不负责纠错、流量控制(比如数据传太快也不暂停),也不支持一对多传输,只专注点对点通信。
- 兼容性强:能在电话线、光纤等多种链路上工作,还能同时支持IP等多种网络层协议(就像快递员能送不同类型的包裹)。
3. PPP协议的组成
PPP协议由三个部分组成,就像一个快递团队的不同分工:
- 数据打包员(封装方法):把IP数据报封装成适合串行链路传输的帧。
- 链路协调员(LCP):负责建立、配置和测试数据链路连接(类似快递员确认地址是否可达)。
- 网络管理员(NCP):一套协议,专门处理不同网络层协议的需求(比如给你的电脑分配临时IP地址)。
4. PPP帧格式
PPP帧就像一个有固定格式的快递包裹,结构如下:
帧开始符F | 地址A | 控制C | 协议字段 | 信息部分 | FCS校验 | 帧结束符F |
---|---|---|---|---|---|---|
1字节 | 1字节 | 1字节 | 2字节 | ≤1500字节 | 2字节 | 1字节 |
- 关键字段说明:
- F(0x7E):帧开始和结束的标记,像包裹上的"★开始"和"★结束"。
- 协议字段:标明包裹里装的是什么类型的数据(比如0x0021是IP数据报,0xC021是LCP协议)。
- FCS:帧检验序列,用CRC算法检测数据是否损坏(类似快递单上的校验码)。
5. PPP协议的工作流程
当你拨号上网时,PPP协议会按以下步骤工作:
- 物理连接建立:建立电话线的物理连接(相当于快递员打通了收件人的电话)。
- LCP握手:电脑和ISP的路由器用LCP协议"打招呼",协商链路参数(比如最大传输单元MTU)。
- 身份鉴别(可选):如果需要,验证用户账号密码(类似快递员确认收件人身份)。
- NCP分配IP:NCP协议给你的电脑分配一个临时IP地址(相当于给包裹贴上收件地址)。
- 数据传输与释放:
- 上网结束后,先断开NCP(收回IP),再断开LCP(结束链路),最后断开物理连接。
6. PPP状态图
用状态图理解PPP的工作流程,就像导航APP的路线规划:
- 链路静止:没拨号时的初始状态(快递员在仓库待命)。
- 链路建立:拨号后物理连接成功(快递员出发去取件)。
- 鉴别:验证身份(确认收件人信息),失败则回到静止。
- 网络层协议:NCP分配IP(填写包裹地址)。
- 链路打开:正式开始传输数据(包裹上路)。
- 链路终止:任何阶段出错或主动断开,回到静止(快递送达或取消)。
虽然现在宽带和WiFi普及,PPP在拨号场景中逐渐减少,但它的设计思想(简单、兼容、高效)依然影响着现代网络协议。
三、使用广播信道的数据链路层
3.1 局域网的数据链路层
局域网是什么?
- 特点:像家里的Wi-Fi一样,归一个单位管(比如公司、学校),覆盖范围小(几十米到几千米),连的设备也不多(几十到几百台)。
- 局域网的数据链路层:
- 能“广播”消息:比如在公司群里发文件,所有人都能收到,共享打印机、硬盘超方便;
- 灵活调整:加新电脑、搬工位,网络随时能改;
- 更可靠:部分设备坏了,其他还能工作。
局域网的种类(拓扑结构)
- 星形网:中心是“集线器”(像插线板),设备都连到它身上,比如家里路由器连手机、电脑;
- 总线网:所有设备串在一条“主线”上(像糖葫芦),主线两端要接电阻“刹车”,防止信号乱弹;
- 环形网:设备手拉手连成环,数据绕圈传,现在用得少了。
局域网的传输媒体
- 双绞线(网线):最常见,像两根绳子拧在一起,便宜好用;
- 光纤:玻璃丝做的,传得快又远,适合大公司;
- 无线:Wi-Fi信号,不用布线,手机、平板随便连。
共享信道的麻烦
- 总线型网络里,所有设备共用一条“马路”发数据。如果两台电脑同时发,数据就会“撞车”(冲突),谁都发不出去。
3.2 CSMA/CD协议:解决网络冲突的规则
以太网的守则
-
早期以太网用总线拓扑,像一条单行道,必须遵守规则:
- CSMA/CD全称:载波监听多点接入/碰撞检测,
-
“先看再发,边发边听,撞了就停”。
-
具体怎么做?
- 载波监听:发数据前先“听”总线,有没有别人在发?如果有,等一会儿再发;
- 碰撞检测:发数据时同时“听”,如果发现信号变乱(电压异常),说明和别人撞了,立刻停车(停止发送);
- 随机等待再发:撞车后不马上发,等一个随机时间(比如0.1秒或0.3秒),避免再次撞车。
争用期:判断有没有撞车的时间
- 信号在总线上传播需要时间,比如A和B距离1km,信号从A到B要1微秒。
- 最大“撞车检测时间”是2微秒(信号往返一次),这段时间叫争用期。
- 如果争用期内没撞车,后面就安全了。
最短帧长:防止短消息被撞没
- 10Mbit/s以太网规定:帧长至少64字节(512位)。
- 如果帧太短,没等发完就可能撞车,导致数据不完整,这种帧会被直接扔掉。
3.3 使用集线器的星形拓扑
以太网的进化:更方便的星形结构
- 以前用同轴电缆(总线型),布线麻烦;后来换成双绞线,连到中心的集线器上,像插线板一样星形分布。
- 集线器看似改变了形状,但逻辑上还是总线网:所有设备发的数据都会被集线器“广播”给所有人,依然要用CSMA/CD协议防碰撞。
集线器的小秘密
- 工作在物理层,只负责“转发信号”,不处理数据;
- 内部像一个“电子总线”,把信号复制到所有接口,所以还是共享信道;
- 有抗干扰设计(串音回波抵消),减少信号干扰。
3.4 以太网的信道利用率
为什么网络速度总达不到理论值?
-
因为碰撞会浪费时间。比如发一帧需要T0时间,加上争用期的传播时间τ,实际占用信道的时间是T0+τ。
-
定义参数α=τ/T0:α越小,说明传播时间比发送时间短,碰撞概率低,利用率高。
-
理想利用率公式:
-
-
比如α=0.1时,利用率约90%;α=1时,只剩50%。
如何提高利用率?
-
- 缩短连线长度:减少τ(信号传播时间);
-
- 避免发太短的帧:增加T0(帧发送时间),比如帧长至少64字节就是这个道理。
3.5 以太网的MAC层
1. MAC地址:设备的“身份证”
- 48位二进制数,通常写成12位十六进制(如AC-DE-48-00-00-80),全球唯一。
- 结构:前3字节是厂商标识(OUI),后3字节是设备编号;
- 类型:
- 单播地址(I/G=0):一对一,比如给手机发消息;
- 组播地址(I/G=1):一对多,比如群聊;
- 广播地址(全1):一对全体,比如路由器发通知。
2. MAC帧格式
以最常用的以太网V2格式为例:
- 目的地址(6字节):收信人MAC地址;
- 源地址(6字节):发信人MAC地址;
- 类型(2字节):里面装的是什么数据(比如IP数据报);
- 数据(46-1500字节):真正要传的内容;
- FCS(4字节):校验码,检查信封有没有损坏。
四、扩展的以太网
4.1 在物理层扩展以太网
为什么要扩展?
- 传统以太网(如10BASE-T)有距离限制(比如双绞线最多100米),超过就会信号衰减,像电线太长电灯会变暗一样。
物理层扩展设备:中继器和集线器
- 中继器(Repeater):
- 功能:像“信号放大器”,接收微弱信号后放大并转发,延长传输距离;
- 特点:工作在物理层,不懂数据内容,只复制比特流,不能减少冲突。
- 集线器(Hub):
- 本质:多接口中继器,比如8口集线器相当于8个中继器拼在一起;
- 缺点:所有接口共享一条“总线”,冲突域(容易堵车的区域)没变,连的设备越多越卡。
扩展后的限制
- 即使接中继器,以太网仍受CSMA/CD协议限制:总距离太长会导致争用期变大,碰撞概率飙升,就像马路太长,司机难以及时发现撞车。
4.2 在数据链路层扩展以太网
数据链路层扩展设备:以太网交换机(Switch)
- 交换机 vs 集线器:
- 集线器:“广播狂”,收到数据就发给所有人,不管是不是收件人;
- 交换机:“智能快递员”,记住每个接口的MAC地址,只把数据发给目标设备。
交换机的核心能力
- 地址学习:收到数据时,记录发送方MAC地址和对应接口,比如“张三的MAC在接口1”;
- 转发过滤:知道目标地址在哪就直接发(单播),不知道就先广播问一下;
- 全双工通信:每个接口独立收发数据,比如电脑连交换机,发数据和收数据可同时进行,不再需要CSMA/CD(因为不会撞车)。
交换机如何分割冲突域?
- 集线器时代:所有设备在一个冲突域(像单车道马路,全堵在一起);
- 交换机时代:每个接口是独立冲突域(像多车道马路,各走各的),大大减少碰撞。
4.3 虚拟局域网(VLAN)
为什么需要VLAN?
- 一个大公司的网络里,不同部门(如研发、销售)可能在同一物理网络,但希望数据隔离(比如销售部看不到研发部的文件)。
VLAN的本质:逻辑上分组,物理上不动
- 比如:把交换机的接口1-4划给“研发部VLAN”,接口5-8划给“销售部VLAN”,即使这些接口插在同一台交换机上,不同VLAN的设备也无法直接通信(像不同班级的学生不能随便串门)。
VLAN的优势
- 隔离广播域:传统网络中一个广播(如“找打印机”)会传遍全网;VLAN里广播只在本“班级”内传播,减少网络拥堵;
- 安全与管理:不同VLAN间通信需通过路由器,可控制数据访问,比如禁止销售部访问研发服务器。
VLAN的实现方式
- 最常用:基于交换机接口划分(如指定接口属于某个VLAN);
- 其他方式:基于MAC地址、IP地址划分,但配置更复杂。
五、高速以太网
5.1 100BASE-T以太网(快速以太网)
1995年诞生,目标:100Mbit/s速率,兼容旧设备
- 关键技术:
- 沿用以太网帧格式,老设备发的帧新设备也能认;
- 支持全双工和半双工模式:
- 全双工:无冲突,不用CSMA/CD(像双向车道,各走各的);
- 半双工:仍需CSMA/CD(像单车道,要避让)。
- 物理层选择:
- 100BASE-TX:用双绞线(最常用),最长100米;
- 100BASE-FX:用光纤,适合长距离。
5.2 吉比特以太网(1000BASE-T)
1998年推出,解决服务器和骨干网络的瓶颈
- 核心改进:
- 速度提升10倍,但帧格式不变,兼容老以太网;
- 全双工模式为主:不再依赖CSMA/CD,因为全双工没有冲突;
- 半双工模式仍用CSMA/CD,但优化了争用期,支持更长距离。
- 物理层方案:
- 1000BASE-T:4对双绞线,最长100米(办公室常用);
- 1000BASE-SX/LX:光纤,适合校园、园区骨干网。
5.3 10吉比特以太网(10GBASE-T)
2002年问世,面向数据中心和广域网
- 特点:
- 仅支持全双工:彻底抛弃CSMA/CD(双向车道太宽,不会撞车);
- 传输介质:
- 10GBASE-T:双绞线,用特殊技术减少干扰,最长100米;
- 10GBASE-SR/LR等:光纤,传输距离从几百米到几十公里;
- 可连广域网:比如通过光纤直接连到运营商网络,不再需要额外转换设备。
5.4 高速以太网的共同逻辑
- 速度提升的核心:
- 物理层升级:用更好的线缆(如六类双绞线)、更高效的信号编码(像快递分拣更快);
- 全双工普及:取消CSMA/CD,允许双向同时传输(像双向八车道,不用等对面车走完);
- 兼容性优先:帧格式不变,老设备和新设备能“对话”,保护已有投资。
总结(核心概念速记)
核心概念速记
数据链路层 = 相邻设备通信管家 + 帧级封装大师 + 局域网组网中枢
- 三大核心功能:
- 封装成帧(加首尾定界)、透明传输(处理特殊字符)、CRC差错检测(发现比特错误)。
- 类比:快递打包(贴地址标签)+ 禁运品处理 + 包裹验货。
- 信道与协议体系:
- 点对点信道:PPP协议(拨号上网的幕后英雄),无流量控制,仅检测错误不重传。
- 广播信道:CSMA/CD协议(解决总线冲突),核心规则“先听后发,边发边听”。
- 局域网扩展方案:
- 物理层:中继器/集线器(放大信号,共享冲突域)。
- 数据链路层:交换机(地址学习+独立冲突域)、VLAN(逻辑分组隔离广播)。
点对点与广播信道对比
类型 | 点对点信道 | 广播信道 |
---|---|---|
信道特点 | 一对一专线(如电话线) | 多设备共享介质(如早期以太网) |
核心协议 | PPP(封装IP数据报,无重传) | CSMA/CD(载波监听,冲突检测) |
典型场景 | 拨号上网、路由器间互联 | 早期总线型以太网、Wi-Fi(变种) |
冲突处理 | 无冲突(专线) | 必须用协议避免冲突(如CSMA/CD) |
知识图谱
数据链路层(六) 功能、协议与局域网扩展
├─ 基本概念
│ ├─ 信道类型:点对点 vs 广播信道
│ ├─ 设备支持:主机/交换机/路由器均需链路层
│ └─ 传输单位:帧(IP数据报+首尾字段)
├─ 核心功能
│ ├─ 封装成帧:SOH/EOT定界,MTU限制
│ ├─ 透明传输:字符填充(PPP)/比特填充
│ └─ 差错检测:CRC算法(余数校验)
├─ 重要协议
│ ├─ PPP协议
│ │ ├─ 组成:封装方法+LCP+NCP
│ │ ├─ 帧格式:0x7E定界,协议字段标识
│ │ └─ 工作流程:LCP握手→NCP分配IP
│ └─ CSMA/CD协议
│ ├─ 三步骤:监听→发送→检测冲突
│ └─ 争用期:信号往返时间,决定最短帧长
├─ 局域网技术
│ ├─ 拓扑结构:总线型/星形(集线器/交换机)
│ ├─ MAC地址:48位全球唯一标识(单播/组播/广播)
│ ├─ MAC帧:目的地址+源地址+类型+数据+FCS
│ └─ 扩展方式
│ ├─ 物理层:中继器/集线器(共享冲突域)
│ └─ 数据链路层:交换机(地址学习)+ VLAN(逻辑隔离)
└─ 高速以太网 ├─ 100BASE-T(快速以太网):兼容帧格式,全/半双工 ├─ 吉比特以太网:全双工为主,淘汰CSMA/CD └─ 10吉比特以太网:支持广域网,纯全双工
重点提炼
-
数据链路层三大功能的实践意义:
- 封装成帧:解决“数据从哪开始到哪结束”的问题,类似信封的地址栏;
- 透明传输:确保数据中的特殊字符(如帧定界符)不被误判,如快递单允许任何文字;
- CRC差错检测:发现传输中的比特错误,但需上层协议(如TCP)配合重传才能实现可靠传输。
-
PPP协议的“极简设计”:
- 不纠错、不流控、仅支持点对点,设计理念是“让链路层专注传输,复杂功能交给上层”;
- 至今仍在广域网链路(如运营商路由器互联)中使用,体现“简单可靠”的工程思想。
-
CSMA/CD的“总线网生存法则”:
- 争用期(2τ) 是核心:信号往返时间决定能否及时检测冲突,如马路宽度影响司机反应时间;
- 最短帧长(64字节) 公式:帧长 ≥ 2τ × 传输速率,确保发送时能检测到冲突。
-
交换机 vs 集线器的本质区别:
- 集线器是“物理层傻瓜中继器”,广播所有数据,共享冲突域;
- 交换机是“数据链路层智能转发器”,学习MAC地址,每个接口独立冲突域,支持全双工。
-
VLAN的“网络隔离术”:
- 逻辑分组不改变物理连接,如同一交换机上的研发部与销售部无法直接通信;
- 隔离广播域,减少网络风暴,提升安全性(类似不同班级不能互传纸条)。
性能与技术对比表
技术/协议 | 核心特点 | 适用场景 | 冲突处理方式 |
---|---|---|---|
PPP协议 | 点对点,无重传,支持IP | 拨号上网、广域网链路 | 无冲突(专线) |
CSMA/CD | 广播信道,先听后发 | 早期总线型以太网 | 冲突检测+随机退避 |
集线器(Hub) | 物理层中继,共享总线 | 小型星形网络(已淘汰) | 依赖CSMA/CD |
交换机(Switch) | 数据链路层转发,地址学习 | 现代局域网 | 全双工无冲突,半双工需CSMA/CD |
VLAN | 逻辑分组,隔离广播域 | 大型企业网络 | 跨VLAN需路由器转发 |
帧结构对比
PPP帧格式: 0x7E | 地址 | 控制 | 协议 | 数据 | FCS | 0x7E
MAC帧(V2): 目的MAC | 源MAC | 类型 | 数据 | FCS
- 关键差异:
- PPP用协议字段标识上层数据(如IP),MAC帧用类型字段;
- MAC帧包含硬件地址(MAC),PPP帧在点对点场景中无需地址(链路已确定两端)。
高速以太网演进脉络
技术演进 —— 10M以太网(CSMA/CD) → 100M快速以太网 → 1G/10G以太网(全双工主导) ↓ ↓ ↓
核心变化 —— 半双工为主 → 全双工普及 → 彻底抛弃CSMA/CD
应用场景 —— 桌面办公 → 企业骨干 → 数据中心/广域网
核心逻辑:速度提升依赖物理层优化(如光纤、更高效编码),全双工模式通过独立收发通道消除冲突,使CSMA/CD协议逐渐退出历史舞台。
以上就是本篇博客的全部内容,下一篇将进入网络层的学习,探索IP协议与路由技术。
我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的计算机网络专栏,欢迎来阅读
https://blog.csdn.net/2402_83322742/category_12909527.html
如果您觉得内容对您有帮助,欢迎点赞收藏,您的支持是我创作的最大动力! |
相关文章:
计算机网络:(六)超详细讲解数据链路层 (附带图谱表格更好对比理解)
计算机网络:(六)超详细讲解数据链路层 前言一、数据链路层1. 数据链路层是什么?2. 哪些设备需要数据链路层?3. 数据链路层如何工作?4. 数据链路层的俩种信道4.1 点对点信道:一对一4.2 广播信道&…...
智能生成分析报告系统在危化安全生产监测预警评估中的应用
一、引言 在危险化学品安全生产监管中,传统的分析报告依赖人工整理与审核,效率低、响应慢,且极易受到主观判断、格式不规范、不同地区掌握尺度不一致的影响。而随着工业互联网、大数据、人工智能(AI)特别是大语言模型…...
微算法科技(NASDAQ:MLGO)研发可信共识算法TCA,解决区块链微服务中的数据一致性与安全挑战
随着区块链技术的不断演进和应用场景的拓展,微服务架构因其灵活性、可扩展性以及易于维护的特点,逐渐成为了构建复杂系统的首选架构模式。如何在微服务架构中有效应用区块链技术,确保数据的一致性和安全性,成为了一个亟待解决的问…...
UE5 开发遇到的bug整理
文章目录 一、人物在挂载某个Actor之后,移动有问题,可能是Actor类的碰撞没有关闭,和人物自身发生了碰撞。 一、人物在挂载某个Actor之后,移动有问题,可能是Actor类的碰撞没有关闭,和人物自身发生了碰撞。...
单片机——浮点数转换4位数码管显示
浮点数转换4位数码管显示 static char buffer[5]; int DecimalPlace 0; #define HideChar h void DisplayFloatOn4LED(float value) {long integer roundf(value );if (integer > 9999) //4位{integer 9999;snprintf(buffer, sizeof(buffer), "%4ld", integer…...
广东省专升本英语形容词与副词全梳理
一、形容词核心知识详解 (一)形容词的构成方式(附记忆技巧) 1. 后缀派生法(9 大核心后缀) ① -ly 结尾形容词(易混副词,重点记忆) ✅ 特点:虽以 - ly 结尾…...
GeoServer和GeoTools XML外部实体注入漏洞(CVE-2025-30220)
免责声明 本文档所述漏洞详情及复现方法仅限用于合法授权的安全研究和学术教育用途。任何个人或组织不得利用本文内容从事未经许可的渗透测试、网络攻击或其他违法行为。使用者应确保其行为符合相关法律法规,并取得目标系统的明确授权。 对于因不当使用本文信息而造成的任何直…...
Python Django全功能框架开发秘籍
本文在创作过程中借助 AI 工具辅助资料整理与内容优化。图片来源网络。 文章目录 引言一、Django 简介1.1 Django 的诞生与背景1.2 Django 的特点概述 二、Django 的核心特性2.1 ORM 特性2.1.1 ORM 原理与优势2.1.2 ORM 在实际应用中的优势 2.2 模板引擎2.2.1 模板引擎的工作机…...
四核 A53+工业级存储:移远 SC200L 与 pSLC SD NAND 如何重构 T-BOX 性能边界?
博客目录 一、移远 SC200L:T-BOX 的 “智慧大脑”二、米客方德 MKDN064GIL-ZA T-BOX:数据安全的坚固堡垒三、深度协同:拓展 T-BOX 应用边界 在车联网浪潮席卷而来的当下,T-BOX 作为汽车与外界交互的核心枢纽,其性能优劣…...
docker方式启动Jenkins
docker方式启动Jenkins 1.启动命令 我已经打包好了文件,如下命令即可启动 docker run -d -v jenkins_home:/var/jenkins_home -p 8088:8080 -p 50000:50000 --restarton-failure registry.cn-hangzhou.aliyuncs.com/devops_de/jenkins:lts-jdk17 还需要设置一下目录权限,要…...
【目标检测】图像处理基础:像素、分辨率与图像格式解析
🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...
国产免费的k8s管理平台
xkube是一款永久免费且无任何功能限制的k8s集群管理平台,提供PC端和移动端全平台支持,具备完善的集群管理、运维监控和CI/CD发布功能,让企业轻松实现跨集群的统一管理和自动化运维。 技术特点: 1、xkube是一款国产永久免费的k8s…...
火山引擎大模型未来发展趋势
用户可能正在做技术选型或者行业研究,需要预测火山引擎在激烈竞争中的突围方向。从问题简洁性看,ta可能已经有一定基础认知,不需要我从零科普大模型概念。 火山引擎作为字节跳动的技术输出平台,优势在于背靠抖音、今日头条等超级应…...
Java基础(三):逻辑运算符详解
Java基础系列文章 Java基础(一):发展史、技术体系与JDK环境配置详解 Java基础(二):八种基本数据类型详解 Java基础(三):逻辑运算符详解 目录 一、什么是逻辑运算符?二、基础逻辑运算符(3种)1、&&…...
设计模式 | 单例模式
单例模式(Singleton Pattern) 是设计模式中最简单却最常用的模式之一,它确保一个类只有一个实例,并提供全局访问点。本文将深入探讨单例模式的核心思想、实现技巧以及在C中的多种实现方式。 为什么需要单例模式? 在软…...
SQL_Server 基本语法
1.创建数据库 use master go if exists(select * from sysdatabases where nameCourseManageDB) drop database CourseManageDB go --创建数据库 create database CourseManageDB on primary (--数据库的逻辑文件名(就是系统用的,必须唯一)…...
剑指offer39_连续子数组的最大和
连续子数组的最大和 输入一个 非空 整型数组,数组里的数可能为正,也可能为负。 数组中一个或连续的多个整数组成一个子数组。 求所有子数组的和的最大值。 要求时间复杂度为 O ( n ) O(n) O(n)。 数据范围 数组长度 [ 1 , 1000 ] [1,1000] [1,100…...
SPL 实践系列:跨库移植 SQL
背景 应用程序可能要基于不同数据库工作,各种数据库的 SQL 语法大体一致,但仍有些差别,结果就要改造这些 SQL,而这事通常只能手工调整,工作量大还容易出错。 完全自动改造 SQL 几乎是无法做到的,毕竟各种…...
docker启动的rabbitmq搭建并集群和高可用
Docker 搭建 RabbitMQ 集群步骤 以下是使用 Docker 快速搭建 RabbitMQ 集群的详细步骤,包含配置文件、网络设置和集群组建过程。 1. 创建自定义网络 首先创建一个 Docker 网络,使容器间可以通过名称互相访问: docker network create rabb…...
ISCSI存储
ISCSI存储 一、iscsi简介 1. 基本概念 iSCSI(Internet Small Computer System Interface)即互联网小型计算机系统接口,它是一种基于 TCP/IP 协议的存储网络协议,将传统的 SCSI(Small Computer System Interface&…...
算法与数据结构:动态规划DP
文章目录 动态规划算法全面解析一、核心思想与基本概念二、动态规划与其他算法的区别三、动态规划的解题步骤四、经典案例解析1. **斐波那契数列(Fibonacci)**2. **0-1背包问题(0-1 Knapsack)**3. **最长公共子序列(LC…...
核心概念解析:AI、数据挖掘、机器学习与深度学习的关系
核心概念解析:AI、数据挖掘、机器学习与深度学习的关系 本节旨在厘清人工智能(AI)、机器学习(ML)、深度学习(DL)、数据挖掘等常被混淆的概念及其相互关系。 1. 从应用目标看:人工智…...
跨域视角下强化学习重塑大模型推理:GURU框架与多领域推理新突破
跨域视角下强化学习重塑大模型推理:GURU框架与多领域推理新突破 大语言模型(LLM)推理能力的提升是AI领域的重要方向,强化学习(RL)为此提供了新思路。本文提出的GURU框架,通过构建跨领域RL推理语…...
黑马python(十三)
目录: 1.文件编码概念 2.文件的读取操作 3.文件的写入操作 4.文件的追加写操作 5.文件操作的综合案例 1.文件编码概念 2.文件的读取操作 多次调用read或相关读取方法会接着上一次读取的记录读 如果文件没有关闭,只要程序还在运行,文件…...
Redis-CPP 5大类型操作
这篇文章不会讲解所有关于5大基础类型的所有命令,只讲解几个常用的命令操作。如果想看全部的命令操作,可以看其它的文章。 string set 先来看一看set操作在服务器端的函数原型: SET key value [expiration EX seconds|PX milliseconds] [N…...
Linux 下的 socket
1、简介 Socket,中文常称为“套接字”,是 UNIX 操作系统中引入的一种通信抽象接口,用于支持不同进程之间,特别是不同主机之间的通信。在 UNIX 哲学中,“一切皆文件”,包括网络通信也不例外。Socket 就是这种…...
链接脚本基础语法
目录 前言 ELF文件布局 链接脚本语法 段定义标准格式 地址计数器 . 地址计数器的动态特性 赋值 vs 引用 符号定义 通配符规则 COMMON块 COMMON 块的产生与处理 示例脚本 前言 由于嵌入式系统内存资源珍贵,链接脚本可指定代码段(.text &#…...
Python期末速成
一.基础内容 赋值语句: a 1 b "mayday" 标识符规则: 1.字母,数字,下划线,汉字组成。但数字不能开头 2.不能是保留字 3.特殊符号不行,*¥^等 注释是在语句前面加# …...
Python打卡训练营Day56
DAY 56 时序数据的检验 知识点回顾: 假设检验基础知识 原假设与备择假设P值、统计量、显著水平、置信区间 白噪声 白噪声的定义自相关性检验:ACF检验和Ljung-Box 检验偏自相关性检验:PACF检验 平稳性 平稳性的定义单位根检验 季节性检验 ACF检…...
没掌握的知识点记录
1、微内核的主要优点在于结构清晰、内核代码量少,安全性和可靠性高、可移植性强、可伸缩性、可扩展性高;其缺点是难以进行良好的整体优化、进程间互相通信的开销大、内核功能代码不能被直接调用而带来服务的效率低。 2、题目: 分页内存管理…...
Python商务数据分析——Python 入门基础知识学习笔记
一、简介 1.1 Python 特性 解释型语言:代码无需编译可直接运行,适合快速开发。 动态类型:变量类型在运行时确定(如x1后x"str"仍合法)。 面向对象:支持类、对象、继承等特性,代码可…...
企业级安全实践:SSL 加密与权限管理(二)
权限管理:企业数据的守护者 权限管理的基本概念与重要性 权限管理,是指根据系统设置的安全规则或策略,用户可以访问且仅能访问自己被授权的资源,不多不少 。它是企业信息安全体系的重要组成部分,旨在确保只有授权的人…...
JavaScript 的 “==” 存在的坑
(双等) 指的是宽松相等 — 会做隐式类型转换 举例:0 // true 5 5 // true (三等) 指的是严格相等 — 类型和值都相等才 true 举例:0 // false 5 5 // false 在业务逻辑里经常因为隐式转换导致条件误判,业界普遍推荐 一律用 / !。 举…...
深度解析云计算网络架构:VLAN+OVS+Bonding构建高可靠虚拟化平台
——从物理设备到虚拟机流量的全链路剖析 核心技术组合:VLAN逻辑隔离 OVS虚拟交换 Bonding链路聚合 超融合网络管理 一、架构全景:物理与虚拟网络的协同(附架构图) 核心设计哲学 #mermaid-svg-VbGP3fCgNnoLVMgH {font-family:&…...
Git使用总结
1.基本概念: Git中的区域: git中有几个区域;本地工作区;本地提交区;origin远端。 一般来说的工作上传顺序是: 将修改文件添加到工作区域----提交到本地提交区域----push到远端分支 Git中的分支 远端和…...
爬虫入门练习(文字数据的爬取)
爬取csdn用户的用户简介 学习一下 BeautifulSoup方法 from bs4 import BeautifulSoup html_content """ <html> <head><title>示例网页</title> </head> <body><h1 class"main-title">欢迎学习Beauti…...
MySQL学习(1)——基础库操作
欢迎来到博主的专栏:MySQL学习 博主ID:代码小豪 文章目录 数据库原理基础库操作增删数据库数据库编码与校验规则验证不同的校验规则对于库中数据的影响 备份与恢复数据库 数据库原理 mysql版本:mysql8.0 操作系统:ubuntu22.4 为了减少由于环境配置以及权限限制带来的使用问题&…...
P99延迟:系统性能优化的关键指标
理解P99延迟 当谈论系统性能时,延迟指标扮演着至关重要的角色。其中,P99延迟作为最重要的性能指标之一,能够帮助我们识别系统的性能瓶颈,优化用户体验。 构建一个功能完善的后端系统,通过了所有功能测试,准…...
人工智能、机器人最容易取哪些体力劳动和脑力劳动
人工智能、机器人最容易取哪些体力劳动和脑力劳动 人工智能和机器人的发展可以替代人类简单的体力劳动和脑力劳动,但很难替代复杂的体力劳动和脑力劳动。 肌肉收缩的原理和运动特点 人类的体力劳动是靠肌肉的收缩完成的,其工作原理是肌肉内的肌球蛋白…...
【代码解析】opencv 安卓 SDK sample - 1 - HDR image
很久没有写安卓了,复习复习。用的是官方案例,详见opencv-Android-sdk 包 // 定义包名,表示该类的组织路径 package org.opencv.samples.tutorial1;// 导入所需的OpenCV和Android类库 import org.opencv.android.CameraActivity; // OpenCV…...
管理综合知识点
比与比例涉及的问题 比与比例基础知识比例的转换正反比例浓度问题利润问题增长率问题比例与面积行程问题 一、比例转换与性质 核心公式: 若 a : b c : d a:b c:d a:bc:d或 a b c d \frac{a}{b} \frac{c}{d} badc → a d b c ad bc adbc(交…...
机器学习:特征向量与数据维数概念
特征向量与数据维数概念 一、特征向量与维数的定义 特征向量与特征类别 在机器学习和数据处理中,每个样本通常由多个特征(Feature) 描述。例如,一张图片的特征可能包括颜色、形状、纹理等;一个客户的特征可能包括年龄…...
《情感反诈模拟器》2025学习版
1.2 专业内容支持 67篇情感诈骗案例研究14万字心理学分析资料783条专业配音对白 二、安装与运行 2.1 系统要求 最低配置: 显卡:GTX 1060CPU:i5-8400存储:25GB空间 2.2 运行步骤 解压游戏文件(21.7GB)…...
C++ - 标准库之 <string> npos(npos 概述、npos 的作用)
一、std::string::npos 概述 std::string::npos 是一个静态常量,表示 size_t 类型的最大值 std::string::npos 用于表示字符串操作中的未找到的位置或无效位置 std::string::npos 属于 C 标准库中的 <string> 头文件 二、std::string::npos 的作用 std::s…...
策略设计模式
1. 什么是策略模式 策略模式是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户端,客户端中的具体实现只需要了解上下文类。 2. 由什么组成 策略接口&…...
C++结构体初始化与成员函数实现语法详解
C结构体初始化与成员函数实现语法详解 一、结构体静态成员初始化语法 在C中,静态成员变量需要在类外部进行定义和初始化。提供的代码展示了如何为MAIN_PROPULSION_CAN类的静态成员变量进行初始化: MAIN_PROPULSION_CAN::VoltageThresholds MAIN_PROPU…...
第八章 网络安全
1 什么是网络安全 安全通信具有的性质: 机密性:只有发送方和希望的接收方能否理解传输的报文内容(发送方加密报文,接收方解密报文)认证(端点鉴别):发送方和接收方需要确认对方的身…...
开源 python 应用 开发(一)python、pip、pyAutogui、python opencv安装
最近有个项目需要做视觉自动化处理的工具,最后选用的软件为python,刚好这个机会进行系统学习。短时间学习,需要快速开发,所以记录要点步骤,防止忘记。 链接: 开源 python 应用 开发(一&#x…...
CMCC RAX3000M nand版 OpenWrt 可用空间变小的恢复方法
文章目录 问题背景尝试一、通过 Tftpd64 重新刷写 initramfs-recovery 镜像 (不成功)尝试二、重新分配 ubi 卷(此操作存在一定的危险,请查阅相关资料,避免影响到核心分区) 问题背景 CMCC RAX3000M Nand 版…...
云函数调测、部署及日志查看
1、调试云函数 业务函数开发完成后,需要验证函数代码的正确性,DevEco Studio工具支持本地调用和远程调用两种形式的调试函数方法,首先来看看通过本地调用方式调试函数。 1)通过本地调用方式调试云函数 为了验证函数的正确性以及…...