Интернет-чат с ретрансляцией - Википедия - Internet Relay Chat

Первый IRC-сервер, tolsun.oulu.fi, a Вс-3 сервер на дисплее рядом с Университет Оулу компьютерный центр. (2001)

Интернет-чат (IRC) является прикладной уровень протокол, облегчающий общение в виде текста. Процесс чата работает по сетевой модели клиент / сервер. IRC-клиенты - это компьютерные программы, которые пользователи могут установить в своей системе, или веб-приложения, запускаемые локально в браузере или на стороннем сервере. Эти клиенты общаются с серверами чата для передачи сообщений другим клиентам.[1] IRC в основном предназначен для групповое общение в дискуссионных форумах, называемых каналы,[2] но также позволяет общаться один на один через Приватные сообщения[3] а также чат и передача данных,[4] включая обмен файлами.[5]

Клиентское программное обеспечение доступен для всех основных операционных систем, поддерживающих доступ в Интернет.[6] По состоянию на апрель 2011 года 100 крупнейших сетей IRC обслуживали одновременно более полумиллиона пользователей,[7] с сотнями тысяч каналов[7] работает примерно на 1500 серверах[7] из примерно 3200 серверов по всему миру.[8] Использование IRC неуклонно снижается с 2003 года, потеряв 60% своих пользователей (с 1 миллиона до примерно 400 000 в 2012 году) и половину своих каналов (с полумиллиона в 2003 году).[9]

История

IRC был создан Яркко Оикаринен в августе 1988 года для замены программы под названием MUT (MultiUser Talk) на BBS позвонил в OuluBox в Университет Оулу в Финляндия, где он работал в отделе обработки информации. Яркко намеревался расширить программное обеспечение BBS, которым он управлял, чтобы новости в Usenet стиль, обсуждения в реальном времени и аналогичные функции BBS. Первой частью, которую он реализовал, была часть чата, которую он сделал с помощью заимствованных частей, написанных его друзьями Юрки Куоппала и Юкка Пил. Первая сеть IRC работала на одном сервере с именем tolsun.oulu.fi.[10] Оикаринен нашел вдохновение в системе чата, известной как Bitnet Relay, который работал на BITNET.[11]

Юрки Куоппала подтолкнул Оикаринена попросить университет Оулу освободить код IRC, чтобы его можно было запускать и за пределами Оулу, и после того, как они, наконец, выпустили его, Юрки Куоппала немедленно установил другой сервер. Это была первая «IRC-сеть». У Оикаринена есть друзья в Хельсинкский университет и Университет Тампере запустить IRC-серверы, когда число его пользователей увеличилось, и вскоре последовали другие университеты. В это время Оикаринен понял, что остальные функции BBS, вероятно, не впишутся в его программу.[10]

Оикаринен связался с людьми в Денверский университет и Государственный университет Орегона. У них была собственная сеть IRC, и они хотели подключиться к финской сети. Они получили программу от одного из друзей Оикаринена, Виджая Субраманиама - первого человека не из Финляндии, который использовал IRC. Затем IRC расширился и стал использоваться во всей финской национальной сети Funet, а затем подключился к Нордунет, скандинавский филиал Интернета. В ноябре 1988 г. IRC распространился по Интернету, а к середине 1989 г. во всем мире насчитывалось около 40 серверов.[10]

EFnet

В августе 1990 года в мире IRC произошли первые серьезные разногласия. «A-net» (сеть анархии) включает сервер с именем eris.berkeley.edu. Он был открыт, не требовал паролей и не имел ограничений на количество подключений. Как объясняет Грег «wumpus» Линдал: «у него была линия серверов с подстановочными знаками, поэтому люди подключали серверы и неровный все "." Эрис Фри Сеть ", EFnet, сделал машину eris первой, которая была подвергнута Q-lined (Q для карантина) от IRC. И снова словами wumpus: «Эрис отказалась удалить эту линию, поэтому я сформировал EFnet. Это не было большой борьбой; я заставил все хабы присоединиться, и почти все остальные были унесены». Сеть A-net была создана с серверами eris, а EFnet - с серверами, отличными от eris. История показывает, что большинство серверов и пользователей используют EFnet. После расформирования ANet название EFnet стало бессмысленным, и снова это была единственная IRC-сеть.[10]

Примерно в то время IRC использовался для сообщения о Попытка государственного переворота 1991 года на протяжении всего отключение СМИ.[12] Ранее он использовался аналогичным образом во время Война в Персидском заливе.[13] Журналы чата этих и других событий хранятся в ibiblio архив.[14]

Вилка Undernet

Еще одна попытка форка, первая, которая действительно произвела большие и устойчивые изменения, была инициирована Wildthang в США в октябре 1992 года (она была разветвлена ​​на базе EFnet ircd версии 2.8.10). Это должно было быть просто тестовой сетью для разработки ботов, но быстро превратилось в сеть «для друзей и их друзей». В Европе и Канаде велась работа над отдельной новой сетью, и в декабре французские серверы подключились к канадским, а к концу месяца французская и канадская сети были подключены к американской, образуя сеть, которая позже появилась. называться "The Undernet ".[10]

"Сторонники" хотели развить ircd дальше в попытке уменьшить нагрузку на полосу пропускания и попытаться устранить хаос каналов (сети и поглощения ), от которого начал страдать EFnet. Для последней цели Undernet реализовал временные метки, новую маршрутизацию и предложил CService - программу, которая позволяла пользователям регистрировать каналы, а затем пыталась защитить их от нарушителей спокойствия. Первый представленный список серверов от 15 февраля 1993 года включает серверы из США, Канады, Франции, Хорватии и Японии. 15 августа был установлен новый рекорд по количеству пользователей - 57 пользователей.[10]

В мае 1993 г. RFC 1459[1] был опубликован и подробно описывает простой протокол для работы клиент / сервер, каналы, разговоры один-на-один и один-ко-многим.[10] Примечательно, что значительное количество расширений, таких как CTCP, цвета и форматы, не включены в спецификации протокола, как и кодировка символов,[15] что привело к расхождению в различных реализациях серверов и клиентов. Фактически, реализация программного обеспечения значительно варьировалась от одной сети к другой, каждая сеть реализовывала свои собственные политики и стандарты в своей собственной кодовой базе.

Вилка DALnet

Летом 1994 года Undernet была разветвлена. Новая сеть получила название ДАЛнет (назван в честь своего основателя: dalvenjah), созданный для лучшего обслуживания пользователей и большей защиты пользователей и каналов. Одним из наиболее значительных изменений в DALnet стало использование более длинных псевдонимов (исходное ограничение ircd составляло 9 букв). Модификации DALnet ircd выполнил Алексей "Lefler" Косут. Таким образом, DALnet был основан на ircd-сервере Undernet, хотя пионеры DALnet отказались от EFnet. По словам Джеймса Нга, первые люди из DALnet были «операторы в #StarTrek, больные из-за постоянных разделений / задержек / поглощений / и т. Д.».[10]

