Netzwerküberwachung und Debugging (Network Monitoring and Debugging)
Das obige Adressauflösungsprotokoll ermöglicht es einer Maschine, Wissen über die höherstufige Protokollaktivität (z.B. CHAOS, Internet, PUP, DECnet) auf einem Ethernet-Kabel zu erlangen. Es kann bestimmen, welche Ethernet-Protokoll-Typfelder verwendet werden (nach Wert) und die Protokolladressen innerhalb jedes Protokolltyps. Tatsächlich ist es nicht notwendig, dass der Monitor eines der beteiligten höherstufigen Protokolle spricht. Es kann wie folgt durchgeführt werden:
Wenn ein Monitor ein Adressauflösungspaket empfängt, trägt er immer das <Protokolltyp, Absender-Protokolladresse, Absender-Hardware-Adresse> in eine Tabelle ein. Er kann die Länge der Hardware- und Protokolladresse aus den ar$hln- und ar$pln-Feldern des Pakets bestimmen. Wenn der Opcode REPLY ist, kann der Monitor das Paket verwerfen. Wenn der Opcode REQUEST ist und die Ziel-Protokolladresse mit der Protokolladresse des Monitors übereinstimmt, sendet der Monitor eine REPLY wie gewöhnlich. Der Monitor erhält nur eine Zuordnung auf diese Weise, da die REPLY auf die REQUEST direkt an den anfordernden Host gesendet wird. Der Monitor könnte versuchen, seine eigene REQUEST zu senden, aber dies könnte zwei Monitore in eine REQUEST-Sendeschleife bringen, und Vorsicht muss walten.
Da das Protokoll und der Opcode nicht in einem Feld kombiniert sind, muss der Monitor nicht wissen, welcher Request-Opcode mit welchem Reply-Opcode für dasselbe höherstufige Protokoll übereinstimmt. Die Längenfelder sollten auch genügend Informationen liefern, um ihm zu ermöglichen, Protokolladressen zu „parsen", obwohl er keine Kenntnis davon hat, was die Protokolladressen bedeuten.
Eine funktionierende Implementierung des Adressauflösungsprotokolls kann auch verwendet werden, um eine nicht funktionierende Implementierung zu debuggen. Wahrscheinlich wird ein Hardware-Treiber erfolgreich ein Paket mit einem Ethernet-Typfeld von ether_type$ADDRESS_RESOLUTION broadcasten. Das Format des Pakets ist möglicherweise nicht vollständig korrekt, da anfängliche Implementierungen Fehler haben können und die Tabellenverwaltung etwas knifflig sein kann. Da Anfragen gebroadcastet werden, empfängt ein Monitor das Paket und kann es bei Bedarf zum Debugging anzeigen.