无错误信道下的单工停等协议
停等协议是一种数据链路层协议,用于在无噪声信道上传输帧。它提供单向数据传输和流量控制功能,但不提供错误控制功能。
该协议考虑了接收器具有有限处理速度的事实。如果数据帧到达接收器端的速率大于其处理速率,则帧可能会丢失。为了避免这种情况,接收器在每个帧到达时发送一个确认。发送方只有在收到接收方发来的肯定确认后,才发送下一个帧,确认接收方已准备好进一步处理数据。
设计
发送端:发送端的数据链路层等待网络层的数据包。然后检查是否可以发送帧。如果从物理层收到肯定通知,则将数据打包成帧并发送。然后等待确认,然后再发送下一帧。
接收端:接收端的数据链路层等待帧到达。当帧到达时,接收器处理它并将其传递给网络层。然后将确认发送回发送方。
无噪声信道下单工停等协议的发送端算法
begin canSend = True; //Allow the first frame to be sent while (true) //check repeatedly do Wait_For_Event(); //wait for availability of packet if ( Event(Request_For_Transfer) AND canSend) then Get_Data_From_Network_Layer(); Make_Frame(); Send_Frame_To_Physical_Layer(); canSend = False; else if ( Event(Acknowledgement_Arrival)) then Receive_ACK(); canSend = True; end if end while end
无噪声信道下单工停等协议的接收端算法
begin while (true) //check repeatedly do Wait_For_Event(); //wait for arrival of frame if ( Event(Frame_Arrival) then Receive_Frame_From_Physical_Layer(); Extract_Data(); Deliver_Data_To_Network_Layer(); Send_ACK(); end if end while end
流程图
下面的流程图描述了通过无噪声信道的单工停等协议进行通信的过程。
广告