IRC
| TCP/IP модель (RFC 1122) |
|---|
| Прикладний рівень |
| BGP · DHCP · DNS · FTP · Gopher · GTP · HTTP · IMAP · IRC · NNTP · NTP · POP3 · RIP · RPC · RTCP · RTP · RTSP · SDP · SIP · SMTP · SNMP · SOAP · SSH · STUN · Telnet · TLS/SSL · XMPP · |
| Сеансовий рівень |
| ADSP • H.245 • iSNS • NetBIOS • PAP • L2TP • PPTP • RTCP • SMPP • SSH • ZIP • SDP • RPC • SCP • (more) |
| Транспортний рівень |
| TCP · UDP · DCCP · SCTP · RSVP · ECN · (more) |
| Мережевий рівень |
| IP (IPv4, IPv6) · ICMP · ICMPv6 · IGMP · IPsec · (more) |
| Рівень мережевих інтерфейсів |
| ARP · RARP · NDP · OSPF · Tunnels (L2TP) · MAC-адреса (Ethernet, DSL, ISDN, FDDI) · Device Drivers · (more) |
IRC (англ. Internet Relay Chat) — сервіс Інтернет, який надає користувачам можливість спілкування шляхом надсилання текстових повідомлень багатьом людям з усього світу одночасно (в режимі реального часу). Аналогію можна знайти у радіо на коротких хвилях, навіть використовується аналогічне поняття англ. channel (канал, хвиля).
Надруковане на комп'ютері користувача повідомлення стає видимим всім користувачам на тому ж каналі. Користувач може приєднатися до вже наявного каналу або налаштувати свій. Користувач може створити свій особистий канал тільки для себе і буквально однієї-двох людей. Так само, як і у короткохвильовиків, користувач може присвоїти собі унікальний «позивний» («нік», «псевдонім», англ. nick).
Зміст |
Опис IRC [ред.]
При підключенні до серверу IRC користувач бачить список доступних каналів, у кожний з яких (або відразу в декілька) він може «увійти» (підключитися). Каналом є віртуальна «кімната», в якій можуть знаходитися декілька користувачів. Всі повідомлення, що видаються в канал, видно всім користувачам, які знаходяться на цьому ж каналі. Кожен канал має свою назву і, як правило, певну тему для обговорення. Після «входу» на канал користувач може бачити, що пишуть інші учасники каналу, а також може сам писати повідомлення. Тема, що обговорюється на каналі, зазвичай випливає з його назви (наприклад, канал #wikipedia-ru).
Різні сервери можуть об'єднуватися (лінкуватися) в мережу з єдиним простором імен користувачів і каналів. Великі світові IRC-мережі налічують у своєму складі сотні серверів. Аварійний тимчасовий розрив IRC-мережі на дві частини називається netsplit'ом (сплітом).
IRC надає можливість як групового, так і приватного спілкування. Для групового чату в IRC призначені канали, на яких користувачі можуть збиратися та вести спілкування.
Оператори IRC-мережі керують роботою серверів та мережі в цілому. Як правило, в IRC-мережах на операторів теж встановлюються обмеження на рівні правил мережі, мережевого етикету або навіть на рівні IRCd/IRC-сервісів.
Технічні деталі [ред.]
Команди [ред.]
Більшість команд, які вводяться в командну консоль, відрізняються від тих, які передаються по мережі. Ось команди, визначені в RFC 2812:
NICK username— змінює нік учасника на зазначене параметром username.OPER username password— видає права оператора користувачеві, використовуючи відповідний O:Line.QUIT— від'єднує користувача від сервера.JOIN channels [keys]— приєднується до каналів channels використовуючи відповідні ключі keys якщо канал має режим +k. Канали в списку розділяються комами.JOIN 0— покинути всі канали.PART channels [:message]— покинути канали channels, використовуючи message. Якщо message містить прогалини, то перед ним ставиться:.MODE channel /username modes— змінює режими каналу channel (потрібні права оператора каналу) або користувача username (більшість серверів дозволяють змінювати свої режими тільки самим користувачам). Modes — рядок у форматі+flags-flags params.TOPIC channel [:message]— змінює тему на message. Якщо не вказано параметр message, то повертає тему каналу.NAMES [channel]— повертає список користувачів на каналі, або, якщо канал не вказано, у всій мережі..LIST [pattern]— повертає всі канали. Якщо встановлено шаблон pattern, то повертаються тільки канали, що збігаються з нимINVITE user channel— запрошує user на канал channel.KICK channels users [:reason]— викидає користувачів users з каналів channels. Можливо вказати причину reason.PRIVMSG channel /user:message— посилає повідомлення message на канал channel або користувачу user.NOTICE channel /user:message— аналог PRIVMSG. Згідно з RFC 2812, на NOTICE ніколи не може бути автоматичних відповідей.WALLOPS text— посилає текст всім користувачам з режимом +w.WHOIS <nick[,nick,nick,...]>— показує інформацію про даного користувача.
Режими каналів [ред.]
Оператори каналу можуть задавати різні режими каналів за допомогою команди MODE. У RFC 2811 визначені такі режими:
+O user— позначає творця каналу. Не повинен змінюватися вручну (відсутня в багатьох реалізаціях).+o user— позначає оператора каналу.+v user— дає користувачеві право говорити на модерується каналах (див. + m).+a— анонімний канал. Імена всіх користувачів ховаються якanonymous!anonymous@anonymous(відсутня в багатьох реалізаціях).+m— тільки користувачі з прапорами +o, +h, або +v можуть посилати в нього повідомлення.+n— тільки що знаходяться на каналі користувачі можуть посилати в нього повідомлення.+p/+s—- канал ховається в усіх відповідях сервера якщо користувач не знаходиться на цьому каналі.+t— тему каналу можуть змінювати тільки оператори.+l limit— обмежує кількість користувачів на каналі числом limit.+k key— встановлює ключ (пароль) на канал key.+i— на канал можна увійти тільки за запрошенням (invite).+b— вивести список банів +b на каналі. Доступний всім користувачам.+b mask— забороняє доступ до каналу користувачів, що збігаються з маскою mask.+e mask— дозволяє користувачам, що потрапляють під маску mask, заходити на канал незалежно від режимів +b.+I mask— дозволяє користувачам, що потрапляють під маску mask, заходити на канал незалежно від режиму +i.+c— оформлення тексту на каналі заборонено (не визначено в RFC).
Режими користувачів [ред.]
+i— невидимий користувач.+s— отримувати повідомлення сервера.+w— отримувати wallops.+o— оператор сервера. Для отримання повинна використовуватися команда OPER.
CTCP [ред.]
CTCP — це особливий тип повідомлень. Повідомлення CTCP виглядають так:
PRIVMSG target :\001command [arguments]\001
target — це канал або користувач, якому надсилається повідомлення, \001 — це бінарний символ 0x01, command — це команда CTCP, arguments — аргументи команди. Основні команди:
- PING — повертає аргументи назад.
- VERSION — повертає версію клієнта.
- USERINFO — повертає інформацію про користувача.
- CLIENTINFO — повертає інформацію про клієнта.
- SOURCE — повертає джерело, звідки можна завантажити клієнт.
- TIME — повертає час на комп'ютері користувача.
- ACTION — емулює дію (команда /me).
Відповідь на CTCP-запит приходить в наступному вигляді:
NOTICE target :\001command [arguments]\001
Документи RFC [ред.]
Основним документом, що визначає протокол IRC, є RFC 1459 - Internet Relay Chat Protocol. Пізніше були розроблені ще кілька документів, що доповнюють стандарт:
- RFC 2810 — Internet Relay Chat: Architecture
- RFC 2811 — Internet Relay Chat: Channel Management
- RFC 2812 — Internet Relay Chat: Client Protocol
- RFC 2813 — Internet Relay Chat: Server Protocol
Відомі IRC-мережі [ред.]
Серед міжнародних мереж популярні:
- DALnet (англ.)
- EFnet (англ.)
- Freenode, раніше відома як Open Projects Network (OPN)
- IRCnet (англ.)
- QuakeNet (англ.)
- Undernet
У названих мережах найбільш вживаною мовою спілкування є англійська. Існують і мережі, основна мова яких відрізняється від англійської, зокрема російськомовні мережі: <! - Дані netsplit.de за останні 2 місяці, оновлено 19.05.2009 ->
Історія питання [ред.]
Перші російськомовні канали виникли ще в 1990-х роках у міжнародних мережах, таких як DALnet і IRCNet. Спочатку, під впливом UNIX-культури, було прийнято кодувати літери російського алфавіту в KOI-8. Приблизно з 1995 року почався приплив користувачів Windows, які найчастіше взагалі не мали поняття, що таке кодова сторінка, і не робили різниці між кирилицею та Windows-1251. Дане протиріччя викликало багато конфліктів, включаючи холівари. В ті часи Стихійно виникла домовленість: питання про кодуваннях віддали у відання конкретних каналів. Це було дуже незручно для користувачів, проте на той момент іншого виходу не було. Частково, саме ця проблема стимулювала приблизно з 2000-го посилене формування окремих російськомовних мереж, де питання кодування могли б вирішуватися централізовано.
Ніки [ред.]
Історично використання букв кирилиці в ніках було неможливо. Однак деякі сучасні сервери дозволяють це робити. Чи вважати літери кирилиці, візуально схожі на букви латиниці, тієї ж самої буквою? Якщо вважати, то які саме і як саме? Різні мережі мають різну політику щодо всього цього.
UTF-8 — за і проти [ред.]
Прихильники інтернаціоналізації зазвичай вважають UTF-8 перспективним кодуванням для всіх мов, включаючи російську. Слід однак відзначити, що одна буква кирилиці в UTF-8 займає два байти, що створює деяке додаткове навантаження на мережі й обмежує максимальну довжину одного повідомлення. За стандартом, повідомлення IRC не може мати довжину більше 510 байтів, з яких власне на текст припадає ніяк не більше 499 (за нереалістично завищеною оцінкою). Отже, відправити в одному повідомленні більше 249 російських букв виявляється неможливо. Обмеження розміру повідомлень викликає ще одну неприємність: при спробі перевищити встановлену межу сервер обрізає повідомлення. Якщо зріз пройде посередині російської букви (тобто буде передано перший її байт, але відкинутий другий), то вийшла, послідовність байтів перестане, з точки зору UTF-8, бути правильною рядком. Ряд клієнтів (наприклад, Xchat або mIRC) відобразять таке повідомлення як 8-бітне (наприклад, в Latin-1 або Windows-1251), що зробить його повністю нечитабельним і займе, до того ж, багато місця на екрані.
Єдиної безперечною перевагою використання UTF-8 для кодування російської мови є можливість вільно цитувати тексти на інших мовах, а також використовувати екзотичні символи на зразок «→» і «☺». До того ж, будучи клієнтом IRC-мережі, в якій UTF-8 прийнятий повсюдно, можна буде спілкуватися відразу на багатьох мовах, не піклуючись про технічне поданні літер. Поки, проте, невідомі багатомовні мережі, явно обмовляють необхідність використання тільки UTF-8, що використовують UTF-8 як внутрішнє кодування, або яким-небудь іншим чином упорядковують кодування символів клієнтами.
Див. також [ред.]
- Вікіпедія:IRC — інформація про чат, на якому збираються Вікіпедисти.
- Програми миттєвого обміну повідомленнями
Посилання [ред.]
![]() |
Це незавершена стаття про Інтернет. Ви можете допомогти проекту, виправивши або дописавши її. |


