我理解TCP熔毁问题与错误的错误补偿和到达接收端时的错误排序有关。建议OpenVpn连接使用UDP协议。
这是否意味着从客户端到服务器的连接使用TCP端口(例如。443)但是所传送的数据是在UDP之后吗?
发布于 2021-11-07 09:04:31
它是关于用于隧道本身的东西(“隧道外”)和在隧道内运输的东西(“在隧道内”)。
当TCP用于外部和内部通信时,可能会发生"TCP熔毁“。两个TCP实例都不知道对方,可能会弥补完全相同的临时问题。由于他们的堆叠,措施加起来,过度补偿了问题。这很容易导致整体性能不太理想的共振。
最好的解决方案是在隧道外使用非补偿的UDP协议。UDP的执行就像IP一样,因此如果在隧道内使用,则通信流完全由单个TCP实例控制。
可通过OpenVpn上的TCP端口传输UDP通信以避免TCP崩溃。
这是不可能的,因为TCP和UDP是不同的协议。它们的端口号使用相同的范围,但没有任何关系(在传输层-一个特定的应用层协议可能对TCP和UDP都使用相同的端口号,比如DNS)。
解决方案是要么在隧道内使用UDP,后者由应用程序(S)控制,但通常不能随意选择,要么在隧道之外使用UDP,这可以通过正确设置VPN网关来实现。默认情况下,OpenVPN支持隧道的UDP和TCP,其首选项是UDP。
https://networkengineering.stackexchange.com/questions/76925
复制相似问题