29.3. DLPI: интерфейс поставщика канального уровня

29.3. DLPI: интерфейс поставщика канального уровня

SVR4 обеспечивает доступ к канальному уровню через DLPI (Data Link Provider Interface — интерфейс поставщика канального уровня). DLPI — это не зависящий от протокола интерфейс, разработанный в AT&T и служащий средством связи с сервисами, обеспечиваемыми канальным уровнем [124]. Доступ к DLPI осуществляется посредством отправки и получения сообщений через потоки STREAMS.

Для подсоединения к канальному уровню приложение просто открывает устройство (например, le0) с помощью команды open и использует запрос DL_ATTACH_REQ. Но для эффективной работы используются два дополнительных модуля: pfmod, который осуществляет фильтрацию внутри ядра, и bufmod, буферизующий данные, предназначенные для приложения. Это показано на рис. 29.2.

Рис. 29.2. Захват пакета с использованием DLPI, pfmod и bufmod

Концептуально DLPI аналогичен BPF. pfmod поддерживает фильтрацию внутри ядра, используя псевдопроцессор, a bufmod сокращает количество данных и системных вызовов, поддерживая длину захвата и время ожидания для считывания.

Одно интересное различие, тем не менее, заключается в том, что для BPF и фильтров pfmod используются разные типы псевдопроцессоров. Фильтр BPF — это ориентированный ациклический граф управления потоком (acyclic control flow graph, CFG), в то время как pfmod использует дерево булевых выражений. В первом случае естественным является отображение в код для вычислительной машины с регистровой организацией, а во втором — в код для машины со стековой организацией [72]. В статье [72] показано, что реализация CFG, используемая в BPF, обычно работает быстрее, чем дерево булевых выражений, в 3-20 раз в зависимости от сложности фильтра.

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

5.2.2 Определения уровня ПО

Из книги ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВСТРОЕННЫХ СИСТЕМ. Общие требования к разработке и документированию автора Госстандарт России


Атрибуты уровня компоновочного блока (и уровня модуля)

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Атрибуты уровня компоновочного блока (и уровня модуля) Можно также задать применение атрибутов ко всем типам в рамках данного модуля или всех модулей в рамках данного компоновочного блока, если, соответственно, использовать признаки [module:] или [assembly:]. Предположим, что нам


Модель источника поставщика данных .NET 2.0

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

Модель источника поставщика данных .NET 2.0 В .NET 2,0 предлагается модель источника поставщика данных, с помощью которой, используя обобщенные типы, можно построить единый базовый код для доступа к данным. Более того, используя файлы конфигурации приложения (в частности, их


Рабочий пример источника поставщика данных

Из книги Инфраструктуры открытых ключей автора Полянская Ольга Юрьевна

Рабочий пример источника поставщика данных Давайте построим консольное приложение (с именем DataProviderFactory), которое будет печатать имена и фамилии авторов из таблицы Authors базы данных Pubs, создаваемой при установке Microsoft SQL Server (Pubs представляет собой пример базы данных


Глава 4 Технологии физического уровня и уровня связи данных

Из книги Операционная система UNIX автора Робачевский Андрей М.

Глава 4 Технологии физического уровня и уровня связи данных 4.1 Введение За последние несколько лет было предложено беспрецедентное количество новых технологий для локальных и региональных сетей, быстро утвердившихся на компьютерном рынке. Произошел огромный скачок от


Лекция 19. Проблемы выбора поставщика технологии или сервисов PKI

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

Лекция 19. Проблемы выбора поставщика технологии или сервисов PKI Подробно рассматриваются проблемы выбора поставщика технологии или сервисов PKI, формулируются основные критерии выбора, обсуждаются проблемы масштабируемости и безопасности PKI-решения, приводятся


Определение критериев выбора поставщика технологии или сервисов PKI

Из книги автора

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


Финансовые возможности поставщика

Из книги автора

Финансовые возможности поставщика Всегда, особенно в период экономической нестабильности, важна устойчивость финансового положения поставщика, а также его способность адекватно реагировать на изменение технологических стандартов и требований заказчика. Независимо


Анализ возможностей поставщика

Из книги автора

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


Выбор программного продукта или поставщика сервисов PKI

Из книги автора

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


Интерфейс доступа низкого уровня

Из книги автора

Интерфейс доступа низкого уровня Символьные драйверы обеспечивают доступ не только к символьным устройствам, например, к адаптеру последовательного или параллельного портов, манипулятору "мышь", монитору или терминалам. Часть символьных драйверов служит в качестве


Программный интерфейс высокого уровня.

Из книги автора

Программный интерфейс высокого уровня. Удаленный вызов процедур В предыдущих разделах рассматривался программный интерфейс достаточно низкого уровня — по существу программа взаимодействовала непосредственно с транспортным протоколом, самостоятельно реализуя


Интерфейс DLPI

Из книги автора

Интерфейс DLPI DLPI определяет интерфейс между протоколами уровня канала данных (data link layer) модели OSI, называемыми поставщиками услуг уровня канала данных и протоколами сетевого уровня, называемыми пользователями услуг уровня канала данных. В качестве примера пользователей


Примитивы DLPI

Из книги автора

Примитивы DLPI Как и в случае предоставления транспортных услуг, обмен данными между пользователем и поставщиком происходит в виде сообщений, несущих примитивы DLPI. Ниже рассмотрены некоторые из этих примитивов, относящиеся к режиму передачи без предварительного


18.2. Структура адреса сокета канального уровня

Из книги автора

18.2. Структура адреса сокета канального уровня Структуры адреса сокета канального уровня будут встречаться нам как значения, содержащиеся в некоторых сообщениях, возвращаемых на маршрутизирующем сокете. В листинге 18.1[1] показано определение структуры, задаваемой в


31.6. TPI: интерфейс поставщика транспортных служб

Из книги автора

31.6. TPI: интерфейс поставщика транспортных служб На рис. 31.3 мы показали, что TPI — это интерфейс, предоставляющий доступ к транспортному уровню для расположенных выше уровней. Этот интерфейс используется в потоковой среде как сокетами, так и XTI. Из рис. 31.3 видно, что