
- •Данные
- •Заголовок
- •Концевик
- •Как показано на рисунке 1 кадр состоит из следующих полей:
- •Поле данных кадра Ethernet (ARP-пакет)
- •ARP-пакет содержит следующие поля:
- •Заголовок кадра Ethernet
- •Поле данных кадра Ethernet (ARP-запрос)
- •Заголовок кадра Ethernet
- •Поле данных кадра Ethernet (ARP-ответ)
- •2.3 Протокол ICMP
- •2.4 Протокол DHCP
- •2.5 Протокол FTP
- •Рисунок 13 - Внешний вид окна настроек процесса захвата
ARP-пакет содержит следующие поля:
Адрес назначения и адрес источника – это MAC-адреса получателя и отправителя кадра. В ARP-сообщении значение поля тип протокола в шестнадцатеричной форме – 0806. Это значение идентифицирует протокол ARP, который вкладывает свой пакет в поле данных кадра Ethernet.
Первые четыре поля ARP-пакета служат для определения двух адресных структур, между которыми устанавливается соответствие, и длин используемых в них адресов. Протокол ARP может применяться для разных пар соотносимых им адресов сетевого и канального уровней.
Для Ethernet в поле тип аппаратного адреса указывается 1, что означает использование адресов Ethernet, т.е. MAC-адресов, а поле длина аппаратного адреса содержит значение 6, т.к. длина MAC-адреса – 6 байт. При использовании IP-адресов в поле тип протокольного адреса указывается шестнадцатеричное значение 0800, т.е. то же значение, что и в поле тип протокола заголовка кадра Ethernet, когда в поле данных кадра Ethernet вложен пакет IP. При этом поле длина протокольного адреса содержит значение 4, т.к. длина IP-адреса – 4 байта.
Поле код операции определяет тип ARP-пакета – запрос на определение MACадреса по известному IP-адресу или ответ с результатом запроса. Для ARP-запроса в поле код операции указывается 1, а для ARP-ответа – 2.
Вполе аппаратный адрес отправителя указывается MAC-адрес отправителя данного запроса или ответа, причем в ARP-ответе это поле содержит затребованный в ARP-запросе MAC-адрес компьютера назначения, если он находится в локальной сети, либо MAC-адрес шлюза (маршрутизатора), через который нужно передать данные, если компьютер назначения расположен в другой сети.
Вполе сетевой адрес отправителя указывается IP-адрес отправителя данного запроса или ответа.
Поле аппаратный адрес получателя в ARP-запросах содержит одни нули, что означает, что эта информация неизвестна, а в ARP-ответах – MAC-адрес компьютера, пославшего ARP-запрос.
Вполе сетевой адрес получателя указывается IP-адрес получателя данного запроса или ответа.
При использовании протокола ARP возможны две ситуации: а) получатель находится в той же сети, что и отправитель;
б) получатель находится в другой по отношению к отправителю сети.
Однако в любом случае протокол ARP служит для выяснения MAC-адреса только локального узла - локального получателя (компьютера) или локального маршрутизатора.
2.2.1Работа ARP протокола, когда отправитель и получатель расположены в одной сети
Компьютер A с именем Vito и компьютер B с именем Maxx находятся в одной сети класса C 192.168.0.0, не разделенной на подсети, и компьютер A хочет передать
5

