数据链路层

王道666

基本概念

链路是两个相邻节点之间的物理线路(有线/无线),数据链路除了需要一条物理线路,还需要实现数据传输的通信协议,将实现这些协议所需要的硬件和软件加到链路上,便构成了数据链路层。
数据链路层中结点与结点的传输可以看作:

网络层->数据链路层->物理层------(传输)------物理层->数据链路层->网络层

主要通信步骤:
①结点A将网络层传送下来的IP数据报(分组、包)添加头部与尾部组成帧。
②A把封装好的帧传送给结点B的数据链路层。
③若结点B收到的帧并无差错,则将帧中的IP数据报提取出来上交给B上面的网络层,负责丢弃这个帧。

在这里插入图片描述

在这里插入图片描述

功能

在这里插入图片描述

一、封装成帧和透明传输

数据链路层的基本功能就是将网络层交给它的数据包进行加工处理,再交给物理层转化为数字信号进行传输。

封装成帧:

在一段数据的前后加上首部与尾部,便能构成一个帧。每一种链路协议都规定了帧的数据部分的长度上限(最大传送单元MTU),其中首部和尾部主要的功能是进行帧定界,并且包含一部分控制信息。
在这里插入图片描述

透明传输:

在这里插入图片描述

(1)字符计数法

在这里插入图片描述
note:当第一个帧的第一个帧首部出现错误后,后面都会出现错误。

(2)字符填充法

对于不同的链路协议,不同的SOH与EOT比特组合不同。
当采用非ASCⅡ码的文本文件组成的帧时,当帧的数据部分出现和EOT一样的字符时便会出错,导致帧定界错误,丢失后面的数据。因此必须使用字符填充法实现透明传输。
在这里插入图片描述
字符填充法会在再文本中与定界符相同的文本前面加上转义符,告诉接受端,不用理会转义字符后面的内容,只管接受,直到遇到定界符为止。最终接收端会将转义符全部去除只保留帧的数据部分。
在这里插入图片描述

(3)零比特填充法

零比特填充法的首尾标识符是一样的。5110。
操作:
①在发送端,扫描整个信息字段,只要连续5个1,就立即填入0。
②接收端收到一个帧时,先找到标志字符确定帧边界。再用硬件对比特流进行扫描,发现连续五个1时,删除后面的0。
在这里插入图片描述

(4)违规编码法

例如再曼彻斯特编码中,我用高高-低低来定界帧的起始和终止。
在这里插入图片描述

二、差错控制

差错来源:噪声
差错类型:比特差错(传输过程中0变为1,1变为0)
检错方式:(1)检错编码(2)纠错编码
在这里插入图片描述
在这里插入图片描述

(1)检错编码

①奇偶校验码:

由n-1位信息元与1位校验元组成。
在这里插入图片描述

局限性:当同时出现两个比特差错的时候,奇偶校验码会无法检测差错。

②CRC循环冗余码

在这里插入图片描述
(1)准备待传有效数据:将数据串切分成等长的分组(d位)。
(2)每个组都加上冗余码构成帧之后再发送,发送端与接收端共同约定除数/多项式(r+1位),也就是说除数比冗余码多一位,最终的发送数据也就是分组数据+冗余码(帧检验序列FCS)。
(3)冗余码计算:(d位数据+r位(和冗余码位数一样)的0)÷(除数/多项式)=商…r位冗余码(FCS)
(4)接收方检验:将d位数据加上r(冗余码)位生成新的(d+r)位数据再➗除数/多项式 = 商…余数(余数为0则正确接受,余数不为0则有差错,丢弃帧数据)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
CRC循环冗余码并不是可靠传输,因为当余数不为0的时候,他会丢弃传送的帧丢弃。并不是数据链路层发送什么,接收端便接受什么。

(2)纠错编码->海明码

检错编码只能检测是否出错,无法检测出在那个位置并纠正错误。
在这里插入图片描述

①码距——>(海明距离)

两个合法编码的比特取值不同的位数个数即为码距。例如000与111码距为3,000与001码距为1。在一个编码集当中,任意两个合法编码的码距的最小值即为整个编码集的码距(海明距离)。
在这里插入图片描述
如果要进行检错:码距d+1
纠错:2d+1

②纠错流程

1.确定校验码位数r
r要满足海明不等式的最小值,r的求解可以用暴力穷举法一个一个试。
在这里插入图片描述
2.确定校验码和数据的位置
求出校验码位数r后,校验码位数+数据的位数=新数据的位数,新数据填充方式如下:
在这里插入图片描述
3.求出校验码的值
求校验码的值需要一个通配符,通配符只保留值为1的位数。即对于序号1(2^0)的校验码,其二进制数位001,那么其通配符就是(**1),该通配符能管理的数据也都是以(**1)的形式结尾的数据。
在这里插入图片描述
利用通配符分完组后,假设对于每一组数据都进行偶校验,那么对于4567位的数据,便必须只有偶数个1,因此x4=0。
在这里插入图片描述
4.检错并纠错
通过以上步骤获得最新数据1100001,假设接收方收到的是1110001呢,第五位出错了,纠错方式如下:
(1)
当发送端使用偶校验时,接收到必须也是用偶校验,首先将接受到的数据按照上一步的分组形式进行分组,并进行偶校验。
在这里插入图片描述
能看到分组后只有2号校验码负责的分组通过了偶校验,因此数据有问题。
纠错:首先画三个圈,每个圈代表一个分组。
在这里插入图片描述
然后对重叠部分进行加法运算:
在这里插入图片描述
然后找到出错的分组即4号负责的分组4567与1号负责的分组1357,那么重叠部分5与7便是错误部分,而2号负责的分组2367排除了7的错误,因此便是5号位的错误。
在这里插入图片描述
(2)
第二种方法将分组与校验位排列为矩阵,同时对行进行偶校验,将校验位求出后进行转置,转置后的二进制数转化为十进制即第五位出错。
在这里插入图片描述
在这里插入图片描述

三、流量控制

1.控制原因

到接收方接收到数据后,数据量合适能接受下,那么会回复发送端一个确认帧,如果数据量太大已经接受不下,那么便不会回复一个确认帧。
在这里插入图片描述

2.控制方法

(1)停止等待协议

①为什么需要停止-等待协议
传输中除了比特错误,底层信道还会出现丢包问题。
为了实现流量控制。
在这里插入图片描述
②无差错情况
在这里插入图片描述
③有差错情况
每次发送一个帧就启动一个超时计时器,当发送帧时出现了丢失的情况,发送端一直接收不到接收端回复的确认帧,那么便重新传送一下。重传时间比帧传输的平均RTT(往返时延)更长一些。
在这里插入图片描述
因此发送一个帧后必须保留它的副本,直到收到确认帧之后再丢掉副本。而为了避免帧的丢失与重复问题必须把数据帧和确认帧进行编号。
在这里插入图片描述
确认帧(ACK)丢失了,那么只需要不断执行超时重传的过程,直到接收到确认帧即可。
在这里插入图片描述
确认帧(ACK)迟到,当确认帧迟到后,发送端仍然也是超时重传,当时如果再后续接收到了之前的确认帧,即收到了重复的已经确认帧。那么发送端便不会对该确认帧进行处理,直接丢弃。
在这里插入图片描述在这里插入图片描述
这种方法只能等待上一个帧发接收,然后收到确认帧后才能发送下一个帧,很低效。
在这里插入图片描述
信道利用率在停止等待协议中比较低,当发送方发送速率的比较快的时候,大部分时间数据都在发送的链路上,而发送方会处于空闲状态。
在这里插入图片描述
因此便有了滑动窗口协议(GBN协议与SR协议)。
在这里插入图片描述

(2)滑动窗口协议

