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

8.2. Проверка команд

В предоставление полезной 'non-buffered' сети IO для клиентов и серверов, каждое соединение из которых является частным 'input buffer', в котором результируются большинство полученного, читается и проверяется. Размер буфера 512 байт, используется как одно полное сообщение, хотя обычно оно бывает с разными командам. Приватный буфер проверяется после каждой операции чтения на правильность сообщений. Когда распределение с многослойными сообщениями от одного клиента в буфере, следует быть в качестве одного случившегося, клиент может быть «удален».

8.3. Передача сообщения

Это простой поиск сети, насыщенной линками или хостами, к которым вы отправляете данные. Хотя Unix обычно это делает через TCP-окно и внутренними буферами, часто сервер имеет большое количество данных, готовых к отправке (особенно при формировании нового сервер-сервер линка) и небольших буферов в ядре не хватает для исходящей очереди.

Для облегчения этой проблемы, "send queue" использует как FIFO-очередь для пересылки данных. Обычно, "send queue" может возрастать до 200 кб в большой IRC-сети с медленным сетевым соединением при соединении нового сервера.

Когда они начинают соединяться, сервер первым читает и проверяет все входящие данные, откладывая все исходящие данные. Когда все доступные вводы обработаны, посылаются отложенные данные. Это понижение числа write() системных звонков и помогает TCP создавать большие пакеты.

8.4. Соединение «Liveness»

Для выявления прекращения соединения или отклика, сервер должен пинговать каждое из соединений.

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

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