编程与数学 03-002 计算机网络 04_数据链路层功能

发布于:2025-07-27 ⋅ 阅读:(17) ⋅ 点赞:(0)

摘要:本文是计算机网络课程中数据链路层功能的学习笔记。数据链路层位于物理层之上,主要负责在相邻节点之间可靠地传输数据,其核心任务包括封装成帧、差错控制和流量控制。封装成帧通过添加帧头和帧尾将数据封装为帧;差错控制利用奇偶校验码和循环冗余校验(CRC)码等技术检测并纠正传输错误;流量控制则通过滑动窗口协议等机制防止发送方数据溢出接收方。此外,文中还介绍了点对点协议(PPP)和以太网数据链路层协议,它们分别适用于不同网络环境,支持多种网络层协议。通过这些功能和协议,数据链路层确保了数据的可靠传输,为计算机网络的稳定运行提供了基础保障。

关键词:计算机网络、数据链路层、封装成帧、差错控制、流量控制、PPP协议、以太网协议

人工智能助手:Kimi


一、数据链路层的基本任务

数据链路层是计算机网络中的第二层,位于物理层之上,主要负责在相邻节点之间可靠地传输数据。数据链路层的主要任务包括封装成帧、差错控制和流量控制。

(一)封装成帧

封装成帧是数据链路层的基本任务之一。帧是数据链路层的数据传输单元,它将网络层传下来的IP数据报封装成帧,加上帧头和帧尾,然后通过物理层传输到相邻节点。

  1. 帧的结构

    • 帧头:帧头包含控制信息,如源地址、目的地址、协议类型等。这些信息用于控制帧的传输和处理。
    • 数据部分:数据部分包含网络层传下来的IP数据报。数据部分的长度通常有限制,以避免帧过大导致传输效率降低。
    • 帧尾:帧尾包含校验信息,如循环冗余校验(CRC)码。校验信息用于检测帧在传输过程中是否发生错误。
  2. 帧的传输

    • 帧的发送:发送方的数据链路层将网络层传下来的IP数据报封装成帧,加上帧头和帧尾,然后通过物理层发送到相邻节点。
    • 帧的接收:接收方的数据链路层从物理层接收帧,检查帧的校验信息,如果帧没有错误,则提取数据部分并交给网络层;如果帧有错误,则丢弃该帧。

(二)差错控制

差错控制是数据链路层的另一个重要任务。由于物理媒体的噪声和干扰,数据在传输过程中可能会发生错误。数据链路层通过差错检测和纠正机制来保证数据的正确传输。

  1. 差错检测

    • 奇偶校验码:奇偶校验码是一种简单的差错检测码,通过在数据中添加一个校验位来检测数据中的奇数个错误。奇偶校验码分为奇校验和偶校验两种。奇校验要求数据中1的个数为奇数,偶校验要求数据中1的个数为偶数。
    • 循环冗余校验(CRC)码:循环冗余校验码是一种常用的差错检测码,通过多项式除法生成校验位。CRC码的生成过程如下:
      1. 选择一个生成多项式 ( G(x) )。
      2. 将数据 ( D(x) ) 乘以 ( x^k ),其中 ( k ) 是生成多项式的次数。
      3. 将 ( D(x) \cdot x^k ) 除以 ( G(x) ),得到余数 ( R(x) )。
      4. 将余数 ( R(x) ) 附加到数据 ( D(x) ) 的后面,形成发送的帧。
    • CRC码的优点:CRC码的检测能力强,能够检测出多种类型的错误,如单个错误、双位错误、突发错误等。CRC码的生成和校验过程简单,易于实现。
  2. 差错纠正

    • 自动请求重传(ARQ):自动请求重传是一种常用的差错纠正机制。当接收方检测到帧有错误时,会发送一个重传请求给发送方,要求发送方重新发送该帧。ARQ机制包括停止等待协议和滑动窗口协议。
      • 停止等待协议:停止等待协议是最简单的ARQ机制。发送方每发送一个帧后,就等待接收方的确认。如果在规定时间内没有收到确认,发送方会重新发送该帧。停止等待协议的优点是简单,缺点是效率低,发送方在等待确认期间不能发送其他帧。
      • 滑动窗口协议:滑动窗口协议是一种高效的ARQ机制。发送方可以连续发送多个帧,而不需要等待每个帧的确认。发送方维护一个滑动窗口,窗口内的帧可以连续发送。接收方也维护一个滑动窗口,窗口内的帧可以接收。滑动窗口协议的优点是效率高,发送方可以连续发送多个帧,提高了传输效率。
    • 前向纠错(FEC):前向纠错是一种通过编码技术在接收方直接纠正错误的方法。FEC通过在数据中添加冗余信息,使得接收方能够直接纠正错误,而不需要发送方重新发送数据。FEC的优点是不需要重传,适合在高延迟的网络中使用。FEC的缺点是编码和解码过程复杂,增加了设备成本。

(三)流量控制

流量控制是数据链路层的另一个重要任务。流量控制的目的是防止发送方发送的数据过多,导致接收方溢出。流量控制机制通过控制发送方的发送速率,使得接收方能够及时处理接收到的数据。

  1. 基于窗口的流量控制

    • 滑动窗口协议:滑动窗口协议是一种常用的流量控制机制。发送方维护一个滑动窗口,窗口内的帧可以连续发送。接收方也维护一个滑动窗口,窗口内的帧可以接收。滑动窗口协议通过调整窗口的大小来控制发送方的发送速率。如果接收方的处理能力下降,可以减小窗口的大小,限制发送方的发送速率;如果接收方的处理能力提高,可以增大窗口的大小,提高发送方的发送速率。
    • 窗口大小的调整:窗口大小的调整可以根据接收方的处理能力和网络的拥塞情况动态调整。如果接收方的处理能力下降,窗口大小可以减小;如果网络出现拥塞,窗口大小也可以减小,以减少网络的负载。
  2. 基于确认的流量控制

    • 停止等待协议:停止等待协议是一种简单的流量控制机制。发送方每发送一个帧后,就等待接收方的确认。如果在规定时间内没有收到确认,发送方会重新发送该帧。停止等待协议的优点是简单,缺点是效率低,发送方在等待确认期间不能发送其他帧。
    • 选择重传协议:选择重传协议是一种改进的流量控制机制。发送方可以连续发送多个帧,而不需要等待每个帧的确认。接收方可以接收并确认每个帧,如果某个帧出现错误,接收方会发送一个重传请求,要求发送方重新发送该帧。选择重传协议的优点是效率高,发送方可以连续发送多个帧,提高了传输效率。

二、差错检测与纠正方法

(一)常用的差错检测码

  1. 奇偶校验码

    • 定义:奇偶校验码是一种简单的差错检测码,通过在数据中添加一个校验位来检测数据中的奇数个错误。奇偶校验码分为奇校验和偶校验两种。奇校验要求数据中1的个数为奇数,偶校验要求数据中1的个数为偶数。
    • 优点:奇偶校验码的实现简单,计算速度快,适合在低速网络中使用。
    • 缺点:奇偶校验码只能检测单个错误,不能检测多个错误。奇偶校验码不能纠正错误,只能检测错误。
  2. 循环冗余校验(CRC)码

    • 定义:循环冗余校验码是一种常用的差错检测码,通过多项式除法生成校验位。CRC码的生成过程如下:
      1. 选择一个生成多项式 ( G(x) )。
      2. 将数据 ( D(x) ) 乘以 ( x^k ),其中 ( k ) 是生成多项式的次数。
      3. 将 ( D(x) \cdot x^k ) 除以 ( G(x) ),得到余数 ( R(x) )。
      4. 将余数 ( R(x) ) 附加到数据 ( D(x) ) 的后面,形成发送的帧。
    • 优点:CRC码的检测能力强,能够检测出多种类型的错误,如单个错误、双位错误、突发错误等。CRC码的生成和校验过程简单,易于实现。
    • 缺点:CRC码的计算过程相对复杂,需要进行多项式除法。CRC码不能纠正错误,只能检测错误。

(二)差错纠正的基本原理

  1. 自动请求重传(ARQ)

    • 定义:自动请求重传是一种常用的差错纠正机制。当接收方检测到帧有错误时,会发送一个重传请求给发送方,要求发送方重新发送该帧。ARQ机制包括停止等待协议和滑动窗口协议。
    • 停止等待协议:停止等待协议是最简单的ARQ机制。发送方每发送一个帧后,就等待接收方的确认。如果在规定时间内没有收到确认,发送方会重新发送该帧。停止等待协议的优点是简单,缺点是效率低,发送方在等待确认期间不能发送其他帧。
    • 滑动窗口协议:滑动窗口协议是一种高效的ARQ机制。发送方可以连续发送多个帧,而不需要等待每个帧的确认。发送方维护一个滑动窗口,窗口内的帧可以连续发送。接收方也维护一个滑动窗口,窗口内的帧可以接收。滑动窗口协议的优点是效率高,发送方可以连续发送多个帧,提高了传输效率。
    • 优点:ARQ机制简单,易于实现。ARQ机制能够保证数据的正确传输,适合在低错误率的网络中使用。
    • 缺点:ARQ机制需要重传,增加了传输延迟。ARQ机制需要维护确认机制,增加了协议的复杂性。
  2. 前向纠错(FEC)

    • 定义:前向纠错是一种通过编码技术在接收方直接纠正错误的方法。FEC通过在数据中添加冗余信息,使得接收方能够直接纠正错误,而不需要发送方重新发送数据。FEC的优点是不需要重传,适合在高延迟的网络中使用。FEC的缺点是编码和解码过程复杂,增加了设备成本。
    • 优点:FEC机制不需要重传,减少了传输延迟。FEC机制能够直接纠正错误,提高了传输效率。
    • 缺点:FEC机制的编码和解码过程复杂,增加了设备成本。FEC机制需要添加冗余信息,降低了传输效率。

三、数据链路层的协议

