Вот сценарий:
A) Настольный клиент openvpn Таиланд B) Сервер 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 от A до C, я думаю, что лучше всего будет установить A в B в качестве туннеля OpenVPN TCP и позволить меньшему каналу rtt с задержкой разрешить потерю пакета, а не использовать openvpn UDP и затем позволить http / a-to более высокого / более высокого уровня разрешает потерю пакетов?
К вашему сведению, я спросил в #openvpn IRC о freenode, но безоговорочное утверждение типа «TCP-over-TCP никогда не бывает хорошей идеей», так что, надеясь на более информированные ответы, я очень рад принять меня неправильно с некоторым содержанием.