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

发布时间 2023-09-05 17:38:51作者: G2\
  1. 链路、数据链路和帧
  • 链路:从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换节点
  • 数据链路:基于链路。当在一条链路上传送数据时,除需要链路本身,还需要一些必要的通信协议来控制这些数据的运输,把实现这些协议的硬件和软件加在链路上,就构成了数据链路。
  • 计算机中的网络适配器(俗称网卡)和其相应的软件驱动程序就实现了这些协议,一般的网络适配器都包含了物理层和数据链路层这两层的功能。
  • 帧是数据链路层对等实体之间在水平方向进行的逻辑通信的协议数据单元PDU。
  1. 封装成帧
  • 封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之称为帧。
    • 帧头和帧尾中包含有重要的控制信息
    • 帧头和帧尾的作用之一就是帧定界
  • 透明传输 是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样
    • 面向字节的物理链路层使用字节填充的方法来实现透明传输
    • 面向比特的物理链路层使用比特填充的方法实现透明传输
  • 为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些
  • 考虑到差错控制等诸多因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU
  1. 差错检测
  • 实际的通信链路都不是理想的,比特在传输过程中可能会产生差错;1可能会变成0,这称为比特差错
  • 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER
  • 奇偶校验
    *在待发送的数据后面添加一位奇偶校验位,使整个数据中1的个数为奇数或偶数
  • 循环冗余校验CRC
    • 收发双方约定好一个生成多项式G(x)
    • 发送方基于待发送的数据和生成多项式计算出差错检验码,将其添加到待传输的后面一起传输
    • 接收方通过生成多项式来计算收到的数据是否发生了误码
  1. 可靠传输的实现机制
  • 停止-等待协议SW
    • 接受端检测到数据分组有误码时,将其丢弃并等待发送方的超时重传,但对于误码率较高的点对点链路,为使发送方尽早重传,也可给发送方发送NAK分组。
    • 为了让接收方能够判断所收到的数据分组是否是重复的,需要给数据分组编号。由于停止-等待协议的停等特性,只需一个比特编号就够了,即编号0和1.
    • 为了让发送方能够判断所受到的ACK分组是否是重复的,需要给ACK分组编号,所用比特数量与数据分组编号所用比特数量一样,数据链路层一般不会出现ACk分组迟到的情况,因此在数据链路层实现停止-等待协议可以不用发给ACK分组编号。
    • 超时计时器设置的重传时间应仔细选择,一般可将重传时间选为略大于“从发送方到接收方的平均往返时间”。
    • 当往返时延RTT远大于数据帧发送时延Td时(使用卫星链路),信道利用率非常低。
  • 回退N帧协议GBN
    • 回退N帧协议在流水线传输的基础上利用发送窗口来限制发送方连续发送数据分组的数量,是一种连续ARQ协议
    • 在协议的工作过程中发送窗口和接受窗口不断向前滑动,因此这类协议又称为滑动窗口协议
    • 由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止-等待协议高
  • 选择重传协议SR
  1. 点对点协议PPP
  • PPP协议的标准文档[RFC1661,RFC1662]
  • PPP协议为在点对点链路传输各种协议数据提供了一个标准方法,主要由以下三部分构成:
    • 对各种协议数据报的封装方法(封装成帧)
    • 链路控制协议LCP 用于建立、配置以及测试数据链路的连接
    • 一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议
  • PPP帧的透明传输
    • 面向字节的异步链路使用字节填充法(插入转义字符)
    • 面向比特的同步链路使用比特填充法(零比特填充)
  • PPP协议的工作状态
  1. 网络适配器和MAC地址
  • 网络适配器
    • 要将计算机连接到以太网,需要使用相应的网络适配器,一般简称为“网卡”
    • 在计算机内部,网卡与CPU之间的通信,一般是通过计算机主板上的i/o总线以并行传输方式进行的
    • 网卡与外部以太网之间的通信,一般是通过传输媒体以串行方式进行的。
    • 网卡除要实现物理层和数据链路层功能,其另外一个重要功能就是要进行并行传输和串行传输的转换。由于网络的传输速率和计算机内部总线上的传输速率并不同,因此在网卡的核心芯片中都会包含用于缓存数据的储存器。
    • 在确保网卡硬件正确的情况下,为了使网卡正常工作,还必须要在计算机的操作系统中为网卡安装相应的设备驱动程序。驱动程序负责驱动网卡发送和接收帧。
  • MAC地址
    • MAC地址一般被固化在网卡的电可擦可编程只读储存器EEPROM中,因此MAC地址也被称为硬件地址
    • MAC地址有时也被称为物理地址
    • 网卡从网络上每收到一个无误码的帧,就检查帧首部中的目的MAC地址,按以下情况处理:
      1. 如果目的MAC地址是广播地址(FF-FF-FF-FF-FF-FF),则接受该帧
      2. 如果目的MAC地址与网卡上固化的全球单播MAC地址相同,则接受该帧
      3. 如果目的MAC地址是网卡支持的多播地址,则接受该帧
      4. 除1、2、3情况外,丢弃该帧
  1. CSMA/CD协议的基本原理
  • 为了解决各站点争用总线的问题,共享总线以太网使用了一种专用协议CSMA/CD,它是载波监听多址接入/碰撞检测的英文缩写词
  • 载波监听检测到总线空闲,但总线不一定空闲
  • 使用CSMA/CD协议的共享总线以太网上的各站点,只是尽量避免碰撞并在出现碰撞时做出退避后重发的处理,但并不完全避免碰撞
  • 在使用CSMA/CD协议时,由于正在发送帧的站点必须“边发送帧边碰撞检测”,因此站点不可能同时进行发送和接收,也就是不可能进行全双工通信,而只能进行半双工通信(双向交替通信)。
  1. 共享式以太网的争用期
  • 站点从发送帧开始,最多经过2t就可以检测出所发送的帧是否发生了碰撞
  • 因此,共享总线以太网的端到端往返时间2t被称为争用期或者碰撞窗口
    • 站点从发送帧开始,经过争用期2t这段时间还没有检测出碰撞,就可以肯定这次发送不会产生碰撞
  • 以太网的最小帧长和最大帧长
    • 为了确保共享总线以太网上的每个站点在发送完一个完整的帧之前,能够检测出是否产生了碰撞,帧的发送时延就不能少于共享总线以太网端到端的往返时间,即一个争用期2t。
  1. 共享式以太网的退避算法和信道利用率

  2. 物理层扩展以太网(集线器)
  • 在物理层扩展的共享式以太网仍然是一个碰撞域,不能连接太多的站点,否则会出现更大的碰撞,导致平均吞吐量太低
  1. 在数据链路层扩展以太网
  • 网桥工作在数据链路层(包含其下的物理层),因此网桥具备属于数据链路层范畴的能力。
    • 网桥可以识别帧的结构
    • 网桥可以根据帧首部中的目的MAC地址和网桥自身的帧转发表来转发和丢弃所受到的帧
  • 透明网桥的自学习和转发帧的流程
    • 透明网桥通过自学习算法建立转发表
    • 透明网桥的“透明”, 是指以太网的各站点并不知道自己发送的帧将会经过哪些网桥的转发,最终到达目的站点,也就是说,以太网的各网桥对于各站点而言是看不见的
    • 透明网桥,通过一中自学习算法基于以太网中各站点间的互相通信逐步建立起自己的转发表
      1. 网桥收到帧后进行登记(学习),登记的内容为帧的源MAC地址和进入网桥的接口号
      2. 网桥根据帧的目的MAC地址和网桥的转发表对帧进行转发,包含以下三种情况:
      • 明确转发:网桥知道应当从那个接口转发帧
      • 盲目转发:网桥不知道应当从哪个接口转发帧,只能将其通过除进入网桥的接口外的其他所有接口转发
      • 丢弃:网桥知道 不该转发该帧,将其丢弃
    • 透明网桥的生成树协议STP
      • 为了避免广播帧在环路中永久兜圈,透明网桥使用生成树协议,可以在增加冗余链路提高网络可靠性的同时,又避免环路带来的问题
        • 不管网桥之间连接成了怎么样复杂的带环拓扑,网桥之间通过交互网桥协议单元,找出原网络拓扑的一个连通子集,在这个子集里整个连通网络中不存在环路。
        • 当首次连接网桥或网络拓扑发生变化时,网桥都会重新构造生成树,以确保网络的连通。
  1. 以太网交换机
  • 以太网交换价本质上是一个多接口的网桥
    • 交换机自学习和转发帧的流程是相同的
    • 另外,交换机也会使用生成树协议STP,来产生能连通全网但不产生环路的通信路径
  • 交换机的每一个接口可以连接计算机,也可以连接集线器或者另一个交换机
    • 当交换机的接口与计算机或交换机连接时,可以工作在全双工方式,并能在自身内部同时连通多对接口,是每一对相互通信的计算机都能像独占传输媒体那样,无碰撞地传输数据,这样就不需要CSMA/CD协议了
    • 当交换机的接口连接的是集线器时,该接口就只能使用CSMA/CD协议只能工作在半双工方式
  • 采用直通交换方式的交换机,在接受帧的同时就立即按帧的目的MAC地址决定该帧的转发接口,然后通过其内部基于硬件的交叉矩阵进行转发,而不必把整个帧缓存后在进行处理
    • 直通交换的时延非常小
    • 直通交换不检查差错就直接将帧转发出去,就有可能会将一些无效帧转发给其他主机
  1. 以太网的MAC格式
  2. 虚拟局域网VLAN的实现机制
  • IEEE 802.1Q帧(也称Dot One Q 帧)对以太网的MAC格式进行了扩展,插入了4字节的VLAN标记
  • VLAN标记的最后12比特称为VLAN标识符VID,它唯一地标志了以太网帧属于哪一个VLAN
  • 802.1Q帧是由交换机来处理的,而不是用户主机来处理的
    • 当交换机收到普通的以太网帧时,会将其插入4字节的VLAN标记转为802.1Q帧,简称为“打标签”
    • 当交换机转发802.1Q帧时,可能会删除4字节VLAN标记转变为普通以太网帧,简称为“去信号”
  • 交换机端口类型:ACCESS Trunk Hybirda
  1. 无限局域网的组成

  2. CSMA/CA协议的基本工作原理
  • DCF帧间间隔DIFS的长度为128毫秒,在DCF方式中,DIFS用来发送数据帧和管理帧。DCF是分布式协调功能的缩写。在DCF方式下,没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权。DCF方式是802.11定义的默认方式。
  • 等待DIFS间隔是考虑到可能有其他的站有高优先级的帧要发送
  • SIFS的长度为28毫秒,它是最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这段时间内从发送方式切换到接收方式。使用SIFS的帧类型有ACK帧,CTS帧