【复习408】计网数据链路层详记

数据链路层(Data Link Layer)是OSI七层模型中的第二层,也是TCP/IP模型中网络接口层的重要组成部分。它位于物理层和网络层之间,其核心使命是将在网络层传输的IP数据报封装成“帧”(Frame),并在两个相邻节点之间的链路上实现可靠、高效的数据传输。

第一章:数据链路层的核心功能与原理

数据链路层通过一系列复杂而精巧的机制,将物理层提供的可能出错的比特流,转变为对网络层而言无差错的数据链路。其主要功能包括封装成帧、差错控制、流量控制与可靠传输,以及介质访问控制

1.1 封装成帧(Framing)‍

网络层的IP数据报在下交到数据链路层后,会被“包装”成帧。这一过程称为封装成帧是数据链路层数据传输的基本单位。

  • 帧的构成:一个典型的帧由三部分组成:

    • 帧头(Header)‍:包含重要的控制信息,如源和目的MAC地址、类型/长度字段等。
    • 数据部分(Payload)‍:即网络层传递下来的IP数据报。
    • 帧尾(Trailer)‍:通常包含用于差错校验的帧校验序列(FCS)。
  • 帧定界(Frame Delimiting)‍:为了让接收方能准确地从比特流中识别出帧的开始和结束,必须有明确的定界机制。主要有以下四种方法:

    1. 字符计数法:在帧头用一个字段标明该帧包含的字符数。缺点是如果计数字段出错,会导致后续所有帧的定界都发生灾难性错误。
    2. 字符填充法:使用特定的字符(如SOH和EOT)来界定帧的开始和结束。为了实现“透明传输”(即允许数据部分包含任何比特组合,包括定界符),当数据中出现定界符时,发送方会使用一个转义字符(ESC)进行填充。接收方则进行反向操作。PPP协议使用的就是字节填充法。
    3. 比特填充法:使用一个特定的比特模式(如01111110)作为帧的标志。为了实现透明传输,发送方在数据部分每遇到连续5个“1”后,就自动插入一个“0”。接收方则在每检测到5个连续的“1”后,检查其后的第6个比特,若为“0”则删除。HDLC协议就采用此方法 。
    4. 违规编码法:在物理层编码时,使用一些“违规”的(即正常数据不会出现的)编码来定界帧。例如,曼彻斯特编码可以用“高-高”或“低-低”电平序列作为定界符。

1.2 差错控制(Error Control)‍

物理链路并非理想,信号在传输过程中可能会因噪声等因素产生差错(比特翻转)。差错控制的目标就是检测并可能纠正这些错误。

  • 差错检测机制:通常通过增加冗余信息来实现,主要方法有:

    • 奇偶校验(Parity Check)‍:通过在数据末尾添加一位校验位,使得整个码字中“1”的个数为奇数(奇校验)或偶数(偶校验)。它只能检测出奇数个比特的错误,且无法定位错误,对于常见的突发错误检测能力很弱。
    • 循环冗余校验(Cyclic Redundancy Check, CRC)‍:这是数据链路层最常用、最强大的差错检测技术。
      • 原理:将要发送的数据比特串视为一个高次多项式M(x)M(x)M(x)。发送方和接收方共同约定一个“生成多项式” G(x)G(x)G(x)。发送方通过 M(x)M(x)M(x)G(x)G(x)G(x)进行模2除法运算,得到的余数(即CRC校验码或FCS)附加在数据末尾一起发送。接收方用收到的整个数据串去除以同一个G(x)G(x)G(x),若余数为零,则认为传输无差错。
      • 生成多项式的选择:生成多项式的选择至关重要,直接决定了CRC的检错能力。好的多项式应能检测出所有单比特、双比特错误以及一定长度内的突发错误。以下是一些多种标准的生成多项式,被广泛的用于以太网与PPP协议等,例如:
        • CRC-16-CCITT:
          在这里插入图片描述
          ,广泛用于HDLC和PPP协议中。

        • CRC-32:

          在这里插入图片描述
          , 被以太网、PPP等广泛采用。

  • 差错纠正机制:

    • 自动重传请求(ARQ, Automatic Repeat reQuest)‍ :也称后向纠错(BEC)。接收方检测到错误后,不尝试纠正,而是简单地丢弃该帧,并通过某种机制通知发送方重传。这是数据链路层最主要的纠错方式。
    • 前向纠错(FEC, Forward Error Correction)‍:发送方在数据中加入足够的冗余信息,使得接收方在发现错误时,能够直接确定错误位置并加以纠正,无需重传。例如 汉明码(Hamming Code)‍。FEC开销较大,在有线网络中不常用,但在信道质量差、时延大的无线通信或深空通信中很有价值。

第二章:数据链路层的两个子层

为了使数据链路层能更好地适应多种多样的物理介质,IEEE 802标准委员会将其划分为两个子层:逻辑链路控制(LLC)子层介质访问控制(MAC)子层

2.1 逻辑链路控制子层(LLC - Logical Link Control)

LLC子层(标准为IEEE 802.2)位于MAC子层之上,其主要作用是:

  • 隐藏差异:向网络层隐藏不同MAC层协议(如以太网、令牌环等)的实现细节,为网络层提供一个统一的接口。
  • 提供服务:它可以提供三种类型的服务:无确认无连接服务、面向连接服务、有确认无连接服务。
  • PDU格式:LLC协议数据单元(PDU)的头部包含目的服务访问点(DSAP)和源服务访问点(SSAP),用于区分上层的不同协议(如IP或IPX)。

在目前的TCP/IP体系中,由于IP协议自身是无连接的,LLC层的作用被大大简化,很多时候其功能是“透明”的。

2.2 介质访问控制子层(MAC - Media Access Control)‍

当多个节点共享同一广播信道(如总线型以太网、无线Wi-Fi)时,就需要一种机制来协调它们对信道的使用权,避免或解决数据发送时的冲突。这就是介质访问控制(或称多路访问)要解决的问题。

  • 静态划分信道:

    • 频分多路复用(FDM)‍ 、 时分多路复用(TDM)‍ 、 波分多路复用(WDM)‍ 和 码分多路复用(CDM)‍:这些技术通过在频率、时间、波长或编码上将信道划分为多个互不干扰的子信道,分配给不同用户。优点是无冲突,缺点是信道利用率低,当用户没有数据发送时,其分配到的子信道也被浪费。
  • 动态介质访问控制(随机访问)‍:

    • ALOHA协议:思想简单,想发就发。纯ALOHA协议吞吐量很低(约18.4%)。时隙ALOHA协议通过将时间划分为离散的时隙,规定用户只能在时隙开始时发送,将冲突窗口减半,最大吞吐量提升至36.8%。
    • CSMA协议(载波侦听多路访问)‍:发送前先监听信道。根据监听到信道忙碌时的不同策略,分为1-坚持、非坚持和p-坚持CSMA。
    • CSMA/CD协议(带冲突检测的CSMA)‍:这是传统以太网的核心技术。其工作口诀是“先听后发,边听边发,冲突停发,随机重发”。
      • 工作流程:发送前监听信道,若空闲则发送。发送过程中持续监听,若检测到冲突(即收到的信号与发出的不一致),立即停止发送数据,并发送一个“拥塞信号”以通知所有节点。然后,启动二进制指数退避算法,在0到2k−12^k - 12k1 (k为重传次数)之间随机选择一个数rrr,等待rrr个争用期时间后再尝试发送。
      • 争用期与最小帧长:为了确保在发送完毕前能检测到可能发生的最远距离的冲突,帧的发送时间不能太短。帧的传输时延必须至少是信号在信道中单程传播时延的两倍(即一个RTT)。这个时间窗口被称为“争用期”或“冲突窗口”。因此,以太网规定了最小帧长为64字节,任何小于此长度的帧都会被认为是冲突产生的碎片。
    • CSMA/CA协议(带冲突避免的CSMA)‍:主要用于无线局域网(IEEE 802.11)。由于无线信道的复杂性(如存在“隐藏站”问题),冲突检测难以实现。CSMA/CA的核心思想是“尽量避免冲突”,通过预约信道(RTS/CTS握手)、使用ACK帧进行确认、二进制指数退避等机制来降低冲突概率。

