Zum Hauptinhalt springen

4. Protokollspezifikation

4.1. Gemeinsame Konstrukte

Alle SNMP-PDUs werden unter Verwendung der in Abschnitt 3 definierten ASN.1-Struktur konstruiert.

Die request-id wird verwendet, um zwischen ausstehenden Anfragen zu unterscheiden, und von der SNMP-Entität, die Befehlsbeantworteranwendungen unterstützt, um das request-id-Feld einer Response-PDU zu generieren. Durch Verwendung der request-id kann eine SNMP-Entität, die Befehlsgeneratoranwendungen unterstützt, eingehende Response-PDUs mit ausstehenden Anfragen korrelieren, selbst wenn mehrere Anfragen an dieselbe SNMP-Entität gleichzeitig ausstehen. In Fällen, in denen ein unzuverlässiger Transportdienst verwendet wird, kann dieselbe request-id für Neuübertragungen derselben Anfrage verwendet werden, dies ist jedoch nicht erforderlich. Der Wert der request-id muss nicht sequenziell sein, und Implementierungen sollten darauf achten, einen kürzlich verwendeten request-id-Wert nicht zu wiederholen, da die vorherige Anfrage möglicherweise empfangen wurde, die Antwort jedoch verloren ging.

Die variable-bindings-Komponente aller PDUs ist eine Liste von Variablenbindungen. Wenn eine PDU von einer Befehlsgeneratoranwendung gesendet wird, stellt diese Liste die angeforderten Verwaltungsinformationen oder die erteilten Befehle dar. Im Falle von Antworten auf Abruf- und Änderungsoperationen enthält diese Liste die Verwaltungsinformationen. Im Falle von Antworten, die Ausnahmen melden, enthält der Wert jeder Variablenbindung in der Liste einen der Ausnahmewerte: noSuchObject, noSuchInstance oder endOfMibView.

Jede Variablenbindung ist eine Paarung eines Namens und eines Werts. Der Name ist ein OBJECT IDENTIFIER, der eine bestimmte Objektinstanz spezifiziert, und der Wert repräsentiert den Wert der Objektinstanz.

4.2. PDU-Verarbeitung

Dieser Abschnitt beschreibt die Verarbeitung jedes PDU-Typs.

4.2.1. Die GetRequest-PDU

Die GetRequest-PDU wird von einer Befehlsgeneratoranwendung generiert, um den Wert bestimmter Objektinstanzen abzurufen.

Nach Empfang einer GetRequest-PDU verarbeitet die empfangende SNMP-Entität, die Befehlsbeantworteranwendungen unterstützt, jede Variablenbindung in der Variablenbindungsliste, um eine Response-PDU zu erzeugen. Alle Felder der Response-PDU haben dieselben Werte wie die entsprechenden Felder der empfangenen Anfrage, sofern unten nicht anders angegeben.

Jede Variablenbindung wird wie folgt verarbeitet:

  1. Wenn der Name der Variablenbindung genau mit dem Namen einer für diese Anfrage zugänglichen Variablen übereinstimmt, wird das Wertfeld der Variablenbindung auf den Wert der benannten Variablen gesetzt.

  2. Andernfalls, wenn der Name der Variablenbindung kein OBJECT IDENTIFIER-Präfix hat, das genau mit dem OBJECT IDENTIFIER-Präfix einer für diese Anfrage zugänglichen Variablen übereinstimmt, wird das Wertfeld der Variablenbindung auf noSuchObject gesetzt.

  3. Andernfalls wird das Wertfeld der Variablenbindung auf noSuchInstance gesetzt.

Wenn die Verarbeitung einer Variablenbindung aus einem anderen Grund als den oben aufgeführten fehlschlägt, wird die Response-PDU modifiziert, um einen Fehlerzustand anzuzeigen. Das error-status-Feld wird auf einen Wert gesetzt, der die Art des Fehlers anzeigt. Der Wert des error-index-Feldes wird auf den Index der Variablenbindung gesetzt, bei der die Verarbeitung fehlgeschlagen ist (Variablenbindungen werden ab eins nummeriert). Das variable-bindings-Feld wird dann modifiziert: Alle Variablenbindungen außer derjenigen, die den Fehler verursacht hat, werden entfernt, und die Variablenbindung, die den Fehler verursacht hat, wird durch eine identische Variablenbindung ersetzt, außer dass das Wertfeld auf NULL gesetzt wird.

Die generierte Response-PDU wird an den Urheber der GetRequest-PDU zurückgegeben.

4.2.2. Die GetNextRequest-PDU

Die GetNextRequest-PDU wird von einer Befehlsgeneratoranwendung generiert, um den Wert von Objektinstanzen abzurufen, bei denen der Name der abzurufenden Objektinstanzen unbekannt ist.

Nach Empfang einer GetNextRequest-PDU verarbeitet die empfangende SNMP-Entität, die Befehlsbeantworteranwendungen unterstützt, jede Variablenbindung in der Variablenbindungsliste, um eine Response-PDU zu erzeugen. Alle Felder der Response-PDU haben dieselben Werte wie die entsprechenden Felder der empfangenen Anfrage, sofern unten nicht anders angegeben.

Jede Variablenbindung wird wie folgt verarbeitet:

  1. Der Name der Variablenbindung wird in der lexikographisch geordneten Liste der Namen aller Variablen lokalisiert, die für diese Anfrage zugänglich sind (die geordnete Liste ist die konzeptionelle Vereinigung der einzelnen geordneten Listen von Variablen, die für alle MIB-Ansichten gepflegt werden).

  2. Der Name des nächstgelegenen lexikographischen Nachfolgers des Namens der Variablenbindung wird bestimmt. Dies ist der Name der lexikographisch nächsten Variablen, die für diese Anfrage zugänglich ist.

  3. Wenn kein lexikographischer Nachfolger vorhanden ist, wird das Wertfeld der Variablenbindung auf endOfMibView gesetzt, und das Namensfeld der Variablenbindung wird auf den Namen aus der Anfrage gesetzt.

  4. Andernfalls wird das Wertfeld der Variablenbindung auf den Wert der benannten Variablen gesetzt, und das Namensfeld der Variablenbindung wird auf den Namen dieser Variablen gesetzt.

Wenn die Verarbeitung einer Variablenbindung aus einem anderen Grund als den oben aufgeführten fehlschlägt, wird die Response-PDU modifiziert, um einen Fehlerzustand anzuzeigen. Das error-status-Feld wird auf einen Wert gesetzt, der die Art des Fehlers anzeigt. Der Wert des error-index-Feldes wird auf den Index der Variablenbindung gesetzt, bei der die Verarbeitung fehlgeschlagen ist. Das variable-bindings-Feld wird dann wie bei der GetRequest-PDU-Verarbeitung beschrieben modifiziert.

Die generierte Response-PDU wird an den Urheber der GetNextRequest-PDU zurückgegeben.

4.2.2.1. Beispiel für Tabellendurchlauf

Eine der wichtigsten Verwendungen der GetNextRequest-PDU ist das Durchlaufen konzeptioneller Informationstabellen innerhalb einer MIB. Die Semantik dieses PDU-Typs macht solche Durchläufe recht einfach.

Die erste GetNextRequest-PDU in einem Durchlauf wird ausgegeben, um die erste Zeile der Tabelle zu erhalten. Die Variablenbindungen in dieser Anfrage benennen typischerweise die Tabelleneintragsobjekte, können aber auch jeden vorhergehenden Objektnamen benennen. Die Semantik der GetNextRequest-PDU diktiert, dass die zurückgegebenen Variablenbindungen diejenigen der ersten Zeile der Tabelle sein werden.

Nachfolgende GetNextRequest-PDUs werden ausgegeben, um nachfolgende Zeilen der Tabelle zu erhalten. Jede dieser PDUs spezifiziert in ihren Variablenbindungen den Namen der Variablen, die in der vorherigen Response-PDU zurückgegeben wurde. Da diese Namen lexikographisch geordnet sind und da die Semantik der GetNextRequest-PDU diktiert, dass die zurückgegebenen Namen die lexikographischen Nachfolger derjenigen in der Anfrage sind, werden die Zeilen der Tabelle in lexikographischer Reihenfolge zurückgegeben.

Der Durchlaufprozess ist abgeschlossen, wenn der Name einer in einer Response-PDU zurückgegebenen Variablen nicht den Namen des Tabelleneintragsobjekts als Präfix hat. Dies tritt auf, weil der Agent keine weiteren Instanzen in dieser Tabelle hat, oder weil die lexikographisch nächste Objektinstanz eine Instanz eines anderen Objekttyps ist (weil der lexikographisch nächste Objekttyp kein Spaltenobjekt dieser Tabelle ist oder ein Spaltenobjekt einer anderen Tabelle ist).