停止等待协议一次只传一个帧效率比较低,但当一次传输多个帧时也必须规划好相关数据:首先要增加帧的序号范围,可以防止帧的丢失即乱序,同时发送端必须缓存多个帧的分组副本,以防止帧出错。
在这里插入图片描述
滑动窗口即发送端有一个发送窗口,接收端有一个接受窗口,两个窗口不一定非得一样大小,当发送端先发送一个帧,接收端接受后回复一个确认帧,然后接受窗口移动到下一个帧,表示已经准备好接受下一个帧了。
在这里插入图片描述
只有当发送端接收到确认帧之后窗口可以前进移动一格,而如果没有及时接收到确认帧,发送端也可以将发送窗口里面的帧全部按照顺序连续发送给接收端。而流量控制的原理即控制确认帧的回复,如果无法发送端接收到接收端回复的确认帧,那么滑动窗口也就无法继续前进。而当发送端一直没有接收到确认帧,发送端也会再次重传数据。
在这里插入图片描述
因此停止-等待协议即特殊的滑动窗口协议,即窗口大小都是一。

(3)三种协议的对比:

在这里插入图片描述
在这里插入图片描述

①后退N帧协议(GBN)

GBN的发送窗口可以n个,但是接收窗口只有一个。例子:当发送端发送0号帧时,同时保存其副本,同时其滑动窗口内其他帧也可以进行发送。
在这里插入图片描述
当接收端接收后给发送端发送确认帧后,窗口可以前进一位,而发送端接收确认帧之后,也可以前进一位。如此反复。而为了增强效率,当发送端一次性发送了0123号的帧时,那么接收端只需要发送最后一位即3号位(ACK3)的确认帧给发送端即可,也表示前面的帧也正确接受了(累积确认)。
在这里插入图片描述
GBN必须相应的三件事:
在这里插入图片描述

实际中对上层的调用无论窗口是否满员,都是能接收上层的数据,因为发送方会将上层的数据先缓存下来,即使滑动窗口已满,也会等发送完后,从缓存中直接取数据。
在这里插入图片描述
当连续发送帧时,突然有一个序号帧丢失了,那么此号帧后面的帧接收端都会直接丢弃,同时发送上一个已发送的确认帧表示我已经接收了该帧的上一个帧,发送端应该要发送该帧了。
在这里插入图片描述
发送窗口尺寸有限制。
在这里插入图片描述
在这里插入图片描述

②选择重传协议(SR)

GBN协议的弊端便是,当一次性将滑动窗口的很多帧同时发送时,假设发送了01234567,但是中间序号为2的帧在发送过程中丢失了,但是其他34567也发送了鸭,但是现在为了2号帧还得重传2号帧后面的帧。也就是一个帧出错,后面的所有帧都得重传一次。损失很大。
在这里插入图片描述
SR协议中,发送窗口与接收窗口都不唯一。

在这里插入图片描述
在这里插入图片描述
SR接收方对于不在接收窗口的帧是不会接受的。当前面的帧没有确认时,接收窗口会先将后面已经传送的帧缓存起来,直到前面的帧重现发送接收到后,再重新确认,并移动滑动串口。
在这里插入图片描述
对于下面的例子
在这里插入图片描述
对于上述的传送过程,假设2号帧传送丢失,那么发送方滑动窗口大小为4时,最多移动至2345时便无法移动,因为一直没有收到2号帧的确认(ACK)。直到345都已经发送了,发送窗口该动起来了。此时便是超时事件,重新发送2号帧。而接收方将345缓存下来。直到2号帧重新发送并接受了,才会将2345同时传给网络层。并移动窗口到6789。且如果2号帧一直发送失败便会无帧可发。
在这里插入图片描述
窗口不能太大。否则会产生二义性,分不清楚到底是新帧还是重传的帧。
在这里插入图片描述
在这里插入图片描述

三、信道划分介质访问控制(MAC协议)

1、传输数据的两种链路

(1)点对点链路

在这里插入图片描述
应用:PPP协议。广域网

(2)广播式链路

在这里插入图片描述
总线型电路根据目的地址进行判断是否接收数据。
应用:局域网。

2、介质访问控制

在这里插入图片描述

2.1、 静态划分信道

静态划分信道基于多路复用技术划分资源
在这里插入图片描述
在这里插入图片描述

2.1.1 频分多路复用FDM

一个频段对应一个主机,即使都在一个信道进行传输也能区分开。
在这里插入图片描述

2.1.2 时分多路复用TDM

每一个主机轮流周期性的占据信道进行通信。即在物理层划分的帧中占用固定序号的时隙。
在这里插入图片描述
但是在帧中如果主机ABC同时休息,但是主机D又只占一部分时隙,这样会浪费很大资源。

2.1.3 统计时分复用STDM

此时数据并不连续发送,而是中间有间隔的,频率比较低,而后利用集中器将低速用户连接起来,将数据集中起来通过一条高速线路发送出去,因此高速线路的数据便是无序的。
时隙是可以任意规定的。
此时因为一个STDM帧中的数据有可能时同样一组数据(AA)因此发送速率较高。
在这里插入图片描述

2.1.4波分多路复用WDM

在这里插入图片描述

2.1.5码分多路复用CDM

先将所有数据结合在一个线路中,再将线路区分开。具体过程先将各站点芯片序列相互正交,规格化内积为0。再将达到公共信道的两个向量线性相加,最后将合并的数据和源站规格化内积。
在这里插入图片描述

2.2 动态分配信道(随机访问MAC协议)

在这里插入图片描述

2.2.1 ALOHA协议

在这里插入图片描述
其中T0为数据帧发送的长度,从开始发送到达到的时间。
在这里插入图片描述
纯ALOHA协议发送数据太过随意,这样有可能有很多冲突,发送成功率可能较低。
时隙ALOHA协议只允许在时间片的开始发送和重传,而帧的长度也不一定,因此冲突较少。
在这里插入图片描述
在这里插入图片描述

2.2.2 CSMA协议

通过监听信道来检测总线上是否有其他计算机再发送数据。
在这里插入图片描述

1-坚持CSMA

在这里插入图片描述

非坚持CSMA

在这里插入图片描述

p-坚持CSMA

假设:
(1)在非常精密的信道中
(2)当p=1时和1-坚持CSMA协议类似
(3)当P=0时和非坚持CSMA协议类似。
实现:
(1)在发送之前监听时隙信道
(2)信道忙则等待,空闲时在发送
(3)如果空闲,将数据以概率P进行发送。
(4)否则,则一直等待,在下一个时隙再次进行此操作。
在这里插入图片描述
在这里插入图片描述

2.2.3 CSMA/CD协议

在这里插入图片描述
这里也是有可能产生冲突的,因为当其他站点的数据发送过来时,还没到总线上,那么我也监听不到,我在发送,便可能会和站点冲突。
而且只能时半双工,单工信道也会产生冲突。
在这里插入图片描述
经过2ε(传播时延)的时间还没有检测到冲突,就能认定不会发生冲突了。
在这里插入图片描述

截断二进制指数规避算法

在这里插入图片描述
当传输一个很短的帧时,当帧发送完毕后才检测到碰撞,那协议的作用便体现不出来(检测出碰撞来停止传送,并选择一个时间重新传送),因此必须定义一个最小帧长。
在这里插入图片描述

2.2.4 CSMA/CA协议

仍然是先监听信道,在进行传送。CD只能检测碰撞,而CA只能避免碰撞。CD与CA的应用场景不同。隐蔽站问题:AC要给B发送数据,但是AC与B相连的信道分别是空闲的,当AC同时对B发送数据时会造成冲突。此时,A是不是到C要给B发数据,C也不知道A要给B发送数据,因此各自为隐蔽站。因此CA协议必须再发送数据前检测信道是否空闲。
在这里插入图片描述
解决隐蔽站问题:RTSCTS
这里,CTS有两个作用,一是给源站发送许可,二是指示其他站点在预约期不要发送

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3轮询访问MAC协议

在这里插入图片描述

2.3.1 轮询协议

轮询访问即主结点轮流询问各从属结点是否发送数据。

在这里插入图片描述
轮询主节点会依次发送数据帧进行确认该节点是否发送数据,开销大。而且各节点等待确认也由等待延迟。而当主节点故障时也会产生单点故障,因此也需要同时备份跟多主节点。
在这里插入图片描述

