21.3. Сравнение многоадресной и широковещательной передачи в локальной сети
21.3. Сравнение многоадресной и широковещательной передачи в локальной сети
Вернемся к примерам, представленным на рис. 20.2 и 20.3, чтобы показать, что происходит в случае многоадресной передачи. В примере, показанном на рис. 21.3, мы будем использовать IPv4, хотя для IPv6 последовательность операций будет такой же.
Рис. 21.3. Пример многоадресной передачи дейтаграммы UDP
Принимающее приложение на узле, изображенном справа, запускается и создает сокет UDP, связывает порт 123 с сокетом и затем присоединяется к группе 224.0.1.1. Мы вскоре увидим, что операция «присоединения» выполняется при помощи вызова функции setsockopt. Когда это происходит, уровень IPv4 сохраняет внутри себя информацию и затем сообщает соответствующему канальному уровню, что нужно получить кадры Ethernet, предназначенные адресу 01:00:5e:00:01:01 (см. раздел 12.11 [128]). Это соответствующий IP-адресу многоадресной передачи адрес Ethernet, к которому приложение только что присоединилось (с учетом сопоставления адресов, показанного на рис. 21.1).
Следующий шаг для отправляющего приложения на узле, изображенном слева, — создание сокета UDP и отправка дейтаграммы на адрес 224.0.1.1, порт 123. Для отправки дейтаграммы многоадресной передачи не требуется никаких специальных действий — приложению не нужно присоединяться к группе. Отправляющий узел преобразует IP-адрес в соответствующий адрес получателя Ethernet, и кадр отправляется. Обратите внимание, что кадр содержит и адрес получателя Ethernet (проверяемый интерфейсами), и IP-адрес получателя (проверяемый уровнями IP).
Мы предполагаем, что узел, изображенный в центре рисунка, не поддерживает многоадресную передачу IPv4 (поскольку поддержка многоадресной передачи IPv4 не обязательна). Узел полностью игнорирует кадр, поскольку, во-первых, адрес получателя Ethernet не совпадает с адресом интерфейса; во-вторых, адрес получателя Ethernet не является широковещательным адресом Ethernet, и в-третьих, интерфейс не получал указания принимать сообщения с адресами многоадресной передачи (то есть адресами, у которых младший бит старшего байта равен 1, как на рис. 21.1).
ПРИМЕЧАНИЕ
Когда интерфейс получает указание принимать кадры, предназначенные для определенного группового адреса Ethernet, многие современные сетевые адаптеры Ethernet применяют к адресу хэш-функцию, вычисляя значение от 0 до 511. Затем один из 512 бит массива устанавливается равным 1. Когда кадр проходит по кабелю, предназначенному для группового адреса, та же хэш-функция применяется интерфейсом к адресу получателя (первое поле в кадре), и снова вычисляется значение от 0 до 511. Если соответствующий бит в массиве установлен, кадр будет получен интерфейсом; иначе он игнорируется. Старые сетевые адаптеры использовали массив размером 64 бита, поэтому вероятность получения ненужных кадров была выше. С течением времени, поскольку все больше и больше приложений используют многоадресную передачу, этот размер, возможно, еще возрастет. Некоторые сетевые карты уже сейчас осуществляют совершенную фильтрацию (perfect filtering). У других карт возможность фильтрации многоадресной передачи отсутствует вовсе, и получая указание принять определенный групповой адрес, они должны принимать все кадры многоадресных передач (иногда это называется режимом смешанной многоадресной передачи). Одна популярная сетевая карта выполняет совершенную фильтрацию для 16 групповых адресов, а также имеет 512-битовую хэш-таблицу. Другая выполняет совершенную фильтрацию для 80 адресов, а остальные обрабатывает в смешанном режиме. Даже если интерфейс выполняет совершенную фильтрацию, все равно требуется совершенная программная фильтрация в пределах IP, поскольку сопоставление групповых адресов IP с аппаратными адресами не является взаимнооднозначным.
Канальный уровень, изображенный справа, получает кадр на основе так называемой несовершенной фильтрации (imperfect filtering), которая выполняется интерфейсом с использованием адреса получателя Ethernet. Мы говорим, что эта фильтрация несовершенна, потому что если интерфейс получает указание принимать кадры, предназначенные для одного определенного группового адреса Ethernet, может случиться так, что он будет получать кадры, предназначенные также для других групповых адресов Ethernet.
Если предположить, что канальный уровень, изображенный справа, получает кадр, то поскольку тип кадра Ethernet — IPv4, пакет передается уровню IP. Поскольку полученный пакет был предназначен IP-адресу многоадресной передачи, уровень IP сравнивает этот адрес со всеми адресами многоадресной передачи, к которым присоединились приложения на узле. Мы называем это совершенной фильтрацией, так как она основана на полном 32-разрядном адресе класса D в заголовке IPv4. В этом примере пакет принимается уровнем IP и передается уровню UDP, который, в свою очередь, передает дейтаграмму сокету, связанному с портом 123.
Существует еще три сценария, не показанных нами на рис. 21.3.
1. На узле запущено приложение, присоединившееся к адресу многоадресной передачи 225.0.1.1. Поскольку 5 верхних битов группового адреса игнорируются при сопоставлении с адресом Ethernet, этот интерфейс узла будет также получать кадры с адресом получателя Ethernet 01:00:5e:00:01:01. В этом случае пакет будет проигнорирован при осуществлении совершенной фильтрации на уровне IP.
2. На узле запущено приложение, присоединившееся к некоторой группе. Соответствующий адрес Ethernet этой группы является одним из тех, которые интерфейс может получить случайно, поскольку он запрограммирован на получение сообщений на адрес 01:00:5e:00:01:01 (то есть сетевая карта выполняет несовершенную фильтрацию). Этот кадр будет проигнорирован либо канальным уровнем, либо уровнем IP.
3. Пакет предназначен для той же группы 224.0.1.1, но для другого порта, скажем 4000. Узел, изображенный справа на рис. 21.3, получает пакет, далее этот пакет принимается уровнем IP, но если не существует сокета, связанного с портом 4000, пакет будет проигнорирован уровнем UDP.
ВНИМАНИЕ
Эти сценарии показывают нам, что для того чтобы процесс мог получать дейтаграммы многоадресной передачи, он должен присоединиться к группе и связаться с портом.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
20.4. Функция dg_cli при использовании широковещательной передачи
20.4. Функция dg_cli при использовании широковещательной передачи Мы еще раз изменим нашу функцию dg_cli, на этот раз дав ей возможность отправлять широковещательные сообщения стандартному серверу времени и даты UDP (см. табл. 2.1) и выводить все ответы. Единственное изменение,
21.2. Адрес многоадресной передачи
21.2. Адрес многоадресной передачи При описании адресов многоадресной передачи необходимо провести различия между IPv4 и
Адреса многоадресной передачи IPv6
Адреса многоадресной передачи IPv6 Старший байт адреса многоадресной передачи IPv6 имеет значение ff. На рис. 21.1 показано сопоставление 16-байтового адреса многоадресной передачи IPv6 6-байтовому адресу Ethernet. Младшие 32 бита группового адреса копируются в младшие 32 бита адреса
Область действия адресов многоадресной передачи
Область действия адресов многоадресной передачи Адреса многоадресной передачи IPv6 имеют собственное 4-разрядное поле области действия (scope), определяющее, насколько «далеко» будет передаваться пакет многоадресной передачи. Пакеты IPv6 вообще имеют поле предела количества
Сеансы многоадресной передачи
Сеансы многоадресной передачи Сочетание адреса многоадресной передачи IPv4 или IPv6 и порта транспортного уровня часто называется сеансом (session), особенно если речь идет о передаче потокового мультимедиа. Например, телеконференция может объединять два сеанса: один аудио- и
21.6. Параметры сокетов многоадресной передачи
21.6. Параметры сокетов многоадресной передачи Для поддержки многоадресной передачи программным интерфейсом приложений (API) требуется только пять новых параметров сокетов. Поддержка фильтрации отправителей, необходимая для SSM, требует еще четырех параметров. В табл. 21.2
1.6.1. Сервер локальной сети
1.6.1. Сервер локальной сети Сервер локальной сети (рис. 1.1) — это сервер, оказывающий услуги пользователям сети Интранет (Intranet). He путайте «Интранет» с «Интернет». Сеть Intranet — это внутренняя корпоративная сеть, как правило, без выхода в Интернет.Представьте себе небольшую
Подключение по локальной сети
Подключение по локальной сети Подключение к Интернету посредством выделенного канала, через районную или домашнюю локальную сеть – один из самых удобных и недорогих вариантов. И, в любом случае – самый быстрый: как известно, кабельная сеть обеспечивает передачу данных
6.2. Подключение к локальной сети
6.2. Подключение к локальной сети Если среди вашего оборудования есть сетевая плата, то она будет обнаружена при установке системы. Если же вы установили сетевую плату после установки системы, то запустите средство поиска нового оборудования. Обычно для этого применяется
2.3. Интернет по локальной сети
2.3. Интернет по локальной сети 2.3.1. Настройка локальной сети Интернет по локальной сети чаще всего встречается на предприятиях или в небольших домашних сетях. Как правило, в сети есть главный компьютер - шлюз, предоставляющий всем остальным компьютерам сети доступ к
2.3.1. Настройка локальной сети
2.3.1. Настройка локальной сети Интернет по локальной сети чаще всего встречается на предприятиях или в небольших домашних сетях. Как правило, в сети есть главный компьютер - шлюз, предоставляющий всем остальным компьютерам сети доступ к Интернету. У этого компьютера два
Подключение к проводной локальной сети
Подключение к проводной локальной сети Большинство ноутбуков имеют встроенный Ethernet-адаптер, обеспечивающий подключение со скоростью не менее 100
Подключение к беспроводной локальной сети
Подключение к беспроводной локальной сети В данном разделе мы подробно рассмотрим стандарты беспроводных интерфейсов (вкратце о них уже упоминалось в предыдущих главах) и расскажем, как подключить компьютер к точке доступа и выйти в
Глава 24 Подключение к локальной сети
Глава 24 Подключение к локальной сети • Проводная локальная сеть• Настройка сетевого соединения1 сентября 1969 года считается датой рождения Интернета. Впервые с помощью специального кабеля были объединены два компьютера, которые могли обмениваться данными друг с
Подключение по беспроводной локальной сети
Подключение по беспроводной локальной сети В компьютерной индустрии есть примеры, когда самые передовые технологии получают действительно широкое распространение только спустя несколько лет после их создания.Можно отметить достаточно медленное внедрение известного