4. ARP
Как при передаче пакета IP определить Ethernet-адрес получателя?
Протокол преобразования адресов ARP (Address Resolution Protocol) позволяет определить адрес Ethernet на основе IP-адреса. Преобразование осуществляется только для исходящих пакетов при создании полей заголовков IP и Ethernet.
4.1. Таблица ARP для преобразования адресов
Преобразование адресов выполняется путем просмотра таблицы ARP, хранящейся в памяти компьютера и содержащей строку с парой адресов (IP и Ethernet) для каждого компьютера. При трансляции IP -> Ethernet в таблице находится строка, содержащая нужный IP-адрес и из второго поля найденной строки берется искомый адрес Ethernet. Ниже показан пример небольшой таблицы ARP:
IP address | Ethernet address |
223.1.2.1 | 08-00-39-00-2F-C3 |
223.1.2.3 | 08-00-5A-21-A7-22 |
223.1.2.4 | 08-00-10-99-AC-54 |
Для записи адресов IP используют 4 десятичных поля (по одному для каждого байта), разделенных точками. Адреса Ethernet записываются в шестнадцатеричном формате с разделением байтов пробелом или знаком -.
Таблица ARP необходима для работы, поскольку адреса IP и Ethernet никак не связаны между собой (возможны произвольные комбинации этих адресов). Адреса IP задаются администраторами сетей из выделенного для сети пространства, а адреса Ethernet задаются производителями оборудования при его производстве. В случае перемещения компьютера в другую подсеть IP-адрес этого компьютера изменяется, а для смены адреса Ethernet в компьютере нужно заменить сетевой адаптер.
4.2. Типичный вариант преобразования адресов
При нормальной работе сетевых приложений (таких, как TELNET) программа передает сообщение модулю TCP, этот модуль шлет соответствующий TCP-сегмент IP-модулю. IP-адрес получателя известен прикладной программе, модулю TCP и модулю IP. Модуль IP завершает подготовку пакета и может передать его драйверу Ethernet, но сначала он должен определить Ethernet-адрес получателя этого пакета.
Для поиска адресов Ethernet используются таблицы ARP.