计算机网络之数据链路层

数据链路层设计要点

一.需要考虑的问题:
1.提供给上层即网络层什么样的服务
2.介质访问控制(MAC,下一章内容)
3.生成帧(Frame)
4.差错控制(Error Control)
5.流量控制(Flow Control
二.主要功能:
1.源节点(注意:没有使用术语源端)的数据链路层实体将其网络层数据按该层协议装配成帧,通过实际物理连接,透明的、无差错的传输到直接相邻(adjacent)的
2.目的节点的对等数据链路层实体,该实体检测后再提交帧中的数据给上层
三.相关术语
1.链路(Link):没有中间节点的点到点的物理线路,也称为物理链路
2.数据链路(Data Link): 链路及其上实现数据传输规程的软硬件的合称。(注意,由于一条链路可能存在多路复用,也即有多条数据链路,故也称为逻辑链路)(信道
3.链路管理(Link Management): 数据链路的建立、维持和释放
在这里插入图片描述
4.成帧(Framing): 让收/发双方知道帧中何处是数据,何处是控制信息,以及便于差错控制等,将按一定格式将上层数据附加一些控制信息, 如源目的地址、长度、校验码等形成帧
5.帧同步(Frame Synchronization): 找到帧的开始结束位置。如使用面向比特/字节的同步方式
6.透明传输(Transparency Transmission): 即处理帧的数据部分出现与控制信息部分相同而发生误判的情况
7.寻址(Addressing): 当发送数据或要求重传时如何找到对方,是广播,组播还是单播等
8.差错控制: 如自动纠错、检错,重发等
9.流量控制: 设立缓冲区等

请添加图片描述

请添加图片描述

提供给上层的服务类型
有确认的传输效率更高点
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

透明传输
在这里插入图片描述
请添加图片描述
请添加图片描述
(位填充法是最主要的)

差错控制

为了向上层提供可靠的服务,数链层软件一般要使用以下手段
1.进行差错控制
2.提供确认
3.设置定时器,超时重传
4.进行帧编号

检错和纠错

一.差错的不可避免性
1.信道本身不可靠、信号的衰减、相互串扰等
2.外界干扰
误码率:出错的码元数/总码元数,LAN的标准误码率为10-9~10-11
二.差错控制编码
1.检错码,一般可靠的高速信道采用,如光纤通信,无线通信,卫星通信
2.纠错码,一般不可靠的低速信道采用,如无线通信
三.常见差错控制编码
奇偶校验码(检错)、循环冗余码CRC(检错)
水平垂直奇偶校验码(纠错)、海明校验(纠错)

流量控制

发送方的速度如果超过接收方的速度,则将会发生数据丢失,甚至导致接收方崩溃,因此在数链层一般采用基于反馈的流量控制机制(许可法)

基本数据链路协议

NaK否定性确认

一.理想协议(An Unrestricted Protocol)
特征:
1.发送及接收方的网络层时刻就绪
2.处理时间忽略
3.信道不会出错
二.停等协议(A Stop-and-Wait Protocol)
(停下来等确认)
特征:
1.发送及接收方的网络层时刻处于就绪
2.处理时间忽略
3.信道不会出错
4.协议要成功,则发送方的数据不能淹没接收方,也即需要得到确认或称为停等协议
三.有噪音的停等协议(A Stop-and-Wait Protocol for a Noisy Channel)
特征:
1.发送及接收方的网络层时刻处于就绪
2.处理时间忽略
3.信道不会出错
4.协议要成功,则首先需要确认或停等机制,其次需要解决噪音带来的问题
(有噪声的信道意味着帧将丢失或出错,两者都表示该帧未被正确接收
帧出错可通过校验得知,接收方只需发回一个否定确认帧然后发送方重传即可
但帧如果是丢失,如何解决?答曰:引入计时器
引入计时器是否完全解决问题?答曰:如果帧丢失或者确认帧丢失,计时器将被触发,从而警告发送方存在一个潜在的问题,一种解决方案就是重传,然而,当有的帧多次发送后,接收方可能多次收到同一帧,并将它多次传输给网络层。为了避免这种情形,一般有必要给发出去的帧分配序号,这样接收方可以根据帧的序号来区分原始帧和重传帧。
帧编号需要多少位?答曰:一个比特位)

滑动窗口协议

1.一位滑动窗口协议
(只要收到一帧,则必须送回一帧;加星号的表明被提交给网络层)
2.多位滑动窗口协议
3.退回N帧重发
4.选择性重发

说明:
发送方一次可发送多个帧而不需等待接收方每一个确认的机制
发送方 :
Sending window(发送窗口):发送方可连续发送,不需得到确认的一组帧的序号集合。显然,发送窗口是帧序号集合空间的一个子集
Sending window size: 发送窗口中帧的个数
The lower edge of the S-window(发送窗口后沿或下界):最早发送但还未收到确认的帧序号。如果收到确认帧,则后沿向前移动(+1)
The upper edge of the S-window(发送窗口前沿或上届):最晚发送但还未收到确认的帧序号+1。如果网络层此时有数据要发送,且当前窗口未达到最大尺寸,则可放进发送窗口,前沿向前移动

请添加图片描述

接收方:
接收窗口:接收方允许接收的帧序号集合
接收窗口尺寸:接收窗口中帧的个数
接收窗口后沿:最早准备接收但还未收到的帧序号
接收窗口前沿:最晚准备接收但还未收到的帧序号+1
注意:接收窗口尺寸总是保持最初的大小,也即,接收窗口将整体移动

请添加图片描述

多位滑动窗口协议

a.发送窗口大于1,接收窗口可以大于或等于1
b.接收方收到的帧必须落在接收窗口内,否则丢弃
c.如果接收窗口尺寸为1,则说明只能顺序接收
d.如果接收窗口尺寸大于1
1.收到的帧序号为后沿,且校验正确,则处理后提交给上层、返回确认帧、整体向前移动接收窗口
2.帧序号不是窗口后沿,但落在接收窗口内,且校验正确,则按商定的重发方式要么缓存、返回确认帧,直至后沿帧到达后一并顺序提交,并整体移动接收窗口;要么直接丢弃

请添加图片描述

请添加图片描述

说明:
1.接收方提交给上层的数据总是顺序的,与窗口尺寸无关
2.发送和接收窗口尺寸不一定相等,在某些实现中,两者的大小动态可变(如接收方CPU忙,则可置当前接收窗口为1或0,通知发送方降低发送速度)
思考:
对于滑窗机制,是否一次发送未经确认的帧越多越好?
如何提高确认的效率?(最后帧确认,捎带确认)

退回N帧重发

a.退回N帧重发说明
一般最大发送窗口为N,接收窗口为1
最大发送窗口尺寸:2^n -1
b.选择性重发协议说明
一般最大发送窗口为N,接收窗口也等于N
(NAK:加快重发过程)
最大发送窗口尺寸:2^(n-1) 。为什么?
两者对比:带宽与缓存的权衡问题

请添加图片描述

令序号空间3b,最多可发送0~7帧;
发送方依次发送第0~7帧;
接收方依次收到,且依次发回确认帧,则当前应准备接收第0帧;
假设所有确认帧都丢失,最终将导致发送方依次超时,重新依次发送第0~7帧,依次落在接收方窗口中。出错!
考虑最多能发送0~6帧;

选择性重发

请添加图片描述
请添加图片描述

数链层协议实例

一.HDLC – High-Level Data Link Control
Cisco路由器缺省的数链层协议
二.Internet上的数据链路层协议
1.串行线路SLIP (Serial Line Internet Protocol)
2.PPP (Point-to-Point Protocol)
(说明:点到点协议,广泛的应用于用户接入(用户到路由器)以及骨干网中点到点的连接(路由器到路由器),具有差错控制、通信协商、多协议支持、身份验证等特点。
用户接入Internet的方式有拨号、专线和网对网方式 (下章讲述)
SLIP/PPP 则用于前两种方式中:
如:家庭计算机通过拨号成为Internet上的一台主机)

PPP

一.PPP协议簇组成
1.链路控制协议LCP(Link Control Protocol)-用于启动、测试及关闭线路,协商线路参数
2.网络控制协议NCP(Network control Protocol)-用于支持不同的网络层如:IP、IPX、 AppleTalk等

请添加图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值