【发布时间】:2016-04-23 05:37:05
【问题描述】:
为什么我们需要一个数据包中的源ip地址和源mac地址信息,而其中一个就足以识别源?所有协议都需要它们吗?
编辑:对不起,我忘了提到“在一个数据包中”。我想知道从源到目的地的数据包传输时间。谢谢。
【问题讨论】:
标签: networking
为什么我们需要一个数据包中的源ip地址和源mac地址信息,而其中一个就足以识别源?所有协议都需要它们吗?
编辑:对不起,我忘了提到“在一个数据包中”。我想知道从源到目的地的数据包传输时间。谢谢。
【问题讨论】:
标签: networking
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 地址保持不变。 (如果是代理,它也会改变。)
【讨论】: