JP2009055134A - Communication control unit, communication control method, and communication control program - Google Patents
Communication control unit, communication control method, and communication control program Download PDFInfo
- Publication number
- JP2009055134A JP2009055134A JP2007217549A JP2007217549A JP2009055134A JP 2009055134 A JP2009055134 A JP 2009055134A JP 2007217549 A JP2007217549 A JP 2007217549A JP 2007217549 A JP2007217549 A JP 2007217549A JP 2009055134 A JP2009055134 A JP 2009055134A
- Authority
- JP
- Japan
- Prior art keywords
- protocol
- hardware
- received data
- unit
- processing
- 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.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
Description
本発明は、ハードウェア結線された回路で通信制御を行う通信制御装置、通信制御方法及び通信制御プログラムに関するものである。 The present invention relates to a communication control apparatus, a communication control method, and a communication control program for performing communication control with a hardware-connected circuit.
従来から、インターネットを含むネットワーク環境において、ネットワークのハイスピード化及び複雑化が進む傾向にある。このような傾向になるに従い、当該ネットワーク環境で使用されるネットワークサーバでは、本来目的とするデータ処理以外に、ネットワーク経由のデータを送受信するための処理が多くなり、処理負担が大きくなる傾向にある。 2. Description of the Related Art Conventionally, in a network environment including the Internet, there has been a tendency for high-speed and complicated networks. Along with this trend, the network server used in the network environment tends to increase the processing load in addition to the originally intended data processing, because the processing for transmitting and receiving data via the network increases. .
近年、このネットワークサーバにおけるネットワーク処理の負荷低減するために、TOE(TCP/IPオフロードエンジン)という技術が提案されている。このTOEという技術とは、CPUに対して高い負荷をかけるネットワークプロトコル処理及びネットワークプロトコルのチェックサム処理等をハードウェア化するものである。そして、当該ハードウェアがネットワーク処理の一部又は全部を行うことで、ネットワークサーバのCPUの負荷を低減するものである。 In recent years, a technique called TOE (TCP / IP offload engine) has been proposed in order to reduce the load of network processing in the network server. This technology called TOE is a hardware that implements network protocol processing and network protocol checksum processing that place a high load on the CPU. And the said hardware performs a part or all of network processing, and reduces the load of CPU of a network server.
例えば、特許文献1に記載された技術では、ユーザからの要求を処理するホストプロセッサの他に、TCPプロトコル処理をオフロード可能とするプロセッサを備えたサーバ装置が提案されている。 For example, in the technique described in Patent Document 1, a server apparatus including a processor that can offload TCP protocol processing in addition to a host processor that processes a request from a user has been proposed.
このようにTOEを用いてハードウェア化を行った場合、ネットワークの階層モデルは、層は図23に示すような構造となる。図23に示すように、ソケット層より下は、ハードウェアにより実現された一つの層となっている。 When the hardware is implemented using the TOE in this way, the layer model of the network has a structure as shown in FIG. As shown in FIG. 23, the layer below the socket layer is one layer realized by hardware.
このようなTOEの技術は、通信を行うためのインターフェースからソケットより下の階層までをハードウェア化しているために、プロトコルの処理を行う場合には、ハードウェアオフロードにより、CPUの処理負担を軽減させることができる。 Since the TOE technology implements hardware from the interface for communication to the layer below the socket, when processing a protocol, the CPU processing load is reduced by hardware offload. It can be reduced.
しかしながら、現在のPCアーキテクチャにおいて、ネットワークを通信するために使用するネットワークインターフェースは一つだけではない。例えば、USB等を介して外部装置やネットワークに接続することも考えられている。 However, in the current PC architecture, there is not only one network interface used to communicate over the network. For example, connecting to an external device or a network via a USB or the like is also considered.
このような現在のPCアーキテクチャでは、ネットワークの階層毎に役割を定めることで、様々なネットワークインターフェースに対して適切な通信パケットを割り当てることを可能としている。 In such a current PC architecture, it is possible to assign appropriate communication packets to various network interfaces by defining roles for each network hierarchy.
つまり、TOEを使用した装置では、ソケット層より下の階層が一体化されているためにTOE内部のネットワークデバイスで通信制御する場合にしかCPUの処理負担を軽減できないという問題がある。 In other words, the device using the TOE has a problem that the processing load on the CPU can be reduced only when communication control is performed by a network device inside the TOE because the layers below the socket layer are integrated.
本発明は、上記に鑑みてなされたものであって、適切にプロセッサの処理負担を軽減させることができる通信制御装置、通信制御方法及び通信制御プログラムを提供することを目的とする。 The present invention has been made in view of the above, and an object of the present invention is to provide a communication control device, a communication control method, and a communication control program that can appropriately reduce the processing load on the processor.
上述した課題を解決し、目的を達成するために、本発明にかかる通信制御装置は、受信データに対してTCPによるプロトコル解析処理を行う、ハードウェア結線された回路であるハードウェアプロトコル処理部と、受信データに対してTCPによるプロトコルでプロトコル解析処理を行う、ソフトウェアで実現されたプロトコル処理部と、外部のネットワークと接続する複数のネットワークデバイスに対して、受信データの受信制御を行う通信制御部と、各前記ネットワークデバイスの受信量に基づいて、前記ネットワークデバイス毎に、当該ネットワークデバイスで通信制御される受信データを、前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせるか否か判断する判断部と、前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせると判断された場合に、前記受信データを前記ハードウェアプロトコル処理部に受け渡すハードウェア受渡部と、前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせないと判断された場合に、前記受信データを前記プロトコル処理部に受け渡すソフトウェア受渡部と、を備えることを特徴とする。 In order to solve the above-described problems and achieve the object, a communication control apparatus according to the present invention includes a hardware protocol processing unit that is a hardware-connected circuit that performs protocol analysis processing by TCP on received data. Protocol processing unit implemented in software that performs protocol analysis processing on received data using TCP protocol, and communication control unit that controls reception of received data for multiple network devices connected to an external network And determining whether or not to cause the hardware protocol control unit to perform protocol analysis processing on the received data that is communication-controlled by the network device for each network device based on the reception amount of each network device And the hardware protocol controller When it is determined that the protocol analysis processing is to be performed, it is determined that the protocol analysis processing is not performed by the hardware delivery unit that delivers the received data to the hardware protocol processing unit and the hardware protocol control unit. A software delivery unit that delivers the received data to the protocol processing unit.
また、本発明にかかる通信制御方法は、外部のネットワークと接続する複数のネットワークデバイスに対して、受信データの受信制御を行う通信制御ステップと、各前記ネットワークデバイスの受信量に基づいて、前記ネットワークデバイス毎に、当該ネットワークデバイスで通信制御される受信データを、ハードウェア結線された回路であるハードウェアプロトコル制御部でプロトコル解析処理を行わせるか否か判断する判断ステップと、前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせると判断された場合に、前記受信データを前記ハードウェアプロトコル処理部に受け渡すハードウェア受渡ステップと、前記ハードウェア受け渡しステップにより受け渡された前記受信データに対して、前記ハードウェアプロトコル処理部でTCPによるプロトコル解析処理を行うハードウェアプロトコル処理ステップと、前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせないと判断された場合に、前記受信データを前記プロトコル処理部に受け渡すソフトウェア受渡ステップと、前記ソフトウェア受渡ステップにより受け渡された前記受信データに対して、TCPによるプロトコル解析処理を行うプロトコル処理ステップと、を有することを特徴とする。 Further, the communication control method according to the present invention includes a communication control step for performing reception control of received data for a plurality of network devices connected to an external network, and the network based on a reception amount of each network device. A determination step for determining, for each device, whether or not to perform a protocol analysis process on received data controlled by the network device in a hardware protocol control unit that is a hardware-connected circuit; and the hardware protocol control A hardware delivery step of passing the received data to the hardware protocol processing unit, and the received data delivered by the hardware delivery step , The hardware protocol processing Hardware protocol processing step for performing protocol analysis processing by TCP in the unit, and software delivery for passing the received data to the protocol processing unit when the hardware protocol control unit determines not to perform protocol analysis processing And a protocol processing step of performing a protocol analysis process by TCP on the received data transferred by the software transfer step.
また、本発明にかかる通信制御プログラムは、外部のネットワークと接続する複数のネットワークデバイスに対して、受信データの受信制御を行う通信制御ステップと、各前記ネットワークデバイスの受信量に基づいて、前記ネットワークデバイス毎に、当該ネットワークデバイスで通信制御される受信データを、ハードウェア結線された回路であるハードウェアプロトコル制御部でプロトコル解析処理を行わせるか否か判断する判断ステップと、前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせると判断された場合に、前記受信データを前記ハードウェアプロトコル処理部に受け渡すハードウェア受渡ステップと、前記ハードウェア受け渡しステップにより受け渡された前記受信データに対して、前記ハードウェアプロトコル処理部でTCPによるプロトコル解析処理を行うハードウェアプロトコル処理ステップと、前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせないと判断された場合に、前記受信データを前記プロトコル処理部に受け渡すソフトウェア受渡ステップと、前記ソフトウェア受渡ステップにより受け渡された前記受信データに対して、TCPによるプロトコル解析処理を行うプロトコル処理ステップと、をコンピュータに実行させることを特徴とする。 Further, the communication control program according to the present invention is based on a communication control step of performing reception control of received data for a plurality of network devices connected to an external network, and based on the reception amount of each network device. A determination step for determining, for each device, whether or not to perform a protocol analysis process on received data controlled by the network device in a hardware protocol control unit that is a hardware-connected circuit; and the hardware protocol control A hardware delivery step of passing the received data to the hardware protocol processing unit, and the received data delivered by the hardware delivery step The hardware proto A hardware protocol processing step for performing protocol analysis processing by TCP in the protocol processing unit, and if the hardware protocol control unit determines not to perform protocol analysis processing, the received data is transferred to the protocol processing unit A software delivery step and a protocol processing step for performing a protocol analysis process using TCP on the received data delivered in the software delivery step are executed by a computer.
本発明によれば、ネットワークデバイスの受信量に基づいて、受信データのプロトコル解析処理を、ハードウェアプロトコル処理部又はプロトコル処理部に行わせるか判断することで、効率的にプロセッサの処理負担を軽減させることができるという効果を奏する。 According to the present invention, it is possible to efficiently reduce the processing load on the processor by determining whether the protocol analysis processing of the received data is performed by the hardware protocol processing unit or the protocol processing unit based on the reception amount of the network device. There is an effect that can be made.
以下に添付図面を参照して、この発明にかかる通信制御装置、通信制御方法及び通信制御プログラムの最良な実施の形態を詳細に説明する。なお、以下に示す実施の形態では通信制御装置を情報処理装置に適用した例について説明する。 Exemplary embodiments of a communication control device, a communication control method, and a communication control program according to the present invention will be explained below in detail with reference to the accompanying drawings. In the following embodiment, an example in which the communication control device is applied to an information processing device will be described.
図1は、実施の形態にかかる情報処理装置100のハードウェア構成を示した図である。図1に示すように情報処理装置100は、CPU101と、プロトコル処理回路102と、プロトコル処理回路102をバスに接続するアービタ103と、RAM104と、ROM105と、有線LAN106と、シリアル回線107と、無線LAN108と、USB109とを備えており、通常のコンピュータにプロトコル処理回路102を接続したハードウェア構成となっている。
FIG. 1 is a diagram illustrating a hardware configuration of the
そして、ROM105に格納されたプログラムが、RAM104上にロードされる。そして、CPU101がロードされたプログラムを用いて処理を行うことになる。
Then, the program stored in the
このCPU101は、当該プログラムを用いて、有線LAN106、シリアル回線107、無線LAN108及びUSB109を使用した通信制御を行う。
The CPU 101 performs communication control using the
プロトコル処理回路102に用いられている技術は、CPU101に対して高い負荷をかけるネットワークプロトコル処理及びネットワークプロトコルのチェックサム処理等をハードウェア化するものである。そして、当該ハードウェアがネットワーク処理の一部又は全部を行うことで、CPU101の負荷を低減する。
The technology used for the
また、プロトコル処理回路102は、現在提案されているTOEのハードウェア回路を適用し、TCP/UDP/ICMP/IPのプロトコルについて、CPUに対して高い負荷をかけるネットワークプロトコル処理及びネットワークプロトコルのチェックサム処理等をハードウェア回路で処理する。
Further, the
また、プロトコル処理回路102は、アービタ103を介してバスに接続され、有線LAN106、シリアル回線107、無線LAN108等のネットワークデバイスで、受信したデータをハードウェアで所定のプロトコルの解析をした後、例えばRAM104に格納する。また、プロトコル処理回路102は、上述したネットワークデバイスのうちも最もデータ送受信量が多いネットワークデバイスに対して、割り当てられる。
Further, the
アービタ103は、当該割り当てられたネットワークデバイスと、プロトコル処理回路102との間の通信を制御する。これにより、最もデータ送受信量が多いネットワークデバイスの処理をプロトコル処理回路102で行われるため、CPU101の処理負担を軽減させることができる。
The
次に情報処理装置100のソフトウェア構成について説明する。図2は情報処理装置100のネットワークをレイヤー構造で示した図である。図2に示すように、情報処理装置100は、ユーザプログラム層201、ソケット層202、プロトコル上位層203と、プロトコル層204と、ハードウェアプロトコル層205と、プロトコル下位層206と、インターフェース層207と、ネットワークデバイス208とを備えている。
Next, the software configuration of the
情報処理装置100では、ソケット層202、プロトコル層204、インターフェース層207について、従来から使用されているものをほぼ流用可能とする。これにより、広範に普及しているOSのカーネルに実装されたネットワーク処理を可能とする。そして、情報処理装置100では、新規にプロトコル上位層203、ハードウェアプロトコル層205、プロトコル下位層206を追加することで、従来のソフトウェアによるネットワーク処理と、ハードウェアプロトコル層205によるハードウェアオフロードとの共存を可能としている。
In the
ネットワークデバイス208は、ネットワークデバイス262a〜cを備え、外部のネットワークと送受信する。受信したデータは、インターフェース層207のインターフェースオブジェクト261a〜cに受け渡される。
The
インターフェース層207は、下位のネットワークデバイス208と、プロトコル下位層206との間に存在する層である。インターフェース層207は、ネットワークデバイス208が備えているハードウェアを抽象化することで、具体的なハードウェアを隠蔽し、ハードウェア毎にAPIを提供する。
The
また、インターフェース層207は、インターフェースオブジェクト261a〜cを備えている。当該インターフェースオブジェクト261a〜cは、物理的なネットワークデバイス毎に1対1に割り当てられているメモリオブジェクトである。また、インターフェースオブジェクト261a〜cは、当該ネットワークデバイスのハードウェア情報、アクセス先のアドレス情報及び当該ネットワークデバイスにアクセスするためのインターフェースを備えている。これにより、当該インターフェースオブジェクト261a〜cを操作することで、割り当てられたネットワークデバイスを制御することができる。
The
図3は、インターフェースクラスのクラス構造を示した図である。図3に示すように、インターフェースクラスは、属性としてアドレス情報と、ハードウェア情報と、を備えている。このアドレス情報には、対応付けられたネットワークデバイスで送受信を行うIPアドレスを格納する。また、ハードウェア情報には、割り当てられたネットワークデバイスに関する情報を格納する。また、これら属性は、図3の属性の左側に「+」記号が付されていることから把握できるように、外部に対して公開されている。また、他の操作も「+」記号が付されている場合は同様に外部に対して公開されている。 FIG. 3 is a diagram showing a class structure of the interface class. As shown in FIG. 3, the interface class includes address information and hardware information as attributes. This address information stores an IP address that is transmitted and received by the associated network device. The hardware information stores information related to the assigned network device. Further, these attributes are disclosed to the outside so that the “+” symbol is attached to the left side of the attributes in FIG. In addition, other operations are also disclosed to the outside when the “+” symbol is attached.
また、インターフェースクラスは、操作としてハードウェア、ドライバに対するアクセス制御()とプロトコル層から送信データを、ネットワークデバイスへの引き渡し制御()とを備えている。これら操作により、ネットワークデバイスを使用することができる。 The interface class includes, as operations, hardware and driver access control () and transmission control of the transmission data from the protocol layer to the network device (). With these operations, the network device can be used.
これらインターフェースクラスを実体化することで、インターフェースオブジェクト261a〜cが生成され、上述した属性、操作を使用することができる。また、インターフェースオブジェクト261a〜cも同様に、起動時の自動検出に伴い生成される。
By instantiating these interface classes,
プロトコル下位層206は、プロトコル判別部241と、送信先取得部242と、インターフェース管理テーブル243と、下位プロトコル層受渡部244と、ハードウェアインターフェース管理テーブル245と、処理先判断部246と、下位ハードウェアプロトコル層受渡部247と、下位データ順序保証部248と、通信履歴格納部251と、エントリ制御部255と、再送要求部256と、履歴更新部257と、履歴判断部258と、検索部259と、パケット判断部260と、下位番号割当部263と、を備える。
The protocol
インターフェース管理テーブル243は、インターフェースオブジェクト261a〜cのポインタが格納されている。このインターフェース管理テーブル243は、プロトコル層204、プロトコル下位層206及びインターフェース層207から参照可能にする。
The interface management table 243 stores pointers for the
図4は、インターフェース管理テーブル243とインターフェースオブジェクトとの関連を示した説明図である。図4に示すように、インターフェース管理テーブル243に登録されたオブジェクトのポインタを参照することで、インターフェースオブジェクトを特定できる。さらに、インターフェースオブジェクトが生成、削除が行われる度に、インターフェース層207はインターフェース管理テーブル243のレコードの登録、削除を行う。
FIG. 4 is an explanatory diagram showing the relationship between the interface management table 243 and interface objects. As shown in FIG. 4, the interface object can be specified by referring to the object pointer registered in the interface management table 243. Further, every time an interface object is created and deleted, the
このように、インターフェース管理テーブル243に格納されたポインタを参照することで、ネットワークデバイス262a〜cを指し示すインターフェースオブジェクト261a〜cにアクセスできる。これにより、ネットワークデバイス208が備えるネットワークデバイスの情報を参照することができる。
Thus, by referring to the pointer stored in the interface management table 243, the
ハードウェアインターフェース管理テーブル245は、プロトコル処理回路102でプロトコル処理するように割り当てられたネットワークデバイスのインターフェースオブジェクトのポインタが格納されている。このハードウェアインターフェース管理テーブル245は、プロトコル上位層203及びプロトコル下位層206から参照可能にする。そして、ハードウェアインターフェース管理テーブル245を参照することで、ハードウェアプロトコル層205でプロトコル処理すべきインターフェースオブジェクトにアクセスできる。
The hardware interface management table 245 stores a pointer of an interface object of a network device assigned so as to perform protocol processing by the
図5は、インターフェース管理テーブル243、ハードウェアインターフェース管理テーブル245及びインターフェースオブジェクトとの関連を示した説明図である。図5に示すように、インターフェースオブジェクトが生成された場合インターフェース管理テーブル243に登録される。そして、所定のネットワークデバイスに対してプロトコル処理回路232が割り当てられる場合に、当該ネットワークデバイスを指し示す当該インターフェースオブジェクトのポインタがハードウェアインターフェース管理テーブル245に登録される。そして、当該ネットワークデバイスについてプロトコル処理回路232が割り当てを終了する場合に、当該ネットワークデバイスを指し示す当該インターフェースオブジェクトのポインタがハードウェアインターフェース管理テーブル245から削除される。なお、このような登録、削除は、パケット判断部260が行う。
FIG. 5 is an explanatory diagram showing the relationship between the interface management table 243, the hardware interface management table 245, and the interface object. As shown in FIG. 5, when an interface object is generated, it is registered in the interface management table 243. When the
通信履歴格納部251は、通信記録テーブル252と、デバイス毎送信パケット数253と、デバイス毎受信パケット数254とを備える。図6は、通信記録テーブル252のテーブル構造を示した図である。図6に示すように通信記録テーブル252は、アドレスと、ポート番号と、TCPシーケンス番号と、ハードウェア使用中フラグとを対応付けて記憶している。この各レコードは、データの送受信が開始された場合に、エントリ制御部255によりエントリされる。そして、各エントリを参照することで、エントリ内に格納されているアドレスと通信しているポート番号が認識できると共に、当該ポート番号で受信したパケットのTCPシーケンス番号を確認できる。さらに、ハードウェア使用中フラグは、プロトコル処理回路232を使用しているか否かを保持する。
The communication
デバイス毎送信パケット数253は、ネットワークデバイス262a〜c毎に送信したパケット数を保持する。デバイス毎受信パケット数254は、ネットワークデバイス262a〜c毎に受信したパケット数を保持する。
The per-device
通信履歴格納部251は、上述したテーブルを備えることで、TCPのような再送制御を行なうプロトコルを必要とする通信データを、プロトコル層204及びハードウェアプロトコル層205のいずれにプロトコル処理を行わせるのか決定することができる。また、これら送受信したパケット数に基づいて、プロトコル層204及びハードウェアプロトコル層205のいずれにプロトコル処理を行わせるのか切り替えることができる。
The communication
エントリ制御部255は、通信記録テーブル252のエントリの制御を行う。例えば、エントリ制御部255は、あるポート番号から任意のアドレスに対して送受信が開始された場合に、当該ポート番号及びアドレスを格納するエントリを追加し、送受信が終了した場合には当該エントリの削除を行う。
The
履歴更新部257は、情報処理装置100の送受信状況に応じて、通信記録テーブル252、デバイス毎送信パケット数253デバイス毎受信パケット数254を更新する。
The
具体的な例としては、履歴更新部257は、ネットワークデバイス262a〜cでパケットを受信した場合に、デバイス毎受信パケット数254内の当該ネットワークデバイスの受信パケット数に‘1’追加する。他には履歴更新部257は、ネットワークデバイス262a〜cでパケットを送信した場合に、デバイス毎送信パケット数253内の当該ネットワークデバイスの送信パケット数に‘1’追加する。
As a specific example, when the
また、履歴更新部257は、TCPパケットのプロトコル処理先を、プロトコル層204及びハードウェアプロトコル層205のいずれかに切り替えた場合、通信記録テーブル252のハードウェア使用中フラグを更新する。
Further, when the protocol processing destination of the TCP packet is switched to either the
履歴判断部258は、シーケンシャルな番号が付されたTCPパケットをネットワークデバイス262a〜cが受信した場合に、通信記録テーブルに格納された当該シーケンシャルな番号と、受信したTCPのパケットに割り当てられた番号とを比較して、正常に受信しているか否か判断する。正常に受信していないと判断された場合、再送要求部256による再送要求などを行う。
The
パケット判断部260は、一定時間毎にデバイス毎送信パケット数253及びデバイス毎受信パケット数254を監視し、一定時間内で受信パケット数と送信パケット数との合計が所定の量以上又は最も多いネットワークデバイス262a〜cを判断し、当該ネットワークデバイスにプロトコル処理回路232を割り当てるように、ハードウェアインターフェース管理テーブル245を更新する。具体的には、受信パケット数と送信パケット数との合計が所定の量以上又は最も多いと判断されたネットワークデバイスのインターフェースオブジェクトのポインタを、ハードウェアインターフェース管理テーブル245に登録する。これにより、当該パケットの総受信量が処理の量以上又は最も多いネットワークデバイス262a〜cが送受信するパケットに対して、ハードウェアプロトコル層205が利用されることになる。
The
さらに、パケット判断部260は、データ送受信量が所定の量以下に減少したインターフェースオブジェクトのポインタをハードウェアインターフェース管理テーブル245から削除する。
Further, the
検索部259は、通信記録テーブル252に対して検索を行う。
The
プロトコル判別部241は、受信パケットのプロトコルを判別する。なお、判別手法については、従来と同様の手法とする。
The
送信先取得部242は、プロトコル判別部241により判別されたプロトコルがTCPの場合に、送信元アドレス、送信先アドレス、ポート番号を取得する。
The transmission
図7は、プロトコル層204、ハードウェアプロトコル層205及びプロトコル下位層206で、送受信するデータの概念を示した図である。図7に示すように、連番が割り当てられた送信データ及び受信データを、プロトコル層204又はハードウェアプロトコル層205、及びプロトコル下位層206間で受け渡しが行われる。
FIG. 7 is a diagram showing the concept of data transmitted and received in the
また、従来は、プロトコル層がインターフェース層207と送受信を行っていたが、本実施の形態にかかる情報処理装置100では、プロトコル下位層206がインターフェース層207と送受信を行うように構成された。このため、従来はプロトコル層に備えられていたプロトコル判別部241及び送信先取得部242は、プロトコル下位層206内に備えられることとなった。
Conventionally, the protocol layer performs transmission / reception with the
処理先判断部246は、プロトコル下位層206がインターフェースオブジェクト261a〜cから受信データを受け付けた場合に、当該インターフェースオブジェクト261a〜cのポインタが、ハードウェアインターフェース管理テーブル245に登録されているか否か判断する。そして、処理先判断部246が登録されていると判断した場合には、ハードウェアプロトコル層205のプロトコル処理回路232でプロトコル解析処理が行われることになる。
When the protocol
下位プロトコル層受渡部244は、受信データを受け渡したインターフェースオブジェクト261a〜cのポインタがハードウェアインターフェース管理テーブル245に登録されていないと処理先判断部246が判断した場合に、当該受信データを受け取り、ハードウェアプロトコル層205のプロトコル処理回路232に受け渡す。
When the processing
下位ハードウェアプロトコル層受渡部247は、受信データを受け渡したインターフェースオブジェクト261a〜cのポインタがハードウェアインターフェース管理テーブル245に登録されていると処理先判断部246が判断した場合に、当該受信データを受け取り、プロトコル層204のプロトコル処理部231に受け渡す。
When the processing
上述したように一定期間毎にパケット判断部260が、プロトコル処理及びプロトコル解析処理を行うプロトコル層204及びハードウェアプロトコル層205を切り替える。このため、当該切り替えが、データ送受信中に行なわれることがある。プロトコル処理及びプロトコル解析処理を行う層が突然切り替わることを意味し、一定時間に着目すると二つの層で一つのネットワークデバイスに関する処理が行なわれることになる。このため、二つの層で処理を行う場合でも、データの順番について保証する必要がある。
As described above, the
このため、プロトコル下位層206及びプロトコル上位層203では、この順番の保証を行なう機能を提供する。基本的な仕組みは以下の通りである。
For this reason, the protocol
まず、送信データを出力時はプロトコル上位層203で各ソケットの送信データ毎に連番を割り当て、プロトコル下位層206で当該連番を参照してデータの順序を保証する。
First, when outputting transmission data, the protocol
次に、受信データを入力時はプロトコル下位層206で各インターフェースオブジェクトの受信データ毎に連番を割り当て、プロトコル上位層203で当該連番を参照してデータの順序を保証する。なお、詳細な処理手順については後述する。次に、プロトコル下位層206で当該順序の保証に用いる構成について説明する。
Next, when receiving data, the protocol
下位データ順序保証部248は、インターフェースディスパッチャ249を備え、プロトコル層204及びハードウェアプロトコル層205からの送信データを受け取り、これら送信データの順序を保証する。
The lower data
つまり、送信データを受け取っている最中に、プロトコル処理を行う層が切り替えられた場合、プロトコル層204でプロトコル処理されて受け渡される送信データ及び、ハードウェアプロトコル層205でプロトコル処理されて受け渡される送信データが、送信順に従っているとは限らない。そこで、下位データ順序保証部248において、送信データの順序を保証することとした。
That is, when the layer for performing the protocol processing is switched while the transmission data is being received, the transmission data that has been subjected to the protocol processing by the
インターフェースディスパッチャ249は、データキュー250を備える。このデータキュー250は、ソケット単位に設けられ、受け取った送信データを一時的に格納する。
The
そして、インターフェースディスパッチャ249は、ソケット単位でデータキュー250に格納された送信データに格納された連番を参照して、送信する順番に従って送信データを受け取っているか否か監視を行う。なお、送信データに格納された連番は、プロトコル上位層203でシーケンシャルに割り当てられた番号とする。
Then, the
そして、インターフェースディスパッチャ249は、送信する順番に従って送信データを受け取っていることを確認した後、当該送信データを関連付けられているインターフェースオブジェクト261a〜cに受け渡す。
The
また、インターフェースディスパッチャ249は、インターフェース層207に新たなインターフェースオブジェクト261a〜cが生成された場合に同時に生成される。このインターフェースディスパッチャ249は、インターフェースオブジェクと1対1の関係を有する。そして、インターフェースオブジェクト261a〜cが消去されると、当該インターフェースディスパッチャ249も消去される。
The
図8は、送信データの連番を用いた処理の概念を示した図である。図8に示すように、まずソケット212aから受け取った送信データに対して、プロトコル上位層203が、ソケット毎にシーケンシャルな連番を割り当てる。この送信データは、プロトコル層204又はハードウェアプロトコル層205を通ってプロトコル下位層206に出力される。
FIG. 8 is a diagram showing a concept of processing using serial numbers of transmission data. As shown in FIG. 8, the protocol
そして、インターフェースディスパッチャ249は、ソケット単位に設けられたデータキュー250に送信データを一時的に保存し、連番を確認する。
The
この際、プロトコル上位層203でプロトコル層204及びハードウェアプロトコル層205への分配に失敗、又はこれら層でのプロトコル処理に失敗した場合、プロトコル上位層203がこれら失敗を検出し、プロトコル下位層206のソケット毎のインターフェースディスパッチャ249に欠番が生じたことを通知する。
At this time, if the protocol
インターフェースディスパッチャ249は、データキュー250に格納された送信データの連番を確認している時に、欠番があることをプロトコル上位層203から通知されている場合は、当該欠番を飛ばして確認処理を継続する。
When the
これにより、インターフェースディスパッチャ249に受け渡された送信データは、データキューに保存された順に、対応するインターフェースオブジェクトに受け渡される。このインターフェースオブジェクト261aへの受け渡し処理は、既存のプロトコル層で行なわれている処理を流用することとして、説明を省略する。
Thereby, the transmission data delivered to the
図2に戻り、下位番号割当部263は、受信したデータのパケット毎にシーケンシャルな番号を割り当てる。
Returning to FIG. 2, the lower
再送要求部256は、プロトコルがTCP等で再送処理を必要とする場合に、インターフェースオブジェクト261a〜cを介して、再送要求を行う。なお、再送要求については、従来と同様の処理を行うものとして説明を省略する。次に、情報処理装置100のネットワークのレイヤー構造の上位階層から順に説明する。
The
ユーザプログラム層201は、利用者が使用可能なネットワークプログラム211a〜cを備える。そして、各ネットワークプログラム211a〜cは、通信を行う際に後述するソケット層202に対して、通信処理を要求する。
The
ソケット層202は、ネットワーク接続に関する情報をまとめたディスクリプタ(記述子)であるソケット212a〜cを保持する層である。ソケット層202はユーザプログラム層201のネットワークプログラム211a〜cに対し、プロトコル上位層203へのインターフェースを隠蔽し、ネットワーク接続のサービスのエンドポイントを提供する。
The
ソケット212a〜cは、ユーザプログラム層201のネットワークプログラム211a〜c毎に一つ以上作成される。また、ソケットは作成される際、通信に用いるプロトコルが設定される。このようにして、ソケット212a〜cは、上述したネットワークプログラム211a〜cとの関連付けと、送受信の対象となるアドレス、送受信に用いるプロトコル情報、送受信するデータに関する情報、送受信に用いるルーティング情報を保持する。そして、ソケット212a〜cは、ネットワークから所定のIPアドレスへの送信する指示や、所定のIPアドレスからの受信待ちする指示を受け付けた場合に、後述するプロトコル上位層203に、当該指示を送信する。そして、送信先のプロトコル上位層203からは、各ソケット212a〜cが保持しているプロトコル情報又はIPアドレス等を参照可能とする。
One or
なお、このソケット層202で使用されるソケットAPIはネットワークプログラミングのデファクトスタンダードとなっており、OSを問わず使用可能である。
The socket API used in the
プロトコル上位層203は、上位プロトコル判断部221と、ソケット特定部222と、上位プロトコル層受渡部223と、上位データ順序保証部224と、上位番号割当部227と、上位ハードウェアプロトコル層受渡部229とを備えると共に、ソケット層202に対して既存のI/Fを保持している。
The protocol
また、プロトコル上位層203は、ソケット層202からデータの送信要求が行われた場合に、所定の条件に基づいて、プロトコル層204にプロトコル処理を要求する、又はハードウェアプロトコル層205にプロトコル処理を要求するかを切り替える。
Further, when a data transmission request is made from the
上位プロトコル判断部221は、ソケット212a〜cから送信要求が行われた場合、当該ソケット212a〜cが保持するプロトコル情報から利用するプロトコルを特定した後、特定されたプロトコル及びプロトコル下位層206のハードウェアインターフェース管理テーブル245から、プロトコル層204でプロトコル処理を行うか、ハードウェアプロトコル層205でプロトコル処理を行うか判断する。なお、詳細な処理手順については後述する。
When a transmission request is made from the
上位プロトコル層受渡部223は、上位プロトコル判断部221がプロトコル層204でプロトコル処理を行うと判断した場合、プロトコル層204に送信対象であるデータを受け渡すと共に、特定されたプロトコルによる当該データのプロトコル処理を要求する。
If the upper
上位ハードウェアプロトコル層受渡部229は、上位プロトコル判断部221がハードウェアプロトコル層205でプロトコル処理を行うと判断した場合、ハードウェアプロトコル層205に送信対象であるデータを受け渡すと共に、特定されたプロトコルによる当該データのプロトコル処理を要求する。
When the upper
ソケット特定部222は、受信データの送信元アドレス、ソケット212a〜cの送信先アドレスに基づいて、受信データを受け渡すソケット212a〜cを特定する。
The
図9は、プロトコル層204、ハードウェアプロトコル層205及びプロトコル上位層203で、送受信するデータの概念を示した図である。図9に示すように、連番が割り当てられた送信データ及び受信データを、プロトコル層204又はハードウェアプロトコル層205、及びプロトコル上位層203間で受け渡しが行われる。
FIG. 9 is a diagram showing the concept of data transmitted and received in the
また、従来は、プロトコル層がソケット層202と送受信を行っていたが、本実施の形態にかかる情報処理装置100では、プロトコル上位層203がソケット層202と送受信を行うように構成された。このため、従来はプロトコル層に備えられていたソケット特定部222が、プロトコル上位層203内に備えられることとなった。
Conventionally, the protocol layer performs transmission / reception with the
図2に戻り、上位データ順序保証部224は、ソケットディスパッチャ225を備え、プロトコル層204及びハードウェアプロトコル層205からの受信データを受け取り、これら受信データの順序を保証する。
Returning to FIG. 2, the upper data
つまり、受信データを受け取っている最中に、プロトコル解析処理を行う層が切り替えられた場合、プロトコル層204でプロトコル解析処理されて受け渡される受信データ及び、ハードウェアプロトコル層205でプロトコル解析処理されて受け渡される受信データが、受信順に従っているとは限らない。そこで、上位データ順序保証部224において、受信データの順序を保証することとした。
That is, when the layer for performing the protocol analysis processing is switched while receiving the received data, the protocol analysis processing is performed by the
ソケットディスパッチャ225は、データキュー226を備える。このデータキュー226は、インターフェースオブジェクト単位に設けられ、受け取った受信データを一時的に格納する。
The
そして、ソケットディスパッチャ225は、インターフェースオブジェクト単位でデータキュー226に格納された受信データに格納された連番を参照して、受信した順番に従って受信データを受け取っているか否か監視を行う。なお、受信データに格納された連番は、プロトコル下位層206でシーケンシャルに割り当てられた番号とする。
Then, the
そして、ソケットディスパッチャ225は、受信した順番に従って受信データを受け取っていることを確認した後、ソケット特定部222により特定されたソケット212a〜cに受け渡す。
Then, the
また、ソケットディスパッチャ225は、インターフェース層207に新たなインターフェースオブジェクト261a〜cが生成された場合に同時に生成される。このソケットディスパッチャ225は、インターフェースオブジェクと1対1の関係を有する。そして、インターフェースオブジェクト261a〜cが消去されると、当該ソケットディスパッチャ225も消去される。なお、ソケット特定部222の機能を、ソケットディスパッチャ225内に備えることにしても良い。
Further, the
図10は、受信データの連番を用いた処理の概念を示した図である。図10に示すように、まずインターフェースオブジェクト261aから受け取った受信データに対して、下位番号割当部263が、インターフェースオブジェクト毎にシーケンシャルな連番を割り当てる。この受信データは、プロトコル層204又はハードウェアプロトコル層205を通ってプロトコル上位層203に出力される。
FIG. 10 is a diagram showing the concept of processing using serial numbers of received data. As shown in FIG. 10, first, the lower
そして、ソケットディスパッチャ225は、インターフェースオブジェクト単位に設けられたデータキュー226に受信データを一時的に保存し、連番を確認する。
Then, the
この際、プロトコル下位層206でプロトコル層204及びハードウェアプロトコル層205への分配に失敗、又はこれら層でのプロトコル解析処理に失敗した場合、プロトコル下位層206がこれら失敗を検出し、プロトコル上位層203のインターフェースオブジェクト毎のソケットディスパッチャ225に欠番が生じたことを通知する。
At this time, when the distribution to the
ソケットディスパッチャ225は、データキュー226に格納された受信データの連番を確認している時に、欠番があることをプロトコル下位層206から通知されている場合は、当該欠番を飛ばして確認処理を継続する。
When the
これにより、ソケットディスパッチャ225に受け渡された受信データは、データキューに保存された順に、ソケット層202の各ソケット212a〜cに受け渡される。このソケット212a〜cへの受け渡し処理は、既存の処理を流用することとして、説明を省略する。
As a result, the received data transferred to the
図2に戻り、上位番号割当部227は、送信するデータのパケット毎にシーケンシャルな番号を割り当てる。
Returning to FIG. 2, the upper
プロトコル層204は、プロトコル処理部231を備え、上位に存在するプロトコル上位層203とのデータの送受信制御、下位に存在するプロトコル下位層206とのデータの送受信制御を行う。
The
プロトコル処理部231は、上位プロトコル層受渡部223から受け渡された通信データを送信するためのプロトコル処理を行う。プロトコル処理とは、任意のプロトコルで通信データを送信するために、当該通信データから、当該プロトコルのフォーマットによるパケットを生成する等の処理をいう。
The
また、プロトコル処理部231は、下位プロトコル層受渡部244から受け渡された受信データに対してプロトコル解析処理を行う。このプロトコル解析処理とは、当該プロトコルのフォーマットによる受信パケットから、格納されていたデータを取得する等の処理をいう。
Further, the
また、プロトコル処理部231においてプロトコル処理又はプロトコル解析の可能なプロトコルとしては、どのようなプロトコルであっても良く、例えば現在NetBSDでサポートされているあらゆるプロトコル等でも良い。
The
ハードウェアプロトコル層205は、プロトコル処理回路232を備え、ハードウェアにより結線した回路で、所定のプロトコルによるプロトコル処理及びプロトコル解析処理を行う。これにより、ハードウェアプロトコル層205は、特に処理データ量、スピードが増加傾向にある所定のプロトコル(例えばTCP/IP)のハードウェアオフロードを行うことができる。
The
プロトコル処理回路232は、プロトコル上位層203の上位ハードウェアプロトコル層受渡部229から受け渡された通信データを、所定のプロトコルによるプロトコル処理を行う。また、プロトコル処理回路232は、プロトコル下位層206の下位ハードウェアプロトコル層受渡部247から受け渡された通信データを、所定のプロトコルによるプロトコル解析処理を行う。また、プロトコル処理回路232においてプロトコル処理及びプロトコル解析処理が可能なプロトコルは、TCP、UDP、IP及びICMPとする。
The
本実施の形態にかかる情報処理装置100では、プロトコル上位層203、プロトコル層204、ハードウェアプロトコル層205、及びプロトコル下位層206により、ソケット層202及びインターフェース層207は完全に分離され、互いに意識することなく処理を行うことができる。
In the
本実施の形態にかかる情報処理装置100では、上述したプロトコル上位層203及びプロトコル下位層206でシーケンシャルな連番を割り当てると共に、上位データ順序保証部224及び下位データ順序保証部248を備えることで、プロトコル層204とハードウェアプロトコル層205とが切り替えられた場合でも順序を保証することが可能となる。
The
次に、本実施の形態にかかる情報処理装置100における送信処理について説明する。図11は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。
Next, transmission processing in the
まず、ネットワークプログラム211a〜cが、ソケット212a〜cに対して、送信するデータを出力する(ステップS1101)。次に。ソケット212a〜cが、送信するデータを、プロトコル上位層203に出力する(ステップS1102)。
First, the
そして、プロトコル上位層203に送信するデータが入力された場合、プロトコル上位層203の上位プロトコル判断部221は、当該データの受け渡し先がハードウェアプロトコル層205か否か判断する(ステップS1103)。この判断は、プロトコルがTCP/UDP/IP/ICMPであるか否か、及びデータを送信するネットワークデバイスにプロトコル処理回路232が割り当てられているか否かに基づいている。
When data to be transmitted is input to the protocol
上位プロトコル判断部221が、受け渡し先がハードウェアプロトコル層205と判断した(ステップS1103:Yes)、上位ハードウェアプロトコル層受渡部229が、ハードウェアプロトコル層205にデータを受け渡し、ハードウェアプロトコル層205が当該データに対してプロトコル処理を行う(ステップS1104)。
When the upper
上位プロトコル判断部221が、受け渡し先がハードウェアプロトコル層205ではないと判断した場合(ステップS1103:No)、上位プロトコル層受渡部223が、プロトコル層204にデータを受け渡し、プロトコル層204が当該データに対してプロトコル処理を行う(ステップS1105)。
When the upper
そして、プロトコル処理が終了したデータは、下位データ順序保証部248のデータキュー250に格納される。そして、送信するデータの順序が正しいことが確認された場合に、送信処理を行うインターフェースオブジェクト261a〜cに受け渡される(ステップS1106)。なお、受け渡し先のインターフェースオブジェクト261a〜cは、送信先のアドレス情報等により特定される。
The data for which the protocol processing has been completed is stored in the
そして、インターフェースオブジェクト261a〜cは、送信するデータが受け渡された場合に、ネットワークデバイス262a〜cを制御して送信処理を行う(ステップS1107)。
Then, when the data to be transmitted is delivered, the
次に、以上のように構成された本実施の形態にかかるプロトコル上位層203における送信データの受け渡すまでの処理について説明する。図12は、本実施の形態にかかるプロトコル上位層203における上述した処理の手順を示すフローチャートである。
Next, processing until transmission data is transferred in the protocol
まず、プロトコル上位層203は、ソケット層202のソケット212a〜cから、プロトコル処理のリクエストを受け付ける(ステップS1201)。当該処理手順は、図11のステップS1103の処理を詳細に説明したものとなる。
First, the protocol
次に、プロトコル上位層203は、リクエストを行ったソケット212a〜cが保持するアドレス情報から、使用するプロトコルを決定する(ステップS1202)。
Next, the protocol
そして、プロトコル上位層203の上位プロトコル判断部221は、決定されたプロトコルが、TCP/UDP/ICMP/IPであるか否かを判断する(ステップS1203)。TCP/UDP/ICMP/IPではないと判断した場合(ステップS1203:No)、上位プロトコル層受渡部223がプロトコル層204に対して送信するデータを受け渡すと共に、リクエストに応じた送信指示を行う(ステップS1204)。
Then, the upper
一方、上位プロトコル判断部221が、決定されたプロトコルがTCP/UDP/ICMP/IPであると判断した場合(ステップS1203:Yes)、プロトコル上位層203が送信するデータのパケット毎に連番を付与する(ステップS1205)。
On the other hand, if the upper
次に上位プロトコル判断部221は、ハードウェアインターフェース管理テーブル245のレコード数だけ、ステップS1207以降の処理を繰り返す(ステップS1206)。なお、繰り返しが行われる度に、ステップS1207で利用されるハードウェアインターフェース管理テーブル245のレコードが変更される。
Next, the upper
次に、上位プロトコル判断部221は、ハードウェアインターフェース管理テーブル245のレコードのポインタで示されたインターフェースオブジェクト261a〜cに登録されたアドレスの数だけ、ステップS1208以降の処理を繰り返す(ステップS1207)。なお、繰り返しが行われる度に、ステップS1208で利用されるインターフェースオブジェクト261a〜cに設定されているIPアドレスが変更される。
Next, the upper
そして、上位プロトコル判断部221は、リクエストを行ったソケット212a〜cに設定されているIPアドレスが、ポインタで示されたインターフェースオブジェクト261a〜cに設定されているIPアドレスか否か判断する(ステップS1208)。
Then, the upper layer
次に、上位プロトコル判断部221は、リクエストを行ったソケット212a〜cに設定されているIPアドレスが、ポインタで示されたポインタで示されたインターフェースオブジェクト261a〜cに設定されているIPアドレスではないと判断した場合(ステップS1208:No)、再びステップS1207から処理を繰り返す。
Next, the higher-level
そして、ステップS1207〜ステップS1201までのループが終了した場合、再びステップS1206から処理を繰り返す(ステップS1212)。 When the loop from step S1207 to step S1201 is completed, the processing is repeated again from step S1206 (step S1212).
一方、上位プロトコル判断部221は、リクエストを行ったソケット212a〜cに設定されているIPアドレスが、ポインタで示されたインターフェースオブジェクト261a〜cに設定されているIPアドレスだと判断した場合(ステップS1208:Yes)、上位プロトコル判断部221は、データ送信先のIPアドレスが、リクエストを出力したソケット212a〜cに設定されたルーティング情報から送信可能か否か判断する(ステップS1209)。送信できないと判断した場合(ステップS1209:No)、再びステップS1207から処理を繰り返す(ステップS1211)。
On the other hand, when the higher-level
一方、上位プロトコル判断部221が送信可能と判断した場合(ステップS1209:Yes)、上位ハードウェアプロトコル層受渡部229は、ハードウェアプロトコル層205に対して送信するデータを受け渡すと共に、特定されたネットワークデバイス261a〜cから、入力されたIPアドレスにデータを送信するようハードウェアプロトコル層205に対して指示する(ステップS1210)。当該指示により、図11のステップS1106以降の処理が行われる。
On the other hand, when the upper
また、ステップS1212までのループ処理が全て終了し、ハードウェアプロトコル層205に送信するデータを受け渡せなかった場合、上位プロトコル層受渡部223が、プロトコル層204に送信するデータを受け渡す(ステップS1213)。
If all the loop processing up to step S1212 is completed and the data to be transmitted to the
次に、ネットワークプログラム211aから送信のリクエストが行われた場合の処理の経路について説明する。図13は、ネットワークプログラム211aから、ネットワークデバイス262aで送信処理を行うまでの送信するデータの移動経路を示した説明図である。
Next, a processing route when a transmission request is made from the
まずは、ネットワークプログラム211aから送信するデータの出力が行われたものとする(ステップS1301)。この場合、ソケット212aが、送信するデータを、プロトコル上位層203に出力するが、このときに上位プロトコル判断部221が、送信するデータを、プロトコル層204又はハードウェアプロトコル層205にいずれかに受け渡すべきか判断する。
First, it is assumed that data transmitted from the
そして、プロトコル層204に受け渡すと判断された場合、ソケット212aから上位プロトコル層受渡部223にデータが受け渡される(ステップS1302)。
If it is determined that the data is to be transferred to the
次に、上位プロトコル層受渡部223は、プロトコル層204のプロトコル処理部231に送信対象であるデータを受け渡すと共に、特定されたプロトコルによる当該データのプロトコル処理を要求する(ステップS1303)。
Next, the upper protocol
そして、プロトコル処理部231でプロトコル処理されたデータは、データキュー250に格納される(ステップS1304)。
The data subjected to the protocol processing by the
一方、ステップS1301の後、上位プロトコル判断部221が、送信するデータを、ハードウェアプロトコル層205に受け渡すと判断した場合、ソケット212aから上位ハードウェアプロトコル層受渡部229にデータが受け渡される(ステップS1305)。
On the other hand, after step S1301, when the upper
次に、上位ハードウェアプロトコル層受渡部229は、ハードウェアプロトコル層205のプロトコル処理回路232に送信対象であるデータを受け渡すと共に、特定されたプロトコルによる当該データのプロトコル処理を要求する(ステップS1306)。
Next, the upper hardware protocol
そして、プロトコル処理回路232でプロトコル処理されたデータは、データキュー250に格納される(ステップS1307)。
The data subjected to the protocol processing by the
次に、データキュー250に格納されたデータは、下位データ順序保証部248によりデータの順序が保証された後、インターフェースディスパッチャ249がインターフェースオブジェクト261aに受け渡す(ステップS1308)。
Next, after the data order stored in the
そして、インターフェースオブジェクト261aは、対応付けられているネットワークデバイス262aに送信するデータを出力すると共に、当該ネットワークデバイス262aを制御して送信処理を行う(ステップS1309)。これにより、当該データが送信されることになる。
The
次に、本実施の形態にかかる情報処理装置100におけるネットワークデバイス262a〜cでデータを受信した場合の処理について説明する。図14は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。
Next, processing when data is received by the
まず、ネットワークデバイス262a〜cが、データの受信処理を行う(ステップS1401)。この処理は、インターフェースオブジェクト261a〜cが、ネットワークデバイス262a〜cを制御することで行われる。
First, the
次に、プロトコル下位層206の処理先判断部246が、受信データの受け渡し先はハードウェアプロトコル層205か否か判断する(ステップS1402)。
Next, the processing
そして、受信データの受け渡し先がハードウェアプロトコル層205と判断された場合(ステップS1402:Yes)、ハードウェアプロトコル層205で受信データのプロトコル解析処理を行う(ステップS1403)。そのあと、ハードウェアプロトコル層205は、プロトコル解析処理が終了した受信データを、データキュー226に出力する(ステップS1404)。
If it is determined that the destination of the received data is the hardware protocol layer 205 (step S1402: Yes), the
そして、受信データの受け渡し先がハードウェアプロトコル層205ではない判断されたと判断された場合(ステップS1402:No)、プロトコル層204で受信データのプロトコル解析処理を行う(ステップS1405)。そのあと、プロトコル層204は、プロトコル解析処理が終了した受信データを、データキュー226に出力する(ステップS1406)。
If it is determined that the received data delivery destination is not the hardware protocol layer 205 (step S1402: No), the
次に、データキュー250に格納されたデータは、上位データ順序保証部224によりデータの順序が保証された後、ソケットディスパッチャ225がソケット212a〜cに受け渡す(ステップS1407)。
Next, after the data order stored in the
そして、ソケット212a〜cは、ネットワークプログラム211a〜cに受信したデータを出力する(ステップS1408)。
The
上述した処理手順により、ネットワークデバイス262a〜cが受信したデータについて、ハードウェアプロトコル層205又はプロトコル層204でプロトコル解析処理した後、ネットワークプログラム211a〜cに出力することができる。
According to the above-described processing procedure, the data received by the
次に、ステップS1402のプロトコル下位層206において受信したデータのプロトコルに応じて受渡先を決定する処理について説明する。図15は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。
Next, processing for determining a delivery destination according to the protocol of the data received in the protocol
まずは、プロトコル判別部241が、受信したデータのプロトコルを判別する。そして、処理先判断部246は、判別されたプロトコルがTCP/UDP/IP/ICMPか否か判断する(ステップS1501)。処理先判断部246が、判別されたプロトコルがTCP/UDP/IP/ICMPではないと判断された場合(ステップS1501:No)、プロトコル層204に受信データを受け渡す(ステップS1502)。
First, the
次に、処理先判断部246は、判別されたプロトコルがTCPか否か判断する(ステップS1503)。プロトコルがTCPではないと判断された場合(ステップS1503:No)、プロトコル解析処理先としてハードウェアプロトコル層205かプロトコル層204かを選択し、選択された層に対して受信データを受け渡す(ステップS1504)。
Next, the processing
次に、処理先判断部246は、判別されたプロトコルがTCPであると判断された場合(ステップS1503:Yes)、検索部259が通信記録テーブルから送信元のアドレス、ポート番号のレコードを検索し、当該レコードが検出されたか否か判断する(ステップS1505)。
Next, when the processing
検索部259がレコードを検出しなかった場合(ステップS1505:No)、エントリ制御部255が新規TCP通信として処理した後、プロトコル解析処理先としてハードウェアプロトコル層205かプロトコル層204かを選択し、選択された層に対して受信データを受け渡す(ステップS1506)。
If the
一方、検索部259がレコードを検出した場合(ステップS1505:Yes)、履歴判断部258が、受信したデータに付加されていたシーケンス番号が、当該レコードに格納されているシーケンス番号と同一か否か判断する(ステップS1507)。
On the other hand, if the
そして、履歴判断部258が同一ではないと判断した場合(ステップS1507:No)、履歴更新部257がTCP通信の新規シーケンス番号を受信したものとして通信記録テーブル252に対して更新処理を行うと共に、プロトコル解析処理先としてハードウェアプロトコル層205かプロトコル層204かを選択し、選択された層に対して受信データを受け渡す(ステップS1508)。
If the
一方、履歴判断部258が同一であると判断した場合(ステップS1507:Yes)、プロトコル下位層206が、再受信データの受け渡し処理を行う(ステップS1509)。
On the other hand, if the
上述した処理手順により、受信データのパケットに応じた処理が行われたことになる。 The processing according to the received data packet is performed by the processing procedure described above.
次に、ステップS1504のプロトコル下位層206においてプロトコルがUDP/IP/ICMPにおける受信したデータの受渡先を決定する処理について説明する。図16は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。
Next, the processing for determining the delivery destination of the received data in the protocol UDP / IP / ICMP in the protocol
まず、処理先判断部246は、受信処理を行ったインターフェースオブジェクト261a〜cが、ハードウェアインターフェース管理テーブル245に登録されているか否か判断する(ステップS1601)。登録されていると判断した場合(ステップS1601:Yes)、下位ハードウェアプロトコル層受渡部247が、ハードウェアプロトコル層205に受信データを受け渡す(ステップS1602)。
First, the processing
一方、処理先判断部246が登録されていないと判断した場合(ステップS1601:No)、下位プロトコル層受渡部244が、プロトコル層204に受信データを受け渡す(ステップS1603)。
On the other hand, when it is determined that the processing
次に、ステップS1506のプロトコル下位層206の新規TCP通信における受信データの受渡先を決定する処理について説明する。図17は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。
Next, a process for determining a delivery destination of received data in the new TCP communication of the protocol
まず、エントリ制御部255が、当該新規TCP通信に対応するエントリを、通信記録テーブルに追加する(ステップS1701)。
First, the
次に、処理先判断部246は、受信処理を行ったインターフェースオブジェクト261a〜cが、ハードウェアインターフェース管理テーブル245に登録されているか否か判断する(ステップS1702)。登録されていると判断した場合(ステップS1702:Yes)、履歴更新部257が、通信記録テーブルで追加されたエントリの使用中フラグを‘Yes’に設定する(ステップS1703)。その後、下位ハードウェアプロトコル層受渡部247が、ハードウェアプロトコル層205に受信データを受け渡す(ステップS1704)。
Next, the processing
一方、処理先判断部246が登録されていないと判断した場合(ステップS1702:No)、履歴更新部257が、通信記録テーブルで追加されたエントリの使用中フラグを‘No’に設定する(ステップS1705)。その後、下位プロトコル層受渡部244が、プロトコル層204に受信データを受け渡す(ステップS1706)。
On the other hand, when it is determined that the processing
次に、ステップS1508のプロトコル下位層206のTCP通信における受信データの受渡先を決定する処理について説明する。図18は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。
Next, a process for determining a reception destination of received data in the TCP communication of the protocol
まず、履歴更新部257が、通信記録テーブルの該当するエントリのTCPシーケンス番号に‘1’追加する(ステップS1801)。
First, the
次に、プロトコル下位層206において、プロトコル解析処理先としてハードウェアプロトコル層205かプロトコル層204かを選択し、選択された層に対して受信データを受け渡す(ステップS1802)。なお、当該処理手順の詳細は、図16で示した処理手順と同様なので説明を省略する。
Next, in the protocol
その後、履歴更新部257が、通信記録テーブルの該当エントリの使用中フラグが、ステップS1802の受け渡し先と一致しているか否か確認する(ステップS1803)。異なる場合には、当該エントリの使用中フラグを適切な値に更新する。
Thereafter, the
次に、ステップS1509のプロトコル下位層206における再送されてきた受信データの受渡先を決定する処理について説明する。図19は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。
Next, processing for determining a delivery destination of received data retransmitted in the protocol
まずは、履歴判断部258が、通信記録テーブルにおいて、受信したデータを示すエントリの使用中フラグが‘Yes’か否か判断する(ステップS1901)。
First, the
そして、使用中フラグが‘Yes’と判断した場合(ステップS1901:Yes)、下位ハードウェアプロトコル層受渡部247が、受信データをハードウェアプロトコル層205に受け渡す(ステップS1902)。
If it is determined that the busy flag is 'Yes' (step S1901: Yes), the lower hardware protocol
そして、使用中フラグが‘No’と判断した場合(ステップS1901:NO)、下位プロトコル層受渡部244が、受信データをプロトコル層204に受け渡す(ステップS1903)。
If the in-use flag is determined to be “No” (step S1901: NO), the lower protocol
上述した処理手順により、再受信したデータは、最初に受信したデータと同じプロトコル層204又はハードウェアプロトコル層205でプロトコル解析処理を行うことができる。これにより、プロトコル解析処理の効率化を図ることができる。
According to the processing procedure described above, the re-received data can be subjected to protocol analysis processing in the
次に、ネットワークデバイス262aからデータを受信した場合の処理の経路について説明する。図20は、ネットワークデバイス262aで受信処理してから、ネットワークプログラム211aに出力されるまでの移動経路を示した説明図である。
Next, a processing path when data is received from the
まず、ネットワークデバイス262aが、データの受信処理した場合、ネットワークデバイス262aに対応するインターフェースオブジェクト261aに、受信したデータを出力する(ステップS2001)。その後、インターフェースオブジェクト261aが、受信データを、プロトコル下位層206に出力するが、このときに処理先判断部246が、受信したデータを、プロトコル層204又はハードウェアプロトコル層205にいずれかに受け渡すべきか判断する。
First, when the
処理先判断部246が、受信したデータを、ハードウェアプロトコル層205に受け渡すと判断した場合、インターフェースオブジェクト261aから下位ハードウェアプロトコル層受渡部247にデータが受け渡される(ステップS2002)。このときに、プロトコル判別部241により、受信したデータのプロトコルが判別される。
If the processing
次に、下位ハードウェアプロトコル層受渡部247は、ハードウェアプロトコル層205のプロトコル処理回路232に送信対象であるデータを受け渡すと共に、プロトコル判別部241により判別されたプロトコルによる当該データのプロトコル解析処理を要求する(ステップS2003)。
Next, the lower hardware protocol
そして、プロトコル処理回路232でプロトコル解析処理されたデータは、データキュー226に格納される(ステップS2004)。
The data subjected to the protocol analysis processing by the
一方、ステップS2001の後、処理先判断部246がプロトコル層204に受け渡すと判断した場合、インターフェースオブジェクト261aから下位プロトコル層受渡部244にデータが受け渡される(ステップS2005)。このときに、プロトコル判別部241により、受信したデータのプロトコルが判別される。
On the other hand, if the processing
次に、下位プロトコル層受渡部244は、プロトコル層204のプロトコル処理部231に受信したデータを受け渡すと共に、プロトコル判別部241により判別されたプロトコルによる当該データのプロトコル処理を要求する(ステップS2006)。
Next, the lower protocol
そして、プロトコル処理部231でプロトコル処理されたデータは、データキュー226に格納される(ステップS2007)。
The data subjected to the protocol processing by the
次に、データキュー226に格納されたデータは、上位データ順序保証部224によりデータの順序が保証された後、ソケットディスパッチャ225がソケット212aに受け渡す(ステップS2008)。
Next, the data stored in the
そして、ソケットディスパッチャ225は、ネットワークプログラム211aに受信したデータを出力する(ステップS2009)。
Then, the
次に、所定のネットワークデバイス262aから入力された受信データ1〜4の処理中に、プロトコル解析処理を行う層が切り替えられた場合について説明する。図21は、上述した場合の概念を示した説明図である。
Next, a case where the layer for performing the protocol analysis processing is switched during the processing of the reception data 1 to 4 input from the
まずは、符号2102に示すように、プロトコル下位層206において、下位プロトコル層受渡部244が、受信データ1〜2をプロトコル層204に受け渡されたものとする。
First, as indicated by reference numeral 2102, it is assumed that in the protocol
その後、パケット判断部260により当該ネットワークデバイス262aについてプロトコル解析処理を行う層が、ハードウェアプロトコル層205にするという切り替えが発生した(2102)。
Thereafter, the
これにより、これ以降は、下位ハードウェアプロトコル層受渡部247が、受信データ3〜4をハードウェアプロトコル層205に受け渡す(2103)。
As a result, after that, the lower hardware protocol
そして、ソケットディスパッチャ225では、切り替えが生じる前の受信データ1〜2については第1のデータキュー2111に格納する(2104)。そして、第1のデータキュー2111に格納されたデータについて、ソケットディスパッチャ225が受信処理を行なう。そして、ソケットディスパッチャ225は、下位番号割当部263で受信データに割り当てられた番号を、第1のデータキュー2111内の連番記憶部に記録する。
Then, the
そして、プロトコル解析処理を行う層の切り替えが生じたために、ハードウェアプロトコル層205から出力された受信データを格納するために第2のデータキュー2112を追加する(2105)。 Then, since the layer for performing the protocol analysis process is switched, the second data queue 2112 is added to store the received data output from the hardware protocol layer 205 (2105).
そして、ハードウェアプロトコル層205でプロトコル解析処理された受信データ3〜4は、新しく追加された第2のデータキュー2112に格納する(2106)。この際、ソケットディスパッチャ225は、第2のデータキュー2112に最初に格納された受信データに割り当てられた番号を、第2のデータキュー2112内の連番記憶部に記録する。
The received data 3 to 4 subjected to the protocol analysis processing by the
そして、第1のデータキュー2111内の連番記憶部に記録された番号に‘1’加えた番号が、第2のデータキュー2112内の連番記憶部に記録された番号になると共に、第1のデータキュー2111に格納されていた受信データ1〜2が出力されて空になったと判断した場合に、第1のデータキュー2111が、廃棄される(2107)。そして、これ以降については第2のデータキュー2112に受信データが格納される。
A number obtained by adding “1” to the number recorded in the sequential number storage unit in the
また、上述した処理では、プロトコル層204からハードウェアプロトコル層205に切り替えた場合について説明したが、ハードウェアプロトコル層205からプロトコル層204に切り替えた場合についても同様とする。
In the above-described processing, the case where the
次に、所定のネットワークデバイス262aから出力する送信データ1〜4の処理中に、プロトコル処理を行う層が切り替えられた場合について説明する。図22は、この上述した場合の概念を示した説明図である。
Next, a case where the layer for performing the protocol processing is switched during the processing of the transmission data 1 to 4 output from the
まずは、符号2201に示すように、プロトコル上位層203において、上位プロトコル層受渡部223が、送信データ1〜2をプロトコル層204に受け渡されたものとする。
First, as indicated by
その後、パケット判断部260により、当該ネットワークデバイス262aから送信する送信データのプロトコル処理を行う層が、ハードウェアプロトコル層205にするという切り替えが発生した(2202)。
Thereafter, the
これにより、これ以降は、上位ハードウェアプロトコル層受渡部229が、受信データ3〜4をハードウェアプロトコル層205に受け渡す(2203)。
Thereby, thereafter, the upper hardware protocol
そして、インターフェースディスパッチャ249では、切り替えが生じる前の受信データ1〜2については第1のデータキュー2211に格納する(2204)。そして、第1のデータキュー2211に格納されたデータについて、インターフェースディスパッチャ249が受信処理を行なう。そして、インターフェースディスパッチャ249は、上位番号割当部227で送信データに割り当てられた番号を、第1のデータキュー2211内の連番記憶部に記録する。
Then, the
そして、プロトコル解析処理を行う層の切り替えが生じたために、ハードウェアプロトコル層205から出力された送信データを格納するために第2のデータキュー2112を追加する(2205)。 Then, since the layer for performing the protocol analysis process is switched, the second data queue 2112 is added to store the transmission data output from the hardware protocol layer 205 (2205).
そして、ハードウェアプロトコル層205でプロトコル処理された送信データ3〜4は、新しく追加された第2のデータキュー2212に格納する(2206)。この際、インターフェースディスパッチャ249は、第2のデータキュー2212に最初に格納された受信データに割り当てられた番号を、第2のデータキュー2212内の連番記憶部に記録する。
Then, the transmission data 3 to 4 subjected to the protocol processing in the
そして、第1のデータキュー2211内の連番記憶部に記録された番号に‘1’加え、さらに欠番が発生した回数を加えた番号が、第2のデータキュー2212内の連番記憶部に記録された番号になると共に、第1のデータキュー2211に格納されていた送信データ1〜2が出力されて空になったと判断した場合に、第1のデータキュー2211が廃棄される(2207)。そして、これ以降については第2のデータキュー2212に送信データが格納される。
A number obtained by adding “1” to the number recorded in the serial number storage unit in the
また、上述した処理では、プロトコル層204からハードウェアプロトコル層205に切り替えた場合について説明したが、ハードウェアプロトコル層205からプロトコル層204に切り替えた場合についても同様とする。
In the above-described processing, the case where the
また、上述した本実施の形態にかかる情報処理装置100は、ネットワークを制御するソフトウェア群がレイヤー構造で制御するOSであればどのようなOSでもよい。適用可能なOSとしては、例えばNetBSD等が存在する。
In addition, the
上述したように、本実施の形態にかかる情報処理装置100では、ハードウェアプロトコル層205を備えた場合であっても、既存のソフトウェアプロトコルスタックと共存させることを可能としている。
As described above, the
これに対し、本実施の形態にかかる情報処理装置100では、上述したような構成を備えることで、ネットワークデバイス262a〜cであれば、ハードウェアプロトコル層205を使用することが可能になった。
On the other hand, in the
これにより、本実施の形態にかかる情報処理装置100では、プロトコル処理回路232を搭載することでハードウェアオフロードを可能にして、CPU101の処理負担を軽減すると共に、さまざまなプロトコルに対応することが可能になる。
As a result, the
さらに、本実施の形態にかかる情報処理装置100では、送受信量の大きいネットワークデバイス262a〜cにハードウェアプロトコル層205を割り当てることで、CPU101の処理負担を効率よく軽減させることができる。
Furthermore, in the
また、本実施の形態にかかる情報処理装置100では、TCPプロトコルによる受信データは、TCPシーケンス番号で履歴を保持することで、再送要求などの処理を容易に実行することができる。さらに通信記録記憶部において、アドレスとポート番号によるエントリで、TCPシーケンス番号を保持するため、送信先のデータの種類毎に、再送要求を行うか否か判断することが可能となる。
Further, in the
また、本実施の形態にかかる情報処理装置100では、さまざまなネットワークデバイスを利用することが可能になる。このようなネットワークデバイスは、本実施の形態のように、有線LAN106、シリアル回線107、無線LAN108及びUSB109に制限するものではなく、従来から使用される様々なネットワークデバイスを適用しても良い。
Also, the
本実施形態の情報処理装置100で実行される通信制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
The communication control program executed by the
また、本実施形態の情報処理装置100で実行される通信制御プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の情報処理装置100で実行される通信制御プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
Further, the communication control program executed by the
また、本実施形態の通信制御プログラムを、ROM等に予め組み込んで提供するように構成してもよい。 Further, the communication control program of the present embodiment may be provided by being incorporated in advance in a ROM or the like.
本実施の形態の情報処理装置100で実行される通信制御プログラムは、上述した各部(ユーザアプリケーション層、ソケット層、プロトコル上位層、プロトコル層、プロトコル下位層、インターフェース層)を含むモジュール構成となっており、実際のハードウェアとしてはCPUが上記記録媒体から通信制御プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、ユーザアプリケーション層、ソケット層、プロトコル上位層、プロトコル層、プロトコル下位層、インターフェース層が主記憶装置上に生成されるようになっている。
The communication control program executed by the
以上のように、本発明にかかる通信制御装置、通信制御方法及び通信制御プログラムは、通信制御に有用であり、特に、ハードウェア化したプロトコル処理回路を用いた通信制御に適している。 As described above, the communication control device, the communication control method, and the communication control program according to the present invention are useful for communication control, and are particularly suitable for communication control using a hardware protocol processing circuit.
100 情報処理装置
101 CPU
102 プロトコル処理回路
103 アービタ
104 RAM
105 ROM
106 有線LAN
107 シリアル回路
108 無線LAN
109 USB
201 ユーザプログラム層
202 ソケット層
203 プロトコル上位層
204 プロトコル層
205 ハードウェアプロトコル層
206 プロトコル下位層
207 インターフェース層
208 ネットワークデバイス
211a〜c ネットワークプログラム
212a〜c ソケット
221 上位プロトコル判断部
222 ソケット特定部
223 上位プロトコル層受渡部
224 上位データ順序保証部
225 ソケットディスパッチャ
226 データキュー
227 上位番号割当部
229 上位ハードウェアプロトコル層受渡部
231 プロトコル処理部
232 プロトコル処理回路
241 プロトコル判別部
242 送信先取得部
243 インターフェース管理テーブル
244 下位プロトコル層受渡部
245 ハードウェアインターフェース管理テーブル
246 処理先判断部
247 下位ハードウェアプロトコル層受渡部
248 下位データ順序保証部
249 インターフェースディスパッチャ
250 データキュー
251 通信履歴格納部
252 通信記録テーブル
253 デバイス毎送信パケット数
254 デバイス毎受信パケット数
255 エントリ制御部
256 再送要求部
257 履歴更新部
258 履歴判断部
259 検索部
260 パケット判断部
261a〜c インターフェースオブジェクト
262a〜c ネットワークデバイス
263 下位番号割当部
100 Information processing apparatus 101 CPU
102
105 ROM
106 Wired LAN
107
109 USB
201
Claims (17)
受信データに対してTCPによるプロトコルでプロトコル解析処理を行う、ソフトウェアで実現されたプロトコル処理部と、
外部のネットワークと接続する複数のネットワークデバイスに対して、受信データの受信制御を行う通信制御部と、
各前記ネットワークデバイスの受信量に基づいて、前記ネットワークデバイス毎に、当該ネットワークデバイスで通信制御される受信データを、前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせるか否か判断する判断部と、
前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせると判断された場合に、前記受信データを前記ハードウェアプロトコル処理部に受け渡すハードウェア受渡部と、
前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせないと判断された場合に、前記受信データを前記プロトコル処理部に受け渡すソフトウェア受渡部と、
を備えることを特徴とする通信制御装置。 A hardware protocol processing unit which is a hardware-connected circuit that performs protocol analysis processing by TCP on received data;
A protocol processing unit implemented in software that performs protocol analysis processing on received data using a protocol based on TCP;
A communication control unit for controlling reception of received data for a plurality of network devices connected to an external network;
A determination unit that determines, based on the reception amount of each network device, whether or not to cause the hardware protocol control unit to perform protocol analysis processing on reception data that is communication-controlled by the network device for each network device; ,
A hardware delivery unit that delivers the received data to the hardware protocol processing unit when it is determined to cause the hardware protocol control unit to perform a protocol analysis process;
When it is determined not to perform protocol analysis processing by the hardware protocol control unit, a software delivery unit that delivers the received data to the protocol processing unit;
A communication control apparatus comprising:
前記通信記録記憶部に記憶された前記TCPシーケンス番号に基づいて、外部のネットワークに対して再送を要求する再送要求部と、
を備えることを特徴とする請求項1に記載の通信制御装置。 A communication record storage unit for storing a TCP sequence number of the received data received by the communication control unit;
Based on the TCP sequence number stored in the communication record storage unit, a retransmission request unit that requests retransmission to an external network;
The communication control device according to claim 1, further comprising:
前記ネットワークデバイスで、所定のアドレスとTCPプロトコルを用いて通信を開始した場合に、前記通信記録記憶部に、当該所定のアドレスと、当該所定のアドレスから受信した受信データのTCPシーケンス番号とを、対応付けて登録するエントリ制御部を、さらに備えることを特徴とする請求項2に記載の通信制御装置。 The communication record storage unit stores a TCP sequence number of the received data received by the communication control unit in association with a communication destination address,
When the network device starts communication using a predetermined address and a TCP protocol, the communication record storage unit stores the predetermined address and the TCP sequence number of received data received from the predetermined address. The communication control apparatus according to claim 2, further comprising an entry control unit that registers and associates the registration control unit.
前記判断部は、さらに、ネットワークデバイスが受信した前記受信データの前記TCPシーケンス番号が、前記通信記録記憶部に登録されている前記TCPシーケンス番号と一致した場合に、当該TCPシーケンス番号と対応付けられている前記フラグに基づいて、前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせるか否か判断すること、
を特徴とする請求項3に記載の通信制御装置。 The communication record storage unit further stores a flag indicating whether or not to perform a protocol analysis process in the hardware protocol processing unit in association with each other,
The determination unit is further associated with the TCP sequence number when the TCP sequence number of the received data received by the network device matches the TCP sequence number registered in the communication record storage unit. Determining whether to perform protocol analysis processing in the hardware protocol control unit based on the flag being
The communication control device according to claim 3.
前記プロトコル処理部でプロトコル解析処理が行われた後の前記受信データの前記パケット、及び前記ハードウェアプロトコル処理部でプロトコル解析処理が行われた後の前記受信データの前記パケットのうちいずれか一つ以上を蓄積する蓄積部と、
前記蓄積部に蓄積された前記受信データを、前記受信データのパケットに割り当てられた前記番号に従って出力する出力部と、
を備えることを特徴とする請求項1乃至4のいずれか一つに記載の通信制御装置。 A number assigning unit that assigns a number indicating the order of communication control for each packet of the reception data that is reception-controlled by the communication control unit;
Any one of the packet of the reception data after the protocol analysis processing is performed by the protocol processing unit and the packet of the reception data after the protocol analysis processing is performed by the hardware protocol processing unit An accumulator for accumulating the above,
An output unit that outputs the received data stored in the storage unit according to the number assigned to the packet of the received data;
The communication control apparatus according to any one of claims 1 to 4, further comprising:
を特徴とする請求項1に記載の通信制御装置。 The determination unit determines whether or not to cause the hardware protocol control unit to perform protocol analysis processing on reception data that is communication-controlled by the network device for each network device at predetermined time intervals;
The communication control device according to claim 1.
前記受信データを受信する前記ネットワークデバイスを指し示す前記指示情報が前記ハードウェア管理記憶部に記憶されているか否かに基づいて、前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせるか否か判断する処理先判断部と、
をさらに備えることを特徴とする請求項1に記載の通信制御装置。 A hardware management storage unit that stores instruction information indicating the network device that receives the received data that is determined by the determination unit to cause the hardware protocol control unit to perform a protocol analysis process;
Based on whether or not the instruction information indicating the network device that receives the received data is stored in the hardware management storage unit, the hardware protocol control unit determines whether to perform protocol analysis processing. A processing destination determination unit;
The communication control apparatus according to claim 1, further comprising:
前記ネットワークデバイスで前記受信データの受信制御が行われる毎に、前記データ量記憶部の前記受信データ量を更新する更新部と、をさらに備え、
前記判断部は、前記データ量記憶部に記憶される前記ネットワークデバイス毎の前記受信データ量に基づいて、複数の前記ネットワークデバイスのうち、いずれの前記ネットワークデバイスが受信制御する受信データを、前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせるか判断すること、
を特徴とする請求項1乃至7のいずれか一つに記載の通信制御装置。 A data amount storage unit for storing the received data amount controlled to be received for each network device;
An update unit that updates the received data amount of the data amount storage unit each time reception control of the received data is performed in the network device;
The determination unit, based on the received data amount for each network device stored in the data amount storage unit, receives received data that is controlled by the network device among the plurality of network devices. To determine whether the protocol analysis processing is performed by the hardware protocol control unit,
The communication control device according to claim 1, wherein:
各前記ネットワークデバイスの受信量に基づいて、前記ネットワークデバイス毎に、当該ネットワークデバイスで通信制御される受信データを、ハードウェア結線された回路であるハードウェアプロトコル制御部でプロトコル解析処理を行わせるか否か判断する判断ステップと、
前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせると判断された場合に、前記受信データを前記ハードウェアプロトコル処理部に受け渡すハードウェア受渡ステップと、
前記ハードウェア受け渡しステップにより受け渡された前記受信データに対して、前記ハードウェアプロトコル処理部でTCPによるプロトコル解析処理を行うハードウェアプロトコル処理ステップと、
前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせないと判断された場合に、前記受信データを前記プロトコル処理部に受け渡すソフトウェア受渡ステップと、
前記ソフトウェア受渡ステップにより受け渡された前記受信データに対して、TCPによるプロトコル解析処理を行うプロトコル処理ステップと、
を有することを特徴とする通信制御方法。 A communication control step for controlling reception of received data for a plurality of network devices connected to an external network;
Whether the received data controlled by the network device is subjected to protocol analysis processing by the hardware protocol control unit, which is a hardware-connected circuit, for each network device based on the received amount of each network device A determination step for determining whether or not,
A hardware delivery step of delivering the received data to the hardware protocol processing unit when it is determined that the hardware protocol control unit performs a protocol analysis process;
A hardware protocol processing step for performing protocol analysis processing by TCP in the hardware protocol processing unit on the received data passed by the hardware delivery step;
A software delivery step of delivering the received data to the protocol processing unit when it is determined not to perform a protocol analysis process by the hardware protocol control unit;
A protocol processing step for performing protocol analysis processing by TCP for the received data delivered by the software delivery step;
A communication control method characterized by comprising:
前記通信記録記憶部に記憶された前記TCPシーケンス番号に基づいて、外部のネットワークに対して再送を要求する再送要求ステップと、
を有することを特徴とする請求項9に記載の通信制御方法。 A communication record storage step for storing a TCP sequence number of the received data received by the communication control step in a communication record storage unit;
Based on the TCP sequence number stored in the communication record storage unit, a retransmission request step for requesting retransmission to an external network;
The communication control method according to claim 9, further comprising:
前記ネットワークデバイスで、所定のアドレスとTCPプロトコルを用いて通信を開始した場合に、前記通信記録記憶部に、当該所定のアドレスと、当該所定のアドレスから受信した受信データのTCPシーケンス番号とを、対応付けて登録するエントリ制御ステップを、さらに有することを特徴とする請求項10に記載の通信制御方法。 In the communication record storage step, a TCP sequence number of the received data received by the communication control unit and a communication destination address are associated with each other and stored in the communication record storage unit,
When the network device starts communication using a predetermined address and a TCP protocol, the communication record storage unit stores the predetermined address and the TCP sequence number of received data received from the predetermined address. The communication control method according to claim 10, further comprising an entry control step of registering in association with each other.
前記判断ステップは、さらに、ネットワークデバイスが受信した前記受信データの前記TCPシーケンス番号が、前記通信記録記憶部に登録されている前記TCPシーケンス番号と一致した場合に、当該TCPシーケンス番号と対応付けられている前記フラグに基づいて、前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせるか否か判断すること、
を特徴とする請求項11に記載の通信制御方法。 The communication record storage step further stores a flag indicating whether or not to perform a protocol analysis process in the hardware protocol processing unit in association with the communication record storage unit,
The determination step is further associated with the TCP sequence number when the TCP sequence number of the received data received by the network device matches the TCP sequence number registered in the communication record storage unit. Determining whether to perform protocol analysis processing in the hardware protocol control unit based on the flag being
The communication control method according to claim 11.
前記プロトコル処理ステップでプロトコル解析処理が行われた後の前記受信データの前記パケット、及び前記ハードウェアプロトコル処理部でプロトコル解析処理が行われた後の前記受信データの前記パケットのうちいずれか一つ以上を蓄積部に蓄積する蓄積ステップと、
前記蓄積部に蓄積された前記受信データを、前記受信データのパケットに割り当てられた前記番号に従って出力する出力ステップと、
を有することを特徴とする請求項9乃至12のいずれか一つに記載の通信制御方法。 A number assigning step for assigning a number indicating the order of communication control for each packet of the reception data that is reception-controlled by the communication control step;
Any one of the packet of the reception data after the protocol analysis processing is performed in the protocol processing step and the packet of the reception data after the protocol analysis processing is performed by the hardware protocol processing unit An accumulation step for accumulating the above in the accumulation unit;
An output step of outputting the received data stored in the storage unit according to the number assigned to the packet of the received data;
The communication control method according to claim 9, comprising:
を特徴とする請求項9に記載の通信制御方法。 The determination step determines whether to perform a protocol analysis process in the hardware protocol control step for received data that is communication-controlled by the network device for each network device at a predetermined time,
The communication control method according to claim 9.
前記受信データを受信する前記ネットワークデバイスを指し示す前記指示情報が前記ハードウェア管理記憶ステップに記憶されているか否かに基づいて、前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせるか否か判断する処理先判断ステップと、
をさらに有することを特徴とする請求項9に記載の通信制御方法。 A hardware management storage step for storing instruction information indicating the network device that receives the received data that is determined to cause the hardware protocol control unit to perform a protocol analysis process by the determination step;
Based on whether or not the instruction information indicating the network device that receives the received data is stored in the hardware management storage step, it is determined whether or not the hardware protocol control unit performs protocol analysis processing. Processing destination determination step;
The communication control method according to claim 9, further comprising:
前記ネットワークデバイスで前記受信データの受信制御が行われる毎に、前記データ量記憶ステップの前記受信データ量を更新する更新ステップと、をさらに有し、
前記判断ステップは、前記データ量記憶部に記憶される前記ネットワークデバイス毎の前記受信データ量に基づいて、複数の前記ネットワークデバイスのうち、いずれの前記ネットワークデバイスが受信制御する受信データを、前記ハードウェアプロトコル制御ステップでプロトコル解析処理を行わせるか判断すること、
を特徴とする請求項9乃至15のいずれか一つに記載の通信制御方法。 A data amount storing step for storing the received data amount controlled to be received for each network device;
An update step of updating the received data amount in the data amount storing step each time reception control of the received data is performed in the network device,
In the determination step, based on the received data amount for each of the network devices stored in the data amount storage unit, the received data that is controlled by the network device among the plurality of network devices is stored in the hardware. Determine whether to perform protocol analysis processing at the hardware protocol control step,
The communication control method according to any one of claims 9 to 15.
各前記ネットワークデバイスの受信量に基づいて、前記ネットワークデバイス毎に、当該ネットワークデバイスで通信制御される受信データを、ハードウェア結線された回路であるハードウェアプロトコル制御部でプロトコル解析処理を行わせるか否か判断する判断ステップと、
前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせると判断された場合に、前記受信データを前記ハードウェアプロトコル処理部に受け渡すハードウェア受渡ステップと、
前記ハードウェア受け渡しステップにより受け渡された前記受信データに対して、前記ハードウェアプロトコル処理部でTCPによるプロトコル解析処理を行うハードウェアプロトコル処理ステップと、
前記ハードウェアプロトコル制御部でプロトコル解析処理を行わせないと判断された場合に、前記受信データを前記プロトコル処理部に受け渡すソフトウェア受渡ステップと、
前記ソフトウェア受渡ステップにより受け渡された前記受信データに対して、TCPによるプロトコル解析処理を行うプロトコル処理ステップと、
をコンピュータに実行させることを特徴とする通信制御プログラム。 A communication control step for controlling reception of received data for a plurality of network devices connected to an external network;
Whether the received data controlled by the network device is subjected to protocol analysis processing by the hardware protocol control unit, which is a hardware-connected circuit, for each network device based on the received amount of each network device A determination step for determining whether or not,
A hardware delivery step of delivering the received data to the hardware protocol processing unit when it is determined that the hardware protocol control unit performs a protocol analysis process;
A hardware protocol processing step for performing protocol analysis processing by TCP in the hardware protocol processing unit on the received data passed by the hardware delivery step;
A software delivery step of delivering the received data to the protocol processing unit when it is determined not to perform a protocol analysis process by the hardware protocol control unit;
A protocol processing step for performing protocol analysis processing by TCP for the received data delivered by the software delivery step;
A communication control program for causing a computer to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007217549A JP2009055134A (en) | 2007-08-23 | 2007-08-23 | Communication control unit, communication control method, and communication control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007217549A JP2009055134A (en) | 2007-08-23 | 2007-08-23 | Communication control unit, communication control method, and communication control program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009055134A true JP2009055134A (en) | 2009-03-12 |
Family
ID=40505834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007217549A Pending JP2009055134A (en) | 2007-08-23 | 2007-08-23 | Communication control unit, communication control method, and communication control program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009055134A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011033562A1 (en) * | 2009-09-16 | 2011-03-24 | 株式会社 東芝 | Communication device |
CN103812953A (en) * | 2014-02-25 | 2014-05-21 | 中标软件有限公司 | Communication interface system of micro-control unit and ARM (advanced RISC (reduced instruction-set computer) machines) processor |
JP2014514635A (en) * | 2011-03-18 | 2014-06-19 | ハネウェル・インターナショナル・インコーポレーテッド | Adapter device for coupling industrial field devices to an industrial wireless network, and related systems and methods |
-
2007
- 2007-08-23 JP JP2007217549A patent/JP2009055134A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011033562A1 (en) * | 2009-09-16 | 2011-03-24 | 株式会社 東芝 | Communication device |
JP2014514635A (en) * | 2011-03-18 | 2014-06-19 | ハネウェル・インターナショナル・インコーポレーテッド | Adapter device for coupling industrial field devices to an industrial wireless network, and related systems and methods |
CN103812953A (en) * | 2014-02-25 | 2014-05-21 | 中标软件有限公司 | Communication interface system of micro-control unit and ARM (advanced RISC (reduced instruction-set computer) machines) processor |
CN103812953B (en) * | 2014-02-25 | 2017-05-10 | 中标软件有限公司 | Communication interface system of micro-control unit and ARM (advanced RISC (reduced instruction-set computer) machines) processor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11843661B2 (en) | Web service system and method | |
CN112738284B (en) | Data transmission method, device, equipment and storage medium in service integration | |
JP2018166258A (en) | Relay communication method, relay communication program, and relay communication device | |
EP2874116A1 (en) | Communication method between content requester and content provider for providing content and real-time streaming content in content name-based content centric network | |
US7552441B2 (en) | Socket compatibility layer for TOE | |
WO2014087850A1 (en) | Automatic-fault-handling cache system, fault-handling processing method for cache server, and cache manager | |
TW200805163A (en) | Virtualisation support | |
JP2003208365A (en) | Virtual network with adaptive dispatcher | |
JP4398354B2 (en) | Relay system | |
WO2007073429A2 (en) | Distributed and replicated sessions on computing grids | |
US20210051211A1 (en) | Method and system for image pulling | |
JP2012129648A (en) | Server device, management device, transfer destination address setting program, and virtual network system | |
EP3989508A1 (en) | Method and system for implementing domain name access accelration | |
EP4068725A1 (en) | Load balancing method and related device | |
EP1589424A2 (en) | Vertical perimeter framework for providing application services in multi-CPU environments | |
CN111756780B (en) | Method for synchronizing connection information and load balancing system | |
EP1178643B1 (en) | Using a centralized server to coordinate assignment of identifiers in a distributed system | |
JP3792707B2 (en) | Data communication load distribution control program and data load distribution control method | |
JP2009055134A (en) | Communication control unit, communication control method, and communication control program | |
US8205199B2 (en) | Method and system for associating new queues with deployed programs in distributed processing systems | |
JP2009055133A (en) | Communication control unit, communication control method, and communication control program | |
JP4021780B2 (en) | Computer node, cluster system, cluster management method, cluster management program | |
JP2005209145A (en) | Bidirectional communication network device management apparatus, network device management method, program, and recording medium | |
WO2011117921A1 (en) | Method for concurrency control in a file versioning system | |
JP2009053770A (en) | Communication control device, communication control method and communication control program |