Việc sử dụng chính xác của một địa chỉ MAC là gì?


126

Tôi hiểu rằng các địa chỉ IP được phân cấp, để các bộ định tuyến trên internet biết hướng nào để chuyển tiếp một gói. Với các địa chỉ MAC, không có cấu trúc phân cấp và do đó không thể chuyển tiếp gói. Vì vậy, địa chỉ MAC không được sử dụng để chuyển gói.

Tôi không nghĩ rằng nó ngồi đó không có lý do. Vì vậy, câu hỏi của tôi là, chính xác địa chỉ MAC xuất hiện trong quá trình chuyển gói?

Câu trả lời:


57

Đị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.


Chào! cảm ơn vì câu trả lời Theo như tôi đã đọc, câu trả lời của bạn là tốt nhất. Thật tuyệt vời nếu bạn có thể bao gồm một số khái niệm khác như ARP và NAT trong kịch bản của bạn.
Vishnu Vivek

1
Đã thêm tham chiếu đến ARP và chuyển mạch mạng. Tôi không nghĩ NAT có liên quan gì đến địa chỉ MAC, là chức năng của lớp 3 ...
Bill Michell

@BillMichell: Trong IPv6, MAC hoặc ID cục bộ ('phần cứng') khác có thể được sử dụng để soạn IP.
Luciano

Câu trả lời là Wiki cộng đồng. Bạn có thể chỉnh sửa nó để bao gồm thông tin bổ sung này nếu bạn nghĩ rằng nó sẽ giúp trả lời câu hỏi của OP.
Bill Michell

Điều này cần một TL; DR.
AJMansfield

113

Địa chỉ MAC được sử dụng để làm gì?

Địa chỉ MAC là những điều cơ bản ở mức độ thấp làm cho mạng dựa trên ethernet cục bộ của bạn hoạt động. Cục bộ có nghĩa là các thiết bị mạng được kết nối trực tiếp qua cáp hoặc bằng WiFi hoặc qua một trung tâm mạng hoặc chuyển mạch mạng.

Mỗi card mạng có một địa chỉ MAC duy nhất. Các gói được gửi trên ethernet luôn đến từ địa chỉ MAC và được gửi đến địa chỉ MAC. Nếu bộ điều hợp mạng đang nhận gói tin, thì nó đang so sánh địa chỉ MAC đích của gói với địa chỉ MAC của bộ điều hợp. Nếu địa chỉ trùng khớp, gói được xử lý, nếu không nó sẽ bị loại bỏ.

Có các địa chỉ MAC đặc biệt, ví dụ một địa chỉ là ff: ff: ff: ff: ff: ff, là địa chỉ quảng bá và địa chỉ mỗi bộ điều hợp mạng trong mạng.

Làm thế nào để địa chỉ IP và địa chỉ MAC làm việc cùng nhau?

IP là một giao thức được sử dụng trên một lớp trên ethernet. Một giao thức khác chẳng hạn sẽ là IPX. IP cho phép kết nối các mạng cục bộ khác nhau và do đó hình thành một mạng công ty hoặc internet toàn cầu.

Khi máy tính của bạn muốn gửi một gói đến một số địa chỉ IP xxxx, thì kiểm tra đầu tiên là liệu địa chỉ đích có nằm trong cùng mạng IP với chính máy tính đó không. Nếu xxxx nằm trong cùng một mạng, thì IP đích có thể được truy cập trực tiếp, nếu không thì gói cần phải được gửi đến bộ định tuyến được cấu hình.

Cho đến nay mọi thứ dường như trở nên tồi tệ hơn, bởi vì bây giờ chúng ta có hai địa chỉ IP: một là địa chỉ đích của gói IP gốc, hai là IP của thiết bị mà chúng ta nên gửi gói (bước tiếp theo, hoặc là cuối cùng đích hoặc bộ định tuyến).

Vì ethernet sử dụng địa chỉ MAC, người gửi cần lấy địa chỉ MAC của bước nhảy tiếp theo. Có một giao thức ARP đặc biệt (giao thức phân giải địa chỉ) được sử dụng cho điều đó. Khi người gửi đã lấy địa chỉ MAC của bước nhảy tiếp theo, anh ta ghi địa chỉ MAC đích đó vào gói và gửi gói.

ARP hoạt động như thế nào?

Bản thân ARP là một giao thức trên ethernet, như IP hoặc IPX. Khi một thiết bị muốn biết địa chỉ MAC cho một địa chỉ IP nhất định, nó sẽ gửi một gói đến địa chỉ MAC quảng bá hỏi "Ai có địa chỉ IP yyyy?" Tất cả các thiết bị đều nhận được gói đó, nhưng chỉ có thiết bị có địa chỉ IP yyyy sẽ phản hồi với gói "Đó là tôi". Thiết bị hỏi nhận được câu trả lời và bây giờ biết rằng địa chỉ MAC nguồn của gói ARP là địa chỉ MAC phù hợp để sử dụng. Tất nhiên kết quả sẽ được lưu vào bộ nhớ cache, vì vậy thiết bị không cần phải giải quyết địa chỉ MAC mỗi lần.

