Рассмотрим две машины А и В, которые присоединены к одной физической сети. Каждая из них имеет назначенный IP-адрес Ia и Ib, а также физический адрес Pa и Pb. Нашей целью является построение низкоуровневого программного обеспечения, которое скрывало бы физические адреса и позволяло бы программам более высокого уровня работать только с межсетевыми адресами. Тем не менее, в конечном счете взаимодействие реализуется физическими сетями, использующими какую-либо схему физических адресов. Предположим, что машина А хочет послать пакет машине В по физической сети, к которой они обе присоединены, но А знает только межсетевой адрес Ib. Возникает вопрос: как может А отобразить этот адрес в физический адрес Pb ?
Проблема отображения высокоуровневых адресов в физические адреса известна как проблема разрешения адресов и решается несколькими способами. Некоторые связки протоколов хранят на каждой машине таблицы, содержащие пары высокоуровневых и физических адресов. Другие решают проблему, кодируя аппаратные адреса в высокоуровневых адресах. Использование только одного из этих подходов в лучшем случае делает проблему высокоуровневой адресации неудобной. Эта глава рассматривает две технологии для разрешения адресов, используемые протоколами TCP/IP.
Существуют два основных типа физических адресов: характерным представителем первого типа является Ethernet, использующий большие, фиксированные физические адреса, а второго - proNET-10, использующий маленькие легко изменяемые физические адреса.
Для отображения IP-адресов в Ethernet-адреса используется протокол ARP (Address Resolution Protocol, Протокол разрешения адресов) Это отображение выполняется только для отправляемых IP-пакетов, так как только в момент отправки создаются заголовки IP и Etheinet Для отображения Ethernet-адресов в IP-адреса используется протокол RARP (Reverse Addiess Resolution Piotocol, Протокол обратного разрешения адресов)
Основным инструментом работы протокола ARP является таблица разрешения
адресов. Прямое преобразование адресов выполняется путем поиска
подходящей записи в этой таблице. Эта таблица, называемая ARP-таблицей,
хранится в памяти хоста и содержит строки соответствия для каждого узла
сети. В двух столбцах таблицы содержатся IP и Etheret-адреса хостов.
Если требуется по IP-адресу хоста определить его Ethernet-адрес, ищется
запись с соответствующим IP-адресом, по которой и определяется требуемый
Ethernet-адрес хоста. Ниже приведен пример такой ARP-таблицы.
220.20 2.1 08:00:39:00:2F:C3
220.20 2 3 08:00:5А:21:АВ:22
ARP-таблица необходима потому, что IP-адреса и Ethernet-адреса выбираются независимо, и нет какого-либо алгоритма для преобразования одного в другой. IP-адрес выбирает менеджер сети с учетом положения машины в сети Intemet. Если машину перемещают в другую часть сети Internet, то ее IP-адрес должен быть изменен.
Ethernet-адрес выбирает производитель сетевого интерфейсного оборудования из выделенного для него по лицензии адресного пространства. Когда у машины заменяется плата сетевого адаптера, то меняется и ее Ethernet-адрес.