| Bộ giao thức Internet |
|---|
| Tầng ứng dụng (Application layer) |
|
| Tầng giao vận (Transport layer) |
|
| Tầng mạng (Internet layer) |
|
| Tầng liên kết (Link layer) |
|
Giao thức phân giải địa chỉ (Address Resolution Protocol hoặc ARP) là một giao thức truyền thông dùng để chuyển đổi địa chỉ từ tầng mạng (Internet layer) sang tầng liên kết dữ liệu trong mô hình OSI. Đây là một phần quan trọng trong giao thức IP của mạng máy tính. ARP được mô tả trong RFC 826 từ năm 1982 và là tiêu chuẩn Internet STD 37.
ARP giúp xác định địa chỉ vật lý (như địa chỉ Ethernet hay địa chỉ MAC) từ một địa chỉ mạng (chẳng hạn như địa chỉ IPv4), hay nói cách khác, nó chuyển đổi địa chỉ IP thành địa chỉ phần cứng. ARP đã được áp dụng trong nhiều công nghệ mạng và tầng liên kết dữ liệu, bao gồm IPv4 và Chaosnet.
Trong mạng máy tính với phiên bản IPv6, chức năng của ARP được thay thế bởi Giao thức Phát hiện Hàng xóm (Neighbor Discovery Protocol - NDP).
Nguyên lý hoạt động
Nguyên lý cơ bản
Trong hệ thống Ethernet và WLAN, các gói IP không được truyền tải trực tiếp. Thay vào đó, gói IP sẽ được đóng gói trong một khung Ethernet trước khi được gửi đi. Khung này bao gồm địa chỉ gửi và địa chỉ đích, cả hai đều là địa chỉ MAC của thẻ mạng. Thẻ mạng sẽ chỉ nhận các khung Ethernet có địa chỉ đích trùng với địa chỉ MAC của chính nó và sẽ bỏ qua các khung khác. Để liên kết giữa địa chỉ MAC và địa chỉ IP, giao thức ARP được sử dụng. Giao thức này lưu trữ thông tin trong bảng ARP để hoạt động hiệu quả.
Ví dụ minh họa
- Giao tiếp giữa các máy chủ
Hai máy tính trong một văn phòng (Máy tính 1 và Máy tính 2) được kết nối trong một mạng cục bộ (LAN) qua cáp Ethernet và thiết bị chuyển mạch mạng, không có Gateway hoặc bộ định tuyến trung gian. Khi Máy tính 1 cần gửi một gói tin đến Máy tính 2, nó sẽ sử dụng DNS để xác định rằng địa chỉ IP của Máy tính 2 là 192.168.0.55. Để gửi gói tin, nó cũng cần biết địa chỉ MAC của Máy tính 2. Trước tiên, Máy tính 1 tra cứu trong bảng ARP của nó để xem có mục nào tương ứng với địa chỉ IP 192.168.0.55 hay không. Nếu tìm thấy địa chỉ MAC, nó sẽ gửi một khung Ethernet tới địa chỉ MAC đó với gói tin IP bên trong. Nếu không tìm thấy thông tin trong bảng ARP, Máy tính 1 phải phát đi một ARP broadcast (đến địa chỉ MAC FF: FF: FF: FF: FF: FF), yêu cầu tất cả các máy tính trên mạng cung cấp địa chỉ IP 192.168.0.55 trả lời. Máy tính 2 sẽ phản hồi với địa chỉ MAC và địa chỉ IP của nó. Máy tính 2 cũng có thể thêm mục vào bảng ARP của nó cho Máy tính 1 để sử dụng trong tương lai. Máy tính 1 lưu trữ thông tin phản hồi vào bảng ARP của nó và sau đó có thể gửi gói tin.
Các tình huống khác
- Giao tiếp giữa máy tính và bộ định tuyến
Khi Máy tính 1 và Máy tính 2 nằm trên hai mạng cục bộ khác nhau, Máy tính 1 sẽ tra cứu bảng định tuyến để xác định địa chỉ IP của bộ định tuyến, từ đó tìm ra địa chỉ MAC tương ứng.
- Giao tiếp giữa các bộ định tuyến
Các bộ định tuyến sử dụng bảng định tuyến để xác định địa chỉ IP của bộ định tuyến khác trên cùng một mạng LAN, và sau đó tìm ra địa chỉ MAC của nó.
- Router đến máy chủ
Trong tình huống này, địa chỉ IP có thể được xác định từ gói tin gửi đi. Router chỉ cần xác định địa chỉ MAC tương ứng là đủ.
Giả mạo ARP
Do ARP không cung cấp cơ chế xác thực cho các phản hồi ARP trên mạng, các phản hồi ARP có thể đến từ các hệ thống khác không phải là hệ thống yêu cầu địa chỉ tầng 2. Thêm vào đó, một máy chủ có thể chấp nhận gói tin ARP Reply mà không cần phải nhận gói tin ARP Request trước đó. Kẻ tấn công có thể lợi dụng điểm yếu này để thực hiện các cuộc tấn công như: Man In The Middle, Tấn công từ chối dịch vụ, hoặc MAC Flooding. Mặc dù có nhiều phần mềm phát hiện và chống lại các cuộc tấn công giả mạo ARP, nhưng ARP chính nó không cung cấp các biện pháp bảo vệ chống lại những cuộc tấn công này.
