计算机网络中的数据链路层详解

数据链路层概述

  • 数据链路层使用的信道主要有以下两种类型:

1、点到点信道:这种信道使用一对一的点对点通信方式;
2、广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专门的共享信道协议来协调这些主机的数据发送;

  • 下面分析一下两台主机通过互联网进行通信时数据链路层所处的地位:
    在这里插入图片描述

当主机H1向主机H2发送数据时,从协议的层次上看,数据的流动如上图所示。主机H1、H2都有完整的五层协议栈,但路由器在转发分组的时候使用到的协议栈只有下面的三层。数据进入路由器后要先从物理层上到网络层,在转发表中找到下一跳的地址后,再下到物理层转发出去。因此,数据从主机主机H1传送到H2需要在路径中的各结点的协议栈向上和向下流动多次,即通过了:H1的链路层——R1的链路层——R2的链路层——R3的链路层——H2的链路层;

这期间,四段不同的链路层通信可能采用不同的数据链路层协议;

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

数据链路和帧

  • 链路是指从一个结点到相邻结点的一段物理线路(有线或无线),而中间没有任何其他的交换结点,再进行数据通信时,链路作为路径的组成部分;
  • 数据链路:当需要一条线路上传输数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
  • 现在最常用的方法是使用网络适配器来实现这些协议,一般的适配器(比如网卡)都包括了数据链路层和物理层这两层的功能;
  • 点对点信道中的数据链路层的协议数据单元为——帧,数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并交给网络层。在互联网中,网络层的协议数据单元就是IP数据报(简称为数据报、分组、包);

在这里插入图片描述

  • 上图中点对点信道的数据链路层在进行通信时的主要步骤为:

1、结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧;
2、结点A把封装好的帧发送给结点B的数据链路层;
3、若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层,否则丢弃这个帧;

  • 数据链路层就像一个管道,它传输的是帧;

三个基本问题

  • 数据链路层的协议有许多种,但3个最基本的问题是:封装成帧、透明传输、差错控制;

封装成帧

在这里插入图片描述

  • 指的是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧;
  • 接收端收到物理层上交的比特流之后,会根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束;
  • 首部和尾部的重要作用就是作为帧定界(即确定帧的界限),此外还包括了许多必要的控制信息。
  • 为了提高帧的传输效率,应当使帧的数据部分长度尽可能大于首部和尾部的长度。因此就有了数据部分长度上限——最大传送单元MTU,如上图所示;

帧定界符

  • 当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。
  • 控制字符SOH放在帧的最前面,表示帧的首部开始,另一个控制字符EOT表示帧的结束;
  • 注意:这里的SOH和EOT不是时控制字符的名字,它们的十六进制编码为:01和04,并不是S,O,T(或E,O,T)三个字符;

在这里插入图片描述

  • 假定发送端在尚未发送完一个帧时突然出现故障,中断了发送,但随后又恢复正常,于是从头开始再发。由于使用了帧定界符,接收端就知道前面收到的数据是个不完整的帧(只有首部开始符SOH而没有传输结束符EOT),必须丢弃;

透明传输

  • 当传输的帧是用文本文件组成的帧时,其数据部分显然不会出现像SOH或EOT这样的帧定界控制字符,因此这样的传输称为透明传输;

透明的意思是:某一个实际存在的事物看起来却好像不存在一样;
在数据链路层中透明传送数据,表示无论什么样的比特组合的数据,对于传送的数据来说,它们看不见数据链路层又什么妨碍数据传输的东西,因此数据链路层对于这些数据来说是透明的;

  • 但当数据部分是非ASCII码的文本文件(如二进制代码的计算机程序或图象),数据中的某个字节的二进制代码恰好和SOH或EOT这样的控制字符一样,数据链路层就会错误地“找到帧的边界”,把部分帧手下(误认为这是完整的),而丢弃剩下的数据;

在这里插入图片描述

  • 为了解决透明传输问题,就必须使数据中可能出现的控制字符“SOH”和“EOT”在接收端不被解释为控制字符。

字节填充:

具体的方法是:在“SOH”和“EOT”前面插入一个转义字符“ESC”(其16进制为1B),而在接收端的数据链路层把数据送往网络层之前删除这个插入的转义字符。
如果转义字符也出现在数据当中,任然是在转义字符的前面插入一个转义字符。

在这里插入图片描述

差错控制

  • 比特在传输过程中可能产生差错,1可能变为0,0可能变为1,这就叫做比特差错;
  • 传输错误的比特占所传输比特总数的比率称为误码率(BER),误码率与信噪比有很大的关系,如果设法提高信噪比,就可以使误码率减小;
  • 实际的通信链路并非是理想的,他不可能使误码率下降为0,因此数据链路层广泛使用循环冗余检验CRC的检错技术,原理为:

1、在待传送的数据M后面添加供差错检验用的n位冗余码,然后构成一个帧发送出去;
2、这个冗余码可以用以下方法获得:在M后面添加n个0,得到的这个数出意收发双方事先商定的长度为(n+1)位的除数P,得出商位Q余数为R,这个R就作为冗余码拼接在M后面发送出去;

在这里插入图片描述

3、在接收端把接收到的数据以帧为单位进行检验,收到的每一个帧都除以同样的除数P,检查得到的余数R,如果传输过程无差错,余数R肯定为0,如果出现误码,R就可能不为0了;

  • 也就是说,凡是接收端数据链路层收到的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错。接收端丢弃的帧虽然曾经收到了,但是最终还是因为有差错被丢弃,即没有被接受。
  • 传输差错可以分为两大类:一类是前面说的比特差错,一类是比较复杂的:收到的帧并没有出现比特差错,但却出现了帧丢失、帧重复、帧失序;
  • 也就是说,无比特差错和无传输差错并不是同样的概念,在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是最可靠的传输;
  • 对于通信线路良好的有线传输链路,数据链路层协议不适用确认和重传机制,对于通信质量较差的无线传输链路,则使用确认和重传机制。

点对点协议PPP

  • 互联网用户通常都需要接到某个ISP才能接入到互联网,PPP协议就是用户计算机和ISP进行通信时所使用的数据链路层协议;

在这里插入图片描述

PPP协议的特点

  • PPP协议应满足的需求:(了解)

简单、封装成帧、透明性、多种网络层协议、多种类型链路、差错检验、检测连接状态、最大传输单元、网络层地址协商、数据压缩协商;

  • PPP协议的组成:

1、一个将IP数据报封装到穿行链路的方法;
2、一个用来建立、配置和测试数据链路连接的链路控制协议(LCP);
3、一套网络控制协议NCP;

PPP协议的帧格式

在这里插入图片描述

  • 标志字段表示一个帧的开始和结束,因此标志字段就是PPP帧的定界符。连续两帧之间只需要用一个标志字段。如果出现连续;两个标志字段,就表示这是一个空帧,应当丢弃;

  • 当信息字段出现和标志字段一样的比特组合时,就必须采取一些措施:

当PPP协议使用异步传输时,可以使用字节填充;由于在发送端进行了字节填充,因此在链路上传送的信息字节数就超过了原来的信息字节数。但接收端收到数据后再进行与发送端字节填充相反的变化,就可以正确恢复出原来的信息;

  • 零比特填充:

PPP协议使用同步传输的时候,可使用零比特传输,在发送端,扫描整个信息字段,如果发现有5个连续的1,就立即填入一个0;接收端在收到一个帧的时候,先找到标志字段F以确定一个帧的边界,接着再使用硬件对其中的比特流进行扫描,每当发现5个连续的1时,就把这5个连续1后面的一个0删除,以还原原来的信息比特流;

在这里插入图片描述

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

局域网的数据链路层

  • 局域网特点:网络为一个单位所拥有,且地理位置和站点数目均有限;
  • 局域网的优点:

1、具有广播功能;
2、便于系统的扩展和逐渐演变;
3、提高了系统的可靠性、可用性、生存性;

  • 按照网络拓扑进行分类,局域网分为:

在这里插入图片描述

  • 局域网可以使用多种传输媒体:双绞线(主流传输媒体)、光纤(数据率很高);

  • 共享信道要着重考虑的一个我呢提是如何使众多用户能够合理而方便的共享通信媒体资源,这在技术上有两种方法:

1、静态划分信道:频分复用、时分复用、波分复用、码分复用;
2、动态媒体接入控制

  • 随机接入:主要被以太网采用,所有的用户可随机地发送信息,如果恰好有两个或更多的用户在同一时刻发送消息,那么在共享媒体上就要产生碰撞,使得这些用户的发送都失败;
  • 受控接入:用户不能随即地发送信息而必须服从一定的控制,比如轮询;

以太网

  • 以太网是一种基带总线局域网,早期的以太网:

在这里插入图片描述
上图中发送数据的方式其实是广播通信方式;

适配器的作用

  • 计算机与外界局域网的连接是通过通信适配器进行的,现在的计算机主板上都已经嵌入适配器(主机箱内插入的一块网络接口板),不再使用单独的网卡了;
  • 在这种适配器上面装有处理器和存储器(包括RAM、ROM),适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器与计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的。
  • 因此,适配器一个最重要的功能就是要进行数据串行传输和并行传输的转换;
  • 由于网络上的数据率和计算机总线上的数据率并不相同,因此在适配器中必须装有对数据进行缓存的存储芯片。
  • 在主板上插入适配器的时候,还必须把管理该适配器的设备驱动程序安装在计算机的操作系统上,这个驱动程序就会告诉适配器,应当从存储器的什么位置上把多长的数据块发送得到局域网,或者应当在存储区的什么位置把局域网传送过来的数据块存储下来。
  • 适配器还要能实现以太网协议;
  • 适配器所实现的功能包含了数据链路层和物理层;
  • 适配器在接收和发送各种帧时,不使用计算机的CPU。这时计算机中的CPU可以处理其他任务。当适配器收到有差错的帧时,就把这个帧丢弃而不必通知计算机。当适配器收到正确的帧时,它就使用中断来通知计算机,并交付协议栈中的网络层。当计算机要发送IP数据报时,就由协议栈把IP数据报向下交给适配器,组装成帧之后发送到局域网。

在这里插入图片描述

CSMA/CD协议

  • 前面说,最早的以太网是将许多计算机都连接在一根总线上;总线的特点是,当一台计算机发送数据时,总线上的所有计算机都能检测到这个数据,这就是广播的通信方式;
  • 为了在总线上实现一对一的通信,可以使每一台计算机的适配器都拥有一个与其他适配器不同的地址。在发送数据帧时,在帧的首部写明接收站的地址。仅当数据帧中的目的地址与适配器ROM中存放的硬件地址一致时,该适配器才能接收到这个数据。适配器对不是发送给自己的数据帧就丢弃。这样,具有广播特性的总线上就实现了一对一的通信;
  • 为了通信的简便,以太网采取了以下两种措施:

1、采用较为灵活的无连接的工作方式:

即不必先建立连接就可以直接发送数据。适配器对发送的数据帧不进行编号,也不必要求对方发回确认;以太网的服务是不可靠交付。对有差错的帧是否需要重传则由高层来决定。

总线上的计算机在同一时间只能允许一台计算机发送数据,否则各个计算机之间就会互相干扰。以太网采用了一种协议CSMA/CD,载波监听多点接入/碰撞检测,即如减少冲突概率的发生;

2、以太网上的所有数据都采用曼彻斯特编码的信号:

在这里插入图片描述
CSMA/CD协议的要点:

多点接入:许多计算机以多点接入的方式连接在一根总线上;

载波监听:在发送前和发送中,每个站都必须不停的检测信道,为了获得发送权、减少冲突;

碰撞检测:“边发送边监听”,即适配器在发送数据边检测信道上的信号电压得变化情况,以便判断自己在发送数据时其他站是否也在发送数据。当几个站同时在总线上发送数据时,总线上的信号电压变化幅度会增大。当适配器检测到的信号电压变化幅度超过一定的门限值时,就认为总线上至少有两个站在同时发送数据,表明产生了碰撞。这时候适配器应当立即停止工作,免得进行无效得发送;

  • 设图中的局域网两端的站A和B相距1km,在A——B发送数据一段时间后,B在A发送的数据到达B之前发送自己的帧(这时候的B的载波侦听不到A发送过来的信息),则必然会在某个时间与A发送的帧产生碰撞。碰撞的结果就是两个帧都变得无用。

在这里插入图片描述

  • 一般将总线上的单程端到端传播时延记为t,也就是A发送数据之后,最多要经过两倍的总线端到端的传播时延(2t)才能知道自己发送的数据和其他站发送的数据有没有发送碰撞;
  • 在使用CSMA/CD协议时,一个站不可能同时进行发送和接收,因此使用该协议的以太网只能进行双向交替通信(半双工通信);
  • 每一个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性,这一特点称为发送的不确定性;

争用期:

以太网的端到端往返时间2t称为争用期,它是一个很重要的参数,即只有经过这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞;

