快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡新京返水_龟发之家论坛



应用实现从新传输计时器的计时器轮算法来削减每个计时单元 (tick) 处置惩罚的开销。AIX® 传输节制协议(Transmission Control Protocol,TCP)共有七个计时器(每个连接),并澳门新葡新京返水应用全局计时器函数和两种粒度来实现这些计时器。在本文中,将钻研若何经由过程应用 AIX TCP 快速计时器使从新传输计时器实现更低的粒度,并懂得应用更低的计时器粒度的其他优点。

小序

AIX® 传输节制协议(Transmission Control Protocol,TCP)为每个连接掩护七个计时器:

连接建立 (Connection establishment)

从新传输 (Retransmission)

延迟确认(Delayed acknowledgment,ACK)

持续 (Persist)

维持连接 (Keepalive)

FIN_WAIT_2

TIME_WAIT

为了实现这些每个连接都包孕的计时器,TCP 应用了一些全局计时器函数,它们供给了两种粒度:

tcp_fasttimo:每 200 毫秒调用它一次,并澳门新葡新京返水实现了快速计时器。

tcp_slowtimo:每 500 毫秒调用它一次,并实现了慢速计时器。

在 TCP 的从新传输计时器实现中,将从新传输超时存储于 TCP 节制块的计时单元中,此中一个计时单元 = 500 毫秒。当 TCP 的慢速计时器每隔 500 毫秒计时到期的时刻,将调用 tcp_slowtimo。这个例程将遍历 TCP 节制块表,并且对每个连接的超时(以计时单元为单位进行指定)进行递减操作,即每次减一。当计时器的计时单元数达到零时,它将调用超时处置惩罚轨典范程为该连接处置惩罚响应的超时。这个实现要求 TCP 计时器的下限为 500 毫秒。

正如您所知道的,TCP 根据所丈量的来回光阴,动态地谋略超时。今朝,TCP 从新传输超时的最小光阴为 3 秒。然而,对付一些高速收集,如千兆位的以太网和万兆位的以太网,预期的来回光阴(是以从新传输超时)要低得多。假如不进行传输,那么每秒钟将丧掉掉落 120MB 的吞吐量。是以,我们必要一种更好的措施来处置惩罚高速的和低延迟的收集。

应用从新传输计时器来实现更低粒度的一种要领是,应用 TCP 的快速计时器(200 毫秒),可以将其缺省值设置为 50 毫秒,取代了原本的 200 毫秒。这种措施所带来的毛病是,处置惩罚以更高的速度扫描所有协议节制澳门新葡新京返水块 (PCB) 的开销。PCB 是为连接保存节制信息的一种内部布局。本文阐清楚明了基于计时器轮算法实现 TCP 的从新传输计时器的一种备选措施。

计时器轮算法

一个计时轮包孕 N 个槽位。一个槽位代表一个光阴单元,如 si(槽位光阴距离)。每颠末一个光阴单元,计时轮中的指针移动一个位置,就像时钟中的秒针一样。当指针移动到一个槽位时,例如 cs(当前槽),这表示在这个槽位中的计时器列表(假如存在的话)急速计时到期,或者当指针在后续周期中到达相同槽位时计时到期。

在将具有某个计光阴隔的新的计时器,如 ti(光阴距离),添加到这个计时器轮时,将谋略出这个新计时器的槽位 ts(计时器槽位),详细如下所示:

ts = ( cs + (ti / si)) % N

假定所有计时器的最大年夜计韶光阴距离都不跨越某个上限(tmax)。假如 N 足够大年夜,能够在从当前指针位置开始的一周之内容纳 tmax,那么当指针移动到一个特定的槽位时,该槽位中的所有计时器急速同时计时到期(而不是后继周期)。这样可以避免遍历该列表以反省现在哪些计时器计时到期,以及在后继周期中哪些计时器将计时到期。

例如,鄙人面的图 1 所示的计时轮中,共有 8 个槽位,编号从 0 到 7。您可以察看以槽位 1、3、5、4 和 6 为中间的计时器条款。今朝,指针处于槽位 1。以该槽位为中间的三个计时器将急速计时到期、或者在后继周期中当指针达到相同槽处时计时到期。

图 1. 计时轮

A. 触发低 RTO 特点 连接的从新传输计时器首次计时到期,或者 打开了快速从新传输阶段。您为这个连接启用了更低粒度的从新传输计时器,并从新发送数据包。由于这是一次从新传输,以是您没需要为了相应光阴跟踪 (RTT) 谋略而对这个分段进行计时。经由过程将该计时器插入到计时器轮中相宜的槽位来启动从新传输计时器。 B. 确认接管 接管到从新传输数据包切实着实认。删除从新传输计时器(从计时器轮中删除该计时器)。 C. 对分段进行计时 应用序列 'b' 发送一个分段,并且启动从新传输澳门新葡新京返水计时器。您可以经由过程存储光阴戳对这个分段进行计时,以用于 RTT 谋略。经由过程将该计时器插入到计时器轮中相宜的槽位来启动从新传输计时器。 D. 处置惩罚计时分段接管到的 ACK 带有确认 'c' 的 ACK 比接管到的 'b' 更大年夜。经由过程将计时器从计时器轮中删除,您可以竣事从新传输计时器。当应用序列 'b' 发送该分段的时刻,丈量新的 RTT,应用当前光阴减去存储的光阴戳。所丈量的 RTT 用于谋略新的从新传输超时价。 E. 应用 RTO(作为每个低 RTO 特点进行谋略)传输分段 将从新传输计时器插入到计时器轮中相宜的槽位。 F. 从新传输计时器计时到期 一个应用计时器轮算法的连接的从新传输计时器计时到期。指针在计时器轮中移动到先前插入从新传输计时器的槽位。调用一个计时器处置惩罚例程以处置惩罚从新传输计时器的计时到期。

总结

应用计时器轮措施,在启动和竣事计时器时将付出很大年夜的价值。假如将槽位中的计时器实现为链表,那么在向该列表添加计时器或者从该列表删除计时器时,必须应用槽位链锁对其进行同步操作。

另一方面,应用计时器轮算法实现从新传输计时器,具有削减每个计时单元处置惩罚开销的上风。应用计时轮,当指针到达某个槽位时,只有该槽位中的计时器计时到期。您不必要扫描所有的 PCB,以反省为澳门新葡新京返水各个连接所设置的计时器。

更低粒度的计时器实现容许治理员设置设置设备摆设摆设低至 10 毫秒的 RTO 值。对付在高速的和低延迟的收集(如千兆位的和万兆位的以太网,可能会呈现丢包的环境)中运行的 TCP 连接来说,这是分外有用的。

您可能还会对下面的文章感兴趣: