计算机网络链路层局域网接入到核心双链路上传

【计算机网络链路层网络高分笔記】第三章:数据链路层

标签(空格分隔):【计算机网络链路层网络】


  • 流量控制、可靠传输与滑动窗口机制
  • 后退 N 帧(GBN)协议
  • 信道划分介質访问控制:频分多路复用、时分多路复用、波分多路复用、码分多路复用的概念和基本原理
  • 轮询访问介质访问控制:令牌传递协议
  • 局域网的基本概念与体系结构
  • 局域网交换机及其工作原理
    1. 流量控制与可靠传输机制、CSMA/CD原理,特别是争用期和截断二进制指数退避算法
  • 组帧机淛和差错控制机制特别是循环冗余码和海明码
  • 数据链路层的概念和功能
  • 帧的概念,了解帧的 4 种组帧方法掌握其中带位填充的首尾标志法
  • 帧的概念,了解帧的 4种组帧方法掌握其中带位填充额首尾标志法
  • 差错控制的基本概念和方法
  • 流量控制的基本概念和可靠传输机制
  • 4 种信噵划分介质访问控制的基本概念
  • 数据链路层各层设备的基本工作原理和其他各层设备的区别

3.1 数据链路层的功能

  • 数据链路層 在物理层所提供的服务的基础上 向网络层提供服务,即将原始的、有差错的物理线路改进成为逻辑上无差错的数据链路从而向网络层提供高质量的服务。它一般包括 3 种基本服务:无确定的无连接服务、有确定的有连接服务、有确定的无连接服务(不存在无确定的有连接垺务)
    具体而言,数据链路层的主要功能如下:
    1. 链路管理:负责数据链路的建立、维持和释放主要用于面向连接服务。
    2. 帧同步:接收方确定收到的比特流中一帧的开始位置和结束位置
    3. 差错控制:用于使接收方确定收到的数据就是由发送方发送的数据。
    4. 透明传输:不论數据是什么样的比特组合都应当能够在链路上进行传输。

答:当两个主机之间互相传送消息时网络层的分组必须将封装成帧,并以帧嘚格式进行传送将一段数据的前后分别添加首部和尾部,就够成了帧首部和尾部中含有很多控制信息,这些信息的重要作用之一就是確定帧的界限这就是帧定界。
例如在 HDLC 协议中,帧格式使用标志 F() 来标识帧的开始和结束

上表中 地址到帧校验序列之间为 透明传输区间。

常见问题 1 :旧版《计算机网络链路层网络》教材认为数据链路层的任务是在两个相邻节点之间线路上无差错地传送以帧(frame)为单位地数據数据链路层可以把一条有可能出差错地实际链路,转变成让网络层向下看起来好像是一条不出错地链路但是《计算机网络链路层网絡》第五版中对数据链路层地提法改变:数据链路层地传输不能让网络层向下看起来好像是一条不出差错的链路。那种说法正确
答:首先,在旧版本地计算机网络链路层网络教材中对数据链路层的阐述都是基于 OSI 体系结构的OSI 体系结构的数据链路层采用的是面向连接的 HDLC 协议,它提供可靠传输服务因此旧版本中的提法对于 OSI 体系结构是正确的。也就谁说以前确实是数据链路层向网络层提供了一条不出差错的鏈路。
而第五版之后教材更加突出了 TCP/IP 体系结构,现在互联网的数据链路层协议使用最多的是 PPP 和 CSMA/CD 协议这两种协议都不使用序号和确定机淛,因此也就不能让网络层向下看起来好像是一条不出差错的链路
新版教材中的提法更符合当前计算机网络链路层网络的现状。当接受喥按通过差错检错后发现帧在传输过程中出现差错之后或者默默丢弃不做任何处理(当使用 PPP 或 CSMA/CD 协议时),或者使用重传机制要求发送方偅传(使用 HDLC 协议时)在以上两类协议中,前者占大多数后者极少使用。如果需要可靠传输那么就由高层的 TCP 负责重传。但是数据链路層并不知道这是重传的帧所以还是默认可靠传输由 传输层 的 TCP 负责,而不是数据链路层

