目录
一、数据链路层干了啥?
和上一讲的物理层不同——
物理层是最底层,他只需要拿到上一层——数据链路层传下来的数据,再经过一系列的过程传送给另一方的物理层即可。
数据链路层是第二层,上面是网络层,下面是物理层。
所以他需要承上启下。
先知道一个概念:
每相邻两层都有一个接口,叫做服务访问点SAP(Service Access Point),
第n层可以通过第n-1层的服务访问点SAP,使用第n-1层为其提供的服务。
而每一层都只能为上一层提供服务。
我们从上往下看:
网络层到数据链路层:
首先,网络层的PDU(协议数据单元)称为分组。
网络层把分组传递给数据链路层后,
数据链路层负责给这段分组添加首部和尾部,
首部和尾部中含有很多控制信息,他们的一个重要作用是确定帧的界限。
构成了数据链路层的PDU:帧。
数据链路层到物理层:
数据链路层把帧传递给物理层,
而帧在物理层看来,就是一长串的比特流,由0和1组成。
所以单从数据的传输来看,从网络层到物理层,经历了这样一个过程:
网络层的分组→传递给数据链路层→数据链路层给分组加上头和尾→成为帧→传递给物理层→识别为比特流,再进行编码或调制成信号→传输给对方的物理层。
但是,数据链路层并不只是将分组封装成帧这么简单,还解决了很多问题。——看功能汇总
二、功能汇总
1.总体来说:为网络层提供服务。
数据链路层的功能,其实就是将源的网络层传下来的数据,传输到目标的网络层。
具体表现形式,就是封装成帧,传给目的链路层,再以分组的形式递交给网络层。
2.组成帧
将上层的分组加上头尾组成帧,再进行传输。
有一个很重要的概念:透明传输。
透明传输,顾名思义,就是不管你链路层进行什么样的传输,
以网络层的视角来看,就是我的数据从我的网络层传到了目的网络层,并且没有数据的丢失,仅此而已。
那么要做到透明传输,我们需要解决下述问题:
假如网络层传来的分组里,也就是帧的数据段,其中有一段与帧的头尾,也就是帧定界符相同了,如何处理?这样就会造成帧的错乱,数据出现严重错误。
透明传输就是为了解决这样一个问题。
方法有:
字符计数法
字符填充的首尾定界符法
零比特填充的首尾标志法
违规编码法
3.进行差错控制
差错控制分为检错和纠错。
因为物理层只负责传输比特流,无法控制是否出错。
所以数据链路层负责将物理层传输的数据进行检错和纠错。
方法有:
检错:
奇偶校验码
循环冗余码
纠错:
海明码
4.进行可靠传输
上述的差错控制叫做比特差错,指的是帧本身出问题,是以比特为单位的。
而假如每一个帧都没有问题,可是他们到达对岸的顺序出了问题,这个仍然是不可靠的。
可靠传输就是为了解决此问题。
方法有:
单帧滑动窗口与停止-等待协议
多帧滑动窗口与后退N帧协议
多帧滑动窗口与选择重传协议
5.进行流量控制
假如接收方接收帧的速率小,快接受不过来了,
我们就需要控制发送方对帧的发送速率,
以便接收方有足够的缓冲空间来接收每个帧。
这就是流量控制。
方法同可靠传输:
单帧滑动窗口与停止-等待协议
多帧滑动窗口与后退N帧协议
多帧滑动窗口与选择重传协议
6.对于数据链路层本身来说,有对介质的访问控制
介质访问控制所要完成的任务是,让使用介质的每个结点隔离掉使用同一信道的其他结点所传送的信号,保证自己的信号不受干扰。
方法有:
静态:信道划分法
时分多路复用
频分多路复用
码分多路复用
波分多路复用
动态:随机访问法
ALOHA协议
CSMA协议
CSMA/CD协议
CSMA/CA协议
动态:轮询访问法
令牌传递协议
三、组帧
数据链路层之所以要把比特组合成帧,是为了在出错时只重发出错的帧,而不必重发全部数据。
实现透明传输的方法:
1.字符计数法:
但如果计数字段出错,则失去了帧边界划分的依据。
2.字符填充法
巧用转义字符。
3.零比特填充法
定界符包含了6个1,
而数据段每遇到5个连续的1,就加一个0.
接收端再去掉添加的0即可。
4.违规编码法
四、差错控制
差错从何而来?
概括来说,传输中的差错是由噪声引起的。
本篇讨论位错。
检错
1.奇偶校验码
由n-1位信息元和1位校验元组成。
检测1的个数来判断是否出错。
2.CRC循环冗余码
先生成一个多项式,再用要传的数据除以这个多项式得到冗余码。
最终发送的数据 = 要发送的数据 + 冗余码
发过去以后,接收方用接收的数据除以生成的多项式,
如果余数为0,则判定无错。
纠错
1.海明码
可以判断出错的位置,直接取反即可达到纠错的目的。
五、可靠传输
发送端发什么,接收端就接收什么。
方法见六。
六、流量控制
控制发送速率,使接收方有足够的缓冲空间来接收每一个帧。
单帧滑动窗口与停止等待协议
无差错情况:
有差错情况:
每次发送一个帧就启动一个超时计时器。如果超时,则重传。
如果确认信息ACK迟到,则重传,后来的ACK收下就丢弃。
使用简单,但信道利用率太低。
多帧滑动窗口与后退N帧协议
1.累计确认。
2.接收方只按顺序接收帧, 若无序,则全部重传。
3.确认序列号最大的、按序到达的帧。
多帧滑动窗口与选择重传协议
设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。
1.对数据帧逐一确认,收一个确认一个
2.只重传出错帧
3.接收方有缓存
七、介质访问之信道划分
传播数据使用两种链路:
频分多路复用指的是所有用户在同样的时间占用不同频率的带宽。
是并行。
时分多路复用指的是将时间划分为一段一段等长的时分复用帧。
类似时间片轮转法。
是并发。
波分多路复用是在一根光纤中传输多种不同波长的光信号,由于波长不同,所以各路光信号互不干扰。最后再一一分解。
码分多路复用是采用不同编码来区分原始信号。
八、介质访问之随机访问
见:https://blog.csdn.net/Kukeoo/article/details/114552957
九、介质访问之轮询:令牌传递协议
见:https://blog.csdn.net/Kukeoo/article/details/114552957
十、局域网
见:https://blog.csdn.net/Kukeoo/article/details/114554146
十一、广域网
广域网通常是指覆盖范围很广(远超一个城市范围)的长距离网络。
是因特网的核心部分。
任务是长距离运送主机所发送的数据。
他和局域网不同,
局域网是多点接入,强调数据传输;
广域网是点对点,强调资源共享。
主要采用分组交换技术。
PPP协议
点对点协议是目前使用最广泛的数据链路层协议。
只支持全双工链路。
面向字节。
需要满足:
毋须满足:
组成部分:三个
帧格式:
HDLC协议
高级数据链路控制协议,
全双工,
面向比特。
可靠性高,采用CRC检验,且编号。
对比:
十二、数据链路层设备
物理层扩充以太网:
很麻烦,且容易冲突。
链路层扩充以太网:
通过网桥。
分为透明网桥和源路由网桥。
源路由网桥使用广泛。
交换机:
一个多接口网桥。
冲突域和广播域:
4个冲突域,一个广播域。