8.1 Сетевые устройства и сетевые интерфейсы.
Под термином «сетевое устройство» понимается аппаратный компонент, установленный в компьютер или подключенный к нему, выполняющий функции сопряжения с локальной сетью или каналом связи. В роли сетевого устройства обычно выступает сетевой адаптер, модем, последовательный или параллельный порт.
Взаимодействие между программным обеспечением и сетевыми устройствами обеспечивают компоненты операционной системы, называемые драйверами устройств. В UNIX-системах драйверы включаются в состав ядра системы – как компоненты программного кода ядра (монолитного) либо как загружаемые модули. Отсутствие единого стандарта для взаимодействия между оборудованием и программными средствами приводит к необходимости создания специализированных драйверов для каждого типа сетевых устройств. При этом сам драйвер реализует единый программный интерфейс к сетевым устройствам для остальных компонентов системы.
Установка драйвера для конкретного устройства либо класса устройств выполняется различным образом в различных реализациях UNIX. Так, в SCO Unix и SCO UnixWare драйверы поставляются в виде объектных модулей (двоичных файлов), включаемых в состав ядра путем его перекомпоновки (relink), которая производится автоматически после изменения конфигурации. Системы, ядро которых поставляется в виде открытого исходного кода на языке Си (Linux, FreeBSD и др.) обычно требуют перекомпиляции ядра с предварительным указанием о необходимости поддержки нужного драйвера.
При загрузке системы ядро автоматически распознает и производит инициализацию (установку начальных параметров) тех устройств, для которых в ядре имеется драйверная поддержка. При распознавании устройства ядро считывает характеристики устройства, такие, как, например, MAC-адрес, возможность работы в полнодуплексном режиме и т.д. В отдельных случаях требуется явное указание наличия того или иного устройства и его аппаратных параметров.
В РС-совместимых компьютерах обмен данными с аппаратными устройствами осуществляется через порты ввода-вывода (I/O), прерывания (IRQ), каналы прямого доступа в память (DMA) и области разделяемой памяти. Значения этих аппаратных параметров, иногда называемых аппаратными ресурсами (таблица 8.1), задаются для каждого устройства, причем у различных устройств они не должны совпадать. В случае совпадения (конфликта) аппаратных параметров распознание и корректная работа конфликтующих устройств невозможна. Ряд современных компонентов оборудования использует технологию автоматической настройки PnP (Plug-n-Play); операционная система может работать с такими устройствами только в том случае, если в составе ядра имеется поддержка PnP.
Таблица 8.1 – Аппаратные ресурсы PC-совместимых ЭВМ
Ресурс |
Обозначение |
Интервал значений |
Порты ввода-вывода |
I/O |
0000 – FFFF (шестнадцатеричное) |
Вектора прерываний |
IRQ |
0 – 15 (десятичное) |
Каналы прямого доступа в память |
DMA |
0 – 7 (десятичное) |
Разделяемая (общая) память |
Shared memory |
00000000 – FFFFFFFF (шестнадцатеричное) |
Опознанные системой сетевые устройства становятся доступными в виде сетевых интерфейсов. Интерфейс рассматривается как логическая точка подключения компьютера к сети. Каждый интерфейс получает уникальное имя, отражающее его тип (Ethernet, ATM, асинхронный порт и т.д.). Если в системе установлено несколько однотипных сетевых устройств, соответствующие интерфейсы нумеруются, начиная с нуля. Стандартные имена интерфейсов отличаются в различных реализациях UNIX. Так, Ethernet-интерфейсы в System V UNIX обозначаются как net0, net1 и т. д., в Linux – как eth0, eth1 и т.д., в BSD – как ep0, ep1 и т.д. Интерфейсы РРР, служащие для обмена данными через последовательные линии связи на основе протокола РРР (Point-to-Point Protocol, протокол «точка-точка»), в большинстве систем обозначаются как ppp0, ppp1 и т.д. В зависимости от реализации системы, интерфейс может быть представлен специальным файлом устройства в каталоге /dev (характерно для System V) или не иметь соответствующего специального файла устройства (как, например, в Linux). Существует также интерфейс особого типа – петлевой интерфейс (loopback), имеющий обозначение lo и IP-адрес 127.0.0.1. Петлевой интерфейс не связан с каким-либо физическим устройством; все пакеты, передаваемые на него, немедленно принимаются сетевым уровнем ядра операционной системы того же самого компьютера.
Перед началом работы интерфейс должен быть активизирован. В контексте сетей TCP/IP с активизацией связывается присвоение интерфейсу IP-адреса. Активизация интерфейса производится командой
ifconfig имя-интерфейса ip-адрес
Так, присвоение IP-адреса 192.168.50.201 единственному установленному в системе интерфейсу Ethernet может быть выполнено командой
ifconfig eth0 192.168.50.201
Команды активизации интерфейсов обычно выполняются в составе сценариев (скриптов) инициализации системы. Для задания параметров интерфейсов (IP-адреса, маски IP-сетей и т.д.) в большинстве реализаций UNIX имеются графические утилиты, позволяющие автоматически вносить изменения в сценарии инициализации или файлы конфигурации интерфейсов.
Присвоение IP-адресов интерфейсам может быть выполнено динамически при их активизации. В этом случае в пределах сети должен присутствовать сервер, способный динамически присваивать («выдавать») IP-адреса по протоколу DHCP или BOOTP. Такой режим работы, при котором компьютер не имеет постоянного (фиксированного) IP-адреса, характерен для клиентских рабочих станций; для серверов динамическое выделение адреса обычно не имеет смысла, т.к. усложняет обращение к ресурсам сервера, адрес которого в данном случае заранее неизвестен. Присвоение IP-адресов PPP-интерфейсам часто выполняется динамически при установлении связи по коммутируемой или выделенной линии.
Ряд систем (в частности, Linux) поддерживает возможность присвоения более чем одного IP-адреса физическому интерфейсу. Такой режим работы получил название IP aliasing. При этом для каждого дополнительного адреса создается некоторый фиктивный интерфейс (псевдоним, или alias). Так, в Linux в дополнение к интерфейсу eth0 могут быть созданы псевдонимы с именами eth0:0, eth0:1 и т.д., которые с точки зрения операционной системы рассматриваются как отдельные сетевые адаптеры. Создание псевдонимов выполняется также при помощи графических утилит настройки сети или непосредственно с помощью команды ifconfig:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.