Địa chỉ TL; DR> MAC là thành phần cấp thấp của mạng Ethernet (và một số tiêu chuẩn tương tự khác, chẳng hạn như WiFi). Chúng cho phép một thiết bị giao tiếp với một máy trên mạng vật lý cục bộ (LAN) và không thể định tuyến qua Internet - vì về lý thuyết, phần cứng vật lý có thể được cắm ở bất kỳ đâu trên thế giới.
Ngược lại, địa chỉ IP bao phủ toàn bộ internet và các bộ định tuyến sử dụng chúng để tìm nơi gửi dữ liệu ngay cả khi cần nhiều bước nhảy để đến đích - nhưng chúng không hữu ích trong việc can thiệp vào phần cứng vật lý trên mạng cục bộ của bạn.
Nếu chúng ta từng tìm thấy một tiêu chuẩn tốt hơn Ethernet, nó có thể không sử dụng địa chỉ MAC nhưng lưu lượng IP từ internet vẫn có thể truyền qua nó, ngay cả khi những người khác trên internet chưa bao giờ nghe về nó.
Nếu chúng ta từng tìm thấy một tiêu chuẩn tốt hơn IP (ví dụ IPv6 nếu tất cả các địa chỉ IPv4 hết), hầu hết phần cứng Ethernet có thể mang loại lưu lượng mới mà không cần sửa đổi - và một bản cập nhật phần mềm / phần mềm đơn giản sẽ khắc phục hầu hết các phần còn lại.
Cần có địa chỉ MAC để tạo chức năng mạng Ethernet (hoặc wifi) cục bộ. Chúng cho phép một thiết bị mạng thu hút sự chú ý của một thiết bị được kết nối trực tiếp, mặc dù kết nối vật lý được chia sẻ. Điều này có thể quan trọng khi hàng ngàn thiết bị được kết nối với nhau trong một tổ chức. Họ không phục vụ chức năng trên internet rộng hơn.
Để thực sự hiểu câu trả lời cho câu hỏi này, bạn cần hiểu mô hình OSI (đôi khi được gọi là mô hình 7 lớp) .
Để giao tiếp diễn ra giữa 2 ứng dụng chạy trên các máy riêng biệt không có kết nối vật lý trực tiếp, rất nhiều công việc cần phải diễn ra.
Vào thời xa xưa, mỗi ứng dụng sẽ biết chính xác những hướng dẫn mã máy nào cần được chạy để tạo ra tín hiệu phù hợp sẽ đạt được và có thể được giải mã bởi ứng dụng ở phía xa. Tất cả các giao tiếp đều có hiệu quả từ điểm tới điểm và phần mềm phải được viết để phù hợp với tình huống chính xác mà nó sẽ được triển khai. Rõ ràng, đó là không bền vững.
Thay vì điều này, vấn đề kết nối mạng được chia thành các lớp và mỗi lớp biết cách nói chuyện với lớp phù hợp trên một máy từ xa và cách giao tiếp với lớp bên dưới (và đôi khi ở trên) trên máy cục bộ của nó. Nó không biết gì về bất kỳ lớp nào khác - vì vậy trình duyệt web của bạn không cần quan tâm liệu nó có chạy trên máy sử dụng vòng mã thông báo, mạng ethernet hoặc mạng wifi hay không - và chắc chắn không cần biết phần cứng nào Máy từ xa sử dụng.
Để thực hiện công việc này, mô hình 7 lớp sử dụng một hệ thống giống như các phong bì lồng nhau; ứng dụng tạo dữ liệu của nó và bọc nó trong một phong bì để Hệ điều hành phân phối. HĐH kết thúc điều này trong một phong bì khác và chuyển nó đến trình điều khiển Mạng. Trình điều khiển mạng kết thúc điều này trong một phong bì khác và đặt nó vào cáp vật lý. Và như vậy.
Lớp dưới cùng, lớp 1 , là lớp vật lý. Đây là lớp dây và bóng bán dẫn và sóng vô tuyến, và ở lớp này, giao tiếp chủ yếu chỉ là một luồng của những cái và noughts. Dữ liệu đi khắp mọi nơi được kết nối vật lý. Bạn cắm cổng mạng máy tính của bạn vào bộ chuyển mạch bằng cáp CAT-5.
Lớp 2 là lớp liên kết dữ liệu. Điều này cung cấp một số cấu trúc cho các cấu trúc và noughts, một số khả năng phát hiện và sửa lỗi và một số dấu hiệu cho biết thiết bị nào được kết nối vật lý (kết nối vật lý ở đây thực sự có thể qua wifi) nên chú ý đến thông báo. Đây là lớp mà địa chỉ MAC phát huy tác dụng và chúng tôi sẽ quay lại sau. Nhưng địa chỉ MAC không phải là khả năng duy nhất ở lớp này. Ví dụ, các mạng vòng mã thông báo cần triển khai liên kết dữ liệu khác.
Lớp 3 là lớp Mạng. Đây là lớp mà IP hoạt động (mặc dù nó không phải là giao thức lớp mạng duy nhất) và đây là lớp cho phép các máy tính gửi tin nhắn có thể đến bất kỳ máy nào ở bất kỳ đâu trên "mạng". Không cần phải có kết nối trực tiếp giữa các máy được đề cập.
Lớp 4-7 là các giao thức cấp cao hơn. Họ ngày càng rời xa phần cứng và đến gần ứng dụng hơn. TCP, ví dụ, nằm trên đỉnh IP và cung cấp các cơ chế tự động gửi lại tin nhắn khi chúng bị mất.
Vì vậy, địa chỉ MAC hoạt động ở Lớp 2 và cho phép 2 máy được kết nối vật lý với nhau để gửi tin nhắn sẽ bị bỏ qua bởi các máy khác có cùng kết nối vật lý.
Giả sử tôi có một ứng dụng muốn gửi một số dữ liệu tới máy có địa chỉ IP 8.8.8.8
Lớp 3 kết thúc dữ liệu trong một phong bì chứa, trong số những thứ khác, địa chỉ IP 8.8.8.8 và sau đó trao dữ liệu này cho lớp 2.
Lớp 2 xem xét địa chỉ IP này và quyết định máy nào được kết nối trực tiếp với nó có thể xử lý thông báo này. Nó sẽ có một bảng tra cứu lựa chọn các địa chỉ IP được kết nối trực tiếp cùng với địa chỉ MAC tương ứng của card mạng trong máy đó. Bảng tra cứu này được xây dựng bằng giao thức có tên ARP, cho phép card mạng đặt câu hỏi cho các thiết bị được kết nối trực tiếp khác. Ethernet dành một địa chỉ MAC đặc biệt, FF: FF: FF: FF: FF: FF, cho phép một thiết bị nói chuyện với tất cả các thiết bị được kết nối vật lý.
Nếu địa chỉ IP nằm trong bảng (hoặc có thể được phân giải thông qua ARP), nó sẽ bọc phong bì Lớp 3 trong phong bì Lớp 2 với địa chỉ MAC trong tiêu đề mới, sau đó chuyển toàn bộ gói cho phần cứng ở Lớp 1 Thẻ mạng có địa chỉ MAC phù hợp sẽ nhận được tin nhắn và trình điều khiển mạng sẽ mở phong bì Lớp 2 và chuyển nội dung đến bất kỳ phần nào của hệ điều hành dự kiến sẽ nhận được tin nhắn tại địa chỉ IP cụ thể.
Ngoài ra, nếu địa chỉ IP không có trên mạng cục bộ, phong bì mới sẽ có địa chỉ MAC của cổng mặc định (tức là Bộ định tuyến) được định cấu hình cho giao diện mạng này và phần cứng sẽ vận chuyển gói đến bộ định tuyến.
Bộ định tuyến thông báo địa chỉ MAC của chính nó trong phong bì lớp 2 và mở gói cấp 2. Nó xem địa chỉ IP trên phong bì cấp 3 và tìm ra thông điệp cần gửi tiếp theo, có lẽ sẽ là bộ định tuyến tại ISP của bạn. Nếu bộ định tuyến sử dụng NAT (hoặc tương tự), nó thậm chí có thể sửa đổi phong bì cấp 3 tại thời điểm này, để giữ địa chỉ IP nội bộ của bạn ở chế độ riêng tư. Sau đó, nó sẽ bọc phong bì cấp 3 trong một phong bì cấp 2 mới được gửi đến địa chỉ MAC của bộ định tuyến của ISP và gửi tin nhắn đến đó.
Quá trình loại bỏ phong bì bên ngoài và bọc nội dung trong một phong bì mới được gửi đến bước tiếp theo trong chuỗi sẽ tiếp tục cho đến khi tin nhắn đến máy đích.
Các phong bì sau đó sẽ tiếp tục bị xé toạc khi tin nhắn đi ngược lại các lớp cho đến khi cuối cùng nó đến được người nhận, nó sẽ là một ứng dụng ở đâu đó, hy vọng, sẽ biết phải làm gì với tin nhắn - nhưng sẽ không biết làm thế nào thông báo đã nhận được ở đó cũng không thực sự là tất cả các bước cần thiết để có được phản hồi trở lại máy ban đầu.
Nhưng tất cả đều hoạt động, gần giống như phép thuật!
Lưu ý rằng các bộ chuyển mạch mạng có thể sử dụng địa chỉ MAC để tối ưu hóa lưu lượng mạng. Mặc dù một trung tâm ethernet chỉ đơn giản chuyển tiếp tất cả lưu lượng truy cập đến tất cả các cổng của nó, nhưng ngược lại, một công tắc chỉ có thể chuyển tiếp lưu lượng đến cổng duy nhất mà địa chỉ MAC đích của gói được kết nối. Điều này làm tăng băng thông hiệu quả của mạng; bằng cách nhắm mục tiêu các cổng cụ thể, công tắc sẽ tránh lưu lượng chuyển tiếp trên các phân đoạn không cần thiết của mạng. Công tắc sẽ sử dụng ARP hoặc đánh hơi gói để xác định thiết bị nào được kết nối với cổng nào. Chuyển hoàn toàn bỏ qua nội dung của các gói lớp 2.