TCP 时间戳妙用

      最后更新:2022-06-15 16:42:36 手机定位技术交流文章

      盗图说个场景:
      TCP in Painful Detail
      在这里插入图片描述
      如何应付这种状况? 该怎么办?

      事实上,我所要描述的场景并不那么复杂,只是:

      • 直接数据路径与反向ACK路径不同,反向路径更繁琐。
      • 相反的路径是相同的,但ACK路径上的策略配置与数据路径不同。

      许多传输设备(如Wi-Fi)与数据不同对待ACK,如乱丢 ACK,临时ACK和aggregate,ACK优先次序等。然而,RTT包含ACK的一半,无论哪半路都颤抖着,TCP发送器将不分开负责,因为现在还不清楚在哪半路发生了抖动。

      用TCP时间标记可以区分两个半way摇动。 请遵循两个变量方程:

      • 数据半程时间差: D1 = ACK.TSval - ACK.TSecr.
      • ACK半程时间差: D2 = Now - ACK.TSval.

      不需要担心两个端之间的连接时间的非同步,因为两个变量D1和D2随时间变化而不担心它们的值。

      如果D1_var大,说明数据在半途上有带宽暴动,缓冲堆,在这点,必须把控制拥挤的因素收敛起来,反之,如果D2_var是大的,D1_var是小的,说明数据的一半非常稳定,没有拥塞,然后继续发信(但不要太严厉)。

      如果没有这种能力,只有在现有的TCP实现下,当RTT振动时,ACK半路所引起的振动也会同时记录到拥堵信号中,并且RTT会影响拥堵控制算法,从而影响传输效率。

      通过TCP时间邮票,可以更准确地区分两个半程的延迟振动情况,之前说过,更准确的交通堵塞控制需要更多的信息,底线是,TCP包需要更强的表达能力。大多数TCP支持时间标记,这是事实。但如何使用这个时间邮票,用尽它的信息熵,还是有更多玩法的。

      半下午急着拉肚子,除了一个问题之外,一个很好的方法来识别两个TCP半路的延迟抖动,挺不错的。我不知道这是我最初的想法。但至少在Linux的TCP实现中,它还没有被发现,我还没有看到其他成就,不管怎样,想法是非常简单的,就是充分利用信息。我自己不是在这个领域工作,只要录下几句话,哪天再有小长假了,验证一下试试看。

      浙江温州皮鞋潮湿, 水里雨不会肥.

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/27425.html

          热门文章

          文章分类