Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
41
Добавлен:
30.04.2013
Размер:
16.33 Mб
Скачать

Состав сетевой подсистемы

В состав сетевой подсистемы входят модули, показанные на рис. 3.15. Сетевые драйверы (Network device drivers) обеспечивают установление связи при помощи аппаратных средств. Для каждого сетевого устройства существует свой драйвер.

Модуль аппаратно-независимого интерфейса (device independent inter face) обеспечивает пользовательскому процессу единый интерфейс ко всег физическим сетевым устройствам.

Модуль сетевых протоколов (network protocol) предназначен для реализации всех возможных транспортных протоколов в сети.

Модуль протокол независимых интерфейсов (protocol independent inter face) обеспечивает интерфейсы, которые не зависят от протоколов и физи ческих устройств. Этот интерфейсный модуль использует ядро для доступ к сети без привязки к протоколами физическим устройствам.

Системный интерфейс (System Саll Interface) для взаимодействия ядр или пользователя с сетевой подсистемой.

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

Представление и структуры данных

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

Реализация сетевой поддержки ВSП основана на структуре сокетов (struct socket). Эта структура содержит: поле идентификатора типа сокета (потоковый или дейтаграммный); состояние сокета (в состоянии соедине­ния или нет); поле с флагами, которые модифицируют работу сокета; указатель на структуру, содержащую список операций, которые могут быть выполнены сокетом, а также другие данные. Указатель связывает INET с реализацией сокета через ссылку на i-узел. Каждый создаваемый сокет обязательно связан с i-узлом.

Структура типа sk_buff используется для управления индивидуальной передачей пакетов. Структура содержит: указатель на буфер, в котором

находится время, затраченное на передачу; поле указателей на пакеты, передаваемые/принимаемые сокетом; адреса приемника и передатчика;

управляющую информацию; указатели на пакеты данных, которые находятся в буфере. В этой структуре объединены все пакеты, используемые сетевой подсистемой (то есть пакеты типа tcp, udp, ip, и т.п.). Эта структу­ра имеет ссылки на специфическую информацию INET. Члены Этой струк­туры включают: счетчики запросов сокета на чтение и запись в памяти; последовательности, требуемые протоколом ТСР; флаги, которые могут определять поведение сокета, поля управления в буфере (например для со­хранения списка всех принятых пакетов для данного сокета); очередь ожи­дания для блокирования операций чтения и записи.

Внутренняя структура подсистемы

На общесетевом уровне (General Network) сетевая подсистема предос тавляет интерфейс пользовательским процессам. Этот уровень по существу обеспечивает интерфейс BSD сокетов. В этот уровень входят поддержка различных семейств МАС протоколов, таких как 802.х, ip, ipx, and AppleTalk (смотри рис. 3.16).

Сетевые службы (Соме network services) ядра образованы различны мi модулями. Здесь находятся INET сокеты, сетевые драйверы, брандмауэры и модули поддержки протоколов типа UDP и ТСР. Сетевой интерфейс (system саll interface) обеспечивает пользовательским процессам доступ к сети через интерфейсы BSD сокетов. интерфейс BSD сокетов обеспечивает общую абстракцию связи через сокеты (аппаратно‑ и протокол-независимую реализацию). Эта абстракция реализуется через INET сокеты. Реализация INET сокетов образует зависимость между моду­лями Общесетевого уровня (General Network) и модулем Сетевых служб ядра (Core Net services).

Модуль протоколов (Protocol module) содержит коды, которые формати­руют данные пользователя в соответствии с используемыми протоколами. Уровень протоколов пересылает сформатированные данные ниже к Соот­ветствующему физическому устройству для передачи их в сеть. Следова­тельно, образуется зависимость между модулем протоколов и модулем се­тевых устройств (Network Devices).

Модуль сетевых устройств (Network devices) содержит набор высокоуровневых функций, которые преобразуют высокоуровневый интерфейс пользователя в низкоуровневые команды, адресуемые к реальным устройствам. драйверы устройств и сетевые настройки находятся в каталоге по

адресу drivers/net.