SNMP는 관리자와 에이전트의 개념을 사용하며, 보통 호스트인 관리자는 노변장치인 에이전트들의 집단을 제어하고 감시함
SNMP는 GetRequest, GetNextRequest, SetRequest, GetResponse, Trap의 메시지를 정의함
GetRequest 메시지는 변수의 값을 읽기 위하여 관리자(클라이언트)가 에이전트(서버)로 보내는 메시지임
GetNextRequest 메시지는 변수의 값을 읽기 위하여 관리자(클라이언트)가 에이전트(서버)로 보냄. 읽혀진 값은 메시지에 정의된 ObjectID 바로 다음의 객체의 값임. 이는 대부분 테이블에 있는 항목들의 값을 읽기 위해 사용됨. 만일 관리자가 항목들의 식별자를 모른다면, 관리자는 읽을 수가 없음. 하지만, 관리자는 GetNextRequest를 사용하고, 테이블의 ObjectID를 정의 할 수 잇음. 테이블의 첫번째 항목은 테이블의 ObjectID 바로 뒤의 ObjectID를 갖기 때문에, 첫 번째 항목의 값을 반환함. 관리자는 이 ObjectID를 사용하여 다음 항목의 값을 얻을 수 있으며, 이런 절차는 반복될 수 있음
GetResponse 메시지는 GetRequest와 GetNextRequest에 대한 응답으로 에이전트가 관리자에게 보내는 메시지임. 이는 관리자에 의해 요청된 변수의 값을 포함함. SetRequest 메시지는 관리자가 변수에 값을 설정(저장)하기 위해 전송됨. Trap 메시지는 에이전트가 사건을 관리자에게 보고하기 위해 전송함. 예를 들어, 만일 제이전트가 재 시동되면, 그는 관리자에게 이를 알리고 재시동 시간을 보고함.
이 다섯가지 형식 중 앞의 네 메시지는 비슷한 형식을 갖는 반면에 Trap 메시지는 상이함. 이 메시지들에 대한 필드는 다음과 같이 구성됨
- Version : 버전번호를 정의. 이 값은 실제로는 버전 번호보다 하나작음. 비록 버전 2가 제안되어 있지만, 현재 우리는 SNMP의 버전 1을 사용함
- Community : 비밀번호를 정의. 비밀번호가 없는 경우, 이 값은 public이란 문자열임
- Request ID : 순서 번호로서, 관리자가 요청 메시지에서 사용하며, 에이전트는 응답에서 반복함. 요청과 응답을 일치시키는 데 사용함
- Error status : 이것은 응답 메시지에서만 사용되는 정수로서 에이전트에 의해 보고되는 오류의 종류를 나타냄. 요청 메시지에서는 0 값이 사용됨.
- Error Index : 오류 식별자는 관리자에게 오류를 일으킨 변수가 어느 것인지를 알려주능 옵셋임
- VarBindList : 관리자가 읽기나 설정하기를 원하는 값을 갖는 변수들의 조합. 이 값들은 GetRequest와 GetNextRequest 에서는 0 임. Trap 메시지에서 이는 특정 메시지에 관련된 변수와 값을 보여줌
- Enterprise : Trap을 발생시키는 소프트웨어 패키지의 ObjectID를 정의
- Agent Address : TRARP을 생성하는 에이전트의 IP주소를 정의함
- Trap type : 일곱 개의 Trap 종류의 유형
- Specific code : 만일 Trap 종류의 값이 6이면, 이 필드는 제작회사에 의해 사용되는 특정한 코드를 정의함
- Time stamp : TRAP을 야기한 사건 이후 경과된 시간을 보여줌
출처 : 나원경 (2007), 「지능형교통시스템의 CCTV 제어용 SNMP 적용」, 광운대학교, 학위논문(석사)