23.11. Управление таймерами

23.11. Управление таймерами

Протокол SCTP имеет множество численных пользовательских параметров. Все они устанавливаются через параметры сокетов, рассмотренные в разделе 7.10. Далее мы займемся рассмотрением нескольких параметров, определяющих задержку перед объявлением об отказе ассоциации или адреса собеседника.

Время обнаружения отказа в SCTP определяется семью переменными (табл. 23.1).

Таблица 23.1. Поля таймеров SCTP

Поле Описание По умолчанию Единицы
srto_min Минимальный тайм-аут повторной передачи 1000 Мс
srto_max Максимальный тайм-аут повторной передачи 60000 Мс
srto_initial Начальный тайм-аут повторной передачи 3000 Мс
sinit_max_init_timeo Максимальный тайм-аут повторной передачи сегмента INIT 3000 Мс
sinit_max_attempts Максимальное количество повторных передач сегмента INIT 8 попыток
spp_pathmaxrxt Максимальное количество повторных передач по адресу 5 попыток
sasoc_asocmaxrxt Максимальное количество повторных передач на ассоциацию 10 попыток

Эти параметры можно воспринимать как регуляторы, укорачивающие и удлиняющие время обнаружения отказа. Рассмотрим два сценария.

1. Конечная точка SCTP пытается открыть ассоциацию с собеседником, отключившимся от сети.

2. Две многоинтерфейсные конечные точки SCTP обмениваются данными. Одна из них отключается от сети питания в момент передачи данных. Сообщения ICMP фильтруются защитными экранами и потому не достигают второй конечной точки.

В сценарии 1 система, пытающаяся открыть соединение, устанавливает таймер RTO равным srto_initial (3000 мс). После первой повторной передачи пакета INIT таймер устанавливается на значение 6000 мс. Это продолжается до тех пор, пока не будет сделано sinit_max_attempts попыток (9 штук), между которыми пройдут семь тайм-аутов. Удвоение таймера закончится на величине sinit_max_init_timeo, равной 60 000 мс. Таким образом, через 3 + 6 + 12 + 24 + 48 + 60 + 60 + 60 = 273 с стек SCTP объявит потенциального собеседника недоступным.

Вращением нескольких «ручек» мы можем удлинять и укорачивать это время. Начнем с двух параметров, позволяющих уменьшить общую задержку. Сократим количество повторных передач, изменив переменную sinit_max_attempts. Альтернативное изменение может состоять в уменьшении максимального тайм- аута для пакета INIT (переменная srto_max_init_timeo). Если количество попыток снизить до 4, время детектирования резко упадет до 45 с (одна шестая первоначального значения). Однако у этого метода есть недостаток: из-за проблем в сети или перегруженности собеседника мы можем объявить его недоступным, даже если это состояние является лишь временным.

Другой подход состоит в уменьшении srto_max_init_timeo до 20 с. При этом задержка до обнаружения недоступности сократится до 121 с — менее половины исходной величины. Однако и это решение является компромиссным. Если мы выберем слишком низкое значение тайм-аута, при большой сетевой задержке мы будем отправлять гораздо больше пакетов INIT, чем это требуется на самом деле.

Перейдем теперь к сценарию 2, описывающему взаимодействие двух многоинтерфейсных узлов. Одна конечная точка имеет адреса IP-A и IP-B, другая IP-X и IP-Y. Если одна из них становится недоступна, а вторая отправляет какие-то данные, последней приходится делать повторные передачи по каждому из адресов с задержкой, начинающейся с srto_min (по умолчанию 1 с) и последовательно удваивающейся до значения srto_max (по умолчанию 60 с). Повторные передачи будут продолжаться до тех пор, пока не будет достигнуто ограничение на их количество sasoc_asocmaxrxt (по умолчанию 10 повторных передач).

В нашем сценарии последовательность тайм-аутов будет иметь вид 1(IP-A) + 1(IP-B) + 2(IP-A) + 2(IP-B) + 4(IP-A) + 4(IP-B) + 8(IP-A) + 8(IP-B) + 16(IP-A) + 16(IP-B), что в общей сложности составит 62 с. Параметр srto_max не влияет на работу многоинтерфейсного узла, если его значение совпадает с установленным по умолчанию, потому что ограничение на количество передач для ассоциации sasoc_asocmaxrxt действует раньше, чем srto_max. Опять-таки, у нас есть два параметра влияющих на длительность тайм-аутов и эффективность обнаружения отказов. Мы можем уменьшить количество попыток, изменив значение sasoc_asocmaxrxt (по умолчанию 10), или снизить максимальное значение тайм-аута, изменив значение srto_max (по умолчанию 60 с). Если мы сделаем srto_max равным 10 с, время обнаружения отказа собеседника снизится на 12 с и станет равным 50 с. Альтернативой может быть уменьшение количества повторных передач до 8; при этом время обнаружения снизится до 30 с. Изложенные ранее соображения относятся и к этому сценарию: кратковременные неполадки в сети и перегрузка удаленной системы могут привести к обрыву работоспособного соединения.

Одну из множества альтернатив мы не рассматриваем в качестве рекомендуемой. Это снижение минимального тайм-аута (srto_min). При передаче данных через Интернет снижение этого значения приведет к неприятным последствиям: наш узел будет передавать повторные пакеты слишком часто, перегружая инфраструктуру Интернета. В частной сети снижение этого значения допустимо, но для большинства приложений в этом просто нет необходимости.

