无法从snmp端口接收响应

时间:2010-07-02 10:33:03

标签: snmp

我使用snmp来访问远程系统数据。但是根据要求iam将snmp请求数据编码为OAMPDU数据包格式并发送到远程系统。远程系统接收OAMPDU数据包,对其进行解码并发送snmp请求通过绑定到端口161的UDP套接字snmp代理。但是我无法接收来自snmp agent.i的响应,创建了一个绑定到161端口的udp套接字以接收响应。

如果我使用除161以外的任何其他空闲端口号来接收snmp代理,则不会将响应发送到该端口。

任何人都可以建议我如何克服这个问题。

我们可以为tx,rx ???

配置不同的端口

我们怎么知道snmp发送响应的端口???

1 个答案:

答案 0 :(得分:2)

每个UDP数据包都有一个源端口和一个目标端口。 SNMP管理器使用任何源端口和目标端口161发出SNMP请求。代理将回复管理器上的源端口。例如:

Manager                                    Agent

source port: <random number>
dest port: 161
content: what is your sysUpTime 
                                           source port: 161
                                           destination port: <same random number>
                                           content: sysUpTime is 42 seconds

回复到达random number端口,而不是端口161.因此,侦听端口161的管理员不太可能收到很多回复。而不是侦听端口161,而是侦听用于发送请求的同一套接字。该套接字将记住它选择发送的源端口。

P.S。当您使用SNMP进行查询时,SNMP的manager是UDP的client,而SNMP的agent是UDP的server