Всем привет!
Сегодня мы поговорим о трех основных протоколах сетевого уровня IP, ICMP и ARP.
IP (Internet Protocol)
IP протокол получает пакеты из транспортного уровня и добавляет к ним виртуальные адреса, например, адрес компьютера, посылающего пакет, и адрес компьютера, принимающего пакет. Эти виртуальные адреса называются IP адресами.
ICMP (Internet Control Message Protocol)
ICMP — это контрольный протокол. Это означает, что он не несет данные приложения, но передает информацию о состоянии самой сети. В основном ICMP используется для передачи сообщений об ошибках и других исключительных ситуациях, возникших при передаче данных, например, запрашиваемая услуга недоступна, или хост, или маршрутизатор не отвечают.
Этот протокол используется, например, популярной утилитой ping, служащей для проверки возможности доставки IP-пакетов.
ICMP может быть использован, чтобы сообщить:
- об ошибках в сетевых коммуникациях
- о доступности удаленного хоста
- о перегрузке сети
ICMP также используется утилитой traceroute, отображающей путь следования IP-пакетов.
ARP (Address Resolution Protocol)
Основной задачей ARP является преобразование IPv4 адреса (32-битный логический адрес) в физический адрес (48-битный MAC адрес).
Сетевые приложения на прикладном уровне OSI используют IPv4 адреса для взаимодействия с другими устройствами. Но на канальный уровне OSI для адресации используется MAC адрес, и этот адрес вшит в вашу сетевую карту.
Цель ARP — найти MAC адрес устройства в вашей локальной сети LAN (Local Access Network), соответствующий определенному IPv4 адресу, с которым сетевое приложение хочет взаимодействовать.
Алгоритм работы Address Resolution Protocol (ARP)
Шаг 1. Когда устройство-источник хочет взаимодействовать с другим устройством, устройство-источник проверяет свой Address Resolution Protocol (ARP) cache, чтобы попытаться найти уже возможно определенный MAC адрес устройства-получателя. Если он там, устройство-источник будет использовать этот MAC адрес для связи. Чтобы посмотреть ваш локальный ARP cache, выполните команду
arp -a
Шаг 2. Если ARP resolution не находится в локальном кэше, устройство-источник сгенерирует ARP request message, оно включает MAC адрес как Sender Hardware Address и IPv4 адрес как Sender Protocol Address. Также оно включает IPv4 адрес устройства-получателя как Target Protocol Address. Поле Target Hardware Address будет пустым, так как машина пытается найти его.
Шаг 3. Устройство-источник бродкастит (broadcast) ARP request message в локальную сеть.
Шаг 4. Письмо получает каждое устройство в LAN, так как это broadcast. Каждое устройство сравнивает Target Protocol Address (IPv4 адрес машины, с которой устройство-источник хочет взаимодействовать) с его собственным IPv4 адресом. Устройства с несовпадающими адресами проигнорируют пакет без каких-либо дальнейших действий.
Шаг 5. Когда устройство-получатель сравнит Target Protocol Address со своим IPv4 адресом, оно найдет совпадение и сгенерирует ARP reply message. Оно включает Sender Hardware Address и Sender Protocol Address поля из полученного Address Resolution Protocol (ARP) request message и использует эти значения в качестве Targeted Hardware Address и Targeted Protocol Address в ответном письме.
Шаг 6. Устройство-получатель обновляет свой Address Resolution Protocol (ARP) cache, так как скоро ему нужно будет связаться с устройством-источником.
Шаг 7. Устройство-получатель отправляет Address Resolution Protocol (ARP) reply message. И оно будет НЕ broadcast, а unicast.
Шаг 8. Устройство-источник обрабатывает Address Resolution Protocol (ARP) reply message. Оно хранит Sender Hardware Address как MAC адрес устройства-получателя.
Шаг 9. Устройство-источник обновляет свой Address Resolution Protocol (ARP) cache, добавляя в него значения Sender Hardware Address и Sender Protocol Address , полученные из ARP reply message.
На этом пока все. Всем удачи и полного понимания!
OSI модель. Сетевой уровень.: Один комментарий