Чтение онлайн

на главную

Жанры

UNIX: разработка сетевых приложений
Шрифт:

sasoc_asocmaxrxt
хранит количество повторных передач без получения подтверждений. При превышении этого ограничения передача прекращается, ассоциация закрывается и SCTP сообщает приложению о недоступности собеседника;

sasoc_number_peer_destinations
хранит количество адресов собеседника. Этот параметр может быть только считан, но не установлен;

sasoc_peer_rwnd
хранит текущее рассчитанное окно приема собеседника, то есть количество байтов, которые могут быть переданы в данный момент. Это поле изменяется динамически. Когда приложение отправляет данные, значение поля уменьшается, когда удаленное приложение считывает полученные данные, значение увеличивается.
Вызовом данного параметра сокета это значение изменено быть не может;

sasoc_local_rwnd
хранит размер локального окна приема, о котором SCTP оповещает собеседника. Это значение также изменяется динамически и зависит от параметра сокета
SO_SNDBUF
. Вызовом параметра
SCTP_ASSOCINFO
локальное окно изменено быть не может;

sasoc_cookie_life
хранит срок действия
cookie
, выданного собеседнику (в миллисекундах). Каждому
cookie
присваивается определенный срок действия, благодаря чему обеспечивается защита от атак, основанных на повторах. Значение по умолчанию равно 60 000 и может быть изменено установкой нужного значения в данном поле при условии, что в поле
sasoc_assoc_id
записано значение 0.

Рекомендации по настройке

sasoc_asocmaxrxt
для оптимальной производительности приводятся в разделе 23.11. Для защиты от атак, основанных на повторе, значение
sasoc_cookie_life
можно уменьшить, но при этом система окажется менее устойчивой к задержкам в процессе инициации. Прочие поля полезны для отладки программ.

Параметр сокета SCTP_AUTOCLOSE

Этот параметр позволяет получать и устанавливать время автоматического закрытия конечной точки SCTP. Это время задается в секундах и определяет длительность существования ассоциации SCTP, по которой не передаются никакие данные. Передача данных контролируется стеком SCTP. По умолчанию функция автоматического закрытия отключена.

Параметр предназначен для использования на интерфейсах SCTP типа «один-ко-многим» (см. главу 9). Положительное значение соответствует времени поддержания неиспользуемой ассоциации в секундах, а нулевое отключает функцию автоматического закрытия. Установка параметра влияет только на будущие ассоциации, все существующие ассоциации сохраняют старые значения.

Автоматическое закрытие может использоваться сервером для закрытия неиспользуемых ассоциаций без дополнительных затрат на хранение информации о состоянии. Однако разработчик сервера должен тщательно оценить максимальную продолжительность бездействия клиентов. Если значение параметра окажется недостаточно большим, ассоциации будут закрываться слишком рано.

Параметр сокета SCTP_DEFAULT_SEND_PARAM

SCTP поддерживает множество дополнительных параметров отправки, которые обычно передаются в виде вспомогательных данных или используются при вызове функции

sctp_sendmsg
(который часто реализуется как библиотечный вызов, передающий вспомогательные данные пользователя). Приложение, планирующее отправку большого количества сообщений с одинаковыми параметрами, может воспользоваться параметром
SCTP_DEFAULT_SEND_PARAM
для настройки значений параметров по умолчанию и тем самым избавиться от необходимости добавлять вспомогательные данные или вызывать
sctp_sendmsg
. На вход параметра поступает структура
sctp_sndrcvinfo
:

struct sctp_sndrcvinfo {

u_int16_t sinfo_stream;

u_int16_t sinfo_ssn;

u_int16_t sinfo_flags;

u_int32_t sinfo_ppid;

u_int32_t sinfo_context;

u_int32_t sinfo_timetolive;

u_int32_t sinfo_tsn;

u_int32_t sinfo_cumtsn;

sctp_assoc_t sinfo_assoc_id;

};

Поля

структуры определяются следующим образом:

sinfo_stream
задает поток, в который по умолчанию направляются все сообщения;

