传输层协议如何提供时序保证?

网络工程 服务质量 传输协议
2022-02-18 01:05:00

我正在读一本教科书,上面写着:

传输层协议也可以提供时序保证。与吞吐量保证一样,时间保证可以有多种形式和形式。一个示例保证可能是发送方泵入套接字的每一位在不超过 100 毫秒后到达接收方的套接字。

我有点困惑,因为我们知道排队延迟不是固定的,并且取决于路由器的流量,那么传输层协议如何提供定时保证服务,同时它会受到其他因素的影响,例如繁忙的流量影响排队延迟?

2个回答

大多数通信网络被设计为集中控制和调度。CAN、OTN、SDH、FR、GSM等

在手机网络中,中央时钟分布(通常通过网络)到每个网络元素。所有流量都是时间打开/关闭网络。这允许网络范围的延迟是固定的和可预测的。

另一种选择是没有中央调度的以太网/Wifi。在这个模型中,每个人都等待媒体安静下来然后传输。在这种情况下,数据包可能会发生冲突(两个站同时通话)。在以太网中有碰撞检测,在 Wifi 中有碰撞避免。

在集中调度的网络上,ATM QOS 有 5 种变体。

另外两个变体是实时和非实时。这就是计算使用的频率。

以太网中的 QOS 通常实现为 WRED - 加权随机早期检测和丢弃https://en.wikipedia.org/wiki/Weighted_random_early_detection 数据包被放入 3 个或更多队列。优先级最高的队列首先排空,然后按优先级顺序排空其他队列。如果任何队列看起来要溢出,则提前丢弃数据包以防止溢出。

要回答您的具体问题:导致延迟变化的因素是:QOS 排队、CSMA/CD 和重传、路由器负载(随着路由器负载增加,它会在容量的 75% 时变慢)、数据包大小(很多小数据包减少整体带宽),开销信令(Wifi 管理帧),整体路由器负载(路由器控制平面上的某些事件可能会影响延迟)。L1/L2 活动 (ARP)、分段(如果路由器需要分段,您将获得显着的性能影响)、重新组装、重新排序数据包(特别是 IPSec 不好)以及我可能忘记的更多内容。

如果没有进一步的上下文,那本教科书可能只是在谈论ATM 或 SDH 之类的电路交换网络(延迟和带宽保证几乎是自然而然的),或者它只是在假设。

分组交换网络中,如果没有下面的层提供某种基础,传输层协议就不可能凭空产生时间保证(参见)。在您控制不严的网络上是完全不可能的。我搜索了你引用的文本,它在互联网上以多种形式重复出现。然而,在 QoS 环境之外这是完全错误的。

同样,带宽保证也不是您可以“在顶部”生成的任何东西。

您可以计算出对带宽和延迟的良好估计——这实际上是 TCP 在幕后所做的——但这些估计本质上是暂时的,并且随时可能发生变化,尤其是当网络负载发生变化并且路径中某处出现拥塞时。这就是为什么 TCP 一直在重新计算路径的往返时间并使其数据流适应它的原因。

PS:我可以在https://electronicspost.com/transport-services-available-to-applications/找到您引用的文字,该文字专门指 TCP - 显然,该发帖人不是网络工程师,可能不知道他到底是什么正在谈论...