Книга: UNIX: разработка сетевых приложений
Параметр сокета SCTP_STATUS
Параметр сокета SCTP_STATUS
Этот параметр сокета служит для получения информации о текущем статусе ассоциации SCTP. Для обеспечения максимальной переносимости пользуйтесь функцией sctp_opt_info
, а не getaddrinfo
. Приложение должно предоставить структуру sctp_status
, указав идентификатор ассоциации sstat_assoc_id
. Структура будет заполнена информацией о выбранной ассоциации и возвращена приложению. Формат структуры sctp_status
таков:
struct sctp_status {
sctp_assoc_t sstat_assoc_id;
int32_t sstat_state;
u_int32_t sstat_rwnd;
u_int16_t sstat_unackdata;
u_int16_t sstat_penddata;
u_int16_t sstat_instrms;
u_int16_t sstat_outstrms;
u_int32_t sstat_fragmentation_point;
struct sctp_paddrinfo sstat_primary;
};
Поля структуры имеют следующий смысл:
? sstat_assoc_id
содержит идентификатор ассоциации;
? sstat_state
содержит константу, обозначающую состояние ассоциации (табл. 7.8). Подробное описание состояний конечной точки SCTP, чередующихся при установке и завершении ассоциации, приводится на рис. 2.8;
? sstat_rwnd
содержит текущее вычисленное значение приемного окна собеседника;
? sstat_unackdata
содержит количество неподтвержденных порций данных, ждущих ответа собеседника;
? sstat_penddata
содержит количество непрочитанных порций данных, подготовленных локальной конечной точкой SCTP для приложения;
? sstat_instrms
содержит количество потоков, используемых собеседником для передачи данных на данную конечную точку;
? sstat_outstrms
содержит количество потоков, по которым данная конечная точка может передавать данные собеседнику;
? sstat_fragmentation_point
содержит текущее значение границы фрагментации пользовательских сообщений, используемое локальной конечной точкой SCTP. Это значение обычно равняется минимальной MTU для всех адресатов или еще меньшей величине, установленной при помощи параметра SCTP_MAXSEG
;
? sstat_primary
содержит текущий основной адрес. Основной адрес используется по умолчанию для отправки данных собеседнику.
Таблица 7.8. Состояния SCTP
Константа | Описание |
---|---|
SCTP_CLOSED | Ассоциация закрыта |
SCTP_COOKIE_WAIT | Ассоциация отправила пакет INIT |
SCTP_COOKIE_ECHOED | Ассоциация отправила эхо-ответ cookie |
SCTP_ESTABLISHED | Ассоциация установлена |
SCTP_SHUTDOWN_PENDING | Ассоциация ждет отправки сообщения о завершении |
SCTP_SHUTDOWN_SENT | Ассоциация отправила сообщение о завершении |
SCTP_SHUTDOWN_RECEIVED | Ассоциация получила сообщение о завершении |
SCTP_SHUTDOWN_ACK_SENT | Ассоциация ждет пакета SHUTDOWN-COMPLETE |
Эти параметры полезны для диагностики соединения и определения характеристик текущего сеанса. Например, функция sctp_get_no_strms
в разделе 10.2 будет считывать sstat_outstrms
для определения количества доступных для отправки данных потоков. Низкое значение sstat_rwnd
или высокое значение sstat_unackdata
позволяет сделать вывод о заполнении приемного буфера собеседника, так что приложение может вовремя замедлить передачу данных. Поле sstat_fragmentation_point
может использоваться некоторыми приложениями для уменьшения количества пакетов, создаваемых SCTP, путем уменьшения размеров сообщений.
- Параметр сокета 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_MAXSEG
- Параметр сокета SCTP_NODELAY
- Основные параметры ЭЛТ-мониторов
- Безопасность внешних таблиц. Параметр EXTERNAL FILE DIRECTORY
- Единое имя файла параметров InterBase
- Параметры конфигурационного файла InterBase
- Параметры в ibconfig
- Показания к изменению параметра