ARP
| TCP/IP модель (RFC 1122) |
|---|
| Прикладний рівень |
| BGP · DHCP · DNS · FTP · Gopher · GTP · HTTP · IMAP · IRC · NNTP · NTP · POP3 · RIP · RPC · RTCP · RTP · RTSP · SDP · SIP · SMTP · SNMP · SOAP · SSH · STUN · Telnet · TLS/SSL · XMPP · |
| Сеансовий рівень |
| ADSP • H.245 • iSNS • NetBIOS • PAP • L2TP • PPTP • RTCP • SMPP • SSH • ZIP • SDP • RPC • SCP • (more) |
| Транспортний рівень |
| TCP · UDP · DCCP · SCTP · RSVP · ECN · (more) |
| Мережевий рівень |
| IP (IPv4, IPv6) · ICMP · ICMPv6 · IGMP · IPsec · (more) |
| Рівень мережевих інтерфейсів |
| ARP · RARP · NDP · OSPF · Tunnels (L2TP) · MAC-адреса (Ethernet, DSL, ISDN, FDDI) · Device Drivers · (more) |
ARP (англ. Address Resolution Protocol — протокол визначення адрес) — мережевий протокол, призначений для перетворення IP-адрес (адрес мережевого рівня) в MAC-адреси (адреси канального рівня) в мережах TCP/IP. Він визначений в RFC 826.
Зміст |
Опис протоколу [ред.]
Відображення виконується лише для тих IP-пакетів, які відправляються, оскільки лише в момент відправлення створюються заголовки IP та Ethernet.
ARP-таблиця для перетворення адрес [ред.]
Перетворення адрес виконується шляхом пошуку по таблиці. Ця таблиця називається ARP-таблицею, зберігається у пам'яті і містить рядки для кожного вузла мережі. В двох стовпчиках містятться IP- та Ethernet-адреси. Якщо потрібно перетворити IP-адресу в Ethernet-адресу, то відбувається пошук запису з відповідною IP-адресою. Нижче наведений приклад спрощеної ARP-таблиці.
| IP-адреса | Ethernet-адреса |
|---|---|
| 223.1.2.1 | 08:00:39:00:2F:C3 |
| 223.1.2.2 | 08:00:5A:21:A7:22 |
| 223.1.2.3↑ | 08:00:10:99:AC:54 |
ARP-таблиця необхідна тому, що IP-адреси та Ethernet-адреси вибираються незалежно, і немає жодного алгоритму для перетворення однієї в іншу. IP-адресу вибирає менеджер мережі з урахуванням розташування машини у мережі Інтернет. Якщо машину переміщують в іншу частину мережі Інтернет, то її IP-адреса повинна бути змінена. Ethernet-адресу вибирає виробник мережного інтерфейсного обладнання з виділеного для нього згідно з ліцензією адресного простору. Якщо у машини змінюється мережний адаптер, то міняється і Ethernet-адреса.
Порядок перетворення адрес [ред.]
У ході звичайної роботи мережна програма відправляє прикладне повідомлення, користуючись транспортними послугами TCP. Модуль TCP посилає відповідне транспортне повідомлення через модуль IP. В результаті, складається IP-пакет, який має бути переданий драйверу Ethernet. IP-адреса місця призначення відома прикладній програмі, модулю TCP та модулю IP. Необхідно на її основі знайти Ethernet-адресу місця призначення. Для пошуку відповідної Ethernet-адреси використовується ARP-таблиця.
Запити та відповіді протоколу ARP [ред.]
ARP-таблиця заповнюється автоматично модулем ARP по мірі необхідності. Коли за допомогою існуючої ARP-таблиці не вдається перетворити IP-адресу, то відбувається таке:
- По мережі передається широкомовний ARP-запит.
- Вихідний IP-пакет ставиться в чергу.
Кожний мережний адаптер приймає широкомовні передачі. Усі драйвери Ethernet перевіряють поле типу в прийнятому Ethernet-кадрі й передають ARP-пакети модулю ARP. ARP-запит можна інтерпретувати так: «Якщо ваша IP-адреса збігається із зазначеною, то повідомте мені вашу Ethernet-адресу». Пакет ARP-запиту виглядає приблизно так:
| IP-адреса відправника | 223.1.2.1 |
| Ethernet-адреса відправника | 08:00:5A:21:A7:22 |
| Шукана IP-адреса | 223.1.2.3 |
| Шукана Ethernet-адреса | <порожньо> |
Кожний модуль ARP перевіряє поле шуканої IP-адреси в отриманому ARP-пакеті і, якщо адреса збігається з його власною IP-адресою, то посилає відповідь прямо за Ethernet-адресою відправника запиту. Пакет з ARP-відповіддю виглядає приблизно так:
| IP-адреса відправника | 223.1.2.3 |
| Ethernet-адреса відправника | 08:01:2A:2B:A7:21 |
| IP-адреса автора запиту | 223.1.2.1 |
| Ethernet-адреса автора запиту | 08:00:5A:21:A7:22 |
Цю відповідь одержує машина, що зробила ARP-запит. Драйвер цієї машини перевіряє поле типу в Ethernet-кадрі й передає ARP-пакет модулю ARP. Модуль ARP аналізує ARP-пакет і додає запис у свою ARP-таблицю. Якщо в мережі немає машини із шуканою IP-адресою, то ARP-відповіді не буде й не буде запису в ARP-таблиці. Протокол IP буде знищувати IP-пакети, що направляються по цій адресі. Протоколи верхнього рівня не можуть відрізнити випадок пошкодження мережі Ethernet від випадку відсутності машини із шуканим IP-адресою.

