История изменений
Исправление slamd64, (текущая версия) :
UDP хорошо только в одном случае: если у сервера и ВСЕХ клиентов - быстрые и качественные интернет-каналы.
TCP - во всех остальных случаях.
Дело в том, что при любом сбое передачи данных, OpenVPN заново выполняет весь цикл подключения, обмена ключами и прочего.
TCP - это протокол гарантированной доставки пакетов. У TCP есть проверка целостности пакета (контрольная сумма) и очередности пакетов (из-за разных путей доставки пакетов, более поздний пакет может придти адресату раньше). Таким образом, львиная доля сбоев при передаче пакетов, решается за счет протокола без необходимости заново устанавливать OpenVPN-соединение между клиентом и сервером. Получается, что обрыв связи между сервером и клиентом при применении TCP OpenVPN возможен разве что по тайм-ауту.
У UDP всего этого нет. Соответственно, при любом косяке на канале, не остаётся ничего другого, как переустанавливать соединения.
На хреновых каналах типа GPRS/EDGE/3G, OpenVPN в виде UDP вообще не живет.
P. S. У себя всегда использую только TCP и горя не знаю.
P. P. S. Гораздо более весёлый вопрос - UDP-over-TCP. То есть, когда ты играешь в онлайн игрушки (они почти все UDP) или что-то типа этого (видеотрансляции, например) сквозь TCP OpenVPN.
Исправление slamd64, :
UDP хорошо только в одном случае: если у сервера и ВСЕХ клиентов - быстрые и качественные интернет-каналы.
TCP - во всех остальных случаях.
Дело в том, что при любом сбое передачи данных, OpenVPN заново выполняет весь цикл подключения, обмена ключами и прочего.
TCP - это протокол гарантированной доставки пакетов. У TCP есть проверка целостности пакета (контрольная сумма) и очередности пакетов (из-за разных путей доставки пакетов, более поздний пакет может придти адресату раньше). Таким образом, львиная доля сбоев при передаче пакетов, решается за счет протокола без необходимости заново устанавливать OpenVPN-соединение между клиентом и сервером.
У UDP всего этого нет. Соответственно, при любом косяке на канале, не остаётся ничего другого, как переустанавливать соединения.
На хреновых каналах типа GPRS/EDGE/3G, OpenVPN в виде UDP вообще не живет.
P. S. У себя всегда использую только TCP и горя не знаю.
P. P. S. Гораздо более весёлый вопрос - UDP-over-TCP. То есть, когда ты играешь в онлайн игрушки (они почти все UDP) или что-то типа этого (видеотрансляции, например) сквозь TCP OpenVPN.
Исходная версия slamd64, :
UDP хорошо только в одном случае: если у сервера и всех клиентов - быстрые и качественные интернет-каналы.
TCP - во всех остальных случаях.
Дело в том, что при любом сбое передачи данных, OpenVPN заново выполняет весь цикл подключения, обмена ключами и прочего.
TCP - это протокол гарантированной доставки пакетов. У TCP есть проверка целостности пакета (контрольная сумма) и очередности пакетов (из-за разных путей доставки пакетов, более поздний пакет может придти адресату раньше). Таким образом, львиная доля сбоев при передаче пакетов, решается за счет протокола без необходимости заново устанавливать OpenVPN-соединение между клиентом и сервером.
У UDP всего этого нет. Соответственно, при любом косяке на канале, не остаётся ничего другого, как переустанавливать соединения.
На хреновых каналах типа GPRS/EDGE/3G, OpenVPN в виде UDP вообще не живет.
P. S. У себя всегда использую только TCP и горя не знаю.
P. P. S. Гораздо более весёлый вопрос - UDP-over-TCP. То есть, когда ты играешь в онлайн игрушки (они почти все UDP) или что-то типа этого (видеотрансляции, например) сквозь TCP OpenVPN.