当前位置: 首页 > article >正文

计算机网络复习(第三章):数据链路层

数据链路层成帧、差错控制、可靠传输与介质访问控制引言数据链路层在网络中的位置数据链路层位于物理层之上、网络层之下。物理层负责把比特转换成电信号、光信号或无线电波并在传输介质上传播而数据链路层要解决的问题更进一步如何把物理层传来的原始比特流组织成有边界、有意义、可检错、可控制的数据单位并尽可能可靠地交付给相邻结点。这一层关注的是“相邻结点之间”的通信而不是端到端通信。比如一台主机把数据发给远端服务器途中可能经过多个路由器。网络层看到的是从源主机到目的主机的路径选择而数据链路层只关心每一段链路上相邻设备之间的数据传输是否正确、有序、受控。本章可以按五条主线理解第一数据链路层的功能第二组帧也就是如何把比特流划分为帧第三差错控制包括检错编码和纠错编码第四流量控制与可靠传输机制包括停止-等待、后退 N 帧和选择重传第五介质访问控制也就是多个结点共享同一信道时如何决定谁可以发送数据。后面还会涉及局域网、以太网、无线局域网、广域网协议以及数据链路层设备。一、数据链路层的基本功能数据链路层的核心任务是在相邻结点之间实现数据帧的有效传输。它并不保证整个互联网端到端的可靠性而是尽力在一条链路范围内解决传输过程中可能出现的问题。数据链路层的主要功能包括为网络层提供服务、链路管理、组帧、流量控制、差错控制以及介质访问控制。1. 为网络层提供服务数据链路层向网络层屏蔽物理层的细节。网络层只需要把分组交给数据链路层不必关心底层到底是双绞线、光纤还是无线信道也不必直接处理比特同步、信号失真和帧边界识别等问题。数据链路层可以向网络层提供三类典型服务。第一类是无确认的无连接服务发送方直接发送帧不建立连接也不要求接收方确认适用于误码率低、实时性要求高或上层能处理差错的场景。第二类是有确认的无连接服务发送方不建立连接但每发送一帧都需要接收方确认适用于无线链路等误码率较高的场景。第三类是有确认的面向连接服务通信前建立连接通信中确认与控制通信后释放连接适用于对可靠性要求较高的链路。2. 链路管理链路管理主要出现在面向连接的服务中包括链路的建立、维持和释放。通信双方在正式传输数据之前需要协商参数、建立逻辑连接传输过程中需要维护链路状态通信结束后需要释放链路资源。虽然很多局域网链路在实际使用中不强调显式的链路建立过程但理解链路管理有助于区分“物理上连通”和“逻辑上可通信”这两个概念。3. 组帧物理层传输的是连续的比特流但接收方必须知道哪些比特属于同一个数据单位。因此数据链路层需要把网络层传来的分组封装成帧并在帧中加入首部和尾部信息使接收方能够识别帧的开始和结束。帧通常包含帧头、数据部分和帧尾。帧头中可能包含地址、控制字段等信息帧尾中常包含差错检测码如 CRC 校验序列。组帧是数据链路层最基础的功能之一因为没有清晰的帧边界后续的差错检测、确认重传和介质访问控制都无法进行。4. 流量控制流量控制解决的是发送方发送速度与接收方接收能力不匹配的问题。如果发送方发送过快而接收方缓存有限接收方就可能来不及处理而丢弃帧。流量控制的目标是限制发送方的发送速率使接收方能够及时接收和处理。流量控制与可靠传输常常结合在一起例如停止-等待协议和滑动窗口协议既可以控制发送窗口大小又可以配合确认机制实现可靠传输。5. 差错控制实际信道可能受到噪声、衰减、干扰等因素影响导致比特出错。数据链路层通过差错控制发现或纠正错误。差错控制可以分为检错和纠错。检错只判断数据是否出错发现错误后通常丢弃并请求重传纠错不仅发现错误还能确定错误位置并直接改正。常见检错方法包括奇偶校验和循环冗余校验 CRC常见纠错方法包括海明码。6. 介质访问控制在广播式链路中多个结点共享同一传输介质。如果多个结点同时发送数据信号会发生冲突导致帧损坏。介质访问控制要解决的问题就是当多个设备都想使用同一信道时如何协调发送顺序避免或减少冲突。常见介质访问控制方法包括信道划分介质访问控制、随机访问介质访问控制和轮询访问介质访问控制。信道划分方法包括频分复用、时分复用、波分复用和码分复用随机访问方法包括 ALOHA、CSMA、CSMA/CD 和 CSMA/CA。二、组帧给比特流划出边界组帧的核心问题是帧定界。发送方把一串数据封装成帧接收方必须从连续比特流中准确识别每一帧的起点和终点。如果帧边界识别错误后续所有数据解释都会出错。常见组帧方法包括字符计数法、字节填充法、零比特填充法和违规编码法。1. 字符计数法字符计数法在帧头中使用一个计数字段表示该帧的总字符数或字节数。接收方读到计数字段后就知道接下来多少个字符属于当前帧。这种方法实现简单但缺点很明显如果计数字段在传输中出错接收方就会错误判断帧长度导致当前帧和后续帧都无法正确识别。也就是说一个小错误可能造成连锁失步。2. 字节填充法字节填充法使用特殊字符作为帧的开始和结束标志。例如用一个标志字节 FLAG 表示帧边界。问题在于如果数据部分本身也出现与 FLAG 相同的字节接收方可能误以为帧结束。为了解决这个问题发送方在数据中出现 FLAG 或转义字符 ESC 时在其前面插入一个 ESC。接收方收到后如果看到 ESC就知道后面的字符是普通数据而不是控制字符。这种方法称为字节填充或字符填充。字节填充法适合以字节为单位处理的数据链路协议典型思想是通过“转义”来区分数据字符和控制字符。3. 零比特填充法零比特填充法常见于面向比特的协议如 HDLC。它使用特殊比特串01111110作为帧定界标志。为了避免数据部分中偶然出现相同的比特串发送方在数据部分每遇到连续 5 个 1就自动插入一个 0。接收方在接收数据时每遇到连续 5 个 1 后面的 0就把这个 0 删除。这样帧定界符01111110就不会在数据部分中自然出现。零比特填充法的优点是可以面向任意比特串不依赖字符编码适合二进制数据传输。4. 违规编码法违规编码法利用物理层编码中不会出现的非法信号模式来表示帧边界。比如某种编码规则规定正常数据中不可能出现某种电平变化那么就可以用这种“违规”模式作为帧开始或帧结束标志。这种方法依赖具体物理编码方式优点是不用额外插入大量控制字符但适用范围受编码机制限制。三、差错控制发现错误与纠正错误实际链路中比特可能发生差错。差错控制要解决两个问题第一如何发现数据在传输过程中是否出错第二如果出错能否直接纠正或者至少通知发送方重传。差错控制通常使用冗余编码。发送方在原始数据后附加一些冗余位接收方根据这些冗余位检查数据是否满足某种规则。如果不满足就说明数据可能出错。1. 奇偶校验奇偶校验是在数据后增加 1 位校验位使整个码字中 1 的个数满足奇数或偶数要求。若采用偶校验则数据位加校验位中 1 的个数应为偶数若采用奇校验则 1 的个数应为奇数。接收方收到数据后重新统计 1 的个数如果不符合约定就判断发生错误。奇偶校验实现简单开销小但能力有限。它只能检测奇数个比特错误无法检测偶数个比特错误也无法确定错误位置。因此它适合简单场景不适合高可靠性需求。2. 循环冗余校验 CRCCRC 是数据链路层中非常重要的检错方法。它把待发送数据看作一个二进制多项式用约定的生成多项式进行模 2 除法得到余数作为帧检验序列 FCS附加在数据后面发送。CRC 的基本步骤可以概括为首先发送方和接收方约定一个生成多项式 (G(x))它对应一个二进制比特串。若生成多项式阶数为 (r)则 CRC 校验码长度为 (r) 位。然后发送方在原始数据后补 (r) 个 0再用生成多项式对应的比特串做模 2 除法。这里的模 2 除法不涉及借位和进位本质上就是异或运算。最后把得到的 (r) 位余数替换原来补上的 0附加到数据后面发送。接收方收到后用同一个生成多项式对整个码字做模 2 除法如果余数为 0则认为没有检测到错误如果余数不为 0则判断传输出错。CRC 的特点是检错能力强、实现效率高广泛用于链路层协议。但要注意CRC 只能检错不能自动纠错。它判断的是“是否检测到错误”并不告诉接收方错误位在哪里。3. 海明码海明码是一种纠错编码能够发现并纠正一定范围内的错误。它的核心思想是在数据位中插入若干校验位通过多个校验关系共同定位错误位置。如果数据位数为 (m)校验位数为 (r)为了能够定位所有单比特错误并区分无错情况需要满足2^r m r 1海明码通常把校验位放在序号为 1、2、4、8 等 (2^k) 的位置上其余位置放数据位。每个校验位负责检查若干位使得任何一个位置出错时都会形成唯一的错误综合症从而确定错误位置。海明码的重点不只是公式还要理解“多个校验位共同定位错误”的思想。奇偶校验只能知道有错海明码通过多组校验关系可以知道哪一位出错并将其翻转纠正。四、流量控制与可靠传输机制流量控制和可靠传输经常一起出现。流量控制防止发送方过快发送导致接收方来不及处理可靠传输则通过确认、超时和重传等机制处理帧丢失、帧出错和确认丢失等情况。1. 停止-等待协议停止-等待协议是最简单的可靠传输协议。发送方每发送一帧就停下来等待接收方确认 ACK。只有收到确认后才发送下一帧。如果发送方在规定时间内没有收到确认就认为该帧或确认可能丢失于是重传该帧。为了防止重复帧造成混乱停止-等待协议通常给帧编号。由于同一时刻最多只有一个未确认帧所以只需要 1 bit 序号即 0 和 1 交替编号。停止-等待协议的优点是简单缺点是信道利用率低。尤其在长距离、高带宽链路中发送方发完一帧后要等待很长时间才能发送下一帧链路大部分时间处于空闲状态。停止-等待协议信道利用率常用下面思想计算利用率 发送一帧所需时间 / 从开始发送到收到确认前的总时间若数据帧发送时延为 (T_D)往返传播时延为 RTT确认帧发送时延为 (T_A)则利用率大致为U T_D / (T_D RTT T_A)如果确认帧很短(T_A) 常可忽略。这个公式体现了为什么传播时延越大、帧越短停止-等待协议效率越低。2. 滑动窗口机制滑动窗口协议允许发送方在未收到确认之前连续发送多个帧。发送方维护一个发送窗口窗口中的帧可以连续发送接收方维护一个接收窗口表示当前可以接收哪些序号的帧。当发送方收到确认后发送窗口向前滑动允许继续发送新的帧。滑动窗口机制可以显著提高信道利用率因为发送方不必每发一帧就停下来等待确认。滑动窗口协议中的序号空间非常重要。如果序号位数为 (n)则序号范围为0 ~ 2^n - 1窗口大小不能随意设置否则可能出现新旧帧序号混淆。不同协议对窗口大小有不同限制。3. 后退 N 帧协议 GBN后退 N 帧协议允许发送方连续发送多个帧但接收方通常只按序接收。如果某一帧出错或丢失接收方会丢弃该帧以及之后所有失序到达的帧并继续确认最后一个正确按序收到的帧。发送方超时后需要从出错或丢失的那一帧开始把后续已经发送但未被确认的帧全部重传。GBN 的特点是发送方窗口较大接收方窗口为 1。它比停止-等待协议效率高但如果链路误码率较高一旦某帧出错后续帧即使已经正确到达也会被丢弃重传开销较大。在 GBN 中若序号位数为 (n)发送窗口大小通常应满足W_T 2^n - 1这样可以避免新旧帧序号混淆。GBN 采用累积确认机制。接收方确认某个序号通常表示该序号之前的所有帧都已正确收到。例如 ACK 5 可以表示 0 到 5 或 5 之前的帧都已经正确接收具体含义取决于教材和协议约定但核心思想都是“按序累计确认”。4. 选择重传协议 SR选择重传协议允许接收方缓存失序到达的正确帧只要求发送方重传出错或丢失的帧而不是像 GBN 那样从错误帧开始全部重传。因此 SR 的重传开销比 GBN 小尤其适合误码率较高的链路。SR 的代价是实现更复杂。接收方需要有足够缓存保存失序帧并对每个正确接收的帧单独确认。发送方也需要为窗口内每个帧维护状态可能还要为每个未确认帧设置独立计时器。在 SR 中为避免新旧帧序号混淆若序号位数为 (n)发送窗口和接收窗口通常满足W_T 2^(n-1) W_R 2^(n-1)常见情况下SR 的发送窗口和接收窗口大小相等都不超过序号空间的一半。5. 三种可靠传输协议的比较停止-等待协议最简单窗口大小为 1信道利用率低适合低速或简单链路。GBN 允许连续发送多个帧发送效率较高但接收方不缓存失序帧出错后可能重传大量帧。SR 只重传出错帧信道利用率更高但实现复杂需要更大的缓存和更复杂的确认机制。可以这样理解三者的演进停止-等待协议是“发一个等一个”GBN 是“连续发但错了从错误处往后全重来”SR 是“连续发错哪个补哪个”。五、介质访问控制共享信道如何分配介质访问控制主要解决广播信道中的冲突问题。多个结点共享同一条信道时如果大家随意发送帧之间可能互相干扰导致接收方无法正确接收。因此需要某种规则决定谁在什么时候可以发送。介质访问控制方法大致可以分为三类信道划分介质访问控制、随机访问介质访问控制和轮询访问介质访问控制。六、信道划分介质访问控制信道划分方法的思想是把共享信道划分成多个互不干扰的子信道每个用户占用其中一部分资源。这样可以避免冲突但可能造成资源浪费。1. 频分复用 FDM频分复用把信道的总频带划分为多个互不重叠的频率子带每个用户占用一个频带同时传输数据。广播电台就是典型例子不同电台使用不同频率用户调到对应频率即可接收。FDM 的优点是各用户可以同时通信缺点是需要保护频带以避免相邻频带干扰并且当某个用户没有数据发送时其占用的频带可能被浪费。2. 时分复用 TDM时分复用把时间划分为周期性重复的时隙每个用户在固定时隙内发送数据。所有用户轮流使用同一频带。传统 TDM 的缺点是时隙固定分配即使某用户暂时没有数据其时隙也可能空闲浪费。统计时分复用 STDM 则根据用户实际需求动态分配时隙提高信道利用率。3. 波分复用 WDM波分复用主要用于光纤通信。它把不同波长的光信号合并在同一根光纤中传输到接收端再分离不同波长。由于光的频率极高光纤带宽巨大WDM 可以显著提高光纤传输容量。可以把 WDM 理解为光纤通信中的“频分复用”只是划分的是不同光波波长。4. 码分复用 CDM码分复用让多个用户在同一时间、同一频带上传输但每个用户使用不同的码片序列进行区分。只要码片序列之间相互正交接收方就可以通过相关运算从叠加信号中分离出目标用户的数据。码分多址 CDMA 是码分复用的典型应用。每个站点被分配一个唯一的码片序列。发送 1 时发送该码片序列发送 0 时发送该码片序列的反码。接收方用同一个码片序列与收到的叠加信号做内积就能判断该用户发送的是 1、0还是没有发送。CDMA 的计算题核心是正交码片和内积运算。若两个码片序列正交它们规格化内积为 0某码片序列与自身的内积为 1与自身反码的内积为 -1。利用这个性质就能从多个用户叠加发送的信号中分离出某个用户的信息。七、随机访问介质访问控制随机访问方法不预先把信道固定分给各用户而是让用户在有数据时尝试发送。如果发生冲突再通过某种机制处理。其优点是灵活适合突发数据缺点是可能发生冲突负载高时效率下降。1. ALOHA 协议纯 ALOHA 的思想非常简单站点有数据就立即发送。如果发送后发现冲突或没有收到确认就等待一个随机时间后重发。纯 ALOHA 简单但效率低因为任意时刻都可能有其他站点发送冲突概率较高。其最大信道利用率约为 18.4%。时隙 ALOHA 把时间划分为等长时隙站点只能在时隙开始时发送。这样冲突只会发生在同一时隙内减少了冲突可能性最大信道利用率约为 36.8%。时隙 ALOHA 的效率高于纯 ALOHA但需要全网时钟同步。2. CSMA 协议CSMA 是载波监听多路访问。它的思想是站点发送前先监听信道如果信道空闲再发送如果信道忙则按照某种策略等待。CSMA 的常见策略包括 1-坚持 CSMA、非坚持 CSMA 和 p-坚持 CSMA。1-坚持 CSMA 中站点监听到信道空闲就立即发送如果信道忙就持续监听一旦空闲马上发送。它的优点是信道空闲时利用及时缺点是多个等待站点可能同时发送导致冲突。非坚持 CSMA 中站点监听到信道忙时不持续监听而是等待一个随机时间后再监听。这样可以减少冲突但可能造成信道空闲后没有站点立即发送降低利用率。p-坚持 CSMA 常用于时隙信道。站点监听到信道空闲时以概率 p 发送以概率 1-p 推迟到下一个时隙继续判断。它在冲突概率和信道利用率之间折中。CSMA 相比 ALOHA 能减少冲突但不能完全避免冲突。原因是信号传播存在时延一个站点监听到信道空闲时可能另一个远端站点的信号还没有传播到它这里于是两个站点仍可能同时发送。3. CSMA/CD 协议CSMA/CD 是带冲突检测的载波监听多路访问典型用于传统总线型以太网。它的原则可以概括为先听后发边发边听冲突停止随机重发。站点发送前监听信道空闲则发送发送过程中继续监听信道检测是否发生冲突。一旦检测到冲突就立即停止发送并发送干扰信号强化冲突使所有站点都知道发生了冲突。随后使用二进制指数退避算法等待随机时间后重发。CSMA/CD 中有一个非常重要的最短帧长问题。由于冲突信号需要传播时间发送方必须在发送过程中仍有机会检测到最远端冲突。为了保证这一点帧的发送时间不能小于两倍的最大传播时延即最短帧发送时间 2τ若数据传输速率为 (R)最大传播时延为 (\tau)则最短帧长为L_min 2τR以太网规定最短帧长为 64 字节这与冲突检测机制密切相关。如果帧太短发送方可能已经发送完毕以为发送成功但冲突信号还没有返回导致无法检测冲突。CSMA/CD 适用于半双工共享介质环境。现代交换式以太网通常工作在全双工模式不再需要 CSMA/CD因为每个端口独享链路不会发生传统意义上的冲突。4. CSMA/CA 协议CSMA/CA 是带冲突避免的载波监听多路访问主要用于无线局域网。无线环境中站点很难像有线以太网那样边发送边检测冲突因为发送信号远强于接收信号而且还存在隐藏站问题。因此无线网络更强调避免冲突而不是检测冲突。CSMA/CA 的基本思想是发送前监听信道信道空闲一段时间后再等待随机退避时间退避计数到 0 才发送。接收方收到正确帧后发送 ACK。若发送方没有收到 ACK就认为发生冲突或传输失败需要重传。无线局域网还可以使用 RTS/CTS 机制缓解隐藏站问题。发送方先发送 RTS 请求发送接收方回复 CTS 允许发送。其他站点听到 RTS 或 CTS 后会在指定时间内保持静默从而减少冲突。隐藏站问题是指两个站点都能与同一个接收方通信但彼此听不到对方。如果它们同时向接收方发送就会在接收方处发生冲突。暴露站问题则是站点误以为不能发送实际上发送不会造成冲突从而降低了信道利用率。CSMA/CA 和 RTS/CTS 主要用于缓解这些无线环境中特有的问题。八、轮询访问介质访问控制轮询访问介质访问控制通过集中或有序方式分配发送机会典型方法包括轮询协议和令牌传递协议。轮询协议中有一个主站按顺序询问各从站是否有数据发送。被询问到的站点才可以发送。它避免了冲突但主站故障会影响全网轮询开销也会降低效率。令牌传递协议中网络中有一个特殊控制帧称为令牌。只有持有令牌的站点才能发送数据发送完后把令牌传给下一个站点。令牌环网就是典型例子。令牌机制可以避免冲突并保证每个站点都有发送机会但令牌丢失或损坏需要额外机制恢复。轮询和令牌传递适合负载较重且需要确定性访问的场景但实现复杂度高于随机访问方法。九、局域网与 IEEE 802 标准局域网覆盖范围较小通常属于一个单位、校园或家庭内部网络。它具有传输速率高、误码率低、延迟小、便于管理等特点。局域网通常采用广播信道因此介质访问控制是局域网的重要内容。IEEE 802 标准把局域网的数据链路层进一步划分为两个子层逻辑链路控制 LLC 子层和介质访问控制 MAC 子层。LLC 子层向网络层提供统一接口使网络层不必关心底层采用的是以太网、令牌环还是无线局域网。MAC 子层负责与具体介质访问控制相关的功能例如 MAC 地址、帧格式、介质访问规则和差错检测。在现代以太网中LLC 的存在感相对较弱MAC 子层更加重要。考试中常见的是 MAC 地址、以太网帧格式、CSMA/CD、交换机转发等内容。十、以太网以太网是最典型、使用最广泛的局域网技术。早期以太网采用总线型结构和 CSMA/CD 协议所有主机共享同一信道。现代以太网更多采用交换机组成星型拓扑每台主机独占交换机端口通常支持全双工通信。1. 以太网的特点以太网提供的是无连接、不可靠服务。发送方发送帧之前不建立连接接收方收到帧后通常不发送链路层确认。如果帧出错以太网直接丢弃可靠性由上层协议如 TCP 负责。以太网使用 MAC 地址标识网卡。MAC 地址通常为 48 bit全球唯一常用十六进制表示。以太网帧根据目的 MAC 地址决定接收对象。若目的地址是广播地址全网同一广播域内的主机都应接收该帧。2. 以太网帧格式以太网帧通常包括目的地址、源地址、类型字段、数据字段和帧检验序列 FCS。目的地址和源地址各 6 字节类型字段 2 字节用于标识上层协议FCS 通常为 4 字节用 CRC 进行差错检测。以太网帧的数据字段有最小长度要求。由于以太网最短帧长为 64 字节除去目的地址、源地址、类型字段和 FCS 等字段后数据字段不足时需要填充。这个最短帧长与 CSMA/CD 的冲突检测机制有关。3. 传统以太网与交换式以太网传统共享式以太网中所有主机共享同一冲突域任意两个主机同时发送都可能冲突因此需要 CSMA/CD。交换式以太网使用交换机连接各主机。每个交换机端口形成独立冲突域如果工作在全双工模式就不会发生冲突因此不再使用 CSMA/CD。交换式以太网提高了带宽利用率和网络性能是现代局域网的主流形式。十一、无线局域网 IEEE 802.11无线局域网使用无线电波作为传输介质典型标准是 IEEE 802.11也就是通常所说的 Wi-Fi。由于无线信道开放、干扰多、隐藏站问题明显无线局域网不能简单照搬有线以太网的 CSMA/CD而采用 CSMA/CA。无线局域网的基本组成包括无线站点、接入点 AP 和基本服务集 BSS。一个 AP 及其覆盖范围内的无线站点构成一个基本服务集。多个 BSS 可以通过分布式系统连接形成扩展服务集 ESS。802.11 帧比以太网帧更复杂可能包含多个地址字段因为无线帧在站点、接入点和分布式系统之间转发时需要同时标识发送端、接收端、源地址和目的地址。无线局域网的可靠性通常依赖链路层确认。由于无线误码率较高接收方正确收到单播帧后需要发送 ACK发送方未收到 ACK 则重传。这一点与以太网不同以太网通常不在链路层确认普通数据帧。十二、VLAN虚拟局域网VLAN 即虚拟局域网它可以在物理网络基础上划分多个逻辑广播域。不同 VLAN 之间即使连接在同一台交换机上也像处于不同局域网一样二层广播不会直接互通。VLAN 的主要作用是隔离广播域、提高网络安全性、方便管理和灵活划分用户组。传统按物理位置划分网络而 VLAN 可以按部门、功能或策略划分网络不受物理位置限制。IEEE 802.1Q 是常见 VLAN 标准它在以太网帧中插入 VLAN 标签用于标识该帧所属 VLAN。交换机根据 VLAN ID 判断帧的转发范围。十三、广域网与 PPP 协议广域网覆盖范围大常用于连接不同地区的局域网。与局域网相比广域网链路距离长、带宽成本高、涉及运营商网络数据链路层协议也有所不同。PPP 是点对点协议常用于点对点链路。它具有简单、通用、支持多种网络层协议等特点。PPP 帧通常包含标志字段、地址字段、控制字段、协议字段、信息字段和 FCS 字段。PPP 的功能包括成帧、差错检测、链路控制和网络层协议协商。链路控制协议 LCP 用于建立、配置、测试和终止数据链路网络控制协议 NCP 用于支持不同网络层协议例如 IP。PPP 不提供可靠传输不进行纠错也不使用序号和确认机制。它只进行差错检测发现错误帧后丢弃可靠性由上层协议负责。十四、HDLC 协议HDLC 是一种面向比特的数据链路层协议。它使用01111110作为帧标志并采用零比特填充法防止数据中出现伪标志。HDLC 帧通常包含标志字段、地址字段、控制字段、信息字段和 FCS 字段。HDLC 的控制字段可以区分信息帧、监督帧和无编号帧。信息帧用于传输数据监督帧用于流量控制和差错控制无编号帧用于链路管理等控制功能。HDLC 是理解面向比特协议、零比特填充和链路控制思想的重要例子。十五、数据链路层设备数据链路层设备主要包括网桥和交换机。它们与物理层设备中继器、集线器不同能够识别帧能够根据 MAC 地址转发数据。1. 网桥网桥工作在数据链路层用于连接多个局域网网段。它根据 MAC 地址决定是否转发帧可以隔离冲突域减少无关流量。网桥具有自学习能力。它会根据收到帧的源 MAC 地址和进入端口建立转发表。以后当收到目的地址已知的帧时就只向对应端口转发如果目的地址未知则向除入端口外的其他端口泛洪。2. 交换机交换机可以看作多端口网桥。它每个端口通常连接一台主机或另一个网络设备每个端口都是独立冲突域。交换机根据 MAC 地址表转发帧显著提高局域网性能。交换机的转发方式常见有存储转发和直通转发。存储转发会先接收完整帧并检查 FCS再决定是否转发可靠性较高但延迟稍大。直通转发在读取到目的地址后就开始转发延迟低但可能转发错误帧。交换机不会默认隔离广播域。普通二层交换机会转发广播帧到同一 VLAN 内所有端口因此一个 VLAN 通常就是一个广播域。要实现不同广播域之间通信需要三层设备或三层交换机。十六、本章高频计算与判断数据链路层的计算题主要集中在滑动窗口、信道利用率、最短帧长、CRC、海明码和 CDMA。滑动窗口题要先确定协议类型。停止-等待窗口为 1GBN 接收窗口为 1发送窗口最大通常为 (2^n - 1)SR 发送窗口和接收窗口通常不超过 (2^{n-1})。信道利用率题要分清发送时延、传播时延、RTT 和确认帧发送时延。停止-等待协议效率低的根本原因是每发送一帧后要等待确认而滑动窗口可以连续发送多个帧提高链路利用率。最短帧长题常和 CSMA/CD 结合。核心是发送方必须在发送完之前检测到最远端冲突因此帧发送时间至少为 (2\tau)最短帧长为 (2\tau R)。CRC 题要熟练模 2 除法。模 2 加减都等价于异或不借位也不进位。生成多项式阶数决定校验码位数。海明码题要先用 (2^r \ge mr1) 确定校验位个数再确定校验位位置。纠错时根据校验结果形成错误位置编号。CDMA 题要记住码片正交和规格化内积。目标站点的码片序列与收到的叠加序列做内积结果为 1 表示发送 1为 -1 表示发送 0为 0 表示未发送。十七、容易混淆的重点第一数据链路层的可靠传输不同于传输层的端到端可靠传输。数据链路层只负责相邻结点之间的一段链路传输层负责源主机到目的主机之间的端到端通信。第二流量控制和差错控制不是一回事。流量控制解决发送太快导致接收方来不及处理的问题差错控制解决帧丢失、出错和重复的问题。很多协议把二者结合实现但概念上要分开。第三GBN 和 SR 的接收策略不同。GBN 不接收失序帧错一帧可能导致后续多帧重传SR 接收并缓存失序帧只重传出错帧。第四CSMA/CD 和 CSMA/CA 的适用环境不同。CSMA/CD 用于有线共享以太网重点是冲突检测CSMA/CA 用于无线局域网重点是冲突避免。第五集线器和交换机不能混淆。集线器工作在物理层转发比特所有端口共享冲突域交换机工作在数据链路层转发帧能够隔离冲突域。第六以太网不提供链路层可靠传输。它可以通过 FCS 检测错误帧但发现错误后通常直接丢弃不在链路层重传。第七VLAN 隔离的是广播域而交换机普通端口隔离的是冲突域。没有 VLAN 时一台二层交换机上的多个端口通常仍属于同一个广播域。结语数据链路层是计算机网络中非常关键的一层。它把物理层提供的原始比特流组织成帧通过成帧机制确定边界通过差错控制发现或纠正传输错误通过流量控制和可靠传输机制协调发送与接收通过介质访问控制解决共享信道上的冲突问题又通过以太网、无线局域网、PPP、HDLC、交换机和 VLAN 等技术落到真实网络中。理解本章时不要把知识点当成孤立概念。组帧解决“数据边界在哪里”差错控制解决“数据有没有错”流量控制解决“发送会不会太快”可靠传输解决“出错或丢失怎么办”介质访问控制解决“共享信道谁先发”交换机和 VLAN 解决“局域网中帧如何转发和隔离”。这些问题连在一起就构成了数据链路层的完整逻辑。重点问题

相关文章:

计算机网络复习(第三章):数据链路层

数据链路层:成帧、差错控制、可靠传输与介质访问控制 引言:数据链路层在网络中的位置 数据链路层位于物理层之上、网络层之下。物理层负责把比特转换成电信号、光信号或无线电波并在传输介质上传播,而数据链路层要解决的问题更进一步&#xf…...

2026边墙风机行业深度选型对比|英飞风机、格林瀚克、依必安派特三家核心全解析

在工业制造智能化升级、新型基础设施持续落地双重政策加持下,我国边墙风机行业保持7.8%年均稳健增长。行业需求已彻底告别单一基础通风换气,全面升级为高效节能、安全合规、场景精细化适配三维核心标准,市场梯队分化明显,各厂商技…...

chatgptimage2.0手机版app下载安装教程gptimage2.0手机版下载安装教程安卓版app鸿蒙版苹果版IOS电脑版安装包下载地址

📢提示:资源链接地址放在文章结尾👇👇,往下翻就行 📢提示:资源链接地址放在文章结尾👇👇,往下翻就行 chatgptimage2.0手机版app下载安装教程gptimage2.0手机…...

Django ORM 中的 Many-to-Many 关系处理

在 Django 开发中,处理数据库关系是常见任务之一。尤其是 Many-to-Many(多对多)关系的处理,常常需要一些技巧来高效地获取和组织数据。本文将通过一个实际案例,探讨如何在 Django ORM 中处理多对多关系,并展示如何将复杂的数据结构转化为易于使用的格式。 背景介绍 假设…...

别再折腾MCP2515了!手把手教你用ESP32内置TWAI外设实现CAN通信(附完整代码与500K波特率避坑指南)

ESP32内置TWAI外设实战:抛弃MCP2515的高效CAN通信方案 当我在智能家居控制项目中第一次尝试用ESP32连接汽车ECU时,MCP2515模块的SPI速率瓶颈让我头疼不已。直到发现ESP32内部沉睡的TWAI外设——这个被多数开发者忽视的硬件级CAN控制器,才真正…...

Flutter 翻页动画:前后翻页实现

在现代移动应用开发中,用户体验至关重要。一个好的阅读体验不仅需要内容丰富,还需要流畅的界面交互。今天,我们将探讨如何在 Flutter 中实现一个可以前后翻页的图书阅读页面。 背景 在 Flutter 中实现翻页效果,通常会使用第三方库,如 flip_widget 或 page_flip。这些库提…...

定制开发落地实践:D-coding 销售采购系统赋能上海多终端软件项目建设

摘要: 在订单驱动型企业中,销售与采购往往不是两条独立流程,而是一条从客户需求、询价比价、采购执行、物流跟踪到开票结算的连续业务链。本文围绕销售采购系统的核心场景,结合上海APP开发、上海小程序开发、上海软件定制开发的实…...

机器学习分类算法超参数调优实战指南

1. 机器学习分类算法超参数调优实战指南在机器学习项目中,算法超参数的选择往往决定了模型的最终表现。与模型训练过程中自动学习的参数不同,超参数需要我们在训练前手动设置。这就引出了一个关键问题:面对众多超参数选项,我们该如…...

云原生数据管道实现

云原生数据管道实现 1. 数据管道的概念与价值 数据管道是指将数据从源系统传输到目标系统的一系列处理步骤,包括数据提取、转换和加载(ETL)过程。在云原生环境中,数据管道变得尤为重要,因为企业需要处理和分析大量的数…...

Java 刷题必备:HashMap、HashSet、ArrayList 超全速记手册

在 Java 算法刷题和日常开发中,HashMap、HashSet、ArrayList 是使用率最高的三个集合工具,堪称「刷题三巨头」。本文整理了它们的基础用法、核心方法、高频场景、易错点,纯干货无废话,背会就能直接上手写代码!一、Hash…...

蓝桥杯单片机实战:NE555频率测量与定时器配置详解

1. NE555频率测量基础与硬件连接 在蓝桥杯单片机竞赛中,NE555频率测量是常见的基础任务。NE555作为经典定时器芯片,能产生稳定的方波信号。测量其输出频率的核心思路是将信号接入单片机计数器引脚,通过定时采样计数值换算频率。这里有个关键细…...