Для каждого приложения выбор конкретных значений параметров повторной передачи должен определяться несколькими факторами:

? Насколько быстро нужно приложению обнаруживать отказы?

? Будет ли приложение выполняться в частных сетях, где условия передачи заранее известны и меняются не так резко, как в Интернете?

? Каковы последствия неправильного обнаружения отказа?

Только внимательно подумав над ответами на эти вопросы, программист может правильно настроить параметры тайм-аутов SCTP.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

2.4 УПРАВЛЕНИЕ СИСТЕМОЙ

Из книги Архитектура операционной системы UNIX автора Бах Морис Дж

2.4 УПРАВЛЕНИЕ СИСТЕМОЙ К управляющим процессам, грубо говоря, относятся те процессы, которые выполняют различные функции по обеспечению благополучной работы пользователей системы. К таким функциям относятся форматирование дисков, создание новых файловых систем,


8.1.4 Управление приоритетами

Из книги Введение в Direct3D8 автора Александров Алексей Иванович

8.1.4 Управление приоритетами Процессы могут управлять своими приоритетами с помощью системной функции nice:nice(value);где value — значение, в процессе пересчета прибавляемое к приоритету процесса:приоритет = (ИЦП/константа) + (базовый приоритет) + (значение nice)Системная функция nice


Управление материалами.

Из книги Pinnacle Studio 11 автора Чиртик Александр Анатольевич

Управление материалами. Все в этом мире имеет цвет. Цвет определяет восприятие нами окружающего мира. Яблоко – красное, небо – синее и так далее. Для обозначения свойств поверхности объектов Direct3D использует термин "материал". Свойства материала описываются структурой


Управление проектами

Из книги ArchiCAD. Начали! автора Орлов Андрей Александрович

Управление проектами В завершение главы стоит рассказать о проектах, то есть о том, с чем, собственно, предстоит работать в программе Pinnacle


Управление воспроизведением

Из книги Объектно-ориентированный анализ и проектирование с примерами приложений на С++ автора Буч Гради

Управление воспроизведением Под областью предварительного просмотра в Проигрывателе расположены элементы управления воспроизведением. Внешний вид этой области в окне Проигрывателя зависит от конкретного режима работы программы Studio, например при захвате видео


Управление слоями

Из книги SAP Business One. Строим эффективный бизнес автора Елашкин Михаил

Управление слоями При манипулировании объектами титров вы могли заметить, что некоторые из них могут отображаться поверх других объектов, накладываясь на них. Все из-за того (или благодаря тому), что при отображении титра соблюдается определенный порядок прорисовки


Управление просмотром

Из книги Сетевые средства Linux автора Смит Родерик В.

Управление просмотром ArchiCAD предоставляет пользователю мощные средства управления отображением проекта на экране. Сейчас рассмотрим только самые основные инструменты управления видом проекта, используемые при работе практически постоянно. Эти инструменты


Управление слоями

Из книги Самоучитель Skype. Бесплатная связь через Интернет автора Яковлева Е. С.

Управление слоями Элементы управления слоями и атрибуты слоев рассмотрим на примере стандартного списка слоев ArchiCAD.Окно управления слоями Layer Settings (Настройки слоя) (рис. 7.1) можно вызвать несколькими способами:? командой Document ? Layers ? Layer Settings (Документ ? Слои ? Настройки


7.3. Управление релизами

Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

7.3. Управление релизами Интеграция Промышленные программные проекты требуют создания семейств программ. В процессе разработки создаются прототипы и релизы. Очень часто каждый разработчик имеет свое собственное представление о разрабатываемой системе. В предыдущей


ГЛАВА 04 УПРАВЛЕНИЕ

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

ГЛАВА 04 УПРАВЛЕНИЕ Однажды сороконожку спросили, с какой ноги она начинает движение. С тех пор она не может сдвинуться с места, мучительно размышляя над тем, с какой ноги начинать. Это старая шутка, но попробуйте задуматься: как вы управляете своей компанией? Не знаю,


Управление доменом

Из книги Разработка ядра Linux автора Лав Роберт

Управление доменом Несмотря на то что вы создали файл /etc/named.conf, указали в нем глобальные опции и определили зоны, оказывается, что настройка ведущего сервера DNS не закончена и запускать его еще рано. Если в файле /etc/named.conf указана зона типа master, необходим также


Управление контактами

Из книги автора

Управление контактами В программе Skype можно управлять контактными данными абонентов, а именно отправлять список абонентов другим людям и импортировать данные абонентов из адресной книги.Отправка списка абонентовОбмениваться контактными данными очень удобно в


6.3. Управление пользователями

Из книги автора

6.3. Управление пользователями Для начала разберемся с именами пользователей. Для доступа к серверу Samba используются сведения из системного файла /etc/passwd. Но вы можете завести отдельные записи Samba-сервера, которые будут соответствовать реальным именам, но их можно будет


Управление транзакциями

Из книги автора

Управление транзакциями Необходимо помнить, что любое действие с базой данных происходит в рамках той или иной транзакции. Работа с InterBase основана на явном управлении транзакциями, а поскольку библиотека IBX - это обертка вокруг соответствующих функций InterBase API, то


Состояния конкуренции, связанные с таймерами

Из книги автора

Состояния конкуренции, связанные с таймерами Так как таймеры выполняются асинхронно по отношению к выполняемому в данный момент коду, то потенциально могут возникнуть несколько типов состояний конкуренции за ресурсы. Во-первых, никогда нельзя использовать следующий