Specification
Description
Title of Invention: COMMUNICATION SYSTEM, CONTROL
DEVICE, FORWARDING NODE, COMMUNICATION
CONTROL METHOD, AND PROGRAM
Technical Field
[000 1] (CROSS-REFERENCE TO RELATED APPLICATIONS)
The present invention claims priority from Japanese Patent Application 201 1-016322
(filed on January 28, 201 1) the content of which is hereby incorporated in its entirety
by reference into this specification.
The present invention relates to a communication system, a control device, a
forwarding node, a communication control method, and a program and more p ar
ticularly to a communication system having a control device for integrally controlling
forwarding node(s) arranged in a network, a control device, a forwarding node, a com
munication control method, and a program.
Background Art
[0002] In a communication system where a control device integrally controls forwarding
node(s) for carrying out communication, the forwarding node(s) and the control device
must be synchronized with each other. This is because, if the control device and the
forwarding node(s) are not synchronized, a packet- forwarding method instruction
transmitted from the control device to a forwarding node becomes inconsistent with the
packet forwarding processing performed by the forwarding node, with the result that
the packet forwarding not intended by the control device is performed.
[0003] As a communication system where the control device integrally controls the
forwarding node(s) as described above, the technology called OpenFlow is known (see
Patent Literature 1 and Non-Patent Literatures 1 and 2). OpenFlow identifies commu
nications as end-to-end flows and performs path control, failure recovery, load
balancing, and optimization on a per-flow basis. An OpenFlow switch, which is
specified in Non-Patent Literature 2, has a secure channel for communication with an
OpenFlow controller that serves as a control device, and operates according to the flow
table to which information is added, and whose contents are rewritten, according to an
instruction from the OpenFlow controller as necessary. In the flow table, a set of the
following three is defined for each flow: a matching rule (Header Fields) against which
a packet header is matched, flow statistical information (Counters), and an action(s)
(Actions) that defines processing contents (see FIG. 18).
[0004] For example, when a packet is received, the OpenFlow switch searches the flow table
for an entry that has a matching rule (see Header fields in FIG. 18) that matches the
header information of the received packet. If an entry matching the received packet is
found as a result of the search, the OpenFlow switch updates the flow statistical in
formation (Counters) and, at the same time, performs the processing contents (packet
transmission from a specified port, flooding, drop, etc.), described in the Actions field
of the entry, for the received packet. On the other hand, if an entry matching the
received packet is not found as a result of the search, the OpenFlow switch forwards
the received packet to the OpenFlow controller via the secure channel, requests the
OpenFlow controller to determine a packet path based on the transmission source/
destination of the received packet, receives a flow entry for the packet path, and
updates the flow table. In this way, the OpenFlow switch forwards a packet using an
entry, stored in the flow table, as the processing rule.
[0005] However, Patent Literature 1 and Non-Patent Literatures 1 and 2 described above do
not include a practical study on how to confirm the synchronization between the
OpenFlow controller and the OpenFlow switch.
[0006] In addition, Patent Literature 2 discloses the technology for confirming if data held in
a mobile device and data stored in the database to which the mobile device is
connected are synchronized. According to this literature, a mobile device generates a
hash for each piece of data held in the mobile device and transmits the generated hash
to the synchronization server to request it to confirm if the data is synchronized. The
synchronization server generates a hash for each piece of data for which synchro
nization confirmation is requested. The synchronization server compares a plurality of
hashes, transmitted from the mobile device, with a plurality of hashes generated by the
synchronization server. The synchronization server confirms data synchronization
based on the comparison result. The literature describes that the bandwidth required for
synchronization may be reduced by generating a hash from each of multiple data
pieces, for which synchronization confirmation is required, and by performing syn
chronization confirmation.
Citation List
Patent Literature
[0007] PTL 1: International Publication No. WO2008/095010A1
PTL 2: JP Patent Kohyo Publication No. JP-P2009-510566A
Non Patent Literature
[0008] NPL 1: Nick McKeown and seven other authors, "OpenFlow: Enabling Innovation in
Campus Networks", [online], [Searched on December 22, 2010], Internet
NPL 2: "Openflow Switch Specification" Version 1.0.0. (Wire Protocol 0x01)
[Searched on December 22, 2010], Internet
Summary of Invention
Technical Problem
[0009] The following analysis is given by the present invention. As described above, Patent
Literature 1 and non-Patent Literatures 1 and 2 describe a technology that only
provides control messages, called Stats Request/Reply, for retrieving the contents of
flow tables, or used to transmit the contents of flow entries as a response (see "5.3.5
Read State Messages" in Non-Patent Literature 2) but not a method for efficiently
confirming synchronization between a forwarding node and the control device.
[0010] The technology disclosed in Patent Literature 2 compares the hash values each of
which represents a database (database hashes) and, if a mismatch is detected as a result
of the comparison, generates the hash per each of data pieces held in a mobile device
and confirms synchronization (compares record hashes). That is, for the purpose of
synchronization confirmation, multiple hashes each corresponding to each piece of
data for which synchronization is requested are exchanged over the network.
Therefore, network traffic is generated for synchronization confirmation for each of
multiple data pieces stored in the database.
[001 1] In a communication system where a control device integrally controls forwarding
nodes, synchronization confirmation, if performed by the method such as Stats
Request/Reply disclosed in Non-Patent Literature 2 or by the method disclosed in
Patent Literature 2, will bring about a problem that the load of the control device or the
forwarding nodes will increase. In addition, it should be taken into consideration that
an increase in the number of forwarding nodes to be controlled or an increase in the
number of processing rules (subdivision of control granularity) per user will result in
an exponential increase in the load of the control device. In particular, the method
described in Patent Literature 2 generates network traffic for confirming the synchro
nization of each piece of data and, therefore, the synchronization confirmation traffic is
increased and the load of the control device is further increased.
[0012] In view of the foregoing, it is an object of the present invention to provide an
efficient method for confirming synchronization between a forwarding node and the
control device in a communication system where the control device integrally controls
the forwarding nodes for communication.
Solution to Problem
[0013] According to a first aspect of the present invention, there is provided a commu
nication system, comprising: a control device that determines packet processing rules;
at least one forwarding node that processes a received packet using a processing rule
that is one of a plurality of processing rules transmitted from the control device and
that corresponds to the received packet; and a comparison unit that compares a first
value with a second value. The first value is calculated from a first processing rule
group held in the forwarding node, and the second value is calculated from a second
processing rule group determined by the control device for transmission to the
forwarding node. The communication system further comprises a confirmation unit
that confirms if the forwarding node and the control device are synchronized based on
the comparison result.
[0014] According to a second aspect of the present invention, there is provided a control
device comprising: means (a unit) that determines packet processing rules; and means
(a unit) that transmits the determined processing rule to a forwarding node that
processes a received packet according to a processing rule that is one of a plurality of
processing rules and that corresponds to the received packet. The control device further
comprises means (a unit) that calculates a second value from a second processing rule
group determined for transmission to the forwarding node in order to confirm synchro
nization with the forwarding node by comparison with a first value calculated from a
first processing rule group held in the forwarding node.
[0015] According to a third aspect of the present invention, there is provided a forwarding
node comprising: means (a unit) that processes a received packet according to a
processing rule that is one of a plurality of processing rules transmitted from a control
device and that corresponds to the received packet; and means (a unit) that calculates a
first value from a first processing rule group held in the forwarding node itself in order
to confirm synchronization between the control device and the forwarding node by
comparison with a second value calculated from a second processing rule group de
termined by the control device for transmission to the forwarding node.
[0016] According to a fourth aspect of the present invention, there is provided a commu
nication control method that controls a communication system comprising: a control
device that determines packet processing rules; and at least one forwarding node that
processes a received packet using a processing rule that is one of a plurality of
processing rules transmitted from the control device and that corresponds to the
received packet. The communication control method comprises the steps of:
comparing a first value with a second value, the first value calculated from a first
processing rule group held in the forwarding node, the second value calculated from a
second processing rule group determined by the control device for transmission to the
forwarding node; and confirming if the forwarding node and the control device are
synchronized based on the comparison result. This method is linked to a forwarding
node(s) and to a special machine called a control device that integrally controls
forwarding nodes.
[0017] According to a fifth aspect of the present invention, there is provided a program that
causes a computer connected to a communication system, which comprises a control
device that determines packet processing rules; and at least one forwarding node that
processes a received packet using a processing rule that is one of a plurality of
processing rules transmitted from the control device and that corresponds to the
received packet, to perform processings of: comparing a first value with a second
value, the first value calculated from a first processing rule group held in the
forwarding node, the second value calculated from a second processing rule group de
termined by the control device for transmission to the forwarding node; and confirming
if the forwarding node and the control device are synchronized based on the
comparison result. This program may be recorded on (or embodied in) a computerreadable
storage medium, which may be non-transmit. That is, the present invention
may be implemented as a computer program product.
Advantageous Effects of Invention
[0018] The present invention allows synchronization confirmation to be performed e f
ficiently between a forwarding node and a control device in a communication system
where the control device integrally (or uniformly) controls the forwarding nodes for
carrying out communication.
The computer program processes physical and electrical data which represent
technical parameters, i.e., bearing technical characters. The computer (and the
program, too) itself is implemented as part of the communication system, control
device and/or forwarding node(s), which constitutes (and qualifies as) a manufacture or
product (communication apparatus or system or components thereof).
Brief Description of Drawings
[0019] [fig. 1]FIG. 1 is a diagram showing the outline of (a mode of) the present invention.
[fig.2]FIG. 2 is a diagram showing an example of the method for calculating first and
second values.
[fig.3]FIG. 3 is a diagram showing the configuration of a first exemplary embodiment.
[fig.4]FIG. 4 is a block diagram showing the detailed configuration of a control device
and a forwarding node in the first exemplary embodiment.
[fig.5]FIG. 5 is a diagram showing an example of a table held in the processing rule
storage unit of the forwarding node in the first exemplary embodiment
[fig.6]FIG. 6 is a diagram showing an example of synchronization confirmation in
formation held in the synchronization confirmation information storage unit of the
forwarding node in the first exemplary embodiment.
[fig.7]FIG. 7 is a diagram showing an example of a table held in the processing rule
storage unit of the control device in the first exemplary embodiment.
[fig.8]FIG. 8 is a diagram showing an example of a table held in the synchronization
confirmation information storage unit of the control device in the first exemplary em
bodiment.
[fig.9]FIG. 9 is a flowchart showing the calculation operation of synchronization con
firmation information in the control device in the first exemplary embodiment
[fig. 10]FIG. 10 is a flowchart showing the calculation operation of synchronization
confirmation information in the forwarding node in the first exemplary embodiment.
[fig.ll]FIG. 1 1 is a flowchart showing the synchronization confirmation operation
performed by the control device in the first exemplary embodiment
[fig. 12]FIG. 12 is a diagram showing an example of the operation sequence in the first
exemplary embodiment.
[fig.l3]FIG. 13 is a diagram continued from FIG. 12.
[fig. 14]FIG. 14 is a diagram showing an example of synchronization confirmation in
formation of in the forwarding node in a second exemplary embodiment.
[fig.l5]FIG. 15 is a diagram showing an example of a table held in the control device
in the second exemplary embodiment.
[fig. 16]FIG. 16 is a diagram showing an example of the comparison operation using
generation management information.
[fig.l7]FIG. 17 is a diagram showing another example of the comparison operation
using generation management information.
[fig.l8]FIG. 18 is a diagram showing the configuration of a flow entry described in
Non-Patent Literature 2.
Description of Embodiments
[0020] First, the outline of a mode of the present invention will be described below with
reference to FIG. 1 and FIG. 2. Note that the drawing reference numerals in the outline
are attached to the elements for convenience as an example to help understanding of
the present invention but do not limit the present invention to the mode shown in the
figures.
[0021] As shown in FIG. 1, the present mode may be implemented by the configuration
("arrangement") comprising a control device 20 that determines the processing rules of
a packet and a forwarding node 10 that processes a received packet using a processing
rule that corresponds to the received packet and that is one of the multiple processing
rules received from the control devices 20 and stored in a processing rule storage unit
14.
[0022] In addition, the control device 20 comprises a comparison unit 25a and a con
firmation unit 25b. The comparison unit 25a compares a first value, calculated from a
first processing rule group held in the forwarding node side, with a second value
calculated from a second processing rule group determined by the control device for
transmission to the forwarding node. The confirmation unit 25b confirms the synchro
nization state of the processing rules between the forwarding node and the control
device based on the comparison result. Although FIG. 1 shows an example of the con
figuration in which the control device 20 comprises the comparison unit 25a and the
confirmation unit 25b, the configuration is not limited to this example. The comparison
unit 25a and the confirmation unit 25b may be installed in one or both of the control
device 20 and the forwarding node 10 or may be installed in a device other than the
control device 20 and the forwarding node 10. As described above, the synchronization
confirmation is performed, not by generating a first value representing each of the
processing rules, but by generating a first value representing a processing rule group
composed of multiple processing rules. This synchronization confirmation method
reduces the amount of network traffic generated for confirming synchronization
between the control device 20 and the forwarding node 10.
[0023] The following describes an example of how to calculate the first value and the
second value described. The first value is calculated using a predetermined function
(for example, a hash function such as Message Digest Algorithm 5 (MD5)) that uses,
as its argument, a set of multiple processing rules, all processing rules, or the values of
a particular field of the processing rules held in the processing rule storage unit 14 of
the forwarding node 10. That is, the first value is a value representing the processing
rule group held in the processing rule storage unit 14 at that time. Similarly, the second
value is calculated using the same function as the predetermined function described
above using, as its argument, multiple processing rules, all processing rules, or the
values of a particular field of the processing rules held in a processing rule storage unit
28 at that time. Because both values match if the forwarding node 10 and the control
device 20 are synchronized, the comparison between the first value and the second
value allows the arrangement to confirm the synchronization state between the
forwarding node 10 and the control device 20.
[0024] The first value and the second value may also be calculated, not by the entire set of
processing rules, but hierarchically as shown in FIG. 2. In the example in FIG. 2, for
the processing rules held in the processing rule storage unit 14 of the forwarding node
10 and in the processing rule storage unit 28 of the control device 20, the values
(hl,h2,h3, ... ,hx) representing each of the predetermined parts (denoted as partitions in
FIG. 2) are first calculated for each of the predetermined parts using a predetermined
function (such as a hash function). The value (third value) representing each part may
be calculated from the processing rule group included in each partition. The value
(third value) representing each part may also be calculated by calculating the hash
value for each processing rule included in each partition and by calculating the hash
value of the partition from the hash values each corresponding to each processing rule.
Similarly, for the control device 20, the value (fourth value) representing each part cor
responding to the part of the forwarding node 10 is calculated. In the example in FIG.
2, the values obtained in this way (hl,h2,h3, ... hx) are assigned to the predetermined
function (hash(hl,h2,h3, ... ,hx) in FIG. 2) to calculate the first value (or second value).
By comparing the first value (or second value) obtained in this way, not only the syn
chronization state between the forwarding node 10 and the control device 20 may be
confirmed but also, if a mismatch is found and an out-of-synchronization is detected, a
mismatch position may be narrowed in stages by comparing the values (third or fourth
values) calculated for each part. Even if a mismatch is found between the first value
and the second value, the method of the mode does not confirm the synchronization of
each processing rule but narrows the mismatch position in stages, thus reducing the
amount of network traffic generated for confirming the synchronization between the
control device 20 and the forwarding node 10.
[0025] Although the control device 20 comprises the processing rule storage unit 28 in the
example in FIG. 1, another configuration is also possible in which the control device
20 accesses an external processing rule storage unit to manage the processing rules that
are set in the forwarding node 10.
[0026]
Documents