Dieses Beispiel demonstriert den Tabellendurchlauf unter Verwendung der GetNextRequest-PDU. Es verwendet die fiktive Tabelle "fooTable", die drei Objekte enthält:

fooIndex    OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS not-accessible
STATUS current
::= { fooEntry 1 }

fooDescr OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
::= { fooEntry 2 }

fooValue OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-write
STATUS current
::= { fooEntry 3 }

Angenommen, die folgenden Instanzen existieren:

fooIndex.1 = 1
fooDescr.1 = "alpha"
fooValue.1 = 10
fooIndex.2 = 2
fooDescr.2 = "beta"
fooValue.2 = 20

Die Befehlsgeneratoranwendung gibt eine GetNextRequest-PDU mit den folgenden Variablenbindungen aus:

fooIndex
fooDescr
fooValue

Der Agent antwortet mit einer Response-PDU, die Folgendes enthält:

fooIndex.1 = 1
fooDescr.1 = "alpha"
fooValue.1 = 10

Die Befehlsgeneratoranwendung gibt eine weitere GetNextRequest-PDU aus mit:

fooIndex.1
fooDescr.1
fooValue.1

Der Agent antwortet mit:

fooIndex.2 = 2
fooDescr.2 = "beta"
fooValue.2 = 20

Die Befehlsgeneratoranwendung gibt eine weitere GetNextRequest-PDU aus mit:

fooIndex.2
fooDescr.2
fooValue.2

Wenn keine weiteren Zeilen in der Tabelle vorhanden sind, könnte der Agent mit Variablenbindungen für Objekte antworten, die nicht in fooTable enthalten sind, was darauf hinweist, dass das Ende der Tabelle erreicht wurde.

4.2.3. Die GetBulkRequest-PDU

Die GetBulkRequest-PDU wird von einer Befehlsgeneratoranwendung generiert, um große Datenmengen effizient abzurufen, wie z.B. mehrere Zeilen in einer Tabelle.

Nach Empfang einer GetBulkRequest-PDU verarbeitet die empfangende SNMP-Entität, die Befehlsbeantworteranwendungen unterstützt, die Anfrage wie folgt:

Das non-repeaters-Feld gibt die Anzahl der Variablenbindungen in der Variablenbindungsliste an, für die ein einzelner lexikographischer Nachfolger zurückgegeben werden soll.

Das max-repetitions-Feld gibt die maximale Anzahl lexikographischer Nachfolger an, die für die verbleibenden Variablenbindungen (diejenigen nach den ersten non-repeaters-Bindungen) in der Variablenbindungsliste zurückgegeben werden sollen.

Die empfangende SNMP-Entität erzeugt eine Response-PDU gemäß den folgenden Regeln:

  1. Das request-id-Feld der Response-PDU wird auf den Wert des request-id-Feldes der empfangenen GetBulkRequest-PDU gesetzt.

  2. Das error-status-Feld der Response-PDU wird auf noError gesetzt, und das error-index-Feld wird auf Null gesetzt.

  3. Die Variablenbindungsliste der Response-PDU wird gemäß dem folgenden Verfahren gefüllt:

    a. Sei N die Anzahl der Variablenbindungen in der Variablenbindungsliste der GetBulkRequest-PDU.

    b. Sei M der Wert des max-repetitions-Feldes der GetBulkRequest-PDU.

    c. Sei R der Wert des non-repeaters-Feldes der GetBulkRequest-PDU.

    d. Für die ersten R Variablenbindungen in der Variablenbindungsliste der GetBulkRequest-PDU führe die GetNext-Operation für jede aus und platziere die Ergebnisse in der Variablenbindungsliste der Response-PDU.

    e. Für jede der verbleibenden (N - R) Variablenbindungen in der Variablenbindungsliste der GetBulkRequest-PDU werden die folgenden Schritte M-mal oder bis keine weiteren lexikographischen Nachfolger vorhanden sind, ausgeführt:

    i. Führe die GetNext-Operation für die Variablenbindung aus.

    ii. Platziere das Ergebnis in der Variablenbindungsliste der Response-PDU.

    iii. Verwende das Ergebnis als Basis für die nächste Iteration (falls vorhanden) dieses Schritts.

  4. Wenn die Größe der generierten Response-PDU eine lokale Einschränkung oder die maximale Nachrichtengröße der Quelle der Anfrage überschreitet, wird die Antwort mit einer alternativen Variablenbindungsliste generiert, unter Verwendung eines kleineren Werts für max-repetitions oder weniger Variablenbindungen, sodass die Größenbeschränkungen erfüllt werden. Beachten Sie, dass in diesem Fall, wenn ein kleinerer Wert für max-repetitions verwendet wird, der Wert des max-repetitions-Feldes in der Response-PDU dennoch auf den Wert aus der GetBulkRequest-PDU gesetzt wird (d.h. er wird nicht dekrementiert, um den tatsächlich verwendeten kleineren Wert widerzuspiegeln).

Wenn die Verarbeitung einer Variablenbindung aus einem anderen Grund als den oben aufgeführten fehlschlägt, wird die Response-PDU modifiziert, um einen Fehlerzustand anzuzeigen. Das error-status-Feld wird auf einen Wert gesetzt, der die Art des Fehlers anzeigt. Der Wert des error-index-Feldes wird auf den Index der Variablenbindung in der GetBulkRequest-PDU gesetzt, bei der die Verarbeitung fehlgeschlagen ist. Das variable-bindings-Feld wird dann wie bei der GetRequest-PDU-Verarbeitung beschrieben modifiziert.

Die generierte Response-PDU wird an den Urheber der GetBulkRequest-PDU zurückgegeben.

4.2.3.1. Ein weiteres Beispiel für Tabellendurchlauf

Dieses Beispiel demonstriert die Verwendung der GetBulkRequest-PDU zum Abrufen mehrerer Zeilen aus einer Tabelle. Betrachten Sie dieselbe "fooTable" aus dem vorherigen Beispiel.

Die Befehlsgeneratoranwendung möchte bis zu zwei Zeilen aus fooTable abrufen. Sie gibt eine GetBulkRequest-PDU aus mit:

  • non-repeaters = 0
  • max-repetitions = 2
  • Variablenbindungen:
    fooIndex
    fooDescr
    fooValue

Der Agent antwortet mit einer Response-PDU, die bis zu 2 × 3 = 6 Variablenbindungen enthält:

fooIndex.1 = 1
fooDescr.1 = "alpha"
fooValue.1 = 10
fooIndex.2 = 2
fooDescr.2 = "beta"
fooValue.2 = 20

Wenn weitere Zeilen in der Tabelle vorhanden wären, könnte die Befehlsgeneratoranwendung fortfahren, indem sie eine weitere GetBulkRequest-PDU ausgibt, wobei die zuletzt zurückgegebenen Objektnamen als Startpunkt verwendet werden.

Der Vorteil der GetBulkRequest-PDU besteht darin, dass sie die Anzahl der Protokollaustausche reduziert, die zum Abrufen einer großen Tabelle erforderlich sind, indem mehrere Zeilen in einer einzigen Operation abgerufen werden können.

4.2.4. Die Response-PDU

Die Response-PDU wird von einer SNMP-Entität generiert, die Befehlsbeantworteranwendungen unterstützt, als Antwort auf GetRequest-PDU, GetNextRequest-PDU, GetBulkRequest-PDU, SetRequest-PDU oder InformRequest-PDU, wie durch die in den Abschnitten 4.2.1, 4.2.2, 4.2.3, 4.2.5 bzw. 4.2.7 spezifizierten Verfahren angegeben.

Nach Empfang einer Response-PDU verarbeitet die empfangende SNMP-Entität, die Befehlsgenerator- oder Benachrichtigungsempfängeranwendungen unterstützt, diese gemäß den Verfahren der Anwendung.

Das request-id-Feld der Response-PDU wird von der empfangenden Entität verwendet, um die Antwort mit der ursprünglichen Anfrage zu korrelieren.

