ARP
ARP (англ. Address Resolution Protocol — протокол визначення адрес) — комунікаційний протокол, призначений для перетворення IP-адрес (адрес мережевого рівня) в MAC-адреси (адреси канального рівня) в мережах TCP/IP. Він визначений в RFC 826. Опис протоколуПеретворення виконується лише для тих IP-пакетів, які відправляються, оскільки лише в момент відправлення створюються заголовки IP та Ethernet. ARP-таблиця для перетворення адресПеретворення адрес виконується шляхом пошуку за таблицею. Ця таблиця називається ARP-таблицею, зберігається у пам'яті й містить рядки для кожного вузла мережі. В двох стовпчиках містяться IP- та Ethernet-адреси. Якщо потрібно перетворити IP-адресу в Ethernet-адресу, то відбувається пошук запису з відповідною IP-адресою. Нижче наведено приклад спрощеної ARP-таблиці.
ARP-таблиця необхідна через те, що IP-адреси та Ethernet-адреси вибираються незалежно, і немає жодного алгоритму для перетворення однієї в іншу. IP-адресу вибирає менеджер мережі з урахуванням розташування машини у мережі Інтернет. Якщо машину переміщують до іншої частини мережі Інтернет, то її IP-адреса повинна бути змінена. Ethernet-адресу вибирає виробник мережного інтерфейсного обладнання з виділеного для нього згідно з ліцензією адресного простору. Якщо в машини змінюється мережний адаптер, то змінюється й Ethernet-адреса. Порядок перетворення адресУ ході звичайної роботи мережева програма відправляє прикладне повідомлення, користуючись транспортними послугами TCP. Модуль TCP надсилає відповідне транспортне повідомлення через модуль IP. У результаті складається IP-пакет, який має передаватись драйверові Ethernet. IP-адреса місця призначення відома прикладній програмі, модулеві TCP та модулеві IP. Необхідно на її основі знайти Ethernet-адресу місця призначення. Для пошуку відповідної Ethernet-адреси використовується ARP-таблиця. Запити та відповіді протоколу ARPARP-таблиця заповнюється автоматично модулем ARP по мірі необхідності. Коли за допомогою існуючої ARP-таблиці не вдається перетворити IP-адресу, то відбувається таке:
Кожний мережний адаптер приймає широкомовні передачі. Усі драйвери Ethernet перевіряють поле типу в прийнятому Ethernet-кадрі й передають ARP-пакети модулю ARP. ARP-запит можна інтерпретувати так: «Якщо ваша IP-адреса збігається із зазначеною, то повідомте мені вашу Ethernet-адресу». Пакет ARP-запиту виглядає приблизно так:
Кожний модуль ARP перевіряє поле шуканої IP-адреси в отриманому ARP-пакеті і, якщо адреса збігається з його власною IP-адресою, то посилає відповідь прямо за Ethernet-адресою відправника запиту. Пакет з ARP-відповіддю виглядає приблизно так:
Цю відповідь одержує машина, що зробила ARP-запит. Драйвер цієї машини перевіряє поле типу в Ethernet-кадрі й передає ARP-пакет модулю ARP. Модуль ARP аналізує ARP-пакет і додає запис у свою ARP-таблицю. Якщо в мережі немає машини із шуканою IP-адресою, то ARP-відповіді не буде й не буде запису в ARP-таблиці. Протокол IP буде знищувати IP-пакети, що направляються по цій адресі. Протоколи верхнього рівня не можуть відрізнити випадок пошкодження мережі Ethernet від випадку відсутності машини із шуканою IP-адресою. Див. такожПосилання
|