  As the global Internet of things increasingly is popular with consumers and
business environment, network flow management has become an important topic to
optimize the performance on Internet of Things. The rigid existing Internet of
things (IoT) architecture blocks current traffic management technology to
provide a real differentiated service for large-scale IoT. Software-defined
Internet of Things (SD-IoT) is a new computing paradigm that separates control
plane and data plane, and enables centralized logic control. In this paper, we
first present a general framework for SD-IoT, which consists of two main
components: SD-IoT controllers and SD-IoT switches. The controllers of SD-IoT
uses resource pooling technology, and the pool is responsible for the
centralized control of the entire network. The switches of SD-IoT integrate
with the gateway functions, which is responsible for data access and
forwarding. The SD-IoT controller pool is designed as a vertical control
architecture, which includes the main control layer and the base control layer.
The controller (main controller) of the main control layer interacts upward
with the application layer, interacts with the base control layer downwards,
and the controller (base controller) of the basic control layer interacts with
the data forwarding layer. We propose a dynamic balancing algorithm of the main
controller based on election mechanism and a dynamic load balancing algorithm
of the basic controller based on the balanced delay, respectively. The
experimental results show that the dynamic balancing algorithm based on the
election mechanism can ensure the consistency of the messages between the main
controllers, and the dynamic load balancing algorithm based on the balanced
delay can balance between these different workloads in the basic controllers.
