在什么情况下TCP-over-TCP的性能要比单独使用TCP的性能差很多(2014年)?


25

许多管理员(在ServerFault和其他地方)一直保持不变,例如,在VPN中,TCP-over-TCP是多么糟糕的想法。即使不是TCP崩溃,即使是最轻微的数据包丢失也将使至少遭受严重的吞吐量下降,因此必须严格避免TCP-over-TCP。这可能曾经是真的,例如2001 年撰写本文时仍在引用。

但是从那以后,我们看到了技术和协议的重大进步。如今,几乎在所有地方都实现了“选择性ACK”,摩尔定律为我们提供了更多的存储空间,随之而来的是为千兆位上行链路优化的大型TCP缓冲区。如今,在非无线电链路上,数据包丢失也不再是问题。所有这些都可以大大缓解TCP-over-TCP问题,不是吗?

请注意,在现实世界中,例如,基于TCP的VPN比基于UDP / ESP的VPN更易于实现和操作(请参阅下文)。因此我的问题是:

在什么情况下(链路数据包丢失和等待时间),TCP-over-TCP的性能要比单独的TCP差很多,假设SACK支持并且两端的TCP缓冲区大小合适。

太棒了,因此请查看一些测量结果,以显示(外部连接)数据包丢失/延迟与(内部连接)吞吐量/抖动之间的相关性-对于TCP-over-TCP和TCP / TCP。我找到了这篇有趣的文章,但它似乎只关心延迟,而不是解决(外部)数据包丢失。

另外:是否有建议的设置(例如TCP选项,缓冲区设置,减少MTU / MSS等)以缩小TCP和TCP-over-TCP之间的性能差距?


更新:我们的理由。

在某些实际情况下,这个问题仍然非常重要。例如,我们在大型建筑物中部署嵌入式设备,这些设备收集传感器数据并将其通过VPN馈入我们的平台。我们面临的问题是防火墙和配置不当的上行链路(不受我们控制),加上IT部门的不情愿。请参阅此处讨论的详细示例。

在很多情况下,从非TCP切换到基于TCP的VPN(如果像我们这样使用OpenVPN则非常容易)是一种快速解决方案,可让我们规避艰难的指责之战。例如,通常通常允许使用TCP端口443(至少通过代理),或者我们可以通过简单地减少TCP的MSS选项来克服Path-MTU问题。

最好知道在什么情况下基于TCP的VPN可以被认为是可行的选择,因此我们可以做出明智的决定,胜过任何一种选择的利弊。例如,我们知道非无线链路上可以使用TCP-VPN,但是在3G上行链路上确实有相当一部分远程客户端,但丢包率很高且延迟很高-TCP-VPN在那里将如何执行?

我试图相应地改善标题和核心问题。我希望这是有道理的。


当您将它们用于交互式会话(例如ssh)时,您会很快注意到TCP over TCP与TCP VPN上的UDP(等)之间的区别。如果会话没有中断,您会注意到延迟。扬州青年会
Daniel S. Sterling

首先,仅当“外部”连接受到一定程度的延迟或数据包丢失时。我在基于TCP的VPN上有很多SSH会话,并且很多工作都很好,没有明显的延迟。
尼尔斯·托德曼

确实-当您拥有良好的网络时,它会起作用。如果您不总是拥有一个良好的网络,那么它就不会永远有效
Daniel S. Sterling

什么是好的网络?如果一切都在单个AWS区域中运行,那么网络是否足够好?
rich remer '18

Answers:


7

我认为它实际上比您要出现的争论更多。有一个公认的古老的相关Linux常见问题解答:http//www.tldp.org/HOWTO/VPN-HOWTO/

我使用PPP-over-ssh-over-ADSL已有12年以上了,它从未使我失败,因此,根据我的经验,我敢说厄运论者可能在很大程度上夸大了其含义。对于RTC连接,卫星链接和其他吞吐量非常低或延迟很长的链接,TCP over TCP可能不是一个好主意,但是对于大多数用途来说,它只是有效的

现在真正的问题是:你为什么要使用TCP通过TCP 可言?当我设置PPP-over-shsh时,主要是因为那时,它是迄今为止构建快速VPN的最简单方法。从那以后,我出于纯粹的懒惰就一直使用它。

如今,已经有了实用,易于设置的工具,例如OpenVPN,IPSec VPN,因此您不必再为TCP-over-TCP问题而烦恼。


1
在某些情况下,TCP-over-TCP是对许多网络问题的简单修复。我添加了一部分,详细说明了我们的基本原理。
Nils Toedtmann 2014年

我希望得到一个关于TCP-over-TCP成为问题的条件的更具体的答案。我们的用例之一具有不同程度的延迟和数据包丢失的无线电链路。
尼尔斯·托德曼2014年

TCP over TCP上的TCP(通过TCP SSH转发访问的TCP OpenVPN中的TCP流量)的成本约为5Mb / s。它从来没有让我失望,但我不会因为它是一个巨大的浪费而推荐它。
警报器
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.