JP6606919B2 - フロースイッチ、コントローラ、及び、中継装置 - Google Patents

フロースイッチ、コントローラ、及び、中継装置 Download PDF

Info

Publication number
JP6606919B2
JP6606919B2 JP2015166021A JP2015166021A JP6606919B2 JP 6606919 B2 JP6606919 B2 JP 6606919B2 JP 2015166021 A JP2015166021 A JP 2015166021A JP 2015166021 A JP2015166021 A JP 2015166021A JP 6606919 B2 JP6606919 B2 JP 6606919B2
Authority
JP
Japan
Prior art keywords
packet
message
protocol
lldp
communication
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
JP2015166021A
Other languages
English (en)
Other versions
JP2017046113A (ja
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015166021A priority Critical patent/JP6606919B2/ja
Priority to US15/205,398 priority patent/US10237170B2/en
Priority to EP16178992.0A priority patent/EP3136666B1/en
Priority to CN201610608327.6A priority patent/CN106487722A/zh
Publication of JP2017046113A publication Critical patent/JP2017046113A/ja
Application granted granted Critical
Publication of JP6606919B2 publication Critical patent/JP6606919B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本明細書に記載する技術は、フロースイッチ、コントローラ、及び、中継装置に関する。
近年、コンピューティングリソースの仮想化が進み、ネットワークにおいて、オンデマンドで仮想コンピュータを配備できるようになったことに伴って、SDN(Software Defined Networking)が注目されている。
SDNは、ネットワークをソフトウェアでオンデマンドに設定あるいは変更することが可能な技術である。1つのコントローラで複数のフロースイッチを管理、制御するようなネットワークに、SDNを適用することも検討されている。
そのようなネットワークにおいてSDNを実現可能な通信プロトコルの有力な候補の1つに、オープンフロー(OF)プロトコルがある。コントローラは、OFプロトコルを用いて各フロースイッチと通信することで、各フロースイッチの管理や制御を行なうことができる。
なお、OFプロトコルをサポートするコントローラを、OFコントローラ(OFC)と称し、OFプロトコルをサポートするフロースイッチを、OFスイッチと称することがある。
特表2014−502811号公報 特開2011−82834号公報 特開2014−27443号公報
IEEE 802.1 AB
コントローラと各フロースイッチとの間の管理や制御に関わるコントロールプレーンの通信量が増加して輻輳が生じることがある。
1つの側面では、本明細書の記載する技術の目的の1つは、コントローラとフロースイッチと間のコントロールプレーンの通信量を削減できるようにすることにある。
1つの側面において、フロースイッチは、記憶部と、通信処理部と、を備えてよい。記憶部は、データプレーンの通信で用いる或る通信プロトコルのプロトコルメッセージと、前記プロトコルメッセージの識別子と、の組を複数記憶してよい。通信処理部は、前記データプレーンの通信には、前記記憶部における前記プロトコルメッセージのいずれかを用い、コントローラとの間のコントロールプレーンの通信には、前記記憶部においてフローの制御対象である前記プロトコルメッセージに対応する前記識別子を用いてよい。なお、コントローラは、前記データプレーンにおける前記プロトコルメッセージのフローを制御してよい。
また、1つの側面において、コントローラは、記憶部と、通信処理部と、を備えてよい。記憶部は、複数のフロースイッチ間におけるデータプレーンの通信で用いる或る通信プロトコルのプロトコルメッセージと、前記プロトコルメッセージの識別子と、の組を複数記憶してよい。通信処理部は、前記データプレーンにおける前記プロトコルメッセージのフローを制御するためのコントロールプレーンの通信に、前記記憶部において前記フローの制御対象である前記プロトコルメッセージに対応する前記識別子を用いてよい。
更に、1つの側面において、中継装置は、コントローラと複数のフロースイッチとの間のコントロールプレーンの通信を中継してよい。当該中継装置は、記憶部と、通信処理部と、を備えてよい。記憶部は、前記フロースイッチ間におけるデータプレーンの通信で用いる或る通信プロトコルのプロトコルメッセージと、前記プロトコルメッセージの識別子と、の組を複数記憶してよい。通信処理部は、前記データプレーンにおける前記プロトコルメッセージのフローを制御する前記コントローラとの間のコントロールプレーンの通信には、前記記憶部において前記フローの制御対象である前記プロトコルメッセージに対応する前記識別子を用いてよい。また、通信処理部は、前記フロースイッチのいずれかとの間のコントロールプレーンの通信には、前記記憶部における複数の前記識別子のうちのいずれかに対応する前記プロトコルメッセージを用いてよい。
1つの側面として、コントローラとフロースイッチと間のコントロールプレーンの通信量を削減できる。
第1実施形態に係る通信システムの構成例を示すブロック図である。 図1の通信システムにおいて、パケットインメッセージ及びパケットアウトメッセージを用いて、データプレーン(DP)伝送路において、或る通信プロトコルのメッセージを交換する様子を模式的に例示する図である。 (A)はパケットアウトメッセージのフォーマット例を示す図であり、(B)はパケットインメッセージのフォーマット例を示す図である。 図1及び図2に例示した通信システムにおける制御ネットワークの負荷が上昇する例を模式的に例示する図である。 第1実施形態の通信システムの動作例を説明するための図である。 第1実施形態の通信システムの動作例を説明するための図である。 第1実施形態で用いる登録(削除)要求メッセージのフォーマット例を示す図である。 第1実施形態の通信システムの動作例を説明するための図である。 第1実施形態で用いる送出要求メッセージのフォーマット例を示す図である。 第1実施形態の通信システムの動作例を説明するための図である。 第1実施形態の通信システムの動作例を説明するための図である。 第1実施形態で用いる登録要求メッセージ(又は削除要求メッセージ)のフォーマット例を示す図である。 第1実施形態の通信システムの動作例を説明するための図である。 第1実施形態で用いる受信通知メッセージのフォーマット例を示す図である。 第1実施形態のオープンフローコントローラ(OFC)の機能的な構成例を示すブロック図である。 第1実施形態のOFCのハードウェア構成例を示すブロック図である。 第1実施形態のOFCの動作例を説明するためのフローチャートである。 第1実施形態のOFCの動作例を説明するためのフローチャートである。 第1実施形態のOFスイッチの機能的な構成例を示すブロック図である。 第1実施形態のOFスイッチのハードウェア構成例を示すブロック図である。 第1実施形態のOFスイッチの動作例を説明するためのフローチャートである。 第1実施形態のOFスイッチの動作例を説明するためのフローチャートである。 第2実施形態の通信システムの構成例及び動作例を説明するためのブロック図である。 第2実施形態のプロトコル変換装置の機能的な構成例を示すブロック図である。 第2実施形態のOFスイッチの機能的な構成例を示すブロック図である。
以下、図面を参照して実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。また、以下に説明する各種の例示的態様は、適宜に組み合わせて実施しても構わない。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
(第1実施形態)
図1は、第1実施形態に係る通信システムの構成例を示すブロック図である。図1に例示するように、通信システム1は、複数のスイッチ2−1〜2−N(#1〜#N)と、コントローラ3と、を備えてよい。なお、「N」は2以上の整数であり、図1の例では、N=5である。スイッチ2−1〜2−N(#1〜#N)を区別する必要がない場合、スイッチ2−i(#i)(i=1〜Nのいずれか)、あるいは、単にスイッチ2と表記することがある。
スイッチ2のそれぞれは、通信装置あるいは通信デバイスの一例であり、例示的に、オープンフロー(OF)プロトコルをサポートするOFスイッチであってよい。既述のとおり、OFプロトコルは、SDNを実現可能な通信プロトコルの有力な候補の1つである。
コントローラ3は、例示的に、制御ネットワーク4を介して各スイッチ2と通信可能に接続されてよく、制御ネットワーク4を介した通信によって、各スイッチ2の動作を集中的に管理、制御することが可能である。
制御ネットワーク4を介した各スイッチ2の管理や制御に関わる通信は、便宜的に、「制御通信」又は「コントロールプレーンの通信」と称してよい。「コントロールプレーンの通信」は、便宜的に、「CP通信」と略称してよい。「CP通信」に用いられる信号やメッセージは、「制御信号」又は「制御メッセージ」と称してよい。「CP通信」には、OFプロトコルを用いてよい。
OFプロトコルを用いたCP通信が可能なコントローラ3は、「オープンフローコントローラ(OFC)3」と称してよい。なお、制御ネットワーク4には、OFC3とOFスイッチ2との間の制御通信の接続を切り替えるスイッチ41が備えられてよい。OFC3と各OFスイッチ2とを含む通信システム1は、「OFネットワーク1」と称されてもよい。
OFネットワーク1において、OFC3、及び、当該OFC3において動作するアプリケーション31は、コントロールプレーン(CP)を構成し、各OFスイッチ2は、データプレーン(DP)を構成する、と捉えてよい。別言すると、OFスイッチ2とOFC3と間のCP通信にOFプロトコルを用いることで、CPとDPとの分離が可能である。
なお、OFC3において動作するアプリケーション31の一例としては、LLDP(Link Layer Discovery Protocol)をサポートするアプリケーションが挙げられる。当該アプリケーション31は、便宜的に「LLDPアプリケーション31」と称してよい。
OFプロトコルでは、DP伝送路において様々なプロトコルに対応する装置をオンデマンドで配備できるように、「パケットインメッセージ(packet-in message)」及び「パケットアウトメッセージ(packet-out message)」が規定されている。これらのメッセージは、いずれも「制御メッセージ」の一例である。
「パケットインメッセージ」は、例示的に、DP伝送路で受信した様々なプロトコルのデータ(例えば、パケット)を、OFC3に通知するために用いられる。これに対し、「パケットアウトメッセージ」は、例示的に、OFC3からDP伝送路に対して様々な通信プロトコルのパケット送信を指示するために用いられる。
図2に、パケットインメッセージ及びパケットアウトメッセージを用いてDP伝送路において、LLDPメッセージ(便宜的に「LLDPパケット」と称してもよい。)を交換する様子を模式的に例示する。なお、「パケットインメッセージ」及び「パケットアウトメッセージ」は、それぞれ、「パケットイン」及び「パケットアウト」と略称することがある。
図2において、LLDPアプリケーション31は、まず、DP伝送路で受信されたLLDPパケットを受け取れるようにOFC3に指示する。
当該指示に従って、OFC3は、LLDPヘッダを有するメッセージ(LLDPパケット)をDP伝送路で受信したら、当該パケットをOFC3宛に送信することを規定したフローエントリを各OFスイッチ2に対して設定してよい。
次に、LLDPアプリケーション31は、例えば、OFスイッチ#1のポート#1から送出させるLLDPパケットを生成し、当該LLDPパケットをOFスイッチ#1のポート#1から送出させるようにOFC3に指示する。
OFC3は、この指示に従ってパケットアウトをOFスイッチ#1に送る。パケットアウトのフォーマット例を、図3(A)に示す。パケットアウトには、LLDPアプリケーション31が生成したLLDPパケットと、当該LLDPパケットをポート#1から送出することを指示する情報(「送信ポート情報」と称してよい。)と、が含まれてよい。
OFスイッチ#1は、当該パケットアウトをOFC3から受信すると、受信したパケットアウトに含まれるLLDPパケットを、指示されたポート#1から送出する。
ここで、図2に例示するように、OFスイッチ#1のポート#1が、OFスイッチ#5のポート#2に接続されていると仮定すれば、OFスイッチ#1のポート#1から送出されたLLDPパケットは、OFスイッチ#5のポート#2で受信される。
OFスイッチ#5は、既述のとおり、受信したLLDPパケットをOFC3宛に送信することを規定したフローエントリが事前に設定されているので、受信したLLDPパケットを、パケットインを用いてOFC3宛に送信する。
パケットインのフォーマット例を、図3(B)に示す。パケットインには、DP伝送路から受信したLLDPパケットと、当該LLDPパケットを受信したポート(#2)を示す情報(「受信ポート情報」と称してよい。)と、が含まれてよい。
OFC3は、パケットインを受信すると、受信したパケットインに含まれているLLDPパケットと受信ポート情報とをLLDPアプリケーション31に渡す。
以上のような手順により、OFスイッチ2及びOFC3は、DP伝送路において、LLDPによるリンク発見の機能を提供することができる。
OFC3のアプリケーション31を、LLDPとは異なる他の通信プロトコルのアプリケーションに変更すれば、同様のメカニズムを用いて、他の通信プロトコルの機能をOFスイッチ2間のDP伝送路において提供することができる。
OFC3において、様々な通信プロトコルのアプリケーション31を用意しておいて、要求に応じてアプリケーションを変更することにより、DP伝送路において提供したい通信プロトコルの機能をオンデマンドで提供することが可能になる。
OFスイッチ2とOFC3との間のCP伝送路において送受信されるメッセージは、インタオペラビリティのために標準的な通信プロトコル仕様に準拠したメッセージ(「プロトコルメッセージ」と称してよい。)であることが望まれる。例えば図3(A)及び図3(B)に示したように、OFプロトコルのメッセージは、TCP(Transmission Control Protocol)ヘッダ、及び、IP(Internet Protocol)ヘッダでカプセル化されてよい。
OFC3のアプリケーション31が多くのプロトコルメッセージをDPの伝送路において送受信する場合や、1台のOFC3が制御の対象とするOFスイッチ2の数が多い場合等では、図4に例示するように、制御ネットワーク4が輻輳することがある。
近年、SDNをデータセンタに限らず公衆網に適用することの検討が進んでいるが、公衆網では制御ネットワーク4で利用可能な帯域が限られることが多いため、制御ネットワーク4の輻輳が起こりやすいと云える。また、公衆網では制御対象のデバイスが多数であることが多いため、1つのOFC3が多数のOFスイッチ2を制御するシーンが多くなると予想される。
そのため、OFプロトコルのパケットアウト及びパケットインを用いてDP伝送路において単純にメッセージ(パケット)を送受信すると、制御ネットワーク4において輻輳が生じ易い。
そこで、以下では、OFC3がOFスイッチ2を制御するために利用される制御ネットワーク4に、輻輳が生じることを回避又は抑制可能な技術について検討する。
通信プロトコルによっては、定常状態では同じ内容のメッセージを周期的に送受信することがある。これにより、自装置と通信相手装置との間の伝送路が疎通していることを確認したり、自装置の状態に変化が無いことを通信相手装置との間で互いに通知し合って、通信相手装置の状態に変化が無いことを互いに確認し合ったりすることができる。
標準のOFプロトコルにおいて、パケットアウトは、図3(A)に例示したように、DP伝送路に送出するメッセージの全体を含んでいる。OFC3は、同じ内容のメッセージを含むパケットアウトであっても、メッセージをDP伝送路に送出するには、その都度、OFスイッチ2へパケットアウトを送信する。
また、パケットインは、図3(B)に例示したように、DP伝送路においてOFスイッチ2が受信したメッセージの全体を含んでいる。OFスイッチ2は、同じ内容のメッセージであっても、受信の度に、受信したメッセージの全体をパケットインに含めてOFC3宛に送信する。
したがって、定常状態において、OFC3とOFスイッチ2との間で、同じ内容のメッセージが重複的に送受信されることを抑制できれば、制御ネットワーク4の負荷を軽減することができ、輻輳の発生を回避あるいは抑制できる。
例えば、OFスイッチ2に、メッセージの内容に対応する識別子のデータベース(DB)を備える。OFC3のアプリケーション31から同じ内容のメッセージを繰り返し送信する場合には、OFC3は、OFスイッチ2間のDP伝送路に送出するメッセージの内容に対応する識別子を、OFスイッチ2のDBに追加する。
その上で、OFC3は、DP伝送路に送出するメッセージそのものではなく、当該メッセージの内容に対応する識別子を含むパケットアウト相当の制御メッセージを、OFスイッチ2に送信して、DP伝送路にメッセージを送出することを指示する。
また、アプリケーション31が同じ内容のメッセージを繰り返し受信することが予想される場合には、OFC3は、繰り返し受信が予想されるメッセージの内容に対応する識別子をOFスイッチ2のデータベースに追加する。
OFスイッチ2は、DBに登録されたメッセージをDP伝送路から受信すると、受信したメッセージそのものではなく、当該メッセージに対応する識別子を含むパケットイン相当の制御メッセージをOFC3宛に送信する。
以上のようにして、メッセージの全体ではなく対応する識別子をOFスイッチとOFC3との間のCP通信における制御メッセージに含めることで、制御ネットワーク4を流れるメッセージのサイズ(別言すると、容量)を低減できる。したがって、制御ネットワーク4の負荷を軽減することができる。
なお、DP伝送路を流れるメッセージ内容に対応する「識別子を含む制御メッセージ」は、便宜的に、OFプロトコルで用いられる標準的な制御メッセージを拡張した「拡張メッセージ」に相当する、と捉えてもよい。
例えば、メッセージ内容に代えて識別子を含むパケットアウトは拡張パケットアウトと称してもよく、メッセージ内容に代えて識別子を含むパケットインは拡張パケットインと称してもよい。
(動作例)
以下、図5〜図14を参照して、通信システム1の動作例について説明する。
図5に例示する通信システム1は、図1に例示した構成と同様である。図5において、OFC3では、DP伝送路でLLDPの機能を提供するためのLLDPアプリケーション31が動作すると仮定する。また、OFC3(例示的に、LLDPアプリケーション31)は、初期状態において、OFスイッチ2間の接続関係(「トポロジ」と称してもよい。)を認識していないと仮定する。
LLDPアプリケーション31は、OFC3が制御対象とする全てのOFスイッチ2に対して、イーサネットタイプ値にLLDPを示す「88-CC」が設定されたパケットはOFC3宛に送信することを指定したフローエントリを設定する。なお、「イーサネット」は、登録商標である。
次に、LLDPアプリケーション31は、各OFスイッチ2の各ポートから送出させるプロトコルメッセージの一例としてLLDPパケットを生成する。LLDPアプリケーション31は、図5の左上に例示するように、生成したLLDPパケットの内容(「イメージ」と称してもよい。)毎に、送信元OFスイッチ2の情報と、送信元ポートの情報と、識別子と、を登録したデータベース(DB)311を生成してよい。当該DB311は、「送出パケットDB311」と称してよい。
なお、送出パケットDB311は、複数のOFスイッチ2間におけるDP通信で用いるメッセージと、当該メッセージの識別子と、の組を複数記憶してよい。
次に、LLDPアプリケーション31は、図6に例示するように、OFC3を介して各LLDPパケットの送信元OFスイッチ2(例えば、OFスイッチ#1)に対して、LLDPパケットのイメージを、対応する識別子と共に通知してよい(処理P10)。
当該通知には、図7に例示する登録要求メッセージを用いてよい。登録要求メッセージは、OFプロトコルにおけるパケットアウトやパケットアウト等の制御メッセージを拡張した拡張メッセージの一例であり、メッセージ本体に、LLDPパケットのイメージと、対応する識別子と、が設定されてよい。また、OFヘッダに、「登録要求」であることを表示するメッセージタイプが設定されてよい。
OFスイッチ#1は、登録要求メッセージの受信に応じて、メッセージ本体に設定されているLLDPパケットのイメージと識別子とを、例えば図6に示すように、内部のDB211に登録してよい。OFスイッチ2におけるDB211は、便宜的に、「パケットDB211」と称してよい。
なお、パケットDB211は、DP伝送路に送出するパケットイメージ、あるいは、DP伝送路から受信が予想されるパケットイメージと、そのパケットイメージに対応する識別子と、の組を複数保持してよい。
また、登録要求メッセージは、LLDPパケットの送信元となるOFスイッチ2のそれぞれに対して送信されてよく、登録要求メッセージを受信した送信元OFスイッチ2のそれぞれにおいて、パケットDB211が生成されてよい。
更に、パケットDB211におけるパケットイメージと識別子との組のエントリは、OFC3からの制御メッセージによって、適宜に、追加、削除することができる。エントリを追加する制御メッセージの一例は、上述した登録要求メッセージである。
エントリを削除する制御メッセージには、例えば図7に例示した登録要求メッセージのOFヘッダにおけるメッセージタイプを、例えば「削除要求」に変更したメッセージ(便宜的に「削除要求メッセージ」と称してよい。)を用いてよい。
削除要求メッセージによって、パケットDB211において不要なエントリを削除することができるので、パケットDB211に用意する容量を抑えることができる。
上述したパケットDB211の登録が済むと、LLDPアプリケーション31は、図8に例示するように、送出パケットDB311を基に、各送信元OFスイッチ2に対して、指定のポートからLLDPパケットを送出するよう要求してよい(処理P20)。
当該送出要求(「送出指示」と称してもよい。)には、図9に例示する送出要求メッセージを用いてよい。送出要求メッセージは、OFプロトコルでのOFスイッチ2宛の制御メッセージ(例えば、パケットアウト)を拡張した拡張メッセージの一例である。
ただし、送出要求メッセージのメッセージ本体には、送出するLLDPパケットのイメージに対応する識別子と、送信元ポート情報と、が含められ、LLDPパケットのイメージ全体は含められない。OFヘッダには、「送出要求」であることを表示するメッセージタイプが設定されてよい。
図8の例では、OFC3は、LLDPアプリケーション31からの要求に応じて、識別子#1のLLDPパケットをポート#1から送出することを要求する送出要求メッセージを、OFスイッチ#1宛に送信する。
OFスイッチ#1は、当該送出要求メッセージを受信すると、パケットDB211を参照して、識別子#1に対応するLLDPパケットを読み出して、ポート#1から送出する(処理P30)。
図8の例において、OFスイッチ#1のポート#1は、OFスイッチ#5のポート#2と接続されているので、OFスイッチ#1のポート#1から送出されたLLDPパケットは、OFスイッチ#5のポート#2で受信される。
OFスイッチ#5では、イーサネットタイプ値にLLDPを示す「88-CC」が設定されたパケットはOFC3宛に送信するフローエントリが登録されている。しかし、この段階では、例えば図10に示すように、OFスイッチ#5のパケットDB211において、受信したLLDPパケットの内容と同じ内容のLLDPパケットのエントリは未登録である。
そのため、OFスイッチ#5は、受信したLLDPパケットを図3(B)に例示したパケットインを用いてOFC3宛に送信してよい(処理P40)。当該パケットインには、LLDPパケットのイメージと、当該LLDPパケットを受信したOFスイッチ#5の識別情報及び受信ポート情報と、が含められてよい。
LLDPアプリケーション31は、OFスイッチ#5が受信したLLDPパケットの受信に応じて、例えば図11に示すように、当該LLDPパケット#1のイメージと、対応する識別子#1と、を、OFスイッチ#5に通知してよい(処理P50)。これにより、OFスイッチ#5のパケットDB211に、LLDPパケット#1のイメージと識別子#1との組が登録される。
当該通知には、図7と同様、図12に例示するように、登録要求メッセージを用いてよい。登録要求メッセージは、OFプロトコルでのOFスイッチ2宛の制御メッセージを拡張した拡張メッセージの一例である。登録要求メッセージのメッセージ本体には、LLDPパケットのイメージと、対応する識別子と、が設定されてよい。また、OFヘッダに、「登録要求」であることを表示するメッセージタイプが設定されてよい。
なお、処理P50における登録要求メッセージの送信は、OFスイッチ#5において以降も同じ内容のLLDPパケットが受信される可能性があるとの判断に応じて実施されてよい。
その後、LLDPアプリケーション31は、図8に例示したように、改めてOFスイッチ#1に対して識別子#1に対応するLLDPパケットの送出を送出要求メッセージによって要求してよい。この段階では、OFスイッチ#5のパケットDB211に、OFスイッチ#1から受信したLLDPパケットと同じイメージのパケットが登録されている。
したがって、図13に例示するように、OFスイッチ#5は、受信LLDPパケット#1に対応する識別子#1を用いて、パケット受信を、OFC3のLLDPアプリケーション31に通知する(処理P60)。
当該パケット受信の通知には、図14に例示する受信通知メッセージを用いてよい。受信通知メッセージは、OFプロトコルでのOFC3宛の制御メッセージ(例えば、パケットイン)を拡張した拡張メッセージの一例である。
ただし、受信通知メッセージのメッセージ本体には、受信したLLDPパケット#1のイメージに対応する識別子#1と、受信ポート情報と、が含められ、受信したLLDPパケット#1のイメージ全体は含められない。OFヘッダには、「受信通知」であることを表示するメッセージタイプが設定されてよい。
以上のようにして、OFC3と各OFスイッチ2との間で送受信される制御メッセージに、LLDPパケットのイメージに対応する識別子を用いることで、制御ネットワーク4の通信量を低減でき、制御ネットワーク4の負荷を軽減することができる。
したがって、制御ネットワーク4に輻輳が発生すること、別言すると、OFC3とOFスイッチ2との間のCP通信に輻輳が発生することを抑制できる。
次に、上述した動作例を実施可能なOFC3及びOFスイッチ2の構成例及び動作例について説明する。
(OFC3の構成例)
図15は、OFC3の機能的な構成例を示すブロック図である。
図15に例示するように、OFC3は、例示的に、既述の送出パケットDB311に加えて、ポートデータベース(DB)312と、LLDP処理部313と、OFプロトコル処理部314と、を備えてよい。
なお、図15に示す構成例は、OFC3において動作するプロトコルアプリケーション31がLLDPアプリケーションである場合の構成例である。OFC3において動作するプロトコルアプリケーション31に応じたプロトコル処理部313が、OFC3において動作すると捉えてよい。
ポートDB312は、例示的に、OFC3が制御の対象とする全OFスイッチ2のポート情報を記憶する。ポートDB312に記憶されたポート情報のいずれかが、既述のように、OFスイッチ2宛の制御メッセージのメッセージ本体に設定されてよい。
LLDP処理部313は、例示的に、LLDPアプリケーション31の実行に応じて具現されて、送出パケットDB311の生成や、送出パケットDB311及びポートDB312の情報に基づくLLDPのメッセージ処理を行なう。
例えば、LLDPのメッセージ送信処理には、LLDPパケットや、拡張メッセージを含む制御メッセージの生成及び送信に関わる処理や、LLDPパケットのイメージに対応する識別子の生成及び割当に関わる処理が含まれてよい。一方、LLDPのメッセージ受信処理には、OFスイッチ2がOFC3宛に送信した、拡張メッセージを含む制御メッセージの受信に関わる処理が含まれてよい。
OFプロトコル処理部314は、OFスイッチ2との間でOFプロトコルに基づく送受信処理を実施する。例えば、OFプロトコルの送信処理には、LLDP処理部313で生成されたメッセージをOFプロトコルでのメッセージにカプセル化してOFスイッチ2宛に送信する処理が含まれてよい。
一方、OFプロトコルの受信処理には、OFスイッチ2から受信したOFプロトコルでのメッセージをLLDPのメッセージにデカプセル化してLLDP処理部313に与える処理が含まれてよい。
なお、LLDP処理部313及びOFプロトコル処理部314は、通信処理部の一例である。通信処理部は、既述のように、OFスイッチ2間のDPにおけるLLDPパケットのフローを制御するためのCP通信に、送出パケットDB311においてフロー制御対象であるLLDPパケットに対応する識別子を用いる。
図16は、OFC3のハードウェア構成例を示すブロック図である。
図16に示すように、OFC3は、例示的に、CPU(Central Processing Unit)32、メモリ33、記憶装置34、及び、ネットワークインタフェース(NW−IF)35を備えてよい。NW−IF35は、OFC3に複数備えられてよい。CPU32、メモリ33、記憶装置34、及び、NW−IF35は、例示的に、通信バス36によって互いに通信可能に接続されてよい。
CPU32は、演算能力を備えたプロセッサの一例である。演算能力を備えたプロセッサは、「コンピュータ」と称してもよい。また、「プロセッサ」は、ハードウェア的な「プロセッサ回路」あるいは「プロセッサデバイス」と称してもよい。CPU32は、メモリ33や記憶装置34に記憶されたプログラムやデータを適宜に読み出して動作することで、OFC3としての機能や動作を実現する。
「プログラム」は、「アプリケーション」あるいは「ソフトウェア」と称してもよい。したがって、既述のLLDPアプリケーション31は、「プログラム」の一例であると捉えてよい。「データ」には、「プログラム」の実行に用いられるデータや「プログラム」の実行によって生成されたデータが含まれてよい。
プログラムやデータは、例えばフレキシブルディスク、CD−ROM,CD−R,CD−RW,MO,DVD、ブルーレイディスク、USBメモリ等の、コンピュータ読取可能な記憶媒体に記録された形態で提供されてよい。
コンピュータは、記憶媒体から制御プログラムやデータを読み取って例えばメモリ33等の記憶装置に展開して用いる。また、プログラムやデータは、サーバ等から通信回線を介してコンピュータに提供(ダウンロード)されてもよい。
図15に例示したLLDP処理部313及びOFプロトコル処理部314は、例示的に、OFC3としての機能や動作を実現するプログラム(LLDPアプリケーション31が含まれてよい。)やデータをCPU32が読み取って実行、動作することで具現される。なお、「プログラム」は、コンピュータのオペレーティングシステム(OS)の一部であってもよい。
メモリ33は、例示的に、CPU32のワークメモリであってよく、記憶装置34に記憶されたプログラムやデータが一時的に記憶、展開されて、CPU32の動作に用いられる。メモリ33は、例示的に、ランダムアクセスメモリ(RAM)等の半導体メモリであってよい。
記憶装置34は、例示的に、OFC3としての機能や動作を実現するプログラムやデータを記憶する。記憶装置34には、例示的に、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)等が適用可能である。記憶装置34に、図15に例示した送出パケットDB311及びポートDB312が記憶されてよい。
なお、メモリ33と記憶装置34とを併せて「記憶部」と称してもよい。
NW−IF35は、例示的に、制御ネットワーク4との接続インタフェースを提供する。NW−IF35を通じて、既述の拡張メッセージを含む制御メッセージの送信又は受信が行なわれてよい。
(OFC3の動作例)
図17及び図18は、OFC3の動作例を示すフローチャートである。図17に例示するように、OFC3は、LLDP処理部313において、ポートDB312を参照して、LLDPパケットの送信元となるOFスイッチ2のポート情報を取得する(処理P111)。
LLDP処理部313は、取得したポート情報によって識別されるポートから送出するLLDPパケットを生成する(処理P112)。LLDPパケットの生成に応じて、LLDP処理部313は、生成したLLDPパケットのイメージに対して識別子を生成し割り当てる(処理P113)。
そして、LLDP処理部313は、図5の左上に例示したように、生成したLLDPパケットのイメージ毎に、送信元OFスイッチ2の情報と、送信元ポートの情報と、割り当てた識別子と、を、送出パケットDB311に登録する(処理P114)。
併せて、LLDP処理部313は、図6及び図7にて説明した登録要求メッセージを生成してLLDPパケットの送信元OFスイッチ2宛に送信する。これにより、送信元OFスイッチ2のパケットDB211に、LLDPパケットのイメージと、対応する識別子と、が登録される。
以後、LLDP処理部313は、各OFスイッチ2宛に、図8及び図9にて説明したように、識別子と送信元ポート情報とを含む送出要求メッセージを送信してよい(処理P115)。当該送出要求メッセージの送信は、周期的に行なってよい。
送出要求メッセージの送信に応じて、LLDP処理部313は、図18に例示するフローチャートを実行してよい。例えば、LLDP処理部313は、いずれかのOFスイッチ2が送信したパケットインを受信したか否かをチェックしてよい(処理P121)。
パケットインを受信すれば(処理P121でYES)、LLDP処理部313は、受信したパケットインに含まれるLLDPパケットを受信処理してプロトコル種別やメッセージタイプを判別してよい。また、LLDP処理部313は、受信したパケットインの送信元OFスイッチ2のポートステータスを更新してよい(処理P122)。
例えば、LLDPを実行することにより、LLDPアプリケーション31は、OFスイッチ2のそれぞれのポートに対向する、別のOFスイッチ2の識別子やポート番号の情報等を取得できる。LLDPパケットを受信することにより、LLDPアプリケーション31は、これらの情報を獲得できるので、ポートDB312に、獲得した情報を書き込むことで、「ポートステータス」の更新を行なう。
そして、LLDP処理部313は、判別したプロトコル種別やメッセージタイプを基に、以後、パケットインの送信元OFスイッチ2にて同じ内容のLLDPパケットが繰り返し受信される可能性があるか否かを判断してよい(処理P123)。
処理P123で「NO」と判断すれば、LLDP処理部313は、実行する処理を処理P121に戻してよい。処理P123で「YES」と判断すれば、LLDP処理部313は、受信したLLDPパケットのイメージに識別子を割り当てて、送出パケットDB311に登録してよい(処理P124)。
併せて、LLDP処理部313は、図11及び図12にて説明したように、登録要求メッセージを、パケットインの送信元OFスイッチ2宛に送信してよい。これにより、当該OFスイッチ2のパケットDB211に、LLDPパケットのイメージと識別子とが登録される(処理P124)。処理P124の後、LLDP処理部313は、実行する処理を処理P121に戻してよい。
一方、処理P121において、パケットインが受信されていなければ(NOの場合)、LLDP処理部313は、いずれかのOFスイッチ2が送信した受信通知メッセージ(図13及び図14参照)を受信したか否かをチェックしてよい(処理P125)。
受信通知メッセージを受信していなければ(処理P125でNO)、LLDP処理部313は、実行する処理を処理P121に戻してよい。
受信通知メッセージを受信していれば(処理P125でYES)、LLDP処理部313は、送出パケットDB311において、受信通知メッセージに含まれる識別子に対応するLLDPパケットのイメージを検索してよい(処理P126)。
送出パケットDB311の検索により、受信通知メッセージに含まれる識別子に対応したLLDPパケットのイメージが存在すれば(処理P127でYES)、LLDP処理部313は、当該LLDPパケットのイメージを読み出して受信処理してよい(処理P128)。併せて、LLDP処理部313は、受信通知メッセージの送信元OFスイッチ2のポートステータスを更新してよい(処理P128)。
なお、送出パケットDB311において、受信通知メッセージに含まれる識別子に対応したLLDPパケットのイメージが見つからなかった場合(処理P127でNO)、LLDP処理部313は、実行する処理を処理P121に戻してよい。
以上のように、OFC3は、OFスイッチ2間のDPにおけるLLDPパケットのフローを制御するためのCP通信に、送出パケットDB311においてフロー制御対象のLLDPパケットに対応する識別子を用いる。
したがって、OFC3とOFスイッチ2との間のCPの通信量を削減でき、制御ネットワーク4の負荷を軽減して輻輳の発生を抑制することができる。
(OFスイッチ2の構成例)
図19は、既述のOFスイッチ2の機能的な構成例を示すブロック図である。図19に示すように、OFスイッチ2は、例示的に、既述のパケットDB211に加えて、OFプロトコル処理部212、DB書き込み部213、DB参照部214、フローテーブル215、テーブル検査部216、及び、アクション処理部217を備えてよい。
OFプロトコル処理部212は、例示的に、OFC3との間でOFプロトコルに基づく送受信処理を実施する。例えば、OFプロトコルの送信処理には、既述の拡張メッセージを含む制御メッセージの送信処理が含まれてよい。一方、OFプロトコルの受信処理には、OFC3が送信した、既述の拡張メッセージを含む制御メッセージの受信処理が含まれてよい。
DB書き込み部213は、例示的に、OFC3からの登録要求メッセージに含まれる、LLDPパケットのイメージと識別子とをパケットDB211に書き込んで登録する。
DB参照部214は、例示的に、OFC3からの送出要求メッセージに含まれる識別子を基に、パケットDB211を参照して、識別子に対応するLLDPパケットのイメージを読み出し、読み出したイメージをOFプロトコル処理部212に与える。なお、DB参照部214は、識別子を基にパケットDB211を検索する「DB検索部214」と言い換えてもよい。
OFプロトコル処理部212は、DB参照部214からのLLDPパケットのイメージをアクション処理部217に転送し、アクション処理部217からDP伝送路へLLDPパケットを送出させる。
フローテーブル215は、例示的に、DP伝送路から受信したパケットの宛先に応じた転送先(例えば、出力ポート)を示す情報等を含むフローエントリを記憶する。フローエントリには、LLDPパケットをDP伝送路で受信したら、当該パケットをOFC3宛に送信することを規定したフローエントリが含まれてよい。
テーブル検査部216は、DP伝送路から受信したパケットを、フローテーブル215のフローエントリに従って、宛先に応じた出力ポートに転送する。
アクション処理部217は、テーブル検査部216から転送された受信パケットのフロー(例えば、ヘッダフィールド)に対して規定される「アクション」に応じた処理を行なう。「アクション」には、パケットの転送(フォワーディング)や破棄(ドロップ)等を指定できる。
なお、OFプロトコル処理部212は、OFC3から、識別子を含む制御メッセージを受信する第1受信部の一例である。また、アクション処理部217は、パケットDB211において、OFC3から受信された制御メッセージに含まれる識別子に対応するメッセージを、DPへ送信する第1送信部の一例である。
更に、テーブル検査部216は、他のOFスイッチ2がDPへ送信したメッセージを受信する第2受信部の一例である。また、OFプロトコル処理部212は、パケットDB211において、第2受信部で受信したメッセージに対応する識別子を、OFC3へ送信する第2送信部の一例でもある。
図20は、OFスイッチ2のハードウェア構成例を示すブロック図である。
図20に示すように、OFスイッチ2は、例示的に、CPU(Central Processing Unit)22、メモリ23、記憶装置24、及び、NW−IF25を備えてよい。NW−IF25は、OFスイッチ2に複数備えられてよい。
CPU22は、OFC3のCPU32と同様に、演算能力を備えたプロセッサの一例である。CPU22は、メモリ23に記憶されたプログラムやデータを適宜に読み出して動作することで、OFスイッチ2としての機能や動作を実現する。
「プログラム」は、「アプリケーション」あるいは「ソフトウェア」と称してもよい。「データ」には、「プログラム」の実行に用いられるデータや「プログラム」の実行によって生成されたデータが含まれてよい。
プログラムやデータは、既述のとおり、コンピュータ読取可能な記憶媒体に記録された形態で提供されてよい。コンピュータは、記憶媒体からプログラムやデータを読み取って例えばメモリ23に展開して用いる。また、プログラムやデータは、サーバ等から通信回線を介してコンピュータに提供(ダウンロード)されてもよい。
図19に例示した各部212〜214、216、及び、217は、例示的に、OFスイッチ2としての機能や動作を実現するプログラムやデータをCPU22が読み取って実行、動作することで具現される。
別言すると、OFスイッチ2のCPU22は、他のOFスイッチ2との間のDP通信と、OFC3との間のCP通信と、を処理する通信処理部の一例である。OFC3は、CP通信によって、OFスイッチ2間のDPにおけるLLDPパケットのフローを制御できる。
通信処理部は、例示的に、図19に示したOFプロトコル処理部212、テーブル検査部216、及び、アクション処理部217を含んでよい。ただし、通信処理部には、図19に例示したDB書き込み部213、DB参照部214、及び、フローテーブル215が含まれてもよい。
通信処理部は、OFスイッチ2間のDP通信には、パケットDB211におけるLLDPパケットのいずれかを用い、OFC3との間のCP通信には、パケットDB211においてフロー制御対象であるLLDPパケットに対応する識別子を用いる。
これにより、OFスイッチ2間のDP通信には、標準仕様のLLDPパケットを用いながら、OFスイッチ2とOFC3との間のCPの通信量を削減できる。別言すると、OFスイッチ2間のDP通信に対してLLDP機能を確実に提供しつつ、CPの通信量は削減できる。
メモリ23は、例示的に、CPU22のワークメモリであってよく、プログラムやデータが一時的に記憶、展開されて、CPU22の動作に用いられる。メモリ23は、例示的に、RAM等の半導体メモリであってよい。
記憶装置24は、例示的に、OFスイッチ2としての機能や動作を実現するプログラムやデータを記憶する。記憶装置24には、例示的に、HDDやSSD等が適用可能である。記憶装置24に、図19に例示したパケットDB211及びフローテーブル215が記憶されてよい。
なお、メモリ23と記憶装置24とを併せて「記憶部」と称してもよい。
NW−IF25は、例示的に、制御ネットワーク4との接続インタフェースを提供する。NW−IF25を通じて、既述の拡張メッセージを含む制御メッセージの送信又は受信が行なわれてよい。また、NW−IF25は、他のOFスイッチ2との接続インタフェースを提供してよい。NW−IF25を通じて、他のOFスイッチ2との間でDP伝送路を通じたDPの通信が行なわれてよい。
(OFスイッチ2の動作例)
図21及び図22は、OFスイッチ2の動作例を示すフローチャートである。図21に例示するように、OFスイッチ2は、例えばOFプロトコル処理部212において、OFプロトコルのメッセージを受信したか否かをチェックする(処理P211)。
OFプロトコルのメッセージを受信していなければ(処理P211でNO)、OFプロトコル処理部212は、OFプロトコルのメッセージの受信チェックを継続してよい。
OFプロトコルのメッセージを受信すれば(処理P211でYES)、OFプロトコル処理部212は、受信メッセージのメッセージタイプを参照してOFプロトコルの標準的な制御メッセージであるか否かをチェックする(処理P212)。
受信したメッセージがOFプロトコルの標準的な制御メッセージであれば(処理P212でYES)、OFプロトコル処理部212は、標準のOFプロトコルの仕様に従って、受信メッセージを処理してよい(処理P213)。
例えば、受信したメッセージがパケットアウトであれば、OFプロトコル処理部212は、パケットアウトで指定されたポートからLLDPパケットを送出する処理を行なってよい。
一方、受信メッセージがOFプロトコルの標準的な制御メッセージでなければ(処理P212でNO)、OFプロトコル処理部212は、受信メッセージのメッセージタイプを基に、登録要求メッセージであるか否かをチェックしてよい(処理P214)。
受信メッセージが登録要求メッセージであれば(処理P214でYES)、OFプロトコル処理部212は、登録要求メッセージに含まれる、LLDPパケットのイメージと、対応する識別子と、を、パケットDB211に登録してよい(処理P215)。当該登録は、例示的に、DB書き込み部213によって行なわれてよい。
一方、受信メッセージが登録要求メッセージでなければ(処理P214でNO)、OFプロトコル処理部212は、受信メッセージが送出要求メッセージであるか否かを更にチェックしてよい(処理P216)。
受信メッセージが送出要求メッセージであれば(処理P216でYES)、OFプロトコル処理部212は、送出要求メッセージに含まれる識別子に対応するLLDPパケットのイメージをパケットDB211からDB参照部214を介して読み出す。そして、OFプロトコル処理部212は、読み出したLLDPパケットのイメージを、送出要求メッセージに含まれる送信元ポート情報に対応する出力ポートから送出する(処理P217)。
このように、OFスイッチ2は、OFC3から識別子を指定してDP伝送路にLLDPパケットを送出する指示を受けると、パケットDB211において当該識別子に対応するLLDPパケットをDP伝送路に送出する。
なお、受信メッセージが登録要求メッセージ及び送出要求メッセージのいずれでもない場合(処理P214及びP216でNO)、OFプロトコル処理部212は、実行する処理を処理P211に戻してよい。
以上の処理とは別に、OFスイッチ2は、図22に例示するように、例えばテーブル検査部216において、DP伝送路からパケットが受信されるか否かをチェックしてよい(処理P221)。
伝送路からパケットが受信されない場合(処理P221でNO)、テーブル検査部216は、パケット受信有無の監視を継続してよい。伝送路からパケットが受信されれば(処理P221でYES)、テーブル検査部216は、フローテーブル215をチェックして(処理P222)、受信パケットがOFC3宛に送信すべきパケットであるか否かをチェックしてよい(処理P223)。
受信パケットがOFC3宛に送信すべきパケットでなければ(処理P223でNO)、テーブル検査部216は、アクション処理部217と協働して、フローテーブル215において条件にマッチした「アクション」に従った処理を実行してよい(処理P224)。
一方、受信パケットがOFC3宛に送信すべきパケットであれば(処理P223でYES)、テーブル検査部216は、例示的に、受信パケットをアクション処理部217経由でOFプロトコル処理部212に転送してよい。
OFプロトコル処理部212は、受信パケットの転送を受けると、例えばDB参照部214によってパケットDB211を検索して、受信パケットの内容がパケットDB211に登録済みであるか否かをチェックしてよい(処理P225及びP226)。
登録済みであれば(処理P226でYES)、OFプロトコル処理部212は、パケットDB211から、受信パケットの内容に対応する識別子を読み出し、当該識別子を用いてパケット受信をOFC3宛に通知してよい(処理P228)。当該通知は、既述のとおり、識別子と受信ポート情報とを含む受信通知メッセージ(図14参照)によって行なってよい。
このように、OFスイッチ2は、フローテーブル215のフローエントリを基に、受信パケットがOFC3に送るべきパケットであると判断すると、受信パケットとパケットDB211のエントリとを比較して一致するエントリの識別子をOFC3宛に送信する。
一方、受信パケットの内容がパケットDB211に未登録であれば(処理P226でNO)、OFプロトコル処理部212は、標準のOFプロトコルでのパケットインによって受信パケットをOFC3宛に送信してよい(処理P227)。
以上のように、OFスイッチ2は、他のOFスイッチ2とのDP通信には、パケットDB211のLLDPパケットを用い、OFC3との間のCP通信には、パケットDB211においてフロー制御対象のLLDPパケットに対応する識別子を用いる。
したがって、OFスイッチ2間のDP通信には標準仕様のLLDPパケットを用いながら、OFスイッチ2とOFC3との間のCPの通信量を削減できる。よって、OFスイッチ2間のDP通信に対してLLDP機能を確実に提供しつつ、制御ネットワーク4の負荷は軽減して輻輳の発生を抑制することができる。
(第2実施形態)
図23は、第2実施形態に係る信システムの構成例を示すブロック図である。図23に例示する通信システム1は、図1に例示した第1実施形態の通信システム1に比して、OFC3と各OFスイッチ2−iとの間に、プロトコル変換装置5−iが備えられている点が異なる。なお、プロトコル変換装置5−iを区別する必要が無い場合は、「プロトコル変換装置5」と略称することがある。
プロトコル変換装置5−iのそれぞれは、対応するOFスイッチ2−iと通信可能に接続され、また、制御ネットワーク4を介してOFC3と通信可能に接続されている。
プロトコル変換装置5は、第1実施形態にて説明した、識別子を用いた登録要求や送出要求、受信通知等の拡張メッセージと、パケットアウトやパケットイン等のOFプロトコルにおける標準の制御メッセージと、の間のプロトコル変換を行なう。プロトコル変換装置5は、OFC3と複数のOFスイッチ2との間のCP通信を中継する中継装置の一例である、と捉えてもよい。
例えば、プロトコル変換装置5は、それぞれ、OFC3との間で、第1実施形態にて説明した、識別子を用いた登録要求や送出要求、受信通知等の拡張メッセージの送信又は受信を行なう。別言すると、プロトコル変換装置5は、第1実施形態においてOFスイッチ2が実施していた拡張メッセージの送信又は受信を、OFスイッチ2に代わって行なう。
そのため、プロトコル変換装置5は、図24に例示するように、第1実施形態のOFスイッチ2に備えられていた各部211〜214(図19参照)にそれぞれ相当する各部511〜514を備えてよい。
なお、図24に例示するOFプロトコル処理部515は、OFプロトコル処理部512が拡張メッセージの処理を担当するのに対し、標準のOFプロトコルでの制御メッセージの処理を担当する。
したがって、OFプロトコル処理部512は、拡張OFプロトコル処理部512と称してもよく、OFプロトコル処理部515は、標準OFプロトコル処理部515と称してもよい。
図24において、OFプロトコル処理部512及び515は、通信処理部の一例である。なお、通信処理部には、DB書き込み部513及びDB参照部514が含まれてもよい。
通信処理部は、OFC3との間のCP通信には、パケットDB511においてフロー制御対象であるLLDPパケットに対応する識別子を用いる。その一方で、通信処理部は、OFスイッチ2のいずれかとの間のCP通信には、パケットDB511における識別子のいずれかに対応するLLDPパケットを用いる。
プロトコル変換装置5−iの追加によって、第2実施形態のOFスイッチ2は、拡張メッセージの処理をサポートしなくてよいため、図25に例示するように、図19に例示した各部211〜214は備えられなくてよい。
別言すると、第2実施形態のOFスイッチ2は、第1実施形態で説明した拡張メッセージを、OFプロトコルでの標準的な制御メッセージに加えてサポートするための機能的な拡張が不要である。
第2実施形態のOFスイッチ2のハードウェア構成例は、第1実施形態の図20に例示した構成例と同様でよい。また、プロトコル変換装置5−iのハードウェア構成例は、例えば図16に示したOFC3の構成例と同様でよい。例えば、プロトコル変換装置5−iのメモリや記憶装置に、パケットDB511が記憶されてよい。更に、プロトコル変換装置5−iのCPUによって、上述した通信処理部が具現されてよい。
(動作例)
以下、第2実施形態の動作例について説明する。なお、OFC3では、第1実施形態と同様に、プロトコルアプリケーションの一例としてLLDPアプリケーション31が実行されていると仮定する。
第1実施形態と同様に、LLDPアプリケーション31は、OFC3が制御の対象とする全てのOFスイッチ2に対して、イーサネットタイプ値にLLDPを示す「88-CC」が設定されたパケットはOFC3宛に送信することを指定したフローエントリを設定する。
次に、LLDPアプリケーション31は、各OFスイッチ2の各ポートから送出させるプロトコルメッセージの一例としてLLDPパケットを生成する。LLDPアプリケーション31は、第1実施形態(例えば図5)と同様に、生成したLLDPパケットのイメージ毎に、送信元OFスイッチ2の情報と、送信元ポートの情報と、識別子と、を登録した送出パケットDB311を生成してよい。
次に、LLDPアプリケーション31は、OFC3を介して各LLDPパケットの送信元OFスイッチ2−iに対応するプロトコル変換装置5−iに対して、LLDPパケットのイメージを、対応する識別子と共に通知してよい。当該通知には、図7に例示した、拡張メッセージの一例である登録要求メッセージを用いてよい。
プロトコル変換装置5−iは、登録要求メッセージの受信に応じて、メッセージ本体に設定されているLLDPパケットのイメージと識別子とを、内部のパケットDB511に登録してよい。
なお、登録要求メッセージは、LLDPパケットの送信元OFスイッチ2−iに対応するプロトコル変換装置5−iのそれぞれに対して送信されてよい。登録要求メッセージを受信したプロトコル変換装置5−iのそれぞれにおいて、パケットDB511が生成されてよい。
プロトコル変換装置5−iのパケットDB511に対する登録が済むと、LLDPアプリケーション31は、送出パケットDB311を基に、送信元OFスイッチ2−iに対応するプロトコル変換装置5−i宛に、送出要求メッセージ(図9参照)を送信してよい。
第1実施形態と同様に、送出要求メッセージのメッセージ本体には、送出するLLDPパケットのイメージに対応する識別子と、送信元ポート情報と、が含められ、LLDPパケットのイメージ全体は含められない。
プロトコル変換装置5−iは、送出要求メッセージの受信に応じて、識別子を基にパケットDB511を検索して対応するLLDPパケットのイメージを読み出す。そして、プロトコル変換装置5−iは、読み出したイメージをパケットアウトに含めて、対応するOFスイッチ2−iに送信する。
別言すると、プロトコル変換装置5−iは、OFC3から受信した送出要求メッセージを、例えば図3(A)に例示した標準仕様のパケットアウトに変換して、OFスイッチ2−iへ送信する。
OFスイッチ2−i(例えば、OFスイッチ#1)は、パケットアウトの受信に応じて、当該パケットアウトに含まれるLLDPパケットのイメージを指定のポート(例えば、ポート#1)から送出する。
図23の例において、OFスイッチ#1のポート#1は、OFスイッチ#5のポート#2と接続されているので、OFスイッチ#1のポート#1から送出されたLLDPパケットは、OFスイッチ#5のポート#2で受信される。
OFスイッチ#5では、イーサネットタイプ値にLLDPを示す「88-CC」が設定されたパケットはOFC3宛に送信するフローエントリが登録されているので、標準のOFプロトコルでのパケットインを用いて、パケット受信をプロトコル変換装置#5に通知する。
例えば、当該パケットインには、LLDPパケットのイメージと、当該LLDPパケットを受信したOFスイッチ#5の識別情報及び受信ポート情報と、が含められてよい。
プロトコル変換装置#5では、OFスイッチ#5からパケットインによって受信したLLDPパケットのイメージが、この段階では、パケットDB511に未登録である。そのため、プロトコル変換装置#5は、受信LLDPパケットのイメージを、例えば図3(B)に例示した標準のOFプロトコルでのパケットインにてOFC3宛に送信してよい。
OFC3では、プロトコル変換装置#5からパケットインにて受信したLLDPパケットのイメージを、当該LLDPパケットを受信したOFスイッチ#5の識別情報と受信ポート情報と共に、LLDPアプリケーション31に送る。
LLDPアプリケーション31では、OFスイッチ#5が受信したLLDPパケットのイメージを受信すると、プロトコル変換装置#5のパケットDB511に、当該LLDPパケットのイメージと、対応する識別子と、を、プロトコル変換装置#5に通知してよい。当該通知には、図12に例示した登録要求メッセージを用いてよい。登録要求メッセージのメッセージ本体には、LLDPパケットのイメージと、対応する識別子と、が設定されてよい。
なお、プロトコル変換装置#5への登録要求メッセージの送信は、OFスイッチ#5において以降も同じ内容のLLDPパケットが受信される可能性があるとの判断に応じて実施されてよい。
その後、LLDPアプリケーション31は、改めてOFスイッチ#1に対して識別子#1に対応するLLDPパケットの送出を要求するために、プロトコル変換装置#1に送出要求メッセージを送信してよい。この段階では、プロトコル変換装置#5のパケットDB511に、OFスイッチ#1から受信したLLDPパケットと同じイメージのパケットが登録されている。
したがって、プロトコル変換装置#5は、OFスイッチ#5がパケットインにてプロトコル変換装置#5に送信した受信LLDPパケットに対応する識別子を用いて、パケット受信を、OFC3のLLDPアプリケーション31に通知する。
当該パケット受信の通知には、図14に例示した受信通知メッセージを用いてよい。受信通知メッセージのメッセージ本体には、受信したLLDPパケットのイメージに対応する識別子と、受信ポート情報と、が含められ、受信したLLDPパケットのイメージ全体は含められない。
以上のようにして、拡張メッセージの処理をサポートしないOFスイッチ2に対しても、プロトコル変換装置5−iを追加的に備えることで、制御ネットワーク4の負荷を低減できる。
別言すると、通信システム1にプロトコル変換装置5−iを追加すれば、通信システム1に多数存在するOFスイッチ2のそれぞれを機能的に拡張したり改変したりしなくても、第1実施形態と同様の作用効果を奏することができる。したがって、第1実施形態で述べた、識別子を用いた制御メッセージ処理の既存通信システム1への導入が容易になる。
1 通信システム
2−1〜2−N オープンフロー(OF)スイッチ
211 パケットDB
212 OFプロトコル処理部
213 DB書き込み部
214 DB参照部(DB検索部)
215 フローテーブル
216 テーブル検査部
217 アクション処理部
3 オープンフローコントローラ(OFC)
31 プロトコルアプリケーション(LLDPアプリケーション)
311 送出パケットDB
312 ポートDB
313 LLDP処理部
314 OFプロトコル処理部
4 制御ネットワーク
41 スイッチ
5−1〜5−N プロトコル変換装置(中継装置)
511 パケットDB
512 OFプロトコル処理部(拡張OFプロトコル処理部)
513 DB書き込み部
514 DB参照部(DB検索部)
515 OFプロトコル処理部(標準OFプロトコル処理部)

Claims (6)

  1. データプレーンの通信で用いる或る通信プロトコルのプロトコルメッセージと、前記プロトコルメッセージの識別子と、の組を複数記憶する記憶部と、
    前記データプレーンの通信には、前記記憶部における前記プロトコルメッセージのいずれかを用い、前記データプレーンにおける前記プロトコルメッセージのフローを制御するコントローラとの間のコントロールプレーンの通信には、前記記憶部において前記フローの制御対象である前記プロトコルメッセージに対応する前記識別子を用いる通信処理部と、
    を備えた、フロースイッチ。
  2. 前記通信処理部は、
    前記コントローラから、複数の前記識別子のうちのいずれかを含む前記コントロールプレーンの制御メッセージを受信する第1受信部と、
    前記記憶部において、前記制御メッセージに含まれる前記識別子に対応する前記プロトコルメッセージを、前記データプレーンへ送信する第1送信部と、を備えた、請求項1に記載のフロースイッチ。
  3. 前記通信処理部は、
    他のフロースイッチが前記データプレーンへ送信した第2のプロトコルメッセージを受信する第2受信部と、
    前記記憶部に前記第2受信部で受信した前記第2のプロトコルメッセージが記憶されている場合に、当該第2のプロトコルメッセージに対応する前記識別子を、前記コントローラへ前記コントロールプレーンにて送信する第2送信部と、を備えた請求項1又は2に記載のフロースイッチ。
  4. 前記通信プロトコルは、リンクレイヤディスカバリプロトコルであり、前記コントロールプレーンの通信は、オープンフロープロトコルに基づく通信である、請求項1〜3のいずれか1項に記載のフロースイッチ。
  5. 複数のフロースイッチ間におけるデータプレーンの通信で用いる或る通信プロトコルのプロトコルメッセージと、前記プロトコルメッセージの識別子と、の組を複数記憶する記憶部と、
    前記データプレーンにおける前記プロトコルメッセージのフローを制御するためのコントロールプレーンの通信に、前記記憶部において前記フローの制御対象である前記プロトコルメッセージに対応する前記識別子を用いる通信処理部と、
    を備えたコントローラ。
  6. コントローラと複数のフロースイッチとの間のコントロールプレーンの通信を中継する中継装置であって、
    前記フロースイッチ間におけるデータプレーンの通信で用いる或る通信プロトコルのプロトコルメッセージと、前記プロトコルメッセージの識別子と、の組を複数記憶する記憶部と、
    前記データプレーンにおける前記プロトコルメッセージのフローを制御する前記コントローラとの間のコントロールプレーンの通信には、前記記憶部において前記フローの制御対象である前記プロトコルメッセージに対応する前記識別子を用い、前記フロースイッチのいずれかとの間のコントロールプレーンの通信には、前記記憶部における複数の前記識別子のうちのいずれかに対応する前記プロトコルメッセージを用いる通信処理部と、
    を備えた、中継装置。
JP2015166021A 2015-08-25 2015-08-25 フロースイッチ、コントローラ、及び、中継装置 Expired - Fee Related JP6606919B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2015166021A JP6606919B2 (ja) 2015-08-25 2015-08-25 フロースイッチ、コントローラ、及び、中継装置
US15/205,398 US10237170B2 (en) 2015-08-25 2016-07-08 Flow switch, controller and relay apparatus
EP16178992.0A EP3136666B1 (en) 2015-08-25 2016-07-12 Flow switch, controller and relay apparatus
CN201610608327.6A CN106487722A (zh) 2015-08-25 2016-07-28 流交换器、控制器和中继设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015166021A JP6606919B2 (ja) 2015-08-25 2015-08-25 フロースイッチ、コントローラ、及び、中継装置

Publications (2)

Publication Number Publication Date
JP2017046113A JP2017046113A (ja) 2017-03-02
JP6606919B2 true JP6606919B2 (ja) 2019-11-20

Family

ID=56681940

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015166021A Expired - Fee Related JP6606919B2 (ja) 2015-08-25 2015-08-25 フロースイッチ、コントローラ、及び、中継装置

Country Status (4)

Country Link
US (1) US10237170B2 (ja)
EP (1) EP3136666B1 (ja)
JP (1) JP6606919B2 (ja)
CN (1) CN106487722A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018074418A (ja) * 2016-10-31 2018-05-10 ソニーセミコンダクタソリューションズ株式会社 通信装置、通信方法、プログラムおよび通信システム
US10880412B1 (en) * 2017-08-21 2020-12-29 Clearpath Robotics Inc. Systems and methods for communicating between a fleet of robots and a fleet manager
KR101877004B1 (ko) 2017-09-29 2018-07-10 주식회사 쏠리드 오픈플로우 기반의 분산 안테나 시스템
US11259233B2 (en) * 2019-02-15 2022-02-22 Qualcomm Incorporated Signaling port information of user equipment ports in a wireless communication system including a radio access network

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101674321A (zh) 2008-09-12 2010-03-17 华为技术有限公司 一种消息处理方法、装置和系统
CN102577275B (zh) * 2009-09-10 2016-05-04 日本电气株式会社 中继控制设备、中继控制系统、中继控制方法
JP5300076B2 (ja) 2009-10-07 2013-09-25 日本電気株式会社 コンピュータシステム、及びコンピュータシステムの監視方法
CN102714628B (zh) * 2010-01-05 2015-11-25 日本电气株式会社 通信系统、控制装置、处理规则设置方法和分组传输方法
CN102792645B (zh) * 2010-03-24 2016-02-03 日本电气株式会社 信息系统、控制设备以及管理虚拟网络的方法
JP5440712B2 (ja) * 2010-11-22 2014-03-12 日本電気株式会社 通信システム、通信装置、制御装置、パケットフローの転送経路の制御方法及びプログラム
JP5888338B2 (ja) 2010-12-27 2016-03-22 日本電気株式会社 通信システムおよび通信方法
EP2693708B1 (en) * 2011-03-29 2019-09-04 Nec Corporation Network system and method for acquiring vlan tag information
CN104205055B (zh) 2012-03-29 2019-02-01 瑞典爱立信有限公司 云计算系统和在云计算系统中实现演进分组核心(epc)的控制平面的方法
JP2014027443A (ja) 2012-07-26 2014-02-06 Nec Corp 制御装置、通信システム、通信方法及びプログラム

Also Published As

Publication number Publication date
EP3136666A1 (en) 2017-03-01
US20170063675A1 (en) 2017-03-02
EP3136666B1 (en) 2018-08-01
CN106487722A (zh) 2017-03-08
JP2017046113A (ja) 2017-03-02
US10237170B2 (en) 2019-03-19

Similar Documents

Publication Publication Date Title
CN110050447B (zh) 一种数据处理方法、网络接口卡及服务器
US9473414B2 (en) Method and system for supporting packet prioritization at a data network
EP3154227B1 (en) Packet transmission method, node, path management server and storage medium
JP5958164B2 (ja) 制御装置、方法及びプログラム、並びにシステム及び情報処理方法
JP5500270B2 (ja) プロファイル処理プログラム、データ中継装置およびプロファイル制御方法
US20140068045A1 (en) Network system and virtual node migration method
WO2011093288A1 (ja) ネットワークシステム、コントローラ、ネットワーク制御方法
WO2012111051A1 (en) Flow communication system
JP6606919B2 (ja) フロースイッチ、コントローラ、及び、中継装置
TWI542172B (zh) 路徑更換方法與系統及其控制器
US9036469B2 (en) Data communication in openflow networks
US20130091264A1 (en) Dynamic session migration between network security gateways
JP2015523747A (ja) コンピュータシステム、通信制御サーバ、通信制御方法およびプログラム
JP5904285B2 (ja) 通信システム、仮想ネットワーク管理装置、通信ノード、通信方法及びプログラム
JP6386485B2 (ja) 管理システム、管理方法及び管理プログラム
JP5880701B2 (ja) 通信システム、通信制御方法、通信中継システム、及び、通信中継制御方法
JP7047660B2 (ja) 通知装置および通知方法
JP2016178530A (ja) 通信システム、通信端末、通信方法、プログラム
WO2014030321A1 (ja) 情報処理装置
JP2017022579A (ja) 通信システム、通信ノード、および通信システムにおける代替処理方法
JP2016039467A (ja) パケット優先制御システムおよびその方法
US8923757B2 (en) Method, system and apparatus for service loss handling
JP2018061287A (ja) データ転送装置、データ転送方法および通信装置
JP2014039097A (ja) ネットワーク構成システム、ネットワーク構成装置、ネットワーク構成方法、及びネットワーク構成プログラム
JP2017152787A (ja) 通信装置および通信システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180514

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190416

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190614

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: 20190924

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191007

R150 Certificate of patent or registration of utility model

Ref document number: 6606919

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees