Продолжение преобразования адресов
Новая запись в ARP-таблице появляется автоматически, спустя несколько миллисекунд после того, как она потребовалась. Как вы помните, ранее на шаге 2 исходящий IP-пакет был поставлен в очередь. Теперь с использованием обновленной ARP-таблицы выполняется преобразование IPадреса в Ethernet-адрес, после чего Ethernet-кадр передается по сети. Полностью порядок преобразования адресов выглядит так:
- По сети передается широковещательный ARP-запрос.
- Исходящий IP-пакет ставится в очередь.
- Возвращается ARP-ответ, содержащий информацию о соответствии IP- и Ethernet-адресов. Эта информация заносится в ARP-таблицу.
- Для преобразования IP-адреса в Ethernet-адрес у IP-пакета, постав ленного в очередь, используется ARP-таблица.
- Ethernet-кадр передается по сети Ethernet.
Короче говоря, если с помощью ARP-таблицы не удается сразу осуществить преобразование адресов, то IP-пакет ставится в очередь, а необходимая для преобразования информация получается с помощью запросов и ответов протокола ARP, после чего IP-пакет передается по назначению.
Если в сети нет машины с искомым IP-адресом, то ARP-ответа не будет и не будет записи в ARP-таблице. Протокол IP будет уничтожать IP-пакеты, направляемые по этому адресу. Протоколы верхнего уровня не могут отличить случай повреждения сети Ethernet от случая отсутствия машины с искомым IP-адресом.
Некоторые реализации IP и ARP не ставят в очередь IP-пакеты на то время, пока они ждут ARP-ответов. Вместо этого IP-пакет просто уничтожается, а его восстановление возлагается на модуль TCP или прикладной процесс, работающий через UDP. Такое восстановление выполняется с помощью таймаутов и повторных передач. Повторная передача сообщения проходит успешно, так как первая попытка уже вызвала заполнение ARP-таблицы.
Следует отметить, что каждая машина имеет отдельную ARP-таблицу для каждого своего сетевого интерфейса.
Ядро операционной системы UNIX
Основным признаком этих систем является использование понятия уровня выполнения (run level) — одного из возможных режимов работы системы. Каждый уровень выполнения обозначается номером (от 0 до 6), часть номеров зарезервирована за стандартными уровнями выполнения. В любой момент времени система может находиться на одном из уровней выполнения — изменение режима работы производится с помощью вызова init с параметром, указывающим номер уровня выполнения, на который следует перейти.
Уровень 0
останов системы (halt) — работа системы должна быть прекращена;
Уровень 1
однопользовательский режим работы — система инициализирует минимум служб и даёт единственному пользователю (как правило, суперпользователю) без проведения аутентификации командную строку. Как правило, этот режим используется для восстановления системы;
Уровень 2
многопользовательский режим — пользователи могут работать на разных терминалах, вход в систему с процессом аутентификации;
Уровень 3
многопользовательский сетевой режим — в многопользовательский режим, в котором осуществляется настройка сети и запускаются различные сетевые службы;
Уровень 4
не имеет стандартного толкования и практически не используется;
Уровень 5
запуск графической подсистемы — в дополнение к уровню 3 производится также старт графической подсистемы X11, регистрация в системе осуществляется также в графическом режиме;
Уровень 6
перезагрузка системы — при включении этого режима останавливаются все запущенные программы и производится перезагрузка.
Таким образом, каждый переход на каждый уровень выполнения подразумевает выполнение определённого набора процедур инициализации и и определённый набор системных служб, которые должны выполняться на данном уровне. Конкретный список таких процедур и служб может быть задан администратором системы. Стартовые скрипты для каждого из уровней выполнения располагаются в каталоге /etc/rc.d.
На практике, в серверных системах обычно при старте системы используется 3-й уровень выполнения, в домашних — 5-й.