Solutions

Решения VyPRESS

Почему Vypress Chat лучше клиент-серверных решений (IRC и им подобных)

Нам периодически приходится слышать, что использование в локальных сетях нашего продукта Vypress Chat, менее приемлемо и даже менее «технологично» чем использование чатов, базирующихся на технологии клиент-сервер, такой как IRC и им подобных. Некоторые, мягко говоря, не слишком вдумчивые, администраторы локальных сетей даже пытаются запрещать использование Vypress Chat и насильно заставлять пользователей переходить в неудобные и недружелюбные IRC-клиенты, созданные апологетами мира UNIX® и предназначенные для кого угодно, кроме простых пользователей. Данная статья, призвана продемонстрировать, почему эти администраторы не правы, и почему данное мнение вообще в корне ошибочно.

Мы будем рассматривать локальную сеть, и сравнивать Vypress Chat 1.9, сконфигурированный для работы по протоколу IP Multicast и IRC сервер с IRC клиентами.

Что такое IRC

Протокол IRC (Internet Relay Chat) входит в стандартный набор Интернет-протоколов. Он был разработан в далеком, 1989 году (опубликован как RFC четыре года спустя), именно как средство связи нескольких чат-серверов работающих в разных сегментах Интернета. Основное его достоинство — это, несомненно, возможность связывать между собой несколько территориально разрозненных серверов. Таким образом, при использовании одного единственного сервера, IRC протокол привносит довольно большую избыточность в сетевой трафик уже по своей изначальной природе. Исторически, протокол IRC содержал довольно малый ассортимент сервисов, и лишь потом, когда жизнь признавала те или иные его возможности недостаточными, они расширялись все новыми документами и «под-стандартами». Так появились возможности DCC, позволяющие пересылать файлы и организовывать индивидуальные разговоры, так возникло огромное множество советов на тему «как преодолеть проблему многоязычности в Интернете» (стандартный IRC не поддерживает Unicode), и всё это, в результате, создало некоторые проблемы совместимости между разными версиями протоколов, расширений и нововведений от производителей популярных серверов и клиентов (в том числе есть и расширение IRCX от Microsoft, например).

Цитата
Ситуация с DDOS атакой на IRC сервера очень серьезная. Undernet допускает, что из-за атак будущее этой сети и самого IRC весьма туманно.

Вопреки расхожему заблуждению, протокол IRC не имеет никаких встроенных средств защиты данных, таких как шифрация или криптографически надежная аутентификация, таким образом, все передаваемые в пределах локальной сети разговоры и данные, могут быть легко перехвачены любым анализатором сетевого трафика. Так как протокол стандартный и полностью документированный, то большинство анализаторов сетевого трафика имеют встроенные средства для этого, а, кроме того, в Интернете легко обнаружить великое множество хорошо описанных атак на самые популярные IRC-клиенты и IRC-сервера (достаточно просто поискать на Google по словам IRC exploit или IRC sniffing).

IRC не имеет никаких встроенных средств для контроля сетевого трафика или его минимизации. Созданный более десяти лет назад, IRC ставит главной целью гарантированность доставки сообщения до каждого абонента даже огромной IRC-сети. Как бы ни забавно выглядела такая постановка задачи (задумайтесь, какой важностью обычно обладают общие сообщения в чате?), но на ее решение брошены все ресурсы IRC, включая сетевой трафик.

Итак, теперь давайте рассмотрим несколько ключевых аспектов более подробно.

Технологичность

Многие противники нашего чата, часто говорят своим оппонентам «Бросьте Вы эту поделку, Vypress Chat — это вчерашний день, давайте использовать стандартизованный, высокотехнологичный протокол IRC! Для него есть миллион клиентов, и каждый найдет по своему вкусу!». Конечно, нам бы следовало сравнить наш чат с каждым из этого «миллиона клиентов IRC», однако, когда в ходе подготовки статьи мы попытались отыскать самого достойного, мы убедились, что их действительно миллион, и найти в этом множестве, зачастую, весьма посредственного качества продуктов, что-нибудь более-менее приемлемое, представляется весьма затруднительным. Поэтому мы пошли простым социологическим путем и составили короткую сравнительную таблицу Vypress Chat 1.9 и самого популярного клиента IRC для Windows — mIRC.

Vypress Chat mIRC (RFC 1459)
Дата разработки сетевого протокола 1997 г. (версия 1.9 — 2003 г.) 1989 г. (последний IETF draft — 2000 г.)
Сервер платный? Нет (сервер не нужен) Для Windows платформы платный, для бесплатных версий UNIX — бесплатный
Клиент платный? Да – от $12 и ниже (клоны для бесплатных UNIX — бесплатные) Да – от $30 долларов
Максимальное количество поддерживаемых клиентов Оптимально – не более 1000 Теоретически не ограничено, на практике зависит от реализации клиента
Поддержка Unicode Есть Нет
Максимальная длина псевдонима пользователя 35 Unicode символов 9 ASCII символов
Максимальная длина сообщения в чате 960 Unicode символов 512 ASCII символов
Сложность настройки для конечного пользователя Минимальна, работает сразу после установки Максимальна (попробуйте!)
Usability (удобство пользовательского интерфейса) Очень удобно Программа для настоящих профессионалов борьбы с компьютером
Vypress Chat mIRC (RFC 1459)
Шифрация трафика Нет Нет
Избыточность протокола Очень мала Очень велика
Сложность перехвата сообщений Средняя — сообщения передаются напрямую, по нестандартному протоколу Низкая — протокол полностью описан, существуют готовые средства
Поддержка IPv6 Есть Нет
Централизованная настройка клиентов Есть Нет
Ориентация на использование в локальных сетях Есть Нет
Presence control (контроль реальной активности пользователя) Есть Нет
Flood control (контроль вредительской активности пользователя) Есть Есть
Поддержка макросов Есть Есть
Работа в многосегментных сетях Есть (по IP Multicast) Есть (по TCP)
Network Congestion (подверженность сетевым проблемам) Минимальная, P2P архитектура Максимальная (см. секцию 6.3 в RFC 2810)
Vypress Chat mIRC (RFC 1459)

Список можно еще некоторое время продолжать, но смысл от этого не изменится — технологических преимуществ у IRC нет, даже наоборот, есть явные технологические упущения и нецелесообразности.

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

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

Итак, начнем с определения, что же такое broadcast storm. Broadcast storm — это особые условия в сети, возникающие когда каждый клиент отвечает на какой-нибудь широковещательный запрос, таким же широковещательным ответом. На ответ опять следует широковещательный запрос, и так происходит на каждом компьютере в сети (или на очень большом их количестве). В результате количество широковещательных пакетов возрастает с огромной скоростью и трафик сети значительно перегружается. Печальная ситуация. Но Vypress Chat не может быть её причиной. Достаточно сказать, что Vypress Chat 1.9 НИ НА ОДИН ШИРОКОВЕЩАТЕЛЬНЫЙ ЗАПРОС НЕ ОТВЕЧАЕТ ШИРОКОВЕЩАТЕЛЬНЫМ ОТВЕТОМ. Конечно, при работе по протоколу IP Multicast, широковещательных пакетов чат не шлет вообще, однако, даже работая с использованием широковещательных пакетов, чат использует их в исключительных ситуациях, только тогда, когда это самое оптимальное решение — при отправке данных для всех (строки в чат и смене состояния), во всех других случаях наш чат шлет все только напрямую.

Протокол IRC не использует широковещательных пакетов, так как в Интернете, для которого он предназначен, их использовать невозможно. И IP Multicast в Интернете до сих пор использовать проблематично (хотя сообщество Интернет-пользователей активно пытается решить эту проблему и начать пользоваться благами IP Multicast). Широковещательные пакеты и мультикаст — это, пока, исключительное преимущество пользователей локальных сетей, их эксклюзивное право. Почему это преимущество? Давайте рассмотрим простой сценарий:

Пользователь заходит в публичный канал чата, пишет «Привет всем!» и нажимает Enter:

  • Vypress Chat перешлет эти данные всем пользователям сети ОДНИМ пакетом по протоколу IP Multicast. Размер пакета будет приблизительно равен длине имени пользователя, имени канала и длине текста (плюс около 10 байт служебных данных).
  • IRC-клиент, сначала отправит эти данные на сервер. Потом сервер, разошлет КОПИЮ этих данных индивидуально КАЖДОМУ КЛИЕНТУ, подключенному в данный момент к данному каналу. При этом размеры пакетов данных на всех этапах будут больше, чем использует Vypress Chat.

Таким образом, если к каналу в который пользователь написал «Привет всем» будет подключено 100 пользователей, то протокол IRC использует как минимум в 101 раз больше трафика чем Vypress Chat.

Цитата
IRC серверу, в идеале, требуется 5Мб трафика в секунду для нормальной работы и возможность значительно превышать эти требования при некоторых условиях. Если вы не можете обеспечить такие условия, то, вероятно, вам лучше не запускать IRC-сервер.

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

Более того, даже в стандарте IRC, в RFC 1459, написано, что IP Multicast мог бы быть лучшей альтернативой TCP и использован в IRC, но он не распространен в Интернете!

Таким образом, благодаря тому, что Vypress Chat использует все преимущества, предоставляемые именно локальными сетями, он требует на несколько порядков меньше трафика, чем любые клиент-серверные чаты (включая основанные на Интернет-протоколе IRC)!

Почему Вам запрещают использовать Vypress Chat? (Глава для пользователей)

Эта глава предназначена для простых конечных пользователей, которые, прочитав все написанное выше, наверное, задумались: «Если Vypress Chat так хорош, то почему нам запрещают им пользоваться и загоняют нас в IRC?». Это действительно хороший вопрос, и на него есть несколько ответов:

  • Vypress Chat работает по протоколу UDP, и раньше выявляет все проблемы сетевого уровня. Протокол UDP — это протокол без гарантированной доставки, и теоретически, пакеты в нем могут теряться. На практике же, все важные данные в чате доставляются гарантировано, с подтверждением, и, кроме того, в нормально функционирующей локальной сети, потеря пакетов практически невероятна. Чат не использует подтверждения сообщения для таких не слишком важных данных, как общий чат, и потому, если сеть неисправна, где-то неправильно сконфигурирована, либо имеются какие-то иные технические проблемы, то в чате рано или поздно это станет заметно. Администраторы же, «сваливают все с больной головы на здоровую», и вместо устранения истинных проблем, пытаются устранить мнимых врагов и предлагают использовать IRC, отказавшись от преимуществ локальной сети. Это все равно, как если бы городские власти вместо ремонта дорог предложили бы всем пересесть на трактора: ездит медленнее, комфорта меньше, зато дороги не нужны!
  • В Vypress Chat нет начальников. В нашем чате все равны — каждый может установить себе нашу программу, присоединиться к общему разговору, выбрать себе удобный псевдоним и ни у кого не спрашивать разрешений. Администраторы же, как, впрочем, и многие другие люди когда им выпадает такая возможность, любят власть и любят ее продемонстрировать — и потому их так привлекает атмосфера IRC, где он, администратор, может кого угодно отключить от канала, заставить использовать тот или иной псевдоним и только его, запретить создавать новые каналы и т. п. Весьма понятные мотивы, но уважительные ли?
  • В IRC легче за всеми следить. Так как IRC-чат работает через сервер, то там легко установить всеобщее наблюдение, и контролировать «кто», «куда», «где», «с кем» и «когда» и «о чём». Зачем это может понадобиться администратору ясно, но зачем это Вам?

Это всего лишь несколько возможных ответов, Вы можете поразмыслить и придумать свои собственные, но, скорее всего, они окажутся такого же плана: возможно, это в чьих-то других интересах, но никак не в интересах пользователей.

В Vypress Chat «полно дыр»?

Ну и, наконец, рассмотрим последнее обвинение, самое серьезное. Оно обычно выдвигается последним, если предыдущие были отвергнуты или не смогли быть сколько-нибудь действенно поддержаны. Оно звучит безапелляционно: «В Vypress Chat полно дыр, мне наш Вася-хакер сказал!».

