无噪和有噪信道中的协议

2025年3月17日 | 阅读 14 分钟

协议的研究分为两类:一类是适用于无噪声或无差错信道的协议,另一类是适用于有噪声或有差错信道的协议。尽管第一类协议在实际情况中无法应用,但它们为有噪声信道的协议奠定了基础。

Protocols in Noiseless and Noisy Channel

什么是协议?

协议是指一组定义好的指南和规则,用于控制网络中不同设备之间的通信。这些指南规定了数据在传输过程中的格式、时序、排序和差错校验方式。

协议在确保设备之间准确、高效和清晰的通信方面起着至关重要的作用。它们使得不同类型和品牌的设备能够相互通信,并为跨网络传输数据提供了一种一致的方法。

头部负责选择协议,这些协议是网络设备之间通信的规则。这些头部包含描述消息性质以及它将如何被处理的信息。为了检测任何问题,头部必须包含诸如消息的校验和、目的地和源地址以及其他必要的头部地址等信息。

无噪声信道有两种协议:

1. 最简单的协议 - 对于无噪声信道,最简单的协议涉及数据从源直接传输到目的地,而无需任何中间处理。在这种情况下,假定信道无噪声,这意味着传输的数据保持不变,不会损坏。在无噪声信道中,一个简单的协议可以包括一种直接的数据传输方法,例如一次发送一个比特,没有错误纠正或流量控制机制。这种类型的协议非常适合无噪声信道,因为缺乏噪声可确保传输的数据能被准确接收,从而无需实施额外的措施。

由于该协议仅用于无噪声信道,因此它没有任何流量控制或错误检测和纠正机制。该协议假定接收方始终准备好立即处理发送方发送的任何数据帧。这种只允许数据从发送方流向接收方的协议称为单向协议。由于该协议是单向的,因此不需要进行确认或接收确认。此外,由于传输过程中没有数据丢失,因此无需重新发送或重新传输数据。

为了创建最简单的协议,已做出以下假设:

  • 广播信道中没有任何噪声(信道没有重复、丢失或损坏的帧)。
  • 假定传输路径是完美的,没有数据丢失、重复或损坏的情况。
  • 没有错误和流量控制系统。
  • 发送方和接收方的末端都有无限的缓冲区空间用于存储帧。

注意事项

  • 此技术的处理时间非常短。因此,可以忽略不计。
  • 各方始终准备好发送和接收数据。
  • 发送方在不考虑接收方的情况下,会发送一系列数据帧。
  • 不发生数据丢失,因此不发送 ACK 或 NACK。
  • 在接收端,DLL 在删除帧头部后,会立即将数据传输到下一层。

如果没有 ACK 或 NACK,发送方必须在发送消息之前等待预定的时间。为了解决这个问题,使用了另一种称为滑动窗口协议的协议。滑动窗口协议是一种数据链路层协议,允许数据帧的顺序和可靠传输。该协议允许发送方利用序列号一次发送多个帧。序列号由发送方分配给每个数据帧,以确保在需要重新传输帧时具有正确的顺序。这还使接收方能够检测丢失或损坏的数据包。

注意 - 接收方在收到帧后会向发送方发送 ACK(确认)。ACK 通知发送方接收方是否成功接收了特定帧。Go-Back-N ARQ 和 Selective Repeat ARQ 是两种不同类型的滑动窗口技术。

最简单协议中的流程图

数据流图(DFD)是系统中数据流的图形表示。在最简单协议的上下文中,DFD 可以说明数据在发送方和接收方之间的移动。DFD 将显示发送方如何发送数据帧到接收方,接收方如何处理数据,以及在传输过程中发生任何错误时会发生什么。它还可以显示流量控制和错误控制机制的缺失,这些通常包含在更复杂的协议中。DFD 有助于阐明最简单协议的基本功能,使其更易于理解和实现。

本图显示了基于停止等待协议的交换过程。它仍然易于理解。发送完一帧后,发送方等待接收方的响应。在等待接收端的确认(ACK)后发送下一帧。请注意,每次有两个帧时,发送方涉及四个事件,接收方涉及两个事件。