基于TypeScript的AI Agent开发SDK:模块化架构与工程实践指南

1. 项目概述:一个为AI Agent开发赋能的TypeScript SDK如果你正在尝试构建一个能够自主思考、调用工具、并与用户进行复杂交互的AI智能体(Agent),那么你很可能已经感受到了其中的复杂性。从理解用户意图、规划任务步骤,…...

Qwen3.5-2B应用场景:教育行业作业批改辅助——截图题+多步解题推理

Qwen3.5-2B应用场景:教育行业作业批改辅助——截图题多步解题推理 1. 教育行业的作业批改痛点 1.1 传统批改方式的挑战 人工批改耗时:教师每天需要花费大量时间批改作业,特别是数学、物理等需要逐步推理的科目截图题处理困难:学…...

别再折腾双系统了!用WSL2+CentOS7+xfce4打造你的Windows原生Linux开发桌面

告别双系统:用WSL2CentOS7构建无缝Linux开发环境 每次重启切换操作系统的等待,虚拟机卡顿时的烦躁,开发环境不一致导致的调试噩梦——这些困扰开发者多年的问题,其实早该被扔进技术历史的垃圾桶。当WSL2遇上轻量级桌面环境&#x…...

三大突破:FakeLocation如何通过应用级Hook技术实现Android精准虚拟定位

