JPWO2018159677A1 - データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法 - Google Patents
データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法 Download PDFInfo
- Publication number
- JPWO2018159677A1 JPWO2018159677A1 JP2019503062A JP2019503062A JPWO2018159677A1 JP WO2018159677 A1 JPWO2018159677 A1 JP WO2018159677A1 JP 2019503062 A JP2019503062 A JP 2019503062A JP 2019503062 A JP2019503062 A JP 2019503062A JP WO2018159677 A1 JPWO2018159677 A1 JP WO2018159677A1
- Authority
- JP
- Japan
- Prior art keywords
- packet
- data processing
- buffer
- input
- data
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 190
- 238000003672 processing method Methods 0.000 title claims description 9
- 239000000872 buffer Substances 0.000 claims abstract description 103
- 238000012546 transfer Methods 0.000 claims abstract description 96
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000004891 communication Methods 0.000 claims description 21
- 230000006870 function Effects 0.000 description 31
- 230000005540 biological transmission Effects 0.000 description 16
- 238000007405 data analysis Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/128—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
パケット順序制御回路(12H)に、パケットを一時格納しておくためのバッファ(32)を設け、比較回路(31)が、入力されたパケットのパケットIDと、順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較し、制御回路(36)が、比較の結果、パケットIDと次選択IDとが一致しなかった場合は、当該パケットIDと対応する格納位置に入力されたパケットを格納し、これらパケットIDと次選択IDとが一致した場合は、入力されたパケットをバッファ(32)に格納せずに転送処理の対象として選択し、次選択IDがバッファ(32)に格納されているパケットのパケットIDと一致した場合、当該パケットを転送処理の対象として選択する。これにより、少ないメモリリソースでパケットの処理順序を保証する。
Description
本発明は、複数のデータ処理装置を連携させてネットワークサービスを提供する際に用いるパケット順序制御技術に関する。
従来、ユーザに対して提供するネットワークサービスに関する機能は、ルータやゲートウェイなど専用ハードウェアで構成されていたが、近年、設備コストの削減等を目的として汎用サーバ上でソフトウェアとして動作させるNFV(Network Functions Virtualization)技術に注目が集まっている。
このような、ネットワーク上に点在する複数のNFVアプリケーションを自由に組み合わせて柔軟にネットワークサービスを提供する仕組みとして、ネットワークサービスに含まれる機能に応じて適切な順序で、サービスデータをパケットで転送処理するSFC(Service Function Chaining)技術が検討されている(例えば、特許文献1など参照)。
一般に、SFC技術を用いたシステムは、任意のアルゴリズムに基づいたサービス処理を行うデータ処理機能(SF:Service Function)と、ヘッダ情報を基にしてサービスデータを含むパケットを転送するパケット転送機能(SFF:Service Function Forwarder)と、ネットワークシステム全体を制御する制御機能とから構成される。
一般に、SFC技術を用いたシステムは、任意のアルゴリズムに基づいたサービス処理を行うデータ処理機能(SF:Service Function)と、ヘッダ情報を基にしてサービスデータを含むパケットを転送するパケット転送機能(SFF:Service Function Forwarder)と、ネットワークシステム全体を制御する制御機能とから構成される。
SFC技術は、主にネットワークサービスに関する機能を仮想化して柔軟なサービス運用を可能とすることを目的に開発されているが、ネットワーク以外の機能に応用しても同様の効果が期待できると考えられる。例えば、画像処理機能を仮想化し、ネットワーク上で画像を分類することを考える。本来であれば、ユーザは対象となるすべての画像を取得してから目的の物体が写った画像を分類する必要がある。しかし、ネットワーク上で画像を分類することでユーザは必要な画像だけを受け取ることができ、自端末での処理を削減することができる。
"DPDK Programmer’s Guide 15.Reorder Library"、[online]、2015年、Intel Corporation、[平成28年12月21日検索]、インターネット<URL:http://dpdk.org/doc/guides/prog_guide/reorder_lib.html>
このような、画像処理機能は、一般に計算量が多くソフトウェア処理に向かないため、ASIC(Application Specific Integrated Circuit)やGPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)などのハードウェアを用いて計算することが望ましい。そのため、データ処理を行うネットワーク装置はソフトウェア処理機能に加えてハードウェア処理機能を備える必要がある。
また、ネットワーク上でデータをやり取りする場合、一般にはパケット通信が用いられる。パケット通信ではデータを小さな単位であるパケットに分割して個別に送信する。パケットは様々な要因で処理順序が入れ替わる可能性があるため、受信側ではパケットの順序を入れ替えて正しいデータを組み立てる必要がある。
OSI(Open Systems Interconnection)参照モデルにおいて、IP(Internet Protocol)はネットワーク層における主要なプロトコルであり、TCP(Transmission Control Protocol)はトランスポート層におけるプロトコルである。このTCPを用いた通信では、パケットの処理順序をトランスポート層で保証することができるが、TCPは一般に複雑な処理を必要とする通信プロトコルであるため、遅延が致命的であるアプリケーションには向かない。
このようなアプリケーションに対しては、トランスポート層における他のプロトコルであるUDP(User Datagram Protocol)を用いた通信を行うことがある。しかし、UDPではパケットの処理順序を保証することができないため、データの正しさはアプリケーション層で保証する必要がある。
よって、ハードウェアにおいてUDPパケットを入力としたデータ処理を行う場合、アプリケーションと結合したパケット順序制御機構が必要となる。
よって、ハードウェアにおいてUDPパケットを入力としたデータ処理を行う場合、アプリケーションと結合したパケット順序制御機構が必要となる。
従来、パケットの処理順序を制御する仕組みとして、DPDK(Data Plane Development Kit)においてReorder Libraryが提供されている(例えば、非特許文献1など参照)。このDPDKは、ネットワーク処理に特化したソフトウェアライブラリ群であり、非常に高速なネットワーク処理を実現することができる。
具体的には、Reorder Libraryは、次のように動作する。まず、入力パケットをシーケンス番号に従ってOrder Bufferに格納する。次に、Order Bufferの中身をReady Bufferの空き領域に移動する。この後、アプリケーションがReady Bufferからパケットを取り出す。
具体的には、Reorder Libraryは、次のように動作する。まず、入力パケットをシーケンス番号に従ってOrder Bufferに格納する。次に、Order Bufferの中身をReady Bufferの空き領域に移動する。この後、アプリケーションがReady Bufferからパケットを取り出す。
しかしながら、このようなDPDKのReorder Libraryによれば、パケットの処理順序を保証できるものの、構成上Order BufferとReady Bufferという2個のバッファが必要となる。このため、メモリリソースの制約が厳しいハードウェア実装には向いておらず、少ないメモリリソースでパケットの処理順序を保証できないという問題点があった。
本発明はこのような課題を解決するためのものであり、少ないメモリリソースでパケットの処理順序を保証できるパケット順序制御技術を提供することを目的としている。
このような目的を達成するために、本発明にかかるデータ処理装置は、通信リンクを介してデータ通信を行う1つまたは複数の入出力回路と、ユーザが利用するネットワークサービスを構成するデータ処理を、ハードウェアで実現するように構成されたハードウェア処理部とを備え、前記ハードウェア処理部は、入力されたデータに基づいて前記データ処理を実行するデータ処理回路と、前記データ処理を実行するためのデータを含むパケットの受信、および、前記データ処理により得られたデータを含むパケットの送信を行うパケット転送回路と、前記パケット転送回路で受信して入力されたパケットを、これらパケットのヘッダ情報に含まれるパケットIDの順序に従って順に選択し、選択したパケットに含まれるデータを前記データ処理回路へ転送する転送処理を行うパケット順序制御回路とを備え、前記パケット順序制御回路は、パケットを一時格納しておくためのバッファと、入力されたパケットのパケットIDと、前記順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較する比較回路と、前記比較回路での比較の結果、前記パケットIDと前記次選択IDとが一致しなかった場合は、前記バッファのうち前記パケットIDと対応する格納位置に前記入力されたパケットを格納し、前記パケットIDと前記次選択IDとが一致した場合は、前記入力されたパケットを前記バッファに格納せずに前記転送処理の対象として選択する制御回路とを備え、前記制御回路は、前記次選択IDが前記バッファに格納されているパケットのパケットIDと一致した場合、前記パケットを前記転送処理の対象として選択するようにしたものである。
また、本発明にかかるネットワークシステムは、ネットワーク上に分散配置された複数のデータ処理装置を備え、これらデータ処理装置を連携させることにより、ユーザに対して各種のネットワークサービスを提供するネットワークシステムであって、少なくとも1つまたは複数の前記データ処理装置が、前記ネットワークサービスを構成するデータ処理をハードウェアで実現する、上記のデータ処理装置からなるものである。
また、本発明にかかるパケット順序制御回路は、予め設定されている処理を行うパケットを一時格納しておくためのバッファと、入力されたパケットに含まれるパケットIDと、パケットIDの順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較する比較回路と、前記比較回路での比較の結果、前記パケットIDと前記次選択IDとが一致しなかった場合は、前記バッファのうち前記パケットIDと対応する格納位置に前記入力されたパケットを格納し、前記パケットIDと前記次選択IDとが一致した場合は、前記入力されたパケットを前記バッファに格納せずに前記処理の対象として選択する制御回路とを備え、前記制御回路は、前記次選択IDが前記バッファに格納されているパケットのパケットIDと一致した場合、前記パケットを前記処理の対象として選択するようにしたものである。
また、本発明にかかるデータ処理方法は、通信リンクを介してデータ通信を行う1つまたは複数の入出力回路と、ユーザが利用するネットワークサービスを構成するデータ処理を、ハードウェアで実現するように構成されたハードウェア処理部とを備えるデータ処理装置で用いられるデータ処理方法であって、データ処理回路が、入力されたデータに基づいて前記データ処理を実行するデータ処理ステップと、パケット転送回路が、前記データ処理を実行するためのデータを含むパケットの受信、および、前記データ処理により得られたデータを含むパケットの送信を行うパケット転送ステップと、パケット順序制御回路が、前記パケット転送ステップで受信して入力されたパケットを、これらパケットのヘッダ情報に含まれるパケットIDの順序に従って順に選択し、選択したパケットに含まれるデータを前記データ処理ステップへ転送する転送処理を行うパケット順序制御ステップとを備え、前記パケット順序制御ステップは、比較回路が、入力されたパケットのパケットIDと、前記順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較する比較ステップと、制御回路が、前記比較回路での比較の結果、前記パケットIDと前記次選択IDとが一致しなかった場合は、パケットを一時格納しておくためのバッファのうち、前記パケットIDと対応する格納位置に前記入力されたパケットを格納し、前記パケットIDと前記次選択IDとが一致した場合は、前記入力されたパケットを前記バッファに格納せずに前記転送処理の対象として選択する制御ステップとを備え、前記制御ステップは、前記次選択IDが前記バッファに格納されているパケットのパケットIDと一致した場合、前記パケットを前記転送処理の対象として選択するようにしたものである。
本発明によれば、パケットIDの順序に従って、パケット順序制御回路に入力されたパケットを、データ処理回路への転送対象として選択するか、もしくは、バッファに一時格納するかが、パケットIDと次選択IDとに基づいて正確に判定されることになる。このため、パケットが転送対象として選択した場合は、バッファを経由することなくデータ処理部へ転送することができる。また、バッファに格納されているパケットはパケットIDに基づいてその格納場所を一意に特定することができるため、次選択IDと対応するパケットをバッファから直ちに選択することが可能となる。
したがって、1つのバッファを設けるだけで、順次入力されるパケットを、これらパケットのヘッダ情報に含まれるパケットIDの順序に従って、順に選択することができる。このため、メモリリソースの制約が厳しいハードウェア実装であっても、最小限のメモリリソースでパケットの処理順序を保証することが可能となる。これにより、画像処理など、計算量が多くソフトウェア処理に向かないデータ処理が必要となるネットワークサービスであっても、メモリリソースの制約が厳しいハードウェア実装で実現することが可能となる。
次に、本発明の一実施の形態について図面を参照して説明する。
[ネットワークシステム]
まず、図1を参照して、本実施の形態にかかるネットワークシステム1について説明する。
図1に示すように、このネットワークシステム1は、SFC(Service Function Chaining)技術に基づいて、ネットワーク上に分散して配置されている複数のデータ処理機能を連携させることにより、ユーザに対して各種のネットワークサービスを提供する機能を有している。なお、本発明におけるネットワークサービスとは、ネットワーク機能を提供するだけでなく、例えば、画像処理や動画処理など、ネットワーク上で動作する上位アプリケーションを含むものである。
[ネットワークシステム]
まず、図1を参照して、本実施の形態にかかるネットワークシステム1について説明する。
図1に示すように、このネットワークシステム1は、SFC(Service Function Chaining)技術に基づいて、ネットワーク上に分散して配置されている複数のデータ処理機能を連携させることにより、ユーザに対して各種のネットワークサービスを提供する機能を有している。なお、本発明におけるネットワークサービスとは、ネットワーク機能を提供するだけでなく、例えば、画像処理や動画処理など、ネットワーク上で動作する上位アプリケーションを含むものである。
ネットワークシステム1は、通信リンクLを介して相互に接続されて、ユーザが利用するネットワークサービスを構成するデータ処理を実行する複数のデータ処理装置10と、パケットにSFCヘッダ情報を付与するSFCヘッダ情報付与装置22と、ネットワークサービスを構成するデータ処理の連携を示すサービスパターンに基づいて、データ処理装置10を制御して所定の順序で連携させることにより、ネットワークサービスをユーザに対して提供する制御装置20とから構成される。
データ処理装置10は、主な機能部として、ユーザが利用するネットワークサービスを構成するデータ処理を実行するデータ処理部(SF)11S、各パケットのヘッダ情報に基づいて処理順序の並び替えを行うパケット順序制御部(SR)12S、および、データ処理部11Sで処理するサービスデータを転送するパケット転送部(SFF)13Sと、ユーザが利用するネットワークサービスを構成するデータ処理を実行するデータ処理回路(HF)11H、各パケットのヘッダ情報に基づいて処理順序の並び替えを行うパケット順序制御回路(HR)12H、および、データ処理回路11Hで処理するサービスデータを転送するパケット転送回路(HFF)13Hとを備えている。
ネットワークシステム1において、外部通信ネットワークNWからのパケットは、SFCヘッダ情報付与装置22でSFCヘッダ情報が付与される。ネットワークシステム1内では、このSFCヘッダ情報を元にして、データ処理装置10のパケット転送部13Sまたはパケット転送回路13Hでルーティングが行われる。
これにより、パケット転送部13Sでは、パケット順序制御部12Sを介して自装置のデータ処理部11Sまたはパケット転送部13Sに転送されるか、他のデータ処理装置10に転送される。また、パケット転送回路13Hでは、パケット順序制御回路12Hを介して自装置のデータ処理回路11Hまたはパケット転送回路13Hに転送されるか、他のデータ処理装置10に転送される。
この際、パケットは1つ以上のデータ処理部11Sまたはデータ処理回路11Hにおいて計算され、ユーザ端末21に送られる。この仕組みにより、ユーザが必要とした処理はネットワーク上で行われるため、ユーザ端末21での処理が削減される。
この際、パケットは1つ以上のデータ処理部11Sまたはデータ処理回路11Hにおいて計算され、ユーザ端末21に送られる。この仕組みにより、ユーザが必要とした処理はネットワーク上で行われるため、ユーザ端末21での処理が削減される。
[データ処理装置]
次に、図2を参照して、本実施の形態にかかるデータ処理装置10について説明する。
図2に示すように、データ処理装置10は、主にCPU(ハードウェア)とプログラム(ソフトウェア)とが協働することにより、ユーザが利用するネットワークサービスを構成するデータ処理を実現するように構成されたソフトウェア処理部10S、主にハードウェアにより、ユーザが利用するネットワークサービスを構成するデータ処理を実現するように構成されたハードウェア処理部10H、および通信リンクLを介してデータ通信を行う1つまたは複数の入出力回路15から構成されており、例えば、汎用サーバとFPGA(Field-Programmable Gate Array)を組み合わせることで実現される。
次に、図2を参照して、本実施の形態にかかるデータ処理装置10について説明する。
図2に示すように、データ処理装置10は、主にCPU(ハードウェア)とプログラム(ソフトウェア)とが協働することにより、ユーザが利用するネットワークサービスを構成するデータ処理を実現するように構成されたソフトウェア処理部10S、主にハードウェアにより、ユーザが利用するネットワークサービスを構成するデータ処理を実現するように構成されたハードウェア処理部10H、および通信リンクLを介してデータ通信を行う1つまたは複数の入出力回路15から構成されており、例えば、汎用サーバとFPGA(Field-Programmable Gate Array)を組み合わせることで実現される。
ソフトウェア処理部10Sは、主な機能部として、サービスデータを含む1つ以上のパケットをまとめてデータ処理する1つまたは複数のデータ処理部(SF)11Sと、入出力回路15を介して装置外部から受信したパケットをデータ処理部11Sまたは他のデータ処理装置10に転送するパケット転送部(SFF)13Sと、データ処理部11Sごとに設けられて、対応するデータ処理部11Sとパケット転送部13Sとの間でやり取りする各パケットのヘッダ情報に基づいて処理順序の並び替えを行うパケット順序制御部(SR)12Sと、入出力回路15を介して装置外部からパケット転送先情報を取得する転送制御部14Sとを備えている。
ハードウェア処理部10Hは、主な機能部として、サービスデータを含む1つ以上のパケットをまとめてデータ処理する1つまたは複数のデータ処理回路(HF)11Hと、入出力回路15を介して装置外部から受信したパケットをデータ処理回路11Hまたは他のデータ処理装置10に転送するパケット転送回路(HFF)13Hと、データ処理回路11Hごとに設けられて、パケット転送回路13Hから入力されたパケットのデータを対応するデータ処理回路11Hへ転送する際、これらパケットのヘッダ情報に含まれるパケットIDの順序に従って順に選択してデータを転送するパケット順序制御回路(HR)12Hと、入出力回路15を介して装置外部からパケット転送先情報を取得する転送制御回路14Hとを備えている。
図2の構成例では、ソフトウェア処理部10Sおよびハードウェア処理部10Hに、それぞれデータ処理部11Sおよびデータ処理回路11Hが2つずつ設けられている例が示されているが、データ処理部11Sおよびデータ処理回路11Hの数についてはこれに限定されるものではない。
また、転送制御部14Sおよび転送制御回路14Hは、パケット転送先情報を相互にやり取りする機能を有している。また、入出力回路15はパケットを相互にやり取りする機能を有している。
また、転送制御部14Sおよび転送制御回路14Hは、パケット転送先情報を相互にやり取りする機能を有している。また、入出力回路15はパケットを相互にやり取りする機能を有している。
入出力回路15が受信したパケットは、対応するパケット転送部13Sまたはパケット転送回路13Hに転送される。ソフトウェア処理部10Sにおいて、パケット転送部13Sは、入力パケットのSFCヘッダ情報に基づいて、入出力回路15、パケット順序制御部12S、もしくはパケット転送回路13Hに入力パケットを転送する。パケットに関する転送先情報は、転送制御部14Sによって管理される。ハードウェア処理部10Hにおいて、パケット転送回路13Hは、入力パケットのSFCヘッダ情報に基づいて、入出力回路15、パケット順序制御回路12H、もしくはパケット転送部13Sに入力パケットを転送する。パケットに関する転送先情報は、転送制御回路14Hによって管理される。
ソフトウェア処理部10Sにおいて、パケットを用いてデータ処理を行う場合、パケットは、パケット転送部13Sからパケット順序制御部12Sを経由して、データ処理部11Sに転送される。この際、パケット順序制御部12Sでは、パケットの処理順序に関する制御と、パケットのパースとが行われる。データ処理部11Sで計算されたデータは、パケット順序制御部12Sでパケットに整形された後、パケット転送部13Sに転送される。
ハードウェア処理部10Hにおいて、パケットを用いてデータ処理を行う場合、パケットは、パケット転送回路13Hからパケット順序制御回路12Hを経由して、データ処理回路11Hに転送される。この際、パケット順序制御回路12Hでは、パケットの処理順序に関する制御と、パケットのパースとが行われる。データ処理回路11Hで計算されたデータは、パケット順序制御回路12Hでパケットに整形された後、パケット転送回路13Hに転送される。
データ処理装置10内で必要な処理が終わったパケットは、入出力回路15を経由して他のデータ処理装置10へ転送される。これを各データ処理装置10で繰り返すことで、ユーザが必要とした処理が順番に実行され、最終的な計算結果がユーザ端末21に届くことになる。
[パケット順序制御回路]
次に、図3Aを参照して、本実施の形態にかかるパケット順序制御回路12Hについて説明する。
図3Aに示すように、パケット順序制御回路12Hは、全体としてハードウェアにより実現されており、主な回路部として、パケット受信回路30、比較回路31、バッファ32、パケット選択回路33、データ解析回路34、データ送信回路35、制御回路36、データ受信回路37、パケット生成回路38、およびパケット送信回路39を備えている。
次に、図3Aを参照して、本実施の形態にかかるパケット順序制御回路12Hについて説明する。
図3Aに示すように、パケット順序制御回路12Hは、全体としてハードウェアにより実現されており、主な回路部として、パケット受信回路30、比較回路31、バッファ32、パケット選択回路33、データ解析回路34、データ送信回路35、制御回路36、データ受信回路37、パケット生成回路38、およびパケット送信回路39を備えている。
なお、ソフトウェア処理部10Sのパケット順序制御部12Sは、パケット順序制御回路12Hと同様の機能を備えているものであり、ここでの詳細な説明は省略する。
すなわち、図3Bに示すように、パケット順序制御部12Sは、全体としてCPUとプログラムとが協働することにより実現されており、主な処理部として、パケット受信部70、比較部71、バッファ72、パケット選択部73、データ解析部74、データ送信部75、制御部76、データ受信部77、パケット生成部78、およびパケット送信部79を備えている。これら処理部は、パケット順序制御回路12Hのパケット受信回路30、比較回路31、バッファ32、パケット選択回路33、データ解析回路34、データ送信回路35、制御回路36、データ受信回路37、パケット生成回路38、およびパケット送信回路39にそれぞれ対応している。
すなわち、図3Bに示すように、パケット順序制御部12Sは、全体としてCPUとプログラムとが協働することにより実現されており、主な処理部として、パケット受信部70、比較部71、バッファ72、パケット選択部73、データ解析部74、データ送信部75、制御部76、データ受信部77、パケット生成部78、およびパケット送信部79を備えている。これら処理部は、パケット順序制御回路12Hのパケット受信回路30、比較回路31、バッファ32、パケット選択回路33、データ解析回路34、データ送信回路35、制御回路36、データ受信回路37、パケット生成回路38、およびパケット送信回路39にそれぞれ対応している。
パケット受信回路30は、パケット転送回路13Hからパケットを受信し、受信したパケットを比較回路31に転送する機能と、制御回路36からの指示に応じてパケットをバッファ32またはパケット選択回路33へ転送する機能とを有している。
バッファ32は、全体として半導体メモリから構成されて、パケットの処理順序を制御するためにパケットを一時的に格納しておくためのリングバッファとして用いられる。
バッファ32は、全体として半導体メモリから構成されて、パケットの処理順序を制御するためにパケットを一時的に格納しておくためのリングバッファとして用いられる。
比較回路31は、入力されたパケットのヘッダ情報からそのパケットに割り当てられたパケットIDを取得して、比較回路31が保持する次選択IDと比較し、比較結果を制御回路36に出力する機能を有している。次選択IDは、その時点でデータ処理回路11Hに送るパケットを判別するために用いる値で、パケットの処理順序を示している。
パケット選択回路33は、制御回路36からの指示に応じて、バッファ32から読み出したパケットまたはパケット受信回路30から入力されたパケットのいずれかを選択して、データ解析回路34へ出力する機能を有している。
制御回路36は、比較回路31からの比較結果を取得し、パケットIDと次選択IDが一致し、受信したパケットが転送対象であった場合、バッファ32に格納せずにパケット選択回路33を制御してそのパケットをデータ解析回路34に転送する機能と、パケットIDと次選択IDが不一致だった場合、パケット受信回路30を制御してそのパケットをバッファ32に格納する機能と、バッファ32に格納されているパケットのパケットIDと次選択IDが一致した場合(時点)において、パケット選択回路33を制御してそのパケットをバッファ32から読み出してデータ解析回路34に転送する機能とを有している。
また、制御回路36は、バッファ32に入力されたパケットを格納する際、バッファ32のうち、パケットIDと次選択IDとの差分だけ、次選択IDに対応する基準位置から進んだ格納位置に入力されたパケットを格納する機能と、転送処理の対象としてバッファ32からパケットを選択する際、バッファ32に格納されているそれぞれのパケットの先頭位置と、次選択IDに対応する基準位置とを比較し、これら先頭位置と基準位置とが一致した場合は、先頭位置に格納されているパケットを転送処理の対象として選択する機能とを有している。
データ解析回路34は、入力されたパケットからヘッダ情報を除くデータを取得し、データ送信回路35を介してデータ処理回路11Hへ送信する機能と、入力されたパケットから取得したヘッダ情報をパケット生成回路38に転送する機能とを有している。
パケット生成回路38は、データ受信回路37を介してデータ処理回路11Hから受信したデータ処理後のデータと、データ解析回路34からのヘッダ情報とを合わせて、パケットを生成する機能を有している。
パケット送信回路39は、パケット生成回路38で生成したパケットをパケット転送回路13Hに送信する機能を有している。
パケット送信回路39は、パケット生成回路38で生成したパケットをパケット転送回路13Hに送信する機能を有している。
ネットワークシステム1で用いるパケット40は、一般的なEthernet(登録商標)IIのフレーム形式を用いている。図4のパケットフォーマットに示すように、パケット40のデータ部41は、IPヘッダ情報42、UDPヘッダ情報43、ユーザ定義ヘッダ情報44、およびデータ部45から構成されている。IPヘッダ情報42とUDPヘッダ情報43は規格で定められたヘッダ情報だが、ユーザ定義ヘッダ情報44はOSI参照モデルにおける第5層(セッション層)、第6層(プレゼンテーション層)、または第7層(アプリケーション層)と対応する領域に格納されて、これらレイヤにおける処理で用いられる独自のヘッダ情報である。
本発明にかかるパケットは、このユーザ定義ヘッダ情報44に、SFCヘッダ情報付与装置22で付与されるSFCヘッダ情報46や、パケット順序制御回路12Hで用いるパケットID47などの各種の独自情報を含んでいる。パケットID47は、パケット間で連続したシーケンシャルな値であり、パケットの処理順序を示す次選択IDと比較される。データ部45には、データ処理部11Sおよびデータ処理回路11Hにおいて、実際にネットワークサービスのためのデータ処理に使用されるデータが格納される。
[本実施の形態の動作]
次に、図5を参照して、本実施の形態にかかるハードウェア処理部10Hのパケット順序制御回路12Hの動作について説明する。なお、ソフトウェア処理部10Sのパケット順序制御部12Sは、以下に示すパケット順序制御回路12Hと同様に動作するものであり、ここでの詳細な説明は省略する。
次に、図5を参照して、本実施の形態にかかるハードウェア処理部10Hのパケット順序制御回路12Hの動作について説明する。なお、ソフトウェア処理部10Sのパケット順序制御部12Sは、以下に示すパケット順序制御回路12Hと同様に動作するものであり、ここでの詳細な説明は省略する。
図5に示すように、時刻TとT+1では、入力パケット(50)のパケットID(=1、2)とパケットの処理順序を示す次選択ID(51)(=1、2)とが一致していることから、入力パケットが出力データ(54)として転送される。このとき、次選択IDを次のパケットIDに更新する。
一方、時刻T+2〜T+4では、入力パケットのパケットID(=6、4、5)と次選択ID(=3)が一致しないため、入力パケットをバッファ32(52)に格納する。パケットを格納するアドレスの特定方法については後述する。
一方、時刻T+2〜T+4では、入力パケットのパケットID(=6、4、5)と次選択ID(=3)が一致しないため、入力パケットをバッファ32(52)に格納する。パケットを格納するアドレスの特定方法については後述する。
時刻T+5において、入力パケットのパケットID(=3)と次選択ID(=3)が一致 するため、入力パケットが出力データとして転送され、次選択IDを次のパケットID(=4)に更新される。
これにより、 時刻T+6では、バッファ32に格納されたパケットのパケットID(=4)が次選択ID(=4)と一致するため、該当の格納パケット(53)はバッファ32から取り出され、出力データとして転送される。 この間に次の入力パケット(パケットID=7)が到着した場合、出力対象外であることからバッファ32に格納される。
これにより、 時刻T+6では、バッファ32に格納されたパケットのパケットID(=4)が次選択ID(=4)と一致するため、該当の格納パケット(53)はバッファ32から取り出され、出力データとして転送される。 この間に次の入力パケット(パケットID=7)が到着した場合、出力対象外であることからバッファ32に格納される。
次に、図6を参照して、本実施の形態にかかるバッファ32の動作について説明する。
図6に示すように、バッファ32は、リングバッファにより構成し、基準アドレス(tp:基準位置)60、先頭アドレス(sp:先頭位置)61、末尾アドレス(ep:末尾位置)62によって管理する。spとepはパケットの格納区間の先頭と末尾の1つ後を示し、tpは出力対象のパケットをバッファ32に格納すると仮定した場合の格納位置である。
図6に示すように、バッファ32は、リングバッファにより構成し、基準アドレス(tp:基準位置)60、先頭アドレス(sp:先頭位置)61、末尾アドレス(ep:末尾位置)62によって管理する。spとepはパケットの格納区間の先頭と末尾の1つ後を示し、tpは出力対象のパケットをバッファ32に格納すると仮定した場合の格納位置である。
リングバッファは、アドレスが末尾に達すると先頭に戻る動作をするため、終端とそれ以外においてはtpとspとepの値の大小関係が逆転する。しかし、それぞれの変数間は一致、不一致のみが重要であるため、各変数は同じルールに基づいて値を更新すれば問題はない。したがって、終端処理では値が末尾に達したとき、先頭に戻すだけでよい。
入力パケットをバッファ32に追加する場合には、パケットIDと次選択IDの相対距離(=tpからの距離)を計算し、その結果をバッファ32のアドレスに変換する。そして、得られたアドレスの位置にパケットを格納する。tpは次選択IDと連動して更新し、tpとspが一致した時、spの位置に格納されている格納パケットをバッファ32から取り出す。その後、spを次の先頭パケットの格納位置に更新する。
図6の時刻Tにおいて、バッファ32は空であり、tpとspとepは同じ位置(=2)を示しており、入力パケットのパケットID(=2)とパケットの処理順序を示す次選択ID(=2)とが一致していることから、入力パケットが出力データとして転送される。このとき、spとepを更新する(=3)とともに、次選択IDとtpを次のパケットID(=3)に更新する。
続く、時刻T+1では、入力パケットのパケットID(=6)が次選択ID(=3)と一致しないため、入力パケットはバッファ32に格納する。このとき、パケットを次選択IDと入力パケットのパケットIDの差分(=6−3=3)だけtp(=3)より、格納アドレス順に沿って、時計回りに進んだ格納位置np(=6)に格納する。このとき、spをパケットを格納した位置(=6)に合わせ、epをその次の格納位置(=7)に合わせる。
同様に、時刻T+2では、ID不一致のため、差分4−3=1だけtp(=3)より時計回りに進んだ格納位置np(=4)に格納する。このとき、先頭のパケットが変わるため、spをパケットIDが4のパケットを格納した位置(=4)に合わせる。
次の時刻T+3では、ID不一致のため、差分5−3=2だけtp(=3)より時計回りに進んだ格納位置np(=5)に格納する。このときは、パケットの先頭と末尾は変わらないため、spとepを修正する必要はない。
次の時刻T+3では、ID不一致のため、差分5−3=2だけtp(=3)より時計回りに進んだ格納位置np(=5)に格納する。このときは、パケットの先頭と末尾は変わらないため、spとepを修正する必要はない。
続く、時刻T+4では、入力パケットのパケットID(=3)と次選択ID(=3)が一致することから、入力パケットはバッファ32に格納されることなく、出力データとして転送される。このとき、次選択IDは更新されて4となり、tpが指し示すパケット格納位置は1つ隣の格納位置(=4)に更新される。
この後、時刻T+5では、バッファ32のsp(=4)が示す格納位置にあるパケットがtpが示すパケット格納位置(=4)と一致するため、該当のパケット(パケットID=4)がバッファ32から取り出されて、出力データとして転送される。このとき、次選択IDは更新されて5となり、tpとspが指し示すパケット格納位置は1つ隣の格納位置(=5)に更新される。
この後、入力パケットのパケットID(=7)が次選択ID(=5)と一致しないため、差分7−5=2だけtp(=5)より時計回りに進んだ格納位置np(=7)に格納する。このとき、epをその次の格納位置(=8)に合わせる。
以上の動作により、バッファ32に格納されたパケットはその所在を一意に特定することが可能であるため、パケット単位で転送すべきタイミングにおいてデータ処理回路11Hへの転送が可能である。
なお、一部のパケットが届かない状況も想定できるが、その場合は時間経過やパケットが一定量以上バッファ32に格納された場合に、次選択IDを強制的に更新することで、処理がストールすることを防ぐことができる。
なお、一部のパケットが届かない状況も想定できるが、その場合は時間経過やパケットが一定量以上バッファ32に格納された場合に、次選択IDを強制的に更新することで、処理がストールすることを防ぐことができる。
[パケット受信処理]
次に、図7を参照して、本実施の形態にかかるパケット順序制御回路12Hでのパケット受信処理について説明する。
次に、図7を参照して、本実施の形態にかかるパケット順序制御回路12Hでのパケット受信処理について説明する。
図7に示すように、まず、パケット順序制御回路12Hは、予め設定されている各種処理パラメータを初期化した後(ステップ100)、パケット転送回路13Hからパケットを受信するまで待機する(ステップ101:NO)。
パケット転送回路13Hからパケットを受信した場合(ステップ101:YES)、パケット順序制御回路12Hは、受信した入力パケットのパケットIDと次選択IDとを比較する(ステップ102)。
パケット転送回路13Hからパケットを受信した場合(ステップ101:YES)、パケット順序制御回路12Hは、受信した入力パケットのパケットIDと次選択IDとを比較する(ステップ102)。
ここで、これらパケットIDと次選択IDとが一致した場合(ステップ102:YES)、パケット順序制御回路12Hは、入力パケットの解析を行い(ステップ103)、入力パケットのヘッダ情報をパケット生成回路38に転送し(ステップ104)、入力パケットに格納されているデータをデータ処理回路11Hに向けて出力する(ステップ105)。
その後、パケット順序制御回路12Hは、次選択IDを次のパケットIDに更新するとともにtpも合わせて更新し(ステップ106)、外部からの制御信号等に基づいて動作の終了判定を行う(ステップ107)。ここで、パケット受信処理を続行する場合には(ステップ107:NO)、ステップ101に戻り、パケット受信処理を終了する場合には(ステップ107:YES)、一連のパケット受信処理を終了する。
一方、入力パケットのパケットIDと次選択IDとが一致しなかった場合(ステップ102:NO)、パケット順序制御回路12Hは、バッファ32に空きがあるかを判定する(ステップ108)。
ここで、空きがあれば(ステップ108:YES)、前述した手法によって、バッファ32におけるパケット格納位置を計算し(ステップ109)、その位置にパケットを格納し(ステップ110)、spとepの探索・更新を行った後(ステップ112)、ステップ107へ移行する。また、空きがなければ(ステップ108:NO)、そのパケットを破棄して(ステップ112)、ステップ107へ移行する。
ここで、空きがあれば(ステップ108:YES)、前述した手法によって、バッファ32におけるパケット格納位置を計算し(ステップ109)、その位置にパケットを格納し(ステップ110)、spとepの探索・更新を行った後(ステップ112)、ステップ107へ移行する。また、空きがなければ(ステップ108:NO)、そのパケットを破棄して(ステップ112)、ステップ107へ移行する。
[パケット転送処理]
次に、図8を参照して、本実施の形態にかかるパケット順序制御回路12Hでのパケット転送処理について説明する。
次に、図8を参照して、本実施の形態にかかるパケット順序制御回路12Hでのパケット転送処理について説明する。
図8に示すように、まず、パケット順序制御回路12Hは、予め設定されている各種処理パラメータの初期化した後(ステップ200)、バッファ32が空き状態ではなくなるまで、すなわちパケットがバッファ32に格納されるまで待機する(ステップ201:YES)。
いずれかのパケットがバッファ32に格納された場合(ステップ201:NO)、パケット順序制御回路12Hは、spが示すバッファ32内の先頭パケットのパケットIDと、tpが示す対象パケットの次選択IDとを比較する(ステップ202)。
ここで、これらパケットIDと次選択IDとが一致しなかった場合(ステップ202:NO)、ステップ201に戻る。
いずれかのパケットがバッファ32に格納された場合(ステップ201:NO)、パケット順序制御回路12Hは、spが示すバッファ32内の先頭パケットのパケットIDと、tpが示す対象パケットの次選択IDとを比較する(ステップ202)。
ここで、これらパケットIDと次選択IDとが一致しなかった場合(ステップ202:NO)、ステップ201に戻る。
一方、パケットIDと次選択IDとが一致した場合(ステップ202:YES)、パケット順序制御回路12Hは、spの位置に格納されたパケットをバッファ32から読み出して(ステップ203)、データ解析回路34によりパケットを解析し(ステップ204)、パケットのヘッダ情報をパケット生成回路38に転送し(ステップ205)、パケットに格納されているデータをデータ処理回路11Hへ出力する(ステップ206)。
続いて、パケット順序制御回路12Hは、spを更新してバッファ32内に格納された次の先頭パケットを探索する(ステップ207)。このとき、spとepが一致したら、バッファ32内にパケットは格納されていないと判断できるため、探索を停止する。合わせて次選択IDとtpを更新する(ステップ208)。
この後、外部からの制御信号等に基づいて動作の終了判定を行う(ステップ209)。ここで、パケット転送処理を続行する場合には(ステップ209:NO)、ステップ201に戻り、パケット転送処理を終了する場合には(ステップ209:YES)、一連のパケット転送処理を終了する。
以上により、パケット順序制御回路12Hは、パケット順序を保証し、データ処理回路11Hに適切な順序でデータを渡すことができる。
以上により、パケット順序制御回路12Hは、パケット順序を保証し、データ処理回路11Hに適切な順序でデータを渡すことができる。
[本実施の形態の動作例]
次に、図9を参照して、本実施の形態の動作例について説明する。
画像データ等のリアルタイム通信でよく用いられるUDP通信では、パケットの順序を特定する手段は実装されていない。このため、通信経路上でパケットの順序が入れ替わる場合があるが、受信したパケットを組み立てて元の画像データを再生する際、効率よく処理する上で、パケットの順序は重要となる。
そこで、本実施の形態を適用して、UDPヘッダよりも上位にアプリケーションに関連する情報を定義するヘッダ(図4のユーザ定義ヘッダ44)を追加し、パケットの順序制御に利用することを考える。
次に、図9を参照して、本実施の形態の動作例について説明する。
画像データ等のリアルタイム通信でよく用いられるUDP通信では、パケットの順序を特定する手段は実装されていない。このため、通信経路上でパケットの順序が入れ替わる場合があるが、受信したパケットを組み立てて元の画像データを再生する際、効率よく処理する上で、パケットの順序は重要となる。
そこで、本実施の形態を適用して、UDPヘッダよりも上位にアプリケーションに関連する情報を定義するヘッダ(図4のユーザ定義ヘッダ44)を追加し、パケットの順序制御に利用することを考える。
図9に2枚の画像を連続して送信する例を示す。ここでは各画像(frameID=0〜1)を4つのブロック(blockID=1〜4)に分割してそれぞれをパケット化して順番に送信している。このとき、各パケットのユーザ定義ヘッダ44にframeIDとblockIDを保持しておくことで、データ処理部11Hでは各パケットが属している画像および座標を特定することができるとともに、パケットの送信順序を判別するのに応用することが可能である。
例えば、1画像あたりに含まれるブロック数、すなわちブロック分割数をNとし、パケットの送信順序として、整数値がシーケンシャルに割り当てられるpacketIDを、次の式により計算する。
packetID=N×(frameID)+(blockID)
packetID=N×(frameID)+(blockID)
これにより、図9の例では、各画像には4つのブロックが含まれており、N=4となる。このため、最初に送信されるframeID=0、blockID=1のデータを含むパケットのpacketIDは4×0+1=1と計算される。また、frameID=1、blockID=1のデータを含むパケットのIDは4×1+1=5と計算される。
したがって、このようにして計算したpacketIDを用いれば、パケット順序制御部12Hにおいてパケット順序を正しく保証することができる。
したがって、このようにして計算したpacketIDを用いれば、パケット順序制御部12Hにおいてパケット順序を正しく保証することができる。
[本実施の形態の効果]
このように、本実施の形態は、パケット順序制御回路12Hに、パケットを一時格納しておくためのバッファ32を設け、比較回路31が、入力されたパケットのパケットIDと、順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較し、制御回路36が、比較の結果、パケットIDと次選択IDとが一致した場合は、当該パケットを転送処理の対象として選択し、これらパケットIDと次選択IDとが一致しなかった場合は、当該パケットIDと対応する格納位置に当該パケットを格納し、次選択IDに対応するパケットIDを持つパケットがバッファ32に格納されている場合、当該パケットを転送処理の対象として選択するようにしたものである。
このように、本実施の形態は、パケット順序制御回路12Hに、パケットを一時格納しておくためのバッファ32を設け、比較回路31が、入力されたパケットのパケットIDと、順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較し、制御回路36が、比較の結果、パケットIDと次選択IDとが一致した場合は、当該パケットを転送処理の対象として選択し、これらパケットIDと次選択IDとが一致しなかった場合は、当該パケットIDと対応する格納位置に当該パケットを格納し、次選択IDに対応するパケットIDを持つパケットがバッファ32に格納されている場合、当該パケットを転送処理の対象として選択するようにしたものである。
より具体的には、制御回路36が、バッファ32にパケットを格納する際、バッファ32のうち、パケットIDと次選択IDとの差分だけ基準位置から進んだ格納位置に当該パケットを格納し、転送処理の対象としてバッファ32からパケットを選択する際、バッファ32に格納されているパケットの先頭位置と、次選択IDに対応する基準位置とを比較し、これら先頭位置と基準位置とが一致した場合は、先頭位置に格納されているパケットを転送処理の対象として選択するようにしたものである。
これにより、パケットIDの順序に従って、パケット順序制御回路12Hに入力されたパケットを、データ処理回路11Hへの転送対象として選択するか、もしくは、バッファ32に一時格納するかが、パケットIDと次選択IDとに基づいて正確に判定されることになる。このため、パケットが転送対象として選択した場合は、バッファ32を経由することなくデータ処理回路11Hへ転送することができる。また、バッファ32に格納されているパケットはパケットIDに基づいてその格納場所を一意に特定することができるため、次選択IDと対応するパケットをバッファ32から直ちに選択することが可能となる。
したがって、1つのバッファ32を設けるだけで、順次入力されるパケットを、これらパケットのヘッダ情報に含まれるパケットIDの順序に従って、順に選択することができる。このため、メモリリソースの制約が厳しいハードウェア実装であっても、最小限のメモリリソースでパケットの処理順序を保証することが可能となる。これにより、画像処理など、計算量が多くソフトウェア処理に向かないデータ処理が必要となるネットワークサービスであっても、メモリリソースの制約が厳しいハードウェア実装で実現することが可能となる。
[実施の形態の拡張]
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
1…ネットワークシステム、10…データ処理装置、10S…ソフトウェア処理部、10H…ハードウェア処理部、11S…データ処理部(SF)、11H…データ処理回路(HF)、12S…パケット順序制御部(SR)、12H…パケット順序制御回路(HR)、13S…パケット転送部(SFF)、13H…パケット転送回路(HFF)、14S…転送制御部、14H…転送制御回路、15…入出力回路、20…制御装置、21…ユーザ端末、22…SFCヘッダ情報付与装置(CL)、30…パケット受信回路、31…比較回路、32…バッファ、33…パケット選択回路、34…データ解析回路、35…データ送信回路、36…制御回路、37…データ受信回路、38…パケット生成回路、39…パケット送信回路、40…パケット、41…データ部、42…IPヘッダ情報、43…UDPヘッダ情報、44…ユーザ定義ヘッダ情報、45…データ部、46…SFCヘッダ情報、47…パケットID、70…パケット受信部、71…比較部、72…バッファ、73…パケット選択部、74…データ解析部、75…データ送信部、76…制御部、77…データ受信部、78…パケット生成部、79…パケット送信部、L…通信リンク。
Claims (9)
- 通信リンクを介してデータ通信を行う1つまたは複数の入出力回路と、
ユーザが利用するネットワークサービスを構成するデータ処理を、ハードウェアで実現するように構成されたハードウェア処理部とを備え、
前記ハードウェア処理部は、
入力されたデータに基づいて前記データ処理を実行するデータ処理回路と、
前記データ処理を実行するためのデータを含むパケットの受信、および、前記データ処理により得られたデータを含むパケットの送信を行うパケット転送回路と、
前記パケット転送回路で受信して入力されたパケットを、これらパケットのヘッダ情報に含まれるパケットIDの順序に従って順に選択し、選択したパケットに含まれるデータを前記データ処理回路へ転送する転送処理を行うパケット順序制御回路とを備え、
前記パケット順序制御回路は、
パケットを一時格納しておくためのバッファと、
入力されたパケットのパケットIDと、前記順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較する比較回路と、
前記比較回路での比較の結果、前記パケットIDと前記次選択IDとが一致しなかった場合は、前記バッファのうち前記パケットIDと対応する格納位置に前記入力されたパケットを格納し、前記パケットIDと前記次選択IDとが一致した場合は、前記入力されたパケットを前記バッファに格納せずに前記転送処理の対象として選択する制御回路とを備え、
前記制御回路は、前記次選択IDが前記バッファに格納されているパケットのパケットIDと一致した場合、前記パケットを前記転送処理の対象として選択する
ことを特徴とするデータ処理装置。 - 請求項1に記載のデータ処理装置において、
前記制御回路は、前記バッファに前記入力されたパケットを格納する際、前記バッファのうち、前記パケットIDと前記次選択IDとの差分だけ、前記次選択IDに対応する基準位置から進んだ格納位置に前記入力されたパケットを格納することを特徴とするデータ処理装置。 - 請求項1または請求項2に記載のデータ処理装置において、
前記制御回路は、前記転送処理の対象として前記バッファからパケットを選択する際、前記バッファに格納されているそれぞれのパケットの先頭位置と、前記次選択IDに対応する基準位置とを比較し、これら先頭位置と前記基準位置とが一致した場合は、前記先頭位置に格納されているパケットを前記転送処理の対象として選択することを特徴とするデータ処理装置。 - 請求項1〜請求項3のいずれかに記載のデータ処理装置において、
前記パケットIDは、前記パケットのうちOSI参照モデルにおける第5層、第6層、または第7層と対応する領域に格納されていることを特徴とするデータ処理装置。 - ネットワーク上に分散配置された複数のデータ処理装置を備え、これらデータ処理装置を連携させることにより、ユーザに対して各種のネットワークサービスを提供するネットワークシステムであって、少なくとも1つまたは複数の前記データ処理装置が、前記ネットワークサービスを構成するデータ処理をハードウェアで実現する、請求項1〜請求項4のいずれかに記載のデータ処理装置からなることを特徴とするネットワークシステム。
- 予め設定されている処理を行うパケットを一時格納しておくためのバッファと、
入力されたパケットに含まれるパケットIDと、パケットIDの順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較する比較回路と、
前記比較回路での比較の結果、前記パケットIDと前記次選択IDとが一致しなかった場合は、前記バッファのうち前記パケットIDと対応する格納位置に前記入力されたパケットを格納し、前記パケットIDと前記次選択IDとが一致した場合は、前記入力されたパケットを前記バッファに格納せずに前記処理の対象として選択する制御回路とを備え、
前記制御回路は、前記次選択IDが前記バッファに格納されているパケットのパケットIDと一致した場合、前記パケットを前記処理の対象として選択する
ことを特徴とするパケット順序制御回路。 - 通信リンクを介してデータ通信を行う1つまたは複数の入出力回路と、ユーザが利用するネットワークサービスを構成するデータ処理を、ハードウェアで実現するように構成されたハードウェア処理部とを備えるデータ処理装置で用いられるデータ処理方法であって、
データ処理回路が、入力されたデータに基づいて前記データ処理を実行するデータ処理ステップと、
パケット転送回路が、前記データ処理を実行するためのデータを含むパケットの受信、および、前記データ処理により得られたデータを含むパケットの送信を行うパケット転送ステップと、
パケット順序制御回路が、前記パケット転送ステップで受信して入力されたパケットを、これらパケットのヘッダ情報に含まれるパケットIDの順序に従って順に選択し、選択したパケットに含まれるデータを前記データ処理ステップへ転送する転送処理を行うパケット順序制御ステップとを備え、
前記パケット順序制御ステップは、
比較回路が、入力されたパケットのパケットIDと、前記順序に従って次に選択すべきパケットのパケットIDを示す次選択IDとを比較する比較ステップと、
制御回路が、前記比較回路での比較の結果、前記パケットIDと前記次選択IDとが一致しなかった場合は、パケットを一時格納しておくためのバッファのうち、前記パケットIDと対応する格納位置に前記入力されたパケットを格納し、前記パケットIDと前記次選択IDとが一致した場合は、前記入力されたパケットを前記バッファに格納せずに前記転送処理の対象として選択する制御ステップとを備え、
前記制御ステップは、前記次選択IDが前記バッファに格納されているパケットのパケットIDと一致した場合、前記パケットを前記転送処理の対象として選択する
ことを特徴とするデータ処理方法。 - 請求項7に記載のデータ処理方法において、
前記制御ステップは、前記バッファに前記入力されたパケットを格納する際、前記バッファのうち、前記パケットIDと前記次選択IDとの差分だけ、前記次選択IDに対応する基準位置から進んだ格納位置に当該パケットを格納することを特徴とするデータ処理方法。 - 請求項7または請求項8に記載のデータ処理方法において、
前記制御ステップは、前記転送処理の対象として前記バッファからパケットを選択する際、前記バッファに格納されているそれぞれのパケットの先頭位置と、前記次選択IDに対応する基準位置とを比較し、これら先頭位置と前記基準位置とが一致した場合は、前記先頭位置に格納されているパケットを前記転送処理の対象として選択することを特徴とするデータ処理方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017038051 | 2017-03-01 | ||
JP2017038051 | 2017-03-01 | ||
PCT/JP2018/007501 WO2018159677A1 (ja) | 2017-03-01 | 2018-02-28 | データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2018159677A1 true JPWO2018159677A1 (ja) | 2019-11-07 |
JP6654733B2 JP6654733B2 (ja) | 2020-02-26 |
Family
ID=63370678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019503062A Active JP6654733B2 (ja) | 2017-03-01 | 2018-02-28 | データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10891246B2 (ja) |
JP (1) | JP6654733B2 (ja) |
CN (1) | CN110383779B (ja) |
WO (1) | WO2018159677A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023072282A (ja) * | 2021-11-12 | 2023-05-24 | 日本電信電話株式会社 | データ処理システムおよびデータ処理方法 |
JP2023072284A (ja) * | 2021-11-12 | 2023-05-24 | 日本電信電話株式会社 | データ転送デバイス、データ処理デバイスおよびデータ処理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003023462A (ja) * | 2001-07-09 | 2003-01-24 | Hitachi Ltd | 多地点同報通信網用再送方法 |
JP2016046736A (ja) * | 2014-08-25 | 2016-04-04 | 日本電信電話株式会社 | サービスチェイニングシステム、サービスチェイニングフォワーダ装置、及びサービスチェイニング方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289023B1 (en) * | 1997-09-25 | 2001-09-11 | Hewlett-Packard Company | Hardware checksum assist for network protocol stacks |
JP5524584B2 (ja) * | 2009-11-20 | 2014-06-18 | キヤノン株式会社 | 画像処理装置及びその制御方法 |
KR101401874B1 (ko) * | 2010-02-22 | 2014-05-29 | 닛본 덴끼 가부시끼가이샤 | 통신제어 시스템, 스위칭 노드, 통신제어 방법, 및 통신제어용 프로그램 |
US8903966B2 (en) * | 2011-06-01 | 2014-12-02 | International Business Machines Corporation | Re-programming programmable hardware devices without system downtime |
US9477631B2 (en) * | 2014-06-26 | 2016-10-25 | Intel Corporation | Optimized credit return mechanism for packet sends |
-
2018
- 2018-02-28 WO PCT/JP2018/007501 patent/WO2018159677A1/ja active Application Filing
- 2018-02-28 CN CN201880015077.2A patent/CN110383779B/zh active Active
- 2018-02-28 US US16/490,393 patent/US10891246B2/en active Active
- 2018-02-28 JP JP2019503062A patent/JP6654733B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003023462A (ja) * | 2001-07-09 | 2003-01-24 | Hitachi Ltd | 多地点同報通信網用再送方法 |
JP2016046736A (ja) * | 2014-08-25 | 2016-04-04 | 日本電信電話株式会社 | サービスチェイニングシステム、サービスチェイニングフォワーダ装置、及びサービスチェイニング方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110383779B (zh) | 2021-09-14 |
US10891246B2 (en) | 2021-01-12 |
WO2018159677A1 (ja) | 2018-09-07 |
JP6654733B2 (ja) | 2020-02-26 |
US20200192833A1 (en) | 2020-06-18 |
CN110383779A (zh) | 2019-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109361600B (zh) | 一种获取路径标识的方法和设备 | |
EP3331205B1 (en) | Data packet transmission method utilized in ipv6 network and device utilizing same | |
JP2022550343A (ja) | Srネットワークでパケットを転送する方法、デバイス、及びシステム | |
JP5993817B2 (ja) | キャリア網における経路制御システム及び方法 | |
CN108429701A (zh) | 网络加速系统 | |
CN113691460B (zh) | 基于负载均衡的数据传输方法、装置、设备及存储介质 | |
WO2011162230A1 (ja) | 情報処理システム、中継装置、および情報処理方法 | |
JP6654733B2 (ja) | データ処理装置、ネットワークシステム、パケット順序制御回路、およびデータ処理方法 | |
CN109800005A (zh) | 一种客户端热更新方法及装置 | |
US20140112142A1 (en) | Method of forwarding packet and apparatus thereof | |
CN109417507A (zh) | 部分延迟的报文访问 | |
US10516628B2 (en) | Transfer device, transfer system, and transfer method | |
JP2002077200A (ja) | 管理局及び機器並びにネットワークシステム | |
CN106130867B (zh) | 跨数据中心的虚拟机通信方法及装置 | |
JPWO2014168164A1 (ja) | ネットワーク検証装置、ネットワーク検証方法及びプログラム | |
US9210093B2 (en) | Alignment circuit and receiving apparatus | |
US10320661B2 (en) | Communication device and communication method | |
US9819571B2 (en) | Control apparatus and method for supplying switch with entry | |
CN114422453A (zh) | 一种在线规划时间敏感流的方法、装置及存储介质 | |
JP5618217B2 (ja) | ブロードキャスト配信システム、配信サーバ、ブロードキャスト配信方法およびプログラム | |
US20190391856A1 (en) | Synchronization of multiple queues | |
JP2016015672A (ja) | ネットワーク制御装置、及びネットワーク設定システム | |
CN114363236B (zh) | 一种基于显式路径的流量控制方法及相关设备 | |
WO2023085270A1 (ja) | データ転送デバイス、データ処理デバイスおよびデータ処理方法 | |
US11388078B1 (en) | Methods, systems, and computer readable media for generating and using statistically varying network traffic mixes to test network devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190508 |
|
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: 20200128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200130 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6654733 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |