【问题标题】:Can we connect to a computer on the same private network using MAC address?我们可以使用 MAC 地址连接到同一专用网络上的计算机吗?
【发布时间】:2016-12-28 05:47:17
【问题描述】:

我可以使用套接字编程使用私有 IP 地址连接两台具有私有网络的计算机。是否可以使用 MAC 地址做同样的事情?

如果可能,任何关于 Java/C/C++ 的示例都将不胜感激。我在网上找不到任何有用的帖子。

更新:

我很想知道是否可以仅通过知道 MAC 地址就可以连接到同一专用网络上的另一台计算机?问题背后的一个逻辑可能是每次重新启动路由器时分配给网络设备的 IP 地址可能不同。因此,在这种情况下,MAC 地址听起来更可靠。

(虽然我知道 MAC 地址也可以更改。)

【问题讨论】:

  • 你需要IP地址才能使套接字编程工作,也许你能提供更多关于你想要做什么的细节?
  • 我只是好奇我们是否可以通过知道 MAC 地址连接到另一台计算机。例如,每次重启路由器时,网络上特定设备的 IP 地址都会发生变化。
  • 有些协议只使用MAC地址,但它们只能在局域网上工作(它们不能被路由到另一个局域网)。由于只能在单个局域网上工作的限制,它们已经被淘汰了,尤其是在 1995 年互联网商业化之后。
  • 你说的 connect 是什么意思:字面意思是connect(2) 还是只是发送和接收数据?
  • @GhostCat 谢谢提醒。 :D

标签: java c networking private-network


【解决方案1】:

MAC 地址用于识别网络中的“物理”实体。

而套接字存在于 IP 层。

MAC 地址表示硬件对象;如果您希望这些对象进行通信,则需要查看其上方的层。或者你使用现有的协议;如UDP/TCP;或者你必须定义你自己的完整协议。

换句话说:MAC 地址的唯一功能是识别可见网络“范围”内的唯一硬件组件。 MAC 地址没有定义任何可用于将一个 MAC 地址端点连接到另一个端点的服务/协议。

所以,简而言之,答案是:不,这是不合格的。

【讨论】:

  • 查看我的更新,尽管您可能不喜欢我的回答。
  • 你之前说过。 “或者你使用现有的协议;比如 UDP/TCP。”然后你的更新说“不可能”。我很迷惑。我错过了什么吗?
  • 没有您的进一步工作是不可能的!
【解决方案2】:

是的。 IP 是一种可能的第 2 层协议,但您可以在以太网之上运行自己的协议。例如,FCoE 绕过 TCP-IP 并运行自己的协议。由于光纤通道可以支持网络流量和存储流量,因此理论上您可以使用 FCoE 连接您的网络。只需一点编程工作,您就可以添加一个套接字层。

【讨论】:

  • 那么,您是说现有协议无法实现?我必须自己实现吗?
  • @DilipRajBaral 令人惊讶的是,他告诉你的和我完全一样。 MAC 地址定义了一种寻址方案,而不是一种通信协议。
猜你喜欢
  • 1970-01-01
  • 2013-08-17
  • 1970-01-01
  • 2011-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 2013-08-26
相关资源
最近更新 更多