1
6LoWPAN-SNMP: Simple Network Management Protocol for 6LoWPAN
2009 11th IEEE International Conference on High Performance Computing and Communications
Haksoo Choi, Nakyoung Kim, Hojung Cha
Department of Computer Science
Yonsei University, Seoul, Korea
2011/09/01
2
Outline
Introduction
6LoWPAN-SNMP
SNMP Header Compression
Compressed PDU Variable Bindings
Extensions to Protocol Operation
Proxy Forwarder on 6LoWPAN Gateway
6LoWPAN-SNMP Agent
Evaluation
Conclusion
3
Introduction (1/3)
Low-power Wireless Personal Area Network(LoWPAN)
Large numbers of low-cost devices
IEEE 802.15.4 MAC/PHY
Internet Protocol (IP)
Core technical background to the Internet, is a starting point for 6LoWPAN
IPv6-enabled Low-Power Wireless Personal Area Network(6LoWPAN)
IETF 6LoWPAN working group
Transmit IPv6 packets over IEEE 802.15.4 networks
key point : reuse existing IP-based protocols
4
Introduction(2/3)
Management functionality is critical for successful operations
SNMP is widely used in IP networks
Why don’t we just use SNMP to manage 6LoWPAN?
Lack the native support of SNMP messages on nodes
SNMP is usually implemented as a proxy service on a gateway
5
Introduction(3/3)
Proxy-based implementation has a number of issues outlined below
Out-of-date information
Duplicated implementation of protocols
Gateway overhead
Single point of failure
A simple yet robust solution would be to natively support SNMP on LoWPAN nodes.
6
6LoWPAN-SNMP
Reduce large amounts of network traffic
Reduce the size of each SNMP message
Reduce the number of messages transmitted over the network
New protocol operations and broadcast/multicast support
6LoWPAN-SNMP proxy forwarder
Compatibility with current SNMP versions
7
SNMP Header Compression
Compressed SNMPv1 Header
4 bytes => 3 bits
Variable size => X
The TCP/IP Guide: http://www.tcpipguide.com
8
SNMP Header Compression
Compressed SNMPv2c Header
The TCP/IP Guide: http://www.tcpipguide.com
9
(Cont.)
The differences in PDU Control Fields between SNMPv2c and SNMPv1 are the PDU Type and the Error Status field
4 bytes=> 4 bits
4 bytes=> 5 bits
The TCP/IP Guide: http://www.tcpipguide.com
10
(Cont.)
9 PDU Types
19 different errors
4 bytes=> 4 bits
4 bytes=> 5 bits
11
(Cont.)
GetBulkRequest - PDU type
4 bytes => 1 byte
4 bytes => 1 byte
The TCP/IP Guide: http://www.tcpipguide.com
12
(Cont.)
Non Repeaters / Max Repetitions
They determine the number of variable bindings in response messages and are especially useful for table traversal operations
It is rare for the two fields to have a value greater than 255
4 bytes => 1 byte
13
Compressed PDU Variable Bindings
Consist of a series of Object Names and Object Value bindings
Object Name (OID) field can be compressed by algorithms ObjectID Delta Compression
ObjectID Prefix Compression
14
Extensions to Protocol Operation
Periodic Get Request / Stop Periodic Get
Broadcast/Multicast SNMP Messages
15
(Cont.)
Periodic Get Request / Stop Periodic Get
Initiate multiple periodic responses by transmitting a single Periodic Get Request message
If the periodic requests stop, the gateway can transmit a Stop Periodic Get message
16
(Cont.)
17
(Cont.)
18
(Cont.)
Time Interval field
The specific time interval in which a requesting SNMP entity wants to receive response messages
1 byte size
A unit of a minute
19
Proxy Forwarder on 6LoWPAN Gateway
Translates the messages of current SNMP versions into corresponding 6LoWPAN-SNMP messages
Applying the header compression techniques
New protocol operations
Automatic detection of periodic Get Requests and of a SNMP broadcast/multicast
A simple retransmission scheme using an ACK message for the Periodic GetRequest message.
20
(Cont.)
Normal mode
Same multiple GetRequest messages
Stop forwarding
Periodic Get Request message
monitoring
21
(Cont.)
1. First, the proxy forwarder operates in normal mode by performing
SNMP message conversion and forwarding
2. Detects the same multiple Get Request messages coming in regularly at a
specific time interval
3. Stops forwarding
4. Generates a Periodic Get Request message
5. Initiating periodic responses from the receiving SNMP
entities
6. keeps monitoring the incoming Get Request messages(not forward it)
7. Changes in the content of the incoming Get Requests
8. Retransmits a Periodic Get Request
22
6LoWPAN-SNMP Agent
23
(Cont.)
MsgDispatchC
The sending/receiving of 6LoWPAN-SNMP
messages to/from the network
It first determines the version of a received message so that the MsgProcessC can extract data from the message by applying different message processing models depending on the version
24
(Cont.)
MIBC
6LoWPAN MIB objects
Several private objects such as the number of messages
sent, forwarded, dropped, and so on
CmdRespondC
Responsible for processing the SNMP PDU and variable bindings
After processing the received SNMP message, the command responder generates an adequate response PDU for the received message
25
(Cont.)
In particular, in the case of a PeriodicGetRequest, the command responder registers a timer that generates a Response message periodically as if a GetRequest message has arrived periodically
26
Evaluation
Compressed Header Size
Experimental Results
Traffic Changes on Gateway
Traffic Changes in the LoWPAN Network
Memory and Code Footprint
27
Compressed Header Size
28
Experimental Results
29
Traffic Changes on Gateway
30
(Cont.)
Units of 10 minutes
Inbound (from the network management system to the LoWPAN nodes, that is GetRequest messages)
Outbound (from the LoWPAN node to the network management system, that is Response messages)
Outbound messages for both SNMP and 6LoWPANSNMPis almost identical
6LoWPANSNMP gateway simply forwards the outbound messages as they arrive at the gateway
31
(Cont.)
Detects periodicities on inbound GetRequest messages, it converts the request messages to PeriodicGet messages
Rapidly decreased number of messages in the time period of 3 to 6
In this experiment, one node did not have good link connectivity with the base station
so every time the gateway received the GetRequest message, it retransmitted the PeriodicGet request two or three times
The maximum number of retries was four, including initial transmission
This bad connectivity lasted until the end of the experiment, and we can see this behavior in time period of 6 to 29 in the graphs
32
Traffic Changes in the LoWPAN Network
33
(Cont.)
In general, 6LoWPAN-SNMP has approximately half the number of messages that are sent and forwarded in the network compared to the original SNMP
Number of messages that are dropped due to either queue overflow or bad link connectivity for the 6LoWPAN-SNMP is also half that of the original SNMP
6LoWPAN-SNMP significantly increases network performance by reducing almost by half the size and number of packets that are transmitted and dropped
34
(Cont.)
These constitute 25.28% of program ROM and 6.18% of RAM on a Tmote Sky platform
35
Memory and Code Footprint
36
Conclusion
SNMP should be natively supported by 6LoWPAN because proxy-SNMP has several limitations
Transmit the SNMP packets over the 6LoWPAN, which are compatible with the existing SNMP
Header compression techniques for SNMPv1 and v2c
Average 12.7% of the compression ratio
Compressed header size of 1 to 4 bytes.
37
(Cont.)
Compress the SNMP payload
PDU Variable Bindings
41% compression ratio for Request messages
19.2% compression ratio for Response messages
Extended protocol operations
PeriodicGetRequest and broadcast/multicast SNMP messages
Effectively reduce the number of packets that are transmitted
38
Q & A
40
Community String
SNMP administrator’s choice community strings can
be of arbitrary length
Transmitting long community strings in 6LowPAN packets is inefficient
MTU size is only 127 bytes
6LoWPAN gateway
Filter out SNMP packets with incorrect community strings
Forward SNMP packets with correct community strings
Without sending the community string field
41
PDU Control Field
4 bytes => 3 bits
4 bytes => 1 byte
4 bytes => 3 bits4 bytes => 1 byte
The TCP/IP Guide: http://www.tcpipguide.com
42
PUD Type
Five different PDU types
GetRequest
GetNextRequest
GetResponse
SetRequest
Trap
4 bytes => 3 bits
43
Request ID
Contains a number used to match SNMP request and
response messages between SNMP entities
Detect duplicated messages
In our experiments with actual 6LoWPAN-SNMP implementation,
1 byte of a request ID successfully detected duplicated messages
4 bytes => 1 byte
44
Error Status / Error Index
Six error types
The Error Index contains a number that indicates which
object in the PDU Variable Bindings generated this error
The size of a response message does not exceed 1400 bytes at most
Assuming each variable binding is 10 bytes
Less than 140 variable bindings
Ten bytes are even smaller than the actual Object Name and Object Value bindings in practical applications
4 bytes => 3 bits
4 bytes => 1 byte
45
PDU Type-Trap
Variable => 1 byte
IP address => X
4 bytes =>3 bits4 bytes =>1 byte4 bytes => X
The TCP/IP Guide: http://www.tcpipguide.com