無錯誤通道下的單工停等協議


停等協議是一種資料鏈路層協議,用於在無噪聲通道上傳輸幀。它提供單向資料傳輸和流量控制功能,但不提供錯誤控制功能。

該協議考慮了接收器具有有限處理速度的事實。如果資料幀到達接收器端的速率大於其處理速率,則幀可能會丟失。為了避免這種情況,接收器在每個幀到達時傳送一個確認。傳送方只有在收到接收方發來的肯定確認後,才傳送下一個幀,確認接收方已準備好進一步處理資料。

設計

  • 傳送端:傳送端的資料鏈路層等待網路層的資料包。然後檢查是否可以傳送幀。如果從物理層收到肯定通知,則將資料打包成幀併發送。然後等待確認,然後再發送下一幀。

  • 接收端:接收端的資料鏈路層等待幀到達。當幀到達時,接收器處理它並將其傳遞給網路層。然後將確認傳送回傳送方。

無噪聲通道下單工停等協議的傳送端演算法

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+ 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告