Hiểu cách máy tính xác định đích nằm trong cùng mạng hay khác mạng
Một trong những kiến thức nền tảng nhưng cực kỳ quan trọng trong mạng IP là cách một máy tính quyết định:
Quyết định này diễn ra trước cả khi gói tin được gửi lên mạng và hoàn toàn dựa trên việc so sánh Network ID.
Trường hợp 1: PC1 giao tiếp với PC2
Giả sử PC1 muốn gửi dữ liệu cho PC2.
Đầu tiên, PC1 thực hiện truy vấn DNS và nhận được địa chỉ IP của PC2 là:
10.1.1.20
Bây giờ PC1 cần trả lời câu hỏi:
PC2 có nằm trong cùng subnet với mình không?
Bước 1: Xác định Network ID của chính mình
PC1 có địa chỉ:
10.1.1.10
Subnet Mask: 255.255.255.192 (/26)
Chuyển sang dạng nhị phân:
IP Address
00001010.00000001.00000001.00001010
Subnet Mask
11111111.11111111.11111111.11000000
Những bit có giá trị 1 trong Subnet Mask chính là phần Network.
Sau khi lấy phần này, Network ID của PC1 là:
00001010.00000001.00000001.00
Bước 2: So sánh với địa chỉ của PC2
Địa chỉ của PC2 ở dạng nhị phân:
00001010.00000001.00000001.00010100
PC1 chỉ so sánh đúng số bit thuộc phần Network.
Kết quả:
PC1 Network:
00001010.00000001.00000001.00
PC2:
00001010.00000001.00000001.00
Hai phần Network hoàn toàn giống nhau.
PC1 kết luận:
Do đó:
Lúc này frame Ethernet sẽ có:
Nếu chưa biết MAC của PC2, PC1 sẽ thực hiện ARP Request để tìm địa chỉ MAC trước khi truyền dữ liệu.
Trường hợp 2: PC1 truy cập Web Server
Giả sử người dùng mở trình duyệt để truy cập một website.
Sau khi DNS phân giải tên miền, PC1 nhận được địa chỉ:
192.0.2.1
Một lần nữa PC1 kiểm tra Network ID.
Network của PC1 vẫn là:
00001010.00000001.00000001.00
Địa chỉ Web Server ở dạng nhị phân:
11000000.00000000.00000010.00000001
So sánh:
PC1 Network
00001010.00000001.00000001.00
Web Server
11000000.00000000.00000010....
Ngay từ những bit đầu tiên đã khác nhau.
PC1 kết luận:
Do đó PC1 không thể gửi trực tiếp đến Web Server.
Thay vào đó, PC1 sẽ gửi frame đến Default Gateway.
Frame Ethernet lúc này sẽ có:
Bên trong frame, gói IP vẫn giữ nguyên:
Router R1 sau đó sẽ chịu trách nhiệm định tuyến (Routing) để chuyển tiếp gói tin đến mạng chứa Web Server.
Vì sao phải so sánh Network ID?
Máy tính chỉ có thể truyền frame Ethernet trực tiếp đến các thiết bị nằm trong cùng broadcast domain. Nếu thiết bị đích ở mạng khác, việc chuyển tiếp phải được thực hiện bởi router.
Chính vì vậy, trước khi gửi bất kỳ gói tin nào, hệ điều hành luôn thực hiện phép tính:
Network ID = IP Address AND Subnet Mask
Sau đó so sánh Network ID của mình với địa chỉ IP đích.
Nếu giống nhau:
Nếu khác nhau:
Kết luận
Quy trình xác định đích nằm trong cùng hay khác subnet là nền tảng của mọi mạng IPv4. Chỉ bằng phép so sánh giữa IP Address và Subnet Mask, máy tính có thể quyết định đường đi phù hợp cho gói tin.
Đây cũng là lý do vì sao việc cấu hình IP Address, Subnet Mask và Default Gateway chính xác là yêu cầu bắt buộc trong mọi hệ thống mạng. Chỉ cần một trong ba thông số này sai, thiết bị có thể không giao tiếp được dù kết nối vật lý vẫn hoàn toàn bình thường.
Một trong những kiến thức nền tảng nhưng cực kỳ quan trọng trong mạng IP là cách một máy tính quyết định:
- Gửi dữ liệu trực tiếp đến máy đích, hay
- Gửi dữ liệu đến Default Gateway để router chuyển tiếp.
Quyết định này diễn ra trước cả khi gói tin được gửi lên mạng và hoàn toàn dựa trên việc so sánh Network ID.
Trường hợp 1: PC1 giao tiếp với PC2
Giả sử PC1 muốn gửi dữ liệu cho PC2.
Đầu tiên, PC1 thực hiện truy vấn DNS và nhận được địa chỉ IP của PC2 là:
10.1.1.20
Bây giờ PC1 cần trả lời câu hỏi:
PC2 có nằm trong cùng subnet với mình không?
Bước 1: Xác định Network ID của chính mình
PC1 có địa chỉ:
10.1.1.10
Subnet Mask: 255.255.255.192 (/26)
Chuyển sang dạng nhị phân:
IP Address
00001010.00000001.00000001.00001010
Subnet Mask
11111111.11111111.11111111.11000000
Những bit có giá trị 1 trong Subnet Mask chính là phần Network.
Sau khi lấy phần này, Network ID của PC1 là:
00001010.00000001.00000001.00
Bước 2: So sánh với địa chỉ của PC2
Địa chỉ của PC2 ở dạng nhị phân:
00001010.00000001.00000001.00010100
PC1 chỉ so sánh đúng số bit thuộc phần Network.
Kết quả:
PC1 Network:
00001010.00000001.00000001.00
PC2:
00001010.00000001.00000001.00
Hai phần Network hoàn toàn giống nhau.
PC1 kết luận:
PC2 nằm trong cùng subnet.
Do đó:
- Không cần gửi gói tin cho router.
- PC1 sẽ gửi trực tiếp đến PC2.
Lúc này frame Ethernet sẽ có:
- Source MAC = MAC của PC1
- Destination MAC = MAC của PC2
Nếu chưa biết MAC của PC2, PC1 sẽ thực hiện ARP Request để tìm địa chỉ MAC trước khi truyền dữ liệu.
Trường hợp 2: PC1 truy cập Web Server
Giả sử người dùng mở trình duyệt để truy cập một website.
Sau khi DNS phân giải tên miền, PC1 nhận được địa chỉ:
192.0.2.1
Một lần nữa PC1 kiểm tra Network ID.
Network của PC1 vẫn là:
00001010.00000001.00000001.00
Địa chỉ Web Server ở dạng nhị phân:
11000000.00000000.00000010.00000001
So sánh:
PC1 Network
00001010.00000001.00000001.00
Web Server
11000000.00000000.00000010....
Ngay từ những bit đầu tiên đã khác nhau.
PC1 kết luận:
Web Server nằm ở một mạng khác.
Do đó PC1 không thể gửi trực tiếp đến Web Server.
Thay vào đó, PC1 sẽ gửi frame đến Default Gateway.
Frame Ethernet lúc này sẽ có:
- Source MAC = MAC của PC1
- Destination MAC = MAC của Router R1 (Default Gateway)
Bên trong frame, gói IP vẫn giữ nguyên:
- Source IP = 10.1.1.10
- Destination IP = 192.0.2.1
Router R1 sau đó sẽ chịu trách nhiệm định tuyến (Routing) để chuyển tiếp gói tin đến mạng chứa Web Server.
Vì sao phải so sánh Network ID?
Máy tính chỉ có thể truyền frame Ethernet trực tiếp đến các thiết bị nằm trong cùng broadcast domain. Nếu thiết bị đích ở mạng khác, việc chuyển tiếp phải được thực hiện bởi router.
Chính vì vậy, trước khi gửi bất kỳ gói tin nào, hệ điều hành luôn thực hiện phép tính:
Network ID = IP Address AND Subnet Mask
Sau đó so sánh Network ID của mình với địa chỉ IP đích.
Nếu giống nhau:
- Gửi trực tiếp đến thiết bị đích.
- Destination MAC là MAC của thiết bị nhận.
Nếu khác nhau:
- Gửi đến Default Gateway.
- Destination MAC là MAC của router.
Kết luận
Quy trình xác định đích nằm trong cùng hay khác subnet là nền tảng của mọi mạng IPv4. Chỉ bằng phép so sánh giữa IP Address và Subnet Mask, máy tính có thể quyết định đường đi phù hợp cho gói tin.
Đây cũng là lý do vì sao việc cấu hình IP Address, Subnet Mask và Default Gateway chính xác là yêu cầu bắt buộc trong mọi hệ thống mạng. Chỉ cần một trong ba thông số này sai, thiết bị có thể không giao tiếp được dù kết nối vật lý vẫn hoàn toàn bình thường.