Lý do cho cả MAC và địa chỉ IP


25

Nếu máy tính của tôi có địa chỉ IP, tại sao nó cần địa chỉ MAC?


2
Để đưa ra câu trả lời tốt nhất cho bạn, bạn có thể mở rộng câu hỏi của mình để đưa ra lý do tại sao bạn nghĩ rằng bạn sẽ không cần địa chỉ MAC nếu máy tính của bạn có địa chỉ IP không?
Brett Lykins

1
Tôi sẽ khuyên bạn nên chọn một cuốn sách cơ bản tốt về Mạng và đọc nó; sẽ có giá trị nó Nó sẽ trả lời câu hỏi này và nhiều câu hỏi khác: amazon.com/Computer-Networking-Top-Down-Approach-Edition/dp/ mẹo
Manoj Pandey

4
Điều này nghe có vẻ lén lút, nhưng nó là cách đơn giản nhất để giảm sự nhầm lẫn. Tại sao bạn đặt một ethernet ethernet trong máy tính của bạn? Trả lời câu hỏi đó và nó trả lời câu hỏi về sự cần thiết của địa chỉ mac.
Mike Pennington

4
@Reprovo, nơi duy nhất mà các bình luận / câu trả lời thực sự đưa ra tuyên bố này là khi OP trả lời câu trả lời của Teun Vink với mong muốn tránh các mô hình mạng trong các câu trả lời. Nếu bạn không biết lý do tại sao và như thế nào về các mô hình mạng, bạn thực sự không hiểu mạng của mình và "hoàn thành công việc" sẽ đau đớn hơn nhiều hoặc tạo thêm vấn đề. Có nhiều điều bạn không thực sự cần phải biết với tư cách là một chuyên gia mạng (ví dụ: cách các bit được đặt trên dây, v.v.), nhưng các mô hình mạng không phải là thứ mà họ có thể tránh được ít nhất là hiểu biết cơ bản.
YLearn

2
@ user1369975, tôi nghĩ bạn đang thiếu điểm. Chúng tôi không nói câu hỏi là không hợp lệ, chúng tôi cũng không nói mọi người không cần phải học. Tuy nhiên đây là một trang web dành cho các kỹ sư / chuyên gia mạng và yêu cầu đóng khung một câu trả lời ở đây trong khi bỏ qua các nền tảng cơ bản của mạng là không hợp lý. Nếu bạn muốn một câu trả lời không hướng đến các chuyên gia mạng khác, bạn nên hỏi nó trên một trong những trang web khác như SuperUser .
YLearn

Câu trả lời:


13

không đi sâu vào mô hình OSI, lớp TCP, v.v.:

Quay ngược thời gian, các mạng đã được tạo: một số máy tính sẽ liên lạc với nhau để chia sẻ thứ gì đó. Để làm điều đó, họ cần biết ai đang nói và ai đang được nói chuyện. Vì vậy, thay vì đặt tên cho mỗi máy tính, chúng tôi đã cung cấp cho họ ID. ID này được gọi là địa chỉ MAC, nên nhận dạng duy nhất mỗi máy tính.

(ok, xác định từng card mạng, nhưng vào thời điểm đó, bạn có thể nghĩ một địa chỉ MAC cho mỗi máy tính).

Không có một đặc điểm kỹ thuật duy nhất nào về cách các máy tính sẽ nói chuyện với nhau: nhiều giao thức xuất hiện: TCP / IP, IPX / SPX, v.v. Mỗi giao thức sẽ chỉ định những điều mà họ nghĩ là ok. Ví dụ: IPX / SPX sẽ giải quyết từng máy tính bằng địa chỉ MAC và một số thông tin khác.

Nhưng giao thức TCP / IP được thiết kế hơi khác một chút: họ đã quyết định rằng có một địa chỉ ảo, được tạo bởi 4 byte (0.0.0.0 đến 255.255.255.255) là đủ và thậm chí còn dễ quản lý hơn: không thành vấn đề nếu Tất cả các card mạng của bạn đều có địa chỉ MAC tương tự hay không, chúng tôi sẽ nhóm máy tính của chúng tôi để tất cả địa chỉ TCP / IP bắt đầu bằng 10.0.xx là một phần của nhóm kỹ thuật và của 10.1.xx là máy in và. ..

Vì vậy, nếu một địa chỉ TCP / IP cần kết hợp với một địa chỉ khác, thì chỉ cần sử dụng địa chỉ TCP / IP. Nhưng các thiết bị mạng cần biết tin nhắn nào sẽ xuất hiện trên card mạng, do đó, bằng cách nào đó, chúng sẽ dịch địa chỉ TCP / IP sang địa chỉ MAC.

Tại sao không chỉ đơn giản là loại bỏ MAC và thay vào đó chỉ sử dụng TCP / IP?

Một số lý do:

  • dễ dàng nhóm các địa chỉ TCP / IP,
  • tất cả các thiết bị được xây dựng để chăm sóc địa chỉ MAC, trong yêu cầu cấp thấp đó và sẽ cần phải thay đổi
  • mặc dù chiếm đa số (tôi nghĩ :-P), một số giao thức khác vẫn được sử dụng và chúng dựa vào địa chỉ MAC

25

Địa chỉ MAC và địa chỉ IP hoạt động trên các lớp khác nhau của bộ giao thức internet . Địa chỉ MAC được sử dụng để xác định các máy trong cùng một mạng phát trên lớp 2, trong khi các địa chỉ IP được sử dụng trên lớp 3 để xác định các máy trên các mạng khác nhau.

Ngay cả khi máy tính của bạn có địa chỉ IP, nó vẫn cần một địa chỉ MAC để tìm các máy khác trên cùng một mạng (đặc biệt là bộ định tuyến / cổng vào phần còn lại của mạng / internet), vì mọi lớp đều sử dụng các lớp bên dưới. Trên trang được đề cập trước đó, bạn có thể tìm thấy một số sơ đồ đẹp giải thích chi tiết về bộ giao thức.


, cảm ơn rất nhiều vì câu trả lời của bạn nhưng sẽ tốt hơn nếu ai đó có thể đưa ra câu trả lời mà không cần đi sâu vào các thông số kỹ thuật của Lớp OSI hoặc Lớp TCP
user1369975

11
Nếu quá khó, đây thực sự không phải là trang web dành cho bạn. Bạn có thể tranh luận câu hỏi này không có chủ đề vì nó được coi là kiến ​​thức phổ biến cho các kỹ sư mạng.
Teun Vink

11
@ user1369975, các mô hình bạn tham chiếu là các khung cho cách các mạng được thiết kế để hoạt động (cả phần cứng và phần mềm). Không có sự hiểu biết cơ bản đó, sẽ không có câu trả lời có ý nghĩa cho câu hỏi của bạn. Điều đó sẽ tương tự như hỏi (về một công dân Hoa Kỳ), "nếu họ có tên tại sao họ cần số an sinh xã hội" mà không cho phép đề cập đến chính phủ trong câu trả lời.
YLearn

5
Hãy nghĩ về một địa chỉ MAC như một mô tả về một ngôi nhà trên đường phố của bạn. Đối với hàng xóm của bạn, tất cả họ sẽ hiểu "Ngôi nhà xanh" hoặc "Nhà của ông Johnsons" hoặc "Nhà song công ở góc" - Chúng có thể so sánh với địa chỉ MAC, chỉ mô tả tại địa phương. Một địa chỉ IP có thể định tuyến công khai, vì vậy nó sẽ giống như sử dụng các địa chỉ đầy đủ: 123 Main St, Somewhere, CA 92069. Sau đó, tôi đoán IP cho MAC sẽ giống như người đưa thư đến đường phố và hét lên "AI ĐANG Ở 123 CHÍNH? !?!? " và ông Johnson nghe ông và nói "Đây, ngôi nhà xanh!" Tôi đoán? Tương tự khủng khiếp.
David Houde

3
Điều đó giải thích tại sao nó cần thiết cho kiến ​​trúc hiện tại. Nhưng tại sao kiến ​​trúc được thiết kế theo cách đó ngay từ đầu? Tôi có thể dễ dàng tưởng tượng ra một thế giới chỉ có địa chỉ IP cục bộ và địa chỉ IP WAN. Về mặt kỹ thuật là có thể.
Xin chào thế giới

17

Khi bạn hiểu rằng giao tiếp IP-IP thực sự chỉ là một chuỗi giao tiếp MAC-MAC diễn ra tại mỗi bước nhảy của bộ định tuyến, thì bạn sẽ thấy tại sao cả hai đều cần thiết.

Tiêu đề IP của gói rời khỏi máy trạm của bạn được chuyển sang IP trong một mạng con khác sẽ duy trì IP nguồn và IP đích, quên đi NAT trong thời điểm này. [Sau đó, tôi sẽ thảo luận về những gì xảy ra khi đích nằm trong cùng một mạng con.] Tiêu đề Ethernet chứa MAC nguồn của bạn và MAC đích của cổng mặc định của bạn. Không có kiến ​​thức về MAC đích cuối cùng từ quan điểm của bạn. Bộ định tuyến đầu tiên đó sẽ viết lại MAC nguồn thành chính nó và MAC đích đến bộ định tuyến tiếp theo, v.v., cho đến khi gói đến bộ định tuyến cuối cùng được kết nối trực tiếp với mạng con đích.

Để thử một minh họa đơn giản, hãy xem xét các tiêu đề L2 / L3 khi gói chuyển từ IP nguồn (sIP) sang IP đích (dIP) và MAC nguồn và đích được viết lại dọc theo đường - fs = nguồn đầu tiên và ld = điểm đến cuối cùng và r1-r3 là các bộ định tuyến:

fsMAC-r1MAC / sIP-dIP 
r1MAC-r2MAC / sIP-dIP
r2MAC-r3MAC / sIP-dIP
r3MAC-ldMAC / sIP-dIP

Bất kỳ công tắc L2 nào có liên quan sẽ không sửa đổi địa chỉ MAC.

Bây giờ để liên lạc với một IP khác trong mạng con của bạn, cần có giao tiếp MAC trực tiếp, nhưng để có được addr MAC đó cần có giao thức ARP sử dụng quảng bá trong mạng con để tìm thấy nó. Nhân tiện, đây là cách máy trạm của bạn lấy địa chỉ MAC của cổng mặc định phải tồn tại trong cùng mạng con của bạn.


3
Vì vậy, để tóm tắt, MAClà những gì nhận được thông điệp từ bước này đến bước khác, trong khi IP theo dõi nguồn gốc và đích. Điều này có vẻ tương tự như một bưu điện, nơi tôi gửi thư cho bà ở Phoenix, nhưng người đưa thư nhặt nó từ hộp thư chỉ quan tâm đến việc đưa nó đến bưu điện, và bưu điện chỉ quan tâm đến việc đưa nó đến phân loại trung tâm vv ...
CodyBugstein

3
Câu hỏi của tôi là, tại sao có một giao thức riêng cho MAC? Tại sao không chỉ xác định địa chỉ IP tiếp theo để nhảy và lưu trữ IP nguồn / đích hiện tại cùng với IP nguồn / đích ban đầu?
CodyBugstein

@Imray: Vấn đề đầu tiên với việc loại bỏ giao thức MAC đòi hỏi phải thiết kế lại / viết lại các tiêu chuẩn Ethernet và TCP / IP. Thứ hai, IP không phải là giao thức duy nhất tại L3 sử dụng địa chỉ MAC tại L2 để liên lạc. Thứ ba, địa chỉ MAC thường được gắn với địa chỉ phần cứng (ghi trong) trên các NIC trong khi IP ở cấp cao hơn được phép tùy ý linh hoạt. Thứ tư, MAC chỉ có liên quan cục bộ trong khi IP có liên quan trên toàn cầu (không xem xét các thay đổi gần đây hơn với các địa chỉ NAT và riêng tư không phải là một phần của thiết kế ban đầu).
generalnetworkerror

14

Không có bất cứ điều gì ngăn cản bạn thiết kế mạng chỉ có địa chỉ IP cho L2 và L3. Sau đó, 'ethernet switch' sẽ tìm hiểu địa chỉ SIP của các gói đến và tràn vào hoặc chuyển tiếp tới địa chỉ DIP.

Tuy nhiên, mạng này sẽ chỉ hỗ trợ IP, khi thế hệ tiếp theo của IPvX xuất hiện, nó sẽ không hoạt động, vì 'công tắc ethernet' không thể hỗ trợ giao thức đó. Bạn cũng không thể chạy nhiều giao thức khác, như IPX và AppleTalk, hoặc một số giao thức mới bạn đang phát triển và thử nghiệm tại nhà.

Các lớp trừu tượng tăng tốc độ phát triển và khuyến khích đổi mới, vì bạn không cần phải xây dựng lại toàn bộ ngôi nhà để thay đổi cửa sổ.

Bây giờ bạn có thể đã chạy cùng một bộ chuyển mạch ethernet và di chuyển mạng của bạn từ giữa IPX sang IPv4 sang IPv6, mà không cần chạm vào mạng LAN của bạn.


Không có gì ngăn cản bạn thiết kế mạng này, ngoài các thành phần này, chỉ tồn tại trong trí tưởng tượng của bạn: A) một công tắc ethernet học địa chỉ IP nguồn B) một ethernet ether không có địa chỉ mac
Mike Pennington

3

Địa chỉ IP và địa chỉ MAC phục vụ các mục đích khác nhau (nhưng rất quan trọng):

Địa chỉ MAC nhận được một khung từ một NIC tới kế tiếp. Địa chỉ IP nhận một gói từ một Máy tính đến Máy chủ

Vì vậy, đưa ra như sau:

Source Computer  <--->  RouterA  <--->  RouterB  <--->  Destination Server

Điều hướng gói tin đến từ "Nguồn" đến "Đích" là địa chỉ IP. Nhưng những gì nhận được gói từ Máy tính nguồn đến RouterA, và sau đó từ RouterA đến RouterB, và sau đó từ RouterB đến Destination là các địa chỉ MAC.

Bạn có thể thấy mối quan hệ trong hình minh họa này :

Gói du lịch - Cách các gói di chuyển qua Internet - pracnet.net/pt


Tất nhiên, rất phổ biến khi các liên kết bộ định tuyến đến bộ định tuyến sử dụng giao thức không có địa chỉ MAC.
Ron Maupin

@RonMaupin Có. Tất nhiên. Nhưng ... làm thế nào mà câu hỏi liên quan được hỏi cụ thể về địa chỉ MAC =)?
Eddie

Dường như câu trả lời của bạn ngụ ý rằng sẽ có một địa chỉ MAC được gán ở mỗi bước nhảy, có thể gây hiểu nhầm. Nó cũng hoạt động nếu sơ đồ của bạn chỉ hiển thị địa chỉ MAC trên bước nhảy đầu tiên và cuối cùng. Nó là một chút không đầy đủ, đó là lý do tại sao tôi đã bình luận.
Ron Maupin

1

Giao thức IP cung cấp nền tảng để hỗ trợ khái niệm mạng conđịnh tuyến . Điều này có nghĩa là IP không cho rằng đích của bạn nằm trong cùng một mạng - nếu không, lưu lượng truy cập của bạn cần được chuyển tiếp qua một thiết bị trung gian như bộ định tuyến. IP có các trường Giới hạn TTL / Hop và như vậy hỗ trợ điều này.

Ethernet giả định rằng MAC đích có thể truy cập trực tiếp khi dữ liệu được chuyển ra khỏi giao diện của nó. Ethernet ban đầu được thiết kế khi cách phổ biến nhất để kết nối các máy tính trong mạng là thông qua cấu trúc liên kết bus vật lý. Mặc dù gần như tất cả lưu lượng Ethernet có dây đã được chuyển đổi, nhưng về mặt logic, nó vẫn hoạt động như một cấu trúc liên kết bus. Vì vậy, giả định cơ bản với Ethernet là nút có MAC đích nằm trên cùng một mạng. Không có giả định như vậy với IP.

Tôi đoán bạn có thể "hack" Ethernet để thực hiện các mạng con và định tuyến, nhưng bạn cũng có thể thiết kế một giao thức không dựa vào các chi tiết và giả định cấp thấp của Ethernet, và đó là lý do tại sao chúng ta có IP.


0

Để đơn giản nhất có thể:

Một Mac Address là địa chỉ vật lý hay ảo của thẻ hoặc mạng giao diện NIC của bạn. Từ một máy tính trên quan điểm của một mạng, đó là địa chỉ vật lý của thẻ NIC của máy tính đó. Nó được sử dụng để đưa thông tin đến máy tính đó trên Lớp 2 của mô hình OSI.

Các địa chỉ IP được yêu cầu trên lớp 3. Bạn cần nó để giao tiếp với các máy tính trên mạng con khác nhau và devices.The Địa chỉ IP thẩm tra "ở đâu" các thiết bị nằm trong một mạng.

Các địa chỉ IPđịa chỉ MAC được sử dụng song song. Address Resolution Protocol được sử dụng để liên kết hai với nhau bằng giải quyết địa chỉ IP để Mac Addresses trong Link Layer trong một mạng duy nhất.

Bạn cũng có thể muốn kiểm tra ở đây để có một lời giải thích sâu hơn.


1
Giữ cho nó đơn giản: Nếu bạn có Tên, bạn tự nhận mình ở địa phương. Bạn cần phải có SSN, để giữ cho bạn được xác định ở cấp Toàn cầu
pulsarjune

-2

Địa chỉ MAC đại diện cho các phần cứng được lắp ráp, nó là các hệ thống không đổi và khác nhau trong mạng của chúng tôi được tạo bởi các nhà cung cấp khác nhau có phạm vi rất lớn của các phần tử mac do đó chúng khó có thể sắp xếp thành một mạng. Nhưng sử dụng địa chỉ ip, chúng tôi có thể truy tìm các thiết bị trong mạng trong một địa chỉ đồng thời là địa chỉ. Ngoài ra, chúng tôi không thể gửi các phần bổ sung mac của mình đến các mạng bên ngoài


-2

Để bắt đầu, đây là một câu hỏi rất hay, chạm vào nền tảng mạng cơ bản. Điểm mấu chốt cho câu hỏi của bạn là, chúng tôi thực sự không cần địa chỉ MAC để đạt được kết nối. Về mặt lý thuyết, một mạng có thể được xây dựng chỉ thực hiện các địa chỉ IP! Tuy nhiên, một số khó khăn thực tế có thể phát sinh từ việc sử dụng một chương trình như vậy. Nếu bạn muốn tự gán địa chỉ IP cho từng thiết bị mạng, thì bạn có thể tránh được những cạm bẫy lớn. Tuy nhiên, nếu bạn cần tự động gán địa chỉ IP, vì khi có quá nhiều nút mạng để quản trị theo cách thủ công, thì không có cách nào để đảm bảo mỗi nút được phân bổ chính xác một địa chỉ IP hoặc số lượng được xác định trước bởi vì bạn không thể nói cái này với cái kia, trừ khi thực thể phân phối địa chỉ có thể xác định duy nhất và không rõ ràng thiết bị yêu cầu, ví dụ: bởi địa chỉ MAC của nó, được coi là duy nhất cho bất kỳ thiết bị nào trong mạng LAN. Một thiết bị không xác định như vậy có thể liên tục yêu cầu thêm địa chỉ IP và cuối cùng, tàn phá mạng khả thi. Quay lại chủ đề, tất cả những gì bạn cần để thiết lập mạng chỉ IP, là để cho Lớp liên kết dữ liệu của bộ điều khiển giao diện mạng đi qua bất kỳ khung dữ liệu nào mà nó nhận được, trực tiếp đến Lớp mạng, bất kể loại địa chỉ có thể so sánh MAC nào, nơi có thể được lọc theo địa chỉ IP đích của nó, thay vì được lọc tại Lớp dữ liệu. Chỉ để minh họa khái niệm, giả sử một mạng được thiết lập bằng cách kết nối các cổng UART RS-232: Các thiết bị UART không có địa chỉ MAC hoặc bất kỳ số nhận dạng duy nhất nào khác, nhưng bạn có thể tạo một mạng cục bộ bằng cách sử dụng địa chỉ UART và IP một mình, cung cấp cho bạn cài đặt trình điều khiển UART thích hợp. Hy vọng đoạn văn này đã cho bạn một số hiểu biết về chủ đề này.

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.