định tuyến

Tôi gần như quên đề cập: không có định tuyến dựa trên địa chỉ MAC. Địa chỉ ethernet và MAC cấp thấp chỉ có thể tiếp cận mọi thiết bị trên cùng một mạng (đã tắt hoặc không dây). Nếu bạn có hai mạng có bộ định tuyến ở giữa, bạn không thể có thiết bị trong mạng A gửi gói đến địa chỉ MAC của thiết bị trong mạng B. Không có thiết bị nào trong mạng A có địa chỉ MAC của thiết bị trong mạng B, vì vậy a gói đến địa chỉ MAC này sẽ bị loại bỏ bởi tất cả các thiết bị trong mạng A (cũng bởi bộ định tuyến).

Định tuyến được thực hiện ở cấp độ IP. Nhìn đơn giản, bộ định tuyến chỉ thực hiện những gì tôi mô tả ở trên trong phần "Làm thế nào để địa chỉ IP và địa chỉ MAC hoạt động cùng nhau?". Bộ định tuyến sẽ nhận các gói cho địa chỉ MAC của riêng nó nhưng cho một địa chỉ IP khác. Sau đó anh ta sẽ kiểm tra xem anh ta có thể trực tiếp đến địa chỉ IP mục tiêu hay không. Nếu vậy, anh ta gửi gói đến mục tiêu. Mặt khác, bộ định tuyến cũng có một bộ định tuyến ngược được cấu hình và sẽ gửi gói đến bộ định tuyến đó.

Tất nhiên bạn có thể có nhiều bộ định tuyến được cấu hình. Bộ định tuyến gia đình của bạn sẽ chỉ có một bộ định tuyến ngược được định cấu hình, nhưng trong mạng trục chính, các bộ định tuyến lớn có các bảng định tuyến lớn để họ biết các cách tốt nhất cho tất cả các gói.

Các trường hợp sử dụng khác cho địa chỉ MAC

  1. Các bộ chuyển mạch mạng lưu trữ một danh sách các địa chỉ MAC được nhìn thấy ở mọi cổng và chỉ chuyển tiếp các gói đến các cổng cần xem gói.

  2. Các điểm truy cập không dây thường sử dụng địa chỉ MAC để kiểm soát truy cập. Họ chỉ cho phép truy cập các thiết bị đã biết (địa chỉ MAC là duy nhất và xác định thiết bị) với cụm mật khẩu chính xác.

  3. Máy chủ DHCP sử dụng địa chỉ MAC để xác định thiết bị và cung cấp cho một số thiết bị địa chỉ IP cố định.


16
+1 để thực sự trả lời câu hỏi theo cách mà những người chưa biết câu trả lời có thể hiểu.
lông mịn

Tôi không thể không cảm thấy sự thôi thúc tạo ra một sơ đồ / đồ họa thông tin tuyệt vời bằng cách nào đó, cách tương tác MAC / IP khá thú vị!
NRGdallas

1
câu trả lời hay chỉ là một chi tiết: Địa chỉ MAC cũng được sử dụng cho các thiết bị không phải Ethernet và bạn đã mô tả về cơ bản giữ cho bất kỳ lớp liên kết dữ liệu nào được sử dụng với ngăn xếp IP
kriss

Đáng chú ý về MAC Wi-Fi: Mặc dù chúng thường là duy nhất và có thể được sử dụng để nhận dạng thiết bị, chúng rất dễ bị giả mạo và gửi trong không trung. Nếu không có mã hóa khác / chứng thực được sử dụng trên các kết nối, hoặc nếu cơ chế mã hóa / chứng thực khác (s) là yếu (ví dụ: WEP), nó là rất tầm thường cho một kẻ tấn công để mạo danh một thiết bị cho phép và tham gia mạng.
Iszi

1
@Rick Bạn nói đúng, IP đích cho kết nối không thay đổi. Nhưng trong đoạn trích dẫn tôi đã nói về đích đến trực tiếp của gói - có thể là bộ định tuyến và bộ định tuyến có thể thay đổi trong quá trình kết nối. Về bình luận thứ hai của bạn, tôi đã thay đổi văn bản thành "địa chỉ MAC nguồn của gói ARP". Tôi hy vọng điều đó rõ ràng hơn.
Werner Henze

47

Nói chung, Địa chỉ MAC (Địa chỉ điều khiển truy cập phương tiện) là định danh của các thiết bị trong mạng. Vì vậy, mọi NIC (bộ điều khiển giao diện mạng được tìm thấy trong bộ định tuyến, PC, máy in mạng, máy chủ, v.v.) đều có địa chỉ MAC. Một số máy chủ có nhiều card mạng được tích hợp và do đó có nhiều địa chỉ MAC. Địa chỉ MAC dài 6 Byte (6 octet). Trái là Byte có ý nghĩa nhất và phải là Byte ít quan trọng nhất. Như bạn có thể thấy trong hình bên dưới, 3 byte đầu tiên là Mã định danh duy nhất có tổ chức . Điều này cho thấy nhà sản xuất đã tạo ra thiết bị này.

Dưới đây là danh sách Định danh duy nhất về tổ chức : Chuẩn.ieee.org

Đây là một giải pháp thay thế ở trên: MAC-Vendor-Tra cứu

Một vài ví dụ về các nhà sản xuất phổ biến được biết đến:

  • 00-05-5D (Hệ thống D-Link Inc.)
  • 00-09-5B (Netgear Inc.)
  • 00-E0-4C (Tập đoàn bán dẫn Realtek)
  • 00-E0-4F (Cisco Systems Inc.)
  • 00-E0-64 (Điện tử Samsung)

3 byte cuối cùng (3 octet) được chỉ định ngẫu nhiên bởi nhà sản xuất.

Như pjc50 đã nêu chính xác, địa chỉ MAC trong mạng Ethernet giúp các thiết bị chuyển mạch quyết định gói nào sẽ gửi ở đâu. Ngoài ra còn có một địa chỉ Broadcast-MAC. ff: ff: ff: ff: ff: ff được sử dụng cho Địa chỉ Broadcast-MAC. Lưu ý rằng Địa chỉ MAC có thể được thay đổi, vì vậy hãy cẩn thận khi sử dụng nó làm định danh thiết bị xác định! Địa chỉ MAC cũng được sử dụng với giao thức ARP (Giao thức phân giải địa chỉ). Vì vậy, cách thức hoạt động của nó, PC A gửi Yêu cầu ARP đến PC B với Địa chỉ IP, Địa chỉ MAC, Địa chỉ IP của người nhận và địa chỉ quảng bá được đề cập ở trên (ff: ff: ff: ff: ff : ff). Sau đó, PC B kiểm tra xem Packet có được gửi cho anh ta hay không. Nếu có, thì PC B sẽ gửi Địa chỉ MAC, Địa chỉ IP, Địa chỉ MAC của người nhận và Địa chỉ IP của người nhận trở lại. Các thiết bị khác loại bỏ gói.

Cả PC A và B thường lưu kết nối thành công trong cái gọi là ARP-Cache. Cách PC lưu kết nối khác nhau từ thiết bị này sang thiết bị khác. Nếu bạn không biết Địa chỉ IP thì bạn có thể nhận Địa chỉ IP bằng Giao thức phân giải địa chỉ ngược (RARP). Với Rpeg, thiết bị sẽ liên lạc với một máy khách trung tâm và yêu cầu nó cho Địa chỉ IP. Nhưng phương pháp này ngày nay hầu như không được sử dụng.

Các công nghệ sau sử dụng định dạng định danh MAC-48:

  • Ethernet
  • Mạng không dây 802.11
  • Bluetooth
  • Vòng mã thông báo IEEE 802.5
  • hầu hết các mạng IEEE 802 khác
  • FDDI
  • ATM (chỉ chuyển đổi kết nối ảo, như một phần của địa chỉ NSAP) Kênh sợi quang và SCSI đính kèm nối tiếp (như một phần của World Wide Name)

4
Chính xác hơn "mỗi thiết bị (...) có địa chỉ MAC Addresses.", Mỗi NICmột địa chỉ MAC . (Không sử dụng khả năng đặt địa chỉ MAC tùy chỉnh vào tài khoản.) Không phải tất cả các máy in đều có thẻ mạng tích hợp và nhiều máy chủ có nhiều hơn một thẻ mạng và do đó có nhiều hơn một địa chỉ MAC.
một CVn

2
Hãy nói rằng PC-1 gửi Gói đến PC-2. Bây giờ, Switch chỉ đọc Địa chỉ MAC của PC-1 và lưu nó vào bảng. Nếu bạn muốn biết thêm thông tin về cách thức hoạt động của nó, hãy đọc phần này: Cách thức hoạt động của LAN Switch :)
Meintjes 24/07/13

3
Một điểm khác là địa chỉ MAC là cách mà NIC quyết định loại bỏ cái gì và gửi cái gì cho bộ xử lý để xử lý. Một khung Ethernet gặp phải trên dây có địa chỉ MAC đích XOR'd với địa chỉ MAC MAC và nếu kết quả là 0 thì đó là khung dành cho NIC này.
bbayles

7
-1: Câu hỏi được hỏi về cách sử dụng địa chỉ MAC, không phải địa chỉ MAC là gì. Phần duy nhất trong câu trả lời của bạn giải quyết câu hỏi là danh sách dấu đầu dòng ở cuối và nó không đi sâu vào chi tiết.
Kevin

4
Hình ảnh được lấy từ wikipedia: en.wikipedia.org/wiki/File:MAC-48_Address.svg , hình ảnh được cấp phép theo commons sáng tạo phải được gán cho tác giả của họ khi sử dụng.
Étienne

24

Chúng được sử dụng để truyền gói: trên mạng Ethernet, có một số thiết bị và địa chỉ MAC chỉ định thiết bị nào sẽ nhận gói. Các bộ chuyển mạch Ethernet sẽ sử dụng nó để chọn cổng nào để gửi một gói tin nhận được.


5
Có thể thú vị để lưu ý rằng Ethernet ban đầu là một phương tiện xe buýt, nơi tất cả các máy vật lý chia sẻ cùng một phương tiện (điều này vẫn đúng với các mạng không dây). Vì vậy, logic nó hoạt động như thế.
LawrenceC

và vẫn đúng với các mạng vẫn sử dụng các trung tâm :)
Doon

do đó, các thiết bị chuyển mạch chỉ là một cơ sở (thực sự trở nên phổ biến rộng rãi với mạng LAN RJ-45) mà chúng ta có thể và có mạng IP mà không cần chúng (sử dụng trung tâm hoặc 802.11)
kriss

7

Quên hệ thống phân cấp trong trường hợp này, nó không phải là một vấn đề rất quan trọng.

Địa chỉ MAC là địa chỉ cho lớp 2 (lớp liên kết) trong các mô hình ISO / OSI hoặc TCP / IP. Địa chỉ IP là từ lớp 3 (Lớp mạng) trong cùng một mô hình.

Trong mạng lớp 2, ví dụ, mạng Ethernet thông thường, tồn tại miền va chạm, trong đó tất cả các thiết bị được kết nối có thể nhận tất cả các khung (dữ liệu đơn vị lớp 2) từ bất kỳ điểm cuối nào. Nhưng không ai ngoài mạng có thể nhận được các khung này. Địa chỉ MAC là địa chỉ trong các miền này.

Các gói là dữ liệu đơn vị lớp 3, thông thường, các gói IP. Họ đi qua một hoặc nhiều miền va chạm. Địa chỉ IP là địa chỉ trong miền này.

Công tắc là thiết bị lớp 2 và chuyển tiếp khung bằng bảng địa chỉ MAC. Bộ định tuyến là thiết bị lớp 3 và chúng chuyển tiếp các gói bằng bảng địa chỉ IP.


6

Ethernet giả định máy tính khác (MAC khác) mà nó muốn nói chuyện có thể truy cập trực tiếp từ bộ điều hợp mạng. IP thì không. IP giả định rằng nó có thể tiếp cận bất kỳ IP nào khác trên toàn thế giới và nếu nó không thể truy cập nó trên mạng con hiện tại, một bộ định tuyến sẽ mang nó đến đó, NAT mặc dù vậy. Khái niệm cổng không tồn tại trong Lớp 2 hoặc Ethernet.

Nếu bạn có một số máy được kết nối với một bộ chuyển mạch và sẽ không cần phải trao đổi lưu lượng truy cập với các mạng / Internet khác thông qua bộ định tuyến, thì bạn thực sự không cần phải có IP và chạy. Tất nhiên, một ứng dụng sẽ phải thực hiện hoặc cung cấp giao thức của riêng họ trên lớp 2, vì hầu như tất cả các hệ điều hành và ứng dụng đều cho rằng bạn luôn muốn sử dụng TCP / IP.

Luôn nhớ 'Internet' trong IP có nghĩa là 'liên kết mạng' nghĩa là nó thực sự quan tâm đến việc có lưu lượng truy cập giữa các mạng nhiều hơn trong mạng, mặc dù rõ ràng nó cũng có thể được sử dụng cho điều đó.


Đoạn đầu tiên là câu trả lời hoàn hảo! Chiếu sáng!
Milind R

6

Địa chỉ MAC được sử dụng trên chuyển giao vật lý. Một bộ chuyển đổi ethernet không biết gì về IP. Vì vậy, bộ điều hợp ethernet sử dụng địa chỉ MAC để đánh địa chỉ người nhận gói dữ liệu.

Nếu bộ điều hợp ethernet sẽ biết bất cứ điều gì về IP thì chúng tôi phải nâng cấp tất cả phần sụn của chúng tôi để chuyển sang một giao thức mới (như IPv4 thành IPV6).

Ngoài ra địa chỉ MAC có một số thông tin trong đó về nhà sản xuất trong đó.


3
Bộ định tuyến không sử dụng địa chỉ MAC để định tuyến bất cứ thứ gì. Họ sử dụng địa chỉ IP. Các trung tâm sao chép lưu lượng truy cập không được sửa đổi ra khỏi các cổng của chúng, nhưng điều này sẽ được gọi là bắc cầu, vì lưu lượng không đi qua một mạng khác, nhưng trên cùng một mạng.
LawrenceC

5

Nó được sử dụng khi ARP (Giao thức phân giải địa chỉ) cho IPv4 hoặc NDP (Giao thức khám phá hàng xóm) cho IPv6, dịch Địa chỉ IP thành địa chỉ MAC để xác định máy chủ duy nhất mà khung sẽ được gửi đến.


Điều này khá gần, nhưng nó không bao gồm tất cả các cách sử dụng. Đó là cách MAC liên quan đến TCP / IP, nhưng MAC được sử dụng nhiều hơn thế. Đây là câu trả lời đầu tiên tôi không đưa ra -1 mặc dù (làm việc từ cuối trang trở lên).
Đánh dấu Henderson

@Mark Henderson Cảm ơn những lời chỉ trích. Vâng, tôi chỉ cố gắng trả lời câu hỏi How MAC addresses were used in packet transfervà sau đó tôi cho rằng nó ở cấp độ Ethernet. Và vâng, đó là một câu trả lời đơn giản, nhưng tôi đang trả lời ở cấp độ phù hợp với trình độ của mình :)
Jesper Jensen

3

Để hoàn thành câu trả lời của người khác, tôi sẽ thêm rằng địa chỉ MAC thậm chí còn quan trọng hơn đối với các bộ định tuyến so với các bộ chuyển mạch. Điều tôi muốn nói quan trọng hơn là các thiết bị chuyển mạch không thực sự cần thiết cho mạng IP tồn tại. Nếu bạn nhìn ngược 20 năm (trước RJ-45) Mạng IP cục bộ hoạt động hoàn hảo mà không cần chuyển mạch, mạng ethernet không định tuyến chỉ đơn giản là kết nối các thiết bị trên cùng một dây, (ví dụ, hãy xem công nghệ ethernet X base-T).

Mặt khác, các mạng IP được phát minh để hỗ trợ định tuyến và dựa vào các lược đồ địa chỉ MAC và IP.

Các gói định tuyến trong mạng IP có nghĩa là khi máy đích không thể được truy cập trực tiếp, trước tiên nó sẽ được gửi đến một máy khác (cổng) gần với mục tiêu IP cuối cùng.

Về mặt tiêu đề gói mạng, điều đó có nghĩa là một gói được gửi đến một cổng sẽ có mục tiêu trong tiêu đề cấp ethernet, địa chỉ MAC của cổng, tiêu đề cấp IP được giữ nguyên.

Bạn cũng nên lưu ý rằng các địa chỉ MAC thường có nghĩa là ngay bây giờ hoặc MAC-48 (địa chỉ thiết bị vật lý) hoặc EUI-48 (địa chỉ thiết bị logic) hoặc thậm chí là 8 byte địa chỉ EUI-64 được sử dụng trong các mạng lớn hơn. Trong lịch sử MAC được phát minh bởi Xerox cho công nghệ Ethernet và sau đó được sử dụng lại cho các công nghệ vận chuyển mạng khác (802.11, Bluetooth, FibreChannel, BlueTooth) cần xác định một thiết bị.

Như tôi đã nói, bạn có thể sử dụng lớp 2 khác thay vì ethernet, nhưng hầu hết sử dụng địa chỉ MAC làm định danh mạng và lược đồ tương ứng MAC / IP cơ bản được giữ và bạn vẫn có thể sử dụng ARP. Theo như tôi biết thì tất cả các ngăn xếp IP đều phụ thuộc vào bảng tương ứng giữa địa chỉ MAC và Địa chỉ IP.

Một số loại định danh nút thiết bị khác tồn tại cho các ngăn xếp không IP. Ví dụ, X.25 không phụ thuộc vào địa chỉ MAC, nhưng trên các kênh ảo được thiết lập trên cơ sở kết nối hoặc Thiết bị ATM được xác định trong các mạng ATM sử dụng SNPA. Nhưng cả X.25 hay ATM đều không phải là ngăn xếp IP (và thậm chí ATM sử dụng định dạng địa chỉ MAC làm một phần của SNA, tương đương với địa chỉ IP cho ATM).


Bộ định tuyến không quan tâm đến địa chỉ MAC. Họ quan tâm đến việc gán mạng con cho mỗi ít nhất 2 NIC của họ, nhưng không thực sự về các địa chỉ MAC. Họ chuyển tiếp (tức là sao chép) lưu lượng truy cập từ IP này sang IP khác, không phải từ IP sang MAC hoặc bất cứ thứ gì tương tự.
LawrenceC

4
@ultrasawblade, tuyên bố của bạn là vô lý . Nếu một bộ định tuyến được kết nối với mạng Ethernet, thì nó phải giao tiếp bằng giao thức Ethernet. Các gói IP sẽ được gói gọn trong Khung Ethernet. Điều đó có nghĩa là biết địa chỉ mac của tất cả các hệ thống ** máy chủ Ethernet trực tiếp ** là một điều hoàn toàn bắt buộc. Một thiết bị lớp 3 không kỳ diệu chỉ giao tiếp trên giao thức lớp 3, nó phải gói gọn giao thức lớp 3 trong giao thức lớp 2, sau đó được truyền qua môi trường lớp 1.
Zoredache

3
Tôi không đồng ý với câu đầu tiên của bạn - chúng không "quan trọng" đối với các bộ định tuyến hơn các bộ chuyển mạch - tất cả chúng đều có tầm quan trọng như nhau trong toàn bộ mạng Ethernet.
Mark Henderson

1
Bạn có thể thay thế lớp 2 bên dưới bằng một cái gì đó hoàn toàn khác (mặc dù tôi không biết gì) và IP vẫn sẽ hoạt động như nhau. Giao thức IP (Lớp 3) không quan tâm nếu các máy chủ riêng lẻ được xử lý bên dưới bởi MAC hoặc một số lược đồ khác. Tất nhiên cần phải duy trì ánh xạ IP sang MAC - nhưng thật khó để biết ARP có thực sự "thuộc về" Lớp 3 hay Lớp 2. Điểm quan trọng là giao thức lớp 2 không phải là Ethernet và IP không quan tâm / cần biết giao thức lớp 2 là gì.
LawrenceC

2
@Mark Henderson: khi tôi già tôi nhớ một thời gian không có bất kỳ công tắc nào xung quanh. Chúng không thực sự là một phần quan trọng của mạng IP thiết bị có thể hoạt động mà không cần chuyển mạch. Các thiết bị chuyển mạch chỉ sử dụng bố trí mạng dữ liệu từ trước. Nếu chúng ta hiện có chúng ở khắp nơi là hậu quả của công nghệ điểm-điểm thay thế cho xe buýt cũ. Nói cách khác: địa chỉ MAC không được phát minh để làm cho các công tắc hoạt động. Mặt khác, các mạng IP được phát minh cho mục đích định tuyến, do đó mối quan hệ giữa MAC và IP là rất quan trọng.
kriss

2

Nghĩ lại những ngày trước khi chuyển đổi (trung tâm).

Nếu mọi người là máy tính, thì địa chỉ MAC là tên của họ.

Giả vờ nhiều người (các máy tính) đang ở trong cùng một cuộc gọi điện thoại. Mọi người đang nói chuyện cùng một lúc.

BẠN (một máy tính) nghe TẤT CẢ cuộc trò chuyện này, nhưng bạn không biết bạn nên nghe gì, UNTIL có người nói tên của bạn (địa chỉ MAC của bạn) khi bắt đầu câu (một gói).

"FRED, THERE IS ICE CREAM!"

Tất nhiên, bạn cũng nghe câu được gửi đến địa chỉ phát sóng . Chỉ cần coi đó là một người la hét,

"EVERYONE, THERE IS ICE CREAM!"

Càng nhiều người (máy tính) nhận được cuộc gọi hội nghị, bạn càng phải lọc ra. Công nghệ tiên tiến và các công tắc cho phép chúng tôi nói chuyện trực tiếp với một người (máy tính / MAC) để họ không phải làm việc quá nhiều để lọc hết tiếng ồn đó (và giải phóng thêm băng thông).

IP rất giống nhau trong sự tương tự cơ bản, nhưng nó có nhiều tính năng và lớp hơn trên địa chỉ MAC. Lớp 2 và 3 trong Mô hình OSI , tương ứng.


Bạn không cần phải nghĩ lại những ngày trước khi chuyển đổi. Các địa chỉ MAC vẫn còn sống và được sử dụng trong mọi gói duy nhất rời khỏi bộ điều hợp Ethernet của bạn ngay hôm nay .
Đánh dấu Henderson

Rất đúng. Nhưng nó giúp với sự tương tự. Và các NIC vẫn hành xử theo cùng một cách.
Randy James

2

Địa chỉ MAC là cần thiết vì có nhiều địa chỉ được gắn vào "bus" (mạng Ethernet). Người gửi cần có khả năng xác định người nhận, cũng như nhận dạng chính mình với người nhận.

Tất cả các xe buýt phần cứng cần địa chỉ, bởi vì nhiều người gửi và người nhận chia sẻ cùng một dây và tin nhắn phải đến người nhận cụ thể, đồng thời xác định người gửi gốc.

I2C, PCI, Ethernet, bạn đặt tên cho nó.

Chúng tôi có nhiều địa chỉ trong mạng liên kết nối (địa chỉ IP và địa chỉ phần cứng) vì địa chỉ cấp phần cứng chỉ cục bộ với một mạng vật lý cụ thể. Khi một datagram đi từ mạng này sang mạng khác, nó có xu hướng giữ địa chỉ cấp mạng của nó, nhưng nó thay đổi địa chỉ phần cứng nhiều lần trên đường đi. Khi đi qua một số mạng, nó có thể không có địa chỉ phần cứng, và trong một số mạng khác, nó có thể có địa chỉ phần cứng không phải là MAC ethernet. (Tất nhiên, địa chỉ mạng có thể được viết lại bằng cổng NAT, nhưng địa chỉ phần cứng bị tước và thay thế bằng các địa chỉ khác nhau mỗi khi gói đi qua bộ định tuyến.)


1

Ngày xưa mạng lưới được chia sẻ xe buýt. Mỗi thiết bị được kết nối với cùng một dây hoặc với một trung tâm có nghĩa là mọi gói bạn gửi đi đều được nhận bởi mọi thiết bị trên mạng.

Các phần mềm mạng đã đơn giản hơn sau đó. Mỗi thiết bị đều có một địa chỉ MAC, được đảm bảo là duy nhất. Nó không cần phải là bất cứ điều gì khác - tất cả những gì nó đã làm là đảm bảo rằng không có hai thiết bị trên cùng một mạng có cùng một địa chỉ.

Nếu thiết bị của bạn muốn nói chuyện với thiết bị khác, nó sẽ gửi một gói có địa chỉ MAC của người nhận và người nhận sẽ chọn nó khỏi mạng. Tất cả các thiết bị khác sẽ bỏ qua nó - nó không được gửi đến địa chỉ MAC của họ.

Theo thời gian, mọi người đã gắn quá nhiều thiết bị vào mạng và họ không thể theo kịp lưu lượng, vì vậy họ bắt đầu tách mạng và sẽ gắn hai mạng với các công tắc. Các thiết bị chuyển mạch này có các bảng lớn cho chúng biết địa chỉ MAC nào trên mỗi mạng. Nếu họ thấy một gói trên một mạng được gửi đến một địa chỉ MAC trên mạng kia, họ sẽ sao chép tin nhắn sang mạng khác. Tuy nhiên, họ sẽ không sao chép tất cả các tin nhắn cần thiết để chuyển sang mạng khác.

Điều này giúp giảm tắc nghẽn và cho phép nhiều thiết bị được nối mạng hơn và lưu lượng tổng thể được xử lý nhiều hơn. Đây là một chuyển mạch gói mạng .

Tuy nhiên, nó không giải quyết được tất cả các vấn đề và chịu một nhược điểm rất lớn - khi các bảng chuyển đổi trở nên lớn hơn, các mạng chậm lại. Nếu bạn kết nối 5.000 máy với 50 mạng khác nhau, tất cả được kết nối với các công tắc, mỗi công tắc phải tìm hiểu tất cả 5.000 địa chỉ MAC và định tuyến các gói dựa trên đó.

Đó không phải là một vấn đề lớn cho đến khi mọi người từ các tổ chức khác nhau, như các trường đại học, muốn kết nối các mạng của họ với nhau, và các bảng cần thiết sẽ rất lớn. Theo dõi vài trăm nghìn địa chỉ MAC ngày nay dường như không phải là vấn đề lớn, nhưng vào những năm 1970, khi điều này xảy ra, các thiết bị chuyển mạch là chính máy tính, với bộ nhớ và tốc độ hạn chế, và theo dõi và nhanh chóng chuyển đổi gói cho một số trăm là một vấn đề

Giải pháp là vào mạng IP và sử dụng bộ định tuyến. Điều này được xây dựng trên đầu trang của gói mạng chuyển mạch dựa trên địa chỉ MAC. Thay vì dữ liệu thô, các gói giờ chứa một gói IP - một gói trong một gói.

Bây giờ các mạng lớn hơn được kết nối với bộ định tuyến. Những người này đợi cho đến khi họ thấy một gói có địa chỉ MAC của họ, sau đó họ lấy gói IP ra và kiểm tra địa chỉ IP. Sau đó, họ bọc lại gói IP vào một gói khác với một người nhận địa chỉ MAC mới trên đó và gửi nó trên một mạng mới. Địa chỉ MAC đó có thể là một bộ định tuyến khác trên mạng mới, nhưng nó cũng có thể là máy có địa chỉ IP.

Trong các mạng ngày nay, bạn hiếm khi thấy các trung tâm và xe buýt (ngoại trừ trong các mạng không dây, nơi phương tiện được chia sẻ vốn có) và thay vào đó máy của tôi kết nối trực tiếp với một công tắc, chúng kết nối với bộ định tuyến.

Máy của tôi có nhiều thuật toán và giao thức khác nhau để nó biết cách thiết lập mạng.

Nếu tôi gửi một gói IP ra một máy trên mạng cục bộ của mình, máy của tôi sẽ đặt nó bên trong một gói có địa chỉ MAC chính xác. Các thiết bị chuyển mạch sẽ chuyển nó sang đúng mạng cục bộ và máy được định sẵn sẽ nhận nó vì nó có đúng địa chỉ MAC. Họ sẽ lấy gói IP ra và kiểm tra kỹ xem địa chỉ IP cũng được dành cho nó hay không và hành động tương ứng.

Nếu tôi gửi một gói IP dành cho máy ở một nơi khác trên internet, máy của tôi biết gửi nó đến bộ định tuyến, vì vậy nó sẽ đặt nó bên trong một gói có địa chỉ MAC của bộ định tuyến. Nó lại được chuyển cục bộ trong mạng của tôi cho đến khi nó chạm vào mạng của bộ định tuyến, sau đó bộ định tuyến lấy nó, rút ​​gói IP ra, kiểm tra gói IP và dựa trên kiến ​​thức về internet, nó sẽ gửi nó đến một bộ định tuyến khác một mạng khác, gói nó trong một gói có địa chỉ MAC cho bộ định tuyến hoặc máy tính đích.

Có rất nhiều chi tiết nhỏ mà tôi đã trình bày, và một số thuật toán và giao thức thực sự thú vị giúp mọi thứ hoạt động, nhưng đó là câu chuyện cơ bản về những gì địa chỉ MAC làm cho chúng ta, ngay cả ngày nay.


1
Bạn đã khởi đầu tốt, nhưng bạn đã mất nó ở giữa nơi bạn bắt đầu nói về các mạng được kết nối với nhau. Công tắc không phổ biến cho đến những năm 90 nhưng việc định tuyến đã tồn tại 20 năm trước đó.
Mark Henderson

-1

Sự khác biệt gốc là MAC được chỉ định bởi nhà sản xuất tại thời điểm sản xuất, trong khi địa chỉ IP được gán tại thời điểm kết nối.

MAC là cần thiết bởi vì nó có thể được sử dụng để xác định một thiết bị trước khi kết nối với mạng; tuy nhiên vì được gán tĩnh, nó được phân phối ngẫu nhiên khá nhiều, do đó không phù hợp để định tuyến hiệu quả trên nhiều mạng (làm như vậy sẽ yêu cầu mọi thiết bị trên hành tinh phải có bảng định tuyến khổng lồ cho tất cả các thiết bị khác trên hành tinh ). Do đó, địa chỉ IP là cần thiết bởi vì nó được gán tại thời điểm kết nối và cách được gán cho phép định tuyến đường dài hiệu quả hơn (với IP, hầu hết các thiết bị chỉ cần biết các mạng liền kề của nó).

Nếu chỉ có địa chỉ IP, thì các thiết bị chưa được gán địa chỉ IP sẽ không thể cho biết tin nhắn nào dành cho chúng. Làm thế nào bạn có thể xác định rằng DHCP này có ý nghĩa với bạn và không phải ai khác cũng yêu cầu gán địa chỉ cùng một lúc?

Tất nhiên MAC cũng được sử dụng cho các phần khác của việc gửi gói, nhưng hầu hết các sử dụng đó khá ngẫu nhiên và có thể (ít nhất là về lý thuyết) được thay thế bằng số được gán động (ví dụ: địa chỉ IP).


+1 cho lý do tại sao chúng tôi không tiếp tục sử dụng địa chỉ MAC.
deed02392

3
Đoạn đầu tiên là đúng về mặt kỹ thuật, nhưng đó không phải là sự khác biệt gốc. Sự khác biệt gốc là MAC thuộc về Ethernet và IP thuộc về TCP / IP. Bạn có thể chạy TCP / IP qua nhiều giao thức Lớp 2 (ví dụ ATM) và không chỉ có TCP / IP chạy trên Etherhet. Không có thứ gọi là "trước khi kết nối với mạng", nhưng có "Trước khi nhận địa chỉ IP từ DHCP". Nhưng MAC vẫn được sử dụng sau đó - vì nó nằm trên một lớp khác trong mô hình OSI. Đoạn cuối hoàn toàn sai - không có thay thế cho địa chỉ MAC trong mạng.
Đánh dấu Henderson

@MarkHenderson: Quan điểm của tôi là MAC thuộc về Ethernet và IP cho TCP / IP gần như là một tai nạn lịch sử; về mặt lý thuyết, nếu chúng tôi thiết kế lại toàn bộ ngăn xếp internet từ đầu (và bỏ qua OSI và khả năng tương thích với các mạng khác), có thể thay thế hầu hết việc sử dụng số được gán tại nhà máy (ví dụ MAC) bằng số được gán động (ví dụ IP), ngoại trừ rằng có một số gói cần phải được gửi / nhận trước khi có thể lấy được số được gán động, đó là lý do tại sao cần có một mã định danh duy nhất trên toàn cầu được gán tại nhà máy.
Nói dối Ryan

@MarkHenderson: IMO, nói rằng chúng tôi cần MAC và IP vì MAC là lớp 2 và IP là lớp 3 giống như nói "chúng tôi cần nó vì chúng tôi đã thiết kế internet theo cách đó", nó bỏ lỡ điểm và không cung cấp thông tin hữu ích bất cứ điều gì Điều tôi đang trả lời ở đây là tại sao cả số nhận dạng được gán tại nhà máy và được gán động là cần thiết do bản chất của sự cố và những gì đòi hỏi từ một ngăn xếp internet mà không có (mất hiệu quả định tuyến vì không có ID được gán động và khó khăn địa chỉ duy nhất một thiết bị trước khi gán ID động cho không có ID được chỉ định của nhà máy).
Nói dối Ryan

@LieRyan, Thật ra chúng ta có thể thay đổi địa chỉ MAC của PC .......
Pacerier
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.