无错误信道下的单工停等协议


停等协议是一种数据链路层协议,用于在无噪声信道上传输帧。它提供单向数据传输和流量控制功能,但不提供错误控制功能。

该协议考虑了接收器具有有限处理速度的事实。如果数据帧到达接收器端的速率大于其处理速率,则帧可能会丢失。为了避免这种情况,接收器在每个帧到达时发送一个确认。发送方只有在收到接收方发来的肯定确认后,才发送下一个帧,确认接收方已准备好进一步处理数据。

设计

  • 发送端:发送端的数据链路层等待网络层的数据包。然后检查是否可以发送帧。如果从物理层收到肯定通知,则将数据打包成帧并发送。然后等待确认,然后再发送下一帧。

  • 接收端:接收端的数据链路层等待帧到达。当帧到达时,接收器处理它并将其传递给网络层。然后将确认发送回发送方。

无噪声信道下单工停等协议的发送端算法

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

流程图

下面的流程图描述了通过无噪声信道的单工停等协议进行通信的过程。

更新于:2019年7月30日

11K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告