停止等待协议与死锁处理
需积分: 15 25 浏览量
更新于2024-08-14
收藏 358KB PPT 举报
"死锁现象-协议及技术"
在计算机网络技术中,数据链路层是负责在两个相邻节点间可靠传输数据的层次。这里主要讨论的是数据链路层中的差错控制和流量控制,以及如何处理死锁现象。死锁是由于数据帧丢失或应答帧丢失导致的一种状态,使得通信双方陷入无法继续传输数据的僵局。
3.4.1 最简单流量控制的停止等待协议
停止等待协议是最基础的流量控制策略,它确保发送方的速率不超过接收方的处理能力。在这种协议中,发送方发送一个数据帧后会进入等待状态,直到接收到接收方的确认应答才继续发送下一个数据帧。接收方在接收数据帧后立即发送应答信息。
然而,这种协议存在一个问题,即在某些情况下可能会发生死锁。
3.4.2 实用的停止等待协议ARQ (Automatic Repeat reQuest)
为了同时解决差错控制和流量控制,停止等待ARQ协议被引入。发送方在发送数据帧后等待应答帧,接收方通过CRC校验来确认数据帧是否无误。如果数据帧正确,接收方发送ACK;如果有误,发送NAK。但是,这个协议有两个主要缺陷:
缺陷1:数据帧丢失
如果数据帧在传输过程中丢失,发送方将无法收到应答,导致死锁。为解决这个问题,发送端设置了一个超时计时器,当发送完数据帧后开始计时。如果在预设的超时时间`tout`内没有收到应答,发送方会重传数据帧。
缺陷2:应答帧丢失,产生重复帧
如果应答帧丢失,根据超时重传机制,接收方可能会收到重复的数据帧。为防止这种情况,每个数据帧都会附加一个唯一的发送序号Ns。当接收方发现收到的序号与之前相同,它会丢弃重复帧并发送新的ACK。在ARQ协议中,由于只需要区分新旧数据帧,因此发送序号只需1位即可。
停止等待协议的信道利用率
尽管停止等待协议简单易行,但其信道利用率并不高。信道利用率`Cr`等于有效传输时间与总时间的比值,其中总时间包括传输时间和等待时间。在考虑单程传输时延`Td`,数据帧发送时间`Tf`,数据传输率`C`,以及数据帧长度`L`的情况下,信道利用率可以计算出来,但往往因为等待时间的存在而较低。
死锁现象是网络通信中需要特别关注的问题,通过设立超时计时器和使用序列号,可以有效地解决数据丢失和重复帧的问题,从而提高协议的可靠性和效率。同时,通过更复杂的流量控制和差错控制策略,如滑动窗口协议,可以进一步提高信道利用率和系统性能。
2023-12-15 上传
2023-04-22 上传
2024-04-05 上传
2021-04-05 上传
2014-05-03 上传
2021-10-29 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
小婉青青
- 粉丝: 26
- 资源: 2万+
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