IRC Info > Статьи > Vypress Chat посвящается или IRC в локальных сетях
Карта Домой

Vypress Chat посвящается или IRC в локальных сетях

О чем это мы?

Как человек, занимающийся разработкой 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% работает, это не так уж и плохо?

Таблица сравнения

О, это шедевр :) Даже комментировать не знаю как… Ниже приводится исправленная таблица. В качестве примера IRC-клиента выбран KVIrc. Изменения и комментарии выделены курсивом.

Аргумент Vypress Chat KVIrc
Дата разработки сетевого протокола 1997 г. (версия 1.9 — 2003 г.) 1989 г. (последний IETF draft — 2000 г.)
Сервер платный? Нет (сервер не нужен) Для Windows платформы платный бесплатный (я понимаю, что если хочется платить, то можно и за воздух заплатить, но зачем?), для бесплатных версий UNIX — бесплатный
Клиент платный? Да – от $12 (за самую урезанную версию) и ниже (клоны для бесплатных UNIX — бесплатные) (при этом они написаны достаточно давно сторонними разработчиками и оставляют желать лучшего) Да – от $30 долларов Нет, бесплатный (KVIrc, X-Chat, irssi и другие)
Максимальное количество поддерживаемых клиентов Оптимально – не более 1000100-300 (почему-то на главной странице написано что до 300, хотя факты показывают что уже при 200 клиентах сеть становится неработоспособна) Не ограничено
Поддержка Unicode Есть Нет Есть (вы, наверно, с программами 5-летней давности сравниваете?)
Максимальная длина псевдонима пользователя 35 символов 9 символов 30 и более символов (когда в 1989 году изобретали, было действительно 9)
Максимальная длина сообщения в чате 960 Unicode символов 512 ASCII (или Unicode) символов
Сложность настройки для конечного пользователя Минимальна, работает сразу после установки Максимальна (попробуйте!) Попробовал, легко :)
Usability (удобство пользовательского интерфейса) Очень удобно Программа для настоящих профессионалов борьбы с компьютером Очень удобно. Воздержусь от комментариев, а то как бы не сматериться по поводу такого грязного камня в сторону IRC :)
Аргумент Vypress Chat KVIrc
Шифрация трафика Нет Нет Да - SSL + поддержка криптования (до 9 различных криптовальных машин)
Избыточность протокола Нет ??? Да Нет (прочитайте статью сначала, если не согласны)
Сложность перехвата сообщений Средняя — сообщения передаются напрямую, по нестандартному протоколу (нестандартные протоколы - лакомый косок для сниффера!) Низкая — протокол полностью описан, существуют готовые средства Высокая, при SSL невозможно.
Поддержка IPv6 Да Нет Да
Централизованная настройка клиентов Да Нет, и мы гордимся свободой каждого настраивать свой клиент по-своему, а не как сказал админ
Ориентация на использование в локальных сетях Да Нет Решение универсально
Presence control (контроль реальной активности пользователя) Да Нет Да, используйте соответствующие сервисы
Flood control (контроль вредительской активности пользователя) Да Да
Поддержка макросов Да Да, и не только макросов, но и нормальных языков программирования
Работа в многосегментных сетях Да (по IP Multicast) Да (по TCP)
Network Congestion (подверженность сетевым проблемам) Минимальная, P2P архитектура (???). Нигде не подтверждается, а на сторонних сайтах опровергается Максимальная (см. секцию 6.3 в RFC 2810) Низкая. Посмотрел. Что дальше? :)

Надеюсь, читатель оценил количество и качество сделанных исправлений в таблицах. Позволю себе оставить это без комментариев.

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

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

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

А теперь вернемся к нашей локалке из 300 компьютеров, из которых теперь уже, например, 100 используют вайпресс. Допустим, каждый из 10 печатает со скоростью 150 символов в минуту (ну средняя такая скорость набора). Значит, в сумме они печатают 15000 символов в минуту (≈15 килобайт). Значит каждый из 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$. Авторы этой статьи денег на своих программах не зарабатывают. И скрывать нам что-то от вас просто нет смысла.

Что еще посмотреть?

Автор: Alexey, KVIrc

Рейтинг: 8.7 (43 голосов)
Пожалуйста, оцените данную статью (страница перезагружена не будет).