Сети персональных компьютеров. Технология «общая шина». Топология «кольцо». Локальные сети, страница 4

Уровень управления линией связи отличается от предыдущего наличием адреса в пакете, называемом по другому фреймом или кадром. Сам пакет состоит из двух секций: данных и заголовка, вот в нем-то и отражается адрес-специфичная информация. Перед отправкой, передающая сторона вкладывает в него два адреса – получателя и свой, последний нужен, чтобы устройство на приемной стороне могло ответить. После получения пакета, приемная сторона, сравнив адрес назначения пакета со своим, принимает решение – проигнорировать пакет (адреса различны) или принять его (совпадение адресов). Отвергнутый пакет уничтожается, чтобы не занимать память, которой и так немного. Пакет, который принят, заставляет сетевое устройство генерировать прерывание IRQ, что заставит программное обеспечение «вырвать» из кадра протоколы более высоких уровней.

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

А вот несколько примеров протоколов уровня Data Link. Для сетей с топологией «общая шина» стандарт де-факто – протокол Ethernet (буквально – «эфир-сеть» разновидности IEEE802.2 и IEEE802.3), «звезда» предпочитает протокол arc-net, «кольцо» - Token Ring (буквально – «жетон в кольце»). Это технологии сетевых протоколов, разработанные различными фирмами в различное время. Ну, например, Ethernet был разработан фирмой Xerox (в аж 1975), arc-net выпустила фирма Datapoint Corp., Token Ring – IBM.

Сетевой уровень характеризуется наличием логических адресов, это все равно, что сегментация памяти и физические адреса памяти. Логические адреса транслируются в физические по специальным таблицам, хранимым в памяти рабочей станции. Таблицы соответствия логических адресов физическим формируются, в основном, динамически, то есть во время работы. Делается это, например, так: программное обеспечение, давайте будем называть его драйвер (программа обслуживания) сетевого уровня, анализирует получаемые пакеты на предмет адресов двух уровней – уровня управления линией связи и сетевого уровня, и сопоставляет их друг  другу. В одном пакете содержит другой пакет – это результат инкапсуляции сетевого уровня в уровень управления линией, в обоих пакетах – адреса отправителя и получателя, вот их-то мы и сравниваем. Кстати, замечу, драйвер более низкого уровня даже и не подозревает, что в него что-то вложили – для него пакет высокого уровня – всего лишь данные, а что в этих данных – ему все равно, как все равно посыльному, переносящему корреспонденцию. На конверте мы пишем адрес для него, а внутри конверта можем указать номер отдела внутри фирмы-получателя, как например. Итак, сопоставив адреса, драйвер сетевого уровня ищет в таблице аналогичное соответствие, и, если не находит, то создает новую запись. По мере устаревания записи в таблице, она удаляется. Что значит устаревание? Не получаем долго пакетов с таким адресом – вот и устарел адресок, может выключили тот компьютер, а может кабель в ту сторону порвался. Иногда эту таблицу хранят в одном месте – на выделенном сервере, он занимается сортировкой и анализом пакетов и их адресов, а рабочие станции зная лишь только его адрес, запрашивают у него на уровне управления линией соответствие для заданного логического адреса физическому. Это важный момент! Запомним это и оговорим статическую таблицу трансляции адресов. Само слово статический уже подразумевает что-то раз и навсегда заданное – соответствия задаются перед началом работы и потом только используются. Понятно, такая таблица очень и очень не гибкая – архитектуру сети уже нельзя менять во время работы. Вообще говоря, статическое – всегда хуже, чем динамическое, и это понятно – ведь жизнь не стоит на месте, недаром американцы так и не смогли отрезать Ирак от внешнего мира.