无错误信道下的单工停等协议
停等协议是一种数据链路层协议,用于在无噪声信道上传输帧。它提供单向数据传输和流量控制功能,但不提供错误控制功能。
该协议考虑了接收器具有有限处理速度的事实。如果数据帧到达接收器端的速率大于其处理速率,则帧可能会丢失。为了避免这种情况,接收器在每个帧到达时发送一个确认。发送方只有在收到接收方发来的肯定确认后,才发送下一个帧,确认接收方已准备好进一步处理数据。
设计
发送端:发送端的数据链路层等待网络层的数据包。然后检查是否可以发送帧。如果从物理层收到肯定通知,则将数据打包成帧并发送。然后等待确认,然后再发送下一帧。
接收端:接收端的数据链路层等待帧到达。当帧到达时,接收器处理它并将其传递给网络层。然后将确认发送回发送方。

无噪声信道下单工停等协议的发送端算法
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流程图
下面的流程图描述了通过无噪声信道的单工停等协议进行通信的过程。

广告
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP