Networking 以太网帧源地址,而不是IPV4应答的ARP缓存?

Networking 以太网帧源地址,而不是IPV4应答的ARP缓存?,networking,ethernet,ipv4,arp,Networking,Ethernet,Ipv4,Arp,我正在一个资源极其有限的嵌入式设备上编写TCP/IP堆栈。 我想知道使用以太网帧的源mac地址回复IPV4数据包是否安全 当您想要回复IPV4数据包的源ip地址时,通常的过程是检查您的ARP缓存,如果它尚未填充,则执行ARP请求以获取MAC地址 相反,我想使用IPV4数据包进入的以太网帧的源mac地址。(因为我将始终拥有此功能,因此能够在不等待更多传入数据包的情况下响应数据包) 这一策略会带来问题吗 例如,在本地网络中,设备仅连接到一个路由器/交换机,应答mac地址必须是请求来自的地址,因此永远

我正在一个资源极其有限的嵌入式设备上编写TCP/IP堆栈。 我想知道使用以太网帧的源mac地址回复IPV4数据包是否安全

当您想要回复IPV4数据包的源ip地址时,通常的过程是检查您的ARP缓存,如果它尚未填充,则执行ARP请求以获取MAC地址

相反,我想使用IPV4数据包进入的以太网帧的源mac地址。(因为我将始终拥有此功能,因此能够在不等待更多传入数据包的情况下响应数据包)

这一策略会带来问题吗

例如,在本地网络中,设备仅连接到一个路由器/交换机,应答mac地址必须是请求来自的地址,因此永远不会出现问题。然而,我听说数据包在回复时并不总是遵循相同的路径。终端设备是否需要回复与请求不同的mac地址

我认为标准要求路由器在声明无法到达目的地之前发出ARP请求,因此我的想法是,即使在终端设备连接到两个路由器(一个用于传入数据包,一个用于传出)的设置中,即使我的设备回复传入数据包路由器,它会将它转发到传出路由器,纠正我设备的缺陷


当然,我意识到依靠其他设备符合标准来允许我的设备不符合标准是相当虚伪的…

简短回答:

行吗?是的,安全吗?没有

长答案

您可能遇到的问题:

  • 您需要回复ARP请求,即使您是发起TCP连接的人,TCP服务器仍会发出ARP请求以填充其自己的缓存

  • 如果网络配置不正确,您的设备将表现异常(例如:重复的IP地址)

  • 您的设备无法很好地处理网络更改(例如,IP地址从一个设备移动到另一个设备)


所以,您的设备只会回复传入的帧,而不会向未首先与之联系的设备发送帧?@RonMaupin正确。(除了做DHCP和SSDP的广播稍有例外,但这些广播不需要地址解析。)由于它不使用缓存,我认为它实际上比符合标准的设备更好地处理重复的IP和网络更改。是的,每台设备都需要对ARP请求做出响应,而这些请求是没有问题的。