(一)点对点协议(PPP协议)

  1. 定义

    • 点对点协议(PPP,Point-to-Point Protocol)是一种在点对点链路上封装网络层协议数据报的协议。PPP协议主要用于拨号上网和专线连接,支持多种网络层协议,如IP、IPX等。
    • PPP协议的主要功能包括封装成帧、差错检测、流量控制、协议识别、身份认证等。
  2. 帧结构

    • 帧头:帧头包含控制信息,如标志字段、地址字段、控制字段等。标志字段用于标识帧的开始和结束,地址字段用于标识接收方的地址,控制字段用于标识帧的类型。
    • 数据部分:数据部分包含网络层传下来的IP数据报。数据部分的长度通常有限制,以避免帧过大导致传输效率降低。
    • 帧尾:帧尾包含校验信息,如循环冗余校验(CRC)码。校验信息用于检测帧在传输过程中是否发生错误。
  3. 协议功能

    • 封装成帧:PPP协议将网络层传下来的IP数据报封装成帧,加上帧头和帧尾,然后通过物理层传输到相邻节点。
    • 差错检测:PPP协议使用循环冗余校验(CRC)码进行差错检测。接收方通过校验信息检测帧在传输过程中是否发生错误。
    • 流量控制:PPP协议通过滑动窗口协议进行流量控制。发送方维护一个滑动窗口,窗口内的帧可以连续发送。接收方也维护一个滑动窗口,窗口内的帧可以接收。
    • 协议识别:PPP协议支持多种网络层协议,如IP、IPX等。PPP协议通过协议字段标识帧中封装的网络层协议类型。
    • 身份认证:PPP协议支持多种身份认证机制,如PAP(Password Authentication Protocol)和CHAP(Challenge Handshake Authentication Protocol)。身份认证机制用于验证用户的身份,防止非法用户接入网络。

(二)以太网数据链路层协议

  1. 定义

    • 以太网数据链路层协议是一种在局域网中封装网络层协议数据报的协议。以太网协议是局域网中最常用的协议之一,支持多种网络层协议,如IP、IPX等。
    • 以太网协议的主要功能包括封装成帧、差错检测、流量控制、介质访问控制等。
  2. 帧结构

    • 帧头:帧头包含控制信息,如目的地址、源地址、类型字段等。目的地址用于标识接收方的地址,源地址用于标识发送方的地址,类型字段用于标识帧中封装的网络层协议类型。
    • 数据部分:数据部分包含网络层传下来的IP数据报。数据部分的长度通常有限制,以避免帧过大导致传输效率降低。
    • 帧尾:帧尾包含校验信息,如循环冗余校验(CRC)码。校验信息用于检测帧在传输过程中是否发生错误。
  3. 协议功能

    • 封装成帧:以太网协议将网络层传下来的IP数据报封装成帧,加上帧头和帧尾,然后通过物理层传输到相邻节点。
    • 差错检测:以太网协议使用循环冗余校验(CRC)码进行差错检测。接收方通过校验信息检测帧在传输过程中是否发生错误。
    • 流量控制:以太网协议通过滑动窗口协议进行流量控制。发送方维护一个滑动窗口,窗口内的帧可以连续发送。接收方也维护一个滑动窗口,窗口内的帧可以接收。
    • 介质访问控制:以太网协议使用载波监听多路访问/冲突检测(CSMA/CD)协议进行介质访问控制。CSMA/CD协议的工作原理如下:
      1. 载波监听:发送方在发送数据之前,先监听信道是否空闲。如果信道空闲,发送方可以发送数据;如果信道忙,发送方等待一段时间后再监听。
      2. 多路访问:多个发送方可以共享同一信道,同时发送数据。
      3. 冲突检测:发送方在发送数据的同时,监听信道是否发生冲突。如果检测到冲突,发送方立即停止发送数据,并发送一个冲突信号,通知其他发送方发生冲突。发送方等待一段时间后,再次尝试发送数据。

四、总结

数据链路层是计算机网络中的重要层次,负责在相邻节点之间可靠地传输数据。数据链路层的主要任务包括封装成帧、差错控制和流量控制。封装成帧是数据链路层的基本任务之一,通过将网络层传下来的IP数据报封装成帧,加上帧头和帧尾,然后通过物理层传输到相邻节点。差错控制是数据链路层的另一个重要任务,通过差错检测和纠正机制来保证数据的正确传输。流量控制是数据链路层的另一个重要任务,通过控制发送方的发送速率,使得接收方能够及时处理接收到的数据。数据链路层的协议包括点对点协议(PPP协议)和以太网数据链路层协议。PPP协议主要用于拨号上网和专线连接,支持多种网络层协议,如IP、IPX等。以太网协议是局域网中最常用的协议之一,支持多种网络层协议,如IP、IPX等。通过学习数据链路层的功能和协议,我们可以更好地理解计算机网络的数据传输机制和可靠性保证机制,为后续的深入学习打下坚实的基础。


网站公告

今日签到

点亮在社区的每一天
去签到