Книга: UNIX: разработка сетевых приложений
Параметр сокета SCTP_ASSOCINFO
Параметр сокета SCTP_ASSOCINFO
Параметр сокета SCTP_ASSOCINFO
выполняет три функции. Во-первых, он позволяет получать сведения о существующей ассоциации. Во-вторых, с его помощью можно изменять параметры существующей ассоциации. Наконец, в-третьих, через этот параметр можно задавать значения по умолчанию для будущих ассоциаций. При получении сведений о существующей ассоциации вместо getsockopt
следует использовать sctp_opt_info
. Вместе с параметром при вызове функции указывается структура sctp_assocparams
:
struct sctp_assocparams {
sctp_assoc_t sasoc_assoc_id;
uint16_t sasoc_asocmaxrxt;
uint16_t sasoc_number_peer_destinations;
uint32_t sasoc_peer_rwnd;
uint32_t sasoc_local_rwnd;
uint32_t sasoc_cookie_life;
};
Поля структуры имеют следующий смысл:
? sasoc_assoc_id
хранит идентификатор ассоциации. Если при вызове setsockopt
параметр установлен в нуль, поля sasoc_asocmaxrxt
и sasoc_cookie_life
трактуются как новые значения по умолчанию для сокета. Вызов getsockopt
вернет сведения об ассоциации, если при вызове указать ее идентификатор; если же поле оставить нулевым, будут возвращены значения по умолчанию;
? 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_ADAPTION_LAYER
- Параметр сокета SCTP_ASSOCINFO
- Параметр сокета SCTP_AUTOCLOSE
- Параметр сокета SCTP_DEFAULT_SEND_PARAM
- Параметр сокета SCTP_DISАВLE_FRAGМENTS
- Параметр сокета SCTP_EVENTS
- Параметр сокета SCTP_GET_PEER_ADDR_INFO
- Параметр сокета SCTP_I_WANT_MAPPED_V4_ADDR
- Параметр сокета SCTP_INITMSG
- Параметр сокета SCTP_MAXBURST
- Параметр сокета SCTP_MAXSEG
- Параметр сокета SCTP_NODELAY
- Параметр сокета SCTP_PEER_ADDR_PARAMS
- Параметр сокета SCTP_PRIMARY_ADDR
- Параметр сокета SCTP_RTOINFO
- Параметр сокета SCTP_SET_PEER_PRIMARY_ADDR
- Параметр сокета SCTP_STATUS
- Параметр сокета SCTP_I_WANT_MAPPED_V4_ADDR
- 7.10. Параметры сокетов SCTP
- Параметр сокета SCTP_NODELAY
- Основные параметры ЭЛТ-мониторов
- Безопасность внешних таблиц. Параметр EXTERNAL FILE DIRECTORY
- Единое имя файла параметров InterBase
- Параметры конфигурационного файла InterBase
- Параметры в ibconfig
- Показания к изменению параметра