用于IPV4回复的以太网帧源地址而不是ARP缓存?

时间:2017-05-18 20:41:40

标签: networking ethernet ipv4 arp

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

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

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

这种策略会不会引起问题?

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

我认为标准要求路由器在声明目的地不可达之前自己发出ARP请求,所以我的想法是即使在终端设备连接到两个路由器的设置中(一个用于传入数据包,另一个用于传入数据包)对于传出),即使我的设备回复传入的数据包路由器,它只是将它转发到传出的路由器,纠正我的设备的不足。

当然,我意识到依赖其他设备符合标准,让我的设备不遵守标准是相当虚伪......

1 个答案:

答案 0 :(得分:0)

简短答案:

会起作用吗?是的,安全吗?不。

好答案

您可能会遇到的问题:

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

  • 如果网络配置不正确(例如:重复的IP地址),您的设备的行为就会很奇怪

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