2.3.2令牌传递协议

令牌传递协议常用的网络时令牌环网,在逻辑上时一个环形结构,在物理上仍是星型的。其中,ABCD四台主机,TCU转发器为传递数据帧提供接口,且为接入站发送和接收数据提供接口,起转发作用。
在这里插入图片描述
令牌作用如下:
在这里插入图片描述

当网络空闲时,令牌会在各个主机之间进行传递。直到传递到一个主机要发送数据了。
在这里插入图片描述
以主机D为例发送数据给主机A,要发送数据时,首先将令牌的标志位进行修改,将令牌从空闲状态转为忙状态。同时将数据加入令牌构成数据帧,然后将数据帧发送出去,而数据会沿着环形网络结构进行传递,经过主机CB到主机A,而主机A复制所发送的数据帧,由将数据帧继续传递给主机D,此时主机D还会进行检错是否数据是否有问题。数据没有出错,主机D则回收数据,不再进行转发,令牌标志位改为空闲状态,继续沿着环形网传递,直到下一个主机要发送数据。
在这里插入图片描述
而当数据很长时,主机D也不能一直持有令牌发送数据,会有一个规定时间,直到下一次在轮到主机D。
在这里插入图片描述
而对于这样网络仍然会有令牌空闲巡转、令牌损坏重新生成的开销,而且令牌沿着环形网络结构前进,当最后一个主机想发送数据时也必须等到令牌经过前面的所有主机,会有等待延迟,而当网络结构中的一个主机down掉时,仍然需要替代机进行补充。
在这里插入图片描述
负载较大时,令牌被循环使用,则存在意义较高。

2.4总结

在这里插入图片描述
在这里插入图片描述

四、基本网络结构

1、局域网(LAN)

在这里插入图片描述

1.1 网络拓扑:

目前比较常用的是总线型
在这里插入图片描述

1.2 传输介质

在这里插入图片描述

1.3 介质访问控制方法

在这里插入图片描述

1.4 局域网分类

常用的就是以太网/无线局域网,WIFI是无线局域网的一种应用。
在这里插入图片描述

IEEE 802标准

IEEE 802.3——以太网
IEEE 802.5——令牌环网
IEEE 802.8——光纤
IEEE 802.11——无线局域网
在这里插入图片描述
MAC子层与LLC子层
在这里插入图片描述
在这里插入图片描述

2、局域网——以太网

2.1 以太网概述

在这里插入图片描述

2.2 以太网标准

在这里插入图片描述
802.3局域网都指的是以太网。
在这里插入图片描述
差错帧会丢弃,因此不是可靠传输,以太网也主要负责物理层和链路层的传输。

在这里插入图片描述

2.3 10BASE-T以太网

在这里插入图片描述

2.4 适配器和MAC地址

在这里插入图片描述

2.5 以太网MAC帧

在这里插入图片描述

目的地址即接收方地址,主要分为单播地址(一对一)、广播地址(全F)(一对全)、多播地址(一对多)。
类型指明网络层使用的协议。
数据部分长度最短/最长:46~1500字节。
以太网的数据帧,再前导码中由帧开始定界符,但是没有帧结束的定界符,这是因为采用的曼彻斯特编码,物理层的帧之间是有间隔的。当发送数据时码元会发生变化,而不发送时不会变化,因此发送方网络适配器的电压也就不会变化,这样就能确定数据是否结束,再往前四个bit也能确定数据的位置。
在这里插入图片描述
mac层负责封装帧,物理层负责帧在信道上的传递,以太网两个规范,这里说的是根据第一个规范的帧格式,802.3是第二个标准,帧格式有改动。
在这里插入图片描述
在这里插入图片描述
以太网只能检错,纠错需要高层(传输层)实现。拓扑结构从原来的物理/逻辑都是总线型变为逻辑是总线型,物理是星型。适配器就是网卡,当网卡烧制好以后就会有一个独一无二的MAC地址,由48位构成,通常由6个16位数表示。

3、局域网——无线局域网