DALnet быстро предложил глобальные WallOps (сообщения IRCop, которые могут видеть пользователи с + w (/ mode NickName + w)), более длинные псевдонимы, Q: линейные псевдонимы (псевдонимы, которые нельзя использовать, например, ChanServ, IRCop, NickServ и т. Д.) , global K: Lines (запрет одного человека или всего домена на сервере или во всей сети), связь только через IRCop: GlobOps, режим + H, показывающий, что IRCop является «вспомогательной точкой» и т. д. Многие из новых функций DALnet были написаны в начале 1995 года Брайаном «Морфер» Смитом и позволил пользователям владеть псевдонимами, управлять каналами, отправлять записки и многое другое.[10]

Вилка IRCnet

В июле 1996 г., после нескольких месяцев пламя войны и обсуждения в списке рассылки, произошел еще один раскол из-за разногласий по поводу того, как должна развиваться разработка ircd. В частности, «европейская» сторона (большинство серверов находилось в Европе), которая позже назвала себя IRCnet выступал за задержки по нику и каналу, тогда как сторона EFnet выступала за временные метки.[10] Были также разногласия по поводу политики: европейская сторона начала устанавливать свод правил, определяющих, что IRCops могут и не могут делать, - точка зрения, против которой выступала американская сторона.[16]

Большинство (не все) серверов IRCnet находились в Европе, в то время как большинство серверов EFnet находились в США. Это событие также известно как «Великий раскол» во многих сообществах IRC. EFnet с тех пор (по состоянию на август 1998 года) вырос и превысил количество пользователей, которых у него было тогда. Осенью 2000 года (северной) у EFnet было около 50 000 пользователей, а у IRCnet - 70 000.[10]

Современный IRC

IRC сильно изменился за свою жизнь в Интернете. Новое серверное программное обеспечение добавило множество новых функций.

  • Услуги: Сетевые боты для облегчения регистрации псевдонимов и каналов, отправки сообщений для автономных пользователей и функций оператора сети.
  • Дополнительные режимы: в то время как исходная система IRC использовала набор стандартных пользовательских и канальных режимов, новые серверы добавляют много новых режимов для таких функций, как удаление цветовых кодов из текста,[17] или сокрытие маски хоста пользователя («маскировка») для защиты от атаки отказа в обслуживании.[18]
  • Обнаружение прокси: большинство современных серверов поддерживают обнаружение пользователей, пытающихся подключиться через небезопасный (неправильно настроенный или эксплуатируемый) Прокси сервер, которому затем может быть отказано в подключении. Это программное обеспечение для обнаружения прокси используется несколькими сетями, хотя этот список прокси в реальном времени не функционирует с начала 2006 года.[19]
  • Дополнительные команды: новые команды могут быть такими, как сокращенные команды для выдачи команд службам, команды только для оператора сети для управления маской хоста пользователя.[нужна цитата ]
  • Шифрование: Для этапа соединения клиент-сервер TLS могут быть использованы (сообщения перестают быть безопасными, когда они передаются другим пользователям по стандартным соединениям, но это делает подслушивание на или прослушивание индивидуальных сеансов IRC сложно). Для общения между клиентом, SDCC (Secure DCC) можно использовать.[нужна цитата ]
  • Протокол подключения: IRC может быть подключен через IPv4, старая версия протокол Интернета, или IPv6, текущий стандарт протокола.

По состоянию на 2016 год, новая работа по стандартизации ведется рабочей группой IRCv3, которая фокусируется на более продвинутых клиентских функциях, таких как мгновенные уведомления, улучшенная поддержка истории и повышенная безопасность.[20] По состоянию на 2019 год, ни одна из крупных сетей IRC полностью не приняла предложенный стандарт.[21]

После золотой эры в 1990-х и начале 2000-х (240 000 пользователей QuakeNet в 2004 году) IRC пережил значительный спад, потеряв около 60% пользователей в период с 2003 по 2012 год, при этом пользователи переходят на более новые. социальные медиа платформы как Facebook или же Twitter,[9] но также для открытых платформ, таких как XMPP который был разработан в 1999 году. Некоторые сети, например Freenode не следовали общей тенденции и увеличились более чем в четыре раза за тот же период.[9] По состоянию на 2016 год Freenode является крупнейшей сетью IRC, насчитывающей около 90 000 пользователей.[22]

Крупнейшие сети IRC традиционно относят к «большой четверке».[23][24][25][26]- обозначение сетей, возглавляющих статистику. Сети Большой четверки периодически меняются, но из-за того, что IRC является сообществом, пользователи могут выбирать из большого количества других сетей.

Исторически «большой четверкой» были:[23][24][25]

IRC достиг 6 миллионов одновременных пользователей в 2001 году и 10 миллионов пользователей в 2003 году, упав до 371 тысячи в 2018 году.[нужна цитата ]

По состоянию на октябрь 2018 г., крупнейшими IRC-сетями являются:

  • Freenode - около 90 тыс. Пользователей в часы пик
  • IRCnet - около 30 тыс. Пользователей в часы пик
  • EFnet - около 18 тыс. Пользователей в часы пик
  • Undernet - около 17 тыс. Пользователей в часы пик
  • QuakeNet - около 15 тыс. Пользователей в часы пик
  • Ризон - около 14 тыс. Пользователей в часы пик
  • OFTC - около 13 тыс. Пользователей в часы пик
  • ДАЛнет - около 8 тыс. Пользователей в часы пик

Сегодня к 100 ведущим сетям IRC подключено около 370 тыс. Пользователей в часы пик.[27]

График

1990
1992
1994
1996
1998
2000
2002
2004
2006
2008
2010
2012
2014
2016
2018
2020
IRC сети

Техническая информация

Скриншот HexChat, IRC-клиент для GTK среды.
Xaric, текстовый IRC-клиент, используемый на Mac OS X. Показаны два IRC-канала и личный разговор с автором программного обеспечения.

IRC - открытый протокол который использует TCP[1] и, необязательно, TLS. An IRC сервер может подключаться к другим серверам IRC для расширения сети IRC.[28] Пользователи получают доступ к сетям IRC, подключая клиента к серверу.[29] Существует множество клиентских реализаций, таких как mIRC, HexChat и irssi, и реализации сервера, например оригинал IRCd. Большинство серверов IRC не требуют, чтобы пользователи регистрировали учетную запись, а Ник требуется перед подключением.[30]

IRC изначально был простой текстовый протокол[1] (хотя позже и расширенный), которому по запросу был назначен порт 194 / TCP к IANA.[31] Тем не менее де-факто стандарт всегда запускал IRC на 6667 / TCP[32] и соседние номера портов (например, TCP-порты 6660–6669, 7000)[33] чтобы не запускать IRCd программное обеспечение с привилегии root.

Протокол указывал, что символы были 8-битными, но не указывал кодировку символов, которую должен использовать текст.[15] Это может вызвать проблемы, когда пользователи, использующие разные клиенты и / или разные платформы, хотят общаться.

Все используемые сегодня протоколы IRC между клиентом и сервером являются производными от протокола, реализованного в версии irc2.4.0 сервера IRC2, и задокументированы в RFC 1459. С RFC 1459 был опубликован, новые функции в реализации irc2.10 привели к публикации нескольких пересмотренных протокольных документов (RFC 2810, RFC 2811, RFC 2812 и RFC 2813 ); однако эти изменения протокола не получили широкого распространения среди других реализаций.[нужна цитата ]

Хотя многие спецификации протокола IRC были опубликованы, официальной спецификации нет, поскольку протокол остается динамичным. Практически ни один клиент и очень немногие серверы строго полагаются на приведенные выше RFC как ссылку.[нужна цитата ]

Microsoft сделала расширение для IRC в 1998 году через проприетарный IRCX.[34] Позже они прекратили распространение программного обеспечения, поддерживающего IRCX, вместо этого разработали проприетарный MSNP.

Стандартная структура сети IRC серверов - это дерево.[35] Сообщения маршрутизируются только по необходимым ветвям дерева, но состояние сети отправляется на каждый сервер.[36] и, как правило, между серверами существует высокая степень неявного доверия. Однако у этой архитектуры есть ряд проблем. Некорректно работающий или злонамеренный сервер может нанести серьезный ущерб сети.[37] и любые изменения в структуре, преднамеренные или в результате условий в базовой сети, требуют net-split и net-join. Это приводит к большому сетевому трафику и ложным сообщениям о выходе / присоединении для пользователей.[38] и временная потеря связи с пользователями на разделяющих серверах. Добавление сервера в большую сеть означает большую фоновую нагрузку на полосу пропускания в сети и большую нагрузку на память на сервере. Однако после создания каждое сообщение нескольким получателям доставляется аналогично многоадресная передача, то есть каждое сообщение проходит по сетевой ссылке ровно один раз.[39] Это преимущество по сравнению с протоколами без многоадресной рассылки, такими как Простой протокол передачи почты (SMTP) или Расширяемый протокол обмена сообщениями и присутствия (XMPP).

Демон IRC также может использоваться в локальной сети (LAN). Таким образом, IRC можно использовать для облегчения общения между людьми в локальной сети (внутреннее общение).[40][41]

Команды и ответы

IRC имеет линейную структуру. Клиенты отправляют на сервер однострочные сообщения,[42] получать ответы на эти сообщения[43] и получать копии некоторых сообщений, отправленных другими клиентами. В большинстве клиентов пользователи могут вводить команды, добавляя к ним префикс '/'. В зависимости от команды они могут либо полностью обрабатываться клиентом, либо (как правило, для команд, которые клиент не распознает) передаваться непосредственно на сервер, возможно, с некоторыми изменениями.[нужна цитата ]

Из-за природы протокола автоматизированные системы не всегда могут правильно связать отправленную команду с ее ответом с полной надежностью и подвержены угадыванию.[44]

каналы

Основное средство связи с группой пользователей в установленном сеансе IRC - через канал.[45] Каналы в сети можно отобразить с помощью команды IRC СПИСОК,[46] который перечисляет все доступные в настоящее время каналы, для которых не установлены режимы + s или + p, в этой конкретной сети.

Пользователи могут присоединиться канал, использующий ПРИСОЕДИНИТЬСЯ команда[47] у большинства клиентов доступны как / присоединиться к #channelname. Сообщения, отправленные на объединенные каналы, затем ретранслируются всем другим пользователям.[45]

Каналы, доступные во всей сети IRC, имеют префикс '#', а каналы, локальные для сервера, используют '&'.[48] К другим менее распространенным типам каналов относятся "+" каналы - "немодальные" каналы без операторов.[49]-и '!' каналы, форма с отметкой времени канал в сетях с обычными временными метками.[50]

Режимы

Пользователи и каналы могут иметь режимы которые представлены одиночными буквами с учетом регистра[51] и устанавливаются с помощью РЕЖИМ команда.[52] Пользовательские режимы и режимы каналов разделены и могут использовать одну и ту же букву для обозначения разных вещей (например, режим пользователя «i» является невидимым режимом, а режим канала «i» - только по приглашению.[53]) Режимы обычно устанавливаются и сбрасываются с помощью команды режима, которая принимает цель (пользователя или канал), набор режимов, которые нужно установить (+) или сбросить (-), и любые параметры, необходимые режимам.

Некоторые режимы канала принимают параметры, а другие режимы канала применяются к пользователю на канале или добавляют или удаляют маску (например, маску запрета) из списка, связанного с каналом, вместо применения ко всему каналу.[54] Режимы, которые применяются к пользователям на канале, имеют связанный символ, который используется для представления режима в ответах с именами.[55] (отправляется клиентам при первом подключении к каналу[47] и использование команды names), а во многих клиентах также используется для представления этого в отображаемом клиентом списке пользователей в канале или для отображения собственного индикатора для режимов пользователя.

Чтобы правильно анализировать входящие сообщения режима и отслеживать состояние канала, клиент должен знать, какой режим относится к какому типу, и для режимов, которые применяются к пользователю на канале, какой символ соответствует какой букве. В ранних реализациях IRC это должно было быть жестко закодировано в клиенте, но теперь существует стандартное расширение де-факто для протокола, называемого ISUPPORT, которое отправляет эту информацию клиенту во время соединения с использованием числового 005.[56][57]

В IRC есть небольшая конструктивная ошибка в отношении режимов, которые применяются к пользователям на каналах: сообщение имен, используемое для установления начального состояния канала, может отправлять только один такой режим для каждого пользователя на канале,[55] но для одного пользователя можно установить несколько таких режимов. Например, если пользователь имеет статус оператора (+ o) и статус голоса (+ v) на канале, новый клиент не сможет увидеть режим с меньшим приоритетом (то есть голос). Обходные пути для этого возможны как на стороне клиента, так и на стороне сервера, но ни один из них не применяется широко.

Стандарт (RFC 1459 ) режимы

Пользовательские режимы
ПисьмоСимволОписание
яНевидимый - его нельзя увидеть без общего канала или без знания точного названия.
sПолучает уведомления сервера
шПолучает шлепки[58]
оПользователь является оператором IRC (ircop)
Режимы каналов
ПисьмоСимволПараметр (ы)Описание
о@Имя затронутого пользователяОператор канала - может изменять режимы канала и, среди прочего, выгнать пользователей с канала.
sСекретный канал - не отображается в списке каналов или в Whois пользователей, за исключением пользователей, уже находящихся на канале.
пЧастный канал - указан в списке каналов как "prv" согласно RFC 1459
пПользователи не могут отправлять сообщения на канал извне
мКанал модерируется (отправлять на него сообщения могут только те, кто имеет статус оператора канала или голосовой статус на канале)
яНа канал могут войти только пользователи с приглашениями.
тТолько операторы канала могут изменять тему канала.
лОграничить количествоОграничивает количество пользователей, которые могут быть на канале (при заполнении новые пользователи не могут присоединиться)
бМаска бана (ник! Пользователь @ хост с разрешенными подстановочными знаками)Баны hostmasks с канала
v+Имя затронутого пользователяПредоставляет пользователю голосовой статус на канале (см. + M выше)
kКлюч нового каналаУстанавливает ключ канала таким образом, что только пользователи, знающие ключ, могут вводить

Многие демоны и сети добавили дополнительные режимы или изменили поведение режимов в приведенном выше списке.[59][60][61][62]

Операторы каналов