Protocols in Noiseless and Noisy Channel

2. 停止等待协议 - 停止等待协议是一种用于在无噪声信道中进行可靠数据传输的协议。在此协议中,发送方一次只发送一个数据包,并在发送下一个数据包之前等待接收方的确认(ACK)。这样,发送方就可以确保接收方收到了每个数据包并已成功处理。如果发送方在一定时间内未收到 ACK,则认为该数据包已丢失,必须重新传输。

停止等待协议简单高效,但有一个主要缺点。由于一次只能传输一个数据包,因此整体数据传输速率相对较慢。为了克服这一限制,开发了滑动窗口协议。在滑动窗口协议中,可以同时传输多个数据包,从而实现更快的数据传输。尽管存在此限制,但由于其简单性和可靠性,停止等待协议仍广泛用于许多应用程序中。

  • 接收方的数据帧流速可能过快,超出其处理能力,需要临时存储。
  • 然而,接收方有限的存储空间可能导致帧丢失或丢弃,甚至服务拒绝。
  • 为防止这种情况发生,发送方必须减慢其传输速率,这通过接收方的 ACK 消息来实现。
  • 发送方发送一个帧,并在发送下一个帧之前等待接收方的确认,从而为先前的协议增加了流量控制。
  • 数据帧的通信仍然是单向的,但 ACK 帧向相反方向流动。

流程图

无噪声信道中停止等待协议的流程图包括以下步骤:

  1. 发送方将数据帧发送给接收方。
  2. 发送方等待接收方的确认(ACK)。
  3. 接收方处理接收到的数据帧。
  4. 接收方向发送方发送 ACK,以确认收到数据帧。
  5. 发送方继续传输下一个数据帧,从步骤 i 开始重复此过程。
Protocols in Noiseless and Noisy Channel

在此协议中,发送方一次发送一个帧,然后停止,直到收到接收方的 ACK。这可以防止接收方因传入帧而过载,并确保可靠的数据传输。此外,ACK 帧用于流量控制,允许发送方根据接收方的处理能力调整传输速率。

结论

两种协议的主要区别在于,最简单的协议没有流量控制和错误控制机制,而停止等待协议则通过使用 ACK 帧来实现流量控制机制。

在最简单的协议中,接收方始终预期会准备好接收发送方发送的任何帧,因此不需要确认。在停止等待协议中,发送方必须在发送下一个帧之前等待接收方的确认。

这两种协议之间的另一个区别是,最简单的协议是单向的,而停止等待协议是双向的。在最简单的协议中,数据帧只能在一个方向上传输,从发送方到接收方,而在停止等待协议中,数据帧和 ACK 帧都可以双向传输。

总之,最简单的协议是一种适用于无噪声信道的简单明了的协议,而停止等待协议通过流量控制机制增加了额外的可靠性,更适合有噪声的信道。

有噪信道协议

有噪声信道协议是一种用于通信系统中的通信协议,其中传输信道可能会在传输数据中引入错误。这种类型的协议旨在处理通信信道中的错误,并确保接收方能够准确地接收正在传输的数据。有噪声信道协议的主要目标是利用诸如错误检测和纠正、流量控制以及丢失或损坏的数据帧的重传等技术来最小化传输数据中的错误率。一些有噪声信道协议的例子包括停止等待协议、滑动窗口协议和自动重复请求(ARQ)协议。

1. 停止等待 ARQ 协议 - 停止等待协议是一种用于在有噪声信道上进行可靠数据传输的协议。在此协议中,发送方一次只发送一个帧,并在发送下一个帧之前等待接收方的确认(ACK)。这有助于确保接收方正确接收数据,并消除了由于有噪声信道引起的错误而需要重传的情况。发送方持续监控信道中的错误,如果检测到错误,它会等待下一个 ACK 后再重传帧。该协议为数据帧的基本单向通信和相反方向的 ACK 帧增加了错误控制。

流程图

