Address Resolution(поиск по адресу).

Теперь, когда вы видели как создаются IP адреса, Вы можете спросить как же они используются в Ethernet при адресации различных хостов? В конце концов Ethernet протокол опознает хосты по шести байтовому адресу, который не имеет абсолютно ничто общего с IP адресом.

Именно поэтому необходим механизм, переводящий IP адреса в адреса Ethernet. Это так называемый Address Resolution Protocol (Протокол Решения Адреса), или ARP. Фактически, ARP не ограничен Ethernet, он используется и на сетях других типов. Идея, лежащая в основе ARP аналогична способу применяемому большинством людей, когда они хотят найти господина X. Они ходят по толпе и выкрикивают его имя. И если он там, он откликнется.

Когда ARP хочет выяснять Ethernet адрес соответствующий данному IP адрес, он использует особенность Ethernet известную как "broadcast"(широковещательное), когда дэйтаграмы адресовываются одновременно всем станциям в сети. Широковещательная дэйтаграма посланная ARP содержит запрос с IP адресом. Каждый хост сравнивает его с собственным адресом, и если они совпадают, возвращает ARP-ответ на спрашивающий хост. Спрашивающий хост может теперь извлечь Ethernet адрес отправителя из этого ответа.

Конечно Вы могли бы удивиться как хост может знать на котором из миллионов Ethernet во всем мире должен находить желаемый хост, и почему это вообще должен быть Ethernet. Все это называется Routing(маршрутизация), а именно выяснение физического местоположения хоста в сети. Это и будет темой следующей секции.

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

Иногда, также необходимо выяснять IP адрес связанный с данным Ethernet адресом. Это случается, когда бездисковая машина хочет загрузится с сервера по сети, что является весьма общей ситуацией для локальных сетей. Бездисковый клиент, однако, не имеет никакой информацию относительно себя кроме Ethernet адреса! Он посылает широковещательное сообщение содержащее просьбу к серверу сообщить ему его IP адрес. Для этого существует другой протокол, называемый Reverse Address Resolution Protocol (Реверсивный ARP), или RARP. А также BOOTP протокол, который служит для определения процедуры загрузки бездисковых клиентов по сети.