LINUX.ORG.RU
ФорумAdmin

туннелирование udp через tcp

 


0

2

Добрый день! Сеть 1гбс состоит из нескольких компьютеров, информация на которых синхронизируется путём broadcast udp. Иногда к сети подключается ноутбук, причём иногда в общий маршрутизатор, а иногда посредством hdsl со скоростью 1 мбс. Проблема очевидна - хотя информация умещается в 1мбс, буфера hdsl преобразователя не хватает для сглаживания пиков 1гбс сети. Идея следующая: 1. Запрещаем преобразователю транслировать бродкаст пакеты. 2. Организовать туннель для передачи всех пакетов через tcp.

Как это организовать и может есть идеи получше?

Организовать туннель для передачи всех пакетов через tcp.

Не уловил, куда от этого денутся пики?

zgen ★★★★★
()
Ответ на: комментарий от t184256

Гигабит ноутбуку не нужен, проблема сгладить пики, чтобы не терять нужное. Я думал написать демон, который будет собирать информацию в очередь и сглаживать. Tcp в этом случае позволит управлять скоростью потока.

Все это можно сделать вручную, но может есть возможность воспользоваться существующими средствами, например, через iptables или ещё как-то

korplan
() автор топика
Ответ на: комментарий от korplan

Пока это звучит как бред.

Если есть сеть, где гигабитные UDP-broadcast шторма нужны только фиксированному набору участников с гигабитом, то ее надо заизолировать и не трогать.

Что ты собрался заворачивать в TCP? Поток broadcast-пакетов по пути к ноуту? Так он ему не нужен. Те же пакеты между другими участниками? Точно плохая идея.

Выдыхай, ничего не пиши, разделяй сети.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)

'broadcast udp' в любом случае плохая идея, именно потому, что он неуправляем. use multicast, Luke.

anonymous
()
Ответ на: комментарий от t184256

Я неверно объяснил суть проблемы. Множество воркеров (процессов) обмениваются через броадкаст. Ноутбуку нужно передавать эти udp пакеты, но не все, а только с определённых портов для тех воркеров, которые сейчас на нем запущены. Разделение сетей не помогает, т.к. пики образуются на одном порту. Нужно их просто размазать, ограничив скорость выдачи с определённых портов до 1 мбс, а те, что не нужно, оставить без изменения. Необходимо как то централизованно управлять скоростью исходящего потока, поскольку делать очередь в каждом процессе плохо - не будет информации о полной картине. Прошлый вариант был собирать все сообщения, необходимые воркерам ноутбука и туннелировать их - тогда можно организовать очередь управляющую скоростью потока, а tcp помог бы в этом. Другой вариант это буфер у каждого процесса и pgm вместо udp, он поможет ловить всплески.

Короче говоря, что делать, когда у тебя широко, а где то дальше узко. Мультикаст, zmq sub будут терять сообщения, pgm захлебнется в негативах, ограничение скорости интерфейса eth повлияет на другую информацию.

korplan
() автор топика
Ответ на: комментарий от korplan

Думается мне, что твоя проблема решается проще, чем формулируется. Может это даже и зовется туннелем.

Пусть есть гигабитная сеть, подключи ноут к одному из участников на отдельный интерфейс. Заодно решится проблема изоляции от лишнего.

Затем на этом хосте подними наколеночный ретранслятор только нужного ноуту трафика и обратно, на любом удобном уровне. Для начала максимально простой, потом, если ну очень надо будет, приделай congestion control, туннелируя поверх TCP или более вручную.

Что я упускаю?

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Все верно, это именно то что я хотел сделать. Единственное, что ноутбук должен быть через hdsl, там две жилы. Меня именно беспокоит необходимость делать это вручную, хотел узнать есть ли возможность системными средствами перехватывать и перенаправлять пакеты для определённых портов, чтобы не ведосипедить

korplan
() автор топика
Ответ на: комментарий от korplan

Я не знаю, наcколько глубоко для твоей задачи надо вскрывать трафик. Может и средствами iptables обойдется, но тогда заворачивание проще сделать выбором VPN поверх TCP.

t184256 ★★★★★
()
Ответ на: комментарий от korplan

в queues удп-бродкаст можно засунуть?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.