Tôi có thể tạo mạng Ethernet mà không cần sử dụng IP không


14

Theo tôi hiểu từ mô hình ISO-OSI, địa chỉ MAC hoạt động trên một lớp khác với địa chỉ IP. Điều này là rõ ràng với tôi.

Tôi có thể chấp nhận rằng Ethernet (LAN) không sử dụng địa chỉ IP để liên lạc mà sử dụng địa chỉ MAC. Tôi hiểu rằng các địa chỉ MAC này không thể được sử dụng để định tuyến bên ngoài mạng LAN, vì chúng không được xác định theo thứ bậc. Tôi cũng hiểu rằng IP là cách tốt nhất để định tuyến qua Internet lớn. Điều tôi không hoàn toàn bị thuyết phục, đó là địa chỉ MAC là cách tốt nhất để giao tiếp trong mạng LAN


Câu hỏi của tôi là như sau:

  1. Ethernet không thể sử dụng địa chỉ IP để gửi tin nhắn? Tôi không nói là nên, tôi chỉ hỏi liệu nó có thể chọn làm như vậy không.
  2. Vì Ethernet sử dụng địa chỉ MAC để liên lạc, tôi có thể tạo một mạng Ethernet trong đó các thiết bị sẽ không có địa chỉ IP, chỉ là địa chỉ MAC không?

Theo định nghĩa, mạng Ethernet là mạng nơi các thiết bị không có địa chỉ IP. Như bạn chỉ ra, một mạng TCP / IP là một điều hoàn toàn khác và IP không quan tâm đến việc nó có chạy trên chuẩn IEEE 802.3, 802.11 hay 802.5 hay không.
miken32

Câu trả lời:


5

Ethernet có thể sử dụng địa chỉ IP thay vì địa chỉ lớp liên kết dữ liệu của chính nó không? Chắc chắn là không, nếu nó muốn không biết gì về giao thức lớp 3 mà nó đã sử dụng.

Chúng tôi thiết kế các giao thức mạng theo lớp để chúng tôi có thể trộn các lớp.

Ethernet ban đầu được phát triển bởi Bob Metcalfe et alia tại Xerox PARC để trở thành bất khả tri ở tầng Mạng, vì mục tiêu của họ không chỉ là truy cập TCP / IP mà còn cho ngăn xếp / bộ giao thức mạng XNS độc quyền của Xerox.

DEC (Tập đoàn thiết bị kỹ thuật số) đã trở thành một người áp dụng sớm khác, sử dụng nó chủ yếu cho ngăn xếp / bộ giao thức DECnet của họ.

Vào cuối những năm 80 và đầu những năm 90, có rất nhiều bộ giao thức LAN cạnh tranh (hoàn toàn độc lập với TCP / IP) chạy trên mạng LAN Ethernet của công ty. Bên cạnh XNS và DECnet, còn có AppleTalk (EtherTalk), IPX của Novell, Banyan VINES, NetBEUI, DLC / LLC, IBM SNA, OSI / ISO và những thứ khác mà tôi đã quên.

Vì vậy, Có, bạn có thể sử dụng Ethernet mà không cần IP. Rất nhiều mạng lưới công ty đã làm điều đó trong những năm 80 và 90.

Do Ethernet được thiết kế để không quan tâm đến giao thức Lớp 3 (Lớp mạng) nào đang chạy trên nó, nên các mạng LAN công ty đó hỗ trợ hỗn hợp các thiết bị của các nhà cung cấp khác nhau và việc các mạng LAN đó thêm vào IPv4 tương đối dễ dàng hỗ trợ khi Internet cất cánh từ giữa đến cuối những năm 90 và hiện tại chúng tôi đã dễ dàng thêm hỗ trợ IPv6.


1
Cảm ơn đã đưa ra một câu trả lời trong đó bạn đặt mọi thứ vào bối cảnh! Tôi ước rằng bạn cũng đã mở rộng thêm một chút về phần thứ hai của câu hỏi .. Liệu có thể tạo một mạng LAN dựa trên Ethernet hoạt động mà không cần sử dụng bất kỳ giao thức lớp Mạng nào không? Nếu tôi thiết lập kết nối Ethernet có thể kết nối chéo với máy chủ khác, tại sao tôi cần sử dụng IP để liên lạc với máy chủ đó? Có thể sử dụng TCP qua MAC thay vì TCP qua IP không?
jj_

4

Vì Ethernet sử dụng địa chỉ MAC để liên lạc, tôi có thể tạo một mạng Ethernet trong đó các thiết bị sẽ không có địa chỉ IP, chỉ là địa chỉ MAC không?

Nếu bạn đã viết tất cả phần mềm của riêng bạn từ đầu, thì bạn chắc chắn có thể làm điều này. Chỉ cần phần mềm chấp nhận địa chỉ MAC ở bất cứ nơi nào mà đối tác bình thường của chương trình đó sẽ chấp nhận địa chỉ IP. Sử dụng tất cả các cuộc gọi hệ thống để gửi các gói ethernet thô thay vì địa chỉ IP và nó sẽ hoạt động - nhưng nó sẽ là một rắc rối lớn.

Nói chung, địa chỉ MAC trên mạng của bạn không theo bất kỳ mẫu nào. Chúng được đốt vào phần cứng bởi nhà sản xuất. Chúng dài và cồng kềnh. Của tôi ngay bây giờ là C8-60-00-CA-4B-9A. Máy tính bên cạnh tôi là 00-40-F4-48-1B-88.

Để các máy có thể nói chuyện với nhau, bạn có thể cung cấp cho mỗi máy một danh sách mã hóa cứng của tất cả các địa chỉ MAC của tất cả các máy khác trên mạng để biết nơi gửi gói tin. Đây là rất nhiều lỗi dễ bị gõ và bất cứ khi nào bạn thay đổi bất kỳ phần cứng mạng nào, bạn sẽ phải đi xung quanh và thay đổi tất cả các danh sách để phản ánh các địa chỉ MAC mới.

Đây là một rắc rối lớn, vì vậy có lẽ bạn sẽ tìm ra cách để các máy trên mạng tự động khám phá địa chỉ MAC của nhau bằng các gói phát sóng. Sau đó, bạn cung cấp cho họ cách nhận dạng chính mình bằng một số địa chỉ có ý nghĩa để bạn phải nhập các lệnh như "telnet C8-60-00-CA-4B-9A".

Hóa ra đây chính xác là những gì IP thực hiện - đó là một cách sử dụng các số có ý nghĩa để giải quyết các máy chủ lưu trữ trên mạng thay vì các địa chỉ MAC mã hóa cứng. Thêm DNS vào đầu IP và bạn có thể gõ lệnh như "máy chủ web telnet".

Ethernet không thể sử dụng địa chỉ IP để gửi tin nhắn? Tôi không nói là nên, tôi chỉ hỏi liệu nó có thể chọn làm như vậy không.

Địa chỉ MAC là 6 byte thông tin và địa chỉ IP chỉ có 4 byte, vì vậy bạn không thể thực hiện bất kỳ loại ánh xạ 1 đến 1 nào. Bạn cần một số cách tìm địa chỉ MAC (để đặt gói) từ địa chỉ IP (được cung cấp bởi phần mềm muốn liên lạc với máy chủ khác trên mạng).

Một cách (lõi cứng) để làm điều này là đi vào mọi máy trên mạng và thay đổi địa chỉ MAC phần cứng của nó thành giống như một địa chỉ IP bằng cách làm cho hai byte trên cùng là số không (hoặc một số số cố định khác giống nhau cho mọi máy trên mạng) và đặt bốn byte dưới cùng thành "địa chỉ IP" mà bạn muốn chúng có trên mạng. (Hầu hết các thẻ mạng sẽ cho phép bạn truy cập và sửa đổi địa chỉ MAC được chỉ định của nhà cung cấp)

Để làm cho điều này thực sự hoạt động, tiếp theo bạn cũng sẽ phải hack mã trong ngăn xếp mạng của bạn để thực sự sử dụng hệ thống này. Về cơ bản, bạn sẽ loại bỏ mọi thứ phải làm với ARP (phương thức IP sử dụng để dịch địa chỉ IP thành địa chỉ MAC). Bạn sẽ tách ra các phần xây dựng / đọc các tiêu đề IP. Thay vào đó, bạn sẽ thay thế tất cả bằng mã rất đơn giản, được cung cấp một gói IP được gửi đến máy chủ tại địa chỉ wxyz, xây dựng khung ethernet với địa chỉ DEST được đặt thành 00-00-wxyz.

Bạn cũng sẽ cần một cách để chỉ ra cho người nhận gói tin có giao thức (UDP, TCP). Bạn có thể có thể dán cái này ở đâu đó trong tiêu đề ethernet bằng cách ghi đè một trường hiện có. Có thể sử dụng một trong hai byte trên cùng của địa chỉ nguồn? Điều này sẽ không ảnh hưởng đến khả năng nhận của máy đích, nhưng có thể làm rối một số công tắc. Bạn cũng có thể thêm giao thức vào đầu hoặc cuối khung Ethernet và tăng kích thước tải trọng lên một - nhưng điều đó bắt đầu có mùi giống như một tiêu đề IP.

Vì vậy, tất cả những gì công việc này sẽ mua cho bạn?

Đầu tiên, nó sẽ giúp bạn tiết kiệm chi phí tra cứu trong bảng ARP trên mỗi gói gửi đi. Điều này có lẽ là theo thứ tự chỉ micro giây.

