计算机网络part3数据链路层
3数据链路层
3.1数据链路层的功能概述
3.1.1数据链路层的研究思想
3.1.2数据链路层基本概念
结点:主机、路由器
链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤、和微波。分为有线链路、无线链路。
数据链路:网络中的两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
帧:链路层的协议数据单元,封装网络层数据报。
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
3.1.3数据链路层功能概述
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要功能是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。(有连接一定有确认)
功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
功能三:组帧。
功能四:流量控制。
功能五:差错控制(帧错/位错)。
3.2封装成帧&透明传输
3.2.1封装成帧
封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
首部和尾部都包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。
帧同步:接收方应当能从接收的二进制比特流中区分出来帧的起始和终止。
组帧的四种方法:1.字符计数法 2.字符(节)填充法 3.零比特填充法 4.违规编码法。
3.2.2透明传输
透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采用适当的措施,使接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
3.2.3字符计数法
帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。
痛点:鸡蛋装在一个篮子里了。
3.2.4字符填充法
-
当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCll码)。不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。
-
当传送的是由非ASCll码的文本文件组成时(二进制代码的程序的程序或图像等)。就要采用字符填充方法实现透明传输。
3.2.5零比特填充法
保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。
3.2.6违规编码法
由于曼彻斯特编码是高-低 ,低-高
可以用**“高—高”,“低—低”**来定界帧的起始和终止。
由于字节计数法Count字段的脆弱性(其值若有差错将导致灾难性后果)即字符填充实现上的复杂性和不兼容性,目前普遍使用的帧同步法是比特填充和违规编码法。
3.3差错控制(检错编码)
3.3.1差错从何而来
概括来说,传输中的差错都是由于噪声引起的。
全局性:1. 由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。
~~~~~~~~~~~~~ 解决方法:提高信噪比来减少或避免干扰。(对传感器下手)
局部性:2. 外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。
~~~~~~~~~~~~
解决方法;通常利用编码技术来解决。
3.3.2数据链路层的差错控制
数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特。它通过冗余的技术实现一组二进制比特串在传输过程中是否出现了差错。
3.3.3检错编码——奇偶校验码
~~~~~~~~~~~~~~~~~ 奇校验码 x… “1”的个数为奇数
奇偶校验码
(n-1为信息元,1位校验元)
~~~~~~~~~~~~~~~~~ 偶校验码 x… "1"的个数为偶数
奇偶校验码特点:
~~~~~~~~~ 只能检查出奇数个比特错误,检错能力为50%。
3.3.4检错编码——CRC循环冗余码
在数据链路层仅仅使用循环冗余码检验CRC差错检测技术,只能做到对帧的无差错接收,即“凡是接收端数据链路层接受的帧,我们都能以非常接近于1的概率认为这些在传输过程中没有产生差错”。接收端丢弃的帧虽然曾收到了,但是最终还是因为有差错被丢弃。“凡是接收端数据链路层接收的帧均无差错”。
“可靠传输”:数据链路层发送端发送什么,接收端就收到什么。
链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。
3.3.5纠错编码——海明码
海明码:发现双比特错,纠正单比特错。
工作原理:牵一发而动全身
3.3.6思维导图
3.4流量控制与可靠传输机制
3.4.1数据报链路层的流量控制
较高的发送速度和较低的接收能力不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。
数据链路层流量控制手段:接收方收不下就不回复确认。
传输层流量控制手段:接收端给发送端一个窗口公告。
3.4.2流量控制的方法
停止-等待协议
每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧
滑动窗口协议
3.4.3可靠传输、滑动窗口、流量控制
可靠传输:发送端发啥,接收端收啥
流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一个帧。
滑动窗口解决
3.4.4思维导图
3.5停止-等待协议
3.5.1停止-等待协议究竟是哪一层的
3.5.2停止-等待协议
-
为什么要有停止-等待协议?
除了比特出差错,底层通道还会出现丢包问题。为了实现流量控制。
-
研究停等协议的前提?
虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接受方)。
因为是在讨论可靠传输的原理,所以并不考虑是在哪一个层次上传送的。
“停止-等待”就是把每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。
-
停等协议有几种应用情况?
无差错情况&有差错情况
3.5.3停等协议——无差错情况
3.5.4停等协议——有差错情况
-
数据帧丢失或检测到帧出错
-
ACK丢失
-
ACK迟到
3.5.5停等协议性能分析
优点:简单
缺点:信道利用率太低
3.5.6信道利用率
发送方在一个发送周期内,有效的发送数据所需要的时间占整个发送周期的比率。
信道利用率=(L/C)/T
T内发送L比特数据 发送方数据传输率 发送周期
信道吞吐率=信道利用率*发送方的发送速率
3.5.7思维导图
3.6选择重传协议
3.6.1 GBN协议的弊端
累计确认—>批量重传
3.6.2选择重传协议中的滑动窗口
3.6.3 SR发送方必须响应的三件事
-
上层的调用
从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
-
收到了一个ACK
~~~~~~~~ 如果收到ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。
-
超时事件
每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
3.6.4 SR接收方要做的事
来者不拒(窗口内的帧)
SR接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收谁确认谁】,直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。
如果收到了窗口序号外(小于窗口下界)的帧,就返回一个ACK。其他情况,就忽略该帧。
3.6.5 滑动窗口长度
发送窗口最好等于接收窗口(大了会溢出,小了没意义)
3.6.6 SR协议重点总结
- 对数据帧逐一确认,收一个确认一个。
- 只重传出错帧
- 接收方有缓存
- 最大的发送窗口=最大的接收窗口
3.6.7 习题1
3.6.8 思维导图
3.7 后退N帧协议(GBN)
3.7.1 停等协议的弊端
利用率不高
- 必须增加序号范围
- 发送方需要缓存多个分组
3.7.2 后退N帧协议中的滑动窗口
发送窗口:发送方维持一组连续的允许发送的帧的序号。
接收窗口:接收方维持的一组连续的允许接收帧的序号。
3.7.3 GBN发送方必须响应的三件事
-
上层的调用
上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际现实中,发送方可以缓存这些数据,窗口不满时再发送帧)。
-
收到了了一个ACK
GBN协议中,对n号帧的确认采用累计确认的方式,标明接收方已经收到n号帧和它之前的全部帧。
-
超时事件
协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。
3.7.4 GBN接收方要做的事
3.7.5 滑动窗口的长度
3.7.6 GBN协议重点总结
- 累计确认(偶尔捎带确认)
- 接收方只按顺序接收帧,不按序无情丢弃
- 确认序列号最大的、按序到达的帧
- 发送窗口最大为2^n-1,接收窗口大小为1
3.7.8 习题
3.7.9 GBN协议性能分析
优点:因连续发送而提高了信道利用率
缺点:在重传时必须把原来已经正确传送的数据帧重传,使传送效率降低。
3.7.10 思维导图
3.8 信道划分介质访问控制
3.8.1 传输数据使用的两种链路
3.8.2 介质访问控制
静态划分就是在传输前划分完
动态划分就是在传输时发生冲突进行处理
3.8.3信道划分介质访问控制
3.8.4 频分多路复用
3.8.5 时分多路复用
3.8.6 改进的时分复用——统计时分复用STDM
3.8.7 波分多路复用WDM
3.8.8 码分多路复用CDM
3.8.9 思维导图
3.9 ALOHA协议
3.9.1 介质访问控制
3.9.2 ALOHA协议
3.9.3 纯ALOHA协议
3.9.4 时隙ALOHA协议
3.9.5 关于ALOHA要知道的事
3.10 CSMA 协议
3.10.1 CSMA协议
3.10.2 1-坚持CSMA
3.10.3 非坚持CSMA
3.10.4 p-坚持CSMA
3.10.5 三种CSMA对比总结
3.11轮询访问介质访问控制
3.11.1 介质访问控制
3.11.2 轮询协议
3.11.3 令牌传递协议
3.11.4 MAC协议总结
3.12 CSMA/CA协议
3.12.1 CSMA/CA协议
3.12.2 CSMA/CA协议工作原理
3.12.3 CSMA/CD与CSMA/CA
3.13 局域网基本概念和体系结构
3.13.1 局域网
局域网简称LAN,是在某一区域内由多台计算机互联成的计算机组,使用广播信道。
决定局域网的主要因素:网络拓扑,传输介质与介质访问控制方法、
3.13.2 局域网拓扑结构
总线型优势较大,且造价并不是很高,因此现在我们的局域网常用的拓扑结构
3.13.3 局域网传输介质
3.13.4 局域网介质访问控制方法
3.13.5 局域网的分类
3.13.6 IEEE 802标准
3.13.7 MAC子层和LIC子层
3.13.8 思维导图
3.14 以太网
3.14.1以太网概述
3.14.2以太网提供无连接、不可靠的服务
3.14.3以太网传输介质与拓扑结构的发展
3.14.4 10BASE-T以太网
3.14.5 适配器与MAC地址
3.14.6 以太网MAC帧
3.14.7 高速以太网
3.14.8 思维导图
3.15 IEEE 802.11无线局域网
3.15.1 IEEE 802.11
3.15.2 802.11的MAC帧头格式
3.15.3无线局域网的分类
- 有固定基础设施无线局域网
- 无固定基础设施无线局域网的自组织网络