计算机数据链路层

版权声明:本文为博主原创,欢迎转载,转载请注明链接地址。 https://blog.csdn.net/qq_30164225/article/details/85952359

设计数据链路层(Data Link Layer)的目的在于,在原始的、有差错的物理传输线路的基础上,采取差错检测、差错控制与流量控制等方法,讲有差错的物理线路该进程逻辑上无差错的数据链路,以便向它的上一层——网络层提供高质量的服务。

重点内容包括:

  • 划分数据链路层的必要性
  • 帧封装和解封原理
  • 帧组装和帧同步原理
  • 奇偶校验法、CRC、反馈检测、空闲重发请求、连续重发请求等差错控制技术原理
  • 海明码的检/纠错原理及海明码的计算
  • 滑动窗口流量控制原理
  • HDLC、PPP帧结构
  • CSMA和CSMA/CD协议的介质访问控制原理
  • 主要的以太网标准帧格式
  • LLC帧头部和SNAP头部格式
  • 千兆和万兆以太网规范和体系结构

数据链路层的结构

在IEEE 802系列标准将数据链路层分为“介质访问控制”(Medium Access Control)和“逻辑链路控制”(Logic Link Control)两个子层。

  1. MAC子层

控制不同用户数据传输中对物理层传输介质的访问,包括:介质访问时的寻址及解决可能发生的介质访问冲突。

  1. LLC子层

负责数据链路层中的“逻辑链路”的控制,包括:逻辑链路的建立和释放、控制信号交换、数据流量控制、解释上层通信协议传来的命令并且产生响应,以及客服数据在传送过程中所可能发生的种种问题,如数据发生错误、重复收到相同数据、接受数据的顺序和传送的顺序不一致等。

数据链路层主要功能及实现原理

总体而言,数据链路层主要的功能就四个方面:数据链路管理、封装成帧、透明传输、差错控制。

  1. 数据链路管理

LLC子层的链路管理功能主要是针对有确认的面向连接服务类型,包括链路建立、链路保持、链路释放。

  1. 数据帧封装与解封装

帧封装是指将来自网络层的数据包加装对应数据链路层协议头部和尾部封装成数据帧的过程。
帧解封装是数据链路层需要向网络层书桉树数据是,需要把数据帧中的帧头部和帧尾部去掉,还原发送端的真实数据包活分组格式再向上层传递。

  1. 帧组装与帧同步

发送端数据链路层中的帧到达物理层之后会以比特位为单位进行传输,而不是以帧为单位进行传输,尽量在并行传输中可以一次传输一个或多个字节,但是每条线路中的传输单位还是比特位。到了接收端之后,物理层讲收到的比特流需要继续上上一层传递,此时需要把这些比特流组装成与发送端对应数据一样的帧格式,这就是数据链路层中的帧组装。
帧组装过程中涉及到帧同步功能,即在接收端如何区分来自发送端的比特流属于原来在发送端中的哪个帧。当然这个需要在发送端进行数据发送时就确定好,然后接收端根据帧同步方法进行组装,常见的帧同步方法有字节计数法字符填充的首位定界符法、比特填充的首位定界符法、违法编码法

  1. 差错控制

要实现差错控制,必须具备差错检测和差错纠正的能力。

  1. 差错检测
    一般通过对差错编码进行校验来实现,常见的有奇偶校验法(PCC)、循环冗余校验法(CRC)两种。
    2.差错纠正
    通常在数据发送时引入计时器来限定接收端发回反馈信息的时间间隔。当发送端发送一帧的同时也启动计时器,如果在限定时间内内有收到接收端的反馈信息,即计时器超时,则认为传的对应帧已经出错或丢失,继而发送端知道要重新发送对应的数据帧。
  1. 流量控制

流量控制包含两个方面。一个是发送端的数据发送速度与接收端的数据接收速度要匹配,否则接收端来不及接收就造成数据在传输过程中的丢失。另一个是发送端的数据发送速度要与线路上的承载速率(信道带宽)想匹配,否则也会造成数据在传输过程中的丢失。
常用的流量控制有两种,一个是基于反馈的流量控制方案,即接收端收到之后需要向发送端发送一个确认帧。另一个是基于窗口滑动机制的速率控制方案,他规定发送端一次可以发送多少个数据帧,限制了发送端的数据传输速率,而无需接收端发回确认帧。

二层交换原理

二层交换原理是在同一个局域网内部所进行的数据交换。

  1. MAC地址表
    整个二层交换过程中需要用到以下两个表:
  • 交换机上的MAC地址表:包括MAC地址、出接口,还可能包括VLAN ID。
  • 主机上的ARP映射表:IP地址、MAC地址、出接口(网卡)

在交换机设备上只建立二层的MAC地址表,ARP映射表是仅在计算机主机上建立的,这与三层交换不同,三层交换需要在交换机上同时建立二层的MAC地址表(用于在同一个局域网内部数据转发)和三层的ARP映射表(用于在不同IP网段之间的数据转发)。

  1. 二层交换原理

初次通信时,由于通信双方不知道对方的MAC地址(一般只知道IP),这里需要借助计算机上的ARP协议来解析IP地址所对应的MAC地址,具体流程如下:

1)在不知道目的端MAC地址时,源端主机发送一个ARP广播包,以获取目的端的MAC地址。
2)二层交换机在收到ARP广播帧后会根据帧中的源MAC地址、接收该帧的交换机端口和该端口所加入的VLAN建立基于源主机的MAC地址表项,然后从除了源端口外的其他所有端口上一级一级的反馈该ARP广播帧,直到直接连接目的主机的交换机。
3)IP地址配置为与ARP广播帧中的目的IP地址相同的主机会接受此ARP广播帧并建立基于源主机的ARP映射表项,然后项源主机返回一个单播ARP响应包。
4)二层交换机在接收到目的主机发来的响应ARP帧后,根据帧中的源MAC地址、接收该响应ARP帧的交换机端口和该端口所加入的VLAN建立基于目的主机的MAC地址表项,同事根据原来已经建立好的基于源主机的MAC地址表项一级级的单播传送ARP响应帧,直到直接连接源主机的交换机。
5)源主机接收到来自目的主机的ARP响应包后建立基于目的主机的ARP映射表项。

此时,源主机就获得了目的主机的MAC地址,下次再向该主机发送数据时,可以直接使用所获得的目的主机的MAC地址壮壮要传输的数据帧发送给交换机,此时交换机可以直接利用原来建立的好的MAC地址进行数据转发,最终实现源主机和目的主机之间的数据交换。如果主机发生了移动,连接到了其他交换机的端口,当交换机收到主机发来的数据帧时会根据帧中的源MAC地址找对应的MAC地址表项,然后进行更新。

猜你喜欢

转载自blog.csdn.net/qq_30164225/article/details/85952359