有噪声信道中停止等待协议的数据流图可用于描述发送方和接收方之间的数据流。该图通常包括以下组件:

  1. 发送方: 发送方一次发送一个数据帧,并在发送下一个数据帧之前等待接收方的响应(ACK 或 NACK)。
  2. 接收方: 接收方接收数据帧并进行处理。如果帧接收正确,接收方会向发送方发送 ACK 信号。如果帧接收不正确,接收方会向发送方发送 NACK 信号。
  3. 有噪声信道: 有噪声信道是将数据帧从发送方传输到接收方的媒介。信道可能会向数据帧添加噪声,导致数据错误和损坏。
  4. 错误检测: 接收方使用诸如校验和之类的错误检测技术来检测接收到的数据帧中的错误。
  5. 错误纠正: 如果检测到错误,接收方会向发送方发送 NACK 信号,请求重新传输该帧。
Protocols in Noiseless and Noisy Channel

在此协议中,发送方一次只发送一个数据帧,并在发送下一帧之前等待接收方的响应。这确保了接收方有足够的时间在接收下一帧之前处理每一帧。停止等待协议是可靠的,但与其它协议相比吞吐量较低。

2. 回退 N ARQ 协议 - 回退 N 自动重复请求(ARQ)协议是一种用于确保有噪声信道上数据可靠传输的错误控制协议。在有噪声的信道中,接收到的数据包出错的概率很高,因此需要一种机制来检测和纠正这些错误。

回退 N ARQ 协议是一种滑动窗口协议,其中发送方将一个数据包窗口发送给接收方,接收方会发送一个确认(ACK)给发送方,表示成功接收了数据包。如果发送方在指定超时时间内未收到 ACK,则会重新传输整个数据包窗口。

流程图

说明有噪声信道中回退 N ARQ 协议操作的流程图

Protocols in Noiseless and Noisy Channel

发送方端

  1. 发送方将一个数据包窗口发送给接收方,从序列号 i 开始,到序列号 i + N - 1 结束,其中 N 是窗口大小。
  2. 发送方为窗口中的每个数据包设置一个计时器。
  3. 发送方等待接收方的确认(ACK)。

接收方端

  1. 接收方接收数据包并检查错误。
  2. 如果数据包正确接收,接收方会向发送方发送一个 ACK,其中包含下一个预期数据包的序列号。
  3. 如果接收到的数据包有错误,接收方会丢弃该数据包,并向发送方发送一个否定确认(NAK),其中包含下一个预期数据包的序列号。

发送方端(在未收到 ACK 的情况下)

  1. 如果在数据包计时器过期之前发送方未收到 ACK,则发送方将重新传输整个数据包窗口,从计时器过期的那个数据包开始。
  2. 发送方为窗口中的每个数据包重置计时器。
  3. 发送方等待接收方的 ACK。

发送方端(收到 NAK 的情况下)

  1. 如果发送方收到接收方的 NAK,发送方将仅重新传输未被接收方正确接收的数据包。
  2. 发送方重置已重新传输的每个数据包的计时器。
  3. 发送方等待接收方的 ACK。

上述步骤重复进行,直到所有数据包都已成功被接收方接收。回退 N ARQ 协议提供了一种在有噪声信道上传输数据的可靠机制,同时最大限度地减少了所需的重传次数。

3. 选择性重复 ARQ 协议 - 选择性重复 ARQ 协议是一种用于数据通信的错误控制协议,用于确保在有噪声的信道上可靠地传输数据。与回退 N ARQ 协议重新传输整个数据包窗口不同,选择性重复 ARQ 协议仅重新传输未正确接收的数据包。

在选择性重复 ARQ 协议中,发送方将一个数据包窗口发送给接收方,接收方会发送一个确认(ACK)给发送方,表示成功接收了数据包。如果接收方检测到数据包中的错误,它会发送一个否定确认(NAK)给发送方,请求重新传输该数据包。

在选择性重复 ARQ 协议中,发送方为窗口中的每个数据包维护一个计时器。如果发送方在其计时器过期之前未收到某个数据包的 ACK,则发送方仅重新传输该数据包。

