计算机网络-第三章
数据链路层
文章目录
数据链路层基本概念
- 结点:主机,路由器
- 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线,光纤,微波,分为有线链路,无线链路
- 数据链路:网络中两个结点的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路
- 帧:链路层的协议数据单元,封装网络层数据报
- 数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报
数据链路层功能概述
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标网络层。其主要作用是加强物理层传输原始比特流功能,将物理层提供的可能出错的物理连接改造成逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路
- 为网络层提供服务,无确认无连接服务,有确定无连接服务,有确定面向连接服务有连接一定有确认
- 链路管理。即连接的建立,维持,释放
- 组帧
- 流量控制,限制发送方
- 无差错控制(帧错/位错)
封装成帧
封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧,接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流识别帧的开始和结束
帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止
组帧的四种方法:1.字符计数法 2.字符填充法 3.零比特填充法 4.违规编码法
1. 字符计数法
帧首部使用一个字数字段(第一个字节,八位),来标识帧内字符数
2.字符填充法
- 当传送的帧是由文本文件组成时(都是ASCII),不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输
- 当传送的帧是由非ASII码的文本文件组成时,就要采用字符填充方法实现透明传输
3.零比特填充法
- 在发送端,扫描整个信息段,只要连续5个1,就立即填入1个0
- 在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描,连续5个1时,把后面的0删除
保证了透明传输:在传送的比特流中可以任意比特组合,而不会引起对帧边界的判断错误
4.违规编码法
- 高-低 :1 低-高:0
- 高-高,低-低来定界帧的起始和终止
- 目前普通使用帧同步法时比特填充和违规编码法
透明传输
透明传输指不管所传数据是怎么样的比特组合,都应当能够在链路上传送
差错控制
差错从何而来
-
全局性:线路本身电气特性所产生的随机噪声,信道固有,随机存在(解决办法:提高信噪比来减少或避免干扰。(对传感器下手)
-
局部性:外界特定的短暂原因造成的冲击噪声,是产生差错的主要原因
解决办法:通常利用编码技术解决
差错
位错:1变成0,0变成1
帧错:丢失,重复,失序
链路层为网络层提供服务,通信质量好,有线传输链路
通信质量差,无线传输链路
差错控制
检错编码
奇偶校验码
循环冗余码CRC
纠错编码 k+r+1<=2的r次方 满足偶校验
流量控制和可靠传输机制
流量控制
数据链路层流量控制手段:接收方收不下就不回复确认
传输层流量控制手段:接收端给发送端一个窗口公告
方法
-
停止-等待协议:每发送完一个帧就停止发送,等待对方确认,在收到确认后在发送下一个帧
-
发送窗口1,接收窗口1
-
窗口滑动协议:
-
退后N帧协议(GBN)
发送窗口>1,接收窗口1
选择重传协议(SR)
发送窗口>1,接收窗口>1
-
可靠传输:发送端发啥,接收端接收啥
-
流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一个帧
-
滑动窗口解决:
流量控制(收不下就不给确认,想发也发不了)
可靠传输(发送方自动重传)
停止-等待协议
- 为什么有停止-等待协议:
除了比特出差错,底层信道还会出现丢包问题(丢包:物理线路故障,设备故障,病毒攻击,路由信息错误等原因,导致数据包丢失)
为了实现流量控制
- 研究停止等待协议的前提
每发送完一个帧就停止发送,等待对方确认,在收到确认后在发送下一个帧
- 应用情况
有差错和无差错
有差错情况
- 数据帧丢失或检测到帧出错
超时计时器:每发送一个帧就启动一个计时器,其设置的重传时间比应当比帧传输的平均RTT更长一些
注意:
发送完一个帧后,必须保留它的副本
数据帧和确认帧必须编号
- ACK丢失
- ACK迟到
- 信道利用率太低
- 信道利用率U=Td(发送的时间)/(Td+RTT+Ta)S
- 信道利用率=(L/C)/T LT内发送的比特数 C发送方数据传输率 T发送周期
- 信道利用率:发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率
- 信道吞吐率=信道利用率*发送方的发送速率
后退N帧协议(GBN)
发送窗口:发送维持一组连续的允许发送的帧的序号
接收窗口:接收维持一组连续的允许接收帧的序号
- 上层的调用
发送方检查发送窗口,未满,则产生一个帧并将其发送,如果窗口已满,发送方只需要将数据返回给上层
-
收到了一个ACK
GBN协议中,对n号帧的确认采用**累计确认**的方式,标明接收方已经收到n号帧和它之前的全部帧
-
超时事件
如果发生超时,发送方重传所有已发送但未被确认的帧
滑动窗口长度
窗口尺寸W
1<=W<=2的n次方-1
GBN协议重点总结
1.累计确认(偶尔捎带确认)
2.接收方只按顺序接收帧,不按序无情丢掉帧
3.确认序列号最大的,按序到达的帧
3.发送窗口最大为2的n次方-1
最大平均速率=(发送窗口*数据帧长)/(RTT+发送的时间)
GBN协议性能分析
- 连续发送数据帧提高了信道的利用率
- 重传时必须把原来已经正确传送的数据帧重传,传送效率降低
选择重传协议
- 上层的调用
从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧,否则,就像GBN一样,要么数据缓存,要么返回给上一层后在传输
-
收到了一个ACK
如果收到了ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接受,如果序号是窗口的下界,则窗口向前移动到具有最小序号的未确认帧处,如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧
-
超时事件
每个帧都有自己的定时器,一个超时事件发生后只重传一个帧
SR接收方要做的事
来者不拒(窗口内的帧)
滑动窗口的长度
Wtmax=Wrmax=2的n-1次方
SR协议重点总结
1.对数据帧逐一确认,收一个确认一个
2.只重传出错帧
3.接收方有缓存
3.发送(接收)窗口最大为2的n-1次方
传送数据使用的两种链路
点对点链路
两个相邻点通过一个链路相连,没有第三者
应用:PPP协议,常用于广域网
广播式链路
所有主机共享通信介质
应用:早期的总线以太网,无线局域网,常用于局域网
典型拓扑结构:总线型,星型
介质访问控制
- 采取一定措施,使得两对节点之间的通信不会发生互相干扰的情况
静态划分信道
信道划分介质访问控制
频分多路复用(FDM)
并行
- 频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源
- 充分利用传输介质带宽,系统利用率较高,较容易实现
时分多路复用(TDM)
并发
- 每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道
波分多路复用(WDM)
- 光的频分多路复用
码分多路复用(CDM)
- 码分多址是码分复用的一种形式
动态分配信道
(动态媒体接入控制/多点接入)
特点:信道并非用户通信时固定分配给用户
轮询访问介质访问控制
令牌传递协议
随机访问介质访问控制
所有用户皆可随机发布信息,发送信息时占用全部带宽
ALOHA协议(不听就说)
- 纯ALOHA协议
想发就发
如何检测冲突
如果发生冲突,接收方在就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突
冲突如何解决
超时后等一随机时间再重传
- 间隙ALOHA协议
把时间片分成若干个相同的时间片,若发生冲突,必须等待下一个时间片(控制想发就发的随意性
CSMA协议(先听再说)
-
CS:载波侦听/监听,每一个站在发送数据之前检测一下总线上是否有其他计算机在发送数据
电压摆动值,当有两个或两个以上的数据在发送,会产生碰撞,即发生了冲突
-
**MA:**多点接入,表示许多计算机以多点接入的方式连接在一根总线上
-
**协议思想:**发送帧之前,监听信道
-
监听结果
-
信道空闲:发送完整帧
信道忙:推迟发送
1-坚持CSMA
坚持指的是对于监听信道忙之后的坚持
1-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道
空闲则直接传输,不必等待
忙则一直监听,直到空闲马上传输
如果有冲突(一段时间内未收到肯定回复),则等待一个随机上的时间再监听,重复上述过程
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失
缺点:假如两个或两个以上的站点有数据要发送,冲突就不可避免
非坚持CSMA
非坚持指的是对于监听信道忙之后就不再继续监听
非坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道
空闲则直接传输,不必等待
忙则等待一个随机的时间之后再进行监听
优点:采用随机的重发延迟时间可以减少冲突发生的可能性
缺点:可能存在大家都再延迟等待过程,使得媒体仍可能处于空闲状态,媒体使用率降低
p-坚持CSMA
p-坚持指的是对于监听信道空闲之后的坚持
1-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道
空闲则以p概率直接传输,不必等待;概率1-p等待下一个时间槽再传输
忙则一直监听,直到空闲再以p概率传输
如果有冲突(一段时间内未收到肯定回复),则等到下一个时间槽开始再监听重复上述过程
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失
缺点:假如两个或两个以上的站点有数据要发送,冲突就不可避免
CSMA/CD协议(先听再说,边听边说)
- 信道划分介质访问控制:将使用的每个设备与来自同一信道的其他设备的通信隔离开,把时域和频域合理地分配给网络上的设备
- 多路复用技术:把多个信号组合在一条物理信道上传输,使得多个计算机或终端设备共享信道资源,提高利用率
- 实际上就是把广播信道转变成点对点