Answers:
如果我已经知道要连接的计算机的MAC地址,是否可以直接连接到它?有这个例子吗?
您可以在较低级别进行连接,然后将数据包发送到同一本地网络上的其他计算机,但是如果不了解更多有关上层协议的信息,就很难知道要在这些数据包中放入什么。
例如,除了IP以外,还有一些网络协议可以通过以太网工作,并且实现这些协议的驱动程序完全按照您的描述进行操作-它们在不知道IP地址的情况下以低级连接(因为没有IP地址可知)并传输数据。
也就是说,MAC地址在局域网范围内的意义并不大,因此您需要能够理解它们的更高级别的协议和路由器,才能与其他网络上的计算机进行通信。
有点。
IP寻址在某种程度上是象征性的,通常依赖于较低层的网络协议(具有较少的层次结构)来实际完成传输。
在IP级别上,每台计算机在(至少)一个子网中具有(至少)一个IP。它也可能(通常确实)有一个“默认网关”(即一个IP地址,通过它它将所有数据包发送到本地子网以外的其他地方)。
抽象而言,发往Web端口的数据包看起来像这样:
[以太网头] [ip头] [tcp头] [有效载荷]
以太网头包含各种控制信息,包括LAN上的源和目标MAC地址。
IP标头包含各种控制信息,例如源IP和目标IP以及封装的协议(在此示例中为TCP)。
TCP头包含各种控制信息,各种标志(会话的内容是什么,序列号是什么,源和目标TCP端口,...)
有效负载仅由TCP传输,“仅由应用程序负责”。
当本地网络上的某人想要发送IP数据包到没有MAC地址的IP时,就使用ARP。
大多数机器都不会监听纯以太网连接,但是您仍然可以将MAC映射到IP地址。在非交换式LAN中,您只需要观察数据包,找到带有您要与之交谈的源或目标MAC的东西,然后解析IP。
如果该计算机具有某种以太网级别的侦听器,则可以与之交谈,但是您将无法从本地LAN之外与之进行交谈,因为发往该计算机的以太网帧不会被拾取。本地路由器的另一侧。
这篇文章比较老,但我认为它没有正确的答案。
如果您可以连接到知道同一网络上的MAC的设备(最好是交叉电缆)。您可以为MAC分配一个IP地址,然后以这种方式访问该IP:
Microsoft Windows Windows系统要求MAC地址(以太网地址)的每个数字之间都包含破折号“-”。
arp -s 192.168.1.2 00-80-77-31-01-07
ping 192.168.1.2
UNIX / Linux UNIX和Linux系统在MAC地址(以太网地址)的每个数字之间需要冒号“:”字符。
arp -s 192.168.1.2 00:80:77:31:01:07
ping 192.168.1.2
但是,要使此功能起作用,您必须位于同一以太网段上(也就是说,您和您尝试连接的设备之间不能有路由器)。