LINUX.ORG.RU

История изменений

Исправление 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.