Вот сценарий:
A) Настольный openvpn клиент Таиланд Б) OpenVPN сервер в Сингапуре C) HTTP-сервер в Лондоне
Задержка RTT от A до B составляет 50 мс Задержка RTT от B до C составляет 220 мс.
Потеря пакета (через iperf) на 5 Мбит между A и B составляет 2% Потеря пакета на 5 Мбит (даже на 20 Мбит) между B и C составляет 0%.
Поскольку я управляю сервером и клиентом openvpn, у меня есть возможность установить туннельное соединение openvpn от A к B через UDP или TCP.
Руководство OpenVPN говорит мне, что канал данных тупой, он не реализует свой собственный протокол retran / ack.
Поэтому, если я делаю TCP / HTTP от А до С, я думаю, что лучше всего установить А в В в качестве туннеля OpenVPN TCP и позволить меньшему каналу с задержкой rtt разрешить потерю пакета, а не использовать openvpn UDP, а затем позволить http / a-to более высокого / более высокого уровня разрешает потерю пакетов?
К вашему сведению, я спросил в #openvpn IRC на freenode, но безоговорочное утверждение типа «TCP-over-TCP никогда не бывает хорошей идеей», так что, надеясь на более информированные ответы, я очень рад принять меня неправильно с некоторым содержанием.