Цитата
«Безусловно, IRC нет места в сетях предприятий из-за самой групповой природы общения, которое там происходит», говорит Ричард Стайннон, директор по исследованиям аналитической компании Gartner. Он предупреждает, что такие проблемы в безопасности могут открыть путь хакерам и «компьютерным червям» для проникновения в компанию.

Vypress Chat разрабатывается уже больше пяти лет. Сначала это был QuickChat, потом qChat, затем несколько версий Vypress Chat, и, наконец, Vypress Chat 1.9 уже создавался совместно с разработчиками приобретенного нами SEChat. Как любая очень популярная программа (а Vypress Chat на сегодня самая популярная программа в своем роде), наш продукт подвергался многочисленным «атакам» и исследованиям со стороны разного рода специалистов по сетевой безопасности. И, как и во всяком популярном, развивающемся продукте, находились ошибки и проблемы. Так, например, в выпущенной более двух лет назад версии 1.5.1 была обнаружена ошибка в обработке сетевых пакетов, приводившая к краху чата, и даже, в некоторых случаях, к краху Windows 95/98. Однако за более чем пять лет развития продукта, ни разу не было обнаружено ошибки, способной дать возможность «злоумышленнику» исполнить свой код на удаленном компьютере, либо получить несанкционированный доступ к данным на компьютере с работающим Vypress Chat. Сравните это с теми проблемами и пробелами в безопасности, обнаруженными за последние годы в популярных IRC-клиентах, таких как mIRC!

Более того, версия 1.9 в течение более чем года переписывалась в новой среде разработки, Microsoft Visual C++.NET. И помимо увеличения скорости работы и расширения совместимости, главнейшим приоритетом для разработчиков было повышение надежности и безопасности кода Vypress Chat. И благодаря работе наших программистов, а также использованию таких новейших технологий безопасности как buffer security check из Visual C++.NET 2003, чат версии 1.9 является отличным примером безопасного и устойчивого к атакам сетевого приложения.

Что касается устойчивости работы и совместимости в целом: задумайтесь на секунду, какую Вам предлагают альтернативу? Типичный сценарий использования IRC-клиентов, тот сценарий с расчетом на который они разрабатываются: пользователь установил соединение с Интернетом, запустил IRC-клиента, поболтал пару часиков, и закрыл его. Возможно, ли при таком использовании глубоко протестировать программу, выявить утечки ресурсов? Маловероятно. В то же время, Vypress Chat изначально разрабатывался для использования в течение всего времени работы компьютера: каждое утро, сотни тысяч компьютеров по всему миру загружаются со значком нашего чата возле часов. Как быстро мы узнаем о любой серьезной проблеме в нашем продукте? Вы себе вряд ли можете это представить. Во время работы над версией 1.9 мы выпустили около 15 публичных бета-версий, публичное тестирование продолжалось в течение полугода, мы получили сообщения от сотен бета-тестеров, бета-версии были скачены не-сколько десятков тысяч раз — такому тестированию подвергается редкий продукт!

Безусловно, в сегодняшнем мире сложного программного обеспечения никто на 100% не застрахован от проблем с безопасностью, однако Вы можете быть уверены, что Vypress Chat представляет собой один из самых хорошо протестированных, безопасных и защищенных продуктов на Вашем компьютере.

Правильный выбор

IRC весьма проработанный и полезный протокол. Технология клиент-сервер, безусловно, имеет право на жизнь. Однако каждая вещь должна использоваться в соответствии с её предназначением. Гвозди гораздо удобней забивать молотком. Если у Вас есть локальная сеть, не забывайте, что она дает Вашим компьютерам массу преимуществ, огромное количество возможностей, которых лишены компьютеры, объединенные в сеть Интернет. Наша программа Vypress Chat, позволит Вам использовать эти преимущества, повысить уровень качества услуг, получаемых от вашей компьютерной сети и компьютерных программ. Vypress Chat — это правильный и разумный выбор, даже если это у Вас любовь с первого взгляда.

> вверх страницы

Ваши замечания и пожелания, пожалуйста, отправляйте на webmaster@vypress.com
©1997-2010 VyPRESS® Research, LLC. Все права защищены.
Условия использования | Конфиденциальность