The Simple Network Management Protocol (SNMP) is the fundamental network management protoco of the Internet Protocol Suite. SNMP itself is indeed quite simple; the complexity of real-world systems are in the definition and implementation of Management Information Bases (MIB) in the managed objects, and asynchronous events called traps by which managed objects can send information to the SNMP manager software.
Another way to describe the relationships is that the SNMP management software acts as a client to the MIB abstract definition of device-specific information in the managed object; the SNMP server function in that managed object returns the values of parts of the MIB in response to GET and PUT messages from SNMP. For the trap function, the managed object is the client that sends a message to the server.
While newer versions of SNMP have much more security features and complex manager-to-manager relationships, the basic protocol remains fairly straightforward. It runs over User Datagram Protocol (UDP), not Transmission Control Protocol (TCP), for several reasons: