Tại sao người ta đưa địa chỉ MAC vào quá trình switching mà không sử dụng luôn địa chỉ IP ? Nghĩa là thay vì switch làm việc với MAC thì switch và router cùng làm việc với IP, bỏ luôn khái niệm lớp 2 trong mô hình mạng. Như vậy có được không ?
Bài này mình không hỏi về nguyên lý hoạt động của switch, nguyên lý switching, ý nghĩa MAC, giao thức ARP, và v.v vì mình đã biết rồi. Nhưng mình chưa hiểu rõ tại sao cần đến khái niệm MAC trong quá trình switching mà sao không dùng luôn IP ? Mình không nói đến bỏ khái niệm MAC (MAC dùng định danh thiết bị khi tham gia vào mạng) mà chỉ nói đến loại bỏ MAC ra khỏi switching, switch không dùng MAC mà dùng IP thì có được hay không ? Khi switching dùng IP thì MAC sẽ được nằm trong gói IP, các thiết bị khác vẫn đọc được MAC để xác định thiết bị nào đã gửi. Tất nhiên khi thay đổi nguyên lý thì phải hoạt động của thiết bị cũng phải được design lại.
Nếu thay thế MAC bằng IP trong switching thì mình thấy có vẻ như mạng vẫn chạy được, vẫn switching và routing tốt, mà ta lại bớt đi nhiều khái niệm, nhiều thủ tục và giao thức.
Lấy ví dụ :
+ ở hiện tại : PC1 cần gửi message đến PC2 trong cùng lớp mạng (cùng 1 switch), nó cần biết dest IP, dest MAC. Nếu nó chưa biết MAC, nó sẽ gửi ARP request broadcast ra địa chỉ FFFFFFFFFFFF, switch nhận gói này, học được MAC của PC1, sau đó sw broadcast ARP ra các port, PC2 nhận được và reply trở lại, và sw học được MAC của PC2. Lần sau PC1 trao đổi với PC2 hoặc PC khác trao đổi với 2 PC này thì sw sẽ forward nay do đã học được MAC đang ở port nào.
+ Bây giờ giả sử bỏ nguyên lý switching bằng MAC mà dùng khái niệm switching bằng IP : PC1 gửi data cho PC2, PC1 không cần biết PC2 ở đâu vì điều này đã có sw lo. Khi sw nhận được gói tin từ PC1 muốn gừi cho PC2 mà sw chưa biết PC2 ở port nào, sw sẽ cache gói tin này lại và gửi 1 ARP request, đây không phải cái ARP hỏi MAC như trên mà nó là ARP hỏi IP, ARP này có dest IP là 255.255.255.255 được sw broadcast ra tất cả các port để hỏi xem ai có IP là PC2. Khi PC2 nhận được ARP này nó sẽ trả lời lại cho SW rằng "tui là PC2 đây", và sw học được IP2, sau đó nó sẽ forward cái gói IP đang cache cho PC2. Lần sau nếu 2 PC này nói chuyện với nhau thì sw nó đã có bảng "IP cache-table" nên nó sẽ forward gói IP ra đúng port.
Vậy đâu là sự cần thiết phải đưa khái niệm MAC vào switching ?
Bài này mình không hỏi về nguyên lý hoạt động của switch, nguyên lý switching, ý nghĩa MAC, giao thức ARP, và v.v vì mình đã biết rồi. Nhưng mình chưa hiểu rõ tại sao cần đến khái niệm MAC trong quá trình switching mà sao không dùng luôn IP ? Mình không nói đến bỏ khái niệm MAC (MAC dùng định danh thiết bị khi tham gia vào mạng) mà chỉ nói đến loại bỏ MAC ra khỏi switching, switch không dùng MAC mà dùng IP thì có được hay không ? Khi switching dùng IP thì MAC sẽ được nằm trong gói IP, các thiết bị khác vẫn đọc được MAC để xác định thiết bị nào đã gửi. Tất nhiên khi thay đổi nguyên lý thì phải hoạt động của thiết bị cũng phải được design lại.
Nếu thay thế MAC bằng IP trong switching thì mình thấy có vẻ như mạng vẫn chạy được, vẫn switching và routing tốt, mà ta lại bớt đi nhiều khái niệm, nhiều thủ tục và giao thức.
Lấy ví dụ :
+ ở hiện tại : PC1 cần gửi message đến PC2 trong cùng lớp mạng (cùng 1 switch), nó cần biết dest IP, dest MAC. Nếu nó chưa biết MAC, nó sẽ gửi ARP request broadcast ra địa chỉ FFFFFFFFFFFF, switch nhận gói này, học được MAC của PC1, sau đó sw broadcast ARP ra các port, PC2 nhận được và reply trở lại, và sw học được MAC của PC2. Lần sau PC1 trao đổi với PC2 hoặc PC khác trao đổi với 2 PC này thì sw sẽ forward nay do đã học được MAC đang ở port nào.
+ Bây giờ giả sử bỏ nguyên lý switching bằng MAC mà dùng khái niệm switching bằng IP : PC1 gửi data cho PC2, PC1 không cần biết PC2 ở đâu vì điều này đã có sw lo. Khi sw nhận được gói tin từ PC1 muốn gừi cho PC2 mà sw chưa biết PC2 ở port nào, sw sẽ cache gói tin này lại và gửi 1 ARP request, đây không phải cái ARP hỏi MAC như trên mà nó là ARP hỏi IP, ARP này có dest IP là 255.255.255.255 được sw broadcast ra tất cả các port để hỏi xem ai có IP là PC2. Khi PC2 nhận được ARP này nó sẽ trả lời lại cho SW rằng "tui là PC2 đây", và sw học được IP2, sau đó nó sẽ forward cái gói IP đang cache cho PC2. Lần sau nếu 2 PC này nói chuyện với nhau thì sw nó đã có bảng "IP cache-table" nên nó sẽ forward gói IP ra đúng port.
Vậy đâu là sự cần thiết phải đưa khái niệm MAC vào switching ?
Comment