4.2 停止等待协议
• 理想的链路:
• 链路很可靠,数据帧不会出错与丢失;
• 不管发送方以多快的速率发送,接收方都能 来得及接收而保证不丢失数据帧。
• 此时不需要链路层协议。 主机
节点A
主机
节点B
链帧帧路层
链路层
停止等待协议
不可靠的链路导致可能出现的情况:
• 数据帧出错(噪声干扰) • 数据帧不能到达(链路错误) • 接收溢出(结点差异) • 数据帧重复(链路阻塞)
• ⑻if (data_r=ACK) vs=1-vs ,goto ⑵ {正确}
• ⑼if (data_r=NAK) goto ⑷ {出错重传}
• ⑽if (time_out( )=1) goto ⑷ {超时重传}
停止等待协议接收算法
• ⑴vr←0 {接收序号初始化} • ⑵data_r=recive( ) • ⑶if (data_r=null) goto ⑵ {等待接收} • ⑷if CRC(data_r) send(NAK),data_r=null,
• 链路管理 链路的建立、维持与释放。
• 帧同步 保证接收方能从比特流中分离出数据帧
• 流量控制 协调发送方与接收方同步工作
• 差错控制 接收方能检验出有错误的帧,并采取相 应措施。
数据链路层功能
• 透明传输 数据链路层并不关心所传数据内容,按 一定规则能从帧中区分数据与控制信息。
• 寻址 在多点连接时保证帧被准确送达目的节 点。
数据链路层差错控制
解决“数据帧出错”方法:
• 可对欲发送的帧进行差错编码,接收方 通过差错校验,可判断出接收的数据帧 是否发生错误。如果接收错误,就向发 送方发送一出错标识帧,称为否认帧 NAK,通知发送方重新传送原数据帧。