三大突破:FakeLocation如何通过应用级Hook技术实现Android精准虚拟定位 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 在移动应用生态中,位置隐私保护已成…...

JavaScript中Symbol-keyFor检索全局符号键名逻辑

Symbol.keyFor()仅对Symbol.for()创建的全局Symbol有效,返回其键名字符串;对Symbol()创建的局部Symbol或内建Symbol均返回undefined。Symbol.keyFor() 只对通过 Symbol.for() 注册到全局符号注册表的 Symbol 有效,它返回该 Symbol 对应的键名…...

JavaScript中函数声明位置对解析器预编译的影响

函数声明会被完整提升,包括函数名和函数体;函数表达式仅变量名提升,赋值不提升;块级函数声明行为不统一,严格模式下受TDZ约束;箭头函数和class声明不享受函数声明式提升。JavaScript中函数声明会被提升&…...

AI试衣算法源码-一键生成模特试衣图-支持多角度+纹理自适应-PHP+MySQL-电商降本增效

温馨提示:文末有资源获取方式电商服装类目卖家都清楚,一套像样的模特试衣图拍摄下来:模特费用:500-2000元/天摄影师灯光:800-3000元/天化妆师场地:500-1500元/天后期修图:20-100元/张一套衣服拍…...

工作绩效数据—>工作绩效信息—>工作绩效报告

