Полезные для IRC-IoT особенности протокола IRC (RFC 1459)
Локализация трафика в рамках одного IRC сервера.
Если IRC канал создан на каком-то IRC сервере, и все роботы, зашедшие (JOIN) через этот канал, подключены только через этот IRC сервер, трафик не выходит за пределы этого IRC сервера, если даже IRC сервер является элементом большой IRC сети, с множеством связанных между собой IRC серверов.
Большие потоки данных в IRC сети.
Суммарные объёмы передаваемой через одну IRC сеть информации ограничиваются размером данной сети, т.е. количеством участвующих в ней IRC серверов, суммарной пропускной способностью всех этих IRC серверов, настройками каждого из данных серверов, и текущей динамической конфигурацией сети, определяемой потребностями отдельных его участников. В целом, система достаточно масштабируема, и хорошо вписывается в сеть Internet, вне зависимости от версии её протокола.
Один IoT-Bot может присутствовать на множестве каналов
Ping timeout: Отключение, в случае «зависания» программного кода в IoT-Bot.
Протоколом IRC предусмотрен специальный механизм, так называемый «Keep Alive», позволяющий отключать «зависшие», подключения. Каждый IRC сервер периодически посылает каждому подключенному к нему клиенту, в нашем случае IoT-Bot, специальную команду PING, на которую робот должен послать ответ PONG, в случае отсутствия ответа – соединение закрывается, а клиент отключается от IRC сети.
Excess Flood: Отключение от сервера при избыточном количестве сообщений.
При соответствующих настройках серверов, конкретный клиент не может перегрузить своими сообщениями, как других участников сети, таки и её серверы,
да и сеть в целом. Однако, данная функция может стать проблемой при настройке сети большого размера, с большим количеством сообщений, и может
понадобится не только настройка сервера но и его перекомпиляция.
Режим закрытого для входа IRC канала ( +i) invite only mode:
Вход по паролю и приглашение зайти ( invite).
Режим модерируемого IRC канала ( +m) moderated mode:
Наделение робота возможностью говорить ( voice).
Возможность посылать личные (приватные) сообщения ( PRIVMSG) без входа в IRC канал.
Если роботы знают друг о друге, например, они прописаны друг у друга в настройках, либо в собственных базах данных, они вовсе могут не входить ни на какой IRC канал, передавая информацию тет-а-тет, прямым приватным сообщением. Для этого, один робот должен выяснить имя (NickName) другого робота. Это можно сделать, получив сообщения от противоположной стороны, и пройдя взаимную аутентификацию. Так же, в IRC сети, может существовать специальный сервис: NickServ, закрепляющий за конкретной сетевой маской конкретное имя, а так же защищающий это имя паролем.
Динамическое создание IRC каналов, регистрация, и фиксация их владельцев.
Для технических нужд, роботы временно могут создавать технические каналы, для проведения небольших групповых сеансов обмена данными, например, для проведения аукционов, или публикации важной для других информации. Для этого IoT-Bot приглашают своих напарников, не находящихся с ним в одном IRC канале (Invite) в новый, “динамический” канал, проводят там сеанс связи, после чего, все роботы покидают данный канал, и он, автоматически ликвидируется. Постоянные же каналы, например, относящиеся к какому то дому, квартире, либо многоквартирному дому, могут быть зарегистрированы, таким образом, чтобы в них не могли зайти, либо ими управлять им посторонние. Для этих целей в сети может быть создан специальный сервис ChanServ. Создание IRC каналов, зарегистрированных в данном сервисе, может потребовать соответствие сетевой маски, и, или наличие соответствующего пароля.
© 2018–2020 Алексей Воронов, Все права защищены.
|