目录
1 停止-等待协议(Stop-and-Wait Protocol)
2 滑动窗口协议(Sliding Window Protocol)
1 停止-等待协议(Stop-and-Wait Protocol)
停止-等待协议是一种简单的数据链路层协议,通常用于串行通信和无线通信等不太稳定的环境中。
工作原理:
发送方发送一帧(通常是数据包)给接收方,并等待接收方的确认。
接收方收到帧后,检查帧是否正确,如果正确,则发送确认(ACK)给发送方。
发送方在收到确认后,才能发送下一帧。
停止-等待协议的特点:
简单易实现,适用于低速或不太稳定的通信链路。
但由于每次只能发送一帧并等待确认,效率较低,不适合高速通信。
容易受到网络延迟和丢包等问题的影响。
2 滑动窗口协议(Sliding Window Protocol)
工作原理:
发送方和接收方都维护一个窗口,窗口中包含了可以发送或接收的帧的范围。
发送方可以连续发送窗口内的帧,而不需要等待每一帧的确认。
接收方按顺序接收帧,并发送确认,确认的序号告诉发送方哪些帧已成功接收。
发送方根据接收方的确认信息动态地调整窗口的大小,以便在不浪费带宽的情况下发送更多帧。
滑动窗口协议的特点:
高效利用带宽,适用于高速网络环境。
允许并行发送多个帧,提高了通信效率。
能够处理帧的乱序到达和重传等情况,提高了可靠性。
2.1 后退N帧协议
后退N帧协议是一种滑动窗口协议,其特点是在发送方连续发送多个帧,而接收方按序接收,但一旦发生丢失或损坏的帧,接收方会要求重新发送从丢失帧之后的所有帧。
GBN发送方必须响应的三件事:
1.发送数据帧:
发送方将数据分成帧,并将它们按顺序发送到接收方。
发送方维护一个发送窗口,窗口内包含了可以发送的帧的范围。
发送方可以连续发送窗口内的帧,而不需要等待每个帧的确认。
2.处理接收方的确认:
接收方收到帧后,如果帧正确无误,则发送确认(ACK)给发送方,确认的序号告知发送方已成功接收到哪些帧。
发送方根据接收到的确认信息动态地调整窗口的大小,将窗口向前滑动,以便发送下一批帧。
如果接收方检测到帧有错误或者乱序到达,它可以选择忽略该帧,并不发送确认,发送方会认为该帧丢失,并触发后退重传。
3.后退重传:
如果发送方在一定时间内未收到某个帧的确认,或者接收到了确认中指明了某个帧需要重传,那么发送方会触发后退重传机制。
后退重传的操作包括重传丢失的帧以及后续帧,以确保接收方按顺序接收所有帧。
发送方会将窗口回滚到丢失帧之前的位置,并重新发送该位置之后的所有帧。
滑动窗口长度:
2.2 选择重传协议
选择重传协议也是一种滑动窗口协议,其特点是发送方和接收方维护各自的窗口,接收方可以选择性地确认和重传丢失或损坏的帧,而不需要重传整个窗口。
SR发送方必须响应的三件事:
1.发送数据帧:
发送方将数据分成帧,并将它们按顺序发送到接收方。
发送方维护一个发送窗口,窗口内包含了可以发送的帧的范围。
发送方可以连续发送窗口内的帧,而不需要等待每个帧的确认。
2.处理接收方的确认和选择性重传:
接收方按顺序接收帧,如果帧正确无误,则发送确认(ACK)给发送方,确认的序号告知发送方已成功接收到哪些帧。
如果接收方检测到帧有错误或者乱序到达,它可以选择性地忽略该帧,只确认前面已经正确接收的帧。
如果接收方发现某个帧丢失或者有错误,它会发送一个特殊的选择性重传请求(Selective Repeat Request)给发送方,请求重传特定的丢失或损坏帧。
3.选择性重传:
发送方收到选择性重传请求后,只会重传被请求的那些帧,而不是整个窗口。
发送方会将请求的帧重新发送给接收方,确保接收方正确地接收到所有的数据帧。
滑动窗口长度: