JP5521614B2 - Network system and packet speculative transfer method - Google Patents

Network system and packet speculative transfer method Download PDF

Info

Publication number
JP5521614B2
JP5521614B2 JP2010030627A JP2010030627A JP5521614B2 JP 5521614 B2 JP5521614 B2 JP 5521614B2 JP 2010030627 A JP2010030627 A JP 2010030627A JP 2010030627 A JP2010030627 A JP 2010030627A JP 5521614 B2 JP5521614 B2 JP 5521614B2
Authority
JP
Japan
Prior art keywords
packet
speculative
network
transfer
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010030627A
Other languages
Japanese (ja)
Other versions
JP2011166700A (en
Inventor
紀孝 津
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010030627A priority Critical patent/JP5521614B2/en
Publication of JP2011166700A publication Critical patent/JP2011166700A/en
Application granted granted Critical
Publication of JP5521614B2 publication Critical patent/JP5521614B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ネットワークシステムに関し、特に外部コントローラがネットワーク機器を制御するネットワークシステムに関する。   The present invention relates to a network system, and more particularly to a network system in which an external controller controls network devices.

従来のネットワーク(NW:Network)機器はブラックボックスであり、外部から負荷分散や片寄せ等の柔軟性に富んだ制御ができない。このため、ネットワークの規模が大きくなると、システムとしての挙動の把握と改善が困難になり、設計や構成変更において、多大な遅延を伴うことが問題となっていた。   A conventional network (NW) device is a black box, and cannot perform flexible control such as load distribution or offset from the outside. For this reason, when the scale of the network increases, it becomes difficult to grasp and improve the behavior of the system, and there has been a problem that a great deal of delay is involved in design and configuration change.

こうした問題を解決するための手法として、ネットワーク(NW)機器のパケット(packet)転送と経路制御の機能を分離する手法が考えられている。例えば、ネットワーク(NW)機器がパケット転送を担当し、ネットワーク(NW)機器の外部に置かれたコントローラが経路制御を担当することで、外部からの制御が容易になり、柔軟性に富んだネットワークを構築することが可能になる。   As a technique for solving such a problem, a technique of separating packet transfer and routing control functions of a network (NW) device is considered. For example, a network (NW) device is in charge of packet transfer, and a controller placed outside the network (NW) device is in charge of path control. It becomes possible to build.

上記手法の具体的な例として、オープンフロー(OpenFlow)について説明する。但し、オープンフローは一例に過ぎない。オープンフローについては、オープンフローコンソーシアム(非特許文献1参照)で検討が進んでいる。   As a specific example of the above method, open flow (OpenFlow) will be described. However, OpenFlow is only an example. About open flow, examination is progressing in the open flow consortium (refer nonpatent literature 1).

図1に、オープンフロー0.9.0の基本的な構成例を示す。図1では、ネットワーク(NW)機器の例としてスイッチを示す。図2に、パケット転送と経路制御を分離したネットワーク(NW)機器の規格であるオープンフローの場合における従来のパケット処理の流れを示す。図3に、従来のパケット照合処理の流れを示す。   FIG. 1 shows a basic configuration example of OpenFlow 0.9.0. In FIG. 1, a switch is shown as an example of a network (NW) device. FIG. 2 shows a conventional packet processing flow in the case of OpenFlow, which is a standard for a network (NW) device in which packet transfer and path control are separated. FIG. 3 shows a flow of conventional packet matching processing.

オープンフローは、オープンフロープロトコルをサポートしたネットワーク(NW)機器と、外部に置かれたコントローラで構成される。ネットワーク(NW)機器とコントローラは、セキュアチャンネル(Secure channel:安全な経路)で接続されており、オープンフロープロトコルで通信を行う。オープンフローでは、ネットワーク(NW)機器のパケット転送と経路制御は分離されており、ネットワーク(NW)機器はパケット転送を行い、コントローラはネットワーク(NW)機器の経路制御を行う。   OpenFlow is composed of a network (NW) device that supports the OpenFlow protocol and an external controller. The network (NW) device and the controller are connected by a secure channel (Secure channel) and communicate by the open flow protocol. In OpenFlow, packet transfer and route control of a network (NW) device are separated, the network (NW) device performs packet transfer, and the controller performs route control of the network (NW) device.

オープンフローをサポートするネットワーク(NW)機器は、内部にフローテーブル(Flow table)と呼ばれる経路情報を持つ。フローテーブルは、フロー(Flow)として定義されたパケットのヘッダ領域情報(Header Field)と、当該パケットが届いたときの処理(Action)との対応関係を管理するテーブルである。ここでは、ヘッダ領域情報(Header Field)と処理(Action)の組をエントリー(entry)と呼称する。ヘッダ領域情報(Header Field)は、その内容により、パケットの判定基準となる所定の規則(Rule)を示す。処理(Action)は、パケットを物理ポートや仮想ポートに転送するフォワード(Forward)処理や、パケットを廃棄するドロップ(Drop)処理等であり、ビットマップ(bitmap)等で表現される。ネットワーク(NW)機器は、受信したパケット内のヘッダ領域情報(Header Field)と、フローテーブル内のヘッダ領域情報(Header Field)を照合し、照合の結果、合致していれば、対応する処理(Action)を実行する。   A network (NW) device that supports OpenFlow has route information called a flow table inside. The flow table is a table for managing a correspondence relationship between header area information (Header Field) of a packet defined as a flow (Flow) and processing (Action) when the packet arrives. Here, a set of header area information (Header Field) and processing (Action) is referred to as an entry. The header area information (Header Field) indicates a predetermined rule (Rule) that is a determination criterion of a packet depending on the content thereof. The processing (Action) includes forward processing for transferring a packet to a physical port or a virtual port, drop processing for discarding the packet, and the like, and is expressed by a bitmap (bitmap) or the like. The network (NW) device collates the header area information (Header Field) in the received packet with the header area information (Header Field) in the flow table. Action).

図1を参照して、ヘッダ領域情報(Header Field)の要素となり得る情報について説明する。   With reference to FIG. 1, information that can be an element of header area information (Header Field) will be described.

図1では、ヘッダ領域情報(Header Field)の要素となり得る情報として、「Ingress Port」と、「Ether src」と、「Ether dst」と、「Ether type」と、「VLAN ID」と、「VLAN priority」と、「IP src」と、「IP dst」と、「IP proto」と、「TCP/UDP src port」と、「TCP/UDP dst port」を示している。フローテーブルとパケットとの照合の際には、これらの情報のいずれか又は全てが使用される。すなわち、これらの情報のいずれか又は全てを組み合わせて、フローが定義される。   In FIG. 1, as information that can be elements of header area information (Header Field), “Ingress Port”, “Ether src”, “Ether dst”, “Ether type”, “VLAN ID”, “VLAN” “priority”, “IP src”, “IP dst”, “IP protocol”, “TCP / UDP src port”, and “TCP / UDP dst port” are shown. Any or all of these pieces of information are used when collating the flow table with the packet. That is, a flow is defined by combining any or all of these pieces of information.

「Ingress Port」は、入力ポートを示す。「Ether src」は、送信元(Source)のMACアドレス(Media Access Control Address)を示す。「Ether dst」は、宛先(Destination)のMACアドレスを示す。「Ether type」は、上位層のプロトコルの種類を示す。「VLAN ID」は、仮想LAN(Virtual Local Area Network)スイッチのポート毎に設定された識別情報を示す。「VLAN priority」は、仮想LANスイッチの該当ポートの優先度を示す。「IP src」は、送信元のIPアドレス(Internet Protocol Address)を示す。「IP dst」は、宛先のIPアドレスを示す。「IP proto」は、IPのプロトコル番号を示す。「TCP/UDP src port」は、TCP(Transmission Control Protocol)やUDP(User Datagram Protocol)における送信元のポート番号を示す。「TCP/UDP dst port」は、TCPやUDPにおける宛先のポート番号を示す。   “Ingress Port” indicates an input port. “Ether src” indicates the MAC address (Media Access Control Address) of the transmission source (Source). “Ether dst” indicates the MAC address of the destination (Destination). “Ether type” indicates the type of the upper layer protocol. “VLAN ID” indicates identification information set for each port of a virtual LAN (Virtual Local Area Network) switch. “VLAN priority” indicates the priority of the corresponding port of the virtual LAN switch. “IP src” indicates a source IP address (Internet Protocol Address). “IP dst” indicates a destination IP address. “IP proto” indicates an IP protocol number. “TCP / UDP src port” indicates a port number of a transmission source in TCP (Transmission Control Protocol) or UDP (User Datagram Protocol). “TCP / UDP dst port” indicates a destination port number in TCP or UDP.

コントローラは、ネットワーク(NW)機器制御手段(図1のスイッチ制御手段)を備え、セキュアチャンネル(Secure channel)を介して、ネットワーク(NW)機器のフローテーブルを更新して、ネットワーク(NW)機器を制御する。   The controller includes network (NW) device control means (switch control means in FIG. 1), updates the flow table of the network (NW) device via the secure channel, and sets the network (NW) device. Control.

ネットワーク(NW)機器は、パケット転送手段(図1のパケット処理手段)を備え、パケットが到着すると、内部に持つフローテーブルとパケットの照合を行い、該当するエントリーが存在する場合は、関連付けられたパケット送信や廃棄等の処理(Action)を実行する。   The network (NW) device is provided with a packet transfer means (packet processing means in FIG. 1). When a packet arrives, it collates the packet with an internal flow table, and if there is a corresponding entry, it is associated. Processing (Action) such as packet transmission and discarding is executed.

ここで、図2を参照して、従来のパケット処理の流れについて説明する。
ネットワーク(NW)機器は、ネットワークからパケットを受信する(図2の「Packet in from network」)。
Here, the flow of conventional packet processing will be described with reference to FIG.
The network (NW) device receives a packet from the network (“Packet in from network” in FIG. 2).

ネットワーク(NW)機器は、ネットワーク上に複数存在し、個々のネットワーク(NW)機器は、IEEE 802.1D標準のSTP(Spanning Tree Protocol)に従い、ループフリーな論理トポロジーを維持する。個々のネットワーク(NW)機器は、ルートブリッジとなるネットワーク(NW)機器から木のように枝分かれしている。個々のネットワーク(NW)機器は、それぞれパケットを受信し、パケットに対する処理を行う(図2の「802.1d STP Processing」)。   A plurality of network (NW) devices exist on the network, and each network (NW) device maintains a loop-free logical topology in accordance with STP (Spanning Tree Protocol) of the IEEE 802.1D standard. Each network (NW) device is branched like a tree from a network (NW) device serving as a root bridge. Each network (NW) device receives the packet and processes the packet (“802.1d STP Processing” in FIG. 2).

ネットワーク(NW)機器は、内部に持つフローテーブルのエントリーと、受信したパケットの照合を行う(図2の「Flow lookup」)。   The network (NW) device collates the received packet with the entry of the internal flow table (“Flow lookup” in FIG. 2).

ここで、図3を参照して、従来のパケット照合処理について詳述する。
まず、ネットワーク(NW)機器は、フローテーブルのエントリーのヘッダ領域情報(Header Field)と照合する際の照合対象となるパケットのヘッダ領域情報(Header Field)に、「Ingress Port」と、「Ether src」と、「Ether dst」と、「Ether type」を指定する(図3の「Header Field=<Ingress Port, Ether src, Ether dst, Ether type>」)。
Here, a conventional packet matching process will be described in detail with reference to FIG.
First, the network (NW) device adds “Ingress Port” and “Ether src” to the header area information (Header Field) of the packet to be collated when collating with the header area information (Header Field) of the entry in the flow table. "Ether dst" and "Ether type" are specified ("Header Field = <Ingress Port, Ether src, Ether dst, Ether type>" in FIG. 3).

ネットワーク(NW)機器は、パケットのヘッダ領域情報(Header Field)の「Ether type」の値が「0x8100」であるか確認する(図3の「Ether type = 0x8100?」)。   The network (NW) device checks whether the value of “Ether type” in the header area information (Header Field) of the packet is “0x8100” (“Ether type = 0x8100?” In FIG. 3).

ネットワーク(NW)機器は、「Ether type」の値が「0x8100」である場合、「VLAN ID」を、新たな照合対象として、ヘッダ領域情報(Header Field)に追加する。すなわち、ネットワーク(NW)機器は、「Ether type」についても照合対象とする。このとき、ネットワーク(NW)機器は、カプセル化された「Ether type」の値を、「Ether type」の値として使用する(図3の「Add <VLAN ID> to Header Field, Use encapsulated Ether type as Ether type」)。   When the value of “Ether type” is “0x8100”, the network (NW) device adds “VLAN ID” to the header area information (Header Field) as a new collation target. That is, the network (NW) device also sets “Ether type” as a verification target. At this time, the network (NW) device uses the value of the encapsulated “Ether type” as the value of “Ether type” (“Add <VLAN ID> to Header Field, Use encapsulated Ether type as shown in FIG. 3). Ether type ").

ネットワーク(NW)機器は、パケットのヘッダ領域情報(Header Field)の「Ether type」の値が「0x800」であるか確認する(図3の「Ether type = 0x800?」)。   The network (NW) device checks whether the value of “Ether type” in the header area information (Header Field) of the packet is “0x800” (“Ether type = 0x800?” In FIG. 3).

ネットワーク(NW)機器は、「Ether type」の値が「0x800」である場合、「IP src」と、「IP dst」と、「IP proto」を、新たな照合対象として、ヘッダ領域情報(Header Field)に追加する。すなわち、ネットワーク(NW)機器は、「IP src」と、「IP dst」と、「IP proto」についても照合対象とする(図3の「Add <IP src, IP dst, IP proto> to Header Field」)。   When the value of “Ether type” is “0x800”, the network (NW) device uses “IP src”, “IP dst”, and “IP protocol” as new collation targets, and header area information (Header) Field). That is, the network (NW) device also checks “IP src”, “IP dst”, and “IP protocol” (“Add <IP src, IP dst, IP protocol> to Header Field” in FIG. 3). ").

ネットワーク(NW)機器は、パケットのヘッダ領域情報(Header Field)の「IP proto」の値が「6」又は「17」であるか確認する(図3の「IP proto = 6 or 17?」)。   The network (NW) device confirms whether the value of “IP protocol” in the header field information (Header Field) of the packet is “6” or “17” (“IP protocol = 6 or 17?” In FIG. 3). .

ネットワーク(NW)機器は、「IP proto」の値が「6」又は「17」である場合、「TCP/UDP src port」と、「TCP/UDP dst port」を、新たな照合対象として、ヘッダ領域情報(Header Field)に追加する。すなわち、ネットワーク(NW)機器は、「TCP/UDP src port」と、「TCP/UDP dst port」についても照合対象とする(図3の「Add <TCP/UDP src port, TCP/UDP dst port> to Header Field」)。   When the value of “IP proto” is “6” or “17”, the network (NW) device uses “TCP / UDP src port” and “TCP / UDP dst port” as new collation targets, It adds to area | region information (Header Field). That is, the network (NW) device also checks “TCP / UDP src port” and “TCP / UDP dst port” (“Add <TCP / UDP src port, TCP / UDP dst port>” in FIG. 3). to Header Field ").

ネットワーク(NW)機器は、フローテーブルのエントリーのヘッダ領域情報(Header Field)と、パケットのヘッダ領域情報(Header Field)を照合する(図3の「Packet Lookup Over Header Field」)。   The network (NW) device collates the header area information (Header Field) of the entry in the flow table with the header area information (Header Field) of the packet (“Packet Lookup Over Header Field” in FIG. 3).

ネットワーク(NW)機器は、受信したパケットに対し、フローテーブル内に該当するエントリーが存在する場合は、このエントリーに関連付けられたパケット送信や廃棄等の処理(Action)を実行する(図2の「Apply actions」)。   When there is a corresponding entry in the flow table for the received packet, the network (NW) device executes processing (Action) such as packet transmission and discard associated with this entry ("" in FIG. 2). "Apply actions").

また、ネットワーク(NW)機器は、受信したパケットに対し、フローテーブル内に該当するエントリーが存在しない場合、このパケットを内部に保留し、セキュアチャンネル(Secure channel)を介して、コントローラに未知のパケットが到着したことを通知する(図2の「Send to secure channel」)。ここでは、該当するエントリーが存在しない場合の未知のパケットを1stパケット(First packet)と呼称する。   In addition, when there is no corresponding entry in the flow table for the received packet, the network (NW) device holds this packet internally, and an unknown packet is sent to the controller via the secure channel (Secure channel). Is notified ("Send to secure channel" in FIG. 2). Here, an unknown packet when the corresponding entry does not exist is referred to as a 1st packet (First packet).

コントローラは、1stパケット到着の通知を受けると、宛先までの経路を計算し、ネットワーク(NW)機器のフローテーブルに新しいエントリーを追加し、フローテーブルを更新する。宛先までの経路については、どのネットワーク(NW)機器がどのネットワーク(NW)機器につながっているかを表すトポロジ情報(Network Topology)から計算する。   Upon receiving the notification of arrival of the first packet, the controller calculates a route to the destination, adds a new entry to the flow table of the network (NW) device, and updates the flow table. The route to the destination is calculated from topology information (Network Topology) indicating which network (NW) device is connected to which network (NW) device.

ネットワーク(NW)機器は、フローテーブルが更新されると、滞留していた1stパケットとそれ以降の同種のパケットを、追加された処理(Action)に従って処理する。   When the flow table is updated, the network (NW) device processes the staying 1st packet and the same type of subsequent packets according to the added processing (Action).

以下、図4を参照して、従来のネットワークシステムにおける処理の流れを具体的に説明する。ここでは、ネットワーク(NW)機器として、ネットワーク(NW)機器A、ネットワーク(NW)機器B、ネットワーク(NW)機器Cの3つを示す。   Hereinafter, the flow of processing in the conventional network system will be described in detail with reference to FIG. Here, three network (NW) devices A, a network (NW) device B, and a network (NW) device C are shown as network (NW) devices.

(1)1stパケット送信
ノードは、自身が接続されたネットワーク(NW)機器Aに対して、1stパケットを送信する。
(1) 1st packet transmission A node transmits a 1st packet to a network (NW) device A to which the node is connected.

(2)1stパケット受信通知
ネットワーク(NW)機器Aは、1stパケットを受信すると、1stパケットを受信した旨を、自身のコントローラに通知する。
(2) 1st packet reception notification When the network (NW) device A receives the 1st packet, it notifies its controller that it has received the 1st packet.

(3)経路計算
コントローラは、ネットワーク(NW)機器Aから通知を受け取ると、トポロジ情報を基に、経路を計算する。
(3) Route Calculation When the controller receives a notification from the network (NW) device A, the controller calculates a route based on the topology information.

(4)ネットワーク(NW)機器C更新
コントローラは、計算した経路に基づいて、最終段にあるネットワーク(NW)機器Cのフローテーブルに新しいエントリーを追加し、フローテーブルを更新する。
(4) Network (NW) device C update The controller adds a new entry to the flow table of the network (NW) device C at the final stage based on the calculated route, and updates the flow table.

(5)ネットワーク(NW)機器B更新
コントローラは、計算した経路に基づいて、ネットワーク(NW)機器Cの前段にあるネットワーク(NW)機器Bのフローテーブルに新しいエントリーを追加し、フローテーブルを更新する。
(5) Network (NW) device B update The controller adds a new entry to the flow table of the network (NW) device B at the preceding stage of the network (NW) device C and updates the flow table based on the calculated route. To do.

(6)ネットワーク(NW)機器A更新
コントローラは、計算した経路上で、通知元のネットワーク(NW)機器Aの後段の全てのネットワーク(NW)機器のフローテーブルの更新が完了すると、計算した経路に基づいて、通知元のネットワーク(NW)機器Aのフローテーブルに新しいエントリーを追加し、フローテーブルを更新する。すなわち、コントローラは、計算した経路上において、最終段から順に手前に向かってネットワーク(NW)機器のフローテーブルを更新してゆき、最後に、通知元のネットワーク(NW)機器のフローテーブルを更新する。
(6) Network (NW) device A update When the controller completes the update of the flow table of all the network (NW) devices subsequent to the notification source network (NW) device A on the calculated route, Based on the above, a new entry is added to the flow table of the notification source network (NW) device A, and the flow table is updated. In other words, the controller updates the flow table of the network (NW) device in order from the last stage on the calculated route, and finally updates the flow table of the notification source network (NW) device. .

(7)パケット送信
ネットワーク(NW)機器Aは、追加されたフローテーブルのエントリーに従い、1stパケットを次のネットワーク(NW)機器Bに送信する。
(7) Packet transmission The network (NW) device A transmits the 1st packet to the next network (NW) device B according to the entry of the added flow table.

(8)パケット送信
ネットワーク(NW)機器Bは、追加されたフローテーブルのエントリーに従い、1stパケットを次のネットワーク(NW)機器Cに送信する。
(8) Packet transmission The network (NW) device B transmits the 1st packet to the next network (NW) device C according to the entry of the added flow table.

(9)パケット送信
ネットワーク(NW)機器Cは、追加されたフローテーブルのエントリーに従い、受信したパケットを、配下のノードに送信する。
(9) Packet transmission The network (NW) device C transmits the received packet to the subordinate node according to the entry of the added flow table.

従って、図4に示すような、通常のオープンフローでは、パケット転送と経路制御を分離したネットワーク(NW)機器に1stパケットが到着すると、ネットワーク(NW)機器からコントローラへの通知と、コントローラからネットワーク(NW)機器へのフローテーブル更新が発生するため、従来のネットワーク(NW)機器に比べて通信の遅延が発生することになる。   Therefore, in a normal open flow as shown in FIG. 4, when a 1st packet arrives at a network (NW) device in which packet transfer and routing are separated, notification from the network (NW) device to the controller, and from the controller to the network Since the flow table is updated to the (NW) device, a communication delay occurs compared to the conventional network (NW) device.

更に、データセンタのような大規模ネットワークを考えると、この遅延は顕著である。大規模なネットワークでは、性能や信頼性の面から、複数のコントローラが分担してネットワーク内の全てのネットワーク(NW)機器を管理することになる。経路計算のためのトポロジ情報は、全てのコントローラが共有している。あるパケットの経路が異なるコントローラによって制御されるネットワーク(NW)機器群をまたがるような場合、コントローラ間で経路内のネットワーク(NW)機器のフローテーブル更新指示と同期待ち合わせが発生し、それが完了するまでパケットの転送は遅延する。   Furthermore, this delay is significant when considering a large-scale network such as a data center. In a large-scale network, from the viewpoint of performance and reliability, a plurality of controllers share and manage all network (NW) devices in the network. Topology information for route calculation is shared by all controllers. When a route of a packet crosses a network (NW) device group controlled by different controllers, a flow table update instruction and a synchronization wait of the network (NW) device in the route occur between the controllers, and this is completed. Until the packet transfer is delayed.

以上から、既存のネットワークをパケット転送と経路制御を分離したネットワーク(NW)機器で再構成する場合、システム性能が劣化する可能性が大きく、最悪の場合、従来守れていたシステムの性能指標を守れなくなってしまう可能性がある。   From the above, when reconfiguring an existing network with a network (NW) device that separates packet forwarding and routing, there is a high possibility that system performance will deteriorate. There is a possibility of disappearing.

そこで、パケットの転送遅延を解決するために、投機的にパケットを転送する手段が考えられるが、投機的にパケットを転送して失敗したときに投機的に転送したパケットの取り消し方法が存在しておらず、投機的に転送を行うことができない。   In order to solve the packet transfer delay, a means of speculatively transferring the packet can be considered. However, there is a method of canceling the speculatively transferred packet when the speculative transfer of the packet fails. It cannot be transferred speculatively.

関連する技術として、特許文献1(特開2003−018240号公報)に通信監視システムが開示されている。この関連技術では、エラー情報を確認するために保持するテーブルを持ち、このテーブルを用いて通信順序のエラーを判定する。   As a related technique, a communication monitoring system is disclosed in Patent Document 1 (Japanese Patent Laid-Open No. 2003-018240). This related technique has a table to be stored for confirming error information, and an error in the communication order is determined using this table.

また、特許文献2(特開2004−129054号公報)に経路制御装置及び経路制御情報生成方法が開示されている。この関連技術では、経路制御装置において、経路制御処理と転送制御処理とが分離されて、経路制御処理が経路制御装置にて実行され、転送制御処理が各転送装置にて実行される。   Patent Document 2 (Japanese Patent Application Laid-Open No. 2004-129054) discloses a path control device and a path control information generation method. In this related technology, in the path control device, the path control process and the transfer control process are separated, the path control process is executed by the path control apparatus, and the transfer control process is executed by each transfer apparatus.

また、特許文献3(特開2004−147021号公報)に経路制御システム、経路制御装置、及び経路制御方法が開示されている。この関連技術では、制御系と転送系とは、経路制御システムの物理的な構成要素としての制御サーバとルータとにより明確に分離されている。   Patent Document 3 (Japanese Patent Application Laid-Open No. 2004-147021) discloses a path control system, a path control device, and a path control method. In this related technology, the control system and the transfer system are clearly separated by a control server and a router as physical components of the path control system.

また、特許文献4(特開2007−257479号公報)に通信装置、方法及びプログラムが開示されている。この関連技術では、送信側NICは、データ転送要求を受けた際に、転送先に受信許可の有無かを問合せることなく、転送データからパケットを作成して投機的に送信する。受信領域が受信不許可であれば、転送先から再送要求を受信した際に、パケットを再送する。受信側NICは、パケット受信時に転送領域管理情報を参照して転送不許可を判別した場合に、受信パケットを破棄し、その後に転送許可を判別した場合に、再送要求を送信して転送させる。受信不許可の場合は、これを送信元に通知して転送を中断する。   Patent Document 4 (Japanese Patent Laid-Open No. 2007-257479) discloses a communication device, method, and program. In this related technology, when receiving a data transfer request, the transmitting NIC creates a packet from the transfer data and speculatively transmits it without inquiring the transfer destination whether or not reception is permitted. If the reception area does not permit reception, the packet is retransmitted when a retransmission request is received from the transfer destination. The receiving NIC discards the received packet when it is determined that transfer is not permitted with reference to the transfer area management information at the time of packet reception, and transmits a retransmission request for transfer when it determines transfer permission after that. If reception is not permitted, this is notified to the transmission source and the transfer is interrupted.

特開2003−018240号公報JP 2003-018240 A 特開2004−129054号公報JP 2004-129054 A 特開2004−147021号公報JP 2004-147021 A 特開2007−257479号公報JP 2007-257479 A

The OpenFlow Switch Consortium <http://www.openflowswitch.org/>The OpenFlow Switch Consortium <http: // www. openflowswitch. org />

本発明の目的は、オープンフロー(OpenFlow)に代表されるような、制御機能を外部のコントローラとして分離したネットワーク(NW)機器で構成されるネットワークにおいて、各ネットワーク(NW)機器が、経路情報を管理するフローテーブルに経路情報が無いパケットを投機的に転送し、外部ネットワークに送信する直前で保留するネットワークシステムを提供することである。   An object of the present invention is a network composed of network (NW) devices separated by a control function as an external controller, as represented by OpenFlow, and each network (NW) device receives route information. It is to provide a network system that speculatively transfers a packet having no route information in a flow table to be managed and holds it immediately before sending it to an external network.

本発明のネットワークシステムは、ネットワーク機器と、ネットワーク機器を制御するコントローラとを含む。ネットワーク機器は、未知のパケットを受信すると、パケットから投機パケットを作成し、投機転送先のネットワーク機器を選択して、投機転送先に投機パケットを送信する手段と、パケットの到着をコントローラに通知する手段と、コントローラからパケットに関する経路情報が設定された場合、経路情報を確認し、投機転送先が正しいか確認する手段と、投機転送先が間違っている場合、経路情報に従い、正しい転送先にパケットを送信する手段とを具備する。   The network system of the present invention includes a network device and a controller that controls the network device. When the network device receives the unknown packet, the network device creates a speculative packet from the packet, selects the speculative transfer destination network device, and transmits the speculative packet to the speculative transfer destination, and notifies the controller of the arrival of the packet. If the route information related to the packet is set from the means and the controller, the route information is confirmed and the speculative transfer destination is confirmed to be correct. If the speculative transfer destination is incorrect, the packet is sent to the correct transfer destination according to the route information. Means for transmitting.

本発明のパケット投機転送方法は、コントローラにより制御されるネットワーク機器のパケット投機転送方法である。このパケット投機転送方法では、ネットワーク機器は、未知のパケットを受信すると、パケットから投機パケットを作成し、投機転送先のネットワーク機器を選択して、投機転送先に投機パケットを送信する。また、パケットの到着をコントローラに通知する。また、コントローラからパケットに関する経路情報が設定された場合、経路情報を確認し、投機転送先が正しいか確認する。また、投機転送先が間違っている場合、経路情報に従い、正しい転送先にパケットを送信する。   The packet speculative transfer method of the present invention is a packet speculative transfer method of a network device controlled by a controller. In this packet speculative transfer method, when receiving an unknown packet, the network device creates a speculative packet from the packet, selects a speculative transfer destination network device, and transmits the speculative packet to the speculative transfer destination. Also, the arrival of the packet is notified to the controller. Also, when route information related to a packet is set from the controller, the route information is confirmed to check whether the speculative transfer destination is correct. If the speculative transfer destination is wrong, the packet is transmitted to the correct transfer destination according to the route information.

本発明のプログラムは、上記のパケット投機転送方法を、ネットワーク機器に実行させるためのプログラムである。なお、本発明のプログラムは、記憶装置や記憶媒体に格納することが可能である。   The program of the present invention is a program for causing a network device to execute the packet speculative transfer method described above. Note that the program of the present invention can be stored in a storage device or a storage medium.

パケット転送と経路制御の機能が分離されたネットワーク(NW)機器で構成されるネットワークにおいて、複数のコントローラをまたぐ通信が発生する場合におけるパケット処理の際、コントローラ間で経路内のネットワーク(NW)機器のフローテーブル更新指示と同期待ち合わせの必要が無くなり、パケット転送の遅延を回避でき、ネットワーク性能が向上する。   In a network composed of network (NW) devices in which the functions of packet transfer and routing are separated, network processing (NW) devices in the path between the controllers during packet processing when communication across multiple controllers occurs This eliminates the need for a flow table update instruction and synchronization waiting, avoids packet transfer delay, and improves network performance.

オープンフロー0.9.0の基本的な構成例を示す概念図である。It is a conceptual diagram which shows the basic structural example of OpenFlow 0.9.0. 従来のパケット処理の流れを説明するための図である。It is a figure for demonstrating the flow of the conventional packet processing. 従来のパケット照合処理の流れを説明するための図である。It is a figure for demonstrating the flow of the conventional packet collation process. 従来のネットワークシステムにおける処理の流れを説明するための図である。It is a figure for demonstrating the flow of a process in the conventional network system. 本発明のネットワークシステムにおける処理の流れを説明するための図である。It is a figure for demonstrating the flow of a process in the network system of this invention. 本発明のネットワークシステムの基本構成を示すブロック図である。It is a block diagram which shows the basic composition of the network system of this invention. 本発明で定義する投機パケットを運ぶフレームフォーマットを説明するための図である。It is a figure for demonstrating the frame format which carries the speculative packet defined by this invention. 本発明におけるフローテーブルの内容を説明するための図である。It is a figure for demonstrating the content of the flow table in this invention. 本発明におけるネットワーク(NW)機器基本処理を説明するための図である。It is a figure for demonstrating the network (NW) apparatus basic process in this invention. 本発明におけるパケット受信処理を説明するための図である。It is a figure for demonstrating the packet reception process in this invention. 本発明におけるパケット投機転送処理を説明するための図である。It is a figure for demonstrating the packet speculative transfer process in this invention. 本発明におけるフローテーブル更新処理を説明するための図である。It is a figure for demonstrating the flow table update process in this invention. 本発明におけるパケット投機転送取り消し処理を説明するための図である。It is a figure for demonstrating the packet speculative transfer cancellation process in this invention. 本発明におけるパケット投機転送取り消し処理を説明するための図である。It is a figure for demonstrating the packet speculative transfer cancellation process in this invention. 本発明におけるキャンセルパケット送信処理を説明するための図である。It is a figure for demonstrating the cancellation packet transmission process in this invention. 本発明におけるパケット転送処理を説明するための図である。It is a figure for demonstrating the packet transfer process in this invention. 本発明におけるキャンセルパケット受信処理を説明するための図である。It is a figure for demonstrating the cancellation packet reception process in this invention. 本発明における二重パケット廃棄処理を説明するための図である。It is a figure for demonstrating the double packet discard process in this invention. 本発明の実施例1を説明するための図である。It is a figure for demonstrating Example 1 of this invention. 本発明の実施例2を説明するための図である。It is a figure for demonstrating Example 2 of this invention. 本発明の実施例3を説明するための図である。It is a figure for demonstrating Example 3 of this invention. 本発明の実施例4を説明するための図である。It is a figure for demonstrating Example 4 of this invention.

<第1実施形態>
以下に、本発明の第1実施形態について添付図面を参照して説明する。
図5に示す通り、本発明のネットワークシステムは、コントローラと、ネットワーク(NW)機器を備える。
<First Embodiment>
Hereinafter, a first embodiment of the present invention will be described with reference to the accompanying drawings.
As shown in FIG. 5, the network system of the present invention includes a controller and network (NW) equipment.

コントローラは、自分が制御するネットワーク(NW)機器から、1stパケット(First packet)受信の通知を受けて、パケット(packet)転送の経路を計算し、計算した経路を基に、通知元のネットワーク(NW)機器のフローテーブルを更新する。   The controller receives a first packet (First packet) reception notification from a network (NW) device controlled by itself, calculates a packet transfer route, and based on the calculated route (notification source network ( NW) Update the flow table of the device.

ネットワーク(NW)機器は、1stパケットを受信するとコントローラに通知し、同時に、投機的に1stパケットを転送する。   When receiving the 1st packet, the network (NW) device notifies the controller, and at the same time, speculatively transfers the 1st packet.

以下、図5を参照して、本発明のネットワークシステムにおける処理の流れを具体的に説明する。ここでは、ネットワーク(NW)機器として、ネットワーク(NW)機器A、ネットワーク(NW)機器B、ネットワーク(NW)機器Cの3つを示す。   Hereinafter, the flow of processing in the network system of the present invention will be specifically described with reference to FIG. Here, three network (NW) devices A, a network (NW) device B, and a network (NW) device C are shown as network (NW) devices.

なお、図4と図5を対比すると、従来技術と本発明との相違点が明確となる。   4 and FIG. 5, the difference between the prior art and the present invention becomes clear.

(1)1stパケット送信
ノードは、自身が接続されたネットワーク(NW)機器Aに対して、1stパケットを送信する。
(1) 1st packet transmission A node transmits a 1st packet to a network (NW) device A to which the node is connected.

(2)1stパケット受信通知
ネットワーク(NW)機器Aは、1stパケットを受信すると、1stパケットを受信した旨を、自身のコントローラに通知する。
(2) 1st packet reception notification When the network (NW) device A receives the 1st packet, it notifies its controller that it has received the 1st packet.

(3)投機パケット送信
ネットワーク(NW)機器Aは、コントローラに1stパケットが到着したことを通知すると同時に、投機転送先のネットワーク(NW)機器Bを選び、投機的にパケットの転送を行うために新たに定義する投機パケットを投機転送先のネットワーク(NW)機器Bに送信し、投機的にパケットの転送を行う。
(3) Speculative packet transmission The network (NW) device A notifies the controller that the 1st packet has arrived, and at the same time, selects the speculative transfer destination network (NW) device B to speculatively transfer the packet. A newly defined speculative packet is transmitted to the speculative transfer destination network (NW) device B, and the packet is speculatively transferred.

(4)投機パケット送信
ネットワーク(NW)機器Bは、投機パケットを受信した場合、受信した投機パケットをパケットバッファに保留し、同じように次の投機転送先のネットワーク(NW)機器Cを選び、投機パケットを次の投機転送先のネットワーク(NW)機器Cに送信する。但し、投機的に送信する先がネットワーク(NW)機器で無い場合は、それ以上投機的にパケットの転送を行わないようにする。ここでは、ネットワーク(NW)機器Cは、投機的に送信する先がネットワーク(NW)機器で無いため、投機パケットを受信した場合、投機的にパケットの転送を行わず、受信した投機パケットをパケットバッファに保留して待つ。
(4) Speculative packet transmission When receiving the speculative packet, the network (NW) device B holds the received speculative packet in the packet buffer, and similarly selects the next speculative transfer destination network (NW) device C, The speculative packet is transmitted to the next speculative transfer destination network (NW) device C. However, if the destination of speculative transmission is not a network (NW) device, no further speculative packet transfer is performed. Here, since the network (NW) device C is not the network (NW) device to which the speculative transmission is performed, when a speculative packet is received, the packet is not transferred speculatively, and the received speculative packet is packetized. Hold in the buffer and wait.

(5)経路計算
コントローラは、ネットワーク(NW)機器Aから通知を受け取ると、トポロジ情報を基に、宛先までの経路を計算し、計算した経路上の各ネットワーク(NW)機器A、B、Cのフローテーブルに新しいエントリーを追加する。
(5) Route calculation Upon receiving the notification from the network (NW) device A, the controller calculates a route to the destination based on the topology information, and each network (NW) device A, B, C on the calculated route Add a new entry to the flow table.

(6)ネットワーク(NW)機器C更新
コントローラは、計算した経路に基づいて、最終段にあるネットワーク(NW)機器Cのフローテーブルに新しいエントリーを追加し、フローテーブルを更新する。
(6) Network (NW) device C update The controller adds a new entry to the flow table of the network (NW) device C at the final stage based on the calculated route, and updates the flow table.

(7)パケット送信
ネットワーク(NW)機器Cは、追加されたフローテーブルのエントリーに従い、パケットバッファに保留している投機パケットを、配下のノードに送信する。
(7) Packet transmission The network (NW) device C transmits the speculative packet held in the packet buffer to the subordinate node according to the added entry in the flow table.

(8)ネットワーク(NW)機器B更新
コントローラは、計算した経路に基づいて、ネットワーク(NW)機器Cの前段にあるネットワーク(NW)機器Bのフローテーブルに新しいエントリーを追加し、フローテーブルを更新する。
(8) Network (NW) device B update The controller adds a new entry to the flow table of the network (NW) device B at the preceding stage of the network (NW) device C and updates the flow table based on the calculated route. To do.

(9)ネットワーク(NW)機器A更新
コントローラは、計算した経路上で、通知元のネットワーク(NW)機器Aの後段の全てのネットワーク(NW)機器のフローテーブルの更新が完了すると、計算した経路に基づいて、通知元のネットワーク(NW)機器Aのフローテーブルに新しいエントリーを追加し、フローテーブルを更新する。すなわち、コントローラは、計算した経路上において、最終段から順に手前に向かってネットワーク(NW)機器のフローテーブルを更新してゆき、最後に、通知元のネットワーク(NW)機器のフローテーブルを更新する。
(9) Network (NW) device A update When the controller completes the update of the flow table of all the network (NW) devices following the notification source network (NW) device A on the calculated route, Based on the above, a new entry is added to the flow table of the notification source network (NW) device A, and the flow table is updated. In other words, the controller updates the flow table of the network (NW) device in order from the last stage on the calculated route, and finally updates the flow table of the notification source network (NW) device. .

<各ネットワーク(NW)機器の動作の詳細>
以下、コントローラが計算した経路上の各ネットワーク(NW)機器の動作の詳細について説明する。
<Details of operation of each network (NW) device>
Details of the operation of each network (NW) device on the path calculated by the controller will be described below.

各ネットワーク(NW)機器は、コントローラによるエントリー追加の処理を受けて投機処理の成否判定を行う。投機処理の成否判定については、投機パケットを解析し、送信元のネットワーク(NW)機器と、送信先のネットワーク(NW)機器が正しいかどうかで判定する。   Each network (NW) device receives the process of adding an entry by the controller and determines whether the speculative process is successful. The success or failure of the speculative process is determined by analyzing the speculative packet and determining whether the transmission source network (NW) device and the transmission destination network (NW) device are correct.

各ネットワーク(NW)機器は、送信元と送信先が両方とも正しい場合、投機的な転送に成功したと判定する。各ネットワーク(NW)機器は、投機的な転送に成功したと判定した場合、保留していた投機パケットを削除し、次のパケットを待つ。   Each network (NW) device determines that the speculative transfer is successful when both the transmission source and the transmission destination are correct. When each network (NW) device determines that the speculative transfer is successful, it deletes the held speculative packet and waits for the next packet.

各ネットワーク(NW)機器は、送信元が正しく送信先が間違っていた場合、投機的な転送に失敗したと判定する。各ネットワーク(NW)機器は、投機的な転送に失敗したと判定した場合、保留していた投機パケットを通常のパケットに変換して、通常のパケットをフローテーブルに従ってネットワーク(NW)機器に送信する。   Each network (NW) device determines that speculative transfer has failed when the transmission source is correct and the transmission destination is incorrect. If each network (NW) device determines that the speculative transfer has failed, it converts the held speculative packet into a normal packet and transmits the normal packet to the network (NW) device according to the flow table. .

また、各ネットワーク(NW)機器は、間違った送信先に対して転送した投機パケットを取り消すために、新たに定義する投機キャンセルパケットを投機転送先のネットワーク(NW)機器に送信し、投機的に転送した投機パケットを取り消す。   Each network (NW) device transmits a newly defined speculative cancel packet to the speculative transfer destination network (NW) device in order to cancel the speculative packet transferred to the wrong destination. Cancel the transferred speculative packet.

各ネットワーク(NW)機器は、送信元が間違っており送信先が正しい場合、投機的な転送に成功したと判定する。各ネットワーク(NW)機器は、送信先に正しい送信元から送信されてきた通常のパケットを転送しないようにするために、新たに二重フラグという情報を保持する。正しい送信元から通常のパケットが送信されてきたら、そのパケットを廃棄し、二重フラグの情報を削除する。   Each network (NW) device determines that the speculative transfer is successful when the transmission source is wrong and the transmission destination is correct. Each network (NW) device newly holds information called a double flag so as not to transfer a normal packet transmitted from a correct transmission source to a transmission destination. When a normal packet is transmitted from the correct transmission source, the packet is discarded and the double flag information is deleted.

また、各ネットワーク(NW)機器は、投機キャンセルパケットの受信を待ち、受信した投機キャンセルパケットを廃棄し、保留していた投機パケットを削除する。   Each network (NW) device waits for reception of a speculative cancellation packet, discards the received speculative cancellation packet, and deletes the speculative packet that has been suspended.

各ネットワーク(NW)機器は、送信元と送信先が両方とも間違っていた場合、投機的な転送に失敗したと判定する。各ネットワーク(NW)機器は、投機的な転送に失敗したと判定した場合、保留していた投機パケットを通常のパケットに変換して、通常のパケットをフローテーブルに従ってネットワーク(NW)機器に送信する。   Each network (NW) device determines that the speculative transfer has failed when both the transmission source and the transmission destination are wrong. If each network (NW) device determines that the speculative transfer has failed, it converts the held speculative packet into a normal packet and transmits the normal packet to the network (NW) device according to the flow table. .

各ネットワーク(NW)機器は、間違った送信先に対して投機キャンセルパケットを送信し、投機的に転送した投機パケットを取り消す。送信先に正しい送信元から送信されてきた通常のパケットを転送しないようにするために、新たに二重フラグという情報を保持する。正しい送信元から通常のパケットが送信されてきたら、そのパケットを廃棄し、二重フラグの情報を削除する。   Each network (NW) device transmits a speculative cancel packet to the wrong transmission destination, and cancels the speculative packet transferred speculatively. In order not to transfer a normal packet transmitted from the correct transmission source to the transmission destination, information such as a double flag is newly held. When a normal packet is transmitted from the correct transmission source, the packet is discarded and the double flag information is deleted.

各ネットワーク(NW)機器は、投機パケットを受信していない場合、ネットワーク(NW)機器は、次のパケットを待つ。   When each network (NW) device has not received a speculative packet, the network (NW) device waits for the next packet.

各ネットワーク(NW)機器は、投機パケットを受信していたが投機的に送信していない場合、送信元で判定する。   When each network (NW) device has received a speculative packet but has not transmitted speculatively, the network device determines with the transmission source.

各ネットワーク(NW)機器は、送信元が正しかった場合、保留していた投機パケットを通常のパケットに変換して、通常のパケットをフローテーブルに従ってネットワーク(NW)機器に送信する。   When the transmission source is correct, each network (NW) device converts the held speculative packet into a normal packet, and transmits the normal packet to the network (NW) device according to the flow table.

各ネットワーク(NW)機器は、送信元が間違っていた場合、保留していた投機パケットを削除して次のパケットを待つ。   When the transmission source is wrong, each network (NW) device deletes the pending speculative packet and waits for the next packet.

各ネットワーク(NW)機器は、1stパケットを受信して、始点として投機パケットを送信した場合、投機送信元は正しいものとして投機転送先の成否判定を行う。   When each network (NW) device receives the 1st packet and transmits the speculative packet as the starting point, the speculative transmission source is determined to be correct and the success / failure determination of the speculative transfer destination is performed.

各ネットワーク(NW)機器は、投機パケットをパケットバッファに保留した後、所定期間内に、フローテーブルに新しいエントリーを追加する処理を受けなかった場合、上記の所定期間の経過後、保留している投機パケットを、投機的な送信に失敗した投機パケットと判定して削除する。   Each network (NW) device holds the speculative packet in the packet buffer, and if it does not receive a process for adding a new entry to the flow table within a predetermined period, holds it after the predetermined period has elapsed. The speculative packet is determined to be a speculative packet for which speculative transmission has failed and is deleted.

各ネットワーク(NW)機器は、投機キャンセルパケットを受信した場合、保留していた投機パケットを削除して、投機転送先に投機キャンセルパケットを転送する。   When each network (NW) device receives a speculative cancel packet, the network (NW) device deletes the speculative packet held and transfers the speculative cancel packet to the speculative transfer destination.

本発明で定義する投機パケットと投機キャンセルパケットによって、フローテーブルにエントリーが無いパケットについても、投機的に転送を行うことができ、投機的な転送に失敗したときも、投機的な転送を取り消すことができる。投機的に転送を行うことできるので、パケット転送の遅延を小さくすることができる。   With the speculative packet and speculative cancel packet defined in the present invention, even if there is no entry in the flow table, speculative transfer can be performed, and even if speculative transfer fails, speculative transfer is canceled. Can do. Since the transfer can be speculatively performed, the packet transfer delay can be reduced.

<本発明のネットワークシステムの基本構成>
図6を参照して、本発明のネットワークシステムの基本構成の詳細について説明する。
<Basic Configuration of Network System of the Present Invention>
Details of the basic configuration of the network system of the present invention will be described with reference to FIG.

先に説明した通り、本発明のネットワークシステムは、コントローラ10と、ネットワーク(NW)機器20を備える。   As described above, the network system of the present invention includes the controller 10 and the network (NW) device 20.

なお、図5に示したコントローラは、コントローラ10に該当する。また、図5に示したネットワーク(NW)機器は、ネットワーク(NW)機器20に該当する。   The controller illustrated in FIG. 5 corresponds to the controller 10. The network (NW) device shown in FIG. 5 corresponds to the network (NW) device 20.

コントローラ10は、ネットワーク(NW)機器20と物理的に分離されたサーバマシン、又は当該サーバマシン上で動作する仮想マシン(VM:Virtual Machine)である。コントローラ10は、複数のネットワーク(NW)機器を管理することができ、各ネットワーク(NW)機器と、専用線もしくは通常のネットワークを利用したセキュアチャンネル(Secure channel:安全な経路)で接続されており、オープンフロープロトコルで通信を行う。   The controller 10 is a server machine physically separated from the network (NW) device 20 or a virtual machine (VM) that operates on the server machine. The controller 10 can manage a plurality of network (NW) devices and is connected to each network (NW) device via a dedicated channel or a secure channel (secure channel) using a normal network. Communicate with the OpenFlow protocol.

ネットワーク(NW)機器20は、図7に示すような新規プロトコルを用いて、通常のパケットを運ぶフレーム(frame)に投機転送を示す情報を付加した投機パケットを生成し、この投機パケットを次のネットワーク(NW)機器に投機的に送信する。ネットワーク(NW)機器20は、コントローラ10からのフローテーブルの設定に従って、投機転送の成否を判定し、失敗していたときは投機キャンセルパケットを用いて送信した投機パケットを取り消す。   The network (NW) device 20 uses a new protocol as shown in FIG. 7 to generate a speculative packet in which information indicating speculative transfer is added to a frame (frame) carrying a normal packet, and Transmit speculatively to network (NW) devices. The network (NW) device 20 determines the success or failure of speculative transfer according to the setting of the flow table from the controller 10, and cancels the speculative packet transmitted using the speculative cancel packet if it failed.

なお、フレームは、OSI参照モデルの第2層(レイヤ2:データリンク層)の通信で使われるPDU(プロトコル・データ・ユニット)の呼び名であり、パケットは、OSI参照モデルの第3層(レイヤ3:ネットワーク層)の通信で使われるPDUの呼び名である。すなわち、フレームとパケットは、形式が異なる同一のデータである。   The frame is a name of a PDU (protocol data unit) used in the communication of the second layer (layer 2: data link layer) of the OSI reference model, and the packet is the third layer (layer of the OSI reference model). 3: Name of PDU used in communication in the network layer). That is, the frame and the packet are the same data having different formats.

コントローラ10は、経路計算処理部11と、ネットワーク(NW)機器制御処理部12を備える。   The controller 10 includes a route calculation processing unit 11 and a network (NW) device control processing unit 12.

経路計算処理部11は、どのネットワーク(NW)機器がどのネットワーク(NW)機器につながっているかを表すトポロジ情報から、宛先までの経路について計算する。   The route calculation processing unit 11 calculates a route to the destination from topology information indicating which network (NW) device is connected to which network (NW) device.

ネットワーク(NW)機器制御処理部12は、計算された宛先までの経路に基づいて、ネットワーク(NW)機器のフローテーブルを設定する。   The network (NW) device control processing unit 12 sets a flow table of the network (NW) device based on the calculated route to the destination.

図6で示すように、ネットワーク(NW)機器20は、投機転送処理部21と、ネットワーク(NW)機器基本処理部22と、パケット受信処理部23と、パケット転送処理部24と、フローテーブル更新処理部25と、フローテーブル26と、パケットバッファ27を備える。   As shown in FIG. 6, the network (NW) device 20 includes a speculative transfer processing unit 21, a network (NW) device basic processing unit 22, a packet reception processing unit 23, a packet transfer processing unit 24, and a flow table update. A processing unit 25, a flow table 26, and a packet buffer 27 are provided.

投機転送処理部21は、投機転送処理に必要な処理をまとめたモジュールである。   The speculative transfer processing unit 21 is a module that summarizes the processes necessary for speculative transfer processing.

投機転送処理部21は、パケット投機転送処理部211と、パケット投機転送取り消し処理部212と、キャンセルパケット送信処理部213と、キャンセルパケット受信処理部214と、二重パケット廃棄処理部215を備える。   The speculative transfer processing unit 21 includes a packet speculative transfer processing unit 211, a packet speculative transfer cancellation processing unit 212, a cancel packet transmission processing unit 213, a cancel packet reception processing unit 214, and a double packet discard processing unit 215.

パケット投機転送処理部211は、パケットの投機転送先を決定し、パケットの投機転送を行う。   The packet speculative transfer processing unit 211 determines a speculative transfer destination of the packet and performs speculative transfer of the packet.

パケット投機転送取り消し処理部212は、パケットの投機転送の成否を判定し、失敗時にキャンセルパケット送信処理で投機キャンセルパケットの転送を行う。   The packet speculative transfer cancel processing unit 212 determines whether or not the speculative transfer of the packet is successful, and transfers the speculative cancel packet in the cancel packet transmission process when the packet fails.

キャンセルパケット送信処理部213は、投機キャンセルパケットの転送を行う。   The cancel packet transmission processing unit 213 transfers a speculative cancel packet.

キャンセルパケット受信処理部214は、投機キャンセルパケットの受信を行う。   The cancel packet reception processing unit 214 receives a speculative cancel packet.

二重パケット廃棄処理部215は、一度送ったパケットが二重に転送されないようにする。   The double packet discard processing unit 215 prevents a packet once sent from being transferred twice.

ネットワーク(NW)機器基本処理部22は、ネットワーク(NW)機器でパケットの受信又はコントローラからの設定を待つ。   The network (NW) device basic processing unit 22 waits for reception of a packet or setting from the controller in the network (NW) device.

パケット受信処理部23は、パケットの受信時にパケットの種類を判定し処理内容を決める。   The packet reception processing unit 23 determines the type of packet and determines the processing content when receiving the packet.

パケット転送処理部24は、パケットの送信を行う。   The packet transfer processing unit 24 transmits a packet.

フローテーブル更新処理部25は、フローテーブル26の更新を行う。   The flow table update processing unit 25 updates the flow table 26.

フローテーブル26は、通常のオープンフローの仕組みにおけるフローテーブルを拡張したものである。なお、フローテーブル26は、通常のオープンフローの仕組みにおけるフローテーブルと同じく、パケットを転送するための経路情報も管理できる。フローテーブル26については後に詳述する。   The flow table 26 is an extension of the flow table in the normal open flow mechanism. Note that the flow table 26 can also manage route information for transferring packets, like the flow table in the normal OpenFlow mechanism. The flow table 26 will be described in detail later.

パケットバッファ27は、通常のパケット及び投機パケットを保持する。   The packet buffer 27 holds normal packets and speculative packets.

<本発明で定義する投機パケット>
パケットを投機転送するためと投機を取り消すために新たに以下の投機パケットを定義する。また、それらを管理するための情報をネットワーク(NW)機器に持たせる。
<Speculative packet defined in the present invention>
The following speculative packets are newly defined to speculatively transfer packets and cancel speculations. In addition, network (NW) devices are provided with information for managing them.

本発明では、投機転送を示す情報を埋め込むために新規プロトコルを用意する。新規プロトコルにおいて、投機パケットを運ぶフレームのヘッダ情報は、少なくとも投機転送を示す情報とヘッダ長を情報に持つ。   In the present invention, a new protocol is prepared for embedding information indicating speculative transfer. In the new protocol, the header information of a frame carrying a speculative packet has at least information indicating speculative transfer and a header length as information.

図7に示す通り、本発明で定義する投機パケットを運ぶフレームフォーマットは、IEEE 802.3準拠のフレームフォーマットをベース(基礎)としており、プリアンブルと、SFD(Start Frame Delimiter)と、dst(宛先アドレス)と、src(送信元アドレス)と、TPID(Tag Protocol Identifier)と、TCI(Tag Control Information)と、Len/type(長さ/タイプ)と、Data/LLC(Data/Logical Link Control)と、FCS(Frame Check Sequence)等の領域(field)を含む。   As shown in FIG. 7, the frame format for carrying speculative packets defined in the present invention is based on the frame format conforming to IEEE 802.3 (basic), and includes a preamble, an SFD (Start Frame Delimiter), and a dst (destination address). ), Src (source address), TPID (Tag Protocol Identifier), TCI (Tag Control Information), Len / type (length / type), Data / LLC (Data / Logical Link Control) A field such as an FCS (Frame Check Sequence) is included.

本発明では、投機転送を示す情報を埋め込むための領域として、Data/LLCを使用する。Data/LLCは、ヘッダ長と、区別情報と、1stパケットを含む。パケット更新部214は、投機転送を示す情報である投機フラグと、投機転送の取り消しを示す情報である取り消しフラグを、Data/LLC内の区別情報の領域に格納する。   In the present invention, Data / LLC is used as an area for embedding information indicating speculative transfer. Data / LLC includes a header length, discrimination information, and a 1st packet. The packet updating unit 214 stores a speculative flag, which is information indicating speculative transfer, and a cancel flag, which is information indicating canceling speculative transfer, in the distinction information area in Data / LLC.

投機パケットは、図7で示すように、投機的に転送されたことが区別できる情報を、通常のパケットを運ぶフレームに付加したものである。例えば、ネットワーク(NW)機器は、受信したパケットを解析し、区別情報の領域が存在し、投機フラグが立っており、取り消しフラグが立っていない場合、投機転送における投機パケットであると判定する。   As shown in FIG. 7, the speculative packet is obtained by adding information capable of distinguishing speculative transfer to a frame carrying a normal packet. For example, the network (NW) device analyzes the received packet, and determines that it is a speculative packet in speculative transfer when there is an area for discrimination information, a speculative flag is set, and a cancel flag is not set.

なお、フラグが立った状態とは、フラグに有効である旨を示す値が代入されている状態を指す。反対に、フラグが立っていない状態(フラグを落とした状態)とは、フラグの値が空、又は、フラグに無効である旨を示す値が代入されている状態を指す。   The state where the flag is raised refers to a state where a value indicating that the flag is valid is substituted. On the contrary, the state where the flag is not set (the state where the flag is dropped) refers to a state where the value of the flag is empty or a value indicating that the flag is invalid is substituted.

本発明では、投機パケットを、コントローラによって送信経路が設定されていない状態で、ネットワーク(NW)機器から次のネットワーク(NW)機器に投機送信するためのパケットとして使用する。   In the present invention, the speculative packet is used as a packet for speculative transmission from a network (NW) device to the next network (NW) device in a state where a transmission path is not set by the controller.

投機キャンセルパケットは、図7で示すように、対応する投機パケットが区別できるようにするために、1stパケットの情報を持ち、投機キャンセルパケットとして区別できる情報、パケットを運ぶフレームに付加したものである。例えば、ネットワーク(NW)機器は、受信したパケットを解析し、区別情報の領域が存在し、投機フラグと取り消しフラグが共に立っている場合、投機転送における投機キャンセルパケットであると判定する。   As shown in FIG. 7, the speculative cancel packet has information of the first packet and is added to information that can be distinguished as a speculative cancel packet and a frame that carries the packet so that the corresponding speculative packet can be distinguished. . For example, a network (NW) device analyzes a received packet, and determines that it is a speculative cancel packet in speculative transfer when there is an area for distinction information and a speculative flag and a cancel flag are both standing.

本発明では、ネットワーク(NW)機器は、投機パケットを間違ったネットワーク(NW)機器に転送したときに、その転送先のネットワーク(NW)機器に投機パケットを取り消すために送るパケットとして、投機キャンセルパケットを使用する。転送先のネットワーク(NW)機器は、投機キャンセルパケットを受信すると、該当する投機パケットを削除する。   In the present invention, when a network (NW) device transfers a speculative packet to the wrong network (NW) device, a speculative cancel packet is sent as a packet to be sent to the transfer destination network (NW) device to cancel the speculative packet. Is used. When receiving the speculative cancellation packet, the transfer destination network (NW) device deletes the corresponding speculative packet.

<フローテーブルの内容>
図8のように、フローテーブル26は、エントリー261と、投機転送情報262を含む。
<Contents of flow table>
As shown in FIG. 8, the flow table 26 includes an entry 261 and speculative transfer information 262.

エントリー261は、従来のフローテーブルのエントリーと同じである。すなわち、エントリー261は、コントローラ10により計算されたパケット転送経路を示す。   The entry 261 is the same as the entry in the conventional flow table. That is, the entry 261 indicates a packet transfer path calculated by the controller 10.

投機転送情報262は、パケットの投機転送を管理し、投機転送の状態を保持する。ここでは、投機転送情報262は、エントリー261と対応付けられている。すなわち、エントリー毎に、投機転送情報が存在する。   The speculative transfer information 262 manages speculative transfer of packets and holds the speculative transfer state. Here, the speculative transfer information 262 is associated with the entry 261. That is, speculative transfer information exists for each entry.

投機転送情報262は、投機中フラグ2621と、NW情報2622と、二重フラグ2623を含む。   The speculative transfer information 262 includes a speculative flag 2621, NW information 2622, and a double flag 2623.

投機中フラグ2621は、エントリー毎に投機転送済みかどうかを示す情報である。   The speculative flag 2621 is information indicating whether or not speculative transfer has been completed for each entry.

NW情報2622は、エントリー毎に送信先がネットワーク(NW)機器で構成されたネットワークであるか、それ以外のネットワークであるかの情報である。   The NW information 2622 is information indicating whether the transmission destination is a network configured by a network (NW) device for each entry or other network.

二重フラグ2623は、エントリー毎に二重にパケットを受信する可能性があることを示す情報である。   The double flag 2623 is information indicating that there is a possibility of receiving a packet twice for each entry.

<ネットワーク(NW)機器の処理>
ネットワーク(NW)機器20は、それぞれ以下のような処理を行う。
<Network (NW) device processing>
Each network (NW) device 20 performs the following processing.

[ネットワーク(NW)機器基本処理]
図9を参照して、ネットワーク(NW)機器基本処理について説明する。
[Network (NW) device basic processing]
The network (NW) device basic process will be described with reference to FIG.

(1)ステップA101
ネットワーク(NW)機器基本処理部22は、パケットが来るのを待つ。ここでは、ネットワーク(NW)機器基本処理部22は、パケットを受信したか確認する。
(1) Step A101
The network (NW) device basic processing unit 22 waits for a packet to arrive. Here, the network (NW) device basic processing unit 22 checks whether a packet has been received.

(2)ステップA102
ネットワーク(NW)機器基本処理部22は、パケットが来た場合、パケット受信処理部23を呼び出し、後述する図10のパケット受信処理を実行する。ここでは、ネットワーク(NW)機器基本処理部22は、パケットを受信したことを確認した場合、パケットの到着を他の処理部に通知する。パケット受信処理が終わると、一旦ネットワーク(NW)機器基本処理を終了し、再度ネットワーク(NW)機器基本処理を最初から実行する。
(2) Step A102
When a packet arrives, the network (NW) device basic processing unit 22 calls the packet reception processing unit 23 and executes packet reception processing of FIG. Here, when the network (NW) device basic processing unit 22 confirms that the packet has been received, the network (NW) device basic processing unit 22 notifies the other processing unit of the arrival of the packet. When the packet reception process ends, the network (NW) device basic process is once ended, and the network (NW) device basic process is executed again from the beginning.

(3)ステップA103
また、ネットワーク(NW)機器基本処理部22は、コントローラからの設定が来るのを待つ。
(3) Step A103
The network (NW) device basic processing unit 22 waits for a setting from the controller.

(4)ステップA104
ネットワーク(NW)機器基本処理部22は、コントローラからの設定が来た場合、フローテーブル更新処理部25を呼び出し、フローテーブルを更新するための処理を行う。
(4) Step A104
When a setting is received from the controller, the network (NW) device basic processing unit 22 calls the flow table update processing unit 25 and performs processing for updating the flow table.

(5)ステップA105
その後に、ネットワーク(NW)機器基本処理部22は、パケット投機転送取り消し処理部212を呼び出し、パケットの投機転送を取り消すための処理を行う。パケット投機転送取り消し処理が終わると、ネットワーク(NW)機器基本処理が終了し、再度ネットワーク(NW)機器基本処理が実行される。
(5) Step A105
After that, the network (NW) device basic processing unit 22 calls the packet speculative transfer cancellation processing unit 212 to perform processing for canceling the speculative transfer of the packet. When the packet speculative transfer cancellation processing is completed, the network (NW) device basic processing is ended, and the network (NW) device basic processing is executed again.

[パケット受信処理]
図10を参照して、パケット受信処理について説明する。パケット受信処理部23は、パケットの種類ごとに処理を振り分ける。
[Packet reception processing]
The packet reception process will be described with reference to FIG. The packet reception processing unit 23 distributes processing for each type of packet.

(1)ステップA201
まず、パケット受信処理部23は、パケットが通常のパケットか確認する。
(1) Step A201
First, the packet reception processing unit 23 checks whether the packet is a normal packet.

(2)ステップA202
パケット受信処理部23は、パケットが通常のパケットの場合、フローテーブル26に有効なエントリーが存在するか確認する。
(2) Step A202
The packet reception processing unit 23 checks whether there is a valid entry in the flow table 26 when the packet is a normal packet.

(3)ステップA203
パケット受信処理部23は、有効なエントリーが存在する場合、更に、投機転送情報262の二重フラグ2623が立っているか確認する。
(3) Step A203
When there is a valid entry, the packet reception processing unit 23 further checks whether the double flag 2623 of the speculative transfer information 262 is set.

(4)ステップA204
パケット受信処理部23は、二重フラグ2623が立っていた場合には、二重パケット廃棄処理部215を呼び出し、後述する図17の二重パケット廃棄処理を実行する。
(4) Step A204
When the double flag 2623 is set, the packet reception processing unit 23 calls the double packet discard processing unit 215 and executes the double packet discard processing of FIG.

(5)ステップA205
また、パケット受信処理部23は、二重フラグ2623が立っていない場合には、パケット転送処理部24を呼び出し、後述する図15のパケット転送処理を行う。
(5) Step A205
Further, when the double flag 2623 is not set, the packet reception processing unit 23 calls the packet transfer processing unit 24 and performs the packet transfer processing of FIG.

(6)ステップA206
パケット受信処理部23は、フローテーブル26に有効なエントリーが存在しない場合には、コントローラ10に対して、パケットを1stパケットとして送信する。すなわち、パケット受信処理部23は、コントローラ10に、1stパケット到着を通知する。
(6) Step A206
If there is no valid entry in the flow table 26, the packet reception processing unit 23 transmits the packet to the controller 10 as a 1st packet. That is, the packet reception processing unit 23 notifies the controller 10 of the arrival of the 1st packet.

(7)ステップA207
その後、パケット受信処理部23は、パケット投機転送処理部211を呼び出し、パケットを投機的に転送するための処理を行う。
(7) Step A207
Thereafter, the packet reception processing unit 23 calls the packet speculative transfer processing unit 211 to perform processing for speculatively transferring the packet.

(8)ステップA208
また、パケット受信処理部23は、パケットが通常のパケットでない場合、パケットが投機パケットか確認する。パケット受信処理部23は、投機パケットの場合にも、パケット投機転送処理部211を呼び出し、パケットを投機的に転送するための処理を行う。
(8) Step A208
Further, when the packet is not a normal packet, the packet reception processing unit 23 checks whether the packet is a speculative packet. Even in the case of a speculative packet, the packet reception processing unit 23 calls the packet speculative transfer processing unit 211 and performs processing for speculatively transferring the packet.

(9)ステップA209
パケット受信処理部23は、パケットが通常のパケットや投機パケットではなく、投機キャンセルパケットの場合、キャンセルパケット受信処理部214を呼び出し、投機キャンセルパケットの受信処理を行う。
(9) Step A209
When the packet is not a normal packet or a speculative packet but a speculative cancel packet, the packet reception processing unit 23 calls the cancel packet reception processing unit 214 and performs a speculative cancel packet reception process.

[パケット投機転送処理]
図11を参照して、パケット投機転送処理について説明する。パケット投機転送処理部211は、投機パケットを送信する。
[Packet speculative transfer processing]
The packet speculative transfer process will be described with reference to FIG. The packet speculative transfer processing unit 211 transmits speculative packets.

(1)ステップA301
パケット投機転送処理部211は、パケットの投機転送先を選択する。
(1) Step A301
The packet speculative transfer processing unit 211 selects a speculative transfer destination of the packet.

(2)ステップA302
パケット投機転送処理部211は、パケットの投機転送先が決まったか確認する。
(2) Step A302
The packet speculative transfer processing unit 211 confirms whether the speculative transfer destination of the packet has been determined.

(3)ステップA303
パケット投機転送処理部211は、パケットがネットワーク(NW)機器で構成されたネットワーク(NW)の外に出て行かないか確認する。
(3) Step A303
The packet speculative transfer processing unit 211 checks whether or not the packet goes out of the network (NW) constituted by the network (NW) devices.

(4)ステップA304
パケット投機転送処理部211は、パケットの投機転送先が決まり、パケットがネットワーク(NW)機器で構成されたネットワーク(NW)から出て行かない場合には、パケットを投機パケットに変換する。
(4) Step A304
The packet speculative transfer processing unit 211 converts the packet into a speculative packet when the speculative transfer destination of the packet is determined and the packet does not leave the network (NW) configured by the network (NW) device.

(5)ステップA305
パケット投機転送処理部211は、投機パケットを送信する。
(5) Step A305
The packet speculative transfer processing unit 211 transmits speculative packets.

(6)ステップA306
その後、パケット投機転送処理部211は、投機転送情報262に投機中フラグ2621を立てて、投機中である旨の情報を保存する。また、パケット投機転送処理部211は、送信した投機パケットをパケットバッファ27に保存する。
(6) Step A306
Thereafter, the packet speculative transfer processing unit 211 sets a speculative flag 2621 in the speculative transfer information 262 and stores information indicating that speculation is being performed. In addition, the packet speculative transfer processing unit 211 stores the transmitted speculative packet in the packet buffer 27.

(7)ステップA307
また、パケット投機転送処理部211は、パケットの投機転送先が決まらなかったり、パケットがネットワーク(NW)機器で構成されたネットワーク(NW)から出て行く場合は、パケットバッファ27にパケットを保存する。
(7) Step A307
The packet speculative transfer processing unit 211 stores the packet in the packet buffer 27 when the speculative transfer destination of the packet is not determined or when the packet leaves the network (NW) configured by the network (NW) device. .

[フローテーブル更新処理]
図12を参照して、フローテーブル更新処理について説明する。フローテーブル更新処理部25は、フローテーブル26の投機転送情報262からエントリーの更新を行う。
[Flow table update processing]
The flow table update process will be described with reference to FIG. The flow table update processing unit 25 updates entries from the speculative transfer information 262 of the flow table 26.

(1)ステップA401
フローテーブル更新処理部25は、投機転送情報262に投機中フラグが立っているエントリーの更新を行うか確認する。ここでは、フローテーブル更新処理部25は、投機中フラグが立っているエントリーの中に対応するものがあるか確認する。
(1) Step A401
The flow table update processing unit 25 confirms whether to update an entry for which a speculative flag is set in the speculative transfer information 262. Here, the flow table update processing unit 25 confirms whether there is a corresponding entry with the speculative flag set.

(2)ステップA402
フローテーブル更新処理部25は、投機中フラグが立っているエントリーの中に対応するものがある場合、対応するエントリーに新しいエントリーを保存し、エントリーを更新する。
(2) Step A402
When there is a corresponding entry among the entries for which the speculative flag is set, the flow table update processing unit 25 stores a new entry in the corresponding entry and updates the entry.

(3)ステップA403
フローテーブル更新処理部25は、投機中フラグが立っているエントリーの中に対応するものがない場合、空のエントリーがあるか確認する。
(3) Step A403
If there is no corresponding entry with the speculative flag set, the flow table update processing unit 25 checks whether there is an empty entry.

(4)ステップA404
フローテーブル更新処理部25は、空のエントリーがある場合、空のエントリーに新しいエントリーを保存する。
(4) Step A404
When there is an empty entry, the flow table update processing unit 25 stores a new entry in the empty entry.

(5)ステップA405
フローテーブル更新処理部25は、空のエントリーが無い場合、「table fullエラー」と判断する。
(5) Step A405
When there is no empty entry, the flow table update processing unit 25 determines that a “table full error” has occurred.

[パケット投機転送取り消し処理]
図13A及び図13Bを参照して、パケット投機転送取り消し処理について説明する。パケット投機転送取り消し処理部212は、投機転送を行っていた場合は、投機転送が正しかったか判定する。投機転送を行っていなかった場合は投機転送されたパケットを受信したか確認する。
[Packet speculative transfer cancellation processing]
With reference to FIGS. 13A and 13B, the packet speculative transfer cancellation process will be described. If the speculative transfer is being performed, the packet speculative transfer cancellation processing unit 212 determines whether the speculative transfer is correct. If speculative transfer has not been performed, check whether a speculatively transferred packet has been received.

(1)ステップA501
パケット投機転送取り消し処理部212は、投機転送を行ったか確認する。
(1) Step A501
The packet speculative transfer cancellation processing unit 212 confirms whether speculative transfer has been performed.

(2)ステップA502
パケット投機転送取り消し処理部212は、投機転送を行った場合、パケットバッファ27から、投機パケットを読み出す。以降、パケット投機転送取り消し処理部212は、投機転送とコントローラからの設定が合っているか確認する。
(2) Step A502
The packet speculative transfer cancellation processing unit 212 reads speculative packets from the packet buffer 27 when performing speculative transfer. Thereafter, the packet speculative transfer cancellation processing unit 212 confirms whether the speculative transfer matches the setting from the controller.

(3)ステップA503
まず、パケット投機転送取り消し処理部212は、投機転送先が正しいか確認する。なお、パケット投機転送取り消し処理部212は、当該ネットワーク(NW)機器が、最初に1stパケットを受信して、投機パケットを送信したネットワーク(NW)機器であれば、投機送信元は正しいものとして投機転送先の成否判定を行う。
(3) Step A503
First, the packet speculative transfer cancellation processing unit 212 confirms whether the speculative transfer destination is correct. The packet speculative transfer cancellation processing unit 212 speculates that the speculative transmission source is correct if the network (NW) device is the network (NW) device that first received the 1st packet and transmitted the speculative packet. Determine the success or failure of the transfer destination.

(4)ステップA504
パケット投機転送取り消し処理部212は、投機転送先が正しい場合、投機転送元が正しいか確認する。
(4) Step A504
When the speculative transfer destination is correct, the packet speculative transfer cancellation processing unit 212 checks whether the speculative transfer source is correct.

(5)ステップA505
パケット投機転送取り消し処理部212は、投機送信先が正しく、投機転送元が間違っていた場合、正しい送信元から通常のパケットが再送されてくるので、投機転送情報262の二重フラグ2623を立てる。
(5) Step A505
When the speculative transmission destination is correct and the speculative transfer source is incorrect, the packet speculative transfer cancellation processing unit 212 sets the double flag 2623 of the speculative transfer information 262 because a normal packet is retransmitted from the correct transmission source.

(6)ステップA506
パケット投機転送取り消し処理部212は、投機送信先と投機送信元の両方が正しい場合、投機パケットをパケットバッファ27から削除する。
(6) Step A506
The packet speculative transfer cancellation processing unit 212 deletes the speculative packet from the packet buffer 27 when both the speculative transmission destination and the speculative transmission source are correct.

(7)ステップA507
また、パケット投機転送取り消し処理部212は、投機送信先が間違っていた場合、投機転送元が正しいか確認する。
(7) Step A507
Further, the packet speculative transfer cancellation processing unit 212 checks whether the speculative transfer source is correct when the speculative transmission destination is incorrect.

(8)ステップA508
パケット投機転送取り消し処理部212は、投機送信先と投機転送元の両方が間違っていた場合、正しい送信元から通常のパケットが再送されてくるので、投機転送情報の二重フラグ2623を立てる。
(8) Step A508
When both the speculative transmission destination and the speculative transfer source are wrong, the packet speculative transfer cancellation processing unit 212 sets a double flag 2623 for speculative transfer information because a normal packet is retransmitted from the correct transmission source.

(9)ステップA509
パケット投機転送取り消し処理部212は、パケット転送処理部24を呼び出して、正しい送信先にパケットを送信する。
(9) Step A509
The packet speculative transfer cancellation processing unit 212 calls the packet transfer processing unit 24 and transmits the packet to the correct transmission destination.

(10)ステップA510
その後、パケット投機転送取り消し処理部212は、キャンセルパケット送信処理部213を呼び出し、キャンセルパケットの送信処理を行う。
(10) Step A510
Thereafter, the packet speculative transfer cancellation processing unit 212 calls the cancel packet transmission processing unit 213 to perform transmission processing of the cancel packet.

(11)ステップA511
その後、パケット投機転送取り消し処理部212は、投機転送情報262の投機中の情報を削除する。ここでは、パケット投機転送取り消し処理部212は、投機中フラグ2621を空に変更する。
(11) Step A511
Thereafter, the packet speculative transfer cancellation processing unit 212 deletes the speculative information in the speculative transfer information 262. Here, the packet speculative transfer cancellation processing unit 212 changes the speculative flag 2621 to empty.

(12)ステップA512
パケット投機転送取り消し処理部212は、投機転送を行っていなかった場合、投機パケットを受信したか確認する。なお、投機パケットを受信していない場合、何もしない。
(12) Step A512
When the speculative transfer is not performed, the packet speculative transfer cancellation processing unit 212 checks whether a speculative packet has been received. If no speculative packet is received, nothing is done.

(13)ステップ513
パケット投機転送取り消し処理部212は、投機パケットを受信していた場合、そのパケットをパケットバッファ27から読み出す。
(13) Step 513
The packet speculative transfer cancel processing unit 212 reads the speculative packet from the packet buffer 27 when receiving the speculative packet.

(14)ステップA514
パケット投機転送取り消し処理部212は、パケットバッファ27から読み出したパケットについて、投機送信元が正しいか確認する。
(14) Step A514
The packet speculative transfer cancellation processing unit 212 confirms whether the speculative transmission source is correct for the packet read from the packet buffer 27.

(15)ステップA515
パケット投機転送取り消し処理部212は、投機送信元が正しい場合、パケット転送処理部24を呼び出し、パケットを転送するための処理を行う。
(15) Step A515
When the speculative transmission source is correct, the packet speculative transfer cancellation processing unit 212 calls the packet transfer processing unit 24 and performs processing for transferring the packet.

(16)ステップA516
パケット投機転送取り消し処理部212は、投機送信元が間違っている場合、そのパケットをパケットバッファ27から削除する。
(16) Step A516
When the speculative transmission source is wrong, the packet speculative transfer cancel processing unit 212 deletes the packet from the packet buffer 27.

[パケット投機転送取り消し処理の変更例]
なお、上記の図13A及び図13Bのパケット投機転送取り消し処理において、ステップA504、A505の処理と、ステップA507、A508の処理は同じである。ここで、ステップA504、A505の処理と、ステップA507、A508の処理を共通化するため、ステップA503と、ステップA504(ステップA507)とを入れ替えても良い。
[Example of changing packet speculative transfer cancellation processing]
Note that in the packet speculative transfer cancellation processing of FIGS. 13A and 13B described above, the processing of steps A504 and A505 and the processing of steps A507 and A508 are the same. Here, step A503 and step A504 (step A507) may be interchanged in order to share the processing of steps A504 and A505 with the processing of steps A507 and A508.

例えば、ステップA502の処理の直後、ステップA504(ステップA507)の処理を行い、投機送信元が正しいか確認する。投機送信元が正しければ、そのままステップA503の処理に移行する。投機送信元が間違っていれば、ステップA505(ステップA508)で二重フラグを立ててから、ステップA503の処理に移行する。   For example, immediately after the process of step A502, the process of step A504 (step A507) is performed to check whether the speculative transmission source is correct. If the speculative transmission source is correct, the process directly proceeds to step A503. If the speculative transmission source is wrong, a double flag is set in step A505 (step A508), and then the process proceeds to step A503.

その後、ステップA503の処理を行い、投機送信先が正しいか確認する。投機送信先が正しければ、ステップA506の処理を行う。投機送信先が間違っていれば、ステップA509〜ステップA511の処理を行う。   Thereafter, the process of step A503 is performed to check whether the speculative transmission destination is correct. If the speculative transmission destination is correct, the process of step A506 is performed. If the speculative transmission destination is wrong, the processing of step A509 to step A511 is performed.

他の処理は、上記と同様である。   Other processing is the same as described above.

[キャンセルパケット送信処理]
図14を参照して、キャンセルパケット送信処理について説明する。
[Cancel packet transmission processing]
The cancel packet transmission process will be described with reference to FIG.

(1)ステップA601
キャンセルパケット送信処理部213は、投機パケットを転送した投機転送先のネットワーク(NW)機器に、投機キャンセルパケットを送信する。
(1) Step A601
The cancel packet transmission processing unit 213 transmits a speculative cancel packet to the speculative transfer destination network (NW) device that has transferred the speculative packet.

[パケット転送処理]
図15を参照して、パケット転送処理について説明する。
[Packet transfer processing]
The packet transfer process will be described with reference to FIG.

(1)ステップA701
パケット転送処理部24は、フローテーブル26のエントリーの内容に従って、通常のパケットを送信する。
(1) Step A701
The packet transfer processing unit 24 transmits a normal packet according to the contents of the entry in the flow table 26.

[キャンセルパケット受信処理]
図16を参照して、キャンセルパケット受信処理について説明する。キャンセルパケット受信処理部214は、受信した投機キャンセルパケットを処理する。
[Cancel packet reception processing]
The cancel packet reception process will be described with reference to FIG. The cancel packet reception processing unit 214 processes the received speculative cancel packet.

(1)ステップA801
キャンセルパケット受信処理部214は、投機転送を行っていたかを確認する。
(1) Step A801
The cancel packet reception processing unit 214 confirms whether speculative transfer has been performed.

(2)ステップA802
キャンセルパケット受信処理部214は、投機転送を行っていた場合、投機パケットをパケットバッファ24から読み出す。
(2) Step A802
The cancel packet reception processing unit 214 reads the speculative packet from the packet buffer 24 when performing speculative transfer.

(3)ステップA803
キャンセルパケット受信処理部214は、投機キャンセルパケットを投機送信先に転送する必要があるか確認するために、投機転送情報262に二重フラグ2623が立っているか確認する。
(3) Step A803
The cancel packet reception processing unit 214 confirms whether the double flag 2623 is set in the speculative transfer information 262 in order to confirm whether it is necessary to transfer the speculative cancel packet to the speculative transmission destination.

なお、投機キャンセルパケットを受信するのは、投機送信元が間違っていたときであり、投機キャンセルパケットを送信しなければならないのは、投機送信元が間違っていたときである。従って、投機送信元と投機転送先の両方が間違っていたとき、投機キャンセルパケットを転送する必要がある。   Note that the speculative cancellation packet is received when the speculative transmission source is wrong, and the speculative cancellation packet must be transmitted when the speculative transmission source is wrong. Therefore, when both the speculative transmission source and the speculative transfer destination are wrong, it is necessary to transfer the speculative cancellation packet.

但し、コントローラ10からの設定が来ていた場合は、パケット投機転送取り消し処理部212による処理が実行される。図13AのステップA510で投機キャンセルパケットを送信済みである場合は、ステップA508で二重フラグ2623が設定されている。よって、二重フラグ2623が立っていた場合は、投機キャンセルパケットを転送する必要が無い。   However, when the setting has been received from the controller 10, the processing by the packet speculative transfer cancellation processing unit 212 is executed. If the speculative cancel packet has already been transmitted in step A510 of FIG. 13A, the double flag 2623 is set in step A508. Therefore, when the double flag 2623 is set, there is no need to transfer a speculative cancel packet.

(4)ステップA804
キャンセルパケット受信処理部214は、二重フラグ2623が立っていなかった場合、投機転送先のネットワーク(NW)機器に投機キャンセルパケットを送信するために、キャンセルパケット送信処理部213を呼び出し、投機キャンセルパケットの送信処理を行う。
(4) Step A804
When the double flag 2623 is not set, the cancel packet reception processing unit 214 calls the cancel packet transmission processing unit 213 to transmit the speculative cancel packet to the speculative transfer destination network (NW) device, and the speculative cancel packet Perform the transmission process.

(5)ステップA805
キャンセルパケット受信処理部214は、投機転送情報262の投機中の情報を削除する。ここでは、キャンセルパケット受信処理部214は、投機中フラグ2621を空に変更する。
(5) Step A805
The cancel packet reception processing unit 214 deletes the speculative information in the speculative transfer information 262. Here, the cancel packet reception processing unit 214 changes the speculative flag 2621 to be empty.

(6)ステップA806
キャンセルパケット受信処理部214は、投機パケットをパケットバッファ27から削除する。
(6) Step A806
The cancel packet reception processing unit 214 deletes the speculative packet from the packet buffer 27.

(7)ステップA807
また、キャンセルパケット受信処理部214は、投機転送を行っていなかった場合、投機転送する前の投機パケットがパケットバッファ27に保存されているため、この投機パケットをパケットバッファ27から削除する。
(7) Step A807
Further, when the speculative transfer is not performed, the cancel packet reception processing unit 214 deletes the speculative packet from the packet buffer 27 because the speculative packet before the speculative transfer is stored in the packet buffer 27.

[二重パケット廃棄処理]
図17を参照して、二重パケット廃棄処理について説明する。二重パケット廃棄処理部215は、二重パケットを処理する。
[Duplicate packet discard processing]
The double packet discarding process will be described with reference to FIG. The double packet discard processing unit 215 processes double packets.

(1)ステップA901
二重パケット廃棄処理部215は、受信したパケットを廃棄する。
(1) Step A901
The double packet discard processing unit 215 discards the received packet.

(2)ステップA902
二重パケット廃棄処理部215は、投機転送情報262から二重フラグ2623を落とす。なお、二重フラグ2623を落とすとは、二重フラグ2623のフラグが立っていない状態にすることである。
(2) Step A902
The double packet discard processing unit 215 clears the double flag 2623 from the speculative transfer information 262. Note that dropping the double flag 2623 means that the double flag 2623 is not raised.

<実施例>
以下に、本発明の実施例について説明する。
なお、以降の説明において、コントローラは、図6のコントローラ10に相当する。また、ネットワーク(NW)機器A、B、C、D、E、Fは、図6のネットワーク(NW)機器20に相当する。
<Example>
Examples of the present invention will be described below.
In the following description, the controller corresponds to the controller 10 in FIG. The network (NW) devices A, B, C, D, E, and F correspond to the network (NW) device 20 of FIG.

[実施例1]
図18に示すように、転送元ホスト(Host)から、転送先ホストにデータを転送する時に、転送元ホストから、点線矢印に沿ってネットワーク(NW)機器A、B、D、Fの順に投機転送された場合の投機的転送について説明する。
[Example 1]
As shown in FIG. 18, when data is transferred from the transfer source host (Host) to the transfer destination host, speculation is performed in the order of network (NW) devices A, B, D, and F along the dotted arrows from the transfer source host. A speculative transfer in the case of transfer will be described.

(1)転送元ホスト → ネットワーク(NW)機器A
転送元ホストは、ネットワーク(NW)機器Aにパケットを転送する。ネットワーク(NW)機器Aは、図9のように、処理を待っている。ネットワーク(NW)機器Aは、パケットを受信すると、図9のステップA102でパケット受信処理部23を呼び出し、図10のパケット受信処理において、パケットの種類を判別する。
(1) Transfer source host → Network (NW) device A
The transfer source host transfers the packet to the network (NW) device A. The network (NW) device A is waiting for processing as shown in FIG. When the network (NW) device A receives the packet, the network (NW) device A calls the packet reception processing unit 23 in step A102 of FIG. 9, and determines the type of the packet in the packet reception processing of FIG.

(2)ネットワーク(NW)機器A → コントローラ
ネットワーク(NW)機器Aは、パケットが通常のパケットで、エントリーが無いため、ステップA201、ステップA202からステップA206を実行して、コントローラにパケットを送信する。
(2) Network (NW) device A → Controller Since the network (NW) device A is a normal packet and has no entry, it executes step A201, step A202 to step A206, and transmits the packet to the controller. .

(3)ネットワーク(NW)機器A → ネットワーク(NW)機器B
その後、ネットワーク(NW)機器Aは、ステップA207でパケット投機転送処理部211を呼び出し、図11のパケット投機転送処理において、ステップA301の投機先の選択処理で投機転送先を選ぶ。投機転送先にネットワーク(NW)機器Bを選んだとする。ステップA302、ステップA303、ステップA304、ステップA305と進む。投機転送先ネットワーク(NW)機器Bに投機転送を行う。また、ステップA306で投機パケットをパケットバッファ27に保存し、フローテーブル26の投機転送情報262に投機中フラグを立てる。
(3) Network (NW) device A → Network (NW) device B
Thereafter, the network (NW) device A calls the packet speculative transfer processing unit 211 in step A207, and selects the speculative transfer destination in the speculative destination selection processing in step A301 in the packet speculative transfer processing of FIG. Assume that the network (NW) device B is selected as the speculative transfer destination. The process proceeds with step A302, step A303, step A304, and step A305. Speculative transfer is performed to the speculative transfer destination network (NW) device B. In step A306, the speculative packet is stored in the packet buffer 27, and a speculative flag is set in the speculative transfer information 262 of the flow table 26.

(4)ネットワーク(NW)機器B → ネットワーク(NW)機器C
ネットワーク(NW)機器Bも、ネットワーク(NW)機器Aと同じように、図9のように、処理を待っている。ネットワーク(NW)機器Bは、パケットを受信すると、図9のステップA102でパケット受信処理部23を呼び出し、図10のパケット受信処理において、パケットの種類を判別する。受信したパケットは投機パケットなので、ステップA201、ステップA208、ステップA207と進む。ステップA207のパケット投機転送処理部211を呼び出し、図11のパケット投機転送処理において、ステップA301の投機先の選択処理で投機転送先を選ぶ。投機転送先にネットワーク(NW)機器Dを選んだとする。ステップA302、ステップA303、ステップA304、ステップA305と進む。投機転送先ネットワーク(NW)機器Dに投機転送を行う。また、ステップA306で投機パケットをパケットバッファ27に保存し、フローテーブル26の投機転送情報262に投機中フラグを立てる。
(4) Network (NW) device B → Network (NW) device C
Similarly to the network (NW) device A, the network (NW) device B waits for processing as shown in FIG. When the network (NW) device B receives the packet, the network (NW) device B calls the packet reception processing unit 23 in step A102 of FIG. 9, and determines the type of the packet in the packet reception processing of FIG. Since the received packet is a speculative packet, the process proceeds to step A201, step A208, and step A207. The packet speculative transfer processing unit 211 in step A207 is called, and the speculative transfer destination is selected in the speculative destination selection process in step A301 in the packet speculative transfer process in FIG. Assume that the network (NW) device D is selected as the speculative transfer destination. The process proceeds with step A302, step A303, step A304, and step A305. Speculative transfer is performed to the speculative transfer destination network (NW) device D. In step A306, the speculative packet is stored in the packet buffer 27, and a speculative flag is set in the speculative transfer information 262 of the flow table 26.

(5)ネットワーク(NW)機器D → ネットワーク(NW)機器F
ネットワーク(NW)機器Dも、ネットワーク(NW)機器Bと同様の処理を行う。ネットワーク(NW)機器Dは、ネットワーク(NW)機器Fに投機パケットを転送する。
(5) Network (NW) device D → Network (NW) device F
The network (NW) device D performs the same processing as the network (NW) device B. The network (NW) device D transfers the speculative packet to the network (NW) device F.

(6)ネットワーク(NW)機器F
ネットワーク(NW)機器Fも、図9のように、処理を待っている。ネットワーク(NW)機器Fは、パケットを受信すると、図9のステップA102のパケット受信処理部23を呼び出し、図10のパケット受信処理において、パケットの種類を判別する。受信したパケットが投機パケットなので、ステップA201、ステップA208、ステップA207と進む。ステップA207でパケット投機転送処理部211を呼び出し、図11のパケット投機転送処理において、ステップA301の投機先の選択処理で投機転送先を選ぶ。ネットワーク(NW)機器Fは、投機転送先に送信先ホストを選んだとする。ステップA302、ステップA303と進む。ステップA303でネットワーク(NW)機器で構成されたネットワーク(NW)から出て行かないか確認を行う。投機パケットがネットワーク(NW)機器で構成されたネットワーク(NW)から出て行くので、ステップA307で投機パケットはパケットバッファ27に保存する。
(6) Network (NW) device F
The network (NW) device F is also waiting for processing as shown in FIG. When the network (NW) device F receives the packet, the network (NW) device F calls the packet reception processing unit 23 in step A102 in FIG. 9, and determines the type of the packet in the packet reception processing in FIG. Since the received packet is a speculative packet, the process proceeds to step A201, step A208, and step A207. In step A207, the packet speculative transfer processing unit 211 is called, and in the packet speculative transfer process of FIG. 11, the speculative transfer destination is selected in the speculative destination selection process in step A301. It is assumed that the network (NW) device F has selected a transmission destination host as a speculative transfer destination. The process proceeds to step A302 and step A303. In step A303, it is confirmed whether or not the network (NW) configured by the network (NW) device does not exit. Since the speculative packet leaves the network (NW) configured by the network (NW) device, the speculative packet is stored in the packet buffer 27 in step A307.

以上のように、投機的送信が行われる。   As described above, speculative transmission is performed.

[実施例2]
図19にあるように、転送元ホストから、転送先ホストにデータを転送する時に、投機的にネットワーク(NW)機器A、B、D、Fの順に投機転送を行い、投機転送が成功したときの場合について説明する。
[Example 2]
As shown in FIG. 19, when data is transferred from a transfer source host to a transfer destination host, speculative transfer is performed speculatively in the order of network (NW) devices A, B, D, and F, and speculative transfer is successful. The case will be described.

転送元ホストがネットワーク(NW)機器Aにパケットを転送し、ネットワーク(NW)機器A、B、D、Fの順に投機転送を行うのは、前述の実施例1と同じである。   The transfer source host transfers the packet to the network (NW) device A and performs speculative transfer in the order of the network (NW) devices A, B, D, and F, as in the first embodiment.

なお、ネットワーク(NW)機器Fは、前述の実施例1に記載した通り、投機パケットがネットワーク(NW)機器で構成されたネットワーク(NW)から出て行くので、投機パケットをパケットバッファ27に保存しており、投機転送を行っていない。   The network (NW) device F stores the speculative packet in the packet buffer 27 because the speculative packet goes out of the network (NW) configured by the network (NW) device as described in the first embodiment. And speculative transfer is not performed.

(1)コントローラ → ネットワーク(NW)機器A、B、D、F
コントローラは、1stパケットの宛先までの経路を計算し、コントローラのネットワーク(NW)機器制御部12でネットワーク(NW)機器A、B、D、Fの制御を行う。
(1) Controller → Network (NW) devices A, B, D, F
The controller calculates a route to the destination of the 1st packet, and controls the network (NW) devices A, B, D, and F by the network (NW) device control unit 12 of the controller.

(2)ネットワーク(NW)機器A
ネットワーク(NW)機器Aは、図9のように、処理を待っている。ネットワーク(NW)機器Aは、コントローラから制御が行われると、図9のステップA104でフローテーブル更新処理部25を呼び出し、フローテーブル26を設定する。その後に、ネットワーク(NW)機器Aは、ステップA105でパケット投機転送取り消し処理部212を呼び出し、図13A及び図13Bのパケット投機転送取り消し処理で、投機パケットの成否を判定する。投機送信先が正しかったので、投機転送は成功と判定し、パケットバッファ27に保留していた投機パケットを削除する。
(2) Network (NW) device A
The network (NW) device A is waiting for processing as shown in FIG. When the control is performed from the controller, the network (NW) device A calls the flow table update processing unit 25 and sets the flow table 26 in step A104 of FIG. Thereafter, the network (NW) device A calls the packet speculative transfer cancel processing unit 212 in step A105, and determines the success or failure of the speculative packet by the packet speculative transfer cancel processing of FIGS. 13A and 13B. Since the speculative transmission destination is correct, it is determined that the speculative transfer is successful, and the speculative packet held in the packet buffer 27 is deleted.

(3)ネットワーク(NW)機器B
ネットワーク(NW)機器Bも、図9のように、処理を待っている。ネットワーク(NW)機器Bは、コントローラから制御が行われると、図9のステップA104でフローテーブル更新処理部25を呼び出し、フローテーブル26を設定する。その後に、ネットワーク(NW)機器Bは、ステップA105でパケット投機転送取り消し処理部212を呼び出し、図13A及び図13Bのパケット投機転送取り消し処理で、投機パケットの成否を判定する。投機送信先が正しかったので、投機転送は成功と判定し、パケットバッファ27に保留していた投機パケットを削除する。
(3) Network (NW) device B
The network (NW) device B is also waiting for processing as shown in FIG. When the control is performed from the controller, the network (NW) device B calls the flow table update processing unit 25 and sets the flow table 26 in step A104 of FIG. Thereafter, the network (NW) device B calls the packet speculative transfer cancel processing unit 212 in step A105, and determines the success or failure of the speculative packet by the packet speculative transfer cancel processing of FIGS. 13A and 13B. Since the speculative transmission destination is correct, it is determined that the speculative transfer is successful, and the speculative packet held in the packet buffer 27 is deleted.

(4)ネットワーク(NW)機器D
ネットワーク(NW)機器Dも、図9のように、処理を待っている。ネットワーク(NW)機器Dは、コントローラから制御が行われると、図9のステップA104でフローテーブル更新処理部25を呼び出し、フローテーブル26を設定する。その後に、ネットワーク(NW)機器Dは、ステップA105でパケット投機転送取り消し処理部212を呼び出し、図13A及び図13Bのパケット投機転送取り消し処理で、投機パケットの成否を判定する。投機送信先が正しかったので、投機転送は成功と判定し、パケットバッファ27に保留していた投機パケットを削除する。
(4) Network (NW) device D
The network (NW) device D is also waiting for processing as shown in FIG. When the control is performed from the controller, the network (NW) device D calls the flow table update processing unit 25 and sets the flow table 26 in step A104 of FIG. Thereafter, the network (NW) device D calls the packet speculative transfer cancel processing unit 212 in step A105, and determines the success or failure of the speculative packet by the packet speculative transfer cancel processing of FIGS. 13A and 13B. Since the speculative transmission destination is correct, it is determined that the speculative transfer is successful, and the speculative packet held in the packet buffer 27 is deleted.

(5)ネットワーク(NW)機器F
ネットワーク(NW)機器Fも、図9のように、処理を待っている。ネットワーク(NW)機器Fは、コントローラから制御が行われると、図9のステップA104でフローテーブル更新処理部25を呼び出し、フローテーブル26を設定する。その後に、ネットワーク(NW)機器Fは、ステップA105でパケット投機転送取り消し処理部212を呼び出し、図13A及び図13Bのパケット投機転送取り消し処理では、投機転送処理を行っておらず、投機パケットを受信しているので、ステップA514で投機パケットの投機転送元が正しいか判定し、正しいので、ステップA515でパケット転送処理を呼び出し、図15のパケット転送処理を行い、送信先ホストにパケットを転送する。
(5) Network (NW) device F
The network (NW) device F is also waiting for processing as shown in FIG. When the control is performed from the controller, the network (NW) device F calls the flow table update processing unit 25 and sets the flow table 26 in step A104 of FIG. Thereafter, the network (NW) device F calls the packet speculative transfer cancel processing unit 212 in step A105, and receives the speculative packet without performing speculative transfer processing in the packet speculative transfer cancel processing of FIGS. 13A and 13B. Therefore, in step A514, it is determined whether the speculative packet speculative transfer source is correct. If so, the packet transfer process is called in step A515, the packet transfer process of FIG. 15 is performed, and the packet is transferred to the destination host.

[実施例3]
図20にあるように、転送元ホストから、転送先ホストにデータを転送する時に、投機的にネットワーク(NW)機器A、C、E、Fの順に投機転送し、投機転送が失敗したときの状況を例に説明する。
[Example 3]
As shown in FIG. 20, when data is transferred from the transfer source host to the transfer destination host, speculative transfer is performed speculatively in the order of network (NW) devices A, C, E, and F. The situation will be described as an example.

ここでは、先に、転送元ホストがネットワーク(NW)機器Aにパケットを転送し、ネットワーク(NW)機器A、C、E、Fの順に投機転送を行ったものとする。   Here, it is assumed that the transfer source host first transfers a packet to the network (NW) device A and performs speculative transfer in the order of the network (NW) devices A, C, E, and F.

なお、ネットワーク(NW)機器Fは、前述の実施例1に記載した通り、投機パケットがネットワーク(NW)機器で構成されたネットワーク(NW)から出て行くので、投機パケットをパケットバッファ27に保存しており、投機転送を行っていない。   The network (NW) device F stores the speculative packet in the packet buffer 27 because the speculative packet goes out of the network (NW) configured by the network (NW) device as described in the first embodiment. And speculative transfer is not performed.

(1)コントローラ → ネットワーク(NW)機器A、B、D、F
コントローラは、1stパケットの宛先までの経路を計算し、コントローラのネットワーク(NW)機器制御部12でネットワーク(NW)機器A、B、D、Fの制御を行う。
(1) Controller → Network (NW) devices A, B, D, F
The controller calculates a route to the destination of the 1st packet, and controls the network (NW) devices A, B, D, and F by the network (NW) device control unit 12 of the controller.

(2)ネットワーク(NW)機器A
ネットワーク(NW)機器Aは、図9のように、処理を待っている。ネットワーク(NW)機器Aは、コントローラから制御が行われると、図9のステップA104でフローテーブル更新処理部25を呼び出し、フローテーブル26を設定する。その後に、ネットワーク(NW)機器Aは、ステップA105でパケット投機転送取り消し処理部212を呼び出し、図13A及び図13Bのパケット投機転送取り消し処理で投機パケットの成否を判定する。投機送信先が異なっていたので、投機転送は失敗と判定し、ステップA509でパケット転送処理部24を呼び出し、ネットワーク(NW)機器Bに通常のパケットを送信する。
(2) Network (NW) device A
The network (NW) device A is waiting for processing as shown in FIG. When the control is performed from the controller, the network (NW) device A calls the flow table update processing unit 25 and sets the flow table 26 in step A104 of FIG. After that, the network (NW) device A calls the packet speculative transfer cancel processing unit 212 in step A105, and determines the success or failure of the speculative packet in the packet speculative transfer cancel processing of FIGS. 13A and 13B. Since the speculative transmission destinations are different, it is determined that the speculative transfer is unsuccessful, and the packet transfer processing unit 24 is called in step A509 to transmit a normal packet to the network (NW) device B.

(3)ネットワーク(NW)機器A → ネットワーク(NW)機器C
その後、ネットワーク(NW)機器Aは、ステップA510でキャンセルパケット送信処理部213を呼び出し、図14のキャンセルパケット送信処理を実行し、投機キャンセルパケットをネットワーク(NW)機器Cに転送し、投機中フラグ2621を落とす。
(3) Network (NW) device A → Network (NW) device C
Thereafter, the network (NW) device A calls the cancel packet transmission processing unit 213 in step A510, executes the cancel packet transmission processing of FIG. 14, transfers the speculative cancel packet to the network (NW) device C, and sets the speculative flag. Drop 2621.

(4)ネットワーク(NW)機器B
ネットワーク(NW)機器Bも、図9のように、処理を待っている。ネットワーク(NW)機器Bは、コントローラから制御が行われると、図9のステップA104でフローテーブル更新処理部25を呼び出し、フローテーブル26を設定する。その後に、ステップA105でパケット投機転送取り消し処理部212を呼び出し、図13A及び図13Bのパケット投機転送取り消し処理で、投機転送処理を行っておらず、投機パケットを受信していないので、ステップA501からステップA513と処理して終了する。その後、ネットワーク(NW)機器Bは、ネットワーク(NW)機器Aからの通常のパケットを受信して、フローテーブル26に従って転送する。
(4) Network (NW) device B
The network (NW) device B is also waiting for processing as shown in FIG. When the control is performed from the controller, the network (NW) device B calls the flow table update processing unit 25 and sets the flow table 26 in step A104 of FIG. Thereafter, the packet speculative transfer cancel processing unit 212 is called at step A105, and since the speculative transfer processing is not performed and the speculative packet is not received in the packet speculative transfer cancel processing of FIG. 13A and FIG. 13B, from step A501 Processing ends with step A513. Thereafter, the network (NW) device B receives the normal packet from the network (NW) device A and transfers it according to the flow table 26.

(5)ネットワーク(NW)機器D
ネットワーク(NW)機器Dも、図9のように、処理を待っている。ネットワーク(NW)機器Dは、コントローラから制御が行われると、図9のステップA104でフローテーブル更新処理部25を呼び出し、フローテーブル26を設定する。その後に、ステップA105でパケット投機転送取り消し処理部212を呼び出し、図13A及び図13Bのパケット投機転送取り消し処理で、投機転送処理を行っておらず、投機パケットを受信していないので、ステップA501からステップA513と処理して終了する。その後、ネットワーク(NW)機器Dは、ネットワーク(NW)機器Bからの通常のパケットを受信して、フローテーブル26に従って転送する。
(5) Network (NW) device D
The network (NW) device D is also waiting for processing as shown in FIG. When the control is performed from the controller, the network (NW) device D calls the flow table update processing unit 25 and sets the flow table 26 in step A104 of FIG. Thereafter, the packet speculative transfer cancel processing unit 212 is called at step A105, and since the speculative transfer processing is not performed and the speculative packet is not received in the packet speculative transfer cancel processing of FIG. 13A and FIG. 13B, from step A501 Processing ends with step A513. Thereafter, the network (NW) device D receives a normal packet from the network (NW) device B and transfers it according to the flow table 26.

(6)ネットワーク(NW)機器F
ネットワーク(NW)機器Fも、図9のように、処理を待っている。ネットワーク(NW)機器Fは、コントローラから制御が行われると、図9のステップA104でフローテーブル更新処理部25を呼び出し、フローテーブル26を設定する。その後に、ステップA105でパケット投機転送取り消し処理部212を呼び出し、図13A及び図13Bのパケット投機転送取り消し処理で、投機転送処理を行っておらず、投機パケットを受信しているので、ステップA514で投機パケットの投機転送元が正しいか判定し、間違っているので、ステップA516で投機パケットを削除する。
(6) Network (NW) device F
The network (NW) device F is also waiting for processing as shown in FIG. When the control is performed from the controller, the network (NW) device F calls the flow table update processing unit 25 and sets the flow table 26 in step A104 of FIG. Thereafter, the packet speculative transfer cancel processing unit 212 is called at step A105, and the speculative transfer processing is not performed in the packet speculative transfer cancel processing of FIGS. 13A and 13B, and the speculative packet is received. It is determined whether the speculative transfer source of the speculative packet is correct, and since it is incorrect, the speculative packet is deleted in step A516.

(7)ネットワーク(NW)機器F → 転送先ホスト
その後、ネットワーク(NW)機器Fは、ネットワーク(NW)機器Dからの通常のパケットを受信して、パケット転送処理で転送先ホストに通常のパケットを送信する。
(7) Network (NW) device F → Transfer destination host Thereafter, the network (NW) device F receives a normal packet from the network (NW) device D, and sends a normal packet to the transfer destination host by packet transfer processing. Send.

(8)ネットワーク(NW)機器C
ネットワーク(NW)機器Cも、図9のように、処理を待っている。ネットワーク(NW)機器Cは、パケットを受信すると、図9のステップA102でパケット受信処理部23を呼び出し、図10のパケット受信処理でネットワーク(NW)機器Aからの投機キャンセルパケットを受信したと判定し、図16のキャンセルパケット受信処理を実行する。ネットワーク(NW)機器Cは、ステップA803で二重フラグ2623は立っていないので、ステップA804でキャンセルパケット送信処理部213を呼び出し、投機キャンセルパケットをネットワーク(NW)機器Eに転送する。その後、パケットバッファ27に保留していた投機パケットを削除する。
(8) Network (NW) device C
The network (NW) device C is also waiting for processing as shown in FIG. When receiving the packet, the network (NW) device C calls the packet reception processing unit 23 in step A102 of FIG. 9, and determines that the speculative cancellation packet from the network (NW) device A is received in the packet reception processing of FIG. Then, the cancel packet reception process of FIG. 16 is executed. Since the double flag 2623 is not set in step A803, the network (NW) device C calls the cancel packet transmission processing unit 213 in step A804 and transfers the speculative cancel packet to the network (NW) device E. Thereafter, the speculative packet held in the packet buffer 27 is deleted.

(9)ネットワーク(NW)機器E
ネットワーク(NW)機器Eも、図9のように、処理を待っている。ネットワーク(NW)機器Eは、パケットを受信すると、図9のステップA102でパケット受信処理部23を呼び出し、図10のパケット受信処理でネットワーク(NW)機器Aからの投機キャンセルパケットを受信したと判定し、図16のキャンセルパケット受信処理を実行する。ネットワーク(NW)機器Eは、ステップA803で二重フラグ2623は立っていないので、ステップA804でキャンセルパケット送信処理部213を呼び出し、投機キャンセルパケットをネットワーク(NW)機器Fに転送する。その後、パケットバッファ27に保留していた投機パケットを削除する。
(9) Network (NW) device E
The network (NW) device E is also waiting for processing as shown in FIG. When receiving the packet, the network (NW) device E calls the packet reception processing unit 23 in step A102 of FIG. 9, and determines that the speculative cancellation packet from the network (NW) device A has been received in the packet reception processing of FIG. Then, the cancel packet reception process of FIG. 16 is executed. Since the double flag 2623 is not set in step A803, the network (NW) device E calls the cancel packet transmission processing unit 213 in step A804 and transfers the speculative cancel packet to the network (NW) device F. Thereafter, the speculative packet held in the packet buffer 27 is deleted.

(10)ネットワーク(NW)機器F
ネットワーク(NW)機器Fは、図9のように、処理を待っている。パケットを受信すると、図9のステップA102でパケット受信処理部23を呼び出し、図10のパケット受信処理でネットワーク(NW)機器Eからの投機キャンセルパケットを受信したと判定し、図16のキャンセルパケット受信処理を実行し、パケットバッファ27に保留していた投機パケットを削除する。
(10) Network (NW) device F
The network (NW) device F is waiting for processing as shown in FIG. When the packet is received, the packet reception processing unit 23 is called in step A102 in FIG. 9, and it is determined that the speculative cancellation packet from the network (NW) device E is received in the packet reception processing in FIG. The process is executed, and the speculative packet held in the packet buffer 27 is deleted.

[実施例4]
図21にあるように、転送元ホストから、転送先ホストにデータを転送する時に、投機的にネットワーク(NW)機器A、B、C、E、D、Fの順に投機転送し、投機転送の途中が失敗したときの状況を例に説明する。
[Example 4]
As shown in FIG. 21, when data is transferred from a transfer source host to a transfer destination host, speculative transfer is performed speculatively in the order of network (NW) devices A, B, C, E, D, and F. An example of the situation when the process fails will be described.

ここでは、先に、転送元ホストがネットワーク(NW)機器Aにパケットを転送し、ネットワーク(NW)機器A、B、C、E、D、Fの順に投機転送したものとする。   Here, it is assumed that the transfer source host first transfers a packet to the network (NW) device A and speculatively transfers the network (NW) devices A, B, C, E, D, and F in this order.

なお、ネットワーク(NW)機器Fは、前述の実施例1に記載した通り、投機パケットがネットワーク(NW)機器で構成されたネットワーク(NW)から出て行くので、投機パケットをパケットバッファ27に保存しており、投機転送を行っていない。   The network (NW) device F stores the speculative packet in the packet buffer 27 because the speculative packet goes out of the network (NW) configured by the network (NW) device as described in the first embodiment. And speculative transfer is not performed.

(1)コントローラ → ネットワーク(NW)機器A、B、D、F
コントローラは、1stパケットの宛先までの経路を計算し、コントローラのネットワーク(NW)機器制御部12でネットワーク(NW)機器A、B、D、Fの制御を行う。
(1) Controller → Network (NW) devices A, B, D, F
The controller calculates a route to the destination of the 1st packet, and controls the network (NW) devices A, B, D, and F by the network (NW) device control unit 12 of the controller.

(2)ネットワーク(NW)機器A
ネットワーク(NW)機器Aは、図9のように、処理を待っている。ネットワーク(NW)機器Aは、コントローラから制御が行われると、図9のステップA104でフローテーブル更新処理部25を呼び出し、フローテーブル26を設定する。その後に、ネットワーク(NW)機器Aは、ステップA105でパケット投機転送取り消し処理部212を呼び出し、図13A及び図13Bのパケット投機転送取り消し処理で、投機パケットの成否を判定する。投機送信先が正しかったので、投機転送は成功と判定し、パケットバッファ27に保留していた投機パケットを削除する。
(2) Network (NW) device A
The network (NW) device A is waiting for processing as shown in FIG. When the control is performed from the controller, the network (NW) device A calls the flow table update processing unit 25 and sets the flow table 26 in step A104 of FIG. Thereafter, the network (NW) device A calls the packet speculative transfer cancel processing unit 212 in step A105, and determines the success or failure of the speculative packet by the packet speculative transfer cancel processing of FIGS. 13A and 13B. Since the speculative transmission destination is correct, it is determined that the speculative transfer is successful, and the speculative packet held in the packet buffer 27 is deleted.

(3)ネットワーク(NW)機器B
ネットワーク(NW)機器Bは、図9のように、処理を待っている。ネットワーク(NW)機器Bは、コントローラから制御が行われると、図9のステップA104でフローテーブル更新処理部25を呼び出し、フローテーブル26を設定する。その後に、ネットワーク(NW)機器Bは、ステップA105でパケット投機転送取り消し処理部212を呼び出し、図13A及び図13Bのパケット投機転送取り消し処理で投機パケットの成否を判定する。投機送信先が異なっていたので、投機転送は失敗と判定し、ステップA509でパケット転送処理部24を呼び出し、ネットワーク(NW)機器Dに通常のパケットを送信する。その後、ネットワーク(NW)機器Bは、ステップA510でキャンセルパケット送信処理部213を呼び出し、図14のキャンセルパケット送信処理を実行し、投機キャンセルパケットをネットワーク(NW)機器Cに転送し、投機中フラグ2621を落とす。
(3) Network (NW) device B
The network (NW) device B is waiting for processing as shown in FIG. When the control is performed from the controller, the network (NW) device B calls the flow table update processing unit 25 and sets the flow table 26 in step A104 of FIG. Thereafter, the network (NW) device B calls the packet speculative transfer cancel processing unit 212 in step A105, and determines the success or failure of the speculative packet in the packet speculative transfer cancel processing of FIGS. 13A and 13B. Since the speculative transmission destinations are different, it is determined that the speculative transfer is unsuccessful, and the packet transfer processing unit 24 is called in step A509 to transmit a normal packet to the network (NW) device D. Thereafter, the network (NW) device B calls the cancel packet transmission processing unit 213 in step A510, executes the cancel packet transmission processing of FIG. 14, transfers the speculative cancel packet to the network (NW) device C, and sets a speculative flag. Drop 2621.

(4)ネットワーク(NW)機器C
ネットワーク(NW)機器Cも、図9のように、処理を待っている。ネットワーク(NW)機器Cは、パケットを受信すると、図9のステップA102でパケット受信処理部23を呼び出し、図10のパケット受信処理でネットワーク(NW)機器Aからの投機キャンセルパケットを受信したと判定し、図16のキャンセルパケット受信処理を実行する。ネットワーク(NW)機器Cは、ステップA803で二重フラグ2623は立っていないので、ステップA804でキャンセルパケット送信処理部213を呼び出し、投機キャンセルパケットをネットワーク(NW)機器Eに転送する。その後、パケットバッファ27に保留していた投機パケットを削除する。
(4) Network (NW) device C
The network (NW) device C is also waiting for processing as shown in FIG. When receiving the packet, the network (NW) device C calls the packet reception processing unit 23 in step A102 of FIG. 9, and determines that the speculative cancellation packet from the network (NW) device A is received in the packet reception processing of FIG. Then, the cancel packet reception process of FIG. 16 is executed. Since the double flag 2623 is not set in step A803, the network (NW) device C calls the cancel packet transmission processing unit 213 in step A804 and transfers the speculative cancel packet to the network (NW) device E. Thereafter, the speculative packet held in the packet buffer 27 is deleted.

(5)ネットワーク(NW)機器E
ネットワーク(NW)機器Eも、図9のように、処理を待っている。ネットワーク(NW)機器Eは、パケットを受信すると、図9のステップA102でパケット受信処理部23を呼び出し、図10のパケット受信処理でネットワーク(NW)機器Aからの投機キャンセルパケットを受信したと判定し、図16のキャンセルパケット受信処理を実行する。ネットワーク(NW)機器Eは、ステップA803で二重フラグ2623は立っていないので、ステップA804でキャンセルパケット送信処理部213を呼び出し、投機キャンセルパケットをネットワーク(NW)機器Dに転送する。その後、パケットバッファ27に保留していた投機パケットを削除する。
(5) Network (NW) device E
The network (NW) device E is also waiting for processing as shown in FIG. When receiving the packet, the network (NW) device E calls the packet reception processing unit 23 in step A102 of FIG. 9, and determines that the speculative cancellation packet from the network (NW) device A has been received in the packet reception processing of FIG. Then, the cancel packet reception process of FIG. 16 is executed. Since the double flag 2623 is not set in step A803, the network (NW) device E calls the cancel packet transmission processing unit 213 in step A804 and transfers the speculative cancel packet to the network (NW) device D. Thereafter, the speculative packet held in the packet buffer 27 is deleted.

(6)ネットワーク(NW)機器D(E → Dの場合)
ネットワーク(NW)機器Dは、図9のように、処理を待っている。ネットワーク(NW)機器Dは、コントローラから制御が行われると、図9のステップA104でフローテーブル更新処理部25を呼び出し、フローテーブル26を設定する。その後に、ステップA105でパケット投機転送取り消し処理部212を呼び出し、図13A及び図13Bのパケット投機転送取り消し処理において、投機転送先が正しく、投機転送元が間違っているので、ステップA501、ステップA502、ステップA503、ステップA504の処理を実行し、ステップA505で投機転送情報262に二重フラグ2623を立てる処理を行う。その後に、ネットワーク(NW)機器Dは、ネットワーク(NW)機器Eからのパケットを受信すると、図9のステップA102でパケット受信処理部23を呼び出し、図10のパケット受信処理でネットワーク(NW)機器Eからの投機キャンセルパケットを受信したと判定し、図16のキャンセルパケット受信処理を実行する。ネットワーク(NW)機器Dは、ステップA803で二重フラグ2623が立っているので、ステップA805で投機中フラグ2621を空に変更し、ステップA806でパケットバッファ27に保留していた投機パケットを削除する。
(6) Network (NW) device D (in case of E → D)
The network (NW) device D is waiting for processing as shown in FIG. When the control is performed from the controller, the network (NW) device D calls the flow table update processing unit 25 and sets the flow table 26 in step A104 of FIG. Thereafter, the packet speculative transfer cancel processing unit 212 is called in step A105, and in the packet speculative transfer cancel processing of FIGS. 13A and 13B, the speculative transfer destination is correct and the speculative transfer source is incorrect. Therefore, step A501, step A502, The processing of step A503 and step A504 is executed, and the processing of setting the double flag 2623 in the speculative transfer information 262 is performed in step A505. Thereafter, when receiving a packet from the network (NW) device E, the network (NW) device D calls the packet reception processing unit 23 in step A102 in FIG. 9, and the network (NW) device in the packet reception processing in FIG. It is determined that a speculative cancel packet from E has been received, and the cancel packet reception process of FIG. 16 is executed. Since the double flag 2623 is set in step A803, the network (NW) device D changes the speculative flag 2621 to empty in step A805, and deletes the speculative packet held in the packet buffer 27 in step A806. .

(7)ネットワーク(NW)機器D(B → Dの場合)
その後、ネットワーク(NW)機器Dは、ネットワーク(NW)機器Bからの通常のパケットを受信して、図10のステップA203で二重フラグ2623のチェックを行い、ステップA204の二重パケット廃棄処理部215を呼び出し、図17の二重パケット廃棄処理のステップA101で受信したパケットを削除し、ステップA102で二重フラグ2623を落とす。
(7) Network (NW) device D (B → D)
Thereafter, the network (NW) device D receives a normal packet from the network (NW) device B, checks the double flag 2623 in step A203 of FIG. 10, and performs a double packet discard processing unit in step A204. 215 is called, the packet received at step A101 of the double packet discarding process of FIG. 17 is deleted, and the double flag 2623 is cleared at step A102.

(8)ネットワーク(NW)機器F
ネットワーク(NW)機器Fも、図9のように、処理を待っている。ネットワーク(NW)機器Fは、コントローラから制御が行われると、図9のステップA104でフローテーブル更新処理部25を呼び出し、フローテーブル26を設定する。その後に、ネットワーク(NW)機器Fは、ステップA105でパケット投機転送取り消し処理部212を呼び出し、図13A及び図13Bのパケット投機転送取り消し処理では、投機転送処理を行っておらず、投機パケットを受信しているので、ステップA514で投機パケットの投機転送元が正しいか判定し、正しいので、ステップA515でパケット転送処理を呼び出し、図15のパケット転送処理を行い、送信先ホストにパケットを転送する。
(8) Network (NW) device F
The network (NW) device F is also waiting for processing as shown in FIG. When the control is performed from the controller, the network (NW) device F calls the flow table update processing unit 25 and sets the flow table 26 in step A104 of FIG. Thereafter, the network (NW) device F calls the packet speculative transfer cancel processing unit 212 in step A105, and receives the speculative packet without performing speculative transfer processing in the packet speculative transfer cancel processing of FIGS. 13A and 13B. Therefore, in step A514, it is determined whether the speculative packet speculative transfer source is correct. If so, the packet transfer process is called in step A515, the packet transfer process of FIG. 15 is performed, and the packet is transferred to the destination host.

<本実施形態による効果>
上記のように、投機転送に失敗した場合に、パケット投機転送取り消し処理を行うことで、ネットワークの外に転送する前に、投機パケットを取り消すことができるようになる。
<Effects of this embodiment>
As described above, when speculative transfer fails, by performing packet speculative transfer cancellation processing, it is possible to cancel speculative packets before transferring out of the network.

また、投機キャンセルパケットを受信すると、投機転送によるネットワーク(NW)機器内部の変更を元に戻す。投機転送がネットワークの内外に影響を与えないので、パケット転送を投機的に行うことができる。   In addition, when a speculative cancel packet is received, changes in the network (NW) device by speculative transfer are restored. Since speculative transfer does not affect the inside or outside of the network, packet transfer can be performed speculatively.

これにより、パケット転送と経路制御の機能が分離されたネットワーク機器で構成されるネットワークにおいて、パケット転送を投機的に行うことができ、転送遅延を少なくできる。   Thereby, in a network composed of network devices in which packet transfer and routing control functions are separated, packet transfer can be speculatively performed and transfer delay can be reduced.

また、パケット転送と経路制御の機能が分離されたネットワーク(NW)機器で構成されるネットワークにおいて、複数のコントローラをまたぐ通信が発生する場合における1stパケット処理の際、コントローラ間で経路内のネットワーク(NW)機器のフローテーブル更新指示と同期待ち合わせの必要が無くなり、パケット転送の遅延を回避でき、ネットワーク性能が向上する。   Further, in a network composed of network (NW) devices in which the packet transfer function and the path control function are separated, in the case of 1st packet processing when communication across a plurality of controllers occurs, the network ( NW) It is not necessary to wait for the device to update the flow table and to wait for synchronization, delay of packet transfer can be avoided, and network performance can be improved.

<第2実施形態>
次に、本発明の第2実施形態について詳細に説明する。
本実施形態では、投機キャンセルパケットに1stパケット自体の情報を持たせる代わりに、1stパケット毎に一意の値を用いる。この値により、該当する1stパケットを含む投機パケットを特定し、投機パケットと投機キャンセルパケットを対応付ける。
Second Embodiment
Next, a second embodiment of the present invention will be described in detail.
In the present embodiment, a unique value is used for each 1st packet, instead of providing the speculative cancellation packet with information on the 1st packet itself. Based on this value, a speculative packet including the corresponding 1st packet is specified, and the speculative packet and the speculative cancel packet are associated with each other.

例えば、送信元のネットワーク(NW)機器は、1stパケット毎に一意の値を投機キャンセルパケットに付加し、この投機キャンセルパケットを送信する。送信先のネットワーク(NW)機器は、投機キャンセルパケットを受信すると、この値をキーとして、該当する1stパケットを含む投機パケットを特定し、その投機パケットを削除する。このとき、送信先のネットワーク(NW)機器は、この値をキーとして、投機パケットと投機キャンセルパケットを照合するようにしても良い。   For example, the transmission source network (NW) device adds a unique value to the speculative cancel packet for each 1st packet and transmits the speculative cancel packet. When receiving the speculative cancel packet, the destination network (NW) device specifies the speculative packet including the corresponding 1st packet using this value as a key, and deletes the speculative packet. At this time, the destination network (NW) device may collate the speculative packet with the speculative cancellation packet using this value as a key.

なお、1stパケット毎に一意の値の例として、以下のような値が考えられる。
(1)パケットのデータを基にハッシュ関数によって計算した値。例えば、md5、sha1等のハッシュ関数、又はこれらを組み合わせたもの。
(2)1stパケット毎のシーケンシャルな番号。例えば、パケットの到着順に与えられた番号。
(3)確率的にネットワークシステム内において一意の値と見なせるだけの大きさを持つランダムな値。例えば、UUID(Universally Unique Identifier:汎用一意識別子)。
As examples of unique values for each 1st packet, the following values are conceivable.
(1) A value calculated by a hash function based on packet data. For example, a hash function such as md5, sha1, or a combination thereof.
(2) Sequential number for each 1st packet. For example, a number given in the order of arrival of packets.
(3) A random value having a size that can be regarded as a unique value in the network system. For example, UUID (Universally Unique Identifier).