А Оператор канала это клиент на IRC канал , который управляет каналом. Операторов канала IRC можно легко увидеть по символу или значку рядом с их именем (зависит от реализации клиента, обычно это префикс символа «@», зеленый кружок или латинская буква «+ o» / » o "). В большинстве сетей оператор может:

  • Ударить пользователя
  • Забанить пользователя
  • Дайте другому пользователю статус оператора канала IRC или статус голоса канала IRC.
  • Измените тему IRC-канала, когда установлен режим канала + t.
  • Измените блокировки режима канала IRC.

Операторы IRC

Есть также пользователи, которые имеют повышенные права на своем локальном сервере или во всей сети; они называются операторами IRC,[63] иногда сокращается до IRCops или Opers (не путать с операторами каналов). Поскольку реализация IRCd меняется, меняются и привилегии оператора IRC на данном IRCd. RFC 1459[63] утверждает, что операторы IRC являются «неизбежным злом» для поддержания чистого состояния сети, и поэтому они должны иметь возможность отключать и повторно подключать серверы. Кроме того, чтобы предотвратить проникновение злонамеренных пользователей или даже вредоносных автоматизированных программ в IRC, операторам IRC обычно разрешается отключать клиентов и полностью запрещать IP-адреса или целые подсети. Сети, предоставляющие услуги (NickServ и др.), Обычно позволяют своим операторам IRC также решать базовые вопросы «владения». Дополнительные привилегированные права могут включать в себя отмену запретов каналов (возможность присоединяться к каналам, к которым они не могли бы присоединиться, если бы они не были задействованы), возможность использовать себя на каналах, где они не могли бы работать без управления, автоматическое включение по каналам всегда и пр.

Маски хоста

Маска хоста - это уникальный идентификатор IRC. клиент подключен к IRC сервер.[64][65] IRC серверы, Сервисы, и другие клиенты, в том числе боты, может использовать его для идентификации конкретного сеанса IRC.

Формат маски хоста: ник! пользователь @ хост. Маска хоста похожа, но не следует путать с Адрес электронной почты.

Часть псевдонима - это псевдоним, выбранный пользователем, который может быть изменен при подключении. Пользовательская часть - это имя пользователя, указанное пользователем. идентификатор на клиенте.[66] Если идентификатор недоступен на клиенте, имя пользователя, указанное при подключении клиента, используется после префикса с префиксом тильда.[67]

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

Из-за Конфиденциальность последствия раскрытия IP-адреса или имени хоста клиента, некоторые IRC-демоны также предоставляют функции конфиденциальности, такие как InspIRCD или режим UnrealIRCd «+ x». Этот хеши IP-адрес клиента или маскирует часть имени хоста клиента, делая его нечитаемым для пользователей, кроме IRCops. Пользователи также могут иметь возможность запросить «виртуальный хост» (или «vhost»), который будет отображаться в маске хоста, чтобы обеспечить дополнительную анонимность. Некоторые сети IRC, такие как Freenode используйте их как «маскировку», чтобы указать, что пользователь связан с группой или проектом.[68]

Схема URI

Есть три признанных унифицированный идентификатор ресурса (URI) схемы для Internet Relay Chat: irc, ircs, и irc6.[69] При поддержке они позволяют гиперссылки различных форм, в том числе

irc: //  [: ] / [ [? ]] ircs: //  [: ] / [ [? ]] irc6: // <хост> [: <порт>] / [<канал> [? <ключевое_слово_канала>]]

(где элементы, заключенные в квадратные скобки ([,]), являются необязательными) для использования (при необходимости) для подключения к указанному хосту (или сети, если это известно IRC-клиенту) и присоединения к указанному каналу.[70] (Это можно использовать в самом клиенте или из другого приложения, такого как веб-браузер). irc - это URI по умолчанию, irc6 указывает соединение, которое должно быть выполнено с использованием IPv6, а ircs указывает безопасное соединение.

Согласно спецификации, обычный символ решетки (#) будет добавлен к именам каналов, которые начинаются с символа буквенно-цифровой символ - позволяет его опустить. Некоторые реализации (например, mIRC) будут делать это безусловно приводит к появлению (обычно непреднамеренного) дополнительного (например, ## канал), если оно включено в URL.

Некоторые реализации позволяют указывать несколько каналов, разделенных запятыми.[71]

Вызовы

Проблемы в первоначальном дизайне IRC заключались в количестве общих данных состояния.[72][73] являясь ограничением масштабируемости,[74] отсутствие уникальных идентификаторов пользователей, приводящее к проблеме коллизии никнеймов,[75] отсутствие защиты от сети с помощью циклической маршрутизации,[76][77] компромисс в масштабируемости ради информации о присутствии пользователя в реальном времени,[78] слабые места протокола, создающие платформу для злоупотреблений,[79] нет прозрачной и оптимизируемой передачи сообщений,[80] и без шифрования.[81] Некоторые из этих проблем были рассмотрены в Современный IRC.

Атаки

Поскольку соединения IRC могут быть незашифрованными и обычно охватывают длительные периоды времени, они являются привлекательной целью для DoS / DDoS-атакующие и хакеры. Из-за этого необходима тщательная политика безопасности, чтобы гарантировать, что сеть IRC не подвержена атакам, таким как перенимать война. Сети IRC могут также K-линия или же G-линия пользователи или серверы, которые оказывают вредное воздействие.

Некоторые серверы IRC поддерживают SSL / TLS подключения в целях безопасности. Это помогает прекратить использование анализатор пакетов программы для получения паролей пользователей IRC, но мало используются за пределами этой области из-за публичного характера каналов IRC. Для SSL-соединений требуется поддержка как клиента, так и сервера (для этого может потребоваться установка двоичных файлов SSL и специальных исправлений или модулей IRC-клиента на свои компьютеры). Некоторые сети также используют SSL для межсерверных соединений и предоставляют специальный флаг канала (например, + S), чтобы разрешить доступ к каналу только пользователям, подключенным по протоколу SSL, но запретить идентификацию оператора открытым текстом, чтобы лучше использовать преимущества SSL.[82][83]

IRC послужил первой лабораторией для многих видов интернет-атак, таких как использование поддельных ICMP недоступные сообщения для взлома TCP -на основе IRC-соединений (ядерный удар ) раздражать пользователей или облегчать поглощения.

Предотвращение злоупотреблений

Один из наиболее спорных технических вопросов, связанных с реализациями IRC, который сохранился до сих пор, - это достоинства протоколов «Nick / Channel Delay» и «Timestamp». Оба метода существуют для решения проблемы атак типа «отказ в обслуживании», но используют очень разные подходы. Проблема с исходным протоколом IRC, как было реализовано, заключалась в том, что, когда два сервера разделяются и воссоединяются, две стороны сети просто объединяют свои каналы. . Если бы пользователь мог присоединиться к «разделенному» серверу, где канал, который существовал на другой стороне сети, был пуст, и получить статус оператора, он стал бы оператором канала «комбинированного» канала после нетсплит закончился; если пользователь взял псевдоним, который существовал на другой стороне сети, сервер убивал обоих пользователей при повторном присоединении (т. е. «ник-коллизия»). Этим часто злоупотребляли, чтобы «массово убить» всех пользователей на канале, таким образом создавая "бесполезные" каналы, где не было операторов, которые могли бы справиться со злоупотреблениями. Помимо проблем в IRC, это побуждало людей проводить атаки типа «отказ в обслуживании» против серверов IRC, чтобы вызвать сети, которыми они будут злоупотреблять.

В ник задержка (ND) и задержка канала (CD) стратегии направлены на предотвращение злоупотреблений путем отсрочки повторного подключения и переименования. После выхода пользователя и прозвище становится доступным, либо канал перестает существовать, потому что все его пользователи разошлись (как это часто бывает во время нетсплит ), сервер не позволит никому из пользователей использовать этот псевдоним или присоединиться к этому каналу до определенного периода времени ( задерживать) прошел. Идея заключается в том, что даже если нетсплит Это бесполезно для злоумышленника, поскольку он не может получить псевдоним или статус оператора на канале, и, таким образом, не может произойти конфликт псевдонима или «слияние» канала. В некоторой степени это доставляет неудобства законным пользователям, которые могут быть вынуждены на короткое время использовать другое имя после повторного присоединения (добавление подчеркивать популярен).

Протокол отметок времени является альтернативой задержкам ников / каналов, которые разрешают конфликты с использованием приоритета с отметками времени. Каждому нику и каналу в сети присваивается временная метка - дата и время, когда он был создан. Когда происходит netsplit, два пользователя с каждой стороны могут использовать один и тот же псевдоним или канал, но когда две стороны объединяются, выжить может только один. В случае с никнеймами новый пользователь, согласно их TS, будет убит; когда канал конфликтует, участники (пользователи канала) объединяются, но операторы канала на «проигрышной» стороне разделения теряют свой статус оператора канала.

TS - гораздо более сложный протокол, чем ND / CD, как по дизайну, так и по реализации, и, несмотря на то, что он прошел несколько изменений, в некоторых реализациях все еще есть проблемы с «рассинхронизацией» (когда два сервера в одной сети расходятся во мнениях о текущем состоянии сеть) и слишком снисходительно относиться к тому, что позволяла «проигравшая» сторона. В исходных протоколах TS, например, не было защиты от пользователей, устанавливающих запреты или другие режимы в проигрывающем канале, которые затем будут объединены при повторном присоединении разделения, даже если пользователи, которые установили эти режимы, потеряли свой статус оператора канала. Некоторые современные IRC-серверы на базе TS также включают некоторую форму ND и / или CD в дополнение к меткам времени в попытке еще больше обуздать злоупотребления.

Большинство сетей сегодня используют подход с использованием временных меток. Разногласия между отметками времени и ND / CD привели к тому, что несколько серверов отделились от EFnet и сформировать новый IRCnet. После разделения EFnet перешла на протокол TS, а IRCnet использовала ND / CD.

В последних версиях IRCnet ircd, а также ircds, использующих протокол TS6 (включая Charybdis), ND был расширен / заменен механизмом SAVE. Этот механизм назначает каждому клиенту UID при подключении к IRC серверу. Этот идентификатор начинается с номера, который запрещен в никах (хотя некоторые ircds, а именно IRCnet и InspIRCd, позволяют клиентам переключаться на свой собственный UID в качестве псевдонима).

Если два клиента с одним и тем же ником присоединяются с разных сторон сети netsplit («коллизия ников»), первый сервер, который увидит это коллизию, вызовет обе клиенты могут изменить свой ник на свой UID, тем самым спасая обоих клиентов от отключения. В IRCnet псевдоним также будет заблокирован на некоторое время (ND), чтобы оба клиента не смогли вернуться к исходному нику, что приведет к повторному конфликту.

Клиенты

Клиентское программное обеспечение

Схема IRC-сети с обычные клиенты (зеленый), боты (синий) и вышибалы (апельсин)

Клиентское ПО существует для различных операционные системы или программные пакеты, а также веб-игры или внутренние игры. Для различных операционных систем доступно множество различных клиентов, включая Windows, Unix и Linux, Mac OS X и мобильные операционные системы (такие как iOS и Android ). В Windows, mIRC один из самых популярных клиентов.[84]

Некоторые программы, расширяемые с помощью плагины также служат платформами для клиентов IRC. Например, клиент позвонил ERC, полностью написано на Emacs Lisp, включен в версию 22.3 Emacs. Следовательно, любая платформа, на которой может работать Emacs, может запускать ERC.

Номер веб-браузеры имеют встроенные клиенты IRC, такие как Опера (версия 12.18 и более ранние )[85] и ChatZilla дополнение для Mozilla Fire Fox (для Firefox 56 и более ранних версий; включен как встроенный компонент SeaMonkey ). Веб-клиенты, такие как Миббит KiwiIRC с открытым исходным кодом, может работать в большинстве браузеров.

Такие игры как Война,[86] Нереальный Турнир (вплоть до Нереальный турнир 2004 ),[87] Восходящий канал,[88] Пружинный двигатель игры на основе, 0 г. и ZDaemon включили IRC.[89]

Ustream интерфейс чата IRC с настраиваемой аутентификацией[90] а также Twitch (ранее Justin.tv).[91][92]

Боты

Типичное использование ботов в IRC - обеспечение IRC услуги или определенные функции в канале, такие как размещение игры на основе чата или предоставление уведомлений о внешних событиях. Однако некоторые IRC-боты используются для запуска вредоносных атак, таких как отказ в обслуживании, рассылка спама или использование.[93]

Вышибала

Программа, работающая как демон на сервер и функционирует как постоянный доверенное лицо известен как BNC или вышибала. Цель состоит в том, чтобы поддерживать соединение с сервером IRC, действуя как ретранслятор между сервером и клиентом, или просто действовать как прокси.[нужна цитата ] Если клиент теряет возможность подключения к сети, BNC может оставаться подключенным и архивировать весь трафик для последующей доставки, позволяя пользователю возобновить сеанс IRC, не прерывая подключение к серверу.[94]

Кроме того, чтобы получить эффект вышибалы, IRC-клиент (обычно текстовый, Например Ирсси ) может быть запущен на постоянно активном сервере, к которому пользователь подключается через ssh. Это также позволяет устройствам, которые имеют только функции ssh, но не установлен сам фактический клиент IRC, подключаться к IRC, и это позволяет совместно использовать сеансы IRC.[95]

Чтобы IRC-клиент не завершил работу при закрытии ssh-соединения, клиент может быть запущен внутри оконечный мультиплексор Такие как Экран GNU или же tmux, таким образом, оставаясь постоянно подключенным к сети (ам) IRC и имея возможность регистрировать разговоры в каналах, которые интересуют пользователя, или поддерживать присутствие канала в сети. Созданный по образцу этой установки, в 2004 году IRC-клиент после клиент-сервер модель, названная Smuxi, был запущен.[96][97]

Поисковые системы

Существует множество поисковых систем, которые помогают пользователю найти то, что он ищет в IRC.[98][99] Как правило, поисковая система состоит из двух частей: «внутренней» (или «поисковой машины / сканера») и внешней «поисковой машины».

Серверная часть (паук / веб-краулер) - это рабочая лошадка поисковой системы. Он отвечает за сканирование серверов IRC для индексации информации, передаваемой через них. Индексируемая информация обычно состоит исключительно из текста канала (текста, который публично отображается в общедоступных каналах). Метод хранения обычно представляет собой реляционную базу данных, например MySQL или же Oracle.[нужна цитата ]

Внешняя «поисковая машина» - это пользовательский интерфейс к базе данных. It supplies users with a way to search the database of indexed information to retrieve the data they are looking for. These front-end search engines can also be coded in numerous programming languages.

Most search engines have their own spider that is a single application responsible for crawling IRC and indexing data itself; however, others are "user based" indexers. The latter rely on users to install their "add-on" to their IRC client; the add-on is what sends the database the channel information of whatever channels the user happens to be on.[нужна цитата ]

Many users have implemented their own для этого случая search engines using the logging features built into many IRC clients. These search engines are usually implemented as bots and dedicated to a particular channel or group of associated channels.

Кодировка символов

IRC still lacks a single globally accepted standard convention for how to transmit characters outside the 7-bit ASCII repertoire.IRC servers normally[требуется разъяснение ] transfer messages from a client to another client just as byte sequences, without any interpretation or recoding of символы. The IRC protocol (unlike e.g. MIME или же HTTP ) lacks mechanisms for announcing and negotiating character encoding options. This has put the responsibility for choosing the appropriate character codec on the client. In practice, IRC channels have largely used the same character encodings that were also used by operating systems (in particular Unix derivatives) in the respective language communities:

  • 7-bit era: In the early days of IRC, especially among Скандинавский и Финский язык users, national variants of ISO 646 were the dominant character encodings. These encode non-ASCII characters like Ä Ö Å ä ö å at code positions 0x5B 0x5C 0x5D 0x7B 0x7C 0x7D (US-ASCII: [ \ ] { | }). That is why these codes are always allowed in nicknames. В соответствии с RFC 1459, { | } in nicknames should be treated as lowercase equivalents of [ ] respectively.[15] By the late 1990s, the use of 7-bit encodings had disappeared in favour of ISO 8859-1, and such equivalence mappings were dropped from some IRC daemons.
  • 8-bit era: Since the early 1990s, 8-bit encodings such as ISO 8859-1 have become commonly used for European languages. Russian users had a choice of КОИ8-Р, ISO 8859-5[нужна цитата ] и CP1251, and since about 2000, modern Russian IRC networks convert between these different commonly used encodings of the Кириллица.
  • Multi-byte era: For a long time, East Asian IRC channels with logographic scripts in China, Japan, and Korea have been using multi-byte encodings such as EUC или же ISO-2022-JP. With the common migration from ISO 8859 to UTF-8 on Linux and Unix platforms since about 2002, UTF-8 has become an increasingly popular substitute for many of the previously used 8-bit encodings in European channels. Some IRC clients are now capable of reading messages both in ISO 8859-1 or UTF-8 in the same channel, heuristically autodetecting which encoding is used. The shift to UTF-8 began in particular on Finnish-speaking IRC (Merkistö (Финский)).

Today, the UTF-8 encoding of Unicode /ISO 10646 would be the most likely contender for a single future standard character encoding for all IRC communication, if such standard ever relaxed the 510-byte message size restriction. UTF-8 is ASCII compatible and covers the superset of all other commonly used coded character set стандарты.

Обмен файлами

Much like conventional P2P file sharing, users can create file servers that allow them to share files with each other by using customised IRC bots or scripts for their IRC client. Often users will group together to distribute варез via a network of IRC bots.[100]

Technically, IRC provides no передача файла mechanisms itself; file sharing is implemented by IRC clients, typically using the Прямой клиент-клиент (DCC) protocol, in which file transfers are negotiated through the exchange of private messages between clients. The vast majority of IRC clients feature support for DCC file transfers, hence the view that file sharing is an integral feature of IRC.[101] The commonplace usage of this protocol, however, sometimes also causes DCC spam. DCC commands have also been used to exploit vulnerable clients into performing an action such as disconnecting from the server or exiting the client.

Смотрите также

Рекомендации

  1. ^ а б c d "Вступление". Internet Relay Chat Protocol. п. 4. sec. 1. Дои:10.17487/RFC1459. RFC 1459.
  2. ^ "One-to-many". Internet Relay Chat Protocol. п. 11. sec. 3.2. Дои:10.17487/RFC1459. RFC 1459.
  3. ^ "One-To-One Communication". Internet Relay Chat: Architecture. п. 5. sec. 5.1. Дои:10.17487/RFC2810. RFC 2810.
  4. ^ Rollo, Troy. "A description of the DCC protocol". irchelp.org. Получено 8 апреля 2011.
  5. ^ Wang, Wallace (25 October 2004). "Instant Messaging and Online Chat Rooms: Internet Relay Chat (IRC)". Steal this File Sharing Book (1-е изд.). Сан - Франциско, Калифорния: Пресс без крахмала. стр.61–67. ISBN  978-1-59327-050-6.
  6. ^ "SAGE IRC Channel". Sage – The USENIX Special Interest Group for Sysadmins. Архивировано из оригинал 7 февраля 2012 г.. Получено 18 апреля 2011.
  7. ^ а б c "IRC Networks – Top 100". irc.netsplit.de. Получено 8 апреля 2011.
  8. ^ "IRC Servers – Summary". irc.netsplit.de. Архивировано из оригинал on 22 April 2011. Получено 8 апреля 2011.
  9. ^ а б c "IRC is dead, long live IRC". Pingdom. 24 апреля 2012 г.. Получено 25 апреля 2016.
  10. ^ а б c d е ж грамм час я j k Stenberg, Daniel (29 March 2011). "History of IRC (Internet Relay Chat)". Получено 25 апреля 2016. I did not experience all of this. I found information on various places and I received information from various people in order to write this. People that have helped me with this include: Greg "wumpus" Lindahl, Vesa "vesa" Ruokonen, James Ng, Tuomas Heino, Richard (eagle`s on undernet), Ari Lemmke
  11. ^ Oikarinen, Jarkko. "Founding IRC". Получено 8 апреля 2011.
  12. ^ "IRC transcripts from the time of the 1991 Soviet coup d'état attempt". Чапел-Хилл, Северная Каролина: ibiblio. Архивировано из оригинал 28 июня 2009 г.. Получено 8 апреля 2011.
  13. ^ "IRC logs of events of the Gulf War". Чапел-Хилл, Северная Каролина: ibiblio. Получено 8 апреля 2011.
  14. ^ "Logs of major events in the online community". Чапел-Хилл, Северная Каролина: ibiblio. Получено 8 апреля 2011.
  15. ^ а б c "Character codes". Internet Relay Chat Protocol. п. 7. sec. 2.2. Дои:10.17487/RFC1459. RFC 1459.
  16. ^ Engen, Vegard (May 2000). "Великий раскол". IRC.org. Получено 25 апреля 2016.
  17. ^ "Channel Modes". UnrealIRCd documentation wiki. Получено 6 января 2018.
  18. ^ "Cloaking". UnrealIRCd documentation wiki. Получено 6 января 2018.
  19. ^ "Blitzed Open Proxy Monitor Shuts Down". The Open Proxy Monitor which has been provided by the Blitzed IRC network has been shut down…The database was so large that it is near to impossible for the team to backup, or find a new location to continue the service. Added to that, most of the team members do not possess the time anymore to keep the service running.
  20. ^ "IRCv3". IRCv3 Working Group. 2016 г.. Получено 25 апреля 2016. The IRCv3 Working Group is a collection of IRC client and server software authors working to enhance, maintain and standardize the IRC protocol using backwards-compatible extensions.
  21. ^ "Networks - IRCv3". 2019. Получено 9 августа 2019.
  22. ^ "netsplit.de top 10". Получено 25 апреля 2016.
  23. ^ а б Charalabidis, Alex (15 December 1999). "IRCing On The Macintosh: Ircle". The Book of IRC: The Ultimate Guide to Internet Relay Chat (1-е изд.). Сан - Франциско, Калифорния: No Starch Press. п.61. ISBN  978-1-886411-29-6. On large networks such as the Big Four— EFnet, IRCnet, Undernet, and DALnet— trying to list the thousands of channels with Ircle always causes you to disconnect due to the flood of information, while other clients can usually manage the feat, if you are on a direct Ethernet connection.
  24. ^ а б Джонс, Стив, изд. (10 December 2002). «Интернет-чат». Энциклопедия новых медиа: важный справочник по коммуникациям и технологиям (1-е изд.). Таузенд-Оукс, Калифорния: Публикации SAGE. п.257. ISBN  978-0-7619-2382-4. Today there are hundreds of independent IRC networks, but the "Big Four" are EFNet, UnderNet, Dalnet, and IRCnet.
  25. ^ а б Rittner, Don (3 March 1999). The iMac Book (1-е изд.). Скоттсдейл, Аризона: Coriolis Group. п. 215. ISBN  978-1-57610-429-3. There are several large networks: EFnet, UnderNET, DALnet, and IRCnet make up the Big Four.
  26. ^ Turban, Efraim; Leidner, Dorothy; McLean, Ephraim; Wetherbe, James (7 February 2005). "Коммуникация". Information Technology for Management: Transforming Organizations in the Digital Economy (5-е изд.). Хобокен, Нью-Джерси: Джон Уайли и сыновья. С. 106–107. ISBN  978-0-471-70522-2. The largest networks have traditionally been grouped as the "Big Four": EFNet, IrcNet, QuakeNet, and UnderNet.
  27. ^ "IRC Networks – Top 100". irc.netsplit.de. netsplit.de. Получено 29 октября 2018.
  28. ^ «Серверы». Internet Relay Chat Protocol. п. 4. sec. 1.1. Дои:10.17487/RFC1459. RFC 1459.
  29. ^ «Клиенты». Internet Relay Chat: Architecture. п. 3. sec. 2.2. Дои:10.17487/RFC2810. RFC 2810.
  30. ^ «Клиенты». Internet Relay Chat Protocol. п. 5. sec. 1.2. Дои:10.17487/RFC1459. RFC 1459.
  31. ^ "Port Numbers". Марина дель Рей, Калифорния: Internet Assigned Numbers Authority. 6 апреля 2011 г.. Получено 8 апреля 2011.
  32. ^ "Connect message". Internet Relay Chat Protocol. п. 29. sec. 4.3.5. Дои:10.17487/RFC1459. RFC 1459.
  33. ^ Lucas, Mark; Singh, Abhishek; Cantrell, Chris (5 October 2006). "Defining a Firewall". In Henmi, Anne (ed.). Firewall Policies and VPN Configurations. Рокленд, Массачусетс: Syngress Publishing. п. 93. ISBN  978-1-59749-088-7.
  34. ^ Abraham, Dalen (June 1998). Extensions to the Internet Relay Chat Protocol (IRCX). IETF. I-D draft-pfenning-irc-extensions-04. Получено 8 апреля 2011.
  35. ^ "Архитектура". Internet Relay Chat: Architecture. pp. 3 – 4. sec. 3. Дои:10.17487/RFC2810. RFC 2810.
  36. ^ "Вступление". Internet Relay Chat: Architecture. п. 2. sec. 1. Дои:10.17487/RFC2810. RFC 2810.
  37. ^ "Algorithms". Internet Relay Chat Protocol. п. 64. sec. 9.3. Дои:10.17487/RFC1459. RFC 1459.
  38. ^ "Network Congestion". Internet Relay Chat: Architecture. pp. 7 – 8. sec. 6.3. Дои:10.17487/RFC2810. RFC 2810.
  39. ^ "To A Channel". Internet Relay Chat: Architecture. pp. 5 – 6. sec. 5.2.1. Дои:10.17487/RFC2810. RFC 2810.
  40. ^ "IRC daemons for LAN". Получено 2 октября 2014.
  41. ^ "Running an own IRC server". Получено 2 октября 2014.
  42. ^ "Message format in 'pseudo' BNF". Internet Relay Chat Protocol. п. 8. sec. 2.3.1. Дои:10.17487/RFC1459. RFC 1459.
  43. ^ "Numeric replies". Internet Relay Chat Protocol. п. 10. sec. 2.4. Дои:10.17487/RFC1459. RFC 1459.
  44. ^ "IRC List Modes – List mode extension showing pair confusion for lists". 25 ноября 2009 г.. Получено 8 апреля 2011.
  45. ^ а б "To a group (channel)". Internet Relay Chat Protocol. п. 11. sec. 3.2.2. Дои:10.17487/RFC1459. RFC 1459.
  46. ^ "List message". Internet Relay Chat Protocol. п. 24. sec. 4.2.6. Дои:10.17487/RFC1459. RFC 1459.
  47. ^ а б "Join message". Internet Relay Chat Protocol. п. 19. sec. 4.2.1. Дои:10.17487/RFC1459. RFC 1459.
  48. ^ "Channel Scope". Internet Relay Chat: Channel Management. pp. 3 – 4. sec. 2.2. Дои:10.17487/RFC2811. RFC 2811.
  49. ^ "Channel Properties". Internet Relay Chat: Channel Management. п. 4. sec. 2.3. Дои:10.17487/RFC2811. RFC 2811.
  50. ^ "Channel lifetime". Internet Relay Chat: Channel Management. п. 5. sec. 3. Дои:10.17487/RFC2811. RFC 2811.
  51. ^ "Channel Modes". Internet Relay Chat: Channel Management. п. 7. sec. 4. Дои:10.17487/RFC2811. RFC 2811.
  52. ^ "Mode message". Internet Relay Chat Protocol. п. 21. sec. 4.2.3. Дои:10.17487/RFC1459. RFC 1459.
  53. ^ "Channel modes". Internet Relay Chat Protocol. pp. 21 – 22. sec. 4.2.3.1. Дои:10.17487/RFC1459. RFC 1459.
  54. ^ "Channel Access Control". Internet Relay Chat: Channel Management. pp. 10 – 11. sec. 4.3. Дои:10.17487/RFC2811. RFC 2811.
  55. ^ а б "Command responses: 353 RPL_NAMREPLY". Internet Relay Chat Protocol. п. 51. Дои:10.17487/RFC1459. RFC 1459.
  56. ^ Roeckx, Kurt (14 October 2004). "The 005 numeric: ISUPPORT". irc.org. Получено 10 апреля 2011.
  57. ^ Brocklesby, Edward (September 2002). IRC RPL_ISUPPORT Numeric Definition. IETF. I-D draft-brocklesby-irc-isupport-03. Получено 10 апреля 2011.
  58. ^ "Operwall message". Internet Relay Chat Protocol. п. 41. sec. 5.6. Дои:10.17487/RFC1459. RFC 1459.
  59. ^ Butcher, Simon (12 January 2005). "IRC User Modes List". alien.net.au. Получено 10 апреля 2011.
  60. ^ Butcher, Simon (12 January 2005). "IRC Channel Modes List". alien.net.au. Получено 10 апреля 2011.
  61. ^ Butcher, Simon (12 January 2005). "IRC Server Modes List". alien.net.au. Получено 10 апреля 2011.
  62. ^ Olsen, Tommy. "IRCd Modes". webtoman.com. Архивировано из оригинал 15 октября 2011 г.. Получено 10 апреля 2011.
  63. ^ а б «Операторы». Internet Relay Chat Protocol. п. 5. sec. 1.2.1. Дои:10.17487/RFC1459. RFC 1459.
  64. ^ Thiedeke, Udo (23 September 2003). "Nicola Döring, Alexander Schestag". Virtuelle Gruppen: Charakteristika und Problemdimensionen (на немецком языке) (2-е изд.). Springer VS [де ]. pp. 314, 337. ISBN  978-3-531-33372-4. Получено 30 марта 2010.
  65. ^ Rogers, Russ (1 December 2004). "The Mind of Terror". In Devost, Matthew G. (ed.). Hacking a Terror Network: The Silent Threat of Covert Channels (1-е изд.). Рокленд, Массачусетс: Syngress Publishing. п. 10. ISBN  978-1-928994-98-5. Получено 30 марта 2010.
  66. ^ Petersen, Julie K., ed. (29 May 2002). "Internet Relay Chat". Иллюстрированный словарь по телекоммуникациям (2-е изд.). CRC Press. п. 500. ISBN  978-0-8493-1173-4. Получено 30 марта 2010.
  67. ^ "Frequently-Asked Questions". Freenode. Архивировано из оригинал 26 марта 2010 г.. Получено 30 марта 2010.
  68. ^ "IRC/Cloaks". Meta-wiki. Получено 27 ноября 2011.
  69. ^ "Uniform Resource Identifier (URI) Schemes". Internet Assigned Numbers Authority. Получено 14 октября 2012.
  70. ^ Butcher, Simon (January 2003). Uniform Resource Locator Schemes for Internet Relay Chat Entities. IETF. I-D draft-butcher-irc-url-04. Получено 10 апреля 2011.
  71. ^ https://www.npmjs.com/package/node-irc
  72. ^ "Размер". A Discussion on Computer Network Conferencing. pp. 5 – 6. sec. 2.5.1. Дои:10.17487/RFC1324. RFC 1324.
  73. ^ "Scalability". Internet Relay Chat: Architecture. п. 7. sec. 6.1. Дои:10.17487/RFC2810. RFC 2810.
  74. ^ Loesch 2003 1.2.1 Growth
  75. ^ "User identification". A Discussion on Computer Network Conferencing. п. 10. sec. 5.4.1. Дои:10.17487/RFC1324. RFC 1324.
  76. ^ "Trees and cycles". A Discussion on Computer Network Conferencing. п. 10. sec. 5.4.2. Дои:10.17487/RFC1324. RFC 1324.
  77. ^ Loesch 2003 1.2.2 Network failures
  78. ^ "State Information problems". A Discussion on Computer Network Conferencing. п. 4. sec. 2.1. Дои:10.17487/RFC1324. RFC 1324.
  79. ^ Loesch 2003 1.2.3 Sociological and security aspects
  80. ^ «Передача сообщений». A Discussion on Computer Network Conferencing. п. 7. sec. 5.2.1. Дои:10.17487/RFC1324. RFC 1324.
  81. ^ "Conference security". A Discussion on Computer Network Conferencing. п. 8. sec. 5.2.4. Дои:10.17487/RFC1324. RFC 1324.
  82. ^ "Getting Help on EsperNet". The EsperNet IRC Network. Получено 31 июля 2012.
  83. ^ brandon (18 May 2010). "New Feature: SSL For Users". ДАЛнет. Получено 31 июля 2012.
  84. ^ Smith, Roderick W. (8 April 2000). "The Internet: Using IRC to Get Help". The Multi-Boot Configuration Handbook. Handbook Series. Upper Saddle River, New Jersey: Que Publishing. п.289. ISBN  978-0-7897-2283-6. Получено 25 июля 2010. mIRC is one of the most popular Windows IRC clients.
  85. ^ "Opera Browser Wiki: IRC Client". Архивировано из оригинал 17 марта 2011 г.. Получено 10 апреля 2011.
  86. ^ "Warsow Wiki: IRC Module". Архивировано из оригинал 25 апреля 2011 г.. Получено 10 апреля 2011.
  87. ^ Guenter, Daniel (21 June 2004). "UT2004 Review". BCCHardware. Получено 10 апреля 2011.
  88. ^ "The Ultimate Uplink Guide". Получено 10 апреля 2011.
  89. ^ "ZDaemon – The Doom Wiki: Other utilities". Получено 10 апреля 2011.
  90. ^ "How to setup [sic] an IRC client to connect and login [sic] to Ustream". Ustream-Helpers. 29 января 2012 г.. Получено 27 апреля 2013.
  91. ^ Mauldor (20 June 2010). "Ustream vs. Justin.tv". LiquidSilver. Получено 13 июля 2011.
  92. ^ "Twitch IRC". Twitch Help Center. 7 апреля 2017 г.. Получено 30 октября 2017.
  93. ^ Canavan, John. "The Evolution of Malicious IRC Bots" (PDF). www.symantec.com. Symantec Security Response.
  94. ^ "psyBNC Readme". psybnc.at. Получено 10 апреля 2011.
  95. ^ Carey, Chris (18 July 2009). "IRC with irssi-proxy + screen". chriscarey.com. Получено 10 апреля 2011.
  96. ^ "Detachable Frontend (Core Rewrite) / UML / Windows Port (kicking Glade)". smuxi.org. 25 декабря 2004 г.. Получено 25 июля 2010.
  97. ^ "About Smuxi". smuxi.org. Получено 10 апреля 2011.
  98. ^ Mutton, Paul (27 July 2004). "Users and Channels". IRC Hacks (1-е изд.). Севастополь, Калифорния: O'Reilly Media. С. 44–46. ISBN  978-0-596-00687-7.
  99. ^ Wang, Wallace (25 October 2004). "Instant Messaging and Online Chat Rooms: Internet Relay Chat (IRC)". Steal this File Sharing Book (1-е изд.). Сан - Франциско, Калифорния: Пресс без крахмала. стр.65–67. ISBN  978-1-59327-050-6.
  100. ^ Vamosi, Robert (8 May 2002). "Pirated movies: Now playing on a server near you". ZDNet. Получено 10 апреля 2011.
  101. ^ Sasaki, Darla (4 April 2002). "IRC 101: What Is It & How Do I Use It?". Macobserver.com. Получено 10 апреля 2011.

Библиография

дальнейшее чтение

внешняя ссылка

  • IRC в Керли
  • IRC Numerics List
  • History of IRC
  • IRC.org – Technical and Historical IRC6 information; Articles on the history of IRC
  • IRChelp.org – Internet Relay Chat (IRC) help archive; Large archive of IRC-related documents
  • IRCv3 – Working group of developers, who add new features to the protocol and write specs for them
  • IRC-Source – Internet Relay Chat (IRC) network and channel search engine with historical data
  • irc.netsplit.de – Internet Relay Chat (IRC) network listing with historical data