Кратко

  • RFC 826 начинался после решения маршрутизации: ближайший протокольный адрес уже выбран, но для передачи по локальному Ethernet ещё требовался физический адрес.
  • Broadcast-запрос искал цель и одновременно раскрывал соответствие отправителя. Получатель учился до ответа, а локальный кэш превращал наблюдение в последующие кадры.
  • Старение кэша, Proxy ARP и обнаружение конфликтов показали предел полномочий ответа: он может быть обещанием пересылки, а не идентичностью, и даже DHCP-аренда может быть отвергнута состоянием локального канала.

Назначение, которого не дала маршрутизация

IP выбирает интерфейс и непосредственный адрес: сам узел в подключённой сети либо маршрутизатор. Контроллер Ethernet после этого требует 48-битное назначение. Между двумя именами нет обязательной вычислимой связи.

RFC 826, опубликованный Дэвидом Пламмером в ноябре 1982 года, поставил на эту границу модуль Address Resolution. Он ищет пару «тип протокола — адрес цели» в локальной таблице. При успехе драйвер получает hardware address; при промахе машина спрашивает в сегменте, который маршрут уже выбрал.

Формат сохраняет различие пространств: типы hardware и protocol, длины, opcode и адреса отправителя и цели обоих видов. IPv4 поверх Ethernet стал главным случаем, но схема была шире. Она не выводила один адрес из другого, а распространяла наблюдённое соответствие.

Для удалённого сервера IP-пакет называет сервер, а первый кадр — шлюз. ARP не строит глобальный путь и не подтверждает владельца. Он исполняет один локальный шаг.

Вопрос всему ближайшему сегменту

При отсутствии записи хост помещает в Request собственные адреса, искомый protocol address и делает broadcast. Все станции домена слышат вопрос; узел, узнавший себя целью, отвечает непосредственно отправителю.

Неизвестность требует публичного поиска, но Reply уже знает обратный hardware address. RFC 826 предпочёл это запросу по необходимости, а не периодическому объявлению всех таблиц. Полнота, которой почти никто не воспользуется, лишь загружает сеть и память.

Первоначальный алгоритм мог отбросить IP-пакет, вызвавший поиск. RFC 1122 в 1989 году рекомендовал сохранять хотя бы последний пакет для неразрешённой цели. Очередь улучшает начало обмена, но не доказывает правдивость будущего ответа.

RFC 1122 также потребовал защиту от частых повторов и рекомендовал не более одного Request в секунду на адрес. Молчание может означать отсутствие, потерю, сон или разрыв. Неограниченный broadcast не превращает его в доказательство.

Обучение до проверки opcode

Алгоритм RFC 826 сначала обрабатывает отправителя. Если его protocol address уже есть, новое hardware значение заменяет старое. Если принимающий узел является целью и записи нет, он добавляет её. Лишь затем смотрит, Request это или Reply.

Запрос потому является и утверждением: «кто принимает для цели?» и «вот как вернуться ко мне». Цель узнаёт обратный путь до ответа. Пассивный монитор тоже может собирать соответствия, не участвуя в верхнем протоколе.

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

RFC 826 обсуждал aging, не задавая способа. RFC 1122 сделал удаление устаревших записей обязательным и рекомендовал настраиваемый timeout. Возможны unicast-проверка, подсказки канального или верхнего уровня. Любой путь должен лишать старое наблюдение вечной силы.

Когда шлюз ответил за другого

RFC 1027 в 1987 году описал Proxy ARP. Университету Техаса требовались подсети, но множество ОС ещё их не понимало. Шлюзы скрыли границу без одновременного обновления всех хостов.

Когда A спрашивает о B в другой физической сети, gateway с маршрутом к B отвечает собственным hardware address. A посылает кадр шлюзу, хотя внутренний IP-пакет по-прежнему адресован B. На обратной стороне возможна симметричная схема.

Reply означает не «я B», а «я приму и перешлю B». Это делегированное операционное обещание. Оно зависит от таблицы маршрутов и настройки вне ARP. Если отвечают несколько gateway, первым может закрепиться любой; ошибочный proxy даёт успешное локальное разрешение и неуспешную доставку.

Аренда, которую мог отвергнуть провод

RFC 2131, DHCP 1997 года, сохранил финальную локальную проверку. Серверу следует тестировать повторно выдаваемый адрес, клиенту — проверять его после DHCPACK.

Клиент делает ARP Request со своим hardware, кандидатом как target IP и нулевым sender IP. Он спрашивает, ещё не заявляя использование и не загрязняя чужие кэши. При конфликте обязан отправить DHCPDECLINE и начать снова; после успеха объявляет соответствие, вытесняя старое.

DHCP координирует пул и срок. ARP наблюдает место исполнения. Правильная запись сервера может встретить статический дубль или ложного заявителя в LAN.

От одного поиска к постоянному обнаружению конфликтов

RFC 3927 в 2005 году определил ARP Probe и Announcement для IPv4 Link-Local. Хост случайно выжидает, посылает probes с нулевым sender IP и после успеха объявляет адрес. Счётчики и rate limit предотвращают синхронные притязания и шторм, если неисправный узел спорит со всеми кандидатами.

Наблюдение продолжается во время использования. Два раздельных сегмента могут иметь одинаковый адрес, а затем соединиться. Старый тест не управляет новой топологией.

RFC 5227 в 2008 году обобщил IPv4 Address Conflict Detection. Probe спрашивает «использует ли кто-нибудь?» и сообщает «я хочу использовать». Announcement объявляет текущее использование.

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

Механизм обнаруживает столкновения, но не удостоверяет права. Атакующий способен сфабриковать конфликт; отсутствие Reply не доказывает вечную свободу. Это ограниченное свидетельство для пересматриваемого решения.

Чего не решал реестр чисел ARP

RFC 5494 в 2009 году установил правила IANA для hardware types и opcodes, включая экспериментальные значения. Координация нужна, чтобы реализации одинаково читали биты.

Она не определяет, какая машина вправе использовать IP в конкретной LAN. Реестр словаря протокола обеспечивает совместимость, но не удостоверяет каждое высказанное этим словарём утверждение.

Локальная память, которая обязана забывать

ARP не строил мировую карту. Он спрашивал только там, где должен пройти следующий кадр, только при необходимости, и сохранял ответ у действующего хоста. Частичность дала эффективность.

Она безопасна лишь вместе с пересмотром. Proxy скрывает зависимость, ложь может оказаться новейшей, static entry переживает контекст. Провод — свидетель, не суверен. Хост решает принять, отправить, перепроверить, защищать или отступить.

Источники и пределы свидетельства

RFC 826 задаёт формат и порядок обучения; RFC 1027 — proxy-ответ; RFC 1122 — истечение и предел запросов. RFC 2131 разделяет lease и локальный тест. RFC 3927 и RFC 5227 определяют probes, announcements и конфликт; RFC 5494 координирует числа.

Документы подтверждают дизайн и требования, не всеобщую дату внедрения. ARP-capture доказывает сообщение на одном link в один момент, но не аутентифицированную идентичность, собственность, намерение или доставку за proxy.