第三章:数据链路层
概述和功能
基本概念
结点:主机、路由器
链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
帧:链路层的协议数据单元,封装网络层数据报。
功能概述
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到 相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接 改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
![image-20201224165937461](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201224165937461.png)
-
为网络层提供服务。
- 无确认无连接服务
- 有确认无连接服务
- 有确认面向连接服务(有连接一定有确认!)
-
链路管理,即连接的建立、维持、释放(用于面向连接的服务)
-
组帧
-
流量控制
-
差错控制(帧错/位错)
组装成帧和透明传输
组装成帧
封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。
帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
组帧的四种方法:1.字符计数法,2.字符(节)填充法,3.零比特填充法,4.违规编码法。
![image-20201224171316456](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201224171316456.png)
透明传输
透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
![image-20201224171812788](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201224171812788.png)
字符计数法
概念
帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。
痛点:第一个帧计数字段发生错误,将导致整段数据组帧错误,造成不同步,相当于鸡蛋装在一个篮子里了。
![image-20201224172332599](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201224172332599.png)
字符(节)填充法
概念
当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCII码)。不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。
![image-20201224173105752](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201224173105752.png)
当传送的帧是由非ASCII码的文本文件组成时(二进制代码的程序或图像等),就要采用字符填充方法实现透明传输。
![image-20201224173130019](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201224173130019.png)
实现过程
![image-20201224173306472](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201224173306472.png)
零比特填充法
操作
-
在发送端,扫描整个信息字段,只要 连续5个1,就立即填入1个00
-
在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。
优点
保证了透明传输在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。
违规编码法
概念
可以用“高一高”,“低一低”来定界帧的起始和终止。
由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。
![image-20201224174443070](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201224174443070.png)
差错控制
差错来源
概括来说,传输中的差错都是由于噪声引起的。
- 全局性噪声
- 由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。
- 解决办法:提高信噪比来减少或避免干扰。咬对传感器下手)
- 局部性噪声
- 外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。
- 解决办法:通常利用编码技术来解决。
差错分类
- 位错:比特位出错,1变成0, 0变成1。
- 帧错
- 丢失:收到 [#1]-[#3]
- 重复:收到 [#1]–[#2]-[#2]-[#3]
- 失序:收到 [#1]-[#3]-[#2]
差错控制
- 检错编码
- 奇偶校验码
- 循环冗余码CRC
- 纠错编码
- 海明码
冗余编码:在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送。 当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到码字是否仍符合原规则,从而判断是否出错。
![image-20201224224409577](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201224224409577.png)
编码 VS 编码
数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。
检错编码
奇偶校验码
奇偶校验码
![image-20201224225021158](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201224225021158.png)
特点:只能检查出奇数比特错误,检错能力为50%。
CRC循环冗余码
CRC循环冗余码
最终发送的数据:要发送的数据+帧检验序列FCS
![image-20201224230458249](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201224230458249.png)
计算冗余码
- 加0:假设生成多项式G(x)的阶为r,则加r个0。
- 模2除法:数据加0后除以多项式,余数为冗余码/FCS/(CRC检验码的比特序列)
![image-20201224230917347](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201224230917347.png)
举例:要发送的数据是1101 0110 11,采用CRC校验,生成多项式是10011,那么最终发送的数据应该是?
![image-20201224231258304](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201224231258304.png)
接收端检错过程
把收到的每一个帧都除以同样的除数,然后检查得到的余数R。
1.余数为0,判定这个帧没有差错,接受。
2.余数为不为0,判定这个帧有差错(无法确定到位),丢弃。
FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速, 因此不会延误数据的传输。
![image-20201224231909168](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201224231909168.png)
在数据链路层仅仅使用循环冗余检验CRC差错检测技术,只能做到对帧的无差错接收,即“凡是接收端数据 链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。接收端丢弃的帧虽然曾收到了,但是最终还是因为有差错被丢弃。“凡是接收端数据链路层接收的帧均无差错”。
“可靠传输”:数据链路层发送端发送什么,接收端就收到什么。
链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。
纠错编码
海明码
海明码
发现双比特错,纠正单比特错。工作原理:动一发而牵全身。
工作流程
![image-20201224232908545](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201224232908545.png)
-
确定检验码位数r
海明不等式:2r > k+r+1(r为冗余信息位,k为信息位)
-
确定检验码和数据的位置
假设这4位校验码分别为P1、 P2、P3、 P4(放在2的几次方的位置),数据从左到右为D1、D2、…、D6(按序把空填满)
-
求出检验码的值
-
检错并纠错
![image-20201225000213367](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201225000213367.png)
流量控制和可靠传输
流量控制过程
较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。
数据链路层流量控制手段:接收方收不下就不回复确认。
传输层流量控制手段:接收端给发送端一个窗口公告。
流量控制方法
-
停止-等待协议:发送窗口大小=1,接收窗口大小=1
每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧。
-
滑动窗口协议
-
后退N帧协议GBN:发送窗口大小>1,接收窗口大小=1
-
选择重传协议SR:发送窗口大小>1,接收窗口大小>1
-
停止-等待协议
背景
- 除了比特出差错,底层信道还会出现丢包问题。
- 丢包:物理线路故障、设备故障、病毒攻击、路由信息错误等,会导致数据包的丢失。
- 为了实现流量控制。
前提
虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方)。
因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。
“停止一等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。
应用情况
-
无差错情况
-
有差错情况
-
数据帧丢失或检测到帧出错
-
ACK丢失
-
ACK延迟
-
停等协议性能分析
优点:简单
缺点:信道利用率太低
![image-20201225164914758](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201225164914758.png)
信道利用率
发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。
![image-20201225165134728](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201225165134728.png)
例题:一个信道的数据传输率为4kb/s,单向传播时延为30ms,如果使停止一等待协议的信道最大利用率达到80%,要求的数据帧长度至少为()。
![image-20201225165636592](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201225165636592.png)
后退N帧协议GBN
滑动窗口
![image-20201225172958936](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201225172958936.png)
发送方必须响应的三件事
1.上层的调用
上层要发送数据时,发送方先检查发送窗口是否己满,如果未满,则产生一个帧并将其发送;如果窗口已满, 发送方只需将数据返回给上层,暗示上层窗口己满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。
2.收到了一个ACK
GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方己经收到n号帧和它之前的全部帧。
3.超时事件
协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样, 定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有己发送但未被确认的帧。
接收方要做的事
-
如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。
-
其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)。
运行中的GBN
![image-20201225173742156](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201225173742156.png)
滑动窗口长度
若采用n个比特对帧编号,那么发送窗口的尺寸Wt应满足:1 < Wt < 2n-1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。
总结
- 累积确认(偶尔捎带确认)
- 接收方只按顺序接收帧,不按序无情丢弃
- 确认序列号最大的、按序到达的帧
- 发送窗口最大为2^n ^ -1,接收窗口大小为1
性能分析
-
优点:因连续发送数据帧而提高了信道利用率。
-
缺点:在重传时必须把原来己经正确传送的数据帧重传,是传送效率降低。
-
优化:选择重传协议
选择重传协议SR
重传协议中的滑动窗口
![image-20201225225243236](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201225225243236.png)
发送方必须响应的三件事
-
上层的调用
从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
-
收到了一个ACK
如果收到ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记为己接收。如果该帧序号是窗口 的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。
-
超时事件
每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
接收方要做的事
来者不拒(窗口内的帧):SR接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收谁确认谁】,直到所有帧(即序号更小的帧皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。
如果收到了窗口序号外(小于窗口下界)的帧,就返回一个ACK。其他情况就忽略该帧。
![image-20201225231658991](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201225231658991.png)
运行中的SR
![image-20201225232124150](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201225232124150.png)
滑动窗口长度(窗口大小上限)
发送窗口最好等于接收窗口(大了会溢出、小了没意义)
公式:WTmax = WRmax = 2(2n-1)
![image-20201225233114573](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201225233114573.png)
总结
- 对数据帧逐一确认,收一个确认一个
- 只重传出错帧
- 接收方有缓存
- WTmax = WRmax = 2(2n-1)
介质访问控制
传输数据使用的两种链路
-
点对点链路
两个相邻节点通过一个链路相连,没有第三者。
应用:PPP协议,常用于广域网。
-
广播式链路
所有主机共享通信介质。
应用:早期的总线以太网、无线局域网,常用于局域网。
典型拓扑结构:总线型、星型(逻辑总线型)
介质访问控制
介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发生相互干扰的情况。
![image-20201225235653597](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201225235653597.png)
协议对比
- 信道划分介质访问控制协议
- 基于多路复用技术划分资源
- 网络负载重:共享信道效率高,且公平
- 网络负载轻:共享信道效率低
- 随机访问MAC协议
- 用户根据意愿随机发送信息,发送信息时可独占信道带宽
- 网络负载重:产生冲突开销
- 网络负载轻:共享信道效率高,单个结点可利用信道全部带宽
- 轮询访问MAC协议/轮流协议/轮转访问MAC协议
- 既要不产生冲突,又要发送时占全部带宽
静态划分信道
信道划分介质访问控制
将使用介质的每个设备与来自同一信道上的其他设备通信隔离开,把时域与频域资源合理地分配给网路上的设备。
![image-20201226000324758](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201226000324758.png)
多路复用技术
把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。
![image-20201226000522105](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201226000522105.png)
把一条广播信道,逻辑上分成几条用于两个节点之间通信的互不干扰的子信道,实际就是把广播信道转变为点对点信道。
控制方式
- 频分多路复用FDM
- 时分多路复用TDM
- 波分多路复用WDM
- 码分多路复用CDM
频分多路复用FDM
频分多路复用FDM
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源。
优点:充分利用传输介质带宽,系统效率较高;由于技术比较成熟,实现也比较容易。
![image-20201226003607881](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201226003607881.png)
时分多路复用TDM
时分多路复用TDM
将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信 道。
区别:
-
频分复用:相当于操作系统中的“并行”
-
时分复用:相当于操作系统中的“并发”
改进的时分复用:统计时分复用STDM
![image-20201226094734604](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201226094734604.png)
每一个STDM帧中的时隙数小于连接在集中器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM帧中,一个STDM帧满了就发出。STDM帧不是固定分配时隙,而是按需动态分配时隙。
波分多路复用WDM
波分多路复用WDM
波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率) 不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
![image-20201226095311807](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201226095311807.png)
码分多路复用CDM
码分多路复用CDM
码分多址(CDMA) 是码分复用的一种方式。
1个比特分为多个码片/芯片(chip),每一个站点被指定一个唯一的m位的芯片序列。
发送1时站点发送芯片序列,发送0时发送芯片序列反码(通常把0写成-1)。
如何不打架:多个站点同时发送数据的时候,要求各个站点芯片序列相互正交。
如何合并:各路数据在信道中被线性相加。
动态分配信道
动态分配信道
动态媒体接入控制/多点接入
特点:信道并非在用户通信时固定分配给用户。
分类:
- 随机访问介质访问控制
- 轮询访问介质访问控制
随机访问介质访问控制
随机访问介质访问控制
所有用户可随机发送信息。发送信息时占全部带宽。主要有以下四种协议。
ALOHA协议
命名来源
![image-20201226102016978](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201226102016978.png)
分类:纯ALOHA协议、时隙ALOHA协议
纯ALOHA协议
不监听信道,不按时间槽发送,随机重发。想发就发
![image-20201226102217708](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201226102217708.png)
如何检测冲突
如果发送冲突,接收方就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。
冲突如何解决
超时后等一随机时间再重传。
缺点:发生成功率低
时隙ALOHA协议
时隙ALOHA协议的思想:把时间分成若干个相同的时间片, 若发生冲突,则必须等到下一个时间片开始时刻再发送。
所有用户在时间片开始时刻同步接入网络信道, 若发生冲突,则必须等到下一个时间片开始时刻再发送。控制想发就发的随意性
![image-20201226103111128](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201226103111128.png)
区别
- 纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
- 纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发。
CSMA协议
CSMA协议
载波监听多路访问协议CSMA (carrier sense multiple access)
CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
当几个站同时在总线上发送时数据时,总线上的信号电压摆动值将会增大(互相叠加)。但一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。
协议思想:发送帧之前,监听信道。
![image-20201226152458847](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201226152458847.png)
坚持CSMA
坚持指的是对于监听信道忙之后的坚持。
坚持CSMA思想:
- 如果一个主机要发送消息,那么它先监听信道。
- 空闲则直接传输,不必等待。
- 忙则一直监听,直到空闲马上传输。
- 如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
非坚持CSMA
非坚持指的是对于监听信道忙之后就不继续监听。
非坚持CSMA思想
- 如果一个主机要发送消息,那么它先监听信道。
- 空闲则直接传输,不必等待。
- 忙则等待一个随机的时间之后再进行监听。
优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
p-坚持CSMA
p-坚持指的是对于监听信道空闲的处理。
p-坚持CSMA思想
- 如果一个主机要发送消息,那么它先监听信道。
- 空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输。
- 忙则等待一个随机的时间之后再进行监听。
优点:既能像非坚持算法那样减少冲突,又能像1一坚持算法那样减少媒体空闲时间的这种方案。
缺点:发生冲突后还是要坚持把数据帧发送完,造成了浪费。
对比总结
![image-20201226154743369](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201226154743369.png)
CSMA/CD协议
CSMA/CD协议
**载波监听多点接入/碰撞检测CSMA/CD (carrier sense multiple access with collision detection) **
CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。总线型网络
CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。半双工网络
传播时延对载波监听的影响
![image-20201226181300583](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201226181300583.png)
最迟多久能知道自己发送的数据没和别人碰撞
只要经过2τ的时间还没有检测到碰撞,就能肯定这次发送不会发生碰撞。
如何确定碰撞后的重传时机
使用截断二进制指数规避算法
-
确定基本退避(推迟)时间为争用期2τ。
-
定义参数k,它等于重传次数,但k不超过10,即k=min[重传次数,10]。当重传次数不超过10时,k等于重传次数;当重传次数大于10时,k就不再增大而一直等于10。
-
从离散的整数集合**[0,1,2k - 1]中随机取出一个数r,重传所需要退避的时间就是r倍的基本退避时间**,即2rτ。
-
当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。
优点:若连续多次发生冲突,就表明可能有较多的站参与争用信道。使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定。
最小帧长
最小帧长 = 总线传播时延 x 数据传输速率 x 2
帧的传输时延至少要两倍于信号在总线中的传播时延。
![image-20201226183944184](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201226183944184.png)
以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧。
CSMA/CA协议
CSMA/CA协议
载波监听多点接入/碰撞避免CSMA/CA (carrier sense multiple access with collision avoidance)
产生背景
![image-20201226184631025](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201226184631025.png)
工作原理
- 发送数据前,先检测信道是否空闲。
- 空闲则发出RTS (request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。
- 接收端收到RTS后,将响应CTS (clear to send)。
- 发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。
- 接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧。
- 发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。
CSMA/CD和CSMA/CA比较
相同点
CSMA/CD与CSMA/CA机制都从属于CSMA的思路,其核心是先听再说。换言之,两个在接入信道之前都须要进行监听。当发现信道空闲后,才能进行接入。
不同点
- 传输介质不同:CSMA/CD用于总线式以太网【有线】,而CSMA/CA用于无线局域网【无线】。
- 载波检测方式不同:因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、 载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。
- CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有上限的重传。
轮询访问介质访问控制
轮询协议
轮询协议
主节点轮流”邀请“从属节点发送数据。
存在问题:轮询开销、等待延迟、单点故障
![image-20201226174130408](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201226174130408.png)
令牌传递协议
令牌传递协议
令牌:一个特殊格式的MAC控制帧,不含任何信息。
作用:控制信道的使用,确保同一时刻只有一个结点独占信道。
每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。
存在问题 :令牌开销、等待延迟、单点故障
应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。
采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
![image-20201226175028614](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201226175028614.png)
局域网
局域网
局域网(Local Area Network)
简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。
特点
- 覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。
- 使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(1OMb/s- lOGb/s)。
- 通信延迟时间短,误码率低,可靠性较高。
- 各站为平等关系,共享传输信道。
- 多采用分布式控制和广播式通信,能进行广播和组播。
决定局域网的主要要素为:网络拓扑,传输介质与介质访问控制方法。
4种拓扑结构
-
星型拓扑
- 优点
- 中心节点是控制中心,任意两个节点间的通信最多只需两步,传输速度快。
- 网络构形简单、建网容易、便于控制和管理。
- 缺点
- 但这种网络系统,网络可靠性低,网络共享能力差, 有单点故障问题。
- 优点
-
总线型拓扑(主流)
-
优点
-
网络可靠性高、网络节点间响应速度快、共享资源能力强。
-
设备投入量少、 成本低、安装使用方便。
-
当某个工作站节点出现故障时,对整个网络系统影响小。
-
-
-
环型拓扑
- 优点
- 系统中通信设备和线路比较节省。
- 缺点
- 有单点故障问题,由于环路是封闭的,所以 不便于扩充。
- 系统响应延时长,且信息传输效率相对较低。
- 优点
-
树形拓扑
- 易于拓展,易于隔离故障, 也容易有单点故障。
介质访问控制方法
- CSMA/CD
常用于总线型局域网,也用于树型网络。
- 令牌总线
常用于总线型局域网,也用于树型网络 它是把总线型或树’ci).网络中的各个工作站按一定顺序如按接口地址大小排列形成一 个逻辑环。只有令牌持有者才能控制总线,才有发送信息的权力。
- 令牌环
用于环形局域网,如令牌环网
局域网的分类
-
以太网(EtherNet)
以太网以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、 千兆以太网(1000 Mbps)和lOG以太网,它们都符合IEEE8O2.3系列标准规范。逻辑拓扑总线型,物理拓扑是星型或拓展星型。使用CSMA/CD。
-
令牌环网(Token Ring)
物理上采用了星形拓扑结构,逻辑上是环形拓扑结构,己是“明日黄花”。
-
FDDI网(Fiber Distributed Data Interface)
物理上采用了双环拓扑结构,逻辑上是环形拓扑结构。
-
ATM网(Asynchronous Transfer Mode)
较新型的单元交换技术,使用53字节固定长度的单元进行交换。
-
无线局域网(Wireless Local Area Network;WLAN)
采用IEEE 802.11标准。
IEEE 802标准
IEEE 802系列标准是IEEE 802 LAN/MAN标准委员会制定的局域网、城域网技术标准(1980年2月成立)。其 中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责。
链路层的两个控制子层
IEEE 802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层。
LLC子层:LLC负责识别网络层协议,然后对它们进行封装。LLC 报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理。为网络层提供服务:无确认无连接、 面向连接、带确认无连接、高速传送。
MAC子层:MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理, 帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性。
![image-20201227121226416](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227121226416.png)
以太网802.3
以太网
以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术。 以太网在局域网各种技术中占统治性地位。
优势
- 造价低廉(以太网网卜不到100块)
- 是应用最广泛的局域网技术
- 比令牌环网、ATM网便宜,简单
- 满足网络速率要求:10Mb/s~10Gb/s
两个标准
-
DIX Ethernet V2:第一个局域网产品(以太网)规约。
-
IEEE 802.3:IEEE 802委员会802.3工作组制定的第一个IEEE的以太网标准。(802.3局域网 AKA 也相当于以太网)
提供服务
==以太网只实现无差错接收,不实现可靠传输。 ==
无连接:发送方和接收方之间无“握手过程”。
不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。
传输介质和拓扑结构的发展
-
传输介质
-
拓扑结构
使用集线器的以太网在逻辑上仍是一个总线网, 各站共享逻辑上的总线,使用的还是CSMA/CD协议。
10BASE-T以太网
1OBASE-T是传送基带信号的双绞线以太网,T表示采用双绞线,现1OBASE-T采用的是无屏蔽双绞线 (UTP),传输速率是10Mb/s。
- 物理上采用星型拓扑,逻辑上总线型,每段双绞线最长为l00m。
- 采用曼彻斯特编码。
- 采用CSMA/CD介质访问控制。
适配器与MAC地址
适配器:计算机与外界有局域网的连接的通过通信适配器的。
![image-20201227171842956](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227171842956.png)
MAC地址:每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。常用6个十六进制数表示,如02-60-sc-e4-bl-21。 在局域网中,硬件地址又称为物理地址,或MAC地址。【实际上是标识符】
以太网MAC帧
最常用的MAC帧是以太网V2格式。
![image-20201227172738539](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227172738539.png)
与IEEE 802.3的区别:
1.第三个字段是长度/类型
2.当长度/类型字段值小于0x0600时,数据字段必须装入LLC子层。
高速以太网
速率l00Mb/s的以太网称为高速以太网。
-
100BASE-T以太网
在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE802.3的CSMA/CD协议。
支持全双工和半双工,可在全双工方式下工作而无冲突。
-
吉比特以太网
在光纤或双绞线上传送1Gb/s信号。
支持全双工和半双工,可在全双工方式下工作而无冲突。
-
10吉比特
10吉比特以太网在光纤上传送l0Gb/s信号。
只支持全双工,无争用问题。
无线局域网802.11
IEEE 802.11
IEEE 802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。
![image-20201227174803844](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227174803844.png)
802.11标准帧格式
标准帧格式:MAC帧头格式
![image-20201227182848622](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227182848622.png)
格式分类
![image-20201227183048971](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227183048971.png)
无线局域网的分类
-
有固定基础设施无线局域网
-
无固定基础设施无线局域网的自组织网络
广域网
概念
广域网(WAN, Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网((Internet) 是世界范围内最大的广域网。
![image-20201227184325597](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227184325597.png)
广域网常用链路层协议
- PPP协议
- HDLC协议
PPP协议
特点
点对点协议PPP (Point-to-Point Protocol)是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。 只支持全双工链路。
协议应满足要求
- 简单:对于链路层的帧,无需纠错,无需序号,无需流量控制。
- 封装成帧:帧定界符
- 透明传输:与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充。
- 多种网络层协议:封装的’P数据报可以采用多种协议。
- 多种类型链路:串行/并行,同步/异步,电/光 等。
- 差错检测:错就丢弃。
- 检测连接状态:链路是否正常工作。
- 最大传送单元:数据部分最大长度MTU。
- 网络层地址协商:知道通信双方的网络层地址。
- 数据压缩协商:发送时需要把数据进行压缩。
协议无需满足要求
- 纠错
- 流量控制
- 序号
- 不支持多点线路
三个组成部分(需实现功能)
- 一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。
- 链路控制协议LCP:建立并维护数据链路连接,实现身份验证功能。
- 网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。
协议状态图
![image-20201227190525364](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227190525364.png)
协议的帧格式
![image-20201227190749315](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227190749315.png)
HDLC协议
概念
高级数据链路控制(High-Level Data Link Control或简称H D LC),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(SynchronousData Link Control)协议扩展开发而成的。数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现。采用全双工通信。
所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高。
HDLC的站
主站:主要功能是发送命令(包括数据信息)帧、接收响应帧,并负责对整个链路的控制系统的初启、流程的控制、差错检测或恢复等。
从站:主要功能是接收由主站发来的命令帧,向主站发送响应帧,并且配合主站参与差错恢复等链路控制。
复合站:主要功能是既能发送,又能接收命令帧和响应帧,并且负责整个链路的控制。
三种数据操作方式
1.正常响应方式
2.异步平衡方式
3.异步响应方式
HDLC帧格式
- 信息帧:(I)第1位为0,用来传输数据信息,或使用捎带技术对数据进行确认。
- 监督帧:(S) 10,用于流量控制和差错控制,执行对信息帧的确认、请求重发和请求暂停发送等功能。
- 无编号帧:(U) 11,用于提供对链路的建立、拆除等多种控制功能。
![image-20201227192303514](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227192303514.png)
PPP协议 VS HDLC协议
相同点
- HDLC、PPP都只支持全双工链路。
- 都可以实现透明传输。
- 都可以实现差错检测,但不纠正差错。
不同点
- 帧格式:PPP面向字节,HDLC面向比特
- 协议字段:PPP有2个字节,HDLC没有
- 编号与确认机制:PPP没有,HDLC有
- 传输可靠性:PPP不可靠,HDLC可靠(HDLC少用主要是避免资源浪费,减低传输延迟)
链路层设备
物理层扩展以太网
光纤
使用光纤
![image-20201227195720864](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227195720864.png)
主干集线器
使用集线器
好处:① 跨域通信,② 扩大以太网覆盖的地理范围
缺点:通信效率变低、发生冲突概率变高
![image-20201227200148106](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227200148106.png)
优化:使用链路层扩展以太网
链路层扩展以太网
网桥
作用
网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。
![image-20201227223026433](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227223026433.png)
网段:一般指一个计算机网络中使用同一物理层设备 (传输介质,中继器,集线器等)能够直接通讯的那一部分。
优点
- 过滤通信量,增大吞吐量。
- 扩大了物理范围。
- 提高了可靠性。
- 可互连不同物理层、不同MAC子层和不同速率的以太网。
分类
-
透明网桥:“透明”指以太网上的站点并不知道所发送的帧将经过哪几个网桥,是一种即插即用设备一一 自学习。
-
源路由网桥:在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中。
方法:源站以广播方式向欲通信的目的站发送一个发现帧。
交换机
多接口网桥–以太网交换机
![image-20201227225140714](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227225140714.png)
两种交换方式
-
直通式交换机
-
查完目的地址(6B)就立刻转发。
-
优点:延迟小
-
缺点:可靠性低,无法支持具有不同速率的端口的交换。
-
-
存储转发式交换机
- 将帧放入高速缓存,并检查否正确,正确则转发,错误则丢弃。
- 优点:可靠性高,可以支持具有不同速率的端口的交换。
- 缺点:延迟大
冲突域和广播域
概念
冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。 简单的说就是同一时间内只能有一台设备发送信息的范围。
广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备 范围称为一个广播域。
![image-20201227230154460](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227230154460.png)
练习
![image-20201227230334052](https://gitee.com/Dky505/cloud-images/raw/master/img/image-20201227230334052.png)