SNMP đã phát triển tới phiên bản 3 nhƣng SNMPv1 và SNMPv2 đƣợc sử dụng phổ biến, trong đó SNMPv2 chiếm ƣu thế hơn và đƣợc cài đặt ở hầu hết trên các phần mềm quản trị mạng hiện nay. Để hiểu rõ hơn tại sao SNMPv2 lại đƣợc sử dụng phổ biến, trƣớc hết ta xem xét sơ lƣợc từng phiên bản.
- SNMPv1: là phiên bản đầu tiên của giao thức SNMP, nó đƣợc định nghĩa trong RFC 1157. Đây là chuẩn đầy đủ của IETF. Vấn đề bảo mật của SNMPv1 dựa trên nguyên tắc cộng đồng. Hoạt động của SNMPv1 dựa trên ba tên định danh: read-only, read-write và trap. Các tên định danh này đƣợc coi nhƣ các mật khẩu (ở dạng xâu ký tự
rõ), chúng cho phép bất kỳ ứng dụng nào dựa trên SNMP cũng có thể truy nhập đƣợc các thông tin của đối tƣợng đƣợc quản lý. Các thao tác trao đổi thông tin dựa trên tập lệnh cơ bản.
- SNMPv2 hay SNMPv2c: là phiên bản thứ 2 của giao thức SNMP. Trong đó, SNMPv2c dựa trên các chuỗi “community”. Nó đƣợc định nghĩa trong RFC 1905, 1906, 1907 và đây chỉ là bản thử nghiệm của IETF. Mặc dù SNMPv2 là phiên bản thử nghiệm nhƣng nhiều nhà sản xuất đã đƣa nó vào thực nghiệm. SNMPv2 bắt nguồn từ hai phát kiến vào năm 1992: một là Secure SNMP và một là SMP (Simple Management Protocol). Secure SNMP có những đặc tính an toàn mà SNMPv1 không có, nhƣng nó lại sử dụng định dạng gói tin không tƣơng thích với SNMPv1. So với SNMPv1 thì SNMPv2 cung cấp nhiều cách thức linh hoạt hơn trong vấn đề quản trị (kích thƣớc dữ liệu truyền đi và môi trƣờng mà nó có thể vận hành).
- SNMPv3: là phiên bản thứ 3 của giao thức SNMP, là một phiên bản chuẩn của IETF. Nó đƣợc định nghĩa trong rất nhiều tài liệu RFC, nhƣ RFC 1905, 1906, 1907, 2571, 2572, 2573, 2574 và 2575. SNMPv3 hỗ trợ tất cả các thao tác và định nghĩa trong phiên bản SNMPv1 và SNMPv2. Trong phiên bản này, IETF đã đƣa vào khả năng hỗ trợ an ninh bảo mật bằng cách hỗ trợ các loại truyền thông riêng tƣ (mã hoá) và có xác nhận giữa các thực thể. SNMPv3 cũng giải quyết tiếp một số tồn tại kéo dài liên quan đến việc triển khai nâng cấp của SNMP để quản trị cấu hình, tính toán và quản trị lỗi. Tuy nhiên, SNMPv3 chƣa phải là chuẩn đầy đủ, do vậy chỉ có một vài nhà sản xuất có sản phẩm hỗ trợ SNMPv3.
SNMP tuy cung cấp nhiều tiện ích nhƣng cũng có những hạn chế đáng kể. Số lƣợng kết nối đồng thời tới Agent có thể không đƣợc kiểm soát. Cơ chế bảo mật của SNMPv1 không có độ an toàn cao còn SNMPv3 chƣa phải là chuẩn đầy đủ mà SNMPv2 giải quyết đƣợc các hạn chế mà SNMPv1 mắc phải đồng thời nó là một chuẩn đầy đủ. Chính vì vậy SNMPv2 đƣợc các nhà sản xuất thiết bị mạng sử dụng rộng rãi nhất.
- Trong một hệ thống, số Agent luôn nhiều hơn số NMS nên các hoạt động của Agent luôn cần hạn chế càng nhỏ càng tốt. Các hoạt động của Agent gây tốn tài nguyên của thành phần bị quản trị do đó chúng đƣợc chuyển lên phía NMS nếu có thể. SNMPv2 có mục đích tập trung công tác quản trị về phía Manager, giảm bớt các hoạt động của Agent.
- SNMPv2 thừa kế trên SSNMP (SecureSNMP). SSNMP là giao thức đặt ra để nâng cao độ an ninh của SNMP. Trong SNMPv2 việc mã hoá DES là tuỳ chọn thay vì bắt buộc nhƣ SSNMP. Tuỳ chọn DES giúp cho ngƣời dùng đƣợc thuận tiện khi yêu cầu an ninh không cao, có thể đẩy mạnh tốc độ quản trị, không lãng phí tài nguyên khi mã hoá các thông tin đơn giản. Bên cạnh đó, SSNMP bắt buộc các gói tin phải đến NMS với trình tự rõ ràng. SNMPv2 cho phép các gói tin đến theo trình tự tuỳ ý.
- Trong SNMPv1 tập lệnh thao tác đơn giản, truyền theo giao thức không định hƣớng nên sẽ dẫn tới truyền nhiều gói tin thừa, ảnh hƣởng đến hiệu năng hoạt động của mạng. Các thiết bị mạng càng nhiều, số lƣợng gói tin thừa càng lớn và hiệu năng càng bị ảnh hƣởng đáng kể. Kết quả tất yếu là thời gian hồi đáp lâu hơn và băng thông mạng giảm xuống. SNMPv2 cho phép nhiều lựa chọn gửi bản tin giúp cho Agent kết nối có hiệu quả với Manager, nhƣ là:
+ SNMPv2 đƣa ra cơ chế khoá truy cập Manager đang kết nối với Agent, các thiết bị khác không thể kết nối tới.
+ Các bƣớc truy nhập vào MIB đã đƣợc đơn giản hoá hơn so với SNMPv1. Tuy đơn giản hơn nhƣng các bƣớc thao tác này đã đƣợc coi là chuẩn hoá cho việc quản trị các bảng tìm đƣờng và các biến SNMP khác.
+ SNMPv2 cho phép NMS có thể đồng thời thu thập một loạt giá trị của các biến chỉ qua một bản tin GET. Lệnh GET-BULK giúp thực hiện việc này. Thực chất của GET-BULK là gửi liên tiếp nhiều lệnh GET-NEXT REQUEST giúp cho tăng tốc độ đáng kể so với SNMPv1. Bên cạnh đó, với những Agent không thể trả về chỉ 1 biến, lệnh GET-BULK cho phép thu thập thông tin hiệu quả hơn. So với SNMPv1, nếu một biến nào đó không thể trả lời, cả gói tin bị huỷ.
Nhƣng SNMPv2 cho phép bỏ qua biến đó, toàn bộ gói tin vẫn đƣợc xử lý nhƣ không có lỗi xảy ra. Agent sẽ thiết đặt thông báo trên biến bị lỗi.
+ Và điểm cải tiến lớn nhất của SNMPv2 là cho phép kết nối giữa các NMS với nhau. Khác với SNMP, giữa các NMS không hề có sự kết nối nào đáng kể, SNMPv2 có lệnh INFORM cho phép truyền tin giữa các NMS. Phần lớn các thành phần mạng chỉ cần có một Agent quản trị trên đó. Tuy nhiên, một số thành phần mạng đặc biệt lại có nhiều Agent quản trị. SNMPv2 cho phép tƣơng tác giữa các NMS cũng nhƣ từng thành phần bị quản trị. Việc tƣơng tác NMS-NMS cho phép có thể quản trị tới nhiều Agent trên cùng một IP và cho phép tạo sự quản trị phân cấp trong mạng. Việc phân cấp này đƣợc thực hiện bằng các lớp quản trị trung gian. Các NMS trung gian sẽ quản trị các thành phần trong mạng cục bộ và kết nối tới NMS trung tâm để truyền tin quản trị. Thông tin quản trị truyền đi trên mạng đƣờng trục (backbone) vì thế sẽ đƣợc giảm thiểu, không làm hạn chế băng thông. Khác với SNMP, SNMPv2 sử dụng giao thức TCP/IP hƣớng kết nối. Bộ đếm của SNMPv2 đƣợc tăng lên tới 64bit, đủ cho mọi nhu cầu trong tƣơng lai.
- SNMPv2 vẫn giữ đƣợc những tƣơng thích với các phiên bản khác.