第三章:主要数据链路层协议详解

3.1 局域网协议:以太网(Ethernet)‍

以太网(IEEE 802.3标准)是当今应用最广泛的局域网技术。

  • MAC地址:以太网使用48位的MAC地址(物理地址)来唯一标识网络中的每一个接口。它被固化在网卡的ROM中。
  • 帧格式:存在两种主流的帧格式:
    • Ethernet II 帧格式(DIX Ethernet V2)‍:这是最常用的格式。其结构为:[目的MAC(6B)] [源MAC(6B)] [类型(2B)] [数据(46-1500B)] [FCS(4B)]。其中的“类型”字段用于指明上层协议,如0x0800代表IP协议。
    • IEEE 802.3 帧格式:其结构与Ethernet II类似,但将“类型”字段替换为“长度”字段,表示后面数据字段的字节数。真正的类型信息则被移到了LLC子层的头部。
  • 从共享式到交换式以太网:
    • 集线器(Hub)‍:工作在物理层,将所有端口连接在同一个冲突域和广播域中。所有连接到集线器的设备共享带宽,采用半双工CSMA/CD方式工作。
    • 交换机(Switch)‍:工作在数据链路层,能够学习并记录端口与MAC地址的对应关系。每个端口都是一个独立的冲突域,极大地减少了冲突,提高了网络性能。所有端口仍处于同一个广播域中。
  • 全双工模式与流量控制: 在现代的点对点连接的交换式以太网中,设备通常工作在全双工模式下,可以同时发送和接收数据,因此不再需要CSMA/CD机制。此时,如果接收方缓冲区即将溢出,它会通过发送一种称为PAUSE帧(IEEE 802.3x标准)的特殊MAC控制帧,请求发送方暂停发送数据一段时间,从而实现流量控制。

3.2 广域网协议:PPP 与 HDLC

广域网(WAN)连接通常是点对点的,PPP和HDLC是两种经典的广域网数据链路层协议。

  • HDLC(High-Level Data Link Control):

    • 特点:是一种面向比特的同步协议,提供可靠的数据传输服务。
    • 帧格式:[标志F(01111110)] [地址A] [控制C] [信息I] [FCS]。使用“0比特填充法”实现透明传输。其控制字段(C)非常复杂,定义了信息帧(I帧)、监督帧(S帧)和无编号帧(U帧)三种类型,用于实现完整的滑动窗口和链路控制功能。
  • PPP(Point-to-Point Protocol)‍:

    • 特点:是目前使用最广泛的点对点协议。它面向字节,支持同步和异步传输,是不可靠的(只检错不纠错),但提供了强大的认证(PAP/CHAP)和网络协议协商功能 。
    • 帧格式:[标志F(0x7E)] [地址A(0xFF)] [控制C(0x03)] [协议] [信息] [FCS]。使用“字节填充法”(字符填充)实现透明传输。其核心是协议字段,用于标识信息字段中承载的是哪种协议的数据包,如IP(0x0021)、LCP(0xC021)或NCP(0x8021)。
    • 工作流程:PPP连接建立和维护是一个复杂的过程,主要通过链路控制协议(LCP)和网络控制协议(NCP)完成。
      • 链路建立阶段:通过LCP帧协商链路参数(如最大帧长、认证方式等)。
      • 认证阶段(可选):通过密码验证协议(PAP)或挑战握手验证协议(CHAP)进行身份验证。
      • 网络层协议阶段:通过NCP为上层网络协议(如IP)协商参数(如分配IP地址)。
      • 数据传输阶段:传输IP数据报等。
      • 链路终止阶段:通过LCP关闭链路。
  • HDLC vs. PPP 对比

特性HDLCPPP
导向面向比特面向字节
透明传输比特填充字节填充
可靠性提供可靠传输(通过编号和确认)不提供可靠传输(仅检错)
多协议支持不支持支持(通过协议字段)
认证不支持支持(PAP, CHAP)
应用传统串行链路现代拨号、专线、ADSL等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L.EscaRC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值