数据链路层核心考点解析:CRC计算、PPP协议与CSMA/CD机制

发布时间:2026/10/19 15:27:00
数据链路层核心考点解析:CRC计算、PPP协议与CSMA/CD机制 1. 数据链路层到底在解决什么问题很多人学计算机网络学到数据链路层就开始犯迷糊。物理层讲的是比特流怎么在介质上传输网络层讲的是分组怎么从源主机跳到目的主机那夹在中间的数据链路层到底干什么我当初学这一章的时候也有这个困惑后来把谢希仁老师教材里那几道典型例题反复做了三遍才真正想明白。数据链路层的核心任务可以用一句话概括把物理层不可靠的比特流传输改造成相邻节点之间可靠的数据帧传输。注意两个关键词——“相邻节点”和“帧”。物理层传的是裸比特它不管这些比特是什么意思、有没有出错网络层要的是从北京到广州的端到端交付但它自己不管中间每一跳怎么走。数据链路层就卡在中间负责每一段链路上的“本地交付”。打个比方。你要从某城市寄一个包裹到另一个城市网络层相当于规划了整条运输路线经过哪些中转站而数据链路层相当于每一段运输从你家到第一个中转站、从中转站A到中转站B的具体搬运工作。每一段搬运都要保证包裹不丢、不坏至于整条路线怎么规划那是网络层的事。这一章在期末考试里占的分值通常不小因为它是整个协议栈里“承上启下”的一层既涉及底层硬件网卡、信道又涉及上层协议IP分组还包含大量可计算、可分析的考点。下面我按考试重点的分布把这一章拆成几个板块来讲。1.1 链路与数据链路的区别谢希仁老师的教材里特别强调了一个区分链路和数据链路不是一回事。链路就是一条物理线路从一台主机到另一台主机之间的物理通道。数据链路则是在物理链路的基础上加上了通信协议硬件和软件使得这条链路上传输的数据是有格式、有校验、有控制的。这个区分看起来简单但考试里经常出判断题或者选择题来考你。比如“链路就是数据链路”这句话对不对答案是错的。链路是物理概念数据链路是逻辑概念。数据链路 链路 协议。1.2 帧数据链路层的“包裹”数据链路层传输的数据单位叫帧。为什么不用比特流直接传因为比特流没有边界接收方不知道从哪里开始、到哪里结束。帧的作用就是给数据加上“包装”——帧头、帧尾、校验码——让接收方能够识别出每一段数据的起止位置并且判断传输过程中有没有出错。帧的结构在不同协议里不一样但基本都包含这几个部分帧头包含地址信息、控制信息、数据部分就是网络层交下来的IP分组、帧尾包含校验序列。考试里经常让你画出某种帧的格式或者计算帧的长度、有效数据率等。1.3 三个基本问题封装成帧、透明传输、差错检测这一节是整章的基石几乎每年必考。三个问题分别是封装成帧给网络层交下来的数据加上帧头和帧尾使其成为可以被链路层传输的帧。帧头和帧尾的作用之一就是帧定界——让接收方能从连续的比特流中识别出帧的开始和结束。透明传输如果数据部分恰好出现了和帧定界符一样的比特组合怎么办接收方会误以为帧结束了。透明传输就是要解决这个问题让数据部分里的任何比特组合都不会被误判为帧定界符。常用的方法有字节填充转义字符和比特填充零比特插入。差错检测传输过程中比特可能出错1变成00变成1需要有一种机制来发现错误。最常用的方法是循环冗余检验CRC。这三个问题贯穿整章后面的PPP协议、以太网协议都是在解决这三个问题的基础上发展出来的。我在复习的时候把这三个问题当成一条主线后面每学一个协议就问自己它是怎么封装成帧的怎么实现透明传输的怎么做差错检测的这样串起来整章的逻辑就非常清晰了。2. 循环冗余检验CRC的手算方法CRC是这一章最常考的计算题没有之一。很多人觉得CRC难其实是因为教材上讲的是模2运算而模2运算和普通算术运算不太一样第一次接触容易绕晕。我下面用最直白的方式把CRC的计算过程拆开。2.1 模2运算的核心规则模2运算就是不进位、不借位的二进制运算。具体来说模2加法000011101110相当于异或模2减法和加法一样因为不进位不借位模2乘法按普通乘法算但加的时候用模2加法模2除法按普通除法算但减的时候用模2减法关键记住一点模2运算里加法和减法是一回事都是异或。这一点搞清楚了CRC计算就成功了一半。2.2 CRC计算的具体步骤假设要发送的数据是M生成多项式是G通常写成二进制串的形式。CRC的计算步骤如下设G的位数为k1位最高次为k次在M后面补k个0得到M用M除以G做模2除法得到的余数R就是CRC校验码R的位数必须是k位不足前面补0把R拼接到原始数据M后面得到MR这就是实际发送的数据接收方收到后用同样的G去除如果余数为0则认为传输无误否则认为出错我举个具体的例子。假设M 101001G 1101这是常见的生成多项式对应x³x²1。G是4位所以k3在M后面补3个0得到M 101001000。然后用M除以G110101 ________ 1101 ) 101001000 1101 ---- 1110 1101 ---- 0111 0000 ---- 1110 1101 ---- 0110 0000 ---- 1100 1101 ---- 001余数是001所以CRC校验码是001。发送的数据就是101001001。接收方收到101001001后用1101去除如果余数为0说明传输正确。2.3 考试中CRC的常见陷阱CRC计算本身不难但考试里经常设几个坑第一个坑生成多项式的位数和补零个数。G是k1位就要补k个0。很多人一紧张就补错了。我的方法是先数G有几位减1就是补零的个数。第二个坑余数的位数。余数必须是k位如果算出来不足k位前面要补0。比如上面算出来是001不能写成1。第三个坑CRC只能检错不能纠错。这是一个概念题经常考判断题。CRC能发现错误但不能定位错误的具体位置所以不能纠正错误。要纠错需要用海明码等其他编码。第四个坑CRC的检错能力。不是所有错误都能被CRC检测出来。如果错误恰好使得接收到的数据能被G整除CRC就检测不出来。但实际中G选得好的话漏检率极低。提示考试里如果让你“计算CRC校验码”一定要把模2除法的过程写出来不要只写答案。过程分往往占一半以上。2.4 实战心得怎么快速验算我做完CRC题之后习惯用一个小技巧验算把算出来的余数拼到原始数据后面再用G除一次看余数是不是0。如果是0说明计算正确。这个方法虽然多花一点时间但能避免因为一步算错导致整题丢分。另外模2除法里每一步的“商”其实只有0和1两种可能——被除数首位是1就商1是0就商0。掌握这个规律之后计算速度会快很多。3. PPP协议为什么在考试里反复出现PPP协议点对点协议是数据链路层里最重要的协议之一也是考试的高频考点。它的设计思路非常清晰而且和后面要讲的以太网协议形成了鲜明对比所以出题人特别喜欢拿它做文章。3.1 PPP协议要满足的需求PPP协议的设计目标很明确在点对点的链路上传输网络层分组。所谓点对点就是链路的两端只有两个节点没有第三个。这和以太网的广播式链路完全不同。PPP需要满足的需求包括简单这是PPP的首要需求。不需要纠错、不需要流量控制、不需要序号这些功能交给上层去做封装成帧必须能明确地划分出每一帧的边界透明传输数据部分不能和帧定界符冲突差错检测能发现传输中的比特错误支持多种网络层协议不只是IP还可以承载其他协议支持多种链路类型串行、并行、同步、异步等考试里经常问PPP为什么不需要纠错和流量控制答案就是“简单”——PPP把可靠性交给上层TCP自己只做最基础的帧传输。这个设计哲学在考试里经常以简答题的形式出现。3.2 PPP帧的格式拆解PPP帧的格式是必考内容。标准PPP帧包含以下字段字段长度作用标志字段F1字节帧定界符固定为0x7E地址字段A1字节固定为0xFF实际上不起作用控制字段C1字节固定为0x03实际上不起作用协议字段2字节标识数据部分是什么协议信息部分可变网络层交下来的数据帧检验序列FCS2或4字节CRC校验码标志字段F1字节帧定界符固定为0x7E这里有几个考试常问的点为什么地址字段固定为0xFF因为PPP是点对点链路只有两个节点不需要地址来区分。这个字段实际上没有意义但为了兼容性保留了。为什么控制字段固定为0x03类似的原因PPP不需要序号和控制信息这个字段也没有实际作用。协议字段的作用是什么用来标识信息部分承载的是什么协议的数据。比如0x0021表示IP数据报0xC021表示LCP数据0x8021表示NCP数据。3.3 字节填充PPP的透明传输方案PPP使用字节填充来实现透明传输。具体规则是如果信息部分出现了0x7E和标志字段相同就把它转变成0x7D 0x5E两个字节如果信息部分出现了0x7D和转义字符相同就把它转变成0x7D 0x5D如果信息部分出现了ASCII码的控制字符小于0x20的一般也要进行转义接收方收到后做相反的变换就能还原出原始数据。这个规则看起来简单但考试里经常出计算题给你一段数据让你写出经过字节填充后实际传输的字节序列。做这种题的关键是按顺序扫描遇到特殊字符就替换不要跳着看。3.4 PPP的工作状态PPP链路的建立不是一蹴而就的它有一个完整的状态转换过程。考试里经常考这个过程的顺序链路静止物理层还没有激活链路建立物理层激活后LCP链路控制协议开始协商配置选项鉴别如果需要进行身份鉴别网络层协议配置NCP网络控制协议配置网络层参数比如分配IP地址链路打开数据传输阶段链路终止数据传输结束后LCP释放链路这个状态转换图在教材里画得很清楚考试里可能让你排序或者填空。我的记忆方法是先建链路再鉴别再配网络然后传数据最后释放。注意PPP的鉴别阶段是可选的不是必须的。如果链路两端不需要鉴别可以直接跳到网络层协议配置阶段。3.5 实战心得PPP和HDLC的对比考试里经常把PPP和HDLC放在一起考。HDLC是更早的协议PPP在很多方面做了简化。主要区别HDLC是面向比特的协议PPP是面向字节的HDLC支持可靠传输有序号和确认PPP不支持HDLC的帧格式更复杂PPP更简单PPP有LCP和NCPHDLC没有对应的协议记住一句话PPP是简化版的HDLC专为点对点链路设计强调简单和灵活。4. 以太网的CSMA/CD机制到底怎么工作以太网是数据链路层里另一个重头戏。谢希仁老师的教材里以太网部分占了很大篇幅因为它是目前最主流的局域网技术。考试里关于以太网的考点主要集中在CSMA/CD协议、MAC地址、帧格式这几个方面。4.1 CSMA/CD的核心思想CSMA/CD的全称是载波监听多点接入/碰撞检测。这个名字本身就概括了它的工作流程载波监听发送数据之前先监听信道有没有其他人在发送多点接入多个站点连接在同一条总线上碰撞检测发送数据的同时继续监听信道看有没有发生碰撞用大白话说就是先听后说边说边听冲突停发随机重发。这个机制的核心目的是解决总线型网络中多个站点争用信道的问题。因为所有站点共享同一条总线如果两个站点同时发送信号就会叠加导致数据无法正确接收。CSMA/CD就是用来协调这种争用的。4.2 争用期和最短帧长的计算这是以太网部分最常考的计算题。核心概念是争用期也叫碰撞窗口。争用期的定义是发送方在发送数据后最多经过多长时间才能确定没有发生碰撞。这个时间等于信号在总线上往返一次的时间即2ττ是单程传播时延。为什么是2τ因为最坏情况下A发送的信号快到B时B也发送了信号两个信号碰撞后碰撞信号还要传回A。所以A最多需要2τ的时间才能检测到碰撞。以太网规定争用期为51.2微秒对应10Mb/s以太网512比特的发送时间。由此可以算出最短帧长最短帧长 争用期 × 数据率 51.2μs × 10Mb/s 512比特 64字节这个64字节就是以太网帧的最小长度。如果数据部分太少需要填充到46字节因为帧头18字节64-1846。考试里经常出这样的题给你总线长度、信号传播速度、数据率让你算最短帧长。解题步骤是算单程传播时延τ 总线长度 / 传播速度算争用期2τ算最短帧长 2τ × 数据率我做过一道典型题总线长1km信号传播速度200m/μs数据率10Mb/s。τ 1000/200 5μs2τ 10μs最短帧长 10μs × 10Mb/s 100比特。但以太网规定最短帧长是64字节512比特所以实际最短帧长取512比特。4.3 截断二进制指数退避算法发生碰撞后站点需要等待一段随机时间再重发。这个等待时间怎么确定以太网使用截断二进制指数退避算法。算法规则确定基本退避时间一般取争用期2τ从整数集合[0, 1, ..., (2^k - 1)]中随机取一个数r其中k min(重传次数, 10)重传需要的等待时间 r × 2τ如果重传16次仍然失败则丢弃该帧报告错误这个算法的核心思想是重传次数越多随机选择的范围越大等待时间越分散从而降低再次碰撞的概率。考试里经常考这个算法的计算。比如某站点第3次重传k min(3, 10) 3从[0, 1, ..., 7]中随机取一个数r等待时间 r × 2τ。提示注意k的最大值是10不是16。虽然最多重传16次但k在10之后就不再增加了。这是一个容易记错的点。4.4 MAC地址和帧格式以太网的MAC地址是48位通常写成6个十六进制数比如00-1A-2B-3C-4D-5E。MAC地址分为三类单播地址第一个字节的最低位为0用于标识单个站点多播地址第一个字节的最低位为1用于标识一组站点广播地址全1即FF-FF-FF-FF-FF-FF用于标识所有站点以太网帧的格式有两种标准DIX Ethernet V2和IEEE 802.3。考试里主要考DIX Ethernet V2格式字段长度作用目的MAC地址6字节接收方的MAC地址源MAC地址6字节发送方的MAC地址类型2字节标识上层协议如0x0800表示IP数据46-1500字节网络层交下来的数据FCS4字节CRC校验码这里有几个考试常问的点为什么数据部分最少46字节因为以太网帧最短64字节帧头帧尾共18字节所以数据部分最少46字节。如果不够需要填充。为什么数据部分最多1500字节这是以太网规定的最大传输单元MTU。限制MTU的原因是多方面的太长会导致其他站点等待时间过长太短会导致开销过大。类型字段和长度字段的区别DIX Ethernet V2里这个字段是类型标识上层协议IEEE 802.3里这个字段是长度标识数据部分的长度。实际中通过字段值来区分如果值大于1500就是类型如果小于等于1500就是长度。4.5 实战心得CSMA/CD的考试套路CSMA/CD的考题主要有三类第一类概念题。问CSMA/CD的工作流程、争用期的定义、最短帧长的原因等。这类题靠记忆把关键词记住就行。第二类计算题。算最短帧长、算退避时间、算信道利用率等。这类题要熟练掌握公式注意单位换算。第三类分析题。给一个场景问会不会发生碰撞、什么时候能检测到碰撞等。这类题需要理解CSMA/CD的本质。我的经验是把争用期和最短帧长的推导过程自己推一遍理解了原理所有计算题都能迎刃而解。5. 以太网交换机怎么转发帧交换机是以太网里的核心设备也是考试的重点。很多人搞不清楚交换机和集线器的区别其实核心就一句话集线器工作在物理层交换机工作在数据链路层。5.1 交换机的工作原理交换机内部有一个交换表也叫MAC地址表记录了每个MAC地址对应哪个端口。交换机收到帧之后根据目的MAC地址查表决定从哪个端口转发出去。交换表的建立是自学习的交换机收到帧后把源MAC地址和收到该帧的端口号记录到交换表中。这样下次有帧要发给这个MAC地址时就知道从哪个端口转发了。交换机的转发规则如果目的MAC地址在交换表中从对应的端口转发出去明确转发如果目的MAC地址不在交换表中从除接收端口外的所有端口转发出去泛洪如果目的MAC地址是广播地址从除接收端口外的所有端口转发出去广播5.2 自学习过程的详细拆解考试里经常给一个交换机的初始状态和一系列帧的收发过程让你填写交换表的变化。做这种题的关键是按时间顺序逐步更新不要跳步。我举个典型例子。假设交换机有4个端口初始交换表为空。A端口1发送帧给B。交换机收到后记录A→端口1。查表没有B泛洪到端口2、3、4。B端口2回复帧给A。交换机收到后记录B→端口2。查表有A→端口1从端口1转发。C端口3发送帧给A。交换机收到后记录C→端口3。查表有A→端口1从端口1转发。经过这三步交换表里就有三条记录A→1B→2C→3。这种题看起来简单但考试里经常设陷阱比如两个站点同时发送、帧的目的地址是广播地址、交换表项老化等。做的时候要仔细读题注意每一个细节。5.3 交换机的两种交换模式交换机有两种主要的交换模式存储转发模式交换机收到整个帧之后先进行CRC校验确认无误后再转发。优点是能过滤掉错误帧缺点是延迟大。直通模式交换机收到帧的前6个字节目的MAC地址后立即查表转发不等待整个帧接收完。优点是延迟小缺点是不能过滤错误帧。考试里经常问这两种模式的优缺点和适用场景。我的记忆方法是存储转发更可靠但更慢直通更快但可能转发错误帧。5.4 实战心得交换机和路由器的区别考试里经常把交换机和路由器放在一起考。核心区别交换机工作在数据链路层根据MAC地址转发路由器工作在网络层根据IP地址转发交换机隔离碰撞域但不隔离广播域路由器既隔离碰撞域也隔离广播域交换机用于局域网内部路由器用于连接不同网络记住一句话交换机是“本地通”路由器是“跨网通”。6. 这一章怎么复习才不丢分说了这么多知识点最后聊聊复习方法。数据链路层这一章的特点是概念多、计算多、协议多如果只是死记硬背很容易记混。我的建议是抓住三条主线第一条主线三个基本问题。封装成帧、透明传输、差错检测。每学一个协议就问自己它是怎么解决这三个问题的。PPP用字节填充以太网用曼彻斯特编码和CRCHDLC用比特填充。这样串起来协议之间的区别就一目了然了。第二条主线可靠传输和不可靠传输。数据链路层的可靠传输机制包括确认和重传但现代协议PPP、以太网都选择不做可靠传输把可靠性交给上层。理解这个设计哲学很多概念题就能直接选对。第三条主线计算题的公式。CRC的模2除法、争用期和最短帧长、退避算法的等待时间、交换机的自学习过程。这些计算题都有固定的套路把公式记熟多做几道典型题考试时就能快速拿分。我当年复习的时候把教材上的例题和课后习题做了三遍。第一遍按章节做第二遍按题型做第三遍只做错题。做完之后这一章的考点基本就全覆盖了。考试的时候数据链路层的题我基本没丢分。提示谢希仁老师的教材里数据链路层的课后习题质量很高很多考试题都是从里面改编的。建议至少做两遍。另外这一章和后面网络层、传输层的内容有很强的关联。比如MTU的概念会影响IP分片CRC的思想在TCP校验和里也有体现。复习的时候不要孤立地看这一章要把它放在整个协议栈里理解。这样不仅考试能拿分对计算机网络的整体理解也会上一个台阶。最后说一个考试技巧数据链路层的简答题经常考“为什么这样设计”而不是“是什么”。比如“为什么PPP不需要纠错”“为什么以太网有最短帧长限制”“为什么交换机要自学习”。回答这类题的时候一定要从设计目标和实际约束两个角度去分析不要只背结论。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询