RFC: 1459
Оригинал: Internet Relay Chat Protocol
Категория: Экспериментальный
Дата публикации:
Авторы: ,
Перевод: Рустам Шихалиев aka russo

8.10. Flood-контроль клиентов

В больших сетях соединенных между собой IRC-серверов, действительно легко для любого клиента, присоединенного к сети, обеспечивать непрерывный потоксообщений, как результат не только сетевого флуда, но так же и ухудшение работы сервисов. Лучше чем требовать от каждой «жертву» защиты самих себя, флуд-защита была встроена в сервер и добавлена к сервисам, доступных всем клиентам. Текущий алгоритм таков:

  • проверка клиентского «таймера сообщений», если он отстает от текущего времени - подкорректировать;
  • чтение любых данных, поступающих с клиента;
  • пока таймер опережает текущее время меньше, чем на десять секунд, - проверять любые сообщения с клиента и штрафовать клиента по две секунды за каждое сообщение;

который, в сущности, разрешает клиенту посылать одно сообщение каждые две секунды без каких-либо последствий.

8.11. Non-blocking lookups

В окружении реального времени, необходимо чтобы сервер мог делать как можно меньшие остановки для того, чтобы все клиенты обслуживались в равной мере. Очевидно, этот асинхронный IO работает во всех сетевых операциях чтения\записи. Для нормальных серверных соединений, это было не трудно, но здесь другая поддержка операций, что может статть причиной блокирования сервера (подобно чтениям диска). Это возможно, подобно активации, следующей быть выполненной с коротким перерывом.

8.11.1. Hostname (DNS) lookups

Использование стандартных resolver-библиотек от Berkeley и другие, имеющие предназначение больших задержек в некоторых случаях, где ответы имеют перерывы. Во избежение этого, разделяют уставноленные DNS-шаблоны, которые настраивают для асинхронных операций ввода\вывода (IO) и тогда вызывается внутренняя IO-петля главного сервера.

8.11.2. Username (Ident) lookups

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

2007 - 2017 © Русские переводы RFC, IETF, ISOC.