Das error-status-Feld der Response-PDU kann auf einen der folgenden Werte gesetzt werden:

  • noError: Zeigt an, dass während der Verarbeitung der Anfrage kein Fehler aufgetreten ist.

  • tooBig: Zeigt an, dass der Agent keine Response-PDU generieren konnte, deren Größe innerhalb der lokalen Beschränkungen oder der maximalen Nachrichtengröße der Quelle der Anfrage lag.

  • noSuchName: Wird für Proxy-Kompatibilität verwendet. Dieser Fehler sollte von einer SNMPv2-Entität nicht generiert werden.

  • badValue: Wird für Proxy-Kompatibilität verwendet. Dieser Fehler sollte von einer SNMPv2-Entität nicht generiert werden.

  • readOnly: Wird für Proxy-Kompatibilität verwendet. Dieser Fehler sollte von einer SNMPv2-Entität nicht generiert werden.

  • genErr: Zeigt an, dass während der Verarbeitung ein Fehler aufgetreten ist, der keiner der oben genannten Fehler ist.

  • noAccess: Zeigt an, dass der Zugriff auf das Objekt aus Sicherheitsgründen verweigert wurde.

  • wrongType: Zeigt an, dass das Wertfeld der Variablenbindung den falschen Typ für das angegebene Objekt hat.

  • wrongLength: Zeigt an, dass das Wertfeld der Variablenbindung die falsche Länge für das angegebene Objekt hat.

  • wrongEncoding: Zeigt an, dass das Wertfeld der Variablenbindung die falsche Codierung für das angegebene Objekt hat.

  • wrongValue: Zeigt an, dass das Wertfeld der Variablenbindung einen Wert hat, der kein gültiger Wert für das angegebene Objekt ist.

  • noCreation: Zeigt an, dass die angegebene Objektinstanz möglicherweise nicht erstellt werden kann.

  • inconsistentValue: Zeigt an, dass das Wertfeld der Variablenbindung mit den Werten anderer Objekte inkonsistent ist.

  • resourceUnavailable: Zeigt an, dass die erforderlichen Ressourcen nicht verfügbar sind, um die angeforderte Operation auszuführen.

  • commitFailed: Zeigt an, dass der Versuch, die Werte zu bestätigen, fehlgeschlagen ist.

  • undoFailed: Zeigt an, dass der Versuch, den vorherigen Satz von Werten rückgängig zu machen, fehlgeschlagen ist.

  • authorizationError: Zeigt an, dass der Zugriff auf das angegebene Objekt nicht autorisiert ist.

  • notWritable: Zeigt an, dass das angegebene Objekt nicht beschreibbar ist.

  • inconsistentName: Zeigt an, dass der Name der angegebenen Objektinstanz mit den Werten anderer Objekte inkonsistent ist.

Das error-index-Feld wird in einer Response-PDU, die als Antwort auf eine GetRequest-PDU, GetNextRequest-PDU oder GetBulkRequest-PDU generiert wurde, die keinen Fehler verursacht hat, auf Null gesetzt. Andernfalls wird es auf den Index der Variablenbindung gesetzt, die den Fehler verursacht hat.

4.2.5. Die SetRequest-PDU

Die SetRequest-PDU wird von einer Befehlsgeneratoranwendung generiert, um anzufordern, dass die Werte einer oder mehrerer Objektinstanzen geändert werden.

Nach Empfang einer SetRequest-PDU versucht die empfangende SNMP-Entität, die Befehlsbeantworteranwendungen unterstützt, die Werte der in der Variablenbindungsliste benannten Objektinstanzen auf die angegebenen Werte zu setzen.

Die Verarbeitung der SetRequest-PDU erfolgt in zwei Phasen:

Phase eins:

In der ersten Phase wird die Anfrage validiert. Wenn alle Validierungen erfolgreich sind, wird die zweite Phase initiiert. Wenn eine Validierung fehlschlägt, schlägt die gesamte Operation fehl, und eine Response-PDU wird generiert, wobei das error-status-Feld gesetzt wird, um die Art des Fehlers anzuzeigen, und das error-index-Feld auf den Index der Variablenbindung gesetzt wird, die den Fehler verursacht hat.

Die folgenden Validierungen werden in der ersten Phase durchgeführt:

  1. Das von jeder Variablenbindung benannte Objekt wird validiert, um sicherzustellen, dass:

    • Der Name ein gültiger OBJECT IDENTIFIER ist
    • Das Objekt existiert und zugänglich ist
    • Das Objekt beschreibbar ist
  2. Der Wert jeder Variablenbindung wird validiert, um sicherzustellen, dass:

    • Die Syntax korrekt ist
    • Die Länge angemessen ist
    • Der Wert im akzeptablen Bereich liegt
    • Der Wert mit den Werten verwandter Objekte konsistent ist

Phase zwei:

Wenn die erste Phase erfolgreich abgeschlossen wird, beginnt die zweite Phase. In dieser Phase werden die Werte der Objektinstanzen gesetzt.

Wenn die zweite Phase aus irgendeinem Grund fehlschlägt, wird versucht, alle während dieser Phase vorgenommenen Änderungen rückgängig zu machen (ein "Rollback"). Wenn das Rollback erfolgreich ist, wird eine Response-PDU mit error-status auf commitFailed gesetzt generiert. Wenn das Rollback fehlschlägt, wird eine Response-PDU mit error-status auf undoFailed gesetzt generiert.

Wenn die zweite Phase erfolgreich abgeschlossen wird, wird eine Response-PDU generiert mit:

  • error-status auf noError gesetzt
  • error-index auf Null gesetzt
  • variable-bindings-Liste, die die Namen und Werte aller erfolgreich gesetzten Objektinstanzen enthält

Die generierte Response-PDU wird an den Urheber der SetRequest-PDU zurückgegeben.

Atomarität:

Die SetRequest-PDU ist atomar - entweder werden alle Variablen aktualisiert, oder keine wird aktualisiert. Dies stellt sicher, dass das verwaltete System niemals in einem inkonsistenten Zwischenzustand belassen wird.

4.2.6. Die SNMPv2-Trap-PDU

Die SNMPv2-Trap-PDU wird von einer SNMP-Entität generiert, die Benachrichtigungsursprunganwendungen unterstützt, im Namen einer Benachrichtigungsgeneratoranwendung. Sie wird verwendet, um unaufgeforderte Benachrichtigungen über Ereignisse an eine SNMP-Entität bereitzustellen, die Benachrichtigungsempfängeranwendungen unterstützt.

Die ersten beiden Variablenbindungen in der Variablenbindungsliste einer SNMPv2-Trap-PDU sind sysUpTime.0 [RFC3418] bzw. snmpTrapOID.0 [RFC3418]. Die Variablenbindung sysUpTime.0 repräsentiert die verstrichene Zeit zwischen der letzten Initialisierung der SNMP-Entität und der Generierung des Traps. Die Variablenbindung snmpTrapOID.0 identifiziert den Typ des gesendeten Traps.

Wenn die NOTIFICATION-TYPE-Makro-Aufrufung, die dem Wert von snmpTrapOID.0 entspricht, OBJECTS-Klauseln enthält, enthält die Variablenbindungsliste auch Variablenbindungen für die in diesen Klauseln angegebenen Objekte. Zusätzliche Variablenbindungen können nach Ermessen der Benachrichtigungsursprunganwendung in die Variablenbindungsliste aufgenommen werden.

Nach Empfang einer SNMPv2-Trap-PDU verarbeitet die empfangende SNMP-Entität, die Benachrichtigungsempfängeranwendungen unterstützt, den Trap gemäß den Verfahren der empfangenden Anwendung. Für eine SNMPv2-Trap-PDU wird keine Antwort generiert.

4.2.7. Die InformRequest-PDU

Die InformRequest-PDU wird von einer SNMP-Entität generiert, die Benachrichtigungsursprunganwendungen unterstützt, im Namen einer Benachrichtigungsgeneratoranwendung. Sie wird verwendet, um Benachrichtigungen über Ereignisse an eine SNMP-Entität bereitzustellen, die Benachrichtigungsempfängeranwendungen unterstützt, mit Empfangsbestätigung.

Die ersten beiden Variablenbindungen in der Variablenbindungsliste einer InformRequest-PDU sind sysUpTime.0 bzw. snmpTrapOID.0, wie für SNMPv2-Trap-PDU beschrieben.

Nach Empfang einer InformRequest-PDU verarbeitet die empfangende SNMP-Entität, die Benachrichtigungsempfängeranwendungen unterstützt, das Inform gemäß den Verfahren der empfangenden Anwendung und generiert eine Response-PDU. Die Response-PDU hat denselben Wert in ihrem request-id-Feld wie die empfangene InformRequest-PDU, einen error-status von noError und einen error-index von Null. Das variable-bindings-Feld der Response-PDU ist identisch mit dem der empfangenen InformRequest-PDU.

Die generierte Response-PDU wird an den Urheber der InformRequest-PDU zurückgegeben. Dies bietet eine Bestätigung, dass die Benachrichtigung empfangen wurde.