Выбор чата для домашней сети: IRC vs Vypress chat

Материал из Cetki Wiki.

Перейти к: навигация, поиск
Изображение:Please_irc.jpg

Содержание

Выбор чата

Сейчас перед многими локальными сетями стоит вопрос выбора чата. В данной статье автор (один из разработчиков популярного ирс клиента KVIRC) анализирует преимущество одно чата над другим. Надеюсь, что эта статья будет полезна для тех, кто еще колебается при выборе сетевого чата.

И так, сама статья:

О чем это мы?

Как человек, занимающийся разработкой IRC клиента, я не могу не интересоваться другими технологиями интернет-общения. Особенно, если они тесно связаны с IRC. И вот, посчастливилось мне узнать от пользователей о такой замечательной программе как Vypress Chat. По-началу ничего не предвещало бури :) Прога себе как прога, люди пользуются, им нравится и все казалось бы хорошо. Но угораздило меня попасть на их официальный сайт. Дальнейшие эмоции сдержать было трудно, и они вылились в эту статью. Далее в ней по большей части пойдет обсуждение статьи о сравнении решений на базе Vypress Chat и IRC.

Итак, начнем.

Критика

Что же такое IRC?

С первыми предложениями, которые говорит сайт Vypress Chat, я согласен. Действительно, Протокол IRC (Internet Relay Chat) входит в стандартный набор Интернет-протоколов. Он был разработан в далеком, 1989 году (опубликован как RFC четыре года спустя), именно как средство связи нескольких чат-серверов работающих в разных сегментах Интернета. Основное его достоинство � это, несомненно, возможность связывать между собой несколько территориально разрозненных серверов. Далее же утверждается, что поэтому протокол IRC избыточен. Для тех, кто не хочет читать спецификацию протокола IRC, кратко расскажу некоторые сведения, показывающие несостоятельность фразы на сайте Vypress Chat.

Отправка сообщения в IRC на уровне протокола выглядит следующим образом:

PRIVMSG АДРЕСАТ :текст сообщения


Здесь АДРЕСАТ может быть именем канала или ника. думаю, не нужно здесь говорить что сообщение нельзя передать, не передавая текста, потому текст за двоеточием не может быть избыточным. Поле АДРЕСАТ также не может создавать избыточности (ну как-то же надо указывать кому ты говоришь). Значит избыточными являются 7 байт префикса PRIVMSG. А теперь вдумайтесь поглубже, можно ли этот префикс называть избыточностью? В таком случае избыточным можно назвать, например протокол HTTP (а нафиг нужны всякие cookies, запросы?).

А как работает хваленый протокол Vypress Chat?

Пусть в сети сидит изначально 10 пользователей Vypress Chat'a. А всего в сети 300 включенных компьютеров (остальные 290 не сидят в чате). Когда один из 290 запустит программу Vypress Chat, то эта программа отошлет всем 300 компьютерам широковещательное сообщение типа "как вы здесь??". На это те 10, которые сидят в чате, должны ответить что-то вроде "я тут". Так создается список пользователей. При отправке же сообщения оно опять отсылается всем компьютерам в сети, независимо от того, нужно оно им или нет. Да и Vypress тоже использует префиксы сообщений для разделения их по каналам/приватам.

А теперь так и хочется вставить: чья бы корова мычала? (ох, простите за сарказм). Вот скажите, зачем ничего не подозревающим 289 пользователям получать сообщения вайпресса? Разве это не является избыточностью? Здесь избыточность составляет уже не 7 байт а килобайты, которые постоянно и стабильно загружают сетевой траффик.

Понравилась идея, высказанная авторами Vypress Chat поискать в Google эксплоиты для IRC. А они сами, интересно, пробовали это сделать или сказали для красного словца? У меня есть младший брат, который иногда, пытаясь доказать что-то, говорит: да не вру я, хочешь тому-то позвони?. Рассчитывает, что, мол, звонить-то лень будет. А теперь пройдите по двум предлагаемым в статье ссылкам на Google и найдите обещанные эксплоты, которые бы работали сейчас, а не 5 лет назад. Нет, не говорите: вон он!?. Вы попробуйте. Попробуйте сами проснифферить или сломать, а потом что-то утверждайте.


  • IRC exploit
  • IRC sniffing


А фраза "Вопреки расхожему заблуждению, протокол IRC не имеет никаких встроенных средств защиты данных, таких как шифрация или криптографически надежная аутентификация, таким образом, все передаваемые в пределах локальной сети разговоры и данные, могут быть легко перехвачены любым анализатором сетевого трафика" вообще поражает своей наглостью. Авторы, видимо, первый раз слышат об SSL. Что ж, мне жалко их, потому что эта технология действует в сфере IRC уже далеко не первый год.

И, напоследок, очень хочется заметить гениальную мысль авторов о "древности" протокола IRC. Не хочется их огорчать, но протоколы HTTP, FTP, TCP/IP ничуть не менее древние. Так зачем же они их используют, если им хочется нового. Может, все-таки, когда старое проверено временем и 100% работает, это не так уж и плохо?

Сетевой трафик

Цитата: "Еще одно распространенное обвинение в адрес Vypress Chat � это то, что он использует слишком много сетевого трафика и создает в сети так называемый broadcast storm (переполнение сетевого трафика широковещательными пакетами). IRC же, в силу того, что этот протокол вообще-то предназначен для Интернета, а не для локальных сетей, вообще не использует широковещательных пакетов, а потому, по мнению противников нашего чата, он гораздо лучше. Давайте разберемся?.

Да, действительно broadcast storm ("цепное" нарастание сетевых пакетов) Vypress не создает. Но широковещательные сообщения используются. Вот что говорят по этому поводу авторы: "работая с использованием широковещательных пакетов, чат использует их в исключительных ситуациях, только тогда, когда это самое оптимальное решение � при отправке данных для всех (строки в чат и смене состояния)".

А теперь вернемся к нашей локалке из 300 компьютеров, из которых теперь уже, например, 100 используют вайпресс. Допустим, каждый из 10 печатает со скоростью 150 символов в минуту (ну средняя такая скорость набора). Значит, в сумме они печатают 15000 символов в минуту (H15 килобайт). Значит каждый из 200, не участвующих в Vypress диалоге, будет получать по 15Кб только сообщений в минуту. Прибавим к ним примерно 5кБ служебных данных и получим около 20 килобайт. Казалось бы, немного. Но этот трафик всегда присутствует в сети. Более того, его можно отснифферить и увидеть человеку, не подключенному к чату, то, о чем они там говорят. Вам очень приятно общаться когда вас слушает кто угодно?

К тому же, не забывайте, что UDP Multicast пакет не имеет гарантированной доставки. То есть вас не просто слушает кто угодно, а еще и не гарантировано что ваш прямой собеседник получит предназначающееся ему сообщение.

Почему запрещают использовать Vypress

По мнению авторов это:

1. Vypress Chat работает по протоколу UDP, и раньше выявляет все проблемы сетевого уровня 2. В Vypress Chat нет начальников 3. В IRC легче за всеми следить


И поясняем:

1. Правда. Но если сделать сеть без глюков, то в какую цену она вам обойдется? Вы можете, конечно, протянуть оптоволокно и отличная работа UDP вам гарантирована. Но готовы ли вы за это отдать парочку-тройку своих зарплат? Стоит ли беспроблемное общение в чате таких денег? 2. Тоже правда. Именно поэтому на любой канал может зайти малолетний подросток и всех обложить матом с ног до головы. Приятно? 3. Не видел ни одного сервера, который бы читал чужие сообщения. А вот Multicast отснифферить проблем не составит.


Вопрос о целях

На самом деле вопрос о целях это, пожалуй самый важный вопрос при выборе многих вещей. Начиная от коробки спичек и заканчивая автомобилем. Я не хочу сказать Vypress это плохо, давайте все использовать IRC. Это было бы просто глупо. Мне тогда могут ответить, а зачем нам сервер, если у нас в сети 4 компьютера??. И они будут правы.

Кому нужен Vypress?

Представим ситуацию. Живете вы на оной лестничной клетке со своим другом. И надоело вам ходить каждый раз в соседнюю квартиру чтобы взять фильм. Купили 30 метров витой пары, 2 сетевые карточки и сделали локалку. Потом появился новый сосед, купили свич, сделали локалку на троих. И так набралось у вас человек 10-20. Замечательно. Неплохо бы устроить в нашей локалке чат. И если вы выберете технологию клиент-сервер, то вам придется купить сервер. Хиленький, но сервер. И он будет у кого-то жужжать под столом круглосуточно и мешать спать. Зачем вам это? Лучшим выходом будет использование решений от авторов Vypress Chat. С этим я полностью согласен и спорить, конечно, не буду.

Нет, протокол Vypress Chat не менее технологичен (что с пеной у рта доказывают его авторы). Интересно, как бы они вообще обозначили его технологичность, и смысл доказывать что-то? Пользователю не имеет значения как оно работает, ему важно, что работает, и с маленькой локалкой Vypress справляется. Но с большой, увы, нет. Авторам Vypress неплохо бы просто признать этот факт.

Кому нужно IRC?

Допустим, ваша локалка разрослась до 100 компьютеров. Наверняка у вас уже есть файловый сервер. Так почему бы не установить на нем и сервер для IRC? Он не будет использовать много системных ресурсов, но избавит вашу сеть от постоянных глюков и падений. С IRC сервером вы сможете подключиться и к другой локальной сети, дав людям бОльшую свободу общения.

IRC протокол проверен временем и работает. Сейчас альтернативой ему является Jabber сервер (обратите внимание, клиент-сервер), но по сервисам для общения комнатами Jabber пока далеко стоит от IRC. Так что, используйте то, что вам нужно. Ищите оптимальное решение. А я лишь пытался сказать как оно есть. Что двигало авторами статьи на сайте Vypress понятно: их программа платна и они заинтересованы в продажах. Допустим, локальная сеть на 100 человек, их программа стоит 20$, вот вам уже 2000$. Авторы этой статьи денег на своих программах не зарабатывают. И скрывать нам что-то от вас просто нет смысла.

Изображение:Go_irc.jpg
Личные инструменты