协议规定了基本退避时间为争用期2t,具体的争用时间为51.2微秒,对于10Mbit/s以太网,在争用期内可发送512bit,即64字节,也就是说争用期是512比特时间,凡是长度小于64字节的帧都是由于冲突而异常终止的无效帧。

使用集线器的星型拓扑

  • 以太网采用星型拓扑,在星型的中心增加了一种可靠性非常高的设备,叫做集线器(现已被交换机取代)

在这里插入图片描述

  • 10BASE-T双绞线以太网的出现,是局域网发展史上的一个重要的里程碑,它的通信距离较短,每个站到集线器的距离不超过100m;
  • 集线器的一些特点为:

1、使用集线器的以太网在逻辑上仍然是一个总线网,个站共享逻辑上的总线,使用的还是CSMA/CD协议,网络中的各站必须竞争对传输媒体的控制,并且在同一时刻至多只允许一个站发送数据;
2、一个集线器很像一个多接口的转发器;
3、集线器工作在物理层,它的每个接口只是简单的转发比特——收到1就发1,收到0就发0,不进行碰撞检测;

以太网的信道利用率

  • 假定一个10Mbit/s以太网同时有10个站在工作,那么每一个站所能发送数据的平均速率似乎应当是总数据率的1/10.其实由于多个站在以太网上工作可能会发生碰撞,信道资源可能被浪费,因此,一外网的信道利用率并不能达到100%;
  • 以太网中,定义了参数α,他是以太网单程端到端延时t与帧发送时间T0之比:

在这里插入图片描述

如果α参数越小,表示信道资源被浪费的时间非常少,信道利用率很高。这也就是说,当数据率一定时,以太网的连线的长度受到限制(否则t会太大),同时以太网的帧不能太短(否则T0回会太小);

  • 现在考虑一种理想情况下,就是以太网发送的数据不会产生碰撞,也就是不存在争用期,此时不需要使用CSDM/CD,并且能够非常有效的利用网络的传输资源,即总线一旦有空闲就会有某一个站立即发送数据,这样就有了极限信道利用率Smax:

在这里插入图片描述

上式的意义是只有当参数α远远小于1的时候,信道的利用率才会越大;

以太网的MAC层

MAC层的硬件地址

  • 在局域网中,硬件地址又称为MAC地址;
  • MAC地址是一种48位的二进制地址值,前24位代表厂家,后24是厂家自己指定,是全球唯一的标识符,固化在适配器的ROM中的地址;
  • 适配器具有过滤功能:从网络上每收到一个MAC帧就先用硬件检查MAC帧中的目的地址,如果是发往本站的帧就收下,然后再进行其他处理,否则就将此帧丢弃,不进行处理;
  • 收到的帧一般分为3种:

1、单播帧:一对一
2、广播帧:发给本局域网上所有站点的帧;
3、多播帧:发给本局域网上一部分站点的帧;

MAC帧的格式

在这里插入图片描述

  • 常用的以太网MAC帧格式有两种标准:一种是DIX Ethernet V2标准(即就是以太网V2标准),另一种是IEEE的802.3标准,这里介绍V2标准的MAC帧格式,上图假定网络层使用的是IP协议。
  • 各个部分介绍:

目的地址:6个字节
源地址:6个字节
类型字段:2个字节,用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据交给上一层的这个协议;
数据字段:长度在46~1500字节之间;(64-18字节)
FSC:4个字节——帧检验序列(使用CRC检验)

  • 以太网的V2的MAC帧格式种,其首部并没有一个帧长度(或数据长度)字段,MAC子层怎么知道从接收到的以太网帧中取出多少个字节的数据交付给上一层的协议呢?曼彻斯特编码的特点是:当发送方把一个以太网帧发送完毕之后,就不再发送其他码元了;因此接收方很容易找到以太网帧的结束位置;
  • 还需要注意:以太网传输数据是以帧位单位传送的,各帧之间都有一定的空隙,以后那次,接收端只要找到帧的开始定界符,其后面的连续到达的比特流都属于一个,AC帧,可见以太网不需要使用帧结束定界符,也不需要使用字节插入来保证透明传输;
  • IEEE 802.3规定以下帧位无效的MAC帧:

