Можете ли вы настроить / настроить TCP внутри контролируемой сети, чтобы он стал таким же быстрым, как UDP? - PullRequest
1 голос
/ 21 января 2012

Я рассматриваю возможность написания собственной реализации надежного UDP (упорядочение и повторная передача пакетов для отбрасывания пакетов).Это для внутренних систем внутри моей контролируемой сети.Интересно, возможно ли в системе Linux оптимизировать TCP настолько, чтобы он стал таким же быстрым, как UDP?Если это так, я просто буду использовать супер-оптимизированный TCP и не буду беспокоиться о реализации надежного UDP.

Ответы [ 2 ]

2 голосов
/ 21 января 2012

Есть несколько вещей, которые вы можете сделать, чтобы адаптировать TCP к вашим конкретным потребностям.Вы можете увеличить максимальный размер буфера, изменить алгоритм перегрузки и многое другое.Я думаю, что действительно стоит попробовать, прежде чем заново изобретать колесо, тем более что вы, похоже, хорошо контролируете свою внутреннюю сеть. Эта статья описывает некоторые из этих вещей.Другим хорошим источником информации для всех этих параметров является Documentation/networking/ip-sysctl.txt в исходном коде Linux.

Вы также можете проверить, включено ли выборочное подтверждение TCP (SACK) в вашем Linux, посмотрев на /proc/sys/net/ipv4/tcp_sack.

2 голосов
/ 21 января 2012

Существуют различные показатели производительности (пропускная способность, задержка, дрожание, устойчивость к отбрасыванию пакета).

Невозможно получить гарантии доставки и заказа пакетов без введения произвольной задержки.В этом смысле надежный UDP не может быть «быстрее», чем TCP.

Можно использовать FEC для уменьшения количества повторных передач за счет дополнительной пропускной способности.Это только улучшило бы пропускную способность по каналу с очень потерями.Это уменьшит дрожание и максимальную задержку по каналу при любых отбрасываниях.

Или вы говорите о справедливости TCP по сравнению с жадностью UDP?

В любом случае, уровень TCP вашей ОС уже очень высоко оптимизированМаловероятно, что вы сможете добиться большего успеха, не изменив правила игры (например, пожертвовав честностью).

...