некоторые данные компьютеру B. На рисунке 4 показано расположение компьютеров А и В с указанием MAC-адресов и IP-адресов.
Компьютер A |
Компьютер B |
Vito |
Maxx |
(отправитель) |
(получатель) |
MAC-адрес: 00-02-44-63-D3-87 |
MAC-адрес: 00-80-48-B7-BD-73 |
IP-адрес: 192.168.0.147 |
IP-адрес: 192.168.0.145 |
ARP-запрос |
ARP-ответ |
Рисунок 4 - Расположение отправителя и получателя в одной сети
Чтобы передать какие-либо данные, компьютер A должен обратиться к компьютеру B по его IP-адресу 192.168.0.145 (на компьютере A вводится команда ping 192.168.0.145, в результате чего на компьютер B будет послан эхо-запрос). Однако по физическому каналу данные передаются в кадре Ethernet, в заголовке которого должен быть указан MAC-адрес компьютера, а не IP-адрес. Соответствия между IP-адресами и MAC-адресами компьютеров одной сети хранятся в таблице протокола ARP, расположенной в специальной области памяти каждого компьютера, причем эти соответствия (записи) могут быть статическими и динамическими. Статические записи вводятся администратором и хранятся до перезагрузки компьютера, а динамические определяются с помощью протокола ARP и хранятся в течение некоторого времени. В операционных системах Windows по умолчанию это время равно двум минутам для невостребованных записей и десяти минутам для записей, к которым было обращение. Для просмотра таблицы ARP компьютера служит команда arp –a, а для удаления всех записей из таблицы ARP (очистки таблицы) используется команда arp –d.
На рисунке 5 приведен пример работы команды arp –a, введенной в командной строке компьютера A. Таблица ARP компьютера A в данном случае содержит одну динамическую запись, отражающую соответствие между IP-адресом и MAC-адресом компьютера B.
Рисунок 5 - Таблица ARP компьютера A для сети, представленной на рис. 4
При обращении к компьютеру B компьютер A действует следующим образом. Сначала компьютер A определяет, в какой сети – локальной или удаленной – находится компьютер B. Для этого он выполняет операцию логического «И» для
6
своего IP-адреса 192.168.0.147 и стандартной маски подсети класса C 255.255.255.0. Затем он выполняет операцию логического «И» для IP-адреса компьютера B 192.168.0.145 и той же маски 255.255.255.0. Если результаты выполнения этих операций совпадают (в данном случае результаты обеих операций «И» – 192.168.0.0), то компьютер B находится в той же сети, что и компьютер A (т.е. в локальной сети), а если нет, то компьютер B расположен в другой (удаленной) сети.
Затем компьютер A просматривает собственную таблицу ARP на предмет наличия в ней записи, устанавливающей соответствие между IP-адресом и MACадресом компьютера B. Если такая запись имеется, компьютер A вводит MAC-адрес компьютера B в поле адрес назначения заголовка кадра Ethernet (см. рис. 1) и передает кадр компьютеру B. Если нужной записи нет, то для выяснения MAC-адреса компьютера B компьютер A использует протокол ARP. Для этого компьютер A посылает в локальную сеть широковещательный кадр Ethernet (кадр без MAC-адреса назначения) – рисунок 6. Первые четыре поля ARP-пакета для простоты опущены, (при определении в сети Ethernet MAC-адресов по IP-адресам содержимое этих полей всегда одно и то же). В поле адрес назначения стоят все единицы, а в поле тип протокола установлен идентификатор протокола равный 0806 (протокол ARP), в поле код операции определяется тип ARP-пакета (в данном случае это ARP-запрос следовательно, значение - 1), в поле сетевой адрес получателя – указывается IP-адрес компьютера B. При этом поле аппаратный адрес получателя содержит одни нули, что означает, что MAC-адрес компьютера B неизвестен, и компьютер A хочет этот адрес выяснить. Широковещательный кадр с ARP-запросом принимается всеми компьютерами сети (на рис. 4 показаны только два компьютера), но ответ на него должен дать только компьютер, IP-адрес которого совпадает с IP-адресом, указанным в поле сетевой адрес получателя, т.е. только компьютер B.
Компьютер B, обработав принятый кадр, понимает, что некоторый компьютер с
MAC-адресом 00-02-44-63-D3-87 и IP-адресом 192.168.0.147 запрашивает у него MAC-
адрес. Компьютер B записывает в свою таблицу ARP соответствие между IP-адресом и MAC-адресом компьютера A и посылает в локальную сеть кадр Ethernet с ARPответом (см. рис. 7), указывая в поле адрес назначения заголовка кадра MAC-адрес компьютера A. Таким образом, кадр с ARP-ответом посылается не широковещательно, а направленно – компьютеру, пославшему ARP-запрос. Как видно на рисунке 7, поле код операции ARP-пакета содержит значение 2, идентифицирующее ARP-ответ, а в поле аппаратный адрес отправителя компьютер B указывает свой MAC-адрес, который запросил компьютер A.
Получив ARP-ответ, компьютер A записывает в свою таблицу ARP соответствие между IP-адресом и MAC-адресом компьютера B и направляет компьютеру B кадр с данными.
7