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


Авторские права

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

Здесь можно купить и скачать "Уильям Стивенс - UNIX: разработка сетевых приложений" в формате fb2, epub, txt, doc, pdf. Жанр: Программное обеспечение, издательство Питер, год 2007. Так же Вы можете читать ознакомительный отрывок из книги на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Уильям Стивенс - UNIX: разработка сетевых приложений
Рейтинг:
Название:
UNIX: разработка сетевых приложений
Издательство:
неизвестно
Год:
2007
ISBN:
5-94723-991-4
Вы автор?
Книга распространяется на условиях партнёрской программы.
Все авторские права соблюдены. Напишите нам, если Вы не согласны.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

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

Описание и краткое содержание "UNIX: разработка сетевых приложений" читать бесплатно онлайн.



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






■ 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 Указывает, что данное сообщение использует сервис неупорядоченной доставки

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

Параметр сокета SCTP_DISАВLE_FRAGМENTS

В обычном режиме работы SCTP фрагментирует все сообщения, не помещающиеся в один пакет SCTP, разбивая их на несколько порций типа DATA. Установка параметра SCTP_DISABLE_FRAGMENTS отключает фрагментацию для данного отправителя. Если сообщение требует фрагментации, а фрагментация отключена, SCTP возвращает ошибку EMSGSIZE и не отсылает сообщение.

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

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

Этот параметр сокета позволяет включать, выключать и определять состояние подписки на различные уведомления SCTP. Уведомление SCTP представляет собой сообщение, отправляемое стеком SCTP приложению. Сообщение считывается как и обычные данные, однако в поле msg_flags при вызове функции recvmsg должно находиться значение MSG_NOTIFICATION. Приложение, не готовое к использованию recvmsg или sctp_recvmsg, не должно включать подписку на события. Параметр позволяет управлять событиями восьми различных типов и передавать структуру sctp_event_subscribe. Нулевое значение соответствует отключению подписки, а единица — включению.

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

struct sctp_event_subscribe {

 u_int8_t sctp_data_io_event;

 u_int8_t sctp_association_event;

 u_int8_t sctp_address_event;

 u_int8_t sctp_send_failure_event;

 u_int8_t sctp_peer_error_event;

 u_int8_t sctp_shutdown_event;

 u_int8_t sctp_partial_delivery_event;

 u_int8_t sctp_adaption_layer_event;

};

В табл. 7.6 описано назначение различных событий. Подробнее об уведомлениях вы узнаете в разделе 9.14.


Таблица 7.6. События SCTP

Константа Описание sctp_data_io_event Включение и отключение доставки sctp_sndrcvinfo с каждым вызовом recvmsg sctp_association_event Включение и отключение уведомлений о состоянии ассоциации sctp_address_event Включение и отключение уведомлений об адресах sctp_send_failure_event Включение и отключение уведомлений об ошибках доставки сообщений sctp_peer_error_event Включение и отключение уведомлений об ошибках протокола собеседника sctp_shutdown_event Включение и отключение уведомлений о завершении ассоциации sctp_partial_delivery_event Включение и отключение уведомлений о частичной доставке sctp_adaption_layer_event Включение и отключение уведомлений уровня-адаптера

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

Этот параметр позволяет получить информацию о собеседнике, которая включает окно приема, сглаженные значения RTT и MTU. Параметр может быть применен только к конкретному адресу собеседника. Вызывающее приложение заполняет поле spinfo_address структуры sctp_paddrinfo интересующим его адресом собеседника. Для максимальной переносимости рекомендуется работать с функцией sctp_opt_info, а не getsockopt. Формат структуры sctp_paddrinfo описан ниже:

struct sctp_paddrinfo {

 sctp_assoc_t spinfo_assoc_id;

 struct sockaddr_storage spinfo_address;

 int32_t spinfo_state;

 uint32_t spinfo_cwnd;

 u_int32_t spinfo_srtt;

 u_int32_t spinfo_rto;

 u_int32_t spinfo_mtu;

};

Приложению возвращаются следующие сведения:

■ spinfo_assoc_id содержит информацию об идентификаторе ассоциации, которая доставляется также в уведомлении об установке ассоциации (SCTP_COMM_UP). Уникальный идентификатор ассоциации может использоваться для обращения к ней в большинстве функций SCTP;

■ spinfo_address позволяет приложению указать конкретный адрес собеседника, для которого оно хочет получить сведения. По возвращении из getsockopt или sctp_opt_info значение структуры должно оставаться неизменным;

■ spinfo_state может содержать одно или несколько значений (табл. 7.7).


Таблица 7.7. Состояния адреса собеседника SCTP

Константа Описание SCTP_ACTIVE Адрес активен и доступен SCTP_INACTIVE В настоящий момент адрес недоступен SCTP_ADDR_UNCONFIRMED Доставка данных или проверочных сообщений на данный адрес не была подтверждена

Неподтвержденным считается адрес, перечисленный собеседником в списке действующих, но не проверенный локальным SCTP. Для проверки адреса требуется, чтобы отправленные на него данные или проверочные сообщения были подтверждены. Для непроверенного адреса не может быть указано корректное значение тайм-аута повторной передачи (RTO). Активными считаются адреса, доступные для передачи данных.

■ spinfo_cwnd хранит текущий размер окна приема для данного адреса. Описание процедуры расчета параметра cwnd приводится в [117, с. 177];

■ spinfo_srtt хранит текущую оценку сглаженного RTT для данного адреса;

■ spinfo_rto хранит текущее значение тайм-аута повторной передачи для данного адреса;

■ spinfo_mtu хранит текущую транспортную MTU, определенную по соответствующему алгоритму.

Параметр полезно использовать для получения идентификатора ассоциации по структуре с IP-адресом собеседника. Это будет продемонстрировано в главе 23. Кроме того, приложение может отслеживать функционирование всех адресов собеседника с несколькими интерфейсами и выбирать лучший из них в качестве адреса по умолчанию. Наконец, все эти сведения полезны для ведения журналов и отладки.


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

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

Книги похожие на "UNIX: разработка сетевых приложений" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Уильям Стивенс

Уильям Стивенс - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

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

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

Отзывы читателей о книге "UNIX: разработка сетевых приложений", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.