sinfo_ssn
игнорируется при установке значений параметров по умолчанию. При получении сообщений функцией
recvmsg
или
sctp_recvmsg
это поле содержит значение потокового последовательного номера (stream sequence number, SSN), помещенное собеседником в порцию данных;

sinfo_flags
устанавливает значения всех флагов для будущих сообщений. Допустимые значения флагов приводятся в табл. 7.5;

sinfo_ppid
задает значение идентификатора протокола SCTP для всех будущих передач данных;

sinfo_context
задает значение по умолчанию для поля
sinfo_context
, которое является локальной меткой для сообщений, которые не могли быть доставлены собеседнику;

sinfo_timetolive
определяет время жизни отправляемых сообщений. Поле времени жизни используется стеком SCTP для того, чтобы сбрасывать сообщения, задержавшиеся в буфере отправки на слишком большой срок и не переданные ни разу. Если обе конечные точки поддерживают режим частичной надежности, параметр времени жизни влияет и на количество попыток повторной передачи, ограничивая их срок;

sinfo_tsn
игнорируется при установке параметров по умолчанию. При получении сообщений функцией
recvmsg
или
sctp_recvmsg
это поле содержит значение транспортного последовательного номера (transport sequence number, TSN), помещенное собеседником в порцию данных SCTP;

sinfo_cumtsn
игнорируется при установке параметров по умолчанию. При получении сообщений функцией
recvmsg
или
sctp_recvmsg
это поле содержит значение кумулятивного транспортного последовательного номера, вычисленного локальным стеком SCTP для удаленного собеседника;

sinfo
_assoc_id содержит идентификатор ассоциации, для которой требуется установка параметров по умолчанию. Для сокетов типа «один-к-одному» это поле игнорируется.

Таблица 7.5. Допустимые значения флагов SCTP (поле sinfo_flags)

Константа Описание
MSG_ABORT Вызывает аварийное завершение ассоциации
MSG_ADDR_OVER Заставляет SCTP использовать указанный адрес вместо адреса по умолчанию
MSG_EOF Корректное завершение ассоциации после отправки сообщения
MSG_PR_BUFFER Включение частичной надежности в зависимости от буфера (если она вообще поддерживается)
MSG_PR_SCTP Включение частичной надежности доставки для данного сообщения (если поддерживается)
MSG_UNORDERED Указывает, что данное сообщение использует сервис неупорядоченной доставки
Поделиться:
Популярные книги

Измена. Я отомщу тебе, предатель

Вин Аманда
1. Измены
Любовные романы:
современные любовные романы
5.75
рейтинг книги
Измена. Я отомщу тебе, предатель

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад

Мимик нового Мира 6

Северный Лис
5. Мимик!
Фантастика:
юмористическая фантастика
попаданцы
рпг
5.00
рейтинг книги
Мимик нового Мира 6

Идеальный мир для Лекаря 2

Сапфир Олег
2. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 2

Начальник милиции

Дамиров Рафаэль
1. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции

Магия чистых душ

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.40
рейтинг книги
Магия чистых душ

Темный Патриарх Светлого Рода 4

Лисицин Евгений
4. Темный Патриарх Светлого Рода
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 4

Стрелок

Астахов Евгений Евгеньевич
5. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Стрелок

На границе империй. Том 6

INDIGO
6. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.31
рейтинг книги
На границе империй. Том 6

Архил…? Книга 3

Кожевников Павел
3. Архил...?
Фантастика:
фэнтези
попаданцы
альтернативная история
7.00
рейтинг книги
Архил…? Книга 3

Доктора вызывали? или Трудовые будни попаданки

Марей Соня
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Доктора вызывали? или Трудовые будни попаданки

Лорд Системы 11

Токсик Саша
11. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 11

Черный Маг Императора 5

Герда Александр
5. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 5

Последний попаданец 2

Зубов Константин
2. Последний попаданец
Фантастика:
юмористическая фантастика
попаданцы
рпг
7.50
рейтинг книги
Последний попаданец 2