Bạn lưu công việc tính toán tổng kiểm tra tiêu đề IP và bộ nhớ cần thiết để giữ chúng. Điều này có lẽ không đáng kể trên phần cứng hiện đại.

Bạn lưu 16 byte trong mỗi gói trên mạng vì sẽ không có tiêu đề IP. Điều này có thể thêm lên tùy thuộc vào ứng dụng.

Lợi ích lớn nhất là bạn sẽ không phải thực hiện bất kỳ yêu cầu ARP nào. Gửi gói IP tiêu chuẩn đến máy chủ mới sẽ kích hoạt trao đổi ARP có thể mất một phần nghìn giây và không thể đoán trước. Đây có thể là một lợi ích rất lớn cho một số ứng dụng rất nhạy cảm với độ trễ và jitter.

Đối với một số ứng dụng rất chuyên biệt, điều này thực sự có ý nghĩa để làm. Tôi đã từng làm việc với một hệ thống thời gian thực, chỉ sử dụng các gói UDP phát sóng cho tất cả các liên lạc giữa các máy chủ với lý do duy nhất là nó tránh được các chuỗi ARP đó khởi động và không thể đoán trước được sự chậm trễ và jitter. Tôi cũng đã từng làm việc trên một hệ thống nhúng giới hạn tài nguyên, hoạt động bằng cách gửi trực tiếp tải trọng UDP bên trong các gói IP (không có tiêu đề IP) vì nó đã lưu tất cả sự phức tạp và bộ nhớ cần thiết để thực hiện tất cả ARP và netmask và công cụ kiểm tra thêm.


1

Ethernet không thể sử dụng địa chỉ IP để gửi tin nhắn? Tôi không nói là nên, tôi chỉ hỏi liệu nó có thể chọn làm như vậy không

Tôi đoán Ethernet có thể đã sử dụng các địa chỉ bốn byte như IPv4 thay vì địa chỉ sáu byte. Có lẽ tốt là họ đã không làm như vậy vì họ đã hết số bây giờ tôi đặt cược.

Vì Ethernet sử dụng địa chỉ MAC để liên lạc, tôi có thể tạo một mạng Ethernet trong đó các thiết bị sẽ không có địa chỉ IP, chỉ là địa chỉ MAC không?

Bạn có thể, nếu bạn có các chương trình sẽ hoạt động với địa chỉ MAC thay vì địa chỉ IP. Tất nhiên bạn sẽ bị mắc kẹt trên mạng đó và không thể tiếp cận những người khác mà không có một số tin tặc.

Bạn thực sự chỉ cần lớp IP nếu bạn định thực hiện định tuyến, đặc biệt nếu một mạng khác có thể đang sử dụng công nghệ Lớp 2 khác với Ethernet, như Token Ring, đó là một khả năng thực sự khi hầu hết điều này được phát triển. Ai biết được nếu một công nghệ lớp 2 khác có thể trở nên phổ biến trong tương lai, nếu vậy, IP độc lập với nó.


0
> Couldn't Ethernet make use of IP addresses to send messages? I'm not
> saying it should, I'm just asking if it could have chosen to do so.

Nếu bạn đang đề cập đến Ethernet là Lớp Mạng, thì không, nó không thể. Lớp mạng yêu cầu địa chỉ vật lý của thiết bị mạng. Địa chỉ IP là một số tùy ý được gán cho địa chỉ MAC vì mục đích đơn giản. Địa chỉ IP là một giải pháp phần mềm, không phải là một phần của card mạng - giải pháp phần cứng. Đó là lý do tại sao địa chỉ IP có thể dễ dàng thay đổi, trong khi địa chỉ MAC được mã hóa cứng vào thẻ và không thể thay đổi (mặc dù phần mềm giả mạo Địa chỉ MAC, thậm chí vẫn không thay đổi địa chỉ nhiều vì nó nói về địa chỉ là gì )

> As Ethernet uses MAC addresses for communication, could I create an
> Ethernet network where devices would not have an IP address, just a
> MAC address?

Có, bạn có thể, nhưng bạn sẽ không thích sử dụng nó, vì chức năng sẽ rất hạn chế và không thân thiện với người dùng. Có một lý do tại sao lớp vận chuyển đã được thực hiện.

Từ WikiPedia , lớp vận chuyển kiểm soát độ tin cậy của một liên kết nhất định thông qua kiểm soát luồng, phân đoạn / giảm phân và kiểm soát lỗi. Một số giao thức được định hướng theo trạng thái và kết nối. Điều này có nghĩa là lớp vận chuyển có thể theo dõi các phân đoạn và truyền lại những đoạn không thành công. Lớp vận chuyển cũng cung cấp xác nhận truyền dữ liệu thành công và gửi dữ liệu tiếp theo nếu không có lỗi xảy ra.

