Nếu máy tính của tôi có địa chỉ IP, tại sao nó cần địa chỉ MAC?
Nếu máy tính của tôi có địa chỉ IP, tại sao nó cần địa chỉ MAC?
Câu trả lời:
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:
Đị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.
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.
MAC
là 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 ...
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.
Đị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 :
Giao thức IP cung cấp nền tảng để hỗ trợ khái niệm mạng con và đị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.
Để đơ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 và đị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.
Đị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
Để 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.