3.1 802.11标准的MAC帧头格式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
每一个WiFi都是无服务集标示点。

4、VLAN(虚拟局域网)

在这里插入图片描述
路由器既隔离冲突域,也隔离广播域,路由器既隔离冲突域,也隔离广播域。
在这里插入图片描述

通过VLAN可以将一个局域网或分为许多广播域。因此,除了转发表,还有VLAN表。VLAN广播帧只能在自己的广播域内传播。
在这里插入图片描述
VLAN(虚拟局域网)通过划分广播域,将一个物理网络划分为多个逻辑上独立的虚拟网络。每个VLAN形成一个独立的广播域,这意味着在同一个VLAN内的主机可以直接进行广播通信,而不会影响其他VLAN中的主机。
如果两个主机位于不同的VLAN中,它们的数据帧不会直接在物理网络上传播。交换机会根据VLAN信息来转发数据帧,只将它们发送到目标VLAN中的相应端口。
而对于不同广播域之间的传播,数据从一个广播域传递到另一个广播域通常涉及贴上标签(Tagging)或者修改数据包的目的地址。这涉及到VLAN技术,其中VLAN标签用于将数据包与特定的虚拟局域网关联。这样,数据包就可以从一个VLAN传递到另一个VLAN,从而跨越不同的广播域。
在这里插入图片描述

使用VLAN标签的传递过程:
(1)数据包出发:
当源设备发送数据包时,数据包通常会被标记上一个VLAN标签
(2)进入交换机:
数据包到达交换机,交换机根据目的MAC地址和VLAN信息决定将数据包转发到哪个端口(trunk端口)。
(3)VLAN标签检查:
如果目的端口属于同一个VLAN,交换机只需将数据包转发到该端口。如果目的端口属于不同的VLAN,交换机则需要进行VLAN标签的修改。
(4)VLAN标签修改:
交换机可能需要修改数据包的VLAN标签,以确保数据包在跨越不同VLAN时能够被正确路由。
(5)进入路由器或三层交换机:
如果跨越不同广播域,数据包必须进入路由器或三层交换机。这些设备根据目的IP地址来决定将数据包路由到哪个接口。
(6)跨越广播域:
数据包被发送到另一个广播域,可能经过一系列的路由器或三层交换机,直到达到目的地。
(7)目的设备:
最终,数据包到达目的设备,该设备根据VLAN信息处理数据包。

5、广域网

广域网比局域网的传输速度要快,但是由于线路过长,传播延迟很高。
在这里插入图片描述

5.1 ppp协议

广域网强调点对点链路。而最初的设计难点都在TCO/IP协议中,因此PPP协议不要求可靠传输。
在这里插入图片描述

在这里插入图片描述
同步串行与异步串行的重要区别在于传输的是字节还是字符串。
在这里插入图片描述
在这里插入图片描述
宽带无连接时,输入账号密码建立物理链路,验证成功将物理链路构成LCP链路,再经过NCP协议配置协商构成NCP链路,正式上网实现数据通信。
在这里插入图片描述
PPP协议传输的都是整个字节,因此时面向字节的协议。
在这里插入图片描述
在这里插入图片描述

6、链路层设备

通过光纤可以扩展以太网范围。(冲突域:节点不能同时发消息)
在这里插入图片描述
通过增加主干集线器可以扩展以太网,但是冲突域变大了。

6.1 网桥

网桥是根据物理地址过滤和转发数据包的连接设备,工作与OSI模型中的数据链路层(对应TCP/IP协议的网络访问层)

在这里插入图片描述
网桥或者说数据链路层的设备可以划分冲突域是因为数据链路层有冲突检测的协议在 即数据链路层可以进行差错控制。
当一个冲突域的节点出现意外时,并不影响其他节点的通信。
在这里插入图片描述

透明网桥

透明网桥:通过数据经过各个网桥的路径与接口来构建转发表,这里由于网桥并不知道网络的拓扑结构,因此刚开始的数据必然要经过所有网桥来构建转发表。
在这里插入图片描述

源路由网桥

在这里插入图片描述

6.3 以太网交换机

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值