このように、投機キャンセルパケットに対応する投機パケットを判別するために、1stパケットを使用する代わりに1stパケット毎に一意の値を用いることで、投機キャンセルパケットのサイズを小さくし、投機キャンセルパケットに対応する投機パケットの判別に要する時間を短くすることができる。   In this way, in order to determine the speculative packet corresponding to the speculative cancellation packet, a unique value is used for each 1st packet instead of using the 1st packet, thereby reducing the size of the speculative cancellation packet. The time required for determining the corresponding speculative packet can be shortened.

<第3実施形態>
次に、本発明の第3実施形態について詳細に説明する。
本実施形態では、図8の投機転送情報262をフローテーブル26から分離する。すなわち、投機転送情報262を、フローテーブル26とは別の情報として保持する。このとき、投機転送情報262は、エントリー261に対応付けるための情報を有すると好適である。なお、投機転送情報262自体が、エントリー261の内容を含んでいても良い。
<Third Embodiment>
Next, a third embodiment of the present invention will be described in detail.
In the present embodiment, the speculative transfer information 262 in FIG. 8 is separated from the flow table 26. That is, the speculative transfer information 262 is held as information different from the flow table 26. At this time, it is preferable that the speculative transfer information 262 includes information for associating with the entry 261. Note that the speculative transfer information 262 itself may include the contents of the entry 261.

上記の各実施形態では、エントリー261と投機転送情報262が対応付けられてフローテーブル26に設定されるため、投機転送情報262を変更する場合、フローテーブル26を更新する必要がある。また、エントリー毎に投機転送情報を設定する必要がある。   In each of the above embodiments, the entry 261 and the speculative transfer information 262 are associated with each other and set in the flow table 26. Therefore, when the speculative transfer information 262 is changed, the flow table 26 needs to be updated. Moreover, it is necessary to set speculative transfer information for each entry.

本実施形態では、投機転送情報262が、フローテーブル26とは別の独立した情報として保持されているため、投機転送情報262の変更が容易である。また、複数のエントリー261が、1つの投機転送情報262を共有することもできる。また、既存のオープンフロー対応のネットワーク(NW)機器に対して、既存のフローテーブルを残したまま、本発明を適用することができる。   In this embodiment, since the speculative transfer information 262 is held as independent information different from the flow table 26, the speculative transfer information 262 can be easily changed. A plurality of entries 261 can also share one speculative transfer information 262. Further, the present invention can be applied to an existing open flow compatible network (NW) device while leaving the existing flow table.

なお、上記の各実施形態は、組み合わせて実施することも可能である。   Note that the above embodiments can be implemented in combination.

<本発明の特徴>
本発明は、オープンフロー(OpenFlow)に代表されるような、制御機能を外部のコントローラとして分離したネットワーク(NW)機器で構成されるネットワークを対象とする。
<Features of the present invention>
The present invention is directed to a network constituted by a network (NW) device in which a control function is separated as an external controller, as represented by OpenFlow (OpenFlow).

本発明では、各ネットワーク(NW)機器が、経路情報を管理するフローテーブルに経路情報が無いパケットを投機的に転送し、外部ネットワークに送信する直前で保留する。   In the present invention, each network (NW) device speculatively transfers a packet without route information in the flow table for managing route information, and holds it immediately before sending it to an external network.

本発明では、投機的な転送の成否をコントローラからのフローテーブルの設定によって判定する。   In the present invention, the success or failure of speculative transfer is determined by setting the flow table from the controller.

本発明では、投機的な転送に失敗したと判定した場合に投機キャンセルパケットを送ることによって、投機的に転送したパケットを取り消す。   In the present invention, a speculatively transferred packet is canceled by sending a speculative cancel packet when it is determined that speculative transfer has failed.

本発明では、投機的に転送したパケットを経由した全てのネットワーク(NW)機器で保持しておき、投機的な転送に失敗したと判定した場合に、転送先を間違えたネットワーク(NW)機器からパケットを送り直す(再送する)。   In the present invention, when all of the network (NW) devices via the speculatively transferred packet are held and it is determined that the speculative transfer has failed, the network (NW) device with the wrong transfer destination is used. Resend the packet (resend it).

以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。   As mentioned above, although embodiment of this invention was explained in full detail, actually, it is not restricted to said embodiment, Even if there is a change of the range which does not deviate from the summary of this invention, it is included in this invention.

10… コントローラ
11… 経路計算部
12… ネットワーク(NW)機器制御部
20… ネットワーク(NW)機器
21… 投機転送処理部
211… パケット投機送信処理部
212… パケット投機送信取り消し処理部
213… キャンセルパケット送信処理部
214… キャンセルパケット受信処理部
215… 二重パケット廃棄処理部
22… ネットワーク(NW)機器基本処理部
23… パケット受信処理部
24… パケット転送処理部
25… フローテーブル更新処理部
26… フローテーブル
261… エントリー
262… 投機転送情報
2621… 投機中フラグ
2622… NW情報
2623… 二重フラグ
27… パケットバッファ
DESCRIPTION OF SYMBOLS 10 ... Controller 11 ... Path | route calculation part 12 ... Network (NW) apparatus control part 20 ... Network (NW) apparatus 21 ... Speculative transfer process part 211 ... Packet speculative transmission process part 212 ... Packet speculative transmission cancellation process part 213 ... Cancel packet transmission Processing unit 214 ... Cancel packet reception processing unit 215 ... Double packet discard processing unit 22 ... Network (NW) device basic processing unit 23 ... Packet reception processing unit 24 ... Packet transfer processing unit 25 ... Flow table update processing unit 26 ... Flow table 261 ... Entry 262 ... Speculative transfer information 2621 ... Speculative flag 2622 ... NW information 2623 ... Double flag 27 ... Packet buffer

Claims (8)

ネットワーク機器と、
前記ネットワーク機器を制御するコントローラと
を含み、
前記ネットワーク機器は、
未知のパケットを受信すると、前記パケットから投機パケットを作成し、投機転送先のネットワーク機器を選択して、前記投機転送先に前記投機パケットを送信する手段と、
前記パケットの到着を前記コントローラに通知する手段と、
前記コントローラから前記パケットに関する経路情報が設定された場合、前記経路情報を確認し、前記投機転送先が正しいか確認する手段と、
前記投機転送先が間違っている場合、前記経路情報に従い、正しい転送先に前記パケットを送信する手段と
前記投機転送先が間違っている場合、前記投機転送先に、前記投機パケットを削除するための投機キャンセルパケットを送信する手段と、
パケットを受信すると、受信したパケットの種別を確認する手段と、
受信したパケットが投機パケットである場合、当該パケットをパケットバッファに保存する手段と、
受信したパケットが投機キャンセルパケットである場合、前記パケットバッファに保存したパケットを削除する手段と
を具備する
ネットワークシステム。
Network equipment,
A controller for controlling the network device,
The network device is:
Upon receiving an unknown packet, creating a speculative packet from the packet, selecting a speculative transfer destination network device, and transmitting the speculative packet to the speculative transfer destination;
Means for notifying the controller of the arrival of the packet;
When route information related to the packet is set from the controller, the route information is confirmed, and the speculative transfer destination is confirmed to be correct.
If the speculative transfer destination is incorrect , means for transmitting the packet to the correct transfer destination according to the path information ;
If the speculative transfer destination is wrong, means for transmitting a speculative cancel packet for deleting the speculative packet to the speculative transfer destination;
When receiving a packet, means for confirming the type of the received packet;
When the received packet is a speculative packet, means for storing the packet in a packet buffer;
Means for deleting a packet stored in the packet buffer when the received packet is a speculative cancellation packet;
Network system to immediately Bei the.
請求項に記載のネットワークシステムであって、
前記ネットワーク機器は、
受信したパケットが投機パケットである場合、次の投機転送先を選択する手段と、
当該パケットがネットワーク機器で構成されたネットワークの外に出て行かないか確認する手段と、
当該パケットが前記ネットワークの外に出て行かない場合、次の投機転送先に当該パケットを投機転送する手段と
を更に具備する
ネットワークシステム。
The network system according to claim 1 ,
The network device is:
If the received packet is a speculative packet, means for selecting the next speculative transfer destination;
Means for confirming that the packet does not go out of the network composed of network devices;
A network system further comprising means for speculatively transferring the packet to a next speculative transfer destination when the packet does not go out of the network.
請求項又はに記載のネットワークシステムであって、
前記ネットワーク機器は、
受信したパケットが投機パケットである場合、前記経路情報を確認し、当該パケットの投機転送元が正しいか確認する手段と、
前記投機転送元が間違っている場合、二重フラグを立てる手段と、
受信したパケットが通常のパケットである場合、前記二重フラグが立っているか確認する手段と、
前記二重フラグが立っていない場合、前記経路情報に従い、受信したパケットを正しい転送先に送信する手段と、
前記二重フラグが立っている場合、受信したパケットを廃棄し、前記二重フラグを落とす手段と
を更に具備する
ネットワークシステム。
The network system according to claim 1 or 2 ,
The network device is:
If the received packet is a speculative packet, the route information is confirmed, and a means for confirming whether the speculative transfer source of the packet is correct;
Means for setting a double flag if the speculative transfer source is incorrect;
If the received packet is a normal packet, means for checking whether the double flag is set;
Means for transmitting the received packet to the correct forwarding destination according to the path information when the double flag is not set;
And a means for discarding the received packet and dropping the double flag when the double flag is set.
請求項1乃至のいずれか一項に記載のネットワークシステムで使用されるネットワーク機器。 A network device used in the network system according to any one of claims 1 to 3 . コントローラにより制御されるネットワーク機器のパケット投機転送方法であって、
未知のパケットを受信すると、前記パケットから投機パケットを作成し、投機転送先のネットワーク機器を選択して、前記投機転送先に前記投機パケットを送信することと、
前記パケットの到着を前記コントローラに通知することと、
前記コントローラから前記パケットに関する経路情報が設定された場合、前記経路情報を確認し、前記投機転送先が正しいか確認することと、
前記投機転送先が間違っている場合、前記経路情報に従い、正しい転送先に前記パケットを送信することと
前記投機転送先が間違っている場合、前記投機転送先に、前記投機パケットを削除するための投機キャンセルパケットを送信することと、
パケットを受信すると、受信したパケットの種別を確認することと、
受信したパケットが投機パケットである場合、当該パケットをパケットバッファに保存することと、
受信したパケットが投機キャンセルパケットである場合、前記パケットバッファに保存したパケットを削除することと
を含
パケット投機転送方法。
A packet speculative transfer method for network equipment controlled by a controller,
Receiving an unknown packet, creating a speculative packet from the packet, selecting a speculative transfer destination network device, and transmitting the speculative packet to the speculative transfer destination;
Notifying the controller of the arrival of the packet;
When route information related to the packet is set from the controller, check the route information and confirm whether the speculative transfer destination is correct;
If the speculative transfer destination is wrong, according to the route information, sending the packet to the correct transfer destination ;
If the speculative transfer destination is wrong, sending a speculative cancel packet for deleting the speculative packet to the speculative transfer destination;
When receiving a packet, check the type of the received packet,
If the received packet is a speculative packet, storing the packet in a packet buffer;
If the received packet is a speculative cancel packet, deleting the packet stored in the packet buffer;
Including packet speculation transfer methods.
請求項に記載のパケット投機転送方法であって、
受信したパケットが投機パケットである場合、次の投機転送先を選択することと、
当該パケットがネットワーク機器で構成されたネットワークの外に出て行かないか確認することと、
当該パケットが前記ネットワークの外に出て行かない場合、次の投機転送先に当該パケットを投機転送することと
を更に含む
パケット投機転送方法。
The packet speculative transfer method according to claim 5 ,
If the received packet is a speculative packet, select the next speculative transfer destination,
Make sure that the packet doesn't go outside the network of network devices,
A packet speculative transfer method further comprising speculatively transferring the packet to a next speculative transfer destination when the packet does not go out of the network.
請求項又はに記載のパケット投機転送方法であって、
受信したパケットが投機パケットである場合、前記経路情報を確認し、当該パケットの投機転送元が正しいか確認することと、
前記投機転送元が間違っている場合、二重フラグを立てることと、
受信したパケットが通常のパケットである場合、前記二重フラグが立っているか確認することと、
前記二重フラグが立っていない場合、前記経路情報に従い、受信したパケットを正しい転送先に送信することと、
前記二重フラグが立っている場合、受信したパケットを廃棄し、前記二重フラグを落とすことと
を更に含む
パケット投機転送方法。
The packet speculative transfer method according to claim 5 or 6 ,
If the received packet is a speculative packet, check the route information and confirm whether the speculative transfer source of the packet is correct;
If the speculative transfer source is wrong, set a double flag;
If the received packet is a normal packet, check whether the double flag is set;
If the double flag is not set, according to the path information, send the received packet to the correct forwarding destination;
A packet speculative transfer method further comprising: discarding the received packet when the double flag is set and dropping the double flag.
請求項乃至のいずれか一項に記載のパケット投機転送方法を、ネットワーク機器に実行させるためのプログラム。 A program for causing a network device to execute the packet speculative transfer method according to any one of claims 5 to 7 .
JP2010030627A 2010-02-15 2010-02-15 Network system and packet speculative transfer method Expired - Fee Related JP5521614B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010030627A JP5521614B2 (en) 2010-02-15 2010-02-15 Network system and packet speculative transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010030627A JP5521614B2 (en) 2010-02-15 2010-02-15 Network system and packet speculative transfer method

Publications (2)

Publication Number Publication Date
JP2011166700A JP2011166700A (en) 2011-08-25
JP5521614B2 true JP5521614B2 (en) 2014-06-18

Family

ID=44596804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010030627A Expired - Fee Related JP5521614B2 (en) 2010-02-15 2010-02-15 Network system and packet speculative transfer method

Country Status (1)

Country Link
JP (1) JP5521614B2 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013051386A1 (en) * 2011-10-05 2013-04-11 日本電気株式会社 Load reduction system, and load reduction method
US9154433B2 (en) 2011-10-25 2015-10-06 Nicira, Inc. Physical controller
JP5987902B2 (en) 2012-04-03 2016-09-07 日本電気株式会社 Network system, controller, and packet authentication method
AU2013249152B2 (en) 2012-04-18 2016-04-28 Nicira, Inc. Using transactions to minimize churn in a distributed network control system
US9178715B2 (en) 2012-10-01 2015-11-03 International Business Machines Corporation Providing services to virtual overlay network traffic
US9769074B2 (en) 2013-03-15 2017-09-19 International Business Machines Corporation Network per-flow rate limiting
US9407560B2 (en) 2013-03-15 2016-08-02 International Business Machines Corporation Software defined network-based load balancing for physical and virtual networks
US9609086B2 (en) 2013-03-15 2017-03-28 International Business Machines Corporation Virtual machine mobility using OpenFlow
US9596192B2 (en) 2013-03-15 2017-03-14 International Business Machines Corporation Reliable link layer for control links between network controllers and switches
US9118984B2 (en) 2013-03-15 2015-08-25 International Business Machines Corporation Control plane for integrated switch wavelength division multiplexing
US9444748B2 (en) 2013-03-15 2016-09-13 International Business Machines Corporation Scalable flow and congestion control with OpenFlow
US9104643B2 (en) 2013-03-15 2015-08-11 International Business Machines Corporation OpenFlow controller master-slave initialization protocol
JP6260285B2 (en) * 2014-01-10 2018-01-17 富士通株式会社 Control device and transfer control method
JP6347177B2 (en) * 2014-08-22 2018-06-27 富士通株式会社 Transfer device, control device, and communication method
US10204122B2 (en) 2015-09-30 2019-02-12 Nicira, Inc. Implementing an interface between tuple and message-driven control entities
US11019167B2 (en) 2016-04-29 2021-05-25 Nicira, Inc. Management of update queues for network controller

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3928833B2 (en) * 1998-06-30 2007-06-13 株式会社日立製作所 Packet relay method and packet relay apparatus
JP4799525B2 (en) * 2007-10-22 2011-10-26 パナソニック株式会社 Communication system, wireless communication terminal, communication relay device, and connection station
CA2700866C (en) * 2007-09-26 2016-06-21 Martin Casado Network operating system for managing and securing networks

Also Published As

Publication number Publication date
JP2011166700A (en) 2011-08-25

Similar Documents

Publication Publication Date Title
JP5521614B2 (en) Network system and packet speculative transfer method
US10728094B2 (en) Control traffic in software defined networks
EP3228054B1 (en) Inter-domain service function chaining
US9215175B2 (en) Computer system including controller and plurality of switches and communication method in computer system
US10541920B2 (en) Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow
JP5994851B2 (en) Transfer device control device, transfer device control method, communication system, and program
JP5521613B2 (en) Network system, network device, route information update method, and program
JP5672558B2 (en) Network system, network control apparatus, and control method
JP5413737B2 (en) Network system and route information update method
EP2814213A1 (en) Control device, communication system, communication method and program
WO2010103909A1 (en) OpenFlow COMMUNICATION SYSTEM AND OpenFlow COMMUNICATION METHOD
JP2014147120A (en) Control device, control method and communication system
US9515926B2 (en) Communication system, upper layer switch, control apparatus, switch control method, and program
US11677614B2 (en) Method and apparatus for protecting stateful service function paths
JP5861772B2 (en) Network appliance redundancy system, control device, network appliance redundancy method and program
EP3095216B1 (en) Single hop overlay architecture for line rate performance in campus networks
JP6868958B2 (en) Packet transmission program, information processing device, and failure detection method
US20150381476A1 (en) Communication system, switch, controller, method for constructing a control channel and program
KR20090110916A (en) Method, bridge and computer network for calculating a spanning tree based on link state advertisementlsa
WO2014129624A1 (en) Control device, communication system, path switching method, and program
JP6440191B2 (en) Switch device, VLAN setting management method, and program
WO2014126094A1 (en) Communication system, communication method, control device, and control device control method and program
JP2008072521A (en) Equipment, method and program for communication
WO2015045275A1 (en) Control device, network system, packet transfer control method, and program for control device
JP2017046211A (en) Communication apparatus, control method and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131021

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131220

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140324

R150 Certificate of patent or registration of utility model

Ref document number: 5521614

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees