URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 42394
[ Назад ]

Исходное сообщение
"OpenNews: CARP для Linux и реализация TCP/IP стека в виде пользовательского процесса"

Отправлено opennews , 16-Июн-08 15:42 
Евгений Поляков выпустил обновление трех интересных проектов:

-  Вышла (http://tservice.net.ru/~s0mbre/blog/devel/networking/2008_06...) новая версия реализации (http://tservice.net.ru/~s0mbre/old/?section=projects&item=carp) протокола CARP (Common Address Redundancy Protocol) в виде модуля для Linux ядра 2.6.25. Код портирован из OpenBSD. CARP выступает в роли открытой альтернативы протоколам HSRP (Hot Standby Router Protocol) и VRRP (Virtual Router Redundancy Protocol), позволяет организовать совместное использование IP между несколькими серверами в локальной сети, что может применяться для балансировки нагрузки (IP одновременно используют все сервера) или для создания отказоустойчивых систем (IP использует первичный сервер, при нарушении его работы, IP подхватывает другой). Существует еще одна реализация CARP для Linux - ucarp (http://www.ucarp.org/), реализованная в виде пользовательского процесса.

-  Доступно (http://tservice.net.ru/~s0mbre/blog//devel/networking/unetst...

URL: http://tservice.net.ru/~s0mbre/blog/2008/06/14/
Новость: http://www.opennet.me/opennews/art.shtml?num=16497


Содержание

Сообщения в этом обсуждении
"CARP для Linux и реализация TCP/IP стека в виде пользовательского процесса"
Отправлено mitya , 16-Июн-08 15:42 
CARP для линукс --- это замечательно.
Давно юзаю в ОпенБСД. Отличная вещь.

"CARP для Linux и реализация TCP/IP стека в виде пользовательского процесса"
Отправлено azalio , 16-Июн-08 15:52 
Что можно сказать - ура carp'у под linux!

"CARP для Linux и реализация TCP/IP стека в виде пользовательского процесса"
Отправлено dm , 16-Июн-08 16:32 
>Доступно обновление системы unetstack, - реализации TCP/IP стека минимального >размера, работающего как пользовательский процесс. Тестирование показало, что >unetstack работает в 3 раза быстрее стандартного TCP/IP стека Linux и при этом в >4 раза меньше нагружает CPU.

:-D


"CARP для Linux и реализация TCP/IP стека в виде пользовательского процесса"
Отправлено Аноним , 16-Июн-08 16:54 
тогда уж в три раза меньше CPU нагружает, почему четыре?

"CARP для"
Отправлено Andrey Mitrofanov , 16-Июн-08 17:03 
>тогда уж в три раза меньше CPU нагружает, почему четыре?

Потому что в три раза длиннее и в четыре раза толще. /Так/ понятнее??


"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено cheeboorashka , 16-Июн-08 23:23 
>тогда уж в три раза меньше CPU нагружает, почему четыре?

CPUTIME = 4*x sес  
TIME = 3*y  sес.
IDLE = k*y

CPUTIME = TIME - IDLE ==>  4*x = 3*y - k*y =>  4*x = y*(3-k)

---------

NEWSPEED = SPEED/4
NEWTIME  = TIME/3  
NEWIDLE  = m*y

NEWCPUTIME = NEWSPEED-NEWIDLE => x = -y+m*y =>   x = -y*(1+m)

/
| 4*x = -y*(3+k)
<
|   x = -y*(1+m)
\

|  4  -3+k |     |  4            3+k |    
|          |  =  |                   |
|  1  1+m  |     |  0  1/4+m+(1/4)*k |


IDLE = m + 1/4*(-1-k)   ля, ля, 3 делим на это =>......3/4



"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено cheeboorashka , 16-Июн-08 23:27 
О чём это я... А, короче, простой (IDLE) уменьшился в 3/4 раза (0.75)

"CARP для Linux и реализация TCP/IP стека в виде пользовательского процесса"
Отправлено cryptoanonymous , 16-Июн-08 17:20 
Стырили да, ну молдцы что сказать :)

"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено somebody , 16-Июн-08 18:43 
аха.. иди попробуй "стырь".
и вообще глупо так указывать на опенсорс. тому же опенбсд не помешало б очень много "стырить" у других, но на все сил не хватит

"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено Аноним , 17-Июн-08 11:57 
мне всегда казалось, что открытыми исходники публикуют в том числе и для того, чтобы "тырили". И, кстати, это называется заимствовать. Что вполне допускается лицензией и традициями. OpenSource вообще строится на том, что все друг у друга что-то заимствуют и делятся.

"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено i_am , 17-Июн-08 14:50 
Что значит стырили?То есть когда MS юзает - это не стырили а когда в линухе - так все, стырили?Где логика в таких заявах? oO

"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено Аноним , 17-Июн-08 22:30 
>Что значит стырили?То есть когда MS юзает - это не стырили а
>когда в линухе - так все, стырили?Где логика в таких заявах?
>oO

Дело в том, что Linux реализация написана с нуля без использования исходников BSD.
Только спецификация протокола. Так что это точно не "стырили", но авторство идеи принадлежит BSD.


"CARP для Linux и реализация TCP/IP стека в виде пользовательского процесса"
Отправлено Дохтур , 16-Июн-08 17:26 
Хм... s0mbre - зе бест! :)
нравится тщательность, с которой он подходит к разработке и регулярные тесты.

"CARP для Linux и реализация TCP/IP стека в виде пользовательского процесса"
Отправлено гость , 16-Июн-08 20:25 
Евгений безусловно молодец, но его английский это просто караул - я из-за этого его блог читать не могу - аж корёжит от ошибок через каждое слово... посоветуйте ему кто-нибудь на языковые курсы походить :-)

По теме:
- а нафик нужен ядерный carp при наличии ucarp? Он ведь особой производительности не требует, зачем его в ядро пихать?
- где и как можно использовать unetstack? У него какие-нибудь специфические требования к ядру есть или ванильное пойдёт?


"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено vitek , 17-Июн-08 01:15 
для встраиваемых систем, например.

"CARP для Linux и реализация TCP/IP стека в виде пользовательского процесса"
Отправлено chesnok , 16-Июн-08 21:47 
А каким образом достигается распределение нагрузки при использовании данного модуля (carp) ?

"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено Аноним , 16-Июн-08 22:56 
дерный CARP нужен для создания сетевого интерфейса, от имени которого рассылаются сообщения. В ucarp используется МАС адреса того компьютера, который является мастером, поэтому смена мастера в случае форвардинга пакетов приводит к ступору некоторого железа, которое хочет только один МАС.

"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено guest , 17-Июн-08 00:27 
>дерный CARP нужен для создания сетевого интерфейса, от имени которого рассылаются сообщения.
>В ucarp используется МАС адреса того компьютера, который является мастером, поэтому
>смена мастера в случае форвардинга пакетов приводит к ступору некоторого железа,
>которое хочет только один МАС.

В смысле дешёвые коммутаторы колом встают?
А в Linux нельзя создать виртуальный интерфейс с отдельным маком "привязав" его к одному из физических?


"CARP для Linux и реализация TCP/IP стека в виде пользовательского проц"
Отправлено cheeboorashka , 16-Июн-08 22:52 
> ...обновление iptables модуля osf, позволяющего  блокировать пакеты
> в зависимости от операционной системы отправителя.

Вот как надо трояны и вири фильтровать :)


"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено vitek , 17-Июн-08 01:13 
особенно у провайдеров актуально :-)

"OpenNews: CARP для Linux и реализация TCP/IP стека в виде по..."
Отправлено Аноним , 16-Июн-08 22:59 
Сетевой стек работает так быстро только с его же netchannels - мостом между физическим устройсвтом и userspace, поэтому можно избежать больших накладных расходов на сисколы при передаче маленьких пакетов. Через packet socket все работает как через packet socket, т.е. медленно.

"CARP для Linux и реализация TCP/IP стека в виде пользовательского процесса"
Отправлено Guest , 16-Июн-08 23:17 
> Тестирование показало, что unetstack работает в 3 раза быстрее стандартного TCP/IP стека Linux и при этом в 4 раза меньше нагружает CPU.

Интересно. Это говорит либо о том, что стандартный стек убог до невозможности, либо о том, что убог unetstack, ибо не поддерживает всех фич/нужных проверок/неэффективно использует память и т.п.

Никогда userspace поделка не будет быстрее ядерной. Иначе что-то где-то явно не так.


"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено vitek , 17-Июн-08 02:50 
а тут как-то про микро-ядерную архитектуру говорили...

"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено dct , 17-Июн-08 05:24 
prof флудер... :)
ты хочешь поговорить об этом? :)

"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено vitek , 17-Июн-08 09:58 
я ведь это не для денег!
я ведь это для души! :-D

"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено Аноним , 17-Июн-08 08:29 
А сисвызовы, по-твоему, ничего не стоят?
Ну и да, реализуй полноценный стек TCP/IP в одиночку в разумное время, а мы будем тебе на нервы капать, что у тебя херня получается.

"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено Guest , 18-Июн-08 03:28 
>А сисвызовы, по-твоему, ничего не стоят?

А в буфер сетевухи ты будешь пакеты класть из userspace наверное? И выгребать N раз в секунду в случае polling/обрабатывать прерывания в случае не polling? Ну-ну.

>Ну и да, реализуй полноценный стек TCP/IP в одиночку в разумное время,
>а мы будем тебе на нервы капать, что у тебя херня
>получается.

Я свое время привык тратить более конструктивно. И, к слову, не пользуюсь системами где нормальный CARP неализовали только сейчас и где userspace поделка работает на порядок производительней родного TCP/IP стека :))


"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено Аноним , 20-Июн-08 14:54 
>А в буфер сетевухи ты будешь пакеты класть из userspace наверное?

В netchannels практически так и делается.

>Я свое время привык тратить более конструктивно. И, к слову, не пользуюсь системами где нормальный CARP неализовали только сейчас и где userspace поделка работает на порядок производительней родного TCP/IP стека :))

Ядерный CARP был реализован в 2005 году, это просто очередной релиз.
Почему userspace решение работает быстрее ядерного в данной задаче, вы так и не поняли.


"CARP для Linux и реализация TCP/IP стека в виде пользователь..."
Отправлено Дмитрий Ю. Карпов , 18-Июн-08 11:54 
> Никогда userspace поделка не будет быстрее ядерной.

Скорость падает в т.ч. из-за переходов из режима ядра в режим задачи и обратно. Если за каждым чихом переходить в режим ядра, то потери будут велики, и поэтому ряд функций лучше реализовать в режиме задачи (например, как рах по этой причине fopen/fclose/fread/fwrite/fscanf/fprintf выполняются в режиме задачи, а не в режиме ядра).