1. Cơ bản về ARP1.0 ARP-Address Resolution Protocol Đầu tiên ta sẽ tìm hiểu cách ánh xạ giữa địa chỉ IP và địa chỉ MAC tương ứng. Mỗi network adapter (thường gọi là interface hay card mạng) có một địa chỉ MAC duy nhất và vĩnh viễn, còn gọi là địa chỉ vật lí, tương ứng với một hoặc nhiều địa chỉ IP gán cho interface đó. Đây là địa chỉ giao tiếp trong tầng Datalink của mô hình OSI. Để hiểu tại sao cần ARP và nó làm việc như thế nào, ta xét một ví dụ, khi bạn gõ dòng lệnh sau trong môi trường Linux (trong Windows cũng tương tự): % ftp bsdi Nghĩa là bạn muốn dùng chương trình “ftp” để kết nối đến một host có tên “bsdi” để thực hiện việc truyền nhận file (sử dụng giao thức FTP), các bước sau sẽ diễn ra trong “hậu trường”:
1.Chương trình ứng dụng, trong trường hợp này là FTP client, gọi hàm gethostbyname để chuyển (convert) từ hostname “bsdi” sang địa chỉ IP 32 bit. Hàm này được gọi là một resolver (bộ phân giải) trong Domain Name System (DNS), ta sẽ nói sau về cái này.
2.Khi có được IP của host “bsdi” rồi, FTP client yêu cầu thiết lập một cầu nối TCP với địa chỉ IP đó bằng cách gửi một gói IP datagram đến địa chỉ IP vừa xác định.
3.Nếu địa chỉ IP cần gửi đến có cùng NetID với IP của máy local (nghĩa là thằng mình cần gửi nằm trong một mạng với mình) thì gói tin IP đó có thể được gửi trực tiếp đến nó. Còn nếu thấy NetID của IP đích lạ hoắc thì chức năng định tuyến của IP sẽ xác định địa chỉ IP của thằng router trong mạng của mình (chính là cái Default Gateway khi bạn cấu hình IP address) và gửi gói tin IP đến đó. Đến lượt router sẽ dựa vào bảng định tuyến của mình để quyết định chuyển tiếp gói tin đi đâu. Đó là công việc của tầng IP.
4.Trong cả hai trường hợp trên, để gửi cho bất kỳ host nào (trực tiếp đến máy kia hay là gửi đến router), ta gọi chung là destination host, thì đến tầng Datalink sẽ phải xác định địa chỉ MAC của destination host. Cụ thể là host gửi gói tin phải convert từ địa chỉ IP 32 bit sang địa chỉ MAC 48 bit, từ địa chỉ logical sang địa chỉ physical. Đây là chức năng của ARP – Address Resolution Protocol.
5.Giao thức ARP sẽ gửi một Ethernet frame gọi là một ARP request đến tất cả các host trong mạng. Kiểu gởi này gọi là broadcast. Frame này mang theo địa chỉ IP của destination host và đến gõ cửa từng card mạng: “Nếu anh có địa chỉ IP là cái này thì làm ơn trả lời cho tôi địa chỉ MAC của anh!”
6.Mọi interface trong mạng đều nhận được gói tin đó, nếu một interface không phải là destination host thì không có gì xảy ra, chỉ đơn giản là nó quăng gói tin request đó đi. Còn nếu tầng Datalink của destination host nhận được frame ARP request, và nhận ra là sender đang yêu cầu đ/c MAC của mình, nó lập tức đáp lại bằng một ARP reply. Gói reply này chứa địa chỉ IP và địa chỉ MAC tương ứng của nó.
7.Gói ARP reply được máy của bạn (đang yêu cầu dịch vụ) nhận được, và lấy MAC của destination host ra, nhét vào frame (giống như ghi địa chỉ) và lúc này có thể gửi cái IP datagram đi.
8.Cuối cùng, IP datagram được gửi đến destination host.