Như ta biết, Hub là một thiết bị hoạt động tại lớp 1 (Physical), nó không hiểu bất kỳ phần thông tin tiêu đề (Header) nào từ lớp trên, Nó đơn giản nhận các bits dữ liệu từ một cổng (interface) rồi chuyển tiếp và khuếch đại tín hiệu ra các cổng còn lại. Nó đơn giản chỉ là việc mở rộng các kết nối của mạng.
Một thiết bị thông minh và mạnh mẽ hơn được thay thế là Switch, hoạt động tại lớp 2 (DataLink). Trong bài học này, chúng ta sẽ tìm hiểu chi tiết về hoạt động của Switch, giải thích rõ hơn về quá trình đóng gói dữ liệu (Encapsulation) và cấu trúc thông tin của các tiêu đề (Header).
Quá trình đóng gói dữ liệu (Encapsulation)
1. Giả sử ở lớp giao vận (Transport) đã thiết lập kết nối TCP hoàn chỉnh, lớp ứng dụng gởi một yêu cầu xuống lớp giao vận. Lớp giao vận sẽ thực hiện đặt số hiệu cổng (Port number) nguồn và đích vào thông tin tiêu đề.
Lớp ứng dụng gởi dữ liệu xuống lớp giao vận
2. Lớp giao vận gởi dữ liệu (Segment) xuống cho lớp Internet để xử lý. Quá trình đóng gói diễn ra bằng cách thêm thông tin tiêu đề gồm địa chỉ IP nguồn và đích vào trước phần dữ liệu Segment.
Lớp giao vận gởi dữ liệu Segment xuống lớp Internet
3. Lớp 3 gởi dữ liệu Packet xuống lớp 2 (Liên kết dữ liệu) để xử lý. Lớp 2 thêm thông tin tiêu đề (ở đây là Ethernet header) với địa chỉ vật lý (MAC) nguồn và đích.
Sau đó, phần khung dữ liệu (Frame) tại lớp 2 sẽ được chuyển thành tín hiệu BITS (1 và 0) và gởi đi trên đường truyền.
Bây giờ, chúng ta có thể thấy điều gì xảy ra khi các bits dữ liệu gởi đến cổng của switch để đến được máy tính đích. Thông tin của Frame (Ethernet Header) tại Switch được minh họa như hình ảnh
Trong phần tiêu đề của Ethernet, có hai mẫu thông tin mà thiết bị switch sử dụng để xây dựng bảng địa chỉ vật lý (CAM) và quyết định chuyển tiếp ra cổng nào. Đó là địa chỉ MAC nguồn và MAC đích. Phần tiếp theo sẽ giới thiệu về cách hoạt động của Switch
Ban đầu, bảng địa chỉ vật lý (CAM - Content Addressable Memory) hoàn toàn trống
Ngay khi, các máy tính có nhu cầu trao đổi dữ liệu. Trong ví dụ của tôi, PC1 (MAC nguồn: 1111.1111.1111) bắt đầu gởi dữ liệu đển PC3 (MAC đích: 3333.3333.3333).
B1: PC1 gởi một khung dữ liệu (FRAME) tới PC3.
B2: SW1 nhận khung dữ liệu này tại cổng (port) 0/1. Nó đọc địa chỉ MAC nguồn và lưu địa chỉ này trên cổng mà nó nhận được vào trong bảng CAM
Lưu ý: Switch học địa chỉ MAC nguồn trong FRAME từ cổng mà nó nhận được.
B3: SW1 sau đó đọc địa chỉ MAC đích và sẽ cố gắng tìm cổng đích để chuyển tiếp FRAME này ra ngoài. Do địa chỉ MAC đích 3333.3333.3333 không được ánh xạ đến cổng nào trong bảng CAM, SW1 sẽ thực hiện đẩy FRAME này ra tất cả các cổng, ngoại trừ cổng nó đi vào (quá trình này gọi là FLOOD)
Ba nguyên nhân để SW quyết định FLOOD một khung dữ liệu:
- Địa chỉ MAC nguồn không xác định
- Địa chỉ MAC nguồn là địa chỉ quảng bá: FFFF.FFFF.FFFF
- Địa chỉ MAC nguồn là địa chỉ multicast.
B4: Máy tính PC3 với địa chỉ MAC 3333.3333.3333 là địa chỉ đích của FRAME này sẽ tiến hành xử lý và gởi ngược lại SW1, còn các máy tính khác sẽ loại bỏ FRAME này. Trong khi đó, SW2 học địa chỉ MAC nguồn (3333.3333.3333) nhận được từ cổng Fa0/12 và lưu nó vào bảng CAM. Rồi nó cũng tiến hành đẩy ra tất cả các cổng.
B5: PC3(3333.3333.3333) trả lời cho PC1(1111.1111.1111). SW2 nhận một Frame với MAC nguồn 3333.3333.3333 trên cổng Fa0/2, nó lưu vào bảng CAM. Tại thời điểm nó biết MAC đích được lưu trên cổng Fa0/12 nên tiến hành đẩy Frame ra cổng này luôn mà không thực hiện FLOOD nữa.
Tiếp tục quá trình như vậy, các Switch sẽ học đầy đủ thông tin về địa chỉ MAC ánh xạ với từng cổng của nó. Thông tin này được lưu trong bảng CAM 5 phút (300 giây) nếu không có quá trình thay đổi nào thì nó sẽ bị xóa.
Trên đây, chúng ta đã học đầy đủ về quá trình học địa chỉ MAC của switch. Switch hoạt động thông minh hơn, tuy nhiên lại phát sinh nhiều vấn đề mới. Trong chuỗi bài tiếp theo, chúng ta sẽ cùng đi phân tích kỹ hơn về những vấn đề đó. Hẹn gặp lại