- Bài 1 : Mạng và Mô hình tham chiếu
- Bài 2 : Chi tiết các lớp trong Mô hình tham chiếu – Application và Transport
- Bài 3 : Chi tiết các lớp trong Mô hình tham chiếu – Network
- Bài 4 : Chi tiết các lớp trong Mô hình tham chiếu – Data Link và Physical
- Bài 5 : Giới thiệu về Router
- Bài 6 : Nguyên lý hoạt động của Switch
- Bài 7 : Định tuyến tĩnh
- Bài 8 : Một số giao thức mạng – ARP
- Bài 9 : Một số giao thức mạng – DHCP
- Bài 10 : Một số giao thức mạng – ICMP
1. ARP là gì và tại sao cần ARP?
Khi các host IP được kết nối với nhau thông qua một data link Ethernet, mọi gói tin IP do chúng trao đổi với nhau đều phải được đóng gói vào các Ethernet frame để có thể di chuyển được trên data link này. Để có thể xây dựng được Ethernet frame chứa gói IP cần trao đổi, host gửi cần một số thông tin đặc thù để thực hiện đóng frame gồm: source MAC – địa chỉ MAC của host gửi, destination MAC – địa chỉ MAC của host nhận và giá trị Ethertype tương ứng với giao thức lớp 3 trong phần Payload.
Trong 3 thông số vừa nêu, host gửi có thể xác định được 2 thông số là source MAC – chính là địa chỉ MAC trên card mạng Ethernet của nó và Ethertype = 0x0800 – là giá trị chuẩn được IEEE quy định dành riêng cho giao thức IP; tuy nhiên, host gửi lại không thể biết được destination MAC – địa chỉ MAC trên card mạng Ethernet của host nhận. Để có thể xác định được địa chỉ MAC của host nhận, host gửi phải sử dụng một giao thức đặc biệt có tên gọi là ARP – Address Resolution Protocol – Giao thức phân giải địa chỉ. Giao thức này cho phép một host khi kết nối vào data link Ethernet có thể xác định được địa chỉ MAC của một host khác dựa vào địa chỉ IP đã biết trước đó của host ấy.
2. Ví dụ về hoạt động của ARP trong mạng LAN
Để nắm được ý tưởng hoạt động của ARP, chúng ta cùng quan sát một ví dụ (hình 1):

Hình 1. Ví dụ về hoạt động của giao thức ARP
Trong ví dụ trên hình 1, ta có một mạng Ethernet LAN đơn giản được thiết lập bằng cách đấu nối 3 host vào một Ethernet switch. Các host có địa chỉ IP và địa chỉ MAC như được chỉ ra trên hình vẽ.
Giả sử Host 1 muốn gửi dữ liệu đến Host 2, chẳng hạn ping hoặc chia sẻ file với Host 2. Host 1 cần phải đóng gói IP dữ liệu mà nó muốn gửi đến Host 2. Những gói tin IP này có source IP và destination IP được xác định như sau:
- Source IP: Sẽ được lấy là địa chỉ IP trên card mạng của Host 1, trong ví dụ này là 192.168.1.1.
- Destination IP: Là IP của Host 2, trong ví dụ này là 192.168.1.2.
Tham số Destination IP sẽ được chỉ ra tường minh khi Host 1 cần phải thực hiện tác vụ trao đổi dữ liệu với Host 2. Ví dụ: nếu Host 1 ping Host 2 thì địa chỉ IP của Host 2 sẽ được chỉ rõ trong câu lệnh “ping” của Host 1; hoặc nếu Host 1 truy nhập web đến Host 2 thì IP của Host 2 cũng sẽ được chỉ rõ trong hoạt động truy nhập web của Host 1.
Đến lượt chúng, những gói tin IP vừa được xây dựng cần phải được đóng gói vào các Ethernet frame để có thể truyền đi được trên data link Ethernet. Các Ethernet frame này sẽ có các địa chỉ source MAC và destination MAC được xác định như sau:
- Source MAC: Host 1 sẽ sử dụng source MAC chính là địa chỉ MAC trên card mạng của nó.
- Destination MAC: Là địa chỉ MAC của Host 2. Tuy nhiên, như đã nêu ở trên, Host 1 sẽ không thể biết được địa chỉ MAC của Host 2 là gì. Để tìm cho ra địa chỉ MAC này nhằm hoàn tất tiến trình đóng gói IP packet vào Ethernet frame, Host 1 cần phải sử dụng giao thức ARP.
Hoạt động ARP được mô tả trên hình 2

Hình 2. Hoạt động của giao thức ARP
Quá trình ARP tìm kiếm địa chỉ MAC tướng ứng với một địa chỉ IP được tiến hành như sau:
- Host 1 thực hiện phát broadcast một loại gói tin của giao thức ARP có tên là ARP Request vào Ethernet link. Gói ARP request của Host 1 có nội dung truy vấn các thiết bị trên LAN rằng thiết bị nào đang sử dụng IP là 192.168.1.2 thì hãy cho Host 1 biết địa chỉ MAC.
- Vì gói ARP Request được phát đi broadcast nên mọi host trên mạng LAN đều nhận được gói này, tuy nhiên chỉ Host 2 mang địa chỉ IP 192.168.1.2 mới trả lời truy vấn. Để trả lời cho gói ARP Request của Host 1, Host 2 sử dụng một loại gói tin khác của giao thức ARP có tên là ARP Reply. Gói ARP Reply do Host 2 phát ra sẽ được gửi unicast trở lại cho Host 1. Địa chỉ MAC của Host 2 sẽ được thông báo trong gói tin này.
- Khi Host 1 nhận được gói ARP Reply từ Host 2, nó thực hiện kiểm tra nội dung gói này, từ đó biết được địa chỉ MAC cần tìm. Sau đó, Host 1 thực hiện đóng frame gói IP mà nó định gửi cho Host 2 với destination MAC là địa chỉ MAC của Host 2 mà nó mới biết được.
Để có thể sử dụng kết quả truy vấn này cho những lần trao đổi dữ liệu tiếp theo, Host 1 thực hiện lưu kết quả phân giải ARP vào trong bảng ARP cache của nó.
3. ARP Cache
Hoạt động phân giải ARP sẽ được diễn ra tương tự khi Host 1 tiến hành trao đổi dữ liệu với các host còn lại trên mạng LAN. Cuối cùng, Host 1 sẽ có được cập nhật IP – MAC cho mọi host khác trong bảng ARP Cache của nó (hình 3):

Hình 3. ARP cache của Host1
Để hiển thị nội dung của ARP cache (còn gọi là bảng ARP) trên router Cisco sử dụng IOS, chúng ta dùng lệnh “Router#show ip arp” . Với các host chạy hệ điều hành Windows, chúng ta dùng lệnh “arp – a” trong cửa sổ CMD. Ví dụ:
Bảng ARP trên một Cisco router:
Router#show ip arp Protocol Address Age (min) Hardware Addr Type Interface Internet 192.168.123.1 - 000c.29e5.bac7 ARPA FastEthernet0/0 Internet 192.168.123.2 2 001f.6c6e.90d0 ARPA FastEthernet0/0 Internet 192.168.123.3 2 f025.720f.c3c8 ARPA FastEthernet0/0 |
Bảng ARP trên một Windows host:
C:\>arp -a Interface: 192.168.2.82 --- 0xf Internet Address Physical Address Type 192.168.2.1 70-df-2f-cf-b2-c5 dynamic 192.168.2.255 ff-ff-ff-ff-ff-ff static 224.0.0.22 01-00-5e-00-00-16 static 224.0.0.251 01-00-5e-00-00-fb static 224.0.0.252 01-00-5e-00-00-fc static 239.255.255.250 01-00-5e-7f-ff-fa static 255.255.255.255 ff-ff-ff-ff-ff-ff static |
Như vậy, nhờ giao thức ARP, các thiết bị kết nối vào một Ethernet LAN mới có được đầy đủ thông tin về địa chỉ MAC để thực hiện được hoạt động đóng gói IP lớp 3 vào frame Etherne lớp 2. Từ đó, các host IP mới có thể tiến hành trao đổi dữ liệu TCP/IP với nhau qua đường data link Ethernet.
4. ARP khi gửi dữ liệu ra ngoài mạng LAN
Trên đây, chúng ta đã phân tích hoạt động của ARP khi các host trong cùng một mạng LAN truyền dữ liệu cho nhau. Tiếp theo, chúng ta sẽ cùng xem xét quá trình phân giải ARP khi một host trong một mạng LAN trao đổi dữ liệu với một host khác nằm bên ngoài mạng LAN ấy. Ví dụ:

