请对我放松点,因为我只是网络领域中的一个菜鸟。
据我所知,第二层协议使用MAC地址进行通信,这实际上并不取决于您所在的网络或是否在网络中。所以我的问题是,在现实世界中,仅仅是物理上的相邻,两台主机就能以某种形式互相发送数据,即使这意味着通过低层帧进行通信?
编辑:
作为澄清,我想补充一点,我来这里的前提是,无线通信只是电磁波,网卡应该能够解码电磁波。所以,我们就不能“广播”一个像"MAC地址ABCD“这样的帧,我想和EFGH谈谈,然后说'Hello!‘,如果EFGH在附近,它就会解码这个帧,而不是丢弃它,它只需要确认和进行类似的对话。我想说的是,我们能不能让两个承载网络卡的设备在本质上像对讲机,而不使用外部外设,因为网卡似乎已经具备了这种功能?
请不要将其标记为属于superuser
或unix
,因为我想从理论的角度来问这个问题,因为硬件似乎已经存在了,第二层协议是否能够做到这一点?
发布于 2021-04-16 18:05:19
第二层协议使用MAC地址进行通信,这实际上不取决于您所在的网络,也不取决于您是否在网络中。
哦,是的,是的。
通信需要数据链路层(L2)网络,底层物理层网络(L1:接口、端口、布线)也是如此。L2网络不一定需要使用MAC地址,但它仍然是必需的。
给定的L2协议(如以太网)可以使用各种L1协议(例如100 but、1000BASE-SX、10GBASE-CX),但在较低级别上谈论“网络”时通常会提到这两个层。
我不知道您所说的“低级别帧”是什么意思--这正是L2所做的,将字节组织成帧,并确保这些帧到达它们的本地目的地(有或没有寻址)。
对于不使用寻址的L2协议,例如查看PPP。
当然,您可以创建自己的网络协议栈,忽略所有OSI的东西--但是同样的功能仍然需要在某个地方。
当不需要L2或L1功能时,唯一的情况是通信仅限于一台主机:不需要寻址和物理移动数据,进程之间的通信可以保持在L3向上。
重新编辑有关无线网络:这也需要帧和寻址-因此第二层。MAC地址是一个属性的数据链路层。是的,您可以在第二层(=直接在数据链路层上的应用层),无线或有线上进行对话。
如果您询问是否总是需要网络层协议:不,如果您只在本地(在广播域中)进行通信,则不需要。
所以,我们就不能“广播”一个像"MAC地址ABCD“这样的帧,我想和EFGH谈谈,然后说'Hello!‘,如果EFGH在附近,它就会解码这个帧,而不是丢弃它,它只需要确认和进行类似的对话。
这大概就是Wi的工作原理。
我们能不能有两个承载网络卡的设备本质上就像对讲机,而不使用外部外设,因为网卡似乎已经有了这个设备?
是的,这是一个无线自组织网络。
发布于 2021-04-17 20:41:16
我来这里的前提是,无线通信只是电磁波,网卡应该能够解码电磁波。
那要看卡了。如果您正在考虑使用两台带有常规有线LAN端口的计算机(1000BASE-T /千兆以太网,或者其他什么),那么不,它实际上并不是那样工作的。在空气中发送信号的物理原理与通过电缆(或光纤)发送信号有一点不同。所以有了有线局域网,你至少需要一根电缆作为外部设备。
另一方面,如果您有无线局域网卡(802.11 / Wifi),那么您不需要电缆,因为硬件是为空中传输。虽然您确实需要设置一些设备,但要么让一个设备充当接入点,要么查看ad网络。
现在,假设您这样做,并且可以在主机(*)之间传递以太网帧,现在怎么办?我们还可以问,这是否仍然算“不存在于网络上”,或者我们是否刚刚创建了一个网络。
即使您不需要在网络( IP和网络层的主要功能之一)之间进行路由,但在上面的层上也有一些有用的东西。TCP提供逻辑连接、多路复用和可靠的传输。或者UDP只用于多路复用。
几乎所有现有的应用程序都假定IP ( IPv4或IPv6),所以您可能无论如何都想要设置一个IP网络,即使它使用的是Zeroconf和mDNS。这或多或少是这样的,或者你构建自己的软件,直接通过低层协议进行对话,最终构建自己的网络堆栈。
(*我假设那里的以太网是一种常见的情况。当然,这可能会有所不同。)
发布于 2021-04-17 06:08:59
您可以用以太网电缆连接两台计算机,它们将进行通信(可能只需要手动分配IP地址),或者,如果两台计算机处于wifi范围内,则可以让它们进行通信(这称为ad网络)。通信可能仍然会使用TCP/IP协议栈,因为这是大多数OS所支持的。如果需要,可以绕过操作系统(有一个名为DPDK的项目正是这样做的)。
https://networkengineering.stackexchange.com/questions/73533
复制相似问题