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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

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

■ Идентификатор группы перестает быть групповым адресом и становится комбинацией адреса отправителя (адреса направленной передачи) и адреса группы (адреса многоадресной передачи). Такая комбинация называется в SSM каналом ( channel ). Благодаря этому отправитель может выбрать любой адрес многоадресной передачи, так как уникальность канала обеспечивается уже уникальностью адреса отправителя. Сеанс SSM представляет собой комбинацию адреса отправителя, адреса группы и порта.

SSM обеспечивает некоторую защиту от подмены адреса, потому что отправителю 2 становится значительно труднее передавать сообщения по каналу отправителя 1, так как идентификатор этого канала включает в себя адрес отправителя 1. Подмена все еще остается возможной, однако серьезно усложняется.

21.6. Параметры сокетов многоадресной передачи

Для поддержки многоадресной передачи программным интерфейсом приложений (API) требуется только пять новых параметров сокетов. Поддержка фильтрации отправителей, необходимая для SSM, требует еще четырех параметров. В табл. 21.2 показаны три параметра, не имеющих отношения к членству в группах, а также тип данных аргумента, который предполагается использовать в вызове функций getsockoptили setsockoptдля IPv4 и IPv6. В табл. 21.3 представлены оставшиеся шесть параметров сокетов для IPv4, IPv6 и не зависящего от IP-версии API. Во втором столбце показан тип данных переменной, указатель на которую является четвертым аргументом функций getsockoptи setsockopt. Все девять параметров действительны с функцией setsockopt, но шесть предназначенных для входа и выхода из группы не могут быть использованы в вызове функции getsockopt.

Таблица 21.2. Параметры сокетов многоадресной передачи

Параметр Тип данных Описание
IP_MULTICAST_IF struct in_addr Интерфейс по умолчанию для исходящих многоадресных пакетов
IP_MULTICAST_TTL u_char TTL для исходящих многоадресных пакетов
IP_MULTICAST_LOOP u_char Включение и отключение закольцовки для исходящих многоадресных пакетов
IPV6_MULTICAST_IF u_int Интерфейс по умолчанию для исходящих многоадресных пакетов
IPV6_MULTICAST_HOPS int Предел количества прыжков для и сходящих многоадресных пакетов
IPV6_MULTICAST_LOOP u_int Включение и отключение закольцовки для исходящих многоадресных пакетов

Таблица 21.3. Параметры сокета, определяющие членство в группах многоадресной передачи

Параметр Тип данных Описание
IP_ADD_MEMBERSHIP struct ip_mreq Присоединение к группе многоадресной передачи
IP_DROP_MEMBERSHIP struct ip_mreq Отсоединение от группы многоадресной передачи
IP_BLOCK_SOURCE struct ip_mreq_source Блокирование источника из группы, к которой выполнено присоединение
IP_UNBLOCK_SOURCE struct ip_mreq_source Разблокирование ранее заблокированного источника
IP_ADD_SOURCE_MEMBERSHIP struct ip_mreq_source Присоединение к группе источника
IP_DROP_SOURCE_MEMBERSHIP struct ip_mreq_source Отсоединение от группы источника
IPV6_JOIN_GROUP struct ipv6_mreq Присоединение к группе многоадресной передачи
IPV6_LEAVE_GROUP struct ipv6_mreq Отсоединение от группы многоадресной передачи
MCAST_JOIN_GROUP struct group_req Присоединение к группе многоадресной передачи
MCAST_LEAVE_GROUP struct group_req Отсоединение от группы многоадресной передачи
MCAST_BLOCK_SOURCE struct group_source_req Блокирование источника из группы, к которой выполнено присоединение
MCAST_UNBLOCK_SOURCE struct group_source_req Разблокирование ранее заблокированного источника
MCAST_JOIN_SOURCE_GROUP struct group_source_req Присоединение к группе источника
MCAST_LEAVE_SOURCE_GROUP struct group_source_req Отсоединение от группы источника
ПРИМЕЧАНИЕ

Параметры IPv4 TTL и закольцовки получают аргумент типа u_char, в то время как IPv6-параметры предела транзитных узлов и закольцовки получают аргументы соответственно типа int и u_int. Распространенная ошибка программирования с параметрами многоадресной передачи IPv4 — вызов функции setsockopt с аргументом типа int для задания TTL или закольцовки (что не разрешается [128, с. 354–355]), поскольку большинство других параметров сокетов, представленных в табл. 7.1, имеют целочисленные аргументы. Изменения, внесенные в IPv6, должны уменьшить вероятность ошибок.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x