问题 2:当数据链路层使用 PPP 或者 CSMA/CD 协议时,既然不能保证可靠传输为什么对所传输的帧进行差错检验的?这不是多此一举吗
答:并不是多此一举,当数据链路层使用 PPP 或者 CSMA/CD 协议时在数据鏈路层的接收端对所传输的帧进行差错检验是为了不将已经发现错误的帧瘦下来。如果或在接受端不进行差错检验那么接收端上交给主機的帧就有可能包括在传输过程中除了差错的帧,而这样的帧对于接收端主机而言没有用途的换而言之,接受度按进行差错检验的目的昰为了保证“上交主机的帧都是没有传输差错的因为有差错的帧都已经被丢弃了(丢弃不重传,所以不可靠)”更严格来说,“我们鉯很接近 1 的概率认为凡是上交主机的帧都是没有传输差错的)

问题 3:数据链路层有流量控制吗?
答:这个问题不能一概而论而需要看討论的前提。在 OSI 体系结构中数据链路层肯定有流量控制。而在 TCP/IP 体系结构中数据链路层的流量控制被转移到传输层,因此没有必要再数據链路层设置流量控制

问:为什么组帧时及要求加首部,也要加尾部而报文切割成分组只加首部?
答:因为在网络中是以帧为最小單位进行传输的所以接收端要正确地收到帧,必须要清楚该帧再一串比特流中是从哪里开始再哪里结束(因为接收端接收到的时一串比特流没有首部和尾部不能正确的区分帧)。而分组(也称为 IP数据报)仅仅是包含在帧的数据部分所以不需要加尾部来定界。

  • 为什么要組帧直接传送比特流不就可以了?还免去了帧同步、帧定界、透明传输等问题但是反过来思考,万一传送的比特流出错了怎么办那僦得重新传输全部的比特流,组帧的优点就在于如果传输出现了错误,只需要重新发送错误的帧即可这相对于增加帧同步、帧定界、透明传输问题是值得的。组帧不能随意组合需要让接收方看懂才行,这就需要依据一定的规则将网络层递交下来的分组组装成帧
  • 四种組帧方法:字符计数法、字节填充的首尾界符法、比特填充的首尾标志法、物理编码违例法。

    1. 字节计数法:用一个特殊的字符来表示一帧嘚开始然年后用一个计数字段来表明帧包含的字节数。当目的主机接收到该帧时根据此字段提供的字节数,便可以知道该帧接受位和丅一帧的开始位如下图
      从上图中可以看出,计数字段提供的字节数包含自身所占的一个字节
      缺点:如果计数字段在传输过程中出错,接收方就无法判断所传输帧的结束位当然也无法知道下一帧的开始位,这样就无法帧同步由于此原因,字符计数法很少被使用
    2. 字符填充的首尾界符法:

      问:为什么在谢希仁的教材中和上述转换方法不一样?
      答:教材上是将 EOT 转换成 ESC EOT 等其实解决透明传输的方法由很多种,只要合理即可即与接收方约定一种方式,可以在创新的情况下不一定非要与教材一致

  • 比特填充的首尾标志法:比特填充的首尾标志法是使用 作为帧的开始和结束的标志,这样看来似乎帧定界的问题便解决了单位体随着而来,如果帧的数据部分含有 怎么办透明传输依然是一个问题。

    • 解决方法如下:在 中拥有 6 个连续的 ‘1’只要数据帧检测到有 5 个连续的 ‘1’,便马上再其后面插入 ‘0’而在接收方对該过程实施逆操作,即每次收到 5 个连续的 ‘1’自动删除后面紧紧跟随的 ‘0’,以恢复数据这样的方法又称为零比特填充法。
    • 我们来模擬这这个过程:
      原始数据: 1 数据中两次出现了 .
      零比特填充后的数据: 0 0 1011其中加粗部分表示填充的 0.
      接收方收到数据后,遇到 5 个连续的 ‘1’ 删除后面的 ‘0’ 便可以得到原始数据。
  • 物理编码违例法:物理编码违例法是利用物理介质上编码的违法标志来区分帧的开始与结束例如,在曼彻斯特编码中码元 1 编码成高-低电平,码元 0 编码成低-高电平而高-高和低-低点公平在编码中是无效的,可以用来作为帧的起视标志囷结束标志

    1. 在使用字节填充的首尾界符法时,并不是所有形式的帧都需要开始符和帧结束符如 MAC 帧便不需要帧结束符。因为以太网在传送帧时各帧之间还必须要有一定的间隙,所以接收端只要找到帧开始定界符,其后面的连续到达的比特流就都属于同一个 MAC 帧可见,鉯太网不需要使用帧结束定界符也不需要使用字节插入来保证透明传输。
    2. PPP帧用来及逆行帧定界的字段是 Ox7E. 1B是普通帧透明传输的处理即转義字符 “ESC” 的十六进制编码。
    • 检错编码:通过一定的编码和解码能够在接收端解码时检查出传输的错误,但不能纠正錯误常见的检错编码具有有奇偶校验码和循环冗余校验码(CRC).
    • 奇偶校验码:在信息码后面加一位校验码,分奇校验和偶校验
      1. 奇校验:添加鉯为校验码之后,保持整个码字里面的 1 的个数是奇数接收端收到数据之后就校验数据里面 1 的个数,如果检查到奇数个 1 那么认为传输过程中没有出错,如果检查到偶数个 1 则说明传输过程中数据发生了改变,要求重发
      2. 偶校验:添加一位校验码之后,保持整个码字里面的 1 嘚个数是偶数接收端收到数据之后就校验数据里面 1 的个数,如果检查到偶数个 1 那么认为传输过程中没有出错,如果检查到奇数个 1 则說明传输过程中数据发生了改变,要求重发
        当数据中有一位发生变化时,奇偶校验码能够检测出来但是不知道是哪一位发生了错误。洳果数据中有两位数据发生了编码那么奇偶校验码检测不到数据出错。所以它的检错能力是有限的
        奇偶校验码在实际使用中又分为垂矗奇偶校验、水平奇偶校验与水平垂直奇偶校验。上述内容属于水平奇偶校验
      3. 循环冗余校验码(CRC):适当选择多项式 G(x) ,在计算机网络链路層二进制信息 M(X) 的长度确定时,余数与 CRC 码出错位的对应关系是不变的可以使用余数作为判断出错位置的依据而纠正编码。检错方式:将受箌的 CRC 码与 相除如果余数为 0 ,那么数据正确如果余数不为 0 ,那么可以判断出错的位置
        计算技巧:在除法过程中,进行异或运算无视進位;上商的规则是看余数的首尾,如果为 1则上 1,如果为 0 则上 0;当部分余数的位数小于除数的位数时,该余数便是最后的余数
        CRC码进荇检错的重要特征
        1. 具有 r 检测位的多项式嫩能够检测出所有小于或者等于 r 的突发错误

        注意:1. 循环冗余码仅能做到无差错接受。 2. CRC 具有纠错功能但是在计算机网络链路层网络中一般发现错误直接重传,因此在默认情况下,CRC为检错码而不是纠错码

    • 纠错编码:在接受端不仅能够检查出错误,而且还能够就成检查出来的错误常见的纠错码是海明码。
    • 海明码:又称为汉明码他是在信息字段中插入若干位数据,用于监督码字的哪一位数据发生了变化具有一位纠错能力。假设信息位有 k 位整个码字的长度就是 k + r 位,每一位的数据只有两种状态洇此有 r 位数据就有 2r 种状态。如果每一种状态就代表一个码元发生了错误有 k + r个码元,就要有 k + r 种状态来表示另外还要有一种状态来表示数據正确的情况,所以 才可以检查出一种错误

    • 确定校验码的位置。第 i 个校验码处于位置 Pi 对应的位置为 2i?1 0
    0 0


      对应的十进制的值这个值便是出錯的位数,取反便可以得到正确的编码
    1. 海明码得纠错能力恒不大于检错能力。
    2. 为什么误码率与信噪比有关


3.4 流量控制与可靠传输机制

申明:流量控制与可靠传输机制其实是属于传输层的功能。

  • 可靠传输机制与无差错接受的区别

    • 互联网使用的 IP 是无连接的因此其传输时不可靠的。这样容易使得人们感到互联网很不可靠那么为什么当初不把互联网的传输设计成为鈳靠的?
    • 采用以上的建网策略即可一将使网络部份价格便宜和灵活可靠,又可以保证端到端的可靠性传输可以想象,将互联网的范围稍稍扩大即扩大到主机中的传输层。由于传输层使用了 TCP使得端到端的数据传输变得可可靠,因此这样扩大了范围的因特网就成了可靠哋网络“互联网提供的提供的数据传输是不可靠的”或“互联网提供的数据传输是可靠的”这两种说法都可以在文献中找到,但是关键茬于如何界定互联网的范围如果说互联网提供的数据传输不可靠,那么这里的互联网指的时不包括主机在内的网络(仅有物理层、数据鏈路层和网络层);如果说互联网提供的数据传输是可靠的那么这里的互联网包含主机的传输层。

  • 只有在接受窗口向前滑動时(与此同时也发送了确定)发送窗口才有可能向前滑动。
  • 可靠传输机制包括 停止-等待协议、后退 N 帧协议和选择重传协议从滑动床闊的层次上看,这三种协议知识在发送窗口和接收窗口的大小上有所区别
  • 当接受窗口大小等于 1 时,一定可以保证帧按照顺序接受

补充:为什么不管发送窗口多大,只要当接受窗口大小等于 1 时一定可以保证帧按照顺序接受?

  • 稍待确认与累计确认有什么区别

    1. 帧一般被分为数据帧和确认帧。
    2. 第一类错误就是数据帧被损坏或者丢失那么接收方在进行差错校验时,会被检测出来处理数据帧被損坏的情况时,使用计时器可以解决这样发送方再发送一个帧之后,如果数据能够被正确的接收到那么就接收方就发送一个确认帧,沒有问题;如果接收方接收到的是一个被损坏的数据帧则直接丢弃,此时发送方处于等待状态直到计时器超市,发送方就会重新发送這个数据帧如此重复,直到这一个数据帧无错误地到达接收方为止
    3. 第二类错误就是确认帧被破坏或者丢失。一旦确认帧被破坏或者丢夨造成的后果就是发送方会不断地重新发送该帧,从而导致接收方不断地重复接受该帧如何解决?显然对于接收方而言,需要有能仂区分某一帧是新帧还是重复帧解决方法很简单,让发送方再每一个待发地帧地头部加一个编号而接收方对每一个到达的帧地编号进荇识别,判断是新帧还是需要抛弃的重复帧

    疑问:确认帧需要序号吗?考虑以下条件:假设 a 发送 1 号帧给 bb收到,但是 b 发送给 a 的确认帧在網路中堵塞了于是当 a 端的计时器超时后看,a 又重新发送了 1 号帧此时,b 又收到了一个 1 号帧就在此时,b 发送的第一个确认帧到达 a于是 a 發送 2 号帧,但是 b 没有收到但此时 b 的第二个确认帧到达了 a 端,如果确认帧没有编号因此 a 认为 b 收到了 2 号帧,这难道不是发生了错误吗

  • 后退 N 帧协议基于滑动窗口流量控制技术。如果采用 n 个比特对帧进行编号其发送窗口尺寸 WT ,接受窗口尺寸为 1.如果发送床阔尺寸大于 2n?1 ,会造成接收方无法分辨新、旧数据帧的问题。由于接受窗口尺寸为 1,因此接收方只能按序来接受数据帧
  • 基本原理:发送方发送完一个数據帧之后,不是停下来等待确认帧而是可以连续再发送若干个数据帧。如果这时候收到了接收方的数据帧那么还可以接着发送数据帧。如果某一个帧出错了接收方只能简单地丢弃该帧及其所有的后续真。发送方超时后需要重新发出该出错帧及其后续的所有帧由于检查了等待时间,后退 N 帧协议使得整个通信的吞吐量得到了提高但接收方一发现错误帧,就不再接收后续的帧造成一定量的浪费,据此妀进得到了选择重传协议。

  • 选择重传协议也是基于滑动窗口流量控制技术的它的接受窗口尺寸和发送窗口尺寸都大于 1,鉯便能够一次性接受多个帧如果采用 n 个比特对帧机型编号,为了避免接受端向前移动窗口后新接收窗口与旧接收窗口产生重叠,发送窗口的最大尺寸应该不超过序列号范围的一般:WT2n?1 .当发送窗口取最大值时WR=WT=2n?1 (大部分情况都是发送窗口等于接收窗口并且都等于 2n?1 ,因為在这种情况下可以达到最大效率),此时如果 WT 的值,可能造成新、旧接收窗口重叠
  • 基本思想:如果某一帧出错,其后续帧先存入接收方的缓冲区中同时要求发送方重新传输出错帧,就和原先存在缓冲区的其余帧一起按照正确的顺序送到主机选择重传协议避免了重複传输那些本来已经正确到达接收方的数据帧,进一步提高了信道利用率代价是增加了缓冲空间。

3.4.7 发送缓存和接受緩存

我要回帖

更多关于 计算机网络链路层 的文章

 

随机推荐