Networking 为什么一个包上同时有MAC和IP地址?

Networking 为什么一个包上同时有MAC和IP地址?,networking,Networking,为什么我们需要一个包中的源ip地址和源mac地址信息,而其中一个足以识别源?所有协议都需要它们吗 编辑:对不起,我忘了提到“在一个包里”。我想知道数据包从源传输到目的地的时间。谢谢。MAC地址是第二层地址,IP地址是第三层地址,端口是第四层地址 MAC地址不在包头中,而是在帧头中。数据包头中只有第3层地址。端口位于段标头中 MAC地址仅在LAN上有效。它们位于帧头中,帧在第3层边界(路由器)处剥离。然后,路由器使用具有第3层地址的第3层报头将数据包转发到下一个接口,在该接口中,路由器将使用新的第

为什么我们需要一个包中的源ip地址和源mac地址信息,而其中一个足以识别源?所有协议都需要它们吗


编辑:对不起,我忘了提到“在一个包里”。我想知道数据包从源传输到目的地的时间。谢谢。

MAC地址是第二层地址,IP地址是第三层地址,端口是第四层地址

MAC地址不在包头中,而是在帧头中。数据包头中只有第3层地址。端口位于段标头中


MAC地址仅在LAN上有效。它们位于帧头中,帧在第3层边界(路由器)处剥离。然后,路由器使用具有第3层地址的第3层报头将数据包转发到下一个接口,在该接口中,路由器将使用新的第2层地址为新的第2层链路构建新的第2层帧。

在网络中,只有IP地址足够。但在不同的网络中,路由器需要根据MAC地址解析IP地址。IP地址可以变化,但MAC地址是恒定的。一台机器可以通过物理地址(即MAC)连接到另一台机器


对于大多数TCP/IP协议,您都需要这两种协议。

您需要源IP地址,因为答案是这样的。这将在包的整个行程中保持不变。这也不一定是有效的。(与IP地址欺骗的情况类似。)

下一个跃点(路由器)需要源mac地址,不能超过该地址。如果下一个跃点第一次看到您,它将使用您的IP地址和MAC地址相应地更新其路由表


如果下一个跃点无法解析目标IP地址或找不到路径,它将决定丢弃数据包并通知您。但是如果它找到一条路径并转发数据包,那么它将在源MAC地址字段中替换自己的MAC地址。但在这种情况下,源IP地址保持不变。(如果是代理,它也会改变。)

IP不需要MAC地址。IP可以在许多第二层协议上运行,其中一些协议不使用MAC地址。在以太网(LAN)中,您肯定需要MAC地址,因为这是以太网帧传送到目的地的方式。另外,MAC地址不会在不同的网络上显示。是的,你是对的。但对于外行语言来说,很难理解分层概念。所以我给出了一个笼统的答案,那就是TCP/IP协议套件。问题是你写的是错误的和误导性的。任何从事网络编程的人都需要完全理解层是如何工作的,而外行语言在程序员网站上真的没有一席之地。非常感谢。