Primary Controller Selection Using Sequence Numbers in SDN

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In Software Defined Networking, client devices face difficulties in identifying the primary controller server among a group of servers, which is essential for communication with the most up-to-date server, especially after system updates.

Innovation Solution

A method involving the use of two sequence numbers - a controller sequence number and a timing sequence number - is implemented to determine the primary controller server. The controller sequence number is incremented when the primary server is selected, and both sequence numbers are sent to client devices to establish a reliable connection with the most up-to-date server.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If an election protocol is implemented to select a primary controller server among a group of servers, then the system can identify the most up-to-date server for client devices to communicate with, but it becomes difficult for client devices to identify the primary controller server among the group

Engineering Contradiction:
Improveidentification of primary controller serverVSAvoidcomplexity of server identification process
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent uses sequence numbers as visual indicators (analogous to color changes) to differentiate the primary controller server from other servers. Each server is assigned a unique sequence number that client devices can easily compare to identify the primary controller, transforming an abstract election protocol into a concrete, observable identifier.

Inventive Principle:
Principle #32Color changes

Solution Approach 2:

The patent introduces sequence numbers as an intermediary mechanism between the election protocol and client device identification. Rather than client devices directly implementing the election protocol, they receive and compare sequence numbers that mediate the identification process, simplifying their task while maintaining reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If sequence numbers are sent to all server computers, then each server can identify the primary controller, but unnecessary network traffic is generated

Engineering Contradiction:
Improveserver identification accuracyVSAvoidnetwork traffic overhead
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent extracts the sequence number information from the general server communication stream and sends it selectively only to the primary controller server. This extraction principle reduces network traffic by eliminating redundant transmissions to non-primary servers while maintaining their ability to identify the primary controller through other means.

Inventive Principle:
Principle #2Taking out (Extraction)

3Measurement precision

If the controller sequence number is incremented for every primary controller selection, then the most up-to-date server can be identified, but the sequence number may become excessively large

Engineering Contradiction:
Improvetiming accuracy for primary controller selectionVSAvoidsequence number magnitude
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent changes the parameter of sequence number incrementation from a continuous counter to a selective increment that occurs only at specific events (primary controller selections). This parameter change maintains measurement precision for timing accuracy while controlling the growth rate of sequence numbers, preventing them from becoming excessively large.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9246770B1System and method for determining a primary controller in software defined networking
Publication Date: 2016.01.26 GOOGLE LLC
  • US9246770B1 patent drawing
  • US9246770B1 patent drawing
  • US9246770B1 patent drawing

AI summary

Aspects of the disclosure relate generally to selecting and identifying a primary controller server among a group of servers on a network. In order to do so, a first computer may set a first number to zero when a storage system associated with the first computer is initialized. The first computer may conduct an election protocol to select a primary controller computer from a plurality of computers. After selecting the primary computer, increase the first number by a given value and send it to the selected primary computer. The selected primary computer may set a second number corresponding to an absolute time when the storage system associated with the first computer is initialized. The selected primary computer may receive the first number from the first computer. The selected primary computer may send the numbers to a client device. After sending, the primary computer may establish a connection with the client.