在接收方端,如果一个数据包被正确接收,接收方会发送一个 ACK,其中包含下一个预期数据包的序列号。但是,如果接收到的数据包有错误,接收方会丢弃该数据包并发送一个 NAK,其中包含需要重新传输的数据包的序列号。

与回退 N ARQ 不同,在选择性重复 ARQ 中,接收方缓冲区用于存储所有非顺序到达的数据包。当到达一个序列号与预期序列号不同的数据包时,它会被缓冲,并且接收方会发送一个 ACK,表示已收到最后一个按顺序到达的包。

如果到达一个接收方已缓冲的序列号的数据包,则将其丢弃,并且接收方发送一个 ACK,表示已收到最后一个按顺序到达的包。

总之,选择性重复 ARQ 协议提供了一种在有噪声的信道上传输数据的可靠机制,同时最大限度地减少了所需的重传次数。它仅重新传输未正确接收的数据包,并缓冲乱序到达的数据包,以减少所需的重传次数。

流程图

说明选择性重复 ARQ 协议在有噪声信道中操作的流程图

Protocols in Noiseless and Noisy Channel

发送方端

  1. 发送方将一个数据包窗口发送给接收方,从序列号 i 开始,到序列号 i + N - 1 结束,其中 N 是窗口大小。
  2. 发送方为窗口中的每个数据包设置一个计时器。
  3. 发送方等待接收方的确认(ACK)。

接收方端

  1. 接收方接收数据包并检查错误。
  2. 如果一个数据包被正确接收且顺序正确,则接收方会向发送方发送一个 ACK,其中包含下一个预期数据包的序列号。
  3. 如果接收到的数据包有错误或乱序,接收方会丢弃该数据包,并向发送方发送一个否定确认(NAK),其中包含需要重新传输的数据包的序列号。
  4. 接收方缓冲乱序的数据包,并发送一个 ACK,表示已收到最后一个按顺序到达的包。

发送方端(在未收到 ACK 的情况下)

  1. 如果在数据包计时器过期之前发送方未收到 ACK,则发送方仅重新传输该数据包。
  2. 发送方重置已重新传输的数据包的计时器。
  3. 发送方等待接收方的 ACK。

发送方端(收到 NAK 的情况下)

  1. 如果发送方收到接收方的 NAK,发送方将仅重新传输未被正确接收的数据包。
  2. 发送方重置已重新传输的每个数据包的计时器。
  3. 发送方等待接收方的 ACK。

上述步骤重复进行,直到所有数据包都已成功被接收方接收。选择性重复 ARQ 协议提供了一种在有噪声信道上传输数据的可靠机制,同时最大限度地减少了所需的重传次数。它仅重新传输未正确接收的数据包,并缓冲乱序到达的数据包以减少所需的重传次数。

结论

A. 停止等待 ARQ

  • 三种协议中最简单的。
  • 发送方一次传输一个数据包,并在发送下一个数据包之前等待接收方的确认(ACK)。
  • 如果在一定时间内未收到 ACK,发送方将重新传输该数据包。
  • 适用于错误率低、数据速率低和传输距离短的信道。

B. 回退 N ARQ

  • 发送方将一个数据包窗口发送给接收方。
  • 如果接收方检测到数据包中的错误,它会向发送方发送一个否定确认(NAK),请求重新传输该数据包以及窗口中的所有后续数据包。
  • 发送方重新传输未正确接收的整个数据包窗口。
  • 适用于中高错误率和中等数据速率的信道。

C. 选择性重复 ARQ

  • 发送方将一个数据包窗口发送给接收方。
  • 如果接收方检测到数据包中的错误,它只会向发送方发送一个 NAK,请求重新传输该数据包。
  • 发送方仅重新传输未正确接收的数据包。
  • 接收方缓冲乱序的数据包,以减少所需的重传次数。
  • 适用于中高错误率、高数据速率和长传输距离的信道。

总之,停止等待 ARQ 是最简单和最可靠的协议,但不适合高数据速率。回退 N ARQ 适用于中高错误率的信道,而选择性重复 ARQ 适用于高数据速率和长传输距离。协议的选择取决于通信信道的特性和应用程序的要求。