Hình 4. Ví dụ về phân giải ARP khi host gửi dữ liệu ra bên ngoài mạng LAN
Trong ví dụ ở hình 4, mạng LAN vẫn gồm một switch và 3 host kết nối giống như trong ví dụ trước, nhưng lần này có thêm router R1 làm gateway để các host trong mạng có thể gửi dữ liệu ra bên ngoài. Do đó, bên cạnh địa chỉ IP đã cấu hình trên card mạng, các host còn phải khai báo thêm địa chỉ default – gateway (trong ví dụ này là “192.168.1.254”).
Chúng ta xem xét quá trình Host 1 gửi dữ liệu đến Host 4 đặt tại địa chỉ 192.168.10.1. Tương tự như ví dụ trước, dữ liệu Host 1 gửi đi sẽ được đóng gói vào các gói tin IP với source IP chính là địa chỉ IP của Host 1: 192.168.1.1 và destination IP là địa chỉ IP của Host 4: 192.168.10.1. Host 1 có thể xác định được địa chỉ source IP vì đây là địa chỉ nằm trên chính card mạng của nó còn địa chỉ destination IP sẽ được chỉ ra trong thao tác gửi dữ liệu trên Host 1 mà người quản trị thi hành (ví dụ: “ping 192.168.10.1”).
Như đã đề cập trong bài về định tuyến (bài 7), vì lần này, các gói tin cần phải được gửi đến một IP khác mạng, Host 1 không tự xử lý được mà phải chuyển các gói này lên default – gateway của nó là router R1 nằm tại địa chỉ 192.168.1.254 để router này xử lý tiếp. Vì các gói này sẽ được chuyển thông qua data link Ethernet đến R1, chúng sẽ được Host 1 đóng gói vào các Ethernet frame với source MAC là địa chỉ MAC trên card mạng của Host 1 và destination MAC là địa chỉ MAC trên card mạng F0/0 của router. Tuy nhiên, ban đầu, Host 1 chưa thể biết được địa chỉ MAC trên cổng F0/0 của router nên nó cần phải thực hiện một hoạt động phân giải ARP để tìm cho ra địa chỉ MAC này. Quá trình này được mô tả trong hình 5:

Hình 5. Phân giải ARP cho default – gateway
Các bước của quá trình thực hiện ARP từ Host 1để tìm ra MAC của default – gateway:
- Host 1 thực hiện phát broadcast gói tin ARP Request vào Ethernet link, thực hiện truy vấn các thiết bị trên LAN rằng thiết bị nào đang sử dụng IP là 192.168.1.254 thì hãy cho Host 1 biết địa chỉ MAC.
- Router R1 mang địa chỉ IP 192.168.1.254 nên nó sẽ hồi đáp truy vấn của Host 1 bằng một gói ARP Reply. Gói ARP Reply do router phát ra sẽ được gửi unicast trở lại cho Host 1. Địa chỉ MAC trên cổng F0/0 của router sẽ được thông báo trong gói tin này.
- Khi Host 1 nhận được gói ARP Reply từ router, nó thực hiện kiểm tra nội dung gói này, từ đó biết được địa chỉ MAC cần tìm. Sau đó, Host 1 thực hiện đóng frame các gói IP mà nó định gửi ra bên ngoài mạng với destination MAC là địa chỉ MAC trên cổng F0/0 của router mà nó mới biết được.
Host 1 thực hiện lưu kết quả phân giải ARP vừa rồi vào trong ARP cache của nó. Từ đó, mỗi khi cần gửi dữ liệu đến một địa chỉ bên ngoài mạng thông qua default – gateway, nó lại sử dụng kết quả phân giải này để thực hiện đóng frame các gói tin IP chuyển lên router.
Về phía router R1, khi nhận được các frame do Host 1 gửi tới, nó tiến hành gỡ bỏ frame, thu hồi lại các gói tin IP, thực hiện dẫn đường cho các gói tin theo thông tin được lưu trong bảng định tuyến như đã trình bày trong bài 7.
Các host còn lại trong mạng LAN, để có thể truy xuất đến một địa chỉ bên ngoài mạng cũng sẽ cần phải thực hiện một quá trình phân giải địa chỉ tương tự như Host 1 đã làm và cũng phải lưu thông tin tương quan IP – MAC của default – gateway trong ARP cache của chúng.
Như vậy, với hoạt động trao đổi dữ liệu ra bên ngoài mạng, các host trong một mạng Ethernet LAN phải thực hiện phân giải ARP để có được địa chỉ MAC tương ứng với địa chỉ IP của default – gateway trên mạng của chúng.