是否可以在单工或半双工下层上实现全双工上层?

网络工程 tcp 双工
2022-02-14 05:15:05

例如,TCP 是全双工的。它可以建立在非全双工底层通信之上吗?

2个回答

首先是一些基本定义。

  • 单工:只能向一个方向传输数据。
  • 半双工:可以双向传输数据,但不能同时传输。
  • 全双工:可以同时双向传输数据。

显然单工链路只能向一个方向移动数据,所以我们不能从一个单工链路构建全双工链路。但是,我们可以从两个单独的单工链路中构建一个全双工链路。这就是实际网络物理层的工作量。

半双工链路呢?好吧,它归结为我们所说的“同时”的意思。为了通过半双工链路在两个方向上发送信息,我们需要一些切换方向的方法。这可能是一个固定比率的时分,它可能是某种基于载波侦听的协议,无论如何。

如果方向切换发生得足够快,那么更高级别将不会注意到。就他们而言,他们将数据放入发送缓冲区并将其从接收缓冲区中拉出。只要它以合理及时的方式到达,它如何从一端的发送缓冲区到达另一端的接收缓冲区的确切细节并不重要。

通常,在半双工信道上,您必须等到接收完成才能开始传输。由于信号不会立即传播,这不可避免地意味着在方向改变期间存在一些死区时间。没有固定时隙的 CSMA 类型协议可能会引入更多的死区时间。您在带宽和延迟之间进行了某种折衷,快速切换允许低延迟通信,但会增加死区时间。

回到 Internet,传统上在局域网(尤其是以太网)上使用半双工。这样的网络运行的距离相对较短,并且具有相对较高的带宽。因此,与 WAN 链路上的带宽限制和延迟相比,半双工操作带来的额外延迟和减少的带宽可以忽略不计。

以太网或其他第 1 层/第 2 层 LAN 协议可能是半双工的,但这不会改变 TCP。这就是分层网络的要点:每一层都独立于其他层。