Ein Vorteil der Abfrage besteht darin, dass der Schaden begrenzt wird, der verursacht werden kann, wenn eine Nachricht verloren geht oder der Zustand von etwas fehlerhaft wird. Wenn X Y alle fünf Sekunden nach seinem Status fragt, führt der Verlust einer Anforderung oder einer Antwort lediglich dazu, dass die Informationen von X nicht mehr 5, sondern 10 Sekunden alt sind. Wenn Y neu gestartet wird, kann X dies im nächsten Schritt herausfinden Zeit Y ist in der Lage, auf eine der Nachrichten von X zu antworten. Wenn X neu gestartet wird, wird Y möglicherweise nie danach gefragt, aber wer den Status von X beobachtet, sollte erkennen, dass es neu gestartet wurde.
Wenn X Y nicht abfragt, sondern Y ihn benachrichtigt, sobald sich sein Status ändert, und wenn sich der Status von Y ändert und eine Nachricht an X gesendet wird, aber aus welchem Grund auch immer diese Nachricht nicht empfangen wurde, wird X die Änderung möglicherweise nie bemerken . Ebenso, wenn Y neu gestartet wird und keinen Grund hat, X eine Nachricht über irgendetwas zu senden.
In einigen Fällen kann es hilfreich sein, dass X Y auffordert, autonom Nachrichten mit seinem Status zu senden, entweder in regelmäßigen Abständen oder bei Änderungen, und nur dann eine X-Abfrage durchführt, wenn es zu lange dauert, ohne etwas von Y zu hören X muss die meisten seiner Nachrichten senden (in der Regel sollte X Y zumindest gelegentlich darüber informieren, dass es immer noch Interesse am Empfang von Nachrichten hat, und Y sollte das Senden von Nachrichten beenden, wenn es ohne Anzeichen von Interesse zu lange dauert). Ein solches Design würde jedoch erfordern, dass Y beharrlich istBehalten Sie Informationen über X bei, anstatt einfach eine Antwort an denjenigen senden zu können, der sie abgefragt hat, und vergessen Sie dann sofort, wer das war. Wenn Y ein eingebettetes System ist, kann eine solche Vereinfachung dazu beitragen, den Speicherbedarf ausreichend zu reduzieren, um die Verwendung eines kleineren und billigeren Controllers zu ermöglichen.
Polling kann einen zusätzlichen Vorteil haben, wenn ein potenziell unzuverlässiges Kommunikationsmedium (z. B. UDP oder Funk) verwendet wird: Es kann die Notwendigkeit von Bestätigungen auf Verbindungsebene weitgehend eliminieren. Wenn X Y eine Statusanforderung Q sendet, antwortet Y mit einem Statusbericht R, und X hört R, X muss keine Verbindungsschichtbestätigung hören, damit Q weiß, dass sie empfangen wurde. Umgekehrt muss Y, sobald es R sendet, nicht mehr wissen oder sich darum kümmern, ob X es empfangen hat. Wenn X eine Statusanfrage sendet und keine Antwort erhält, kann es eine andere senden. Wenn Y einen Bericht sendet und X ihn nicht hört, sendet X eine weitere Anfrage. Wenn jede Anforderung einmal ausgeht und entweder eine Antwort liefert oder nicht, muss keine Partei wissen oder sich darum kümmern, ob eine bestimmte Nachricht empfangen wurde. Da das Senden einer Bestätigung möglicherweise fast so viel Bandbreite beansprucht wie eine Statusanforderung oder ein Statusbericht, Die Verwendung eines Roundtrips von Anforderungsberichten kostet nicht viel mehr als eine unaufgeforderte Meldung und Bestätigung. Wenn X einige Anforderungen sendet, ohne Antworten zu erhalten, muss es in einigen dynamisch gerouteten Netzwerken möglicherweise Bestätigungen auf Verbindungsebene aktivieren (und in seiner Anforderung nachfragen, dass Y dies ebenfalls tut), damit der zugrunde liegende Protokollstapel das Übermittlungsproblem erkennen und suchen kann eine neue Route, aber wenn die Dinge funktionieren, ist ein Anforderungsberichtsmodell effizienter als die Verwendung von Bestätigungen auf Verbindungsebene.