停止等待协议与死锁处理

需积分: 15 2 下载量 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`的情况下,信道利用率可以计算出来,但往往因为等待时间的存在而较低。 死锁现象是网络通信中需要特别关注的问题,通过设立超时计时器和使用序列号,可以有效地解决数据丢失和重复帧的问题,从而提高协议的可靠性和效率。同时,通过更复杂的流量控制和差错控制策略,如滑动窗口协议,可以进一步提高信道利用率和系统性能。