计算机网络(4)数据链路层

397 阅读4分钟

从五层原理协议体系结构:
主机:应具有体系结构中的各个层次
路由器:只需具有体系结构中的下面三层

主机H1将待发送的数据逐层封装后,通过物理层将构成数据包的各比特,转换成电信号发送到传输媒体。
数据包进入路由器后,由下往上逐层解封到网络层。
路由器根据数据包的目的网络地址和自身转发表,确定数据包的转发端口。
然后从网络层向下逐层封装数据包。
并通过物理层将数据包发送到传输媒体。
数据包最终到达主机H2时,还要由下往上逐层解封,最终解封出主机H1所发送的数据。

数据链路层概述

  • 链路就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
  • 数据链路是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
  • 数据链路层以帧为单位传输和处理数据。

image.png

使用点对点信道的数据链路层

三个重要问题

  1. 封装成帧
    是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
  • 帧头和帧尾的作用之一就是帧定界。
    并不是每一种数据链路层协议的帧都包含有帧定界标志。
  • 透明传输
    是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
    • 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输。
    • 面向比特的物理链路使用比特填充的方法实现透明传输。
      • 采用0比特填充的方法:每5个连续的比特1后面就插入1个比特0,确保帧定界在整个帧中的唯一性。
  • 为了提高帧的传输效率,应当使帧的数据部分尽可能大些
  • 考虑到差错控制等多种因素,每一种数据链路层都规定了帧的数据部分的长度上限,即最大传送单元MTU(Maximum Transfer Unit) image.png
  1. 差错检测 发送方在发送帧之前,基于待发送的数据和检错算法计算出检错码,将其封装在帧尾
    通过检错码和检错算法,就可以判断出帧在传输过程中是否出现了误码。

image.png

  • 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。
  • 检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
    • 帧检验序列FCS字段。
      • 目的也是让接收方的数据链路层检查帧在传输过程中是否产生了误码。

image.png 3. 可靠传输
尽管误码是不能完全避免的,但若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输。

  • 使用差错检测技术(例如循环冗余校验CRC),接收方的数据链路层就可检测出帧在传输过程中是否产生了误码(比特错误)。

  • 一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务,即使出现了误码,可靠传输的问题由其上层处理。

  • 无线链路易受干扰,误码率较高,因此要求数据链路层必须向上层提供可靠传输服务。

  • 比特差错只是传输差错中的一种,传输差错还包括分组丢失分组失序以及分组重复

  • 分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层。

  • 因此,可靠传输服务并不仅局限于数据链路层,其他层均可选择实现可靠传输。

image.png image.png image.png

使用广播信道的数据链路层

当总线上多台主机同时使用总线来传输帧时,传输信号就会产生碰撞。这是采用广播信道的共享式局域网不可避免的。

  • 以太网使用一种特殊的协议CSMA/CD,也就是载波监听多点接入/碰撞检测
  • 802.11局域网的媒体接入控制协议CSMA/CA

交换式局域网

使用点对点链路和链路层交换机的交换式局域网。
在有线(局域网)领域已经完全取代了共享式局域网。

网络中的交换机又是如何转发帧的?

数据链路层的互连设备

  • 网桥和交换机的工作原理
  • 集线器(物理层互联设备)与交换机的区别