SRP,Speculative Reservation Protocol,投机预约协议。

协议通过以下方式提高了拥塞控制的最新水平:

  • SRP防止拥塞的形成,而不是在拥塞发生后对其进行反应。

  • SRP具有非常快速的瞬态响应,与易发生拥塞的流量的发生几乎立即做出反应,相比之下,像ECN这样的数据包标记协议需要数百微秒的响应时间。

  • SRP的开销很低,可以与网络媲美,而不会对良性流量进行拥塞控制。

  • SRP提高了争夺网络热点的来源之间的公平性。

    阻塞案例:拥塞的扩散影响。

image-20200729205521681

image-20200729205638729

解决拥塞的办法:

  1. ECN

    image-20200729205721994

启用ECN的路由器通过监视其输入或输出缓冲区的占用来检测拥塞。当缓冲区的占用率超过某个阈值时,路由器会标记通过缓冲区的数据包的ECN字段(在某些系统中,标记操作仅在标识为拥塞根源的端口上进行)。当标记的数据包到达其目的地时,ECN字段将使用拥塞通知数据包返回到数据包的源。发送方收到消息后会减缓发送速率,来缓解拥塞。在没有拥塞通知的情况下,发送方将逐渐提高其注入速率,以充分利用未拥塞网络的带宽。

  1. Speculative Reservation Protocol

    预防拥塞。

    传输信息,需要一个预约许可的握手

    image-20200729210250143

a)是正常运行的时序图,在这种情况下,网络中不存在热点。发送方S通过首先发出预留数据包R来启动到目的地D的通信。此预留数据包很小,具有较高的网络优先级,并且在单独的控制虚拟通道(VC)[8]上传输以保证快速传递。预留中携带预留大小n,它指示源打算发送的数据包数量。选择大小以分摊多个数据包之间的SRP开销,同时提供对多个流的公平性和响应性。

发出预约后,S开始以投机地方式将数据包P1和P2发送至D。这些推测数据包在低优先级VC上传输,并且等待时间(TTW)有限。如果投机性数据包在网络内部的总累积排队时间大于其TTW,则路由器会将其丢弃。我们通过在到达路由器输入端口时对数据包打上时间戳,然后在数据包位于输入缓冲区的开头时对此时间戳执行检查来实现TTW跟踪。由于投机数据包的性质不可靠,因此需要ack以通知源是否已成功传送或丢弃了它们。

一旦预约数据包到达 D,目的地将根据其当前预约时间表返回一个携带发送起始时间的小型授权数据包 G($T_s$)(Grant)。另外,D 更新其预约时间表,它给下一个源的发送起始时间不会早于 $T_s$ + n(1 + ϵ)$τ_p$。其中,常数 $τ_p$ 是目的地接收单个数据包的时间,ϵ 表示控制数据包(如 reservation、grant、ACK 等)的带宽开销。所有发送源都必须通过如此预约的方式想目的地进行预约并获得开始发送时间。

S 收到授权数据包时,它停止向 D 发送投机数据包。到达时间 $T_s$ 之后,S 以非投机数据包的模式(即正常数据包)恢复向 D 的传输,从图2.1(a)中的示例 P3 开始。正常数据包不能被丢弃,并且不需要 ACK。在 S 成功发送完所有n 个数据包之后,未来 SD 之间的任何传输都将重复此预约过程。

图b显示了一个时序图,说明了在拥挤的网络中且节点 D 处有热点时的 SRP 执行过程。最初,S 发送预约数据包和投机数据包的过程与上述示例相同,具有较高网络优先级的预约数据包很快到达 D。但是,投机数据包在 D 附近遇到了较大的排队延迟。当排队延迟超过其 TTW 时,投机数据包被路由器丢弃,并且路由器返回 NACK 数据包给 S。当 S 收到 NACK 数据包时,它将停止向目标传输投机数据包,而后以正常数据包的模式在$T_s$处恢复数据包传输,从之前被丢弃的的数据包开始。

由于丢弃协议,每个预约内乱序包的到达都是可能的。在图b的情况下,如果NACK数据包在ts之后返回,则重新发送的数据包将以乱序到达D。这个可以通过牺牲带宽来避免这个问题。方法是通过修改协议,使得在达到ts之后,S重新传输所有未完成的推测性数据包。这样可以确保有序的数据包到达,但要以可能的重复数据包到达D为代价。

SRP 可以减少延迟和带宽开销。发送投机数据包可以减少 SRP 的等待时间开销。在中低网络负载下,大多数投机数据包能够到达目的地,并使得 SRP 的延迟与基准网络的延迟相同。为了防止超短流预约开销过大和长流长时间垄断热点目标,SRP 设置了两个阈值:$n_{min}$ 和 $n_{max}$。当流长度 n < $n_{min}$,绕过 SRP协议直接发送;当流长度 n > $n_{max}$ 时,则将长流按照$n_{max}$进行分段,分为多个长度为的$n_{max}$流,SRP 将他们视为不同的流,分别进行预约。

在高网络负载下,由于增加的排队延迟,推测性数据包被更频繁地丢弃。丢弃推测性数据包会浪费网络带宽,并且是高负载时开销的主要来源。但是,推测性数据包永远不会减少可用于非推测性数据包的带宽,因为它们是在单独的较低优先级虚拟通道上发送的。可以通过调整推测的TTW和预留粒度来控制推测的丢弃开销。