ARP网络监控与调试:

网络工程 协议论 ARP 射频
2022-02-07 18:18:04

我正在阅读 RFC 826,但是我无法获得网络监控和调试部分背后的上下文:

网络监控与调试:

上述地址解析协议允许机器获得关于以太网电缆上更高级别协议活动(例如,CHAOS、Internet、PUP、DECnet)的知识。它可以确定正在使用哪些以太网协议类型字段(按值)以及每个协议类型内的协议地址。事实上,监视器没有必要说出所涉及的任何更高级别的协议。它是这样的:

当监视器接收到地址解析数据包时,它总是会进入一个表中。它可以从数据包的 ar$hln 和 ar$pln 字段中确定硬件和协议地址的长度。如果操作码是回复,则监视器可以将数据包丢弃。如果操作码是 REQUEST 并且目标协议地址与监视器的协议地址匹配,则监视器会像往常一样发送 REPLY。通过这种方式,监视器只会得到一个映射,因为对请求的回复将直接发送到请求主机。监视器可以尝试发送自己的请求,但这可能会使两个监视器进入请求发送循环,因此必须小心。

因为协议和操作码没有组合成一个字段,所以监视器不需要知道哪个请求操作码与同一个更高级别协议的哪个回复操作码相关联。长度字段还应该提供足够的信息以使其能够“解析”协议地址,尽管它不知道协议地址的含义。

地址解析协议的工作实现也可用于调试非工作实现。假设硬件驱动程序将成功地广播以太网类型字段为 ether_type$ADDRESS_RESOLUTION 的数据包。数据包的格式可能不完全正确,因为初始实现可能有错误,并且表管理可能有点棘手。因为请求是广播的,监视器将接收数据包并在需要时显示它以进行调试。

对于这个含糊的问题,我深表歉意,但是我无法理解 ARP 模块与监控和调试过程之间的区别。

1个回答

假设您有一个包含多个主机的 LAN,并且您想要测试您正在开发的 ARP 实现。您可以设置一台主机来监控它使用 Wireshark 之类的东西接收到的网络流量。此主机仅用于监视和调试您的 ARP 实现。如果 ARP 使用单播,您需要让您的监控主机参与,因为它只会接收直接发送给它的帧,但是由于 ARP 使用广播,局域网上的每个主机,包括未参与的监控主机,都会收到 ARP 帧。监控主机可以在不参与测试的情况下捕获和解码 ARP 帧。这允许您查看 ARP 实现是否按照 RFC 正确编码。