By the SNMP Monitoring team · Reviewed July 2026
Polling is pull: the manager asks on a timer over UDP 161. Traps are push: the agent fires an event toward UDP 162 when something happens. Neither replaces the other cleanly. Production setups that don't hate themselves usually combine them—poll for trends and capacity, trap for "link just died."
If you only remember one sentence: metrics love polling; discrete faults love traps (or better, informs). Parent: What is SNMP. PDU names: PDU types.
Polling (pull)
Manager owns the schedule. Every N seconds/minutes it sends Get / GetBulk, stores the Response, graphs the result, maybe alerts.
Pros:
- Predictable load and timing
- Works for continuous metrics (counters, gauges, % busy)
- You notice "agent silent" when polls fail
- Easy to reason about in an NMS
Cons:
- Misses events between polls (or delays them up to the interval)
- Chatty if you poll too hard or walk too much
- Depends on manager health and path to 161
Conceptual one-shot (your cron/NMS repeats it):
snmpget -v2c -c <RO_string> <host> 1.3.6.1.2.1.1.3.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (9000000) 1 day, 1:00:00.00
That's a poll. Boring. Reliable enough for uptime series when the path works. Interval strategy: monitoring frequency.
Traps (push)
Agent sends a notification when it thinks you should care—linkDown, coldStart, authentication failure, vendor trap. Receiver listens on UDP 162.
Pros:
- Low latency for the events the agent bothers to emit
- No need to poll every possible fault OID every 10 seconds
- Good for sparse, discrete state changes
Cons:
- UDP, unacknowledged for classic traps—packets vanish
- Agent must be healthy enough to send
- Config sprawl: every device needs the right trap target
- Useless as your only disk-full strategy if the box is wedged
Traps are not a free streaming telemetry bus. They're datagrams with opinions.

Comparison table
| Polling | Traps | |
|---|---|---|
| Direction | Manager → agent (161) | Agent → manager (162) |
| Latency for events | Up to poll interval | Near-immediate if delivered |
| Reliability | Retries under manager control | Classic traps unacked; can be lost |
| Best for | Metrics, trends, "is it answering?" | Discrete faults, state changes |
| Config load | OID lists + intervals on NMS | Trap destinations + filter rules |
| Silent failure mode | Missed polls / timeouts | Trap never sent or dropped on path |
If a row makes you uncomfortable, good—that's the trade-off you're accepting in prod.
The reliability gap & Informs
Classic traps are fire-and-forget over UDP. Network congestion, wrong destination, receiver down—message gone. No transport-level "got it."
InformRequest (v2c+) is the acknowledged sibling: receiver confirms, sender can retransmit. More moving parts, better odds for important events. Deep dive: informs.
Practical stance:
- Don't build life-safety or sole-path failover only on raw traps
- Prefer informs for critical notifications when devices support them
- Still poll the metrics that prove the world is healthy
I've seen trap-only designs miss a dead agent entirely—because dead agents don't send "I'm dead" traps. Polling would have timed out and paged.
When to use each
Numbered decision guide:
- Continuous capacity metrics (CPU, bandwidth, disk %) → poll.
- Discrete state change (link down, FRU removed) → trap/inform, plus a slower poll as backup if it matters.
- Need sub-minute fault signal but poll interval is 5 minutes → trap, don't just shrink all polls to 10s fleet-wide without thinking.
- Untrusted/lossy path for notifications → informs or something that isn't pure UDP hope; still harden the agent.
- Default for mixed estates → both: poll baselines + trap sharp edges.
Alert routing after either signal: monitoring alerts.
Polling frequency strategy
Faster polls catch issues sooner and beat up agents/networks. Slower polls are kinder and blinder. Split cadences by metric class—interface counters might want different timing than temperature.
Some teams also run external polls so a dead on-prem NMS isn't the only observer. Dual cadence (frequent + infrequent) shows up in external SNMPv2c designs—including the double-durability pattern used with ostr.io for off-box checks. Broader model: external monitoring. Frequency design notes: frequency.
Don't confuse "external poller" with traps. Different directions, different failure modes. You can use both.
Anti-patterns worth retiring
- Trap-only monitoring for servers that can wedge hard enough to stop sending traps.
- 5-second polls of everything because traps felt unreliable—now the agent and network pay forever.
- Polling sysUpTime every hour and calling it "availability"—you'll miss long outages that fit between samples, and you still won't see link flaps.
- Ignoring trap receiver capacity so a campus outage drops the very notifications you needed.
- No correlation: three traps and a failed poll are one incident, not four pages.
A sane baseline many teams land on:
- Poll a small allowlisted OID set on a human interval (minutes, not milliseconds).
- Enable traps/informs for link and hardware events the vendor documents.
- Alert on sustained poll failures and high-severity traps—with dedup.
- Review trap noise quarterly; disable junk.
Worked mini-scenario
Link flaps on a distribution switch:
- Trap path: linkDown hits the NMS in seconds if 162 is open and the trap destination is right. You page on the event.
- Poll path: interface oper status or error counters update on the next cycle—maybe five minutes later—unless you poll that OID aggressively.
- Miss modes: trap lost on UDP → you only see it on the next poll (or never, if you don't poll status). Poller down → traps might still land on a secondary receiver if you built one.
So you configure both: trap for speed, poll for truth and for "did we miss anything." Same story for authenticationFailure traps vs actually watching whether the agent still answers Gets.
That dual approach is boring. Boring is good. Exciting monitoring designs are how you get paged for the wrong reason—or not paged at all. Keep it dull on purpose.
Ports reminder: ports 161 & 162. Glossary: glossary.
Frequently asked questions
Difference between SNMP polling and traps?
Polling is scheduled pulls by the manager (UDP 161). Traps are asynchronous pushes from the agent to a receiver (UDP 162). Pull vs push.
Are SNMP traps reliable?
Classic traps are not reliable—no acknowledgment, UDP can drop them. InformRequest adds ack/retransmit. Still design for loss.
Should I use traps or polling?
Both, in most production networks. Poll metrics and health; trap (or inform) discrete events. Trap-only or poll-only each leave holes.
What port do traps use?
UDP 162 on the trap receiver / manager side. Queries use UDP 161 on the agent.