在软考10大管理知识域, 经常会看到这3个词。 所有10大管理都有工作绩效数据、工作绩效信息,在整合管理、沟通管理中还包括工作绩效报告 这3个词是有先后顺序的, 第一 数据, 第二 信息, 第三 报告。 从5大过程组的角度看…...

避开海面遥感坑:实测讲解SAR不同入射角(20°-70°)下海面回波信号的差异与选择

避开海面遥感坑:实测讲解SAR不同入射角(20-70)下海面回波信号的差异与选择 海洋监测的精度往往藏在雷达参数的细节里。去年参与南海风场反演项目时,团队因入射角选择不当导致数据信噪比骤降30%,不得不返工重飞。这个教…...

AI一键换衣换装系统-自研CGSY算法-模特自动适配-开源SaaS-可二开无限开账号

温馨提示:文末有资源获取方式在电商服装类目中,传统模特拍摄成本高、周期长,一套图动辄几千上万。如今,基于自研CGSY算法的AI换衣系统正改变这一局面。核心功能列表多类型服装支持:上传模特图上衣/下衣/连衣裙图&#…...

OpenAI注册登录总报错?别慌,这份保姆级排错指南(含IP、Cloudflare、节点选择)

OpenAI注册登录报错全攻略:从IP优化到环境配置的深度解决方案 开篇:为什么你的OpenAI账号总是无法正常使用? 最近半年,身边至少有二十位朋友向我抱怨过同一个问题:"OpenAI的注册页面怎么一直报错?&quo…...

