我了解 TCP 崩溃问题与到达接收端时的错误过度补偿和错误排序有关。OpenVpn 连接建议使用 UDP 协议。
这是否意味着从客户端到服务器的连接使用 TCP 端口(例如 443)但传输的数据遵循 UDP?
我了解 TCP 崩溃问题与到达接收端时的错误过度补偿和错误排序有关。OpenVpn 连接建议使用 UDP 协议。
这是否意味着从客户端到服务器的连接使用 TCP 端口(例如 443)但传输的数据遵循 UDP?
这是关于隧道本身使用什么(“隧道外”)和隧道内运输什么(“隧道内”)。
当 TCP 用于外部和内部流量时,可能会发生“TCP 崩溃”。两个 TCP 实例互不了解,可以弥补完全相同的临时问题。由于它们的堆叠,措施加起来,过度补偿了问题。这很容易导致整体性能欠佳的共振。
最好的解决方案是在隧道外使用非补偿 UDP 协议。UDP 的执行方式与 IP 一样,因此如果在隧道内使用,流量完全由单个 TCP 实例控制。
UDP 流量能否通过 OpenVpn 上的 TCP 端口传输以避免 TCP 崩溃
这是不可能的,因为 TCP 和 UDP 是不同的协议。它们的端口号使用相同的范围但没有任何关系(在传输层- 特定的应用层协议可能对 TCP 和 UDP 使用相同的端口号)。
解决方案是在隧道内使用 UDP(由应用程序控制但通常不能随意选择)或在隧道外使用 UDP,您可以通过正确设置 VPN 网关来做到这一点。默认情况下,OpenVPN 支持隧道的 UDP 和 TCP,优先使用 UDP。