Giao thức ARP là giao thức quan trọng nhất của tầng Network trong mô hình tham chiếu mô hình OSI , chúng ta thường sử dụng các loại địa chỉ mang tính chất quy ước như IP, IPX… Các địa chỉ này được các địa chỉ này được thiết kế theo cơ chế phân đoạn là. phần NET (NetID) và phần địa chỉ máy HOST ( HostID) . Cách đánh số địa chỉ như vậy nhằm giúp cho việc tìm ra các đường kết nối từ hệ thống mạng này sang hệ thống mạng khác được dễ dàng hơn. Các địa chỉ này có thể được thay đổi theo tùy ý người sử dụng.
Trên thực tế, thiết bị vật lý card mạng (NIC) chỉ có thể kết nối với nhau theo địa chỉ MAC ( 12 chữ số hexadecimal ), địa chỉ cố định và duy nhất của phần cứng. Do vậy ta phải có một cơ chế để chuyển đổi 2 địa chỉ này qua lại với nhau. Vì lý do đó mà giao thức: Address Resolution Protocol (ARP) ra đời.
Nguyên tắc làm việc của giao thức ARP
Khi một HOST ( thiết bị mạng ) muốn biết địa chỉ MAC của một thiết bị mạng nào đó mà nó đã biết địa chỉ ở tầng network (IP, IPX…) nó sẽ gửi một ARP request bao gồm địa chỉ MAC address của nó và địa chỉ IP của thiết bị mà nó cần biết MAC address trên toàn bộ một miền broadcast. Mỗi một thiết bị nhận được request này sẽ so sánh địa chỉ IP trong request với địa chỉ tầng network ( địa chỉ IP) của mình. Nếu trùng địa chỉ thì thiết bị đó phải gửi ngược lại cho thiết bị gửi ARP request một gói tin (trong đó có chứa địa chỉ MAC của mình). Trong một hệ thống mạng đơn giản, ví dụ như PC A muốn gửi gói tin đến PC B và nó chỉ biết được địa chỉ IP của PC B. Khi đó PC A sẽ phải gửi một ARP broadcast cho toàn mạng để hỏi xem “địa chỉ MAC của PC có địa chỉ IP này là gì ?” Khi PC B nhận được broadcast này, nó sẽ so sánh địa chỉ IP trong gói tin này với địa chỉ IP của nó. Nhận thấy địa chỉ đó là địa chỉ của mình, PC B sẽ gửi lại một gói tin cho PC A trong đó có chứa địa chỉ MAC của B. Sau đó PC A mới bắt đầu truyền gói tin cho B.
Nguyên tắc hoạt động của giao thức ARP trong môi trường hệ thống mạng:
Hoạt động của giao thức ARP trong một môi trường phức tạp hơn đó là hai hệ thống mạng được kết nối với nhau thông qua thiết bị layer3 Router C. Máy tính A thuộc mạng A muốn gửi gói tin đến máy B thuộc mạng B. Do nguyên lý hoạt động của broadcast không thể truyền qua Router nên khi đó máy A sẽ xem Router C như một cầu nối hay một trung gian (Agent) để truyền dữ liệu. Trước đó, máy A sẽ biết được địa chỉ IP của Router C ( địa chỉ Gateway) và biết được rằng để truyền gói tin tới B phải đi qua C ( bảng routing table ). Bảng định tuyến theo cơ chế này được lưu giữ trong mỗi máy. Bảng định tuyến chứa thông tin về các Gateway để truy cập vào một hệ thống mạng nào đó. Ví dụ trong trường hợp đang này trong bảng sẽ chỉ ra rằng để đi tới mạng LAN B phải qua port X của Router C. Bảng định tuyến sẽ có chứa địa chỉ IP của port X. Và quá trình truyền dữ liệu theo từng bước sau :
- Máy A gửi một ARP request (broadcast) để tìm địa chỉ MAC của port X.
- Router C trả lời, cung cấp cho máy A địa chỉ MAC của port X.
Máy A truyền gói tin đến port X của Router. - Router nhận được gói tin từ máy A, chuyển gói tin ra port Y của Router. Trong gói tin có chứa địa chỉ IP của máy B. Router sẽ gửi ARP request để tìm địa chỉ MAC của máy B.
- Máy B sẽ trả lời cho Router biết địa chỉ MAC của mình. Sau khi nhận được địa chỉ MAC của máy B, Router C gửi gói tin của A đến B.
Trên thực tế khi triển khai một hệ thống mạng ngoài dạng bảng định tuyến này người ta còn dùng phương pháp proxyARP, ức là sẽ có một thiết bị đảm nhận nhiệm vụ phân giải địa chỉ cho tất cả các thiết bị khác ( để tránh tình trạng quá tải khi nhiều máy brocast cùng một thời điểm).Theo đó các máy trạm không cần giữ bảng định tuyến nữa Router C sẽ có nhiệm vụ thực hiện, trả lời tất cả các ARP request của tất cả các máy.
Thiết kế web Công Nghệ CIT chúc các bạn thành công!!!