回退N与选择性重传协议的区别

2024 年 8 月 28 日 | 阅读 6 分钟

回退 N 协议 (Go-Back-N Protocol)

它是自动重传请求 (ARQ) 协议的一个例子。在此协议中,发送方节点连续在网络中传输定义数量的数据帧。窗口大小决定了节点的数量。发送方可以在未收到接收方节点的确认的情况下发送这些帧。这是滑动窗口协议的一个特例,其中发送方窗口大小为 N,接收方窗口大小为 1。

接收方节点跟踪接收方节点要接收的下一帧的序列号。接收方丢弃任何序列号不同的数据帧。这意味着它删除已由接收方确认的任何重复帧,或期望稍后由节点接收的任何乱序帧。它只接受有序的节点交付。然后,它会为按正确顺序传输的最后一帧发送确认。一旦发送方节点传输完窗口中的所有数据帧,它就会搜索自第一个数据帧在传输中丢失以来直到该数据帧的所有帧。然后,发送方节点转到接收方确认的最后一帧的序列号,然后开始使用该帧填充窗口并继续传输过程。

选择重传协议 (Selective Repeat Protocol)

该协议也称为选择重传自动重传请求 (Selective Repeat Automatic Repeat Request)。该协议在网络节点的链路层实现。该协议使用滑动窗口方法,确保从发送方节点到接收方节点的数据帧可靠传输。好的数据帧会被接收方节点接收并缓冲。该协议更有效,因为它仅在网络传输期间重新传输损坏的数据帧。

为了实现选择重传协议,需要两个相同大小的窗口。发送窗口存储发送方节点要传输的数据帧。同时,接收窗口负责存储接收方节点接收到的数据帧。

窗口大小保持为数据帧最大序列号的一半。例如,如果序列号范围从 0-15,则发送方和接收方节点的窗口大小都将为 8。

回退 N 与选择重传协议的工作原理

回退 N 协议 (Go-Back-N Protocol)

回退 N ARQ 允许在收到第一帧的确认之前发送多帧。帧是按顺序编号的,并且有一个有限数量的帧。可以发送的最大帧数取决于发送窗口的大小。如果在约定的时间内未收到帧的确认,则从该帧开始的所有帧都将被重新传输。

发送窗口的大小决定了出站帧的序列号。如果帧的序列号是 n 位字段,则可分配的序列号范围是 0 到 2n?1。因此,发送窗口的大小是 2n?1。因此,为了容纳 2n?1 的发送窗口大小,选择 n 位序列号。

选择重传协议 (Selective Repeat Protocol)

它使发送方节点能够在网络中传输多个数据帧。传输的数据帧取决于发送窗口中可用数据帧的情况。可以在不等待前一数据帧确认的情况下传输下一帧。发送方窗口的大小决定了可以同时传输的帧数。

接收方节点存储第一个错误或损坏的帧的序列号,或者接收方节点未收到的节点的序列号。一旦当前窗口已满,接收方节点就会用收到的后续帧填充接收窗口。然后,接收方节点在确认帧中发送损坏或丢失帧的序列号。

发送方节点连续传输发送方窗口中可用的帧。一旦发送窗口中存储的所有数据帧都传输到接收方节点,它就会重新发送由确认提供的序列号的数据帧。重新传输完成后,它继续向其他网络节点传输。

回退 N 与选择重传的区别

这两个滑动窗口协议在功能和工作方式上也存在差异。回退 N 和选择重传协议之间的区别如下:

比较基础回退 N (GO-BACK-N)选择重传 (SELECTIVE REPEAT)
基本功能重新传输所有在疑似损坏或丢失的帧之后发送的帧。仅重新传输疑似丢失或损坏的帧。
带宽利用率如果传输错误的可能性很高,或者传输了大量损坏的帧,那么该协议会浪费大量带宽。由于只重新传输网络中的错误或损坏的数据帧。它节省了网络带宽,并且比回退 N 协议更有效。
复杂度与选择重传相比,该协议的实现更简单。由于其逻辑实现较少,因此复杂度较低。它比回退 N 协议更复杂,因为在发送方和接收方节点都应用了额外的逻辑和排序算法。此外,它还需要额外的存储才能高效工作。
最小序列号回退 N 协议可能的最小序列号是 N+1。其中 N 是发送方传输的数据帧的数量。选择重传协议可能的最小序列号是 2N。其中 N 是发送方传输的数据帧的数量。
发送窗口大小在回退 N 协议中,发送方节点的窗口大小是 N。对于选择重传协议,它也是 N。发送方节点的窗口大小大于 1。
接收窗口大小接收窗口的大小为 1。为了实现选择重传,发送方和接收方窗口的大小相等。因此,在此协议中为 N。
窗口大小N-1<= (N+1)/2
排序数据帧在传输的两端都不会排序。数据帧的排序在接收端进行。保持数据帧正确的顺序对于确保请求正确的帧是必要的。
存储接收方在损坏的帧被重新传输之前,不会存储在该帧之后收到的帧。接收方将损坏帧之后收到的帧存储在缓冲区中,直到损坏帧被替换。
搜索它不执行搜索,因为如果发送方未收到某个帧的确认,则当前窗口中的所有节点都会受到表示。传输的任何一端都不执行搜索。发送方必须执行搜索操作,因为网络中只重新传输请求的节点。
支持的顺序在此协议中,它只接受接收方节点上的有序交付。在选择重传 ARQ 中,接收方节点在网络中只接受乱序交付。
确认类型它向发送方节点发送数据帧的累积确认。在选择重传中,每个帧的确认是单独的。
ACK 号码NAK 号码表示网络中下一个数据帧的预期帧号。NAK 号码表示传输过程中丢失的数据帧的编号。
重传如果发送方节点未收到数据帧的确认,则会重新传输当前窗口中的所有数据帧。因此,重传次数为 N。在选择重传协议中,只重新传输错误的数据帧。因此,重传次数为 1。
协议的效率计算效率的公式为 N/(1+2*a),其中 a 表示传播延迟与传输延迟的比率,N 表示网络中传输的数据包的数量。计算效率的公式为 N/(1+2*a),其中 a 表示传播延迟与传输延迟的比率,N 表示网络中传输的数据包的数量。
用途它更常用,因为它复杂性较低且存储需求较少。它的实现较少。它用于带宽有限且效率重要的场合。

结论

选择重传协议更有效,因为它不会在发送方已正确传输到接收方节点的数据帧上浪费网络资源。

回退 N 协议更常用,因为它在网络中的实现复杂性较低。此外,它的成本相对较低,因为它需要更少的存储。

如果回退 N 和选择重传协议的窗口大小相等,则这两个协议的效率几乎相等。资源的利用和可用性决定了将实施哪个协议。

选择重传协议兼具停-等协议和回退 N 协议的优点。