Vì vậy, không sử dụng lớp Giao thông, ngày nay có nghĩa là giao thức TCP / IP, bạn sẽ không có khả năng đảm bảo dữ liệu của mình đến đích hoặc có khả năng tự động đặt lại bất kỳ phần bị thiếu nào.


Địa chỉ MAC chắc chắn có thể được thay đổi. PC của tôi (đã chết từ lâu) đã sử dụng MAC từ thẻ Ethernet bị hỏng trong nhiều năm, vì nhà cung cấp ADSL của tôi đã buộc nó và tính phí để thay đổi nó (và cũng mất vài ngày).
vonbrand

0

Chắc chắn các máy trên mạng cục bộ có thể giao tiếp mà không cần lớp định tuyến. Bạn chỉ cần nhúng tin nhắn vào khung Ethernet và hy vọng điều tốt nhất. Nó giống như đặt một ghi chú lên bưu thiếp và hy vọng bưu điện thực hiện công việc của mình.

Bạn phải hy vọng rằng người nhận đang lắng nghe và lắng nghe cẩn thận một tin nhắn trả lời (có khả năng trong số rất nhiều tin nhắn khác từ các nút khác). Bạn sẽ chịu trách nhiệm tự sắp xếp tất cả những tin nhắn này.

Nếu bạn muốn những thứ như nhắn tin 1: 1, bạn sẽ cần một giao thức khác trên đầu các khung Ethernet để xử lý tất cả việc nghe này cho bạn. Giao thức điểm tới điểm (PPP) thường được sử dụng cho việc này, qua Ethernet, giao thức này được gọi là PPPoE. PPPoE cung cấp cho bạn xác thực và mã hóa, cả hai ý tưởng rất hay trên mạng phát sóng.

Nhưng không có một số dạng thông tin định tuyến, bạn chỉ có thể giao tiếp với các nút trên mạng cục bộ. Ngay khi bạn bắt đầu sử dụng thông tin định tuyến để chuyển tiếp tin nhắn (ví dụ: tới internet), bạn muốn có một số dạng giao thức định tuyến, chẳng hạn như IP hoặc IPX. Và có lẽ bạn cũng muốn điều khiển truyền (TCP) ...


0

Mạng IP là một sự trừu tượng, một lớp không xác định, nghĩa là chúng là một mạng ảo - không bị ràng buộc vĩnh viễn với bất kỳ phương thức hoặc thiết bị giao tiếp vật lý cụ thể nào.

Một máy chủ Ethernet có một địa chỉ MAC (trên mỗi NIC) xác định duy nhất nó trên toàn cầu. Tuy nhiên, máy chủ này có thể đồng thời thuộc về nhiều mạng IP, với một địa chỉ IP khác nhau cho mỗi mạng, trong khi luôn sử dụng một địa chỉ MAC.

Sự phân tách địa chỉ vật lý và logic hoặc ảo hóa địa chỉ này cho phép sự linh hoạt nhất định, chẳng hạn như di chuyển máy chủ IP (ví dụ: máy chủ) từ máy này sang máy khác, với địa chỉ MAC khác, nhưng không yêu cầu cấu hình lại các máy chủ khác (ví dụ phần mềm máy khách).

IP, hoặc Giao thức Internet và Ethernet giải quyết các vấn đề khác nhau: Ethernet cung cấp cho giao tiếp ở cấp LAN và chỉ trên một mạng LAN, nó không quan tâm đến những mạng nào mà mạng LAN có thể được kết nối qua bộ định tuyến. Trong khi đó, IP liên quan đến liên kết mạng và do đó không liên quan đến mạng LAN. Vì vậy, Ethernet có thể sử dụng địa chỉ IP thay vì địa chỉ MAC không? Chắc chắn, nhưng nó không thực sự mang lại cho bạn bất cứ điều gì vì những tin nhắn đó vẫn sẽ bị hạn chế trong mạng LAN.

Như một câu trả lời cho câu hỏi thứ hai của bạn, loại tình huống này tồn tại ở các thời điểm khác nhau trên Ethernet LAN đang sử dụng Giao thức cấu hình máy chủ động (DHCP) để phân bổ địa chỉ IP. Khi một máy chủ mới kết nối với mạng LAN, nó không có địa chỉ IP, do đó, nó sẽ gửi một khung Ethernet được phát cho tất cả các thiết bị và chờ phản hồi từ máy chủ DHCP. Tại thời điểm này, máy khách không biết địa chỉ MAC của máy chủ DHCP cũng như địa chỉ IP của nó, do đó phát sóng. Khi nhận được yêu cầu, máy chủ hiện biết địa chỉ MAC của máy khách và do đó nó có thể giải quyết chính xác câu trả lời.

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.