停止等待协议、回退N帧协议、选择重传协议的内容、功能特点以及它们之间的区别:
一、停止等待协议
- 内容:
停止等待协议是最简单但也是最基础的数据链路层协议。该协议规定,发送方每发送一个数据分组后,就停止发送并等待接收方的确认。在收到接收方的确认信号后,发送方再继续发送下一个数据分组。
- 功能特点:
- 发送窗口和接收窗口的大小均为1,即每次只能发送和接收一个数据分组。
- 发送方在发送完数据分组后,必须在其发送缓存中暂时保留这个数据分组的副本,以便在出差错时进行重传。
- 接收方在接收到数据分组后,需要进行差错校验。如果校验正确,则发送确认信号;如果校验错误,则丢弃该数据分组,并不发送确认信号。
- 优缺点:
- 优点:实现简单,容易理解。
- 缺点:通信信道的利用率不高,信道还远远没有被数据比特填满。
二、回退N帧协议(GBN)
- 内容:
回退N帧协议是一种基于停等协议的改进版本,可以实现更高效的数据传输。该协议允许发送方连续发送多个数据分组,而不需要在发送每个分组后都等待确认。接收方在接收到数据分组后,按顺序进行确认。如果某个数据分组出错或丢失,则发送方需要从出错或丢失的数据分组开始重新发送后续的所有数据分组。
- 功能特点:
- 发送窗口的大小大于1,可以连续发送多个数据分组。
- 接收窗口的大小为1,接收方只按顺序接收数据分组,不按序则无情丢弃。
- 使用累积确认的方式,即接收方确认的是按序到达的、序列号最大的数据分组及其之前的所有数据分组。
- 优缺点:
- 优点:可以实现高效的数据传输,同时具备了一定的容错性。
- 缺点:在网络丢包或延迟较大的情况下,可能会导致大量的数据分组需要重传,从而降低了整体的传输效率。
三、选择重传协议(SR)
- 内容:
选择重传协议是一种更高级的数据链路层协议,它结合了停等协议和回退N帧协议的优点。该协议允许发送方连续发送多个数据分组,并且接收方可以乱序接收数据分组。当某个数据分组出错或丢失时,发送方只需要重传该出错或丢失的数据分组,而不需要重传其他已经正确接收的数据分组。
- 功能特点:
- 发送窗口和接收窗口的大小均大于1,可以连续发送和接收多个数据分组。
- 接收方可以乱序接收数据分组,但需要对每个正确接收的数据分组进行确认。
- 发送方在收到接收方的确认信号后,会更新发送窗口,并继续发送未确认的数据分组。
- 优缺点:
- 优点:可以提高信道的利用率,同时减少因重传而带来的额外开销。
- 缺点:实现相对复杂,需要维护较大的发送和接收窗口。
四、区别
- 发送窗口大小:
- 停止等待协议:发送窗口大小为1。
- 回退N帧协议:发送窗口大小大于1。
- 选择重传协议:发送窗口大小大于1,且可以动态调整。
- 接收窗口大小:
- 停止等待协议和回退N帧协议:接收窗口大小为1。
- 选择重传协议:接收窗口大小大于1,可以接收乱序的数据分组。
- 重传机制:
- 停止等待协议:出错或丢失时,重传整个数据分组。
- 回退N帧协议:出错或丢失时,从出错或丢失的数据分组开始重传后续的所有数据分组。
- 选择重传协议:出错或丢失时,只重传出错或丢失的数据分组。
- 信道利用率:
- 停止等待协议:信道利用率最低。
- 回退N帧协议:信道利用率较高,但可能因大量重传而降低。
- 选择重传协议:信道利用率最高,且减少了因重传而带来的额外开销。