《计算机网络》期末复习——第三章:数据链路层

🛩️🛩️🛩️ 快期末考试了,再不复习就寄了。

🛩️🛩️🛩️希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流!

✈️✈️✈️动动你们发财的小手,点点关注点点赞!在此谢过啦!哈哈哈!😛😛😛

目录

 一、数据链路层的设计问题

1.1 提供给网络层的服务

1.1.1 无确认的无连接服务 

1.1.2 有确认的无连接服务 

1.1.3 有确认的面向连接的服务 

1.2 成帧 

1.2.1 字节计数法 

1.2.2  字节填充的标志字节法

1.2.3 位填充的标志位法 

1.2.4 物理层编码违例法 

1.3 错误控制 

1.4 流量控制 

三、简单的数据链路层协议 

 3.1 乌托邦式的单工协议(协议1)

 3.2 无错误信道上的单工停一等协议(协议2)

3.3  有错误信道上的单工停一等协议(协议3)

 四、提高效率

4.1  双向传输,多帧在途

4.1.1 双向传输:捎带确认 

 4.1.2 滑动窗口

4.2  全双工、滑动窗口协议示例

4.2.1 1位滑动窗口协议(协议4)

4.2.2  回退N协议(协议5)

4.2.3 选择重传协议(协议6) 


 一、数据链路层的设计问题

数据链路层的功能:提供给网络层的服务、成帧、错误控制、流量控制。

注:本章学习的许多原理(如错误控制、流量 控制等)也适用于传输层协议和其他层协议。

1.1 提供给网络层的服务

提供了三种基本服务:

  • 无确认的无连接服务
  • 有确认的无连接服务
  • 有确认的面向连接的服务 

1.1.1 无确认的无连接服务 

源主机向目的主机发送独立的帧,而目的主机对收到的帧不进行确认。

  • 不存在逻辑连接的建立和释放的过程
  • 数据链路层对丢失的帧不作恢复工作

适用于:

  • 误码率很低的场合,如以太网
  • 实时通信,如视频传输或语音 

1.1.2 有确认的无连接服务 

对发送的每一帧进行确认,让发送方知道帧是否安全到达。

  • 不存在逻辑连接的建立和释放的过程
  • 可提高可靠性

适用于:

  • 不可靠信道,如无线系统。 

1.1.3 有确认的面向连接的服务 

  • 源主机和目的主机在传输数据前,先建立连接。
  • 在该连接上发送的每一帧都进行编号,数据链路层保证所发的每一帧都被真正接收到,而且保证每帧都接收一次,并且所有帧按顺序接收。
  • 数据传输结束后,释放连接。

适用于:

  • 长距离且不可靠的线路。如卫星信道或长途电话电路。 

1.2 成帧 

什么是成帧?

  • 数据链路层把比特流分成离散的帧。

为什么要成帧?

  • 数据链路层接收的比特流可能有错误。
  • 错误检测/控制适用于块,而不是比特流。 

 成帧的方法:

  • 字节计数法
  • 字节填充的标志字节法
  • 位填充的标志位法
  • 物理层编码违例法

1.2.1 字节计数法 

在帧头部使用一个字段来标明帧中的字符数。

缺点:计数值有可能由于传输差错而被 “篡改”。 

1.2.2  字节填充的标志字节法

  • 每一帧以标志字节 FLAG 作为开头和结束分界符。
  • 在传输数据中出现 FLAG 时,在字符前插入一个特殊的转义字符( ESC ),字节填充。
  • 如果转义字符出现在传输数据中,则用一个转义字节来填充。

1.2.3 位填充的标志位法 

1.2.4 物理层编码违例法 

1.3 错误控制 

目的: 保证所有的帧都能正确的,并按正确的顺序 交付给目的主机的网络层。
采用的方法:
  • 向发送方提供有关接收情况的反馈信息,接收方收到数据帧后,判断是否错误,发确认帧或否认帧。
  • 发送方收到否认帧后,重传
发送方发送的数据帧在链路上完全丢失或其 确认帧丢失,可能会产生死锁
  • 引入定时器,超时重传
接收方发送的确认帧丢失,使发送方重发原 来的帧,接收方无法区别重复帧和新帧
  • 采用方法是对每个发送帧进行编号

1.4 流量控制 

目的: 解决发送方和接收方的速率、处理能力及缓冲 区数量不匹配问题。限制发送方所发出的数据流量,使其发送速率不要超过接收方能处理的速率。
常用的两种方法:
  • 基于反馈的流控制
  • 基于速率的流控制

三、简单的数据链路层协议 

  • 乌托邦式的单工协议(协议1)
  • 无错误信道上的单工停一等协议(协议2)
  • 有错误信道上的单工停一等协议(协议3)

 3.1 乌托邦式的单工协议(协议1)

 3.2 无错误信道上的单工停一等协议(协议2)

3.3  有错误信道上的单工停一等协议(协议3)

 四、提高效率

目标: 双向传输,多帧在途
  • 双向传输:捎带确认
  • 滑动窗口
全双工、滑动窗口协议示例
  • 1位滑动窗口协议(协议4)
  • 回退N协议(协议5)
  • 选择重传协议 (协议6)

4.1  双向传输,多帧在途

4.1.1 双向传输:捎带确认 

 4.1.2 滑动窗口

4.2  全双工、滑动窗口协议示例

4.2.1 1位滑动窗口协议(协议4)

4.2.2  回退N协议(协议5)

4.2.3 选择重传协议(协议6) 

  • 接收方的数据链路层存储坏帧后的所有正确帧,当发送方得知某个帧出错时,只是重传此坏帧,而不是所有的后继帧。
  • 在这个协议中,发送方和接收方都维持一个可接收序列号的窗口。
  • 接收窗口的大小>1,并为窗口中的每个序列号都提供一个缓冲区,每个缓冲区用一位判断其是否为空。
         当某一帧到达时,接收方检查其序列号,看其是否落在 窗口内。 如果落在窗口内且从未接收过,就接收并存储, 接收到的此帧保存在数据链路层,而不交给网络层,直 到比它序列号小的所有帧都按次序已交给了网络层,此 帧才能提交给网络层。

窗口大小选择 (N为表示序号的长度)


✨好啦,今天的分享就到这里!

🎉希望各位看官读完文章后,能够有所提升。

✨创作不易,还希望各位大佬支持一下!

👍点赞,你的认可是我创作的动力!

⭐收藏,你的青睐是我努力的方向!

✏️评论:你的意见是我进步的财富!

  • 53
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

..清风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值