1、帧的长度不是整数个字节;
2、用收到的帧检验序列FCS查出有差错;
3、收到的帧的MAC客户数据字段的长度不再46~1500字节之间;

  • 对于检查出的无效的MAC帧,以太网不负责重传丢弃的帧,由上一层的应用程序来实现和完成重传;

扩展以太网

  • 以太网上的主机之间的距离不能太远;
  • 现在,扩展主机和集线器之间的距离的一种简单方法是使用光纤和一对光纤调制解调器;

在这里插入图片描述

光纤调制解调器的作用就是进行电信号和光信号的转换,you由于光纤带来的时延很小,并且带宽很宽,因此使用这种方法可以很容易地使主机和几公里以外的集线器相连接;

  • 如果使用多个集线器,就可以连接成覆盖更大范围的多级星型结构的以太网:

在这里插入图片描述

  • 使用多级集线器有以下缺点:

1、在三个系得以太网连接起来之前,每一个系的以太网是一个独立的碰撞域,即在任何一个时刻,在每一个碰撞域中只能有一个站在发送数据。
2、每一个系得最大吞吐量为10Mbit/s,因此三个系的最大吞吐量为30Mbit/s,在三个系得以太网互连起来后就把三个碰撞域变成一个碰撞域,而这时候最大的吞吐量任然为10Mbit/s;
3、如果不同得系使用不同的以太网技术(如数据率不同),那么就不可能用集线器将他们互连起来;

在数据链路层扩展以太网

  • 扩展以太网更常用的方法是在数据链路层进行,最初人们使用的是网桥。网桥对收到的帧根据其MAC帧的目的地址进行转发和过滤。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是根据此帧的目的MAC地址,查找网桥中的地址表,然后确定将该帧转发到哪一个接口,或者把他丢弃;
  • 网桥使用存储转发(有学习功能),速率较低,现在使用的都是透明网桥;
  • 交换式集线器常称为以太网交换机,强调这种交换机工作在数据链路层;
  • 足够多接口的网桥就是现在的交换机;

以太网交换机的特点

  • 以太网交换机实质上就是一个多接口的网桥,它的每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。以太网交换机还具有并行性,即同时连通多个接口,使多对主机都能同时通信(而网桥只负责依次分析和转发一个帧);
  • 以太网交换机接口有存储转发的功能,能在输出端口繁忙时把都来得帧进行缓存;
  • 以太网交换机内部时帧交换表,是通过自学习算法自动逐渐建立起来的,其转发速率比网桥块很多;
  • 多于传统的10Mbit/s的共享式以太网,如果有10个用户,则每个用户占有的平均带宽只有1Mbit/s.若使用以太网交换机来连接这些主机,由于端口的带宽独享,交换机的总容量为100Mbit/s;

以太网交换机的自学习功能

下图是以太网交换机中的交换表:
在这里插入图片描述

以太网交换机能够即插即用,不必进行人工配置,非常方便;

  • 在两个交换机之间兜圈子的帧:
    在这里插入图片描述
    为了解决上述问题,IEEE的802.1D标准制定了一个生成树协议STP。其要点就是不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象;

  • 注意:使用集线器就不会产生兜圈子问题,集线器不参与生成树;

虚拟局域网

  • 利用以太网交换机可以很方便的实现虚拟局域网(VLAN):它指的是一些局域网段构成的与物理位置无关的逻辑组,这些网段具有某些共同的需求。每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的计算机属于哪一个VLAN;

在这里插入图片描述

  • 当计算机B1~B3同属于虚拟局域网VLAN2,当B1向工作组内成员发送数据时,计算机B2和B3能收到广播的信息,虽然它没有和B1连在同一个以太网交换机上;相反,此时的计算机A1,A2,C1都不能收到B1的广播信息;
  • 两个VLAN中的计算机即使在一个网段中,也不能ping通;
  • 多个交换机下的虚拟局域网:

在这里插入图片描述

只用了一个干道链路,就可以让两个虚拟局域网各自工作;

  • 虚拟局域网帧格式:

在这里插入图片描述

高速以太网

100BASE-T 以太网

  • 100BASE-T 以太网是在双绞线上传送100Mbit/s基带信号的星型拓扑以太网,使用CSMA/CD协议,又称为快速以太网;
  • 可以在全双工方式下工作而无冲突发生,因此,CSMA/CD协议对全双工方式工作的快速以太网是不起作用的;

吉比特以太网
在这里插入图片描述
10吉比特以太网和更快的以太网在这里插入图片描述

  • 12
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值