Уильям Стивенс - UNIX - разработка сетевых приложений

Здесь есть возможность читать онлайн «Уильям Стивенс - UNIX - разработка сетевых приложений» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Санкт-Петербург, Год выпуска: 2007, ISBN: 2007, Издательство: Питер, Жанр: ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

UNIX: разработка сетевых приложений: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «UNIX: разработка сетевых приложений»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Новое издание книги, посвященной созданию веб-серверов, клиент-серверных приложений или любого другого сетевого программного обеспечения в операционной системе UNIX, — классическое руководство по сетевым программным интерфейсам, в частности сокетам. Оно основано на трудах Уильяма Стивенса и полностью переработано и обновлено двумя ведущими экспертами по сетевому программированию. В книгу включено описание ключевых современных стандартов, реализаций и методов, она содержит большое количество иллюстрирующих примеров и может использоваться как учебник по программированию в сетях, так и в качестве справочника для опытных программистов.

UNIX: разработка сетевых приложений — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «UNIX: разработка сетевых приложений», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Таблица 9.3. Уведомление о состоянии адреса собеседника

spc_state Значение
SCTP_ADDR_ADDED Адрес добавлен к ассоциации
SCTP_ADDR_AVAILABLE Адрес доступен
SCTP_ADDR_CONFIRMED Адрес подтвержден и считается действующим
SCTP_ADDR_MADE_PRIM Адрес сделан основным
SCTP_ADDR_REMOVED Адрес удален из списка адресов ассоциации
SCTP_ADDR_UNREACHABLE Адрес недоступен

Данные, отправленные на недоступный ( SCTP_ADDR_UNREACHABLE) адрес, будут направляться на альтернативный адрес. Некоторые состояния доступны только в тех реализациях SCTP, которые поддерживают динамическую адресацию (в частности, SCTP_ADDR_ADDEDи SCTP_ADDR_REMOVED).

Поле spc_errorсодержит код ошибки, дающий больше сведений о событии, а поле spc_assoc_id, как обычно, хранит идентификатор ассоциации.

SCTP_REMOTE_ERROR

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

struct sctp_remote_error {

u_int16_t sre_type;

u_int16_t sre_flags;

u_int32_t sre_length;

u_int16_t sre_error;

sctp_assoc_t sre_assoc_id;

u_int8_t sre_data[];

};

Поле sre_errorсодержит код причины ошибки протокола SCTP; sre_assoc_id— идентификатор ассоциации, a sre_data— ошибочную порцию данных в сетевом формате.

SCTP_SEND_FAILED

Сообщение, которое невозможно доставить собеседнику, возвращается отправителю в этом уведомлении. За таким уведомлением обычно следует уведомление об отказе ассоциации. В большинстве случаев доставка сообщения оказывается невозможной именно по причине отказа ассоциации. Если же используется режим частичной надежности SCTP, сообщение может быть возвращено и в том случае, если отказа ассоциации реально не произошло.

Данные, возвращаемые приложению с этим уведомлением, имеют следующий формат:

struct sctp_send_failed {

u_int16_t ssf_type;

u_int16_t ssf_flags;

u_int32_t ssf_length;

u_int32_t ssf_error;

struct sctp_sndrcvinfo ssf_info;

sctp_assoc_t ssf_assoc_id;

u_int8_t ssf_data[];

};

Поле ssf_flagsможет иметь одно из двух значений:

SCTP_DATA_UNSENT— сообщение не было послано собеседнику (управление потоком не позволило отправить сообщение до истечения его времени жизни);

SCTP_DATA_SENT— сообщение было передано по крайней мере один раз, но собеседник не подтвердил его получение. Собеседник мог получить сообщение, но он не смог подтвердить его.

Эта разница может быть существенной для протоколов обработки транзакций, которые при восстановлении соединения могут предпринимать разные действия в зависимости от того, было принято конкретное сообщение или нет. Поле ssf_errorможет содержать код ошибки, относящейся к конкретному уведомлению, или быть нулевым. Поле ssf_infoсодержит сведения, переданные ядру при отправке данных (например, номер потока, контекст и так далее). Поле ssf_assoc_idсодержит идентификатор ассоциации, а в поле ssf_dataпомещается недоставленное сообщение.

SCTP_SHUTDOWN_EVENT

Это уведомление передается приложению при приеме от собеседника порции SHUTDOWN. После этой порции никакие новые данные на том же сокете получены быть не могут. Все данные, уже помещенные в очередь, будут переданы собеседнику, после чего ассоциация будет закрыта. Уведомление имеет следующий формат:

struct sctp_shutdown_event {

uint16_t sse_type;

uint16_t sse_flags;

uint32_t sse_length;

sctp_assoc_t sse_assoc_id;

};

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

SCTP_ADAPTION_INDICATION

Некоторые реализации поддерживают параметр индикации адаптирующего уровня ( adaption layer indication ). Этот параметр передается в пакетах INIT и INIT-ACK и уведомляет собеседника о выполняемой адаптации приложения. Уведомление имеет следующий формат:

struct sctp_adaption_event {

u_int16_t sai_type;

u_int16_t sai_flags;

u_int32_t sai_length;

u_int32_t sai_adaption_ind;

sctp_assoc_t sai_assoc_id;

};

Поле sai_assoc_idсодержит обычный идентификатор ассоциации. Поле sai_adaption_indпредставляет собой 32-разрядное целое число, переданное собеседником локальной конечной точке в сообщении INIT или INIT-ACK. Уровень адаптации для исходящих сообщений устанавливается при помощи параметра сокета SCTP_ADAPTION_LAYER(см. раздел 7.10). Все это описано в стандарте [116], а пример использования параметра для удаленного прямого доступа к памяти и прямой записи данных описывается в [115].

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «UNIX: разработка сетевых приложений»

Представляем Вашему вниманию похожие книги на «UNIX: разработка сетевых приложений» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «UNIX: разработка сетевых приложений»

Обсуждение, отзывы о книге «UNIX: разработка сетевых приложений» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x