2026工业级实战:YOLO模型从200MB无损压缩到20MB,边缘部署帧率暴涨10倍全方案

在工业视觉、智能安防、移动机器人等端侧落地场景中,YOLO早已成为目标检测的绝对主流。但我们始终面临一个无解的矛盾:高精度的大模型(如YOLOv8x、YOLOv11x)动辄200MB,在Jetson Nano、瑞芯微RK3588、嵌入式工控机等边缘…...

机器学习模型评估的统计学方法与置信区间计算

1. 机器学习模型评估的统计学基础在Tom Mitchell 1997年出版的经典教材《机器学习》中,第五章专门讨论了评估机器学习模型的统计方法。这一章节至今仍具有重要价值,因为统计学为机器学习项目的每个阶段提供了关键工具集。没有统计方法,从业者…...

新药研发避坑指南:如何用ADMET预测工具(如ADMETlab 2.0)提前筛掉“问题分子”?

新药研发避坑指南:如何用ADMET预测工具提前筛掉"问题分子"? 在药物研发的漫长征程中,最令人沮丧的莫过于投入大量资源后,发现候选分子因ADMET(吸收、分布、代谢、排泄和毒性)问题而功亏一篑。据统…...

量子KIC模型与量子电池:理论与精确对角化技术

1. 量子KIC模型与量子电池的基础理论框架量子KIC模型(Kicked Ising Chain)是量子多体物理中一个极具研究价值的系统,它将传统的横向场伊辛模型(TFIM)与周期性脉冲(kick)相结合。这个模型之所以引…...

终极Photoshop AI插件SD-PPP完整指南:如何快速集成Stable Diffusion到设计工作流

终极Photoshop AI插件SD-PPP完整指南:如何快速集成Stable Diffusion到设计工作流 【免费下载链接】sd-ppp A Photoshop AI plugin 项目地址: https://gitcode.com/gh_mirrors/sd/sd-ppp 在当今AI绘图技术日新月异的时代,SD-PPP作为一款创新的Phot…...

神经机器翻译技术演进与工程实践

1. 神经机器翻译的演进历程机器翻译作为人工智能领域最具挑战性的任务之一,其发展历程经历了三个主要阶段。最早可追溯至上世纪50年代,当时计算机科学家们就梦想着实现自动语言转换。早期的规则式机器翻译(RBMT)系统完全依赖语言学专家手工编写的转换规则…...

家用设备部署轻量级对话AI:从模型选择到实践优化

1. 项目概述:在家打造专属对话AI三年前我第一次接触大语言模型时,需要租用昂贵的云服务器才能运行基础版本。如今随着模型优化和硬件发展,在消费级设备上部署轻量级对话AI已成为可能。这个项目将带你在家用显卡或甚至纯CPU环境下,…...

Claude AI技术解析:从对话模型到企业级应用开发

1. Claude AI 初探:新一代对话式AI的独特魅力第一次接触Claude AI时,我立刻被它流畅自然的对话能力所吸引。与市面上大多数AI助手不同,Claude展现出惊人的上下文理解能力和逻辑推理水平。记得有一次我让它帮忙分析一段复杂的技术文档&#xf…...