JP5884822B2 - フロー通信システム - Google Patents

フロー通信システム Download PDF

Info

Publication number
JP5884822B2
JP5884822B2 JP2013516875A JP2013516875A JP5884822B2 JP 5884822 B2 JP5884822 B2 JP 5884822B2 JP 2013516875 A JP2013516875 A JP 2013516875A JP 2013516875 A JP2013516875 A JP 2013516875A JP 5884822 B2 JP5884822 B2 JP 5884822B2
Authority
JP
Japan
Prior art keywords
packet
flow
entry
flow entry
node
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.)
Active
Application number
JP2013516875A
Other languages
English (en)
Other versions
JP2014506021A (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.)
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 JP2013516875A priority Critical patent/JP5884822B2/ja
Publication of JP2014506021A publication Critical patent/JP2014506021A/ja
Application granted granted Critical
Publication of JP5884822B2 publication Critical patent/JP5884822B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/645Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、フローテーブルを用いたフロー通信システムに関する。
非特許文献1(Nick McKeown et al., “OpenFlow: Enabling Innovation in Campus Networks”, ACM SIGCOMM Computer Communication Review, Vol. 38, No. 2, 2008)に、「オープンフロー(OpenFlow)」という技術が記載されている。一般的に、オープンフローでは、フロー単位で経路制御、障害回復、負荷分散、最適化が行われる。オープンフローでは、転送ノードとして機能するオープンフロースイッチ(OFS)と、そのオープンフロースイッチを制御するオープンフローコントローラ(OFC)が用いられる。
図1を参照して、オープンフローにおける一般的なパケット処理を説明する。オープンフロースイッチは、フローテーブルを有しており、そのフローテーブルに従ってパケット処理を行う。フローテーブル中の各フローエントリは、マッチ条件(Key)、アクション(Action)、統計情報(Stat)、タイムアウト値(Timeout)といったフィールドを有している。マッチ条件は、パケットヘッダを構成するフィールドの組み合わせで表され、受信パケットが当該フローエントリにマッチするか否かを判定するために用いられる。アクションは、マッチ条件にマッチするパケットに対して行われるパケット処理の内容(例:指定ポートへの出力)を示している。
オープンフロースイッチは、あるフローに属するパケットを受信すると、フローテーブルを参照し、当該受信パケットにマッチするマッチ条件を有するフローエントリを検索する。受信パケットにマッチするフローエントリは、以下「ヒットエントリ」と参照される。フローテーブルにヒットエントリが未だ設定されていない場合(miss)、オープンフロースイッチは、当該受信パケットをエントリ設定要求(第1パケット)としてオープンフローコントローラに送信する。
オープンフローコントローラは、オープンフロースイッチからエントリ設定要求(第1パケット)を受け取る。第1パケットの受信に応答して、オープンフローコントローラは、その第1パケットを処理するための新規フローエントリを作成し、その新規フローエントリをオープンフロースイッチのフローテーブルに設定する。具体的には、オープンフローコントローラは、新規フローエントリをフローテーブルに追加するようオープンフロースイッチに指示し、オープンフロースイッチは、その指示に従って新規フローエントリをフローテーブルに追加する。
その後、オープンフローコントローラは、第1パケットをオープンフロースイッチに返送する。オープンフロースイッチは、その第1パケットを受信パケットとして再度受け取る。このとき、第1パケットにマッチするヒットエントリが、フローテーブルに存在している(hit)。この場合、オープンフロースイッチは、当該ヒットエントリのアクションで指定されている処理を、受信パケットに対して実行する。それ以降、第1パケットと同じフローに属するパケットは、オープンフローコントローラを介することなく、同じヒットエントリに従って処理されることになる。
尚、あるフローエントリが新たに設定された時刻から所定の時間が経過した場合、あるいは、あるフローエントリが最後にヒットエントリとなった時刻から所定の時間が経過した場合、当該フローエントリはフローテーブルから消去される。その所定の時間を指定するのが、各フローエントリ中のタイムアウト値(Timeout)である。すなわち、オープンフロースイッチは、各フローエントリのタイムアウトを監視し、あるフローエントリのタイムアウトが発生した場合、当該フローエントリをフローテーブルから消去(削除)する。
Nick McKeown et al., "OpenFlow: Enabling Innovation in Campus Networks", ACM SIGCOMM Computer Communication Review, Vol. 38, No. 2, 2008. (http://www.openflowswitch.org//documents/openflow−wp−latest.pdf)
本願発明者は、次の点に着目した。図1で示されたような一般的なオープンフローの場合、単一フローに属するパケット列に対して、同じパケット処理が実施される。逆に言えば、単一フローに属するパケット列に対して、条件によって、異なるパケット処理(異なる出力ポートに出力する等)を実施することはできない。例えば、複数のメッセージが単一フローで伝送される場合に、メッセージ毎に異なるスイッチ処理を行うことはできない。
本発明の1つの目的は、単一フローに属するパケット列に対して、複数種類のパケット処理を実施することができる技術を提供することにある。
本発明の1つの観点において、フロー通信システムが提供される。フロー通信システムは、フローテーブルを備えるノードと、フローテーブル中のフローエントリを設定するコントローラと、を備える。フローテーブル中に設定される各フローエントリは、マッチ条件にマッチするパケットに対して行われるパケット処理を指定する。ノードが受信した受信パケットがマッチするフローエントリは、ヒットエントリである。フローテーブル中にヒットエントリが存在する場合、ノードは、ヒットエントリで指定されるパケット処理を受信パケットに対して行う。フローテーブル中のあるフローエントリである第1フローエントリに関する消去条件が満たされた場合、ノードは、第1フローエントリをフローテーブルから消去する。その消去条件は、第1フローエントリの設定後に第1フローエントリにマッチした全ての受信パケットのパケット長の総和が所定の消去単位長を超えることを含む。
本発明の他の観点において、ノードが提供される。そのノードは、フローテーブルを管理するテーブル管理部と、受信パケットに対してパケット処理を行うパケット処理部と、を備える。フローテーブル中に設定される各フローエントリは、マッチ条件にマッチするパケットに対して行われるパケット処理を指定する。受信パケットがマッチするフローエントリは、ヒットエントリである。フローテーブル中にヒットエントリが存在する場合、パケット処理部は、ヒットエントリで指定されるパケット処理を受信パケットに対して行う。フローテーブル中のあるフローエントリである第1フローエントリに関する消去条件が満たされた場合、テーブル管理部は、第1フローエントリをフローテーブルから消去する。その消去条件は、第1フローエントリの設定後に第1フローエントリにマッチした全ての受信パケットのパケット長の総和が所定の消去単位長を超えることを含む。
本発明によれば、単一フローに属するパケット列に対して、複数種類のパケット処理を実施することが可能となる。
図1は、一般的なオープンフローを説明するための概念図である。 図2は、本発明の実施の形態に係るフロー通信を示す概念図である。 図3は、本発明の実施の形態に係るフロー通信を示す概念図である。 図4は、本発明の実施の形態に係るフロー通信システムの構成を示すブロック図である。 図5は、本発明の実施の形態に係るフローテーブルを示す概念図である。 図6は、本発明の実施の形態に係るノードによる処理を示すフローチャートである。 図7は、本発明の実施の形態に係るコントローラによる処理を示すフローチャートである。 図8は、本発明の実施の形態に係るフロー通信システムにおける第1の処理例を示している。 図9は、本発明の実施の形態においてフラグメントが必要なパケットを説明するための概念図である。 図10は、本発明の実施の形態に係るフロー通信システムにおける第2の処理例を示している。 図11は、本発明の実施の形態の第1の応用例を示している。 図12は、本発明の実施の形態の第1の応用例における処理を示している。 図13は、本発明の実施の形態の第2の応用例を示している。 図14は、本発明の実施の形態の第2の応用例における処理を示している。
添付図面を参照して、本発明の実施の形態を説明する。
1.概要
図2は、本発明の実施の形態に係るフロー通信を概念的に示している。図2において、A個のパケットP−11〜P−1Aからなる第1パケット群と、B個のパケットP−21〜P−2Bからなる第2パケット群とは、同一フローに属しているとする。
本実施の形態によれば、それら第1パケット群と第2パケット群に対して、それぞれ異なるパケット処理(Action1,Action2)を適用することが可能である。それを実現するために、第1パケット群があるフローエントリに従って処理されると、当該フローエントリはフローテーブルから消去される。その後、第2パケット群を処理するための別のフローエントリが新たに設定される。これにより、第1パケット群と第2パケット群に対して、それぞれ異なるパケット処理を適用することが可能となる。
すなわち、本実施の形態によれば、フローエントリをフローテーブルから消去する条件として、従来のタイムアウト(Timeout)とは別に、パケット処理量に依存する新たな消去条件が導入される。その新たな消去条件は、「あるフローエントリによって処理されたパケット量が、所定の量を超えること」である。より詳細には、新たな消去条件は、「あるフローエントリの設定後に当該フローエントリにマッチした全ての受信パケットのパケット長の総和が、所定の消去単位長を超えること」である。これにより、同一フローに属するパケット列に対して、消去単位長毎に、パケット処理を変えることが可能となる。
一例として、図3に示されるように、複数のメッセージ(M1,M2)が単一フローによって通信される場合を考える。ここで、メッセージとは、パケットよりも上位層(典型的にはアプリケーション層)が送受信するデータの単位のことである。メッセージの例として、HTTPのリクエストやレスポンスが挙げられる。本実施の形態によれば、複数のメッセージが同一フローで伝送される場合に、メッセージ毎にパケット処理を変えることができる。例えば、図3に示されるように、パケットP−11〜P−1Aに分割されて伝送されるメッセージM1には、パケット処理Action1が適用される。そのパケット処理Action1を指定するフローエントリに関する消去単位長は、メッセージM1のメッセージ長に応じた値に設定されればよい。その結果、メッセージM1に対するパケット処理が完了すると、当該フローエントリが消去される。そして、その後、第2メッセージM2を処理するために、新たなフローエントリがフローテーブルに設定される。その新たなフローエントリに関する消去単位長は、メッセージM2のメッセージ長に設定されればよい。
以上に説明されたように、本実施の形態によれば、単一フローに属するパケット列に対して、複数種類のパケット処理を実施することが可能となる。
2.構成
図4は、本実施の形態に係るフロー通信システム1の構成を示すブロック図である。フロー通信システム1は、ノード10及びコントローラ20を備えている。ノード10とコントローラ20は、互いに通信可能に接続されている。例えば、オープンフローの場合、ノード10はオープンフロースイッチ(OFS)であり、コントローラ20はオープンフローコントローラ(OFC)である。
ノード10は、フローテーブルTBLを有しており、そのフローテーブルTBLに従ってパケット処理を行う。より詳細には、ノード10は、テーブル管理部11、パケット処理部12、コントローラ通信部13、及びN個のポート15−1〜15−Nを備えている。テーブル管理部11は、フローテーブルTBLの管理を行う。テーブル管理部11は記憶装置を含んでおり、フローテーブルTBLはその記憶装置に格納されている。パケット処理部12は、ポート15(入力ポート)を通してパケットを受信する。また、パケット処理部12は、フローテーブルTBLを参照して、その受信パケットに対してパケット処理を行う。更に、パケット処理部12は、ポート15(出力ポート)を通してパケットを送信する。コントローラ通信部13は、コントローラ20との通信機能を有している。オープンフローの場合、SecureChannelがコントローラ通信部13に相当する。
コントローラ20は、フローテーブルTBL中のフローエントリを設定する。
図5は、本実施の形態に係るフローテーブルTBLを示す概念図である。フローテーブルTBLは、0個以上のフローエントリ(ENT1,ENT2,ENT3・・・)を有する。各フローエントリENTは、マッチ条件(Key)、アクション(Action)、統計情報(Stat)、タイムアウト値(Timeout)といったフィールドを有している。マッチ条件は、パケットヘッダを構成するフィールドの組み合わせで表され、受信パケットが当該フローエントリENTにマッチするか否かを判定するために用いられる。アクションは、マッチ条件にマッチするパケットに対して行われるパケット処理の内容(例:指定ポートへの出力)を示している。
本実施の形態によれば、各フローエントリENTは、更に、“Byte_expire”というパラメータを有している。このByte_expireは、当該フローエントリENTが消去されるまでに許容されるパケット処理量である。つまり、Byte_expireは、エントリ消去までの「処理残量」に相当する。あるフローエントリENTが新規に設定される場合、このByte_expireは、上述の所定の消去単位長に初期設定される。そして、当該フローエントリENTがヒットエントリとなるたびに、Byte_expireは、受信パケットのパケット長分だけ減らされる。このByte_expireが受信パケットのパケット長未満になることは、上述の「消去条件」が満たされることに相当する。従って、その場合、当該フローエントリENTがフローテーブルTBLから消去される。
3.処理フロー
以下、本実施の形態に係るフロー通信システムによる処理フローを説明する。図6は、ノード10による処理を示すフローチャートである。図7は、コントローラ20による処理を示すフローチャートである。
図4〜図7を適宜参照して、図8に示される処理例を説明する。図8に示される処理例では、複数のメッセージ(M1,M2)が単一フローによって通信される。ここで、各メッセージ(可変長(TLV:Type−Length−Value)メッセージ)のメッセージ長はパケット長よりも長く、各メッセージは複数のパケットに分割されて伝送される。例えば、パケット長は1500バイトであり、メッセージ長は7300バイトである。尚、メッセージ長は、各メッセージの先頭にあるメッセージヘッダ(図中、符号“h”で表されている)内で示されている。
まず、ノード10のパケット処理部12は、メッセージM1の最初のパケットを受け取る(ステップS10)。パケットを受け取ると、パケット処理部12は、フローテーブルTBLを参照し、当該受信パケットにマッチするマッチ条件を有するフローエントリを検索する(ステップS11)。受信パケットにマッチするフローエントリは、以下「ヒットエントリ」と参照される。
現段階では、フローテーブルTBLにヒットエントリが存在しないとする(ステップS12;No)。この場合、パケット処理部12は、受信パケットを第1パケット(エントリ設定要求)とし、その第1パケットをコントローラ通信部13を介してコントローラ20に転送する(ステップS17)。
コントローラ20は、ノード10から第1パケットを受信する(ステップS20)。次に、コントローラ20は、第1パケットに基づいて、第1パケットの分割が必要か否かを判断する(ステップS21)。図8に示される処理例では、パケットの分割は不要であるとする(ステップS21;No)。この場合、コントローラ20は、第1パケットに基づいて、第1パケットを処理するための新規フローエントリENTをフローテーブルTBLに設定する(ステップS22)。
より詳細には、コントローラ20はまず、第1パケットを処理するための新規フローエントリENTを作成する。このとき、コントローラ20は、新規フローエントリENTのByte_expireの初期値(消去単位長)を決定する。本例では、メッセージ毎にパケット処理を変えるために、消去単位長はメッセージ長に応じた値に設定される。そのために、コントローラ20は、第1パケットのパケットデータの先頭にあるメッセージヘッダを参照してメッセージ長(=7300バイト)を取得し、そのメッセージ長に応じた消去単位長にByte_expireを初期設定する。例えば、パケットヘッダ長による増加分を考慮して、消去単位長(Byte_expireの初期値)は7500バイトに決定される。そして、コントローラ20は、新規フローエントリENTをフローテーブルTBLに追加するよう、ノード10に指示する。
ノード10のコントローラ通信部13は、コントローラ20からエントリ設定指示を受け取り、そのエントリ設定指示をテーブル管理部11に渡す。テーブル管理部11は、そのエントリ設定指示に従って、新規フローエントリENTをフローテーブルTBLに追加する(ステップS18)。その後、コントローラ20は、第1パケットをノード10に返送する(ステップS23)。
ノード10のパケット処理部12は、第1パケットを受信パケットとして再度受け取る(ステップS10)。パケット処理部12は、受信パケットにマッチするヒットエントリをフローテーブルTBLから検索する(ステップS11)。今回は、フローテーブルTBLにヒットエントリが存在している(ステップS12;Yes)。
ヒットエントリが存在する場合、テーブル管理部11は、当該ヒットエントリのByte_expireをチェックする(ステップS13)。具体的には、テーブル管理部11は、ヒットエントリのByte_expireが受信パケットのパケット長LEN(=1500バイト)以上か否かをチェックする。ヒットエントリのByte_expireが受信パケットのパケット長LEN以上である場合(ステップS13;Yes)、テーブル管理部11は、ヒットエントリのByte_expireを当該パケット長LENの分だけ減らす(ステップS14)。そして、パケット処理部12は、当該ヒットエントリのアクションで指定されているパケット処理を、受信パケットに対して実行する(ステップS15)。
このようにして、第1パケットに続くパケットは、コントローラ20を介することなく、同じフローエントリENTに従って処理されることになる。また、フローエントリENTがヒットエントリとなるたびに、当該フローエントリENTのByte_expireはパケット長LEN(=1500バイト)ずつ減っていく。図8に示される例では、メッセージM1の全てのパケットに対する処理が完了したときに、フローエントリENTのByte_expireは“0”になっている。
次に、ノード10のパケット処理部12は、メッセージM2の最初のパケットを受け取る(ステップS10)。この場合、フローテーブルTBLにヒットエントリは存在する(ステップS12;Yes)が、当該ヒットエントリのByte_expireは受信パケットのパケット長LEN未満である(ステップS13;No)。これは、当該フローエントリENTに関する消去条件が満たされたことを意味する。従って、テーブル管理部11は、当該フローエントリENTをフローテーブルTBLから消去する(ステップS16)。更に、パケット処理部12は、受信パケットを第1パケット(エントリ設定要求)とし、その第1パケットをコントローラ通信部13を介してコントローラ20に転送する(ステップS17)。その後、メッセージM2に関しても同様の処理が実行される。
このように、本例によれば、複数のメッセージ毎に異なるフローエントリが順番に設定される。その結果、複数のメッセージが同一フローで伝送される場合であっても、メッセージ毎にパケット処理を変えることが可能となる。
次に、他の処理例を説明する。複数のメッセージが同一フローで伝送される場合、メッセージ境界を含むパケットが存在し得る。例えば図9に示されるように、ある1つのパケットPAのパケットデータに、メッセージM1のデータとメッセージM2のデータの両方が含まれる場合があり得る。具体的には、そのパケットPAのパケットデータの前半部分にはメッセージM1の最後尾のデータがあり、その後半部分にはメッセージM2のメッセージヘッダを含む先頭のデータがある。この場合、メッセージ毎にパケット処理を変えるためには、当該パケットPAの分割(フラグメント)が必要となる。
図10は、そのようなパケットPAの分割が行われる場合の処理例を示している。図10に示される処理例において、ノード10がパケットPAを受信したとき、消去条件が満たされており、そのパケットPAが第1パケットとしてコントローラ20に転送されるとする。
コントローラ20は、ノード10からパケットPA(第1パケット)を受信する(ステップS20)。次に、コントローラ20は、パケットPAに基づいて、パケットPAの分割が必要か否かを判断する(ステップS21)。本例では、パケットPAのパケットデータの先頭にメッセージヘッダが存在していない。この場合、コントローラ20は、パケット分割が必要であると判断し(ステップS21;Yes)、パケットPAを前半パケットPBと後半パケットPCに分割する(ステップS24)。前半パケットPBは、パケットPAのパケットデータのうちメッセージヘッダまでの前半部分をパケットデータとして有する。一方、後半パケットPCは、パケットPAのパケットデータのうちメッセージヘッダ以降の部分をパケットデータとして有する。
コントローラ20は、前半パケットPBをノード10に返送する(ステップS25)。このとき、前半パケットPBにマッチするフローエントリENTは既に消去されているため、コントローラ20は、前半パケットPBに対して適用すべきパケット処理を合わせて指示する。ノード10のパケット処理部12は、その指示に従って、前半パケットPBを処理する。
一方、コントローラ20は、後半パケットPCに基づいて、後半パケットPCを処理するための新規フローエントリENTをフローテーブルTBLに設定する(ステップS26)。このとき、コントローラ20は、後半パケットPCのパケットデータの先頭にあるメッセージヘッダを参照してメッセージ長を取得し、そのメッセージ長に応じた消去単位長にByte_expireを初期設定する。新規フローエントリENTがフローテーブルTBLに追加された後、コントローラ20は、後半パケットPCをノード10に返送する(ステップS27)。その後半パケットPCは、新規フローエントリENTに従って処理される。このようにして、メッセージ毎にパケット処理を変えることが可能となる。
尚、パケットヘッダ長を考慮せずに、メッセージ長そのものが消去単位長に設定されてもよい。この場合、早めに消去条件が満たされることになるが、特に問題ない。
また、本実施の形態は、タイムアウトに依存するエントリ消去処理と併用されてもよい。
4.応用例
4−1.第1の応用例
図11及び図12は、本実施の形態の第1の応用例を示している。第1の応用例は、単一TCPフローに複数のHTTPメッセージ(M1,M2)が多重された場合のロードバランス処理に関する。ノード10はオープンフロースイッチ(OFS)であり、コントローラ20はオープンフローコントローラ(OFC)である。キープアライブオプションの場合、1つのTCPコネクションに複数のHTTPメッセージが入る。オープンフローコントローラ20は、各HTTPメッセージのメッセージヘッダに基づいて、当該HTTPメッセージのパケットの配送先サーバ40を決定する。そして、オープンフローコントローラ20は、HTTPメッセージ毎に、配送先サーバ40をTCPディスパッチャ30に指示する。TCPディスパッチャ30は、それぞれのパケットを、指定された配送先サーバ40に配送する。例えば、HTTPメッセージM1はサーバ40−1に配送され、HTTPメッセージM2はサーバ40−2に配送される。このように、単一TCPフローに複数のHTTPメッセージが多重された場合であっても、ロードバランス処理が可能となる。
4−2.第2の応用例
図13及び図14は、本実施の形態の第2の応用例を示している。第2の応用例は、単一TCPフローに複数のiSCSI LUNのフローが多重された場合に関する。特定のiSCSI LUNのフローだけを優先的に配送するために、本実施の形態が適用可能である。ノード10はNICであり、コントローラ20はvswitchである。vswitch20は、ヘッダを参照して、それぞれのPDUを載せるフロー(通常フローあるいは優先フロー)を決定する。そして、vswitch20は、特定のiSCSI LUNのみを優先フローにする。
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
フローテーブルを備えるノードと、
前記フローテーブル中のフローエントリを設定するコントローラと
を備え、
前記フローテーブル中に設定される各フローエントリは、マッチ条件にマッチするパケットに対して行われるパケット処理を指定し、
前記ノードが受信した受信パケットがマッチするフローエントリは、ヒットエントリであり、
前記フローテーブル中に前記ヒットエントリが存在する場合、前記ノードは、前記ヒットエントリで指定される前記パケット処理を前記受信パケットに対して行い、
前記フローテーブル中のあるフローエントリである第1フローエントリに関する消去条件が満たされた場合、前記ノードは、前記第1フローエントリを前記フローテーブルから消去し、
前記消去条件は、前記第1フローエントリの設定後に前記第1フローエントリにマッチした全ての受信パケットのパケット長の総和が所定の消去単位長を超えることを含む
フロー通信システム。
(付記2)
付記1に記載のフロー通信システムであって、
前記フローテーブル中に設定される各フローエントリは、更に、処理残量をパラメータとして有し、
前記コントローラは、新たなフローエントリを設定する際、前記処理残量を前記所定の消去単位長に初期設定し、
前記ノードは、前記第1フローエントリが前記ヒットエントリとなった場合、前記第1フローエントリの前記処理残量をチェックし、
前記処理残量が前記受信パケットのパケット長以上である場合、前記ノードは、前記第1フローエントリの前記処理残量を前記受信パケットのパケット長分だけ減らし、
前記処理残量が前記受信パケットのパケット長未満の場合、前記消去条件が満たされ、前記ノードは前記第1フローエントリを前記フローテーブルから消去する
フロー通信システム。
(付記3)
付記1又は2に記載のフロー通信システムであって、
前記フローテーブル中に前記ヒットエントリが存在しない場合、あるいは、前記消去条件が満たされた場合、前記ノードは、前記受信パケットを前記第1パケットとして前記コントローラに転送し、
前記コントローラは、前記第1パケットの受信に応答して、前記第1パケットを処理するための新たなフローエントリを前記フローテーブルに設定する
フロー通信システム。
(付記4)
付記3に記載のフロー通信システムであって、
複数のメッセージが単一フローによって通信され、
前記コントローラは、前記複数のメッセージの各々のメッセージ長に基づいて、前記所定の消去単位長を決定し、前記複数のメッセージ毎に異なるフローエントリを順番に設定する
フロー通信システム。
(付記5)
付記4に記載のフロー通信システムであって、
前記メッセージ長は、メッセージヘッダ内で示されており、
前記第1パケットのパケットデータの先頭に前記メッセージヘッダが存在する場合、前記コントローラは、前記メッセージヘッダに基づいて前記新たなフローエントリを設定し、その後、前記第1パケットを前記ノードに返送する
フロー通信システム。
(付記6)
付記5に記載のフロー通信システムであって、
前記第1パケットのパケットデータの先頭に前記メッセージヘッダが存在しない場合、前記コントローラは、前記第1パケットを第2パケットと第3パケットとに分割し、
前記第2パケットは、前記第1パケットの前記パケットデータのうち前記メッセージヘッダまでの部分をパケットデータとして有し、
前記第3パケットは、前記第1パケットの前記パケットデータのうち前記メッセージヘッダ以降の部分をパケットデータとして有し、
前記コントローラは、前記第2パケットに対して適用すべき前記パケット処理を指示しながら、前記第2パケットを前記ノードに返送し、
前記コントローラは、前記メッセージヘッダに基づいて前記新たなフローエントリを設定し、その後、前記第3パケットを前記ノードに返送する
フロー通信システム。
(付記7)
付記1乃至6のいずれか一項に記載のフロー通信システムであって、
前記ノードは、オープンフロースイッチであり、
前記コントローラは、オープンフローコントローラである
フロー通信システム。
(付記8)
フローテーブルを管理するテーブル管理部と、
受信パケットに対してパケット処理を行うパケット処理部と
を備え、
前記フローテーブル中に設定される各フローエントリは、マッチ条件にマッチするパケットに対して行われる前記パケット処理を指定し、
前記受信パケットがマッチするフローエントリは、ヒットエントリであり、
前記フローテーブル中に前記ヒットエントリが存在する場合、前記パケット処理部は、前記ヒットエントリで指定される前記パケット処理を前記受信パケットに対して行い、
前記フローテーブル中のあるフローエントリである第1フローエントリに関する消去条件が満たされた場合、前記テーブル管理部は、前記第1フローエントリを前記フローテーブルから消去し、
前記消去条件は、前記第1フローエントリの設定後に前記第1フローエントリにマッチした全ての受信パケットのパケット長の総和が所定の消去単位長を超えることを含む
ノード。
(付記9)
付記8に記載のノードであって、
前記フローテーブル中に設定される各フローエントリは、更に、処理残量をパラメータとして有し、
前記フローテーブルに新たなフローエントリが設定される際、前記処理残量は、前記所定の消去単位長に初期設定され、
前記第1フローエントリが前記ヒットエントリとなった場合、前記テーブル管理部は、前記第1フローエントリの前記処理残量をチェックし、
前記処理残量が前記受信パケットのパケット長以上である場合、前記テーブル管理部は、前記第1フローエントリの前記処理残量を前記受信パケットのパケット長分だけ減らし、
前記処理残量が前記受信パケットのパケット長未満の場合、前記消去条件が満たされ、前記テーブル管理部は前記第1フローエントリを前記フローテーブルから消去する
ノード。
本出願は、2011年2月17日に出願された日本国特許出願2011−031737を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1 フロー通信システム
10 ノード
11 テーブル管理部
12 パケット処理部
13 コントローラ通信部
15 ポート
20 コントローラ
TBL フローテーブル

Claims (7)

  1. フローテーブルを備えるノードと、
    前記フローテーブル中のフローエントリを設定するコントローラと
    を備え、
    前記フローテーブル中に設定される各フローエントリは、マッチ条件にマッチするパケットに対して行われるパケット処理を指定し、
    前記ノードが受信した受信パケットがマッチするフローエントリは、ヒットエントリであり、
    前記フローテーブル中に前記ヒットエントリが存在する場合、前記ノードは、前記ヒットエントリで指定される前記パケット処理を前記受信パケットに対して行い、
    前記フローテーブル中のあるフローエントリである第1フローエントリに関する消去条件が満たされた場合、前記ノードは、前記第1フローエントリを前記フローテーブルから消去し、
    前記消去条件は、前記第1フローエントリの設定後に前記第1フローエントリにマッチした全ての受信パケットのパケット長の総和が所定の消去単位長を超えることを含む
    というフロー通信システムであって、
    前記フローテーブル中に設定される各フローエントリは、更に、処理残量をパラメータとして有し、
    前記コントローラは、新たなフローエントリを設定する際、前記処理残量を前記所定の消去単位長に初期設定し、
    前記ノードは、前記第1フローエントリが前記ヒットエントリとなった場合、前記第1フローエントリの前記処理残量をチェックし、
    前記処理残量が前記受信パケットのパケット長以上である場合、前記ノードは、前記第1フローエントリの前記処理残量を前記受信パケットのパケット長分だけ減らし、
    前記処理残量が前記受信パケットのパケット長未満の場合、前記消去条件が満たされ、前記ノードは前記第1フローエントリを前記フローテーブルから消去する
    フロー通信システム。
  2. 請求項1に記載のフロー通信システムであって、
    前記フローテーブル中に前記ヒットエントリが存在しない場合、あるいは、前記消去条件が満たされた場合、前記ノードは、前記受信パケットを第1パケットとして前記コントローラに転送し、
    前記コントローラは、前記第1パケットの受信に応答して、前記第1パケットを処理するための新たなフローエントリを前記フローテーブルに設定する
    フロー通信システム。
  3. 請求項に記載のフロー通信システムであって、
    複数のメッセージが単一フローによって通信され、
    前記コントローラは、前記複数のメッセージの各々のメッセージ長に基づいて、前記所定の消去単位長を決定し、前記複数のメッセージ毎に異なるフローエントリを順番に設定する
    フロー通信システム。
  4. 請求項に記載のフロー通信システムであって、
    前記メッセージ長は、メッセージヘッダ内で示されており、
    前記第1パケットのパケットデータの先頭に前記メッセージヘッダが存在する場合、前記コントローラは、前記メッセージヘッダに基づいて前記新たなフローエントリを設定し、その後、前記第1パケットを前記ノードに返送する
    フロー通信システム。
  5. 請求項に記載のフロー通信システムであって、
    前記第1パケットのパケットデータの先頭に前記メッセージヘッダが存在しない場合、前記コントローラは、前記第1パケットを第2パケットと第3パケットとに分割し、
    前記第2パケットは、前記第1パケットの前記パケットデータのうち前記メッセージヘッダまでの部分をパケットデータとして有し、
    前記第3パケットは、前記第1パケットの前記パケットデータのうち前記メッセージヘッダ以降の部分をパケットデータとして有し、
    前記コントローラは、前記第2パケットに対して適用すべき前記パケット処理を指示しながら、前記第2パケットを前記ノードに返送し、
    前記コントローラは、前記メッセージヘッダに基づいて前記新たなフローエントリを設定し、その後、前記第3パケットを前記ノードに返送する
    フロー通信システム。
  6. 請求項1に記載のフロー通信システムであって、
    前記ノードは、オープンフロースイッチであり、
    前記コントローラは、オープンフローコントローラである
    フロー通信システム。
  7. フローテーブルを管理するテーブル管理部と、
    受信パケットに対してパケット処理を行うパケット処理部と
    を備え、
    前記フローテーブル中に設定される各フローエントリは、マッチ条件にマッチするパケットに対して行われる前記パケット処理を指定し、
    前記受信パケットがマッチするフローエントリは、ヒットエントリであり、
    前記フローテーブル中に前記ヒットエントリが存在する場合、前記パケット処理部は、前記ヒットエントリで指定される前記パケット処理を前記受信パケットに対して行い、
    前記フローテーブル中のあるフローエントリである第1フローエントリに関する消去条件が満たされた場合、前記テーブル管理部は、前記第1フローエントリを前記フローテーブルから消去し、
    前記消去条件は、前記第1フローエントリの設定後に前記第1フローエントリにマッチした全ての受信パケットのパケット長の総和が所定の消去単位長を超えることを含む
    というノードであって、
    前記フローテーブル中に設定される各フローエントリは、更に、処理残量をパラメータとして有し、
    前記フローテーブルに新たなフローエントリが設定される際、前記処理残量は、前記所定の消去単位長に初期設定され、
    前記第1フローエントリが前記ヒットエントリとなった場合、前記テーブル管理部は、前記第1フローエントリの前記処理残量をチェックし、
    前記処理残量が前記受信パケットのパケット長以上である場合、前記テーブル管理部は、前記第1フローエントリの前記処理残量を前記受信パケットのパケット長分だけ減らし、
    前記処理残量が前記受信パケットのパケット長未満の場合、前記消去条件が満たされ、前記テーブル管理部は前記第1フローエントリを前記フローテーブルから消去する
    ノード。
JP2013516875A 2011-02-17 2011-08-16 フロー通信システム Active JP5884822B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013516875A JP5884822B2 (ja) 2011-02-17 2011-08-16 フロー通信システム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011031737 2011-02-17
JP2011031737 2011-02-17
PCT/JP2011/004601 WO2012111051A1 (en) 2011-02-17 2011-08-16 Flow communication system
JP2013516875A JP5884822B2 (ja) 2011-02-17 2011-08-16 フロー通信システム

Publications (2)

Publication Number Publication Date
JP2014506021A JP2014506021A (ja) 2014-03-06
JP5884822B2 true JP5884822B2 (ja) 2016-03-15

Family

ID=46672017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013516875A Active JP5884822B2 (ja) 2011-02-17 2011-08-16 フロー通信システム

Country Status (6)

Country Link
US (1) US9083657B2 (ja)
EP (1) EP2676410B1 (ja)
JP (1) JP5884822B2 (ja)
KR (1) KR101434375B1 (ja)
CN (1) CN103370911B (ja)
WO (1) WO2012111051A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6044637B2 (ja) * 2011-09-21 2016-12-14 日本電気株式会社 通信装置、通信システム、通信制御方法及びプログラム
EP2833587A4 (en) * 2012-03-30 2015-12-30 Nec Corp CONTROL DEVICE, COMMUNICATION DEVICE, COMMUNICATION PROCESS AND PROGRAM
US10129182B2 (en) * 2012-06-29 2018-11-13 Juniper Networks, Inc. Methods and apparatus for providing services in distributed switch
US10097481B2 (en) 2012-06-29 2018-10-09 Juniper Networks, Inc. Methods and apparatus for providing services in distributed switch
US9712439B2 (en) * 2013-02-28 2017-07-18 Texas Instruments Incorporated Packet processing match and action unit with configurable memory allocation
US9743371B2 (en) 2013-03-12 2017-08-22 Nec Corporation Control apparatus, communication system, synchronization method and program
KR101595160B1 (ko) * 2013-07-17 2016-02-17 주식회사 케이티 소프트웨어 정의 네트워킹 네트워크에서 트랜잭션 관리 방법
CN104468415A (zh) * 2013-09-16 2015-03-25 中兴通讯股份有限公司 上报交换机类型的方法及装置
CN104734988B (zh) * 2013-12-23 2018-10-30 杭州华为数字技术有限公司 软件定义网络中路由控制的方法和开放流控制器
CN110138618B (zh) * 2013-12-31 2021-10-26 华为技术有限公司 一种报文处理方法、装置及系统
WO2015139199A1 (zh) * 2014-03-18 2015-09-24 华为技术有限公司 统计信息上报方法及装置
CN104954271B (zh) * 2014-03-26 2018-11-30 国际商业机器公司 Sdn网络中的数据包处理方法和装置
US9652419B1 (en) * 2014-08-05 2017-05-16 Google Inc. Method and system for filtering flow table counters
WO2016023148A1 (zh) * 2014-08-11 2016-02-18 华为技术有限公司 报文的控制方法、交换机及控制器
CN105743687B (zh) * 2014-12-12 2020-01-10 中兴通讯股份有限公司 节点故障的判断方法及装置
CN106664253A (zh) * 2015-06-30 2017-05-10 华为技术有限公司 流表老化方法、交换机及控制器
US11720424B2 (en) * 2021-03-12 2023-08-08 Salesforce, Inc. Single flow execution

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1032165A1 (en) * 1999-02-26 2000-08-30 International Business Machines Corporation Method of assembling segmented frames of data transmitted over a backbone
US7305492B2 (en) * 2001-07-06 2007-12-04 Juniper Networks, Inc. Content service aggregation system
JP4341413B2 (ja) * 2003-07-11 2009-10-07 株式会社日立製作所 統計収集装置を備えたパケット転送装置および統計収集方法
US7817640B2 (en) * 2003-12-31 2010-10-19 Florida State University Fair round robin scheduler for network systems
US7606154B1 (en) * 2004-04-01 2009-10-20 Juniper Networks, Inc. Fair bandwidth allocation based on configurable service classes
JP4392294B2 (ja) 2004-06-15 2009-12-24 株式会社日立製作所 通信統計収集装置
WO2006085374A1 (ja) * 2005-02-10 2006-08-17 Fujitsu Limited 通信装置
DE202005005890U1 (de) 2005-04-13 2005-06-16 Moll System- und Funktionsmöbel GmbH Möbel mit entnehmbarem Behälter in seinem Auszug
US7817549B1 (en) * 2006-06-30 2010-10-19 Extreme Networks, Inc. Flexible flow-aging mechanism
US20080259867A1 (en) * 2007-04-22 2008-10-23 Chuanxiong Guo Method and system for scheduling packets from different flows to provide fair bandwidth sharing
JP5483149B2 (ja) * 2009-01-06 2014-05-07 日本電気株式会社 通信システム、管理計算機、スタックドスイッチ、フロー経路決定方法
CN101572670B (zh) 2009-05-07 2011-08-10 成都市华为赛门铁克科技有限公司 一种基于流表的数据包处理方法、装置和网络系统
CN101938396B (zh) 2009-06-30 2013-04-17 华为技术有限公司 数据流控制方法及装置
WO2011102312A1 (ja) * 2010-02-16 2011-08-25 日本電気株式会社 パケット転送装置、通信システム、処理規則の更新方法およびプログラム
JP5742834B2 (ja) * 2010-03-05 2015-07-01 日本電気株式会社 通信システム、経路制御装置、パケット転送装置および経路制御方法
RU2628151C2 (ru) 2010-05-28 2017-08-15 Нек Корпорейшн Система связи, узел, устройство управления, способ связи и программа
CN102035748B (zh) * 2010-12-31 2014-07-30 深圳市深信服电子科技有限公司 一种基于应用的流量控制方法及流量控制器

Also Published As

Publication number Publication date
EP2676410B1 (en) 2016-01-06
JP2014506021A (ja) 2014-03-06
EP2676410A1 (en) 2013-12-25
KR101434375B1 (ko) 2014-08-27
CN103370911B (zh) 2016-08-10
WO2012111051A1 (en) 2012-08-23
US20130308645A1 (en) 2013-11-21
EP2676410A4 (en) 2014-09-24
US9083657B2 (en) 2015-07-14
KR20130109208A (ko) 2013-10-07
CN103370911A (zh) 2013-10-23

Similar Documents

Publication Publication Date Title
JP5884822B2 (ja) フロー通信システム
US10200307B2 (en) Communication system, control device, processing rule setting method, packet transmission method, and program
JP5637148B2 (ja) スイッチネットワークシステム、コントローラ、及び制御方法
US8832272B2 (en) Network system, control method for the same, and controller, using targeted relay processing devices
JP5672558B2 (ja) ネットワークシステム、ネットワーク制御装置、及び制御方法
US9769074B2 (en) Network per-flow rate limiting
US20110307628A1 (en) Communication system, node, control server, communication method and program
JP5483149B2 (ja) 通信システム、管理計算機、スタックドスイッチ、フロー経路決定方法
WO2011162215A1 (ja) 通信システム、制御装置、ノードの制御方法およびプログラム
JP5585660B2 (ja) 通信システム、制御装置、処理規則の設定方法およびプログラム
EP2897327A1 (en) Communication system, node, control device, communication method, and program
JP5854048B2 (ja) 通信システム、転送ノード、制御装置、通信制御方法およびプログラム
WO2014141006A1 (en) Scalable flow and congestion control in a network
US10171352B2 (en) Communication system, node, control device, communication method, and program
JP5700313B2 (ja) ネットワークシステム、フロントエンド装置、制御メッセージ送信レート低減方法
JP5987901B2 (ja) 制御装置、通信装置、通信方法及びプログラム
US20150319099A1 (en) Storage area network system, controller, access control method and program
JP6440191B2 (ja) スイッチ装置、vlan設定管理方法及びプログラム
WO2014020902A1 (en) Communication system, control apparatus, communication method, and program
WO2014038143A1 (en) Flow information collecting system, method and program
JP5432197B2 (ja) 配信システム、配信方法、配信方式制御装置及びそのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151211

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160125

R150 Certificate of patent or registration of utility model

Ref document number: 5884822

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150