JP2009055134A - Communication control unit, communication control method, and communication control program - Google Patents

Communication control unit, communication control method, and communication control program Download PDF

Info

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
Application number
JP2007217549A
Other languages
Japanese (ja)
Inventor
Kei Kato
慶 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2007217549A priority Critical patent/JP2009055134A/en
Publication of JP2009055134A publication Critical patent/JP2009055134A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To reduce the processing load on a processor. <P>SOLUTION: A communication control unit comprises a protocol processing circuit that is a hardware-wired circuit for performing protocol analysis processings on reception data by TCP; a protocol processing section for performing protocol analysis processings on reception data by TCP; an interface object for performing communication control of reception data on a plurality of network devices; a packet determining section for determining whether communication data is subjected to protocol analysis processings by the protocol processing circuit for each network device, based on the traffic of each network device; a lower hardware protocol layer delivery section for delivering communication data to the protocol processing circuit, when it is decided that protocol analysis processings are performed by the protocol processing circuit; and a lower protocol layer delivery section for delivering reception data to the protocol processing section, when it is decided that protocol analysis processings will not be performed by the protocol processing circuit. <P>COPYRIGHT: (C)2009,JPO&INPIT

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.

特開2005−316629号公報JP 2005-316629 A

しかしながら、現在の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 information processing apparatus 100 according to the embodiment. As shown in FIG. 1, the information processing apparatus 100 includes a CPU 101, a protocol processing circuit 102, an arbiter 103 that connects the protocol processing circuit 102 to a bus, a RAM 104, a ROM 105, a wired LAN 106, a serial line 107, and a wireless A LAN 108 and a USB 109 are provided, and the hardware configuration is such that the protocol processing circuit 102 is connected to a normal computer.

そして、ROM105に格納されたプログラムが、RAM104上にロードされる。そして、CPU101がロードされたプログラムを用いて処理を行うことになる。   Then, the program stored in the ROM 105 is loaded onto the RAM 104. Then, the CPU 101 performs processing using the loaded program.

このCPU101は、当該プログラムを用いて、有線LAN106、シリアル回線107、無線LAN108及びUSB109を使用した通信制御を行う。   The CPU 101 performs communication control using the wired LAN 106, the serial line 107, the wireless LAN 108, and the USB 109 using the program.

プロトコル処理回路102に用いられている技術は、CPU101に対して高い負荷をかけるネットワークプロトコル処理及びネットワークプロトコルのチェックサム処理等をハードウェア化するものである。そして、当該ハードウェアがネットワーク処理の一部又は全部を行うことで、CPU101の負荷を低減する。   The technology used for the protocol processing circuit 102 is to implement hardware such as network protocol processing that places a high load on the CPU 101 and network protocol checksum processing. The hardware performs part or all of the network processing, thereby reducing the load on the CPU 101.

また、プロトコル処理回路102は、現在提案されているTOEのハードウェア回路を適用し、TCP/UDP/ICMP/IPのプロトコルについて、CPUに対して高い負荷をかけるネットワークプロトコル処理及びネットワークプロトコルのチェックサム処理等をハードウェア回路で処理する。   Further, the protocol processing circuit 102 applies the presently proposed TOE hardware circuit, and for the TCP / UDP / ICMP / IP protocol, a network protocol processing and a network protocol checksum that place a high load on the CPU. Processing and the like are processed by a hardware circuit.

また、プロトコル処理回路102は、アービタ103を介してバスに接続され、有線LAN106、シリアル回線107、無線LAN108等のネットワークデバイスで、受信したデータをハードウェアで所定のプロトコルの解析をした後、例えばRAM104に格納する。また、プロトコル処理回路102は、上述したネットワークデバイスのうちも最もデータ送受信量が多いネットワークデバイスに対して、割り当てられる。   Further, the protocol processing circuit 102 is connected to the bus via the arbiter 103, and after analyzing the received data with a network device such as a wired LAN 106, a serial line 107, a wireless LAN 108, etc. by hardware, for example, Stored in the RAM 104. The protocol processing circuit 102 is assigned to the network device having the largest data transmission / reception amount among the above-described network devices.

アービタ103は、当該割り当てられたネットワークデバイスと、プロトコル処理回路102との間の通信を制御する。これにより、最もデータ送受信量が多いネットワークデバイスの処理をプロトコル処理回路102で行われるため、CPU101の処理負担を軽減させることができる。   The arbiter 103 controls communication between the assigned network device and the protocol processing circuit 102. As a result, the processing of the network device with the largest amount of data transmission / reception is performed by the protocol processing circuit 102, so the processing load on the CPU 101 can be reduced.

次に情報処理装置100のソフトウェア構成について説明する。図2は情報処理装置100のネットワークをレイヤー構造で示した図である。図2に示すように、情報処理装置100は、ユーザプログラム層201、ソケット層202、プロトコル上位層203と、プロトコル層204と、ハードウェアプロトコル層205と、プロトコル下位層206と、インターフェース層207と、ネットワークデバイス208とを備えている。   Next, the software configuration of the information processing apparatus 100 will be described. FIG. 2 is a diagram showing the network of the information processing apparatus 100 in a layer structure. As shown in FIG. 2, the information processing apparatus 100 includes a user program layer 201, a socket layer 202, a protocol upper layer 203, a protocol layer 204, a hardware protocol layer 205, a protocol lower layer 206, an interface layer 207, The network device 208 is provided.

情報処理装置100では、ソケット層202、プロトコル層204、インターフェース層207について、従来から使用されているものをほぼ流用可能とする。これにより、広範に普及しているOSのカーネルに実装されたネットワーク処理を可能とする。そして、情報処理装置100では、新規にプロトコル上位層203、ハードウェアプロトコル層205、プロトコル下位層206を追加することで、従来のソフトウェアによるネットワーク処理と、ハードウェアプロトコル層205によるハードウェアオフロードとの共存を可能としている。   In the information processing apparatus 100, the socket layer 202, the protocol layer 204, and the interface layer 207 that have been conventionally used can be almost used. This enables network processing implemented in OS kernels that are widely used. In the information processing apparatus 100, a protocol upper layer 203, a hardware protocol layer 205, and a protocol lower layer 206 are newly added, so that network processing by conventional software and hardware offload by the hardware protocol layer 205 can be performed. Coexistence is possible.

ネットワークデバイス208は、ネットワークデバイス262a〜cを備え、外部のネットワークと送受信する。受信したデータは、インターフェース層207のインターフェースオブジェクト261a〜cに受け渡される。   The network device 208 includes network devices 262a to 262c and transmits / receives to / from an external network. The received data is transferred to the interface objects 261a to 261c of the interface layer 207.

インターフェース層207は、下位のネットワークデバイス208と、プロトコル下位層206との間に存在する層である。インターフェース層207は、ネットワークデバイス208が備えているハードウェアを抽象化することで、具体的なハードウェアを隠蔽し、ハードウェア毎にAPIを提供する。   The interface layer 207 is a layer that exists between the lower network device 208 and the protocol lower layer 206. The interface layer 207 abstracts hardware included in the network device 208, thereby hiding specific hardware and providing an API for each hardware.

また、インターフェース層207は、インターフェースオブジェクト261a〜cを備えている。当該インターフェースオブジェクト261a〜cは、物理的なネットワークデバイス毎に1対1に割り当てられているメモリオブジェクトである。また、インターフェースオブジェクト261a〜cは、当該ネットワークデバイスのハードウェア情報、アクセス先のアドレス情報及び当該ネットワークデバイスにアクセスするためのインターフェースを備えている。これにより、当該インターフェースオブジェクト261a〜cを操作することで、割り当てられたネットワークデバイスを制御することができる。   The interface layer 207 includes interface objects 261a to 261c. The interface objects 261a to 261c are memory objects assigned one to one for each physical network device. The interface objects 261a to 261c include hardware information of the network device, access destination address information, and an interface for accessing the network device. Thereby, the assigned network device can be controlled by operating the interface objects 261a to 261c.

図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, interface objects 261a to 261c are generated, and the attributes and operations described above can be used. Similarly, the interface objects 261a to 261c are generated with automatic detection at the time of activation.

プロトコル下位層206は、プロトコル判別部241と、送信先取得部242と、インターフェース管理テーブル243と、下位プロトコル層受渡部244と、ハードウェアインターフェース管理テーブル245と、処理先判断部246と、下位ハードウェアプロトコル層受渡部247と、下位データ順序保証部248と、通信履歴格納部251と、エントリ制御部255と、再送要求部256と、履歴更新部257と、履歴判断部258と、検索部259と、パケット判断部260と、下位番号割当部263と、を備える。   The protocol lower layer 206 includes a protocol determination unit 241, a transmission destination acquisition unit 242, an interface management table 243, a lower protocol layer transfer unit 244, a hardware interface management table 245, a processing destination determination unit 246, Hardware protocol layer delivery unit 247, lower data order guarantee unit 248, communication history storage unit 251, entry control unit 255, retransmission request unit 256, history update unit 257, history determination unit 258, and search unit 259 And a packet determination unit 260 and a lower number assigning unit 263.

インターフェース管理テーブル243は、インターフェースオブジェクト261a〜cのポインタが格納されている。このインターフェース管理テーブル243は、プロトコル層204、プロトコル下位層206及びインターフェース層207から参照可能にする。   The interface management table 243 stores pointers for the interface objects 261a to 261c. The interface management table 243 can be referred to from the protocol layer 204, the protocol lower layer 206, and the interface layer 207.

図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 interface layer 207 registers and deletes a record in the interface management table 243.

このように、インターフェース管理テーブル243に格納されたポインタを参照することで、ネットワークデバイス262a〜cを指し示すインターフェースオブジェクト261a〜cにアクセスできる。これにより、ネットワークデバイス208が備えるネットワークデバイスの情報を参照することができる。   Thus, by referring to the pointer stored in the interface management table 243, the interface objects 261a to 261c indicating the network devices 262a to 262c can be accessed. Thereby, information on the network device included in the network device 208 can be referred to.

ハードウェアインターフェース管理テーブル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 protocol processing circuit 102. The hardware interface management table 245 can be referred to from the protocol upper layer 203 and the protocol lower layer 206. By referring to the hardware interface management table 245, the hardware protocol layer 205 can access an interface object to be protocol-processed.

図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 protocol processing circuit 232 is assigned to a predetermined network device, a pointer of the interface object indicating the network device is registered in the hardware interface management table 245. Then, when the protocol processing circuit 232 finishes assignment for the network device, the pointer of the interface object indicating the network device is deleted from the hardware interface management table 245. Such registration and deletion are performed by the packet determination unit 260.

通信履歴格納部251は、通信記録テーブル252と、デバイス毎送信パケット数253と、デバイス毎受信パケット数254とを備える。図6は、通信記録テーブル252のテーブル構造を示した図である。図6に示すように通信記録テーブル252は、アドレスと、ポート番号と、TCPシーケンス番号と、ハードウェア使用中フラグとを対応付けて記憶している。この各レコードは、データの送受信が開始された場合に、エントリ制御部255によりエントリされる。そして、各エントリを参照することで、エントリ内に格納されているアドレスと通信しているポート番号が認識できると共に、当該ポート番号で受信したパケットのTCPシーケンス番号を確認できる。さらに、ハードウェア使用中フラグは、プロトコル処理回路232を使用しているか否かを保持する。   The communication history storage unit 251 includes a communication record table 252, the number of transmitted packets for each device 253, and the number of received packets for each device 254. FIG. 6 is a diagram showing a table structure of the communication record table 252. As shown in FIG. 6, the communication record table 252 stores an address, a port number, a TCP sequence number, and a hardware busy flag in association with each other. Each record is entered by the entry control unit 255 when data transmission / reception is started. By referring to each entry, the port number communicating with the address stored in the entry can be recognized, and the TCP sequence number of the packet received at the port number can be confirmed. Further, the hardware in-use flag holds whether or not the protocol processing circuit 232 is used.

デバイス毎送信パケット数253は、ネットワークデバイス262a〜c毎に送信したパケット数を保持する。デバイス毎受信パケット数254は、ネットワークデバイス262a〜c毎に受信したパケット数を保持する。   The per-device transmission packet number 253 holds the number of packets transmitted for each network device 262a-c. The number of received packets per device 254 holds the number of packets received for each network device 262a-c.

通信履歴格納部251は、上述したテーブルを備えることで、TCPのような再送制御を行なうプロトコルを必要とする通信データを、プロトコル層204及びハードウェアプロトコル層205のいずれにプロトコル処理を行わせるのか決定することができる。また、これら送受信したパケット数に基づいて、プロトコル層204及びハードウェアプロトコル層205のいずれにプロトコル処理を行わせるのか切り替えることができる。   The communication history storage unit 251 includes the above-described table so that the protocol layer 204 or the hardware protocol layer 205 performs protocol processing on communication data that requires a protocol for performing retransmission control such as TCP. Can be determined. Also, based on the number of packets transmitted and received, it is possible to switch between the protocol layer 204 and the hardware protocol layer 205 to perform protocol processing.

エントリ制御部255は、通信記録テーブル252のエントリの制御を行う。例えば、エントリ制御部255は、あるポート番号から任意のアドレスに対して送受信が開始された場合に、当該ポート番号及びアドレスを格納するエントリを追加し、送受信が終了した場合には当該エントリの削除を行う。   The entry control unit 255 controls entries in the communication record table 252. For example, the entry control unit 255 adds an entry for storing the port number and address when transmission / reception is started from a certain port number to an arbitrary address, and deletes the entry when transmission / reception ends. I do.

履歴更新部257は、情報処理装置100の送受信状況に応じて、通信記録テーブル252、デバイス毎送信パケット数253デバイス毎受信パケット数254を更新する。   The history update unit 257 updates the communication record table 252, the number of transmitted packets for each device 253, and the number of received packets for each device 254 according to the transmission / reception status of the information processing apparatus 100.

具体的な例としては、履歴更新部257は、ネットワークデバイス262a〜cでパケットを受信した場合に、デバイス毎受信パケット数254内の当該ネットワークデバイスの受信パケット数に‘1’追加する。他には履歴更新部257は、ネットワークデバイス262a〜cでパケットを送信した場合に、デバイス毎送信パケット数253内の当該ネットワークデバイスの送信パケット数に‘1’追加する。   As a specific example, when the network device 262a-c receives a packet, the history update unit 257 adds “1” to the received packet number of the network device in the received packet number 254 for each device. Otherwise, when the network device 262a-c transmits a packet, the history update unit 257 adds “1” to the transmission packet number of the network device in the transmission packet number 253 for each device.

また、履歴更新部257は、TCPパケットのプロトコル処理先を、プロトコル層204及びハードウェアプロトコル層205のいずれかに切り替えた場合、通信記録テーブル252のハードウェア使用中フラグを更新する。   Further, when the protocol processing destination of the TCP packet is switched to either the protocol layer 204 or the hardware protocol layer 205, the history update unit 257 updates the hardware busy flag in the communication record table 252.

履歴判断部258は、シーケンシャルな番号が付されたTCPパケットをネットワークデバイス262a〜cが受信した場合に、通信記録テーブルに格納された当該シーケンシャルな番号と、受信したTCPのパケットに割り当てられた番号とを比較して、正常に受信しているか否か判断する。正常に受信していないと判断された場合、再送要求部256による再送要求などを行う。   The history determination unit 258, when the network device 262a-c receives a TCP packet with a sequential number, the sequential number stored in the communication record table and the number assigned to the received TCP packet. To determine whether or not the reception is normal. If it is determined that the packet has not been received normally, a retransmission request is made by the retransmission request unit 256.

パケット判断部260は、一定時間毎にデバイス毎送信パケット数253及びデバイス毎受信パケット数254を監視し、一定時間内で受信パケット数と送信パケット数との合計が所定の量以上又は最も多いネットワークデバイス262a〜cを判断し、当該ネットワークデバイスにプロトコル処理回路232を割り当てるように、ハードウェアインターフェース管理テーブル245を更新する。具体的には、受信パケット数と送信パケット数との合計が所定の量以上又は最も多いと判断されたネットワークデバイスのインターフェースオブジェクトのポインタを、ハードウェアインターフェース管理テーブル245に登録する。これにより、当該パケットの総受信量が処理の量以上又は最も多いネットワークデバイス262a〜cが送受信するパケットに対して、ハードウェアプロトコル層205が利用されることになる。   The packet determination unit 260 monitors the number of transmitted packets 253 for each device and the number of received packets 254 for each device every predetermined time, and the network in which the total of the number of received packets and the number of transmitted packets is greater than or equal to a predetermined amount within the predetermined time The hardware interface management table 245 is updated so that the devices 262a to 262c are determined and the protocol processing circuit 232 is assigned to the network device. Specifically, the pointer of the interface object of the network device that is determined that the sum of the number of received packets and the number of transmitted packets is greater than or equal to a predetermined amount is registered in the hardware interface management table 245. As a result, the hardware protocol layer 205 is used for packets that are transmitted and received by the network devices 262a to 262c whose total received amount of the packets is greater than or equal to the processing amount.

さらに、パケット判断部260は、データ送受信量が所定の量以下に減少したインターフェースオブジェクトのポインタをハードウェアインターフェース管理テーブル245から削除する。   Further, the packet determination unit 260 deletes the pointer of the interface object whose data transmission / reception amount has decreased to a predetermined amount or less from the hardware interface management table 245.

検索部259は、通信記録テーブル252に対して検索を行う。   The search unit 259 searches the communication record table 252.

プロトコル判別部241は、受信パケットのプロトコルを判別する。なお、判別手法については、従来と同様の手法とする。   The protocol determination unit 241 determines the protocol of the received packet. The discrimination method is the same as the conventional method.

送信先取得部242は、プロトコル判別部241により判別されたプロトコルがTCPの場合に、送信元アドレス、送信先アドレス、ポート番号を取得する。   The transmission destination acquisition unit 242 acquires a transmission source address, a transmission destination address, and a port number when the protocol determined by the protocol determination unit 241 is TCP.

図7は、プロトコル層204、ハードウェアプロトコル層205及びプロトコル下位層206で、送受信するデータの概念を示した図である。図7に示すように、連番が割り当てられた送信データ及び受信データを、プロトコル層204又はハードウェアプロトコル層205、及びプロトコル下位層206間で受け渡しが行われる。   FIG. 7 is a diagram showing the concept of data transmitted and received in the protocol layer 204, the hardware protocol layer 205, and the protocol lower layer 206. As shown in FIG. 7, transmission data and reception data to which serial numbers are assigned are transferred between the protocol layer 204 or the hardware protocol layer 205 and the protocol lower layer 206.

また、従来は、プロトコル層がインターフェース層207と送受信を行っていたが、本実施の形態にかかる情報処理装置100では、プロトコル下位層206がインターフェース層207と送受信を行うように構成された。このため、従来はプロトコル層に備えられていたプロトコル判別部241及び送信先取得部242は、プロトコル下位層206内に備えられることとなった。   Conventionally, the protocol layer performs transmission / reception with the interface layer 207, but the information processing apparatus 100 according to the present embodiment is configured such that the protocol lower layer 206 performs transmission / reception with the interface layer 207. For this reason, the protocol discrimination unit 241 and the transmission destination acquisition unit 242 that are conventionally provided in the protocol layer are provided in the protocol lower layer 206.

処理先判断部246は、プロトコル下位層206がインターフェースオブジェクト261a〜cから受信データを受け付けた場合に、当該インターフェースオブジェクト261a〜cのポインタが、ハードウェアインターフェース管理テーブル245に登録されているか否か判断する。そして、処理先判断部246が登録されていると判断した場合には、ハードウェアプロトコル層205のプロトコル処理回路232でプロトコル解析処理が行われることになる。   When the protocol lower layer 206 receives received data from the interface objects 261a to 261c, the processing destination determining unit 246 determines whether or not the pointers of the interface objects 261a to 261c are registered in the hardware interface management table 245. To do. If the processing destination determination unit 246 determines that it is registered, the protocol analysis circuit 232 of the hardware protocol layer 205 performs protocol analysis processing.

下位プロトコル層受渡部244は、受信データを受け渡したインターフェースオブジェクト261a〜cのポインタがハードウェアインターフェース管理テーブル245に登録されていないと処理先判断部246が判断した場合に、当該受信データを受け取り、ハードウェアプロトコル層205のプロトコル処理回路232に受け渡す。   When the processing destination determination unit 246 determines that the pointers of the interface objects 261a to 261c that have received the received data are not registered in the hardware interface management table 245, the lower protocol layer transfer unit 244 receives the received data, The data is transferred to the protocol processing circuit 232 of the hardware protocol layer 205.

下位ハードウェアプロトコル層受渡部247は、受信データを受け渡したインターフェースオブジェクト261a〜cのポインタがハードウェアインターフェース管理テーブル245に登録されていると処理先判断部246が判断した場合に、当該受信データを受け取り、プロトコル層204のプロトコル処理部231に受け渡す。   When the processing destination determination unit 246 determines that the pointers of the interface objects 261a to 261c that have received the received data are registered in the hardware interface management table 245, the lower hardware protocol layer transfer unit 247 transmits the received data. Received and transferred to the protocol processing unit 231 of the protocol layer 204.

上述したように一定期間毎にパケット判断部260が、プロトコル処理及びプロトコル解析処理を行うプロトコル層204及びハードウェアプロトコル層205を切り替える。このため、当該切り替えが、データ送受信中に行なわれることがある。プロトコル処理及びプロトコル解析処理を行う層が突然切り替わることを意味し、一定時間に着目すると二つの層で一つのネットワークデバイスに関する処理が行なわれることになる。このため、二つの層で処理を行う場合でも、データの順番について保証する必要がある。   As described above, the packet determination unit 260 switches between the protocol layer 204 and the hardware protocol layer 205 that perform protocol processing and protocol analysis processing at regular intervals. For this reason, the switching may be performed during data transmission / reception. This means that the layers for performing the protocol processing and the protocol analysis processing are suddenly switched. If attention is paid to a certain time, processing for one network device is performed in two layers. For this reason, even when processing is performed in two layers, it is necessary to guarantee the order of data.

このため、プロトコル下位層206及びプロトコル上位層203では、この順番の保証を行なう機能を提供する。基本的な仕組みは以下の通りである。   For this reason, the protocol lower layer 206 and the protocol upper layer 203 provide a function for guaranteeing this order. The basic mechanism is as follows.

まず、送信データを出力時はプロトコル上位層203で各ソケットの送信データ毎に連番を割り当て、プロトコル下位層206で当該連番を参照してデータの順序を保証する。   First, when outputting transmission data, the protocol upper layer 203 assigns a serial number for each transmission data of each socket, and the protocol lower layer 206 refers to the serial number to guarantee the data order.

次に、受信データを入力時はプロトコル下位層206で各インターフェースオブジェクトの受信データ毎に連番を割り当て、プロトコル上位層203で当該連番を参照してデータの順序を保証する。なお、詳細な処理手順については後述する。次に、プロトコル下位層206で当該順序の保証に用いる構成について説明する。   Next, when receiving data, the protocol lower layer 206 assigns a serial number for each received data of each interface object, and the protocol upper layer 203 refers to the serial number to guarantee the data order. The detailed processing procedure will be described later. Next, a configuration used for guaranteeing the order in the protocol lower layer 206 will be described.

下位データ順序保証部248は、インターフェースディスパッチャ249を備え、プロトコル層204及びハードウェアプロトコル層205からの送信データを受け取り、これら送信データの順序を保証する。   The lower data order guarantee unit 248 includes an interface dispatcher 249, receives transmission data from the protocol layer 204 and the hardware protocol layer 205, and guarantees the order of these transmission 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 protocol layer 204 and the protocol processing by the hardware protocol layer 205 is passed. Transmitted data does not always follow the transmission order. Therefore, the lower data order guarantee unit 248 guarantees the order of the transmission data.

インターフェースディスパッチャ249は、データキュー250を備える。このデータキュー250は、ソケット単位に設けられ、受け取った送信データを一時的に格納する。   The interface dispatcher 249 includes a data queue 250. The data queue 250 is provided for each socket and temporarily stores received transmission data.

そして、インターフェースディスパッチャ249は、ソケット単位でデータキュー250に格納された送信データに格納された連番を参照して、送信する順番に従って送信データを受け取っているか否か監視を行う。なお、送信データに格納された連番は、プロトコル上位層203でシーケンシャルに割り当てられた番号とする。   Then, the interface dispatcher 249 refers to the serial number stored in the transmission data stored in the data queue 250 for each socket, and monitors whether the transmission data is received according to the transmission order. The serial number stored in the transmission data is a number assigned sequentially by the protocol upper layer 203.

そして、インターフェースディスパッチャ249は、送信する順番に従って送信データを受け取っていることを確認した後、当該送信データを関連付けられているインターフェースオブジェクト261a〜cに受け渡す。   The interface dispatcher 249 confirms that the transmission data is received according to the transmission order, and then transfers the transmission data to the associated interface objects 261a to 261c.

また、インターフェースディスパッチャ249は、インターフェース層207に新たなインターフェースオブジェクト261a〜cが生成された場合に同時に生成される。このインターフェースディスパッチャ249は、インターフェースオブジェクと1対1の関係を有する。そして、インターフェースオブジェクト261a〜cが消去されると、当該インターフェースディスパッチャ249も消去される。   The interface dispatcher 249 is generated at the same time when new interface objects 261a to 261c are generated in the interface layer 207. The interface dispatcher 249 has a one-to-one relationship with the interface object. When the interface objects 261a to 261c are deleted, the interface dispatcher 249 is also deleted.

図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 upper layer 203 first assigns a sequential serial number for each socket to the transmission data received from the socket 212a. This transmission data is output to the protocol lower layer 206 through the protocol layer 204 or the hardware protocol layer 205.

そして、インターフェースディスパッチャ249は、ソケット単位に設けられたデータキュー250に送信データを一時的に保存し、連番を確認する。   The interface dispatcher 249 temporarily saves the transmission data in the data queue 250 provided for each socket, and confirms the serial number.

この際、プロトコル上位層203でプロトコル層204及びハードウェアプロトコル層205への分配に失敗、又はこれら層でのプロトコル処理に失敗した場合、プロトコル上位層203がこれら失敗を検出し、プロトコル下位層206のソケット毎のインターフェースディスパッチャ249に欠番が生じたことを通知する。   At this time, if the protocol upper layer 203 fails to distribute to the protocol layer 204 and the hardware protocol layer 205, or the protocol processing in these layers fails, the protocol upper layer 203 detects these failures, and the protocol lower layer 206 The interface dispatcher 249 for each socket is notified that a missing number has occurred.

インターフェースディスパッチャ249は、データキュー250に格納された送信データの連番を確認している時に、欠番があることをプロトコル上位層203から通知されている場合は、当該欠番を飛ばして確認処理を継続する。   When the interface dispatcher 249 confirms the serial number of the transmission data stored in the data queue 250 and is notified from the protocol upper layer 203 that there is a missing number, the interface dispatcher 249 skips the missing number and continues the confirmation process. To do.

これにより、インターフェースディスパッチャ249に受け渡された送信データは、データキューに保存された順に、対応するインターフェースオブジェクトに受け渡される。このインターフェースオブジェクト261aへの受け渡し処理は、既存のプロトコル層で行なわれている処理を流用することとして、説明を省略する。   Thereby, the transmission data delivered to the interface dispatcher 249 is delivered to the corresponding interface object in the order stored in the data queue. The delivery process to the interface object 261a is abbreviated as the process performed in the existing protocol layer is used.

図2に戻り、下位番号割当部263は、受信したデータのパケット毎にシーケンシャルな番号を割り当てる。   Returning to FIG. 2, the lower number assigning unit 263 assigns a sequential number to each received data packet.

再送要求部256は、プロトコルがTCP等で再送処理を必要とする場合に、インターフェースオブジェクト261a〜cを介して、再送要求を行う。なお、再送要求については、従来と同様の処理を行うものとして説明を省略する。次に、情報処理装置100のネットワークのレイヤー構造の上位階層から順に説明する。   The retransmission request unit 256 makes a retransmission request via the interface objects 261a to 261c when the protocol is TCP or the like and requires retransmission processing. Note that the retransmission request is omitted because it is the same as the conventional process. Next, the information processing apparatus 100 will be described in order from the upper layer of the network layer structure.

ユーザプログラム層201は、利用者が使用可能なネットワークプログラム211a〜cを備える。そして、各ネットワークプログラム211a〜cは、通信を行う際に後述するソケット層202に対して、通信処理を要求する。   The user program layer 201 includes network programs 211a to 211c that can be used by the user. And each network program 211a-c requests | requires a communication process with respect to the socket layer 202 mentioned later, when communicating.

ソケット層202は、ネットワーク接続に関する情報をまとめたディスクリプタ(記述子)であるソケット212a〜cを保持する層である。ソケット層202はユーザプログラム層201のネットワークプログラム211a〜cに対し、プロトコル上位層203へのインターフェースを隠蔽し、ネットワーク接続のサービスのエンドポイントを提供する。   The socket layer 202 is a layer that holds sockets 212a to 212c, which are descriptors that summarize information related to network connections. The socket layer 202 hides the interface to the protocol upper layer 203 from the network programs 211a to 211c of the user program layer 201, and provides a network connection service endpoint.

ソケット212a〜cは、ユーザプログラム層201のネットワークプログラム211a〜c毎に一つ以上作成される。また、ソケットは作成される際、通信に用いるプロトコルが設定される。このようにして、ソケット212a〜cは、上述したネットワークプログラム211a〜cとの関連付けと、送受信の対象となるアドレス、送受信に用いるプロトコル情報、送受信するデータに関する情報、送受信に用いるルーティング情報を保持する。そして、ソケット212a〜cは、ネットワークから所定のIPアドレスへの送信する指示や、所定のIPアドレスからの受信待ちする指示を受け付けた場合に、後述するプロトコル上位層203に、当該指示を送信する。そして、送信先のプロトコル上位層203からは、各ソケット212a〜cが保持しているプロトコル情報又はIPアドレス等を参照可能とする。   One or more sockets 212 a to 212 c are created for each network program 211 a to 211 c of the user program layer 201. In addition, when a socket is created, a protocol used for communication is set. In this way, the sockets 212a to 212c hold the association with the above-described network programs 211a to 211c, the address to be transmitted / received, the protocol information used for transmission / reception, the information regarding the data to be transmitted / received, and the routing information used for transmission / reception. . When the sockets 212a to 212c receive an instruction to transmit from the network to a predetermined IP address or an instruction to wait for reception from the predetermined IP address, the sockets 212a to 212c transmit the instruction to the protocol upper layer 203 described later. . The protocol upper layer 203 of the transmission destination can refer to the protocol information or IP address held by each of the sockets 212a to 212c.

なお、このソケット層202で使用されるソケットAPIはネットワークプログラミングのデファクトスタンダードとなっており、OSを問わず使用可能である。   The socket API used in the socket layer 202 is a de facto standard for network programming and can be used regardless of the OS.

プロトコル上位層203は、上位プロトコル判断部221と、ソケット特定部222と、上位プロトコル層受渡部223と、上位データ順序保証部224と、上位番号割当部227と、上位ハードウェアプロトコル層受渡部229とを備えると共に、ソケット層202に対して既存のI/Fを保持している。   The protocol upper layer 203 includes an upper protocol determination unit 221, a socket identification unit 222, an upper protocol layer delivery unit 223, an upper data order assurance unit 224, an upper number assignment unit 227, and an upper hardware protocol layer delivery unit 229. And the existing I / F for the socket layer 202 is held.

また、プロトコル上位層203は、ソケット層202からデータの送信要求が行われた場合に、所定の条件に基づいて、プロトコル層204にプロトコル処理を要求する、又はハードウェアプロトコル層205にプロトコル処理を要求するかを切り替える。 Further, when a data transmission request is made from the socket layer 202, the protocol upper layer 203 requests a protocol process from the protocol layer 204 based on a predetermined condition, or performs a protocol process to the hardware protocol layer 205. Switch what you want.

上位プロトコル判断部221は、ソケット212a〜cから送信要求が行われた場合、当該ソケット212a〜cが保持するプロトコル情報から利用するプロトコルを特定した後、特定されたプロトコル及びプロトコル下位層206のハードウェアインターフェース管理テーブル245から、プロトコル層204でプロトコル処理を行うか、ハードウェアプロトコル層205でプロトコル処理を行うか判断する。なお、詳細な処理手順については後述する。   When a transmission request is made from the sockets 212a to 212c, the upper protocol determination unit 221 identifies the protocol to be used from the protocol information held by the sockets 212a to 212c, and then identifies the identified protocol and the protocol lower layer 206 hardware. It is determined from the hardware interface management table 245 whether the protocol layer 204 performs protocol processing or the hardware protocol layer 205 performs protocol processing. The detailed processing procedure will be described later.

上位プロトコル層受渡部223は、上位プロトコル判断部221がプロトコル層204でプロトコル処理を行うと判断した場合、プロトコル層204に送信対象であるデータを受け渡すと共に、特定されたプロトコルによる当該データのプロトコル処理を要求する。   If the upper protocol determination unit 221 determines that the protocol layer 204 performs the protocol processing, the upper protocol layer transfer unit 223 transfers the data to be transmitted to the protocol layer 204 and the protocol of the data according to the specified protocol. Request processing.

上位ハードウェアプロトコル層受渡部229は、上位プロトコル判断部221がハードウェアプロトコル層205でプロトコル処理を行うと判断した場合、ハードウェアプロトコル層205に送信対象であるデータを受け渡すと共に、特定されたプロトコルによる当該データのプロトコル処理を要求する。   When the upper protocol determination unit 221 determines that the hardware protocol layer 205 performs protocol processing, the upper hardware protocol layer transfer unit 229 transfers the data to be transmitted to the hardware protocol layer 205 and is specified. Request protocol processing of the data by protocol.

ソケット特定部222は、受信データの送信元アドレス、ソケット212a〜cの送信先アドレスに基づいて、受信データを受け渡すソケット212a〜cを特定する。   The socket identification unit 222 identifies the sockets 212a to 212c that receive the reception data based on the transmission source address of the reception data and the transmission destination addresses of the sockets 212a to 212c.

図9は、プロトコル層204、ハードウェアプロトコル層205及びプロトコル上位層203で、送受信するデータの概念を示した図である。図9に示すように、連番が割り当てられた送信データ及び受信データを、プロトコル層204又はハードウェアプロトコル層205、及びプロトコル上位層203間で受け渡しが行われる。   FIG. 9 is a diagram showing the concept of data transmitted and received in the protocol layer 204, the hardware protocol layer 205, and the protocol upper layer 203. As shown in FIG. 9, transmission data and reception data to which serial numbers are assigned are exchanged between the protocol layer 204 or the hardware protocol layer 205 and the protocol upper layer 203.

また、従来は、プロトコル層がソケット層202と送受信を行っていたが、本実施の形態にかかる情報処理装置100では、プロトコル上位層203がソケット層202と送受信を行うように構成された。このため、従来はプロトコル層に備えられていたソケット特定部222が、プロトコル上位層203内に備えられることとなった。   Conventionally, the protocol layer performs transmission / reception with the socket layer 202, but the information processing apparatus 100 according to the present embodiment is configured such that the protocol upper layer 203 performs transmission / reception with the socket layer 202. For this reason, the socket specifying unit 222 that is conventionally provided in the protocol layer is provided in the protocol upper layer 203.

図2に戻り、上位データ順序保証部224は、ソケットディスパッチャ225を備え、プロトコル層204及びハードウェアプロトコル層205からの受信データを受け取り、これら受信データの順序を保証する。   Returning to FIG. 2, the upper data order guarantee unit 224 includes a socket dispatcher 225, receives the received data from the protocol layer 204 and the hardware protocol layer 205, and guarantees the order of these received 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 protocol layer 204 and the received protocol is processed by the hardware protocol layer 205. The received data delivered in this manner does not always follow the order of reception. Therefore, the upper data order guarantee unit 224 guarantees the order of received data.

ソケットディスパッチャ225は、データキュー226を備える。このデータキュー226は、インターフェースオブジェクト単位に設けられ、受け取った受信データを一時的に格納する。   The socket dispatcher 225 includes a data queue 226. The data queue 226 is provided for each interface object, and temporarily stores received data received.

そして、ソケットディスパッチャ225は、インターフェースオブジェクト単位でデータキュー226に格納された受信データに格納された連番を参照して、受信した順番に従って受信データを受け取っているか否か監視を行う。なお、受信データに格納された連番は、プロトコル下位層206でシーケンシャルに割り当てられた番号とする。   Then, the socket dispatcher 225 refers to the serial number stored in the received data stored in the data queue 226 for each interface object, and monitors whether the received data is received according to the reception order. Note that the serial number stored in the received data is a number assigned sequentially by the protocol lower layer 206.

そして、ソケットディスパッチャ225は、受信した順番に従って受信データを受け取っていることを確認した後、ソケット特定部222により特定されたソケット212a〜cに受け渡す。   Then, the socket dispatcher 225 confirms that the received data is received according to the order of reception, and then transfers the received data to the sockets 212 a to 212 c specified by the socket specifying unit 222.

また、ソケットディスパッチャ225は、インターフェース層207に新たなインターフェースオブジェクト261a〜cが生成された場合に同時に生成される。このソケットディスパッチャ225は、インターフェースオブジェクと1対1の関係を有する。そして、インターフェースオブジェクト261a〜cが消去されると、当該ソケットディスパッチャ225も消去される。なお、ソケット特定部222の機能を、ソケットディスパッチャ225内に備えることにしても良い。   Further, the socket dispatcher 225 is generated at the same time when new interface objects 261 a to 261 c are generated in the interface layer 207. The socket dispatcher 225 has a one-to-one relationship with the interface object. When the interface objects 261a to 261c are deleted, the socket dispatcher 225 is also deleted. The function of the socket specifying unit 222 may be provided in the socket dispatcher 225.

図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 number assigning unit 263 assigns sequential serial numbers for each interface object to the received data received from the interface object 261a. This received data is output to the protocol upper layer 203 through the protocol layer 204 or the hardware protocol layer 205.

そして、ソケットディスパッチャ225は、インターフェースオブジェクト単位に設けられたデータキュー226に受信データを一時的に保存し、連番を確認する。   Then, the socket dispatcher 225 temporarily stores the received data in the data queue 226 provided for each interface object, and confirms the serial number.

この際、プロトコル下位層206でプロトコル層204及びハードウェアプロトコル層205への分配に失敗、又はこれら層でのプロトコル解析処理に失敗した場合、プロトコル下位層206がこれら失敗を検出し、プロトコル上位層203のインターフェースオブジェクト毎のソケットディスパッチャ225に欠番が生じたことを通知する。   At this time, when the distribution to the protocol layer 204 and the hardware protocol layer 205 fails in the protocol lower layer 206, or the protocol analysis processing in these layers fails, the protocol lower layer 206 detects these failures, and the protocol upper layer Inform the socket dispatcher 225 of each interface object 203 that a missing number has occurred.

ソケットディスパッチャ225は、データキュー226に格納された受信データの連番を確認している時に、欠番があることをプロトコル下位層206から通知されている場合は、当該欠番を飛ばして確認処理を継続する。   When the socket dispatcher 225 confirms the serial number of the received data stored in the data queue 226 and is notified from the protocol lower layer 206 that there is a missing number, it skips the missing number and continues the confirmation process. To do.

これにより、ソケットディスパッチャ225に受け渡された受信データは、データキューに保存された順に、ソケット層202の各ソケット212a〜cに受け渡される。このソケット212a〜cへの受け渡し処理は、既存の処理を流用することとして、説明を省略する。   As a result, the received data transferred to the socket dispatcher 225 is transferred to the sockets 212a to 212c of the socket layer 202 in the order stored in the data queue. The delivery process to the sockets 212a to 212c is omitted because it uses an existing process.

図2に戻り、上位番号割当部227は、送信するデータのパケット毎にシーケンシャルな番号を割り当てる。   Returning to FIG. 2, the upper number assigning unit 227 assigns a sequential number to each packet of data to be transmitted.

プロトコル層204は、プロトコル処理部231を備え、上位に存在するプロトコル上位層203とのデータの送受信制御、下位に存在するプロトコル下位層206とのデータの送受信制御を行う。   The protocol layer 204 includes a protocol processing unit 231, and performs data transmission / reception control with the protocol upper layer 203 existing above and data transmission / reception control with the protocol lower layer 206 existing lower.

プロトコル処理部231は、上位プロトコル層受渡部223から受け渡された通信データを送信するためのプロトコル処理を行う。プロトコル処理とは、任意のプロトコルで通信データを送信するために、当該通信データから、当該プロトコルのフォーマットによるパケットを生成する等の処理をいう。   The protocol processing unit 231 performs a protocol process for transmitting the communication data transferred from the upper protocol layer transfer unit 223. Protocol processing refers to processing such as generating a packet in the format of the protocol from the communication data in order to transmit the communication data using an arbitrary protocol.

また、プロトコル処理部231は、下位プロトコル層受渡部244から受け渡された受信データに対してプロトコル解析処理を行う。このプロトコル解析処理とは、当該プロトコルのフォーマットによる受信パケットから、格納されていたデータを取得する等の処理をいう。   Further, the protocol processing unit 231 performs a protocol analysis process on the received data delivered from the lower protocol layer delivery unit 244. This protocol analysis processing refers to processing such as acquiring stored data from a received packet in the format of the protocol.

また、プロトコル処理部231においてプロトコル処理又はプロトコル解析の可能なプロトコルとしては、どのようなプロトコルであっても良く、例えば現在NetBSDでサポートされているあらゆるプロトコル等でも良い。   The protocol processing unit 231 can use any protocol that can be protocol-processed or analyzed, for example, any protocol currently supported by NetBSD.

ハードウェアプロトコル層205は、プロトコル処理回路232を備え、ハードウェアにより結線した回路で、所定のプロトコルによるプロトコル処理及びプロトコル解析処理を行う。これにより、ハードウェアプロトコル層205は、特に処理データ量、スピードが増加傾向にある所定のプロトコル(例えばTCP/IP)のハードウェアオフロードを行うことができる。   The hardware protocol layer 205 includes a protocol processing circuit 232, and is a circuit connected by hardware, and performs protocol processing and protocol analysis processing according to a predetermined protocol. Thereby, the hardware protocol layer 205 can perform hardware offload of a predetermined protocol (for example, TCP / IP) whose processing data amount and speed tend to increase.

プロトコル処理回路232は、プロトコル上位層203の上位ハードウェアプロトコル層受渡部229から受け渡された通信データを、所定のプロトコルによるプロトコル処理を行う。また、プロトコル処理回路232は、プロトコル下位層206の下位ハードウェアプロトコル層受渡部247から受け渡された通信データを、所定のプロトコルによるプロトコル解析処理を行う。また、プロトコル処理回路232においてプロトコル処理及びプロトコル解析処理が可能なプロトコルは、TCP、UDP、IP及びICMPとする。   The protocol processing circuit 232 performs a protocol process on the communication data transferred from the upper hardware protocol layer transfer unit 229 of the protocol upper layer 203 using a predetermined protocol. The protocol processing circuit 232 performs a protocol analysis process on the communication data transferred from the lower hardware protocol layer transfer unit 247 of the protocol lower layer 206 using a predetermined protocol. Protocols that can be protocol-processed and protocol-analyzed by the protocol processing circuit 232 are TCP, UDP, IP, and ICMP.

本実施の形態にかかる情報処理装置100では、プロトコル上位層203、プロトコル層204、ハードウェアプロトコル層205、及びプロトコル下位層206により、ソケット層202及びインターフェース層207は完全に分離され、互いに意識することなく処理を行うことができる。   In the information processing apparatus 100 according to the present embodiment, the socket layer 202 and the interface layer 207 are completely separated by the protocol upper layer 203, the protocol layer 204, the hardware protocol layer 205, and the protocol lower layer 206, and are conscious of each other. Processing can be performed without any problem.

本実施の形態にかかる情報処理装置100では、上述したプロトコル上位層203及びプロトコル下位層206でシーケンシャルな連番を割り当てると共に、上位データ順序保証部224及び下位データ順序保証部248を備えることで、プロトコル層204とハードウェアプロトコル層205とが切り替えられた場合でも順序を保証することが可能となる。   The information processing apparatus 100 according to the present embodiment assigns sequential serial numbers in the above-described protocol upper layer 203 and protocol lower layer 206, and includes an upper data order guarantee unit 224 and a lower data order guarantee unit 248. Even when the protocol layer 204 and the hardware protocol layer 205 are switched, the order can be guaranteed.

次に、本実施の形態にかかる情報処理装置100における送信処理について説明する。図11は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。   Next, transmission processing in the information processing apparatus 100 according to the present embodiment will be described. FIG. 11 is a flowchart illustrating the above-described processing procedure in the information processing apparatus 100 according to the present embodiment.

まず、ネットワークプログラム211a〜cが、ソケット212a〜cに対して、送信するデータを出力する(ステップS1101)。次に。ソケット212a〜cが、送信するデータを、プロトコル上位層203に出力する(ステップS1102)。   First, the network programs 211a to 211c output data to be transmitted to the sockets 212a to 212c (step S1101). next. The sockets 212a to 212c output data to be transmitted to the protocol upper layer 203 (step S1102).

そして、プロトコル上位層203に送信するデータが入力された場合、プロトコル上位層203の上位プロトコル判断部221は、当該データの受け渡し先がハードウェアプロトコル層205か否か判断する(ステップS1103)。この判断は、プロトコルがTCP/UDP/IP/ICMPであるか否か、及びデータを送信するネットワークデバイスにプロトコル処理回路232が割り当てられているか否かに基づいている。   When data to be transmitted is input to the protocol upper layer 203, the upper protocol determination unit 221 of the protocol upper layer 203 determines whether or not the data transfer destination is the hardware protocol layer 205 (step S1103). This determination is based on whether or not the protocol is TCP / UDP / IP / ICMP and whether or not the protocol processing circuit 232 is assigned to the network device that transmits data.

上位プロトコル判断部221が、受け渡し先がハードウェアプロトコル層205と判断した(ステップS1103:Yes)、上位ハードウェアプロトコル層受渡部229が、ハードウェアプロトコル層205にデータを受け渡し、ハードウェアプロトコル層205が当該データに対してプロトコル処理を行う(ステップS1104)。   When the upper protocol determination unit 221 determines that the transfer destination is the hardware protocol layer 205 (step S1103: Yes), the upper hardware protocol layer transfer unit 229 transfers data to the hardware protocol layer 205, and the hardware protocol layer 205 Performs protocol processing on the data (step S1104).

上位プロトコル判断部221が、受け渡し先がハードウェアプロトコル層205ではないと判断した場合(ステップS1103:No)、上位プロトコル層受渡部223が、プロトコル層204にデータを受け渡し、プロトコル層204が当該データに対してプロトコル処理を行う(ステップS1105)。   When the upper protocol determination unit 221 determines that the transfer destination is not the hardware protocol layer 205 (step S1103: No), the upper protocol layer transfer unit 223 transfers data to the protocol layer 204, and the protocol layer 204 receives the data. Protocol processing is performed on the server (step S1105).

そして、プロトコル処理が終了したデータは、下位データ順序保証部248のデータキュー250に格納される。そして、送信するデータの順序が正しいことが確認された場合に、送信処理を行うインターフェースオブジェクト261a〜cに受け渡される(ステップS1106)。なお、受け渡し先のインターフェースオブジェクト261a〜cは、送信先のアドレス情報等により特定される。   The data for which the protocol processing has been completed is stored in the data queue 250 of the lower data order assurance unit 248. When it is confirmed that the order of data to be transmitted is correct, the data is transferred to the interface objects 261a to 261c that perform transmission processing (step S1106). The transfer destination interface objects 261a to 261c are specified by the address information of the transmission destination.

そして、インターフェースオブジェクト261a〜cは、送信するデータが受け渡された場合に、ネットワークデバイス262a〜cを制御して送信処理を行う(ステップS1107)。   Then, when the data to be transmitted is delivered, the interface objects 261a to 261c perform transmission processing by controlling the network devices 262a to 262c (step S1107).

次に、以上のように構成された本実施の形態にかかるプロトコル上位層203における送信データの受け渡すまでの処理について説明する。図12は、本実施の形態にかかるプロトコル上位層203における上述した処理の手順を示すフローチャートである。   Next, processing until transmission data is transferred in the protocol upper layer 203 according to the present embodiment configured as described above will be described. FIG. 12 is a flowchart showing the above-described processing procedure in the protocol upper layer 203 according to the present embodiment.

まず、プロトコル上位層203は、ソケット層202のソケット212a〜cから、プロトコル処理のリクエストを受け付ける(ステップS1201)。当該処理手順は、図11のステップS1103の処理を詳細に説明したものとなる。   First, the protocol upper layer 203 receives a protocol processing request from the sockets 212a to 212c of the socket layer 202 (step S1201). The processing procedure is a detailed description of the processing in step S1103 in FIG.

次に、プロトコル上位層203は、リクエストを行ったソケット212a〜cが保持するアドレス情報から、使用するプロトコルを決定する(ステップS1202)。   Next, the protocol upper layer 203 determines the protocol to be used from the address information held by the sockets 212a to 212c that have made the request (step S1202).

そして、プロトコル上位層203の上位プロトコル判断部221は、決定されたプロトコルが、TCP/UDP/ICMP/IPであるか否かを判断する(ステップS1203)。TCP/UDP/ICMP/IPではないと判断した場合(ステップS1203:No)、上位プロトコル層受渡部223がプロトコル層204に対して送信するデータを受け渡すと共に、リクエストに応じた送信指示を行う(ステップS1204)。   Then, the upper protocol determination unit 221 of the protocol upper layer 203 determines whether or not the determined protocol is TCP / UDP / ICMP / IP (step S1203). If it is determined that it is not TCP / UDP / ICMP / IP (step S1203: No), the upper protocol layer delivery unit 223 delivers data to be sent to the protocol layer 204 and sends a transmission instruction according to the request ( Step S1204).

一方、上位プロトコル判断部221が、決定されたプロトコルがTCP/UDP/ICMP/IPであると判断した場合(ステップS1203:Yes)、プロトコル上位層203が送信するデータのパケット毎に連番を付与する(ステップS1205)。   On the other hand, if the upper protocol determining unit 221 determines that the determined protocol is TCP / UDP / ICMP / IP (step S1203: Yes), a serial number is assigned to each packet of data transmitted by the protocol upper layer 203. (Step S1205).

次に上位プロトコル判断部221は、ハードウェアインターフェース管理テーブル245のレコード数だけ、ステップS1207以降の処理を繰り返す(ステップS1206)。なお、繰り返しが行われる度に、ステップS1207で利用されるハードウェアインターフェース管理テーブル245のレコードが変更される。   Next, the upper protocol determination unit 221 repeats the processing from step S1207 as many times as the number of records in the hardware interface management table 245 (step S1206). Each time the process is repeated, the record of the hardware interface management table 245 used in step S1207 is changed.

次に、上位プロトコル判断部221は、ハードウェアインターフェース管理テーブル245のレコードのポインタで示されたインターフェースオブジェクト261a〜cに登録されたアドレスの数だけ、ステップS1208以降の処理を繰り返す(ステップS1207)。なお、繰り返しが行われる度に、ステップS1208で利用されるインターフェースオブジェクト261a〜cに設定されているIPアドレスが変更される。   Next, the upper protocol determination unit 221 repeats the processing from step S1208 onward for the number of addresses registered in the interface objects 261a to 261c indicated by the pointers of the records in the hardware interface management table 245 (step S1207). Each time the process is repeated, the IP addresses set in the interface objects 261a to 261c used in step S1208 are changed.

そして、上位プロトコル判断部221は、リクエストを行ったソケット212a〜cに設定されているIPアドレスが、ポインタで示されたインターフェースオブジェクト261a〜cに設定されているIPアドレスか否か判断する(ステップS1208)。   Then, the upper layer protocol determination unit 221 determines whether or not the IP address set in the requesting socket 212a-c is the IP address set in the interface object 261a-c indicated by the pointer (step S1). S1208).

次に、上位プロトコル判断部221は、リクエストを行ったソケット212a〜cに設定されているIPアドレスが、ポインタで示されたポインタで示されたインターフェースオブジェクト261a〜cに設定されているIPアドレスではないと判断した場合(ステップS1208:No)、再びステップS1207から処理を繰り返す。   Next, the higher-level protocol determination unit 221 uses the IP address set in the socket 212a-c that has made the request as the IP address set in the interface object 261a-c indicated by the pointer indicated by the pointer. If it is determined that there is not (step S1208: No), the processing is repeated from step S1207 again.

そして、ステップ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 protocol determination unit 221 determines that the IP address set in the sockets 212a to 212c that made the request is the IP address set in the interface objects 261a to 261c indicated by the pointers (Step S1). (S1208: Yes), the upper protocol determination unit 221 determines whether or not the data transmission destination IP address can be transmitted from the routing information set in the sockets 212a to 212c that output the request (step S1209). If it is determined that transmission is not possible (step S1209: NO), the processing is repeated again from step S1207 (step S1211).

一方、上位プロトコル判断部221が送信可能と判断した場合(ステップS1209:Yes)、上位ハードウェアプロトコル層受渡部229は、ハードウェアプロトコル層205に対して送信するデータを受け渡すと共に、特定されたネットワークデバイス261a〜cから、入力されたIPアドレスにデータを送信するようハードウェアプロトコル層205に対して指示する(ステップS1210)。当該指示により、図11のステップS1106以降の処理が行われる。   On the other hand, when the upper protocol determination unit 221 determines that transmission is possible (step S1209: Yes), the upper hardware protocol layer transfer unit 229 transfers the data to be transmitted to the hardware protocol layer 205 and is specified. The network device 261a-c instructs the hardware protocol layer 205 to transmit data to the input IP address (step S1210). In response to the instruction, processing in and after step S1106 in FIG. 11 is performed.

また、ステップS1212までのループ処理が全て終了し、ハードウェアプロトコル層205に送信するデータを受け渡せなかった場合、上位プロトコル層受渡部223が、プロトコル層204に送信するデータを受け渡す(ステップS1213)。   If all the loop processing up to step S1212 is completed and the data to be transmitted to the hardware protocol layer 205 cannot be delivered, the upper protocol layer delivery unit 223 delivers the data to be transmitted to the protocol layer 204 (step S1213). ).

次に、ネットワークプログラム211aから送信のリクエストが行われた場合の処理の経路について説明する。図13は、ネットワークプログラム211aから、ネットワークデバイス262aで送信処理を行うまでの送信するデータの移動経路を示した説明図である。   Next, a processing route when a transmission request is made from the network program 211a will be described. FIG. 13 is an explanatory diagram showing a movement path of data to be transmitted from the network program 211a until transmission processing is performed by the network device 262a.

まずは、ネットワークプログラム211aから送信するデータの出力が行われたものとする(ステップS1301)。この場合、ソケット212aが、送信するデータを、プロトコル上位層203に出力するが、このときに上位プロトコル判断部221が、送信するデータを、プロトコル層204又はハードウェアプロトコル層205にいずれかに受け渡すべきか判断する。   First, it is assumed that data transmitted from the network program 211a is output (step S1301). In this case, the socket 212a outputs the data to be transmitted to the protocol upper layer 203. At this time, the upper protocol determination unit 221 receives the data to be transmitted by either the protocol layer 204 or the hardware protocol layer 205. Determine if you should give it.

そして、プロトコル層204に受け渡すと判断された場合、ソケット212aから上位プロトコル層受渡部223にデータが受け渡される(ステップS1302)。   If it is determined that the data is to be transferred to the protocol layer 204, the data is transferred from the socket 212a to the upper protocol layer transfer unit 223 (step S1302).

次に、上位プロトコル層受渡部223は、プロトコル層204のプロトコル処理部231に送信対象であるデータを受け渡すと共に、特定されたプロトコルによる当該データのプロトコル処理を要求する(ステップS1303)。   Next, the upper protocol layer delivery unit 223 delivers the data to be transmitted to the protocol processing unit 231 of the protocol layer 204, and requests the protocol processing of the data by the specified protocol (step S1303).

そして、プロトコル処理部231でプロトコル処理されたデータは、データキュー250に格納される(ステップS1304)。   The data subjected to the protocol processing by the protocol processing unit 231 is stored in the data queue 250 (step S1304).

一方、ステップS1301の後、上位プロトコル判断部221が、送信するデータを、ハードウェアプロトコル層205に受け渡すと判断した場合、ソケット212aから上位ハードウェアプロトコル層受渡部229にデータが受け渡される(ステップS1305)。   On the other hand, after step S1301, when the upper protocol determination unit 221 determines that the data to be transmitted is transferred to the hardware protocol layer 205, the data is transferred from the socket 212a to the upper hardware protocol layer transfer unit 229 ( Step S1305).

次に、上位ハードウェアプロトコル層受渡部229は、ハードウェアプロトコル層205のプロトコル処理回路232に送信対象であるデータを受け渡すと共に、特定されたプロトコルによる当該データのプロトコル処理を要求する(ステップS1306)。   Next, the upper hardware protocol layer delivery unit 229 delivers the data to be transmitted to the protocol processing circuit 232 of the hardware protocol layer 205 and requests protocol processing of the data by the specified protocol (step S1306). ).

そして、プロトコル処理回路232でプロトコル処理されたデータは、データキュー250に格納される(ステップS1307)。   The data subjected to the protocol processing by the protocol processing circuit 232 is stored in the data queue 250 (step S1307).

次に、データキュー250に格納されたデータは、下位データ順序保証部248によりデータの順序が保証された後、インターフェースディスパッチャ249がインターフェースオブジェクト261aに受け渡す(ステップS1308)。   Next, after the data order stored in the data queue 250 is guaranteed by the lower data order guaranteeing unit 248, the interface dispatcher 249 transfers the data to the interface object 261a (step S1308).

そして、インターフェースオブジェクト261aは、対応付けられているネットワークデバイス262aに送信するデータを出力すると共に、当該ネットワークデバイス262aを制御して送信処理を行う(ステップS1309)。これにより、当該データが送信されることになる。   The interface object 261a outputs data to be transmitted to the associated network device 262a and controls the network device 262a to perform transmission processing (step S1309). Thereby, the data is transmitted.

次に、本実施の形態にかかる情報処理装置100におけるネットワークデバイス262a〜cでデータを受信した場合の処理について説明する。図14は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。   Next, processing when data is received by the network devices 262a to 262c in the information processing apparatus 100 according to the present embodiment will be described. FIG. 14 is a flowchart showing the above-described processing procedure in the information processing apparatus 100 according to the present embodiment.

まず、ネットワークデバイス262a〜cが、データの受信処理を行う(ステップS1401)。この処理は、インターフェースオブジェクト261a〜cが、ネットワークデバイス262a〜cを制御することで行われる。   First, the network devices 262a to 262c perform data reception processing (step S1401). This process is performed by the interface objects 261a-c controlling the network devices 262a-c.

次に、プロトコル下位層206の処理先判断部246が、受信データの受け渡し先はハードウェアプロトコル層205か否か判断する(ステップS1402)。   Next, the processing destination determination unit 246 of the protocol lower layer 206 determines whether or not the received data is transferred to the hardware protocol layer 205 (step S1402).

そして、受信データの受け渡し先がハードウェアプロトコル層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 hardware protocol layer 205 performs a protocol analysis process on the received data (step S1403). Thereafter, the hardware protocol layer 205 outputs the received data for which the protocol analysis process has been completed to the data queue 226 (step S1404).

そして、受信データの受け渡し先がハードウェアプロトコル層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 protocol layer 204 performs a protocol analysis process on the received data (step S1405). Thereafter, the protocol layer 204 outputs the received data for which the protocol analysis process has been completed to the data queue 226 (step S1406).

次に、データキュー250に格納されたデータは、上位データ順序保証部224によりデータの順序が保証された後、ソケットディスパッチャ225がソケット212a〜cに受け渡す(ステップS1407)。   Next, after the data order stored in the data queue 250 is guaranteed by the upper data order guarantee unit 224, the socket dispatcher 225 delivers the data to the sockets 212a to 212c (step S1407).

そして、ソケット212a〜cは、ネットワークプログラム211a〜cに受信したデータを出力する(ステップS1408)。   The sockets 212a to 212c output the received data to the network programs 211a to 211c (step S1408).

上述した処理手順により、ネットワークデバイス262a〜cが受信したデータについて、ハードウェアプロトコル層205又はプロトコル層204でプロトコル解析処理した後、ネットワークプログラム211a〜cに出力することができる。   According to the above-described processing procedure, the data received by the network devices 262a to 262c can be output to the network programs 211a to 211c after the hardware protocol layer 205 or the protocol layer 204 performs protocol analysis processing.

次に、ステップS1402のプロトコル下位層206において受信したデータのプロトコルに応じて受渡先を決定する処理について説明する。図15は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。   Next, processing for determining a delivery destination according to the protocol of the data received in the protocol lower layer 206 in step S1402 will be described. FIG. 15 is a flowchart illustrating the above-described processing procedure in the information processing apparatus 100 according to the present embodiment.

まずは、プロトコル判別部241が、受信したデータのプロトコルを判別する。そして、処理先判断部246は、判別されたプロトコルがTCP/UDP/IP/ICMPか否か判断する(ステップS1501)。処理先判断部246が、判別されたプロトコルがTCP/UDP/IP/ICMPではないと判断された場合(ステップS1501:No)、プロトコル層204に受信データを受け渡す(ステップS1502)。   First, the protocol determination unit 241 determines the protocol of the received data. Then, the processing destination determination unit 246 determines whether the determined protocol is TCP / UDP / IP / ICMP (step S1501). If the processing destination determination unit 246 determines that the determined protocol is not TCP / UDP / IP / ICMP (step S1501: No), it passes the received data to the protocol layer 204 (step S1502).

次に、処理先判断部246は、判別されたプロトコルがTCPか否か判断する(ステップS1503)。プロトコルがTCPではないと判断された場合(ステップS1503:No)、プロトコル解析処理先としてハードウェアプロトコル層205かプロトコル層204かを選択し、選択された層に対して受信データを受け渡す(ステップS1504)。   Next, the processing destination determination unit 246 determines whether or not the determined protocol is TCP (step S1503). When it is determined that the protocol is not TCP (step S1503: No), the hardware protocol layer 205 or the protocol layer 204 is selected as the protocol analysis processing destination, and the received data is transferred to the selected layer (step S1503). S1504).

次に、処理先判断部246は、判別されたプロトコルがTCPであると判断された場合(ステップS1503:Yes)、検索部259が通信記録テーブルから送信元のアドレス、ポート番号のレコードを検索し、当該レコードが検出されたか否か判断する(ステップS1505)。   Next, when the processing destination determination unit 246 determines that the determined protocol is TCP (step S1503: Yes), the search unit 259 searches the communication record table for a record of the transmission source address and port number. Then, it is determined whether or not the record is detected (step S1505).

検索部259がレコードを検出しなかった場合(ステップS1505:No)、エントリ制御部255が新規TCP通信として処理した後、プロトコル解析処理先としてハードウェアプロトコル層205かプロトコル層204かを選択し、選択された層に対して受信データを受け渡す(ステップS1506)。   If the search unit 259 does not detect the record (step S1505: No), the entry control unit 255 selects the hardware protocol layer 205 or the protocol layer 204 as a protocol analysis processing destination after processing as a new TCP communication, The received data is delivered to the selected layer (step S1506).

一方、検索部259がレコードを検出した場合(ステップS1505:Yes)、履歴判断部258が、受信したデータに付加されていたシーケンス番号が、当該レコードに格納されているシーケンス番号と同一か否か判断する(ステップS1507)。   On the other hand, if the search unit 259 detects a record (step S1505: Yes), whether the sequence number added to the received data by the history determination unit 258 is the same as the sequence number stored in the record. Judgment is made (step S1507).

そして、履歴判断部258が同一ではないと判断した場合(ステップS1507:No)、履歴更新部257がTCP通信の新規シーケンス番号を受信したものとして通信記録テーブル252に対して更新処理を行うと共に、プロトコル解析処理先としてハードウェアプロトコル層205かプロトコル層204かを選択し、選択された層に対して受信データを受け渡す(ステップS1508)。   If the history determination unit 258 determines that they are not the same (step S1507: No), the history update unit 257 performs an update process on the communication record table 252 on the assumption that a new TCP communication sequence number has been received, The hardware protocol layer 205 or the protocol layer 204 is selected as the protocol analysis processing destination, and the received data is transferred to the selected layer (step S1508).

一方、履歴判断部258が同一であると判断した場合(ステップS1507:Yes)、プロトコル下位層206が、再受信データの受け渡し処理を行う(ステップS1509)。   On the other hand, if the history determination unit 258 determines that they are the same (step S1507: Yes), the protocol lower layer 206 performs re-reception data transfer processing (step S1509).

上述した処理手順により、受信データのパケットに応じた処理が行われたことになる。   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 lower layer 206 in step S1504 will be described. FIG. 16 is a flowchart illustrating the above-described processing procedure in the information processing apparatus 100 according to the present embodiment.

まず、処理先判断部246は、受信処理を行ったインターフェースオブジェクト261a〜cが、ハードウェアインターフェース管理テーブル245に登録されているか否か判断する(ステップS1601)。登録されていると判断した場合(ステップS1601:Yes)、下位ハードウェアプロトコル層受渡部247が、ハードウェアプロトコル層205に受信データを受け渡す(ステップS1602)。   First, the processing destination determination unit 246 determines whether or not the interface objects 261a to 261c that have undergone reception processing are registered in the hardware interface management table 245 (step S1601). If it is determined that it is registered (step S1601: Yes), the lower hardware protocol layer delivery unit 247 delivers the received data to the hardware protocol layer 205 (step S1602).

一方、処理先判断部246が登録されていないと判断した場合(ステップS1601:No)、下位プロトコル層受渡部244が、プロトコル層204に受信データを受け渡す(ステップS1603)。   On the other hand, when it is determined that the processing destination determination unit 246 is not registered (step S1601: No), the lower protocol layer transfer unit 244 transfers the received data to the protocol layer 204 (step S1603).

次に、ステップS1506のプロトコル下位層206の新規TCP通信における受信データの受渡先を決定する処理について説明する。図17は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。   Next, a process for determining a delivery destination of received data in the new TCP communication of the protocol lower layer 206 in step S1506 will be described. FIG. 17 is a flowchart illustrating the above-described processing procedure in the information processing apparatus 100 according to the present embodiment.

まず、エントリ制御部255が、当該新規TCP通信に対応するエントリを、通信記録テーブルに追加する(ステップS1701)。   First, the entry control unit 255 adds an entry corresponding to the new TCP communication to the communication record table (step S1701).

次に、処理先判断部246は、受信処理を行ったインターフェースオブジェクト261a〜cが、ハードウェアインターフェース管理テーブル245に登録されているか否か判断する(ステップS1702)。登録されていると判断した場合(ステップS1702:Yes)、履歴更新部257が、通信記録テーブルで追加されたエントリの使用中フラグを‘Yes’に設定する(ステップS1703)。その後、下位ハードウェアプロトコル層受渡部247が、ハードウェアプロトコル層205に受信データを受け渡す(ステップS1704)。   Next, the processing destination determination unit 246 determines whether or not the interface objects 261a to 261c that have undergone reception processing are registered in the hardware interface management table 245 (step S1702). If it is determined that it is registered (step S1702: Yes), the history update unit 257 sets the in-use flag of the entry added in the communication record table to ‘Yes’ (step S1703). Thereafter, the lower hardware protocol layer delivery unit 247 delivers the received data to the hardware protocol layer 205 (step S1704).

一方、処理先判断部246が登録されていないと判断した場合(ステップS1702:No)、履歴更新部257が、通信記録テーブルで追加されたエントリの使用中フラグを‘No’に設定する(ステップS1705)。その後、下位プロトコル層受渡部244が、プロトコル層204に受信データを受け渡す(ステップS1706)。   On the other hand, when it is determined that the processing destination determination unit 246 is not registered (step S1702: No), the history update unit 257 sets the in-use flag of the entry added in the communication record table to “No” (step S1702). S1705). Thereafter, the lower protocol layer delivery unit 244 delivers the received data to the protocol layer 204 (step S1706).

次に、ステップS1508のプロトコル下位層206のTCP通信における受信データの受渡先を決定する処理について説明する。図18は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。   Next, a process for determining a reception destination of received data in the TCP communication of the protocol lower layer 206 in step S1508 will be described. FIG. 18 is a flowchart illustrating the above-described processing procedure in the information processing apparatus 100 according to the present embodiment.

まず、履歴更新部257が、通信記録テーブルの該当するエントリのTCPシーケンス番号に‘1’追加する(ステップS1801)。   First, the history update unit 257 adds “1” to the TCP sequence number of the corresponding entry in the communication record table (step S1801).

次に、プロトコル下位層206において、プロトコル解析処理先としてハードウェアプロトコル層205かプロトコル層204かを選択し、選択された層に対して受信データを受け渡す(ステップS1802)。なお、当該処理手順の詳細は、図16で示した処理手順と同様なので説明を省略する。   Next, in the protocol lower layer 206, the hardware protocol layer 205 or the protocol layer 204 is selected as the protocol analysis processing destination, and the received data is transferred to the selected layer (step S1802). The details of the processing procedure are the same as the processing procedure shown in FIG.

その後、履歴更新部257が、通信記録テーブルの該当エントリの使用中フラグが、ステップS1802の受け渡し先と一致しているか否か確認する(ステップS1803)。異なる場合には、当該エントリの使用中フラグを適切な値に更新する。   Thereafter, the history update unit 257 checks whether or not the in-use flag of the corresponding entry in the communication record table matches the delivery destination in step S1802 (step S1803). If they are different, the in-use flag of the entry is updated to an appropriate value.

次に、ステップS1509のプロトコル下位層206における再送されてきた受信データの受渡先を決定する処理について説明する。図19は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。   Next, processing for determining a delivery destination of received data retransmitted in the protocol lower layer 206 in step S1509 will be described. FIG. 19 is a flowchart illustrating the above-described processing procedure in the information processing apparatus 100 according to the present embodiment.

まずは、履歴判断部258が、通信記録テーブルにおいて、受信したデータを示すエントリの使用中フラグが‘Yes’か否か判断する(ステップS1901)。   First, the history determination unit 258 determines whether or not the in-use flag of the entry indicating the received data is 'Yes' in the communication record table (step S1901).

そして、使用中フラグが‘Yes’と判断した場合(ステップS1901:Yes)、下位ハードウェアプロトコル層受渡部247が、受信データをハードウェアプロトコル層205に受け渡す(ステップS1902)。   If it is determined that the busy flag is 'Yes' (step S1901: Yes), the lower hardware protocol layer transfer unit 247 transfers the received data to the hardware protocol layer 205 (step S1902).

そして、使用中フラグが‘No’と判断した場合(ステップS1901:NO)、下位プロトコル層受渡部244が、受信データをプロトコル層204に受け渡す(ステップS1903)。   If the in-use flag is determined to be “No” (step S1901: NO), the lower protocol layer delivery unit 244 delivers the received data to the protocol layer 204 (step S1903).

上述した処理手順により、再受信したデータは、最初に受信したデータと同じプロトコル層204又はハードウェアプロトコル層205でプロトコル解析処理を行うことができる。これにより、プロトコル解析処理の効率化を図ることができる。   According to the processing procedure described above, the re-received data can be subjected to protocol analysis processing in the same protocol layer 204 or hardware protocol layer 205 as the first received data. Thereby, the efficiency of the protocol analysis process can be improved.

次に、ネットワークデバイス262aからデータを受信した場合の処理の経路について説明する。図20は、ネットワークデバイス262aで受信処理してから、ネットワークプログラム211aに出力されるまでの移動経路を示した説明図である。   Next, a processing path when data is received from the network device 262a will be described. FIG. 20 is an explanatory diagram showing a movement route from the reception processing by the network device 262a to the output to the network program 211a.

まず、ネットワークデバイス262aが、データの受信処理した場合、ネットワークデバイス262aに対応するインターフェースオブジェクト261aに、受信したデータを出力する(ステップS2001)。その後、インターフェースオブジェクト261aが、受信データを、プロトコル下位層206に出力するが、このときに処理先判断部246が、受信したデータを、プロトコル層204又はハードウェアプロトコル層205にいずれかに受け渡すべきか判断する。   First, when the network device 262a performs data reception processing, the received data is output to the interface object 261a corresponding to the network device 262a (step S2001). After that, the interface object 261a outputs the received data to the protocol lower layer 206. At this time, the processing destination determination unit 246 transfers the received data to either the protocol layer 204 or the hardware protocol layer 205. Judgment should be made.

処理先判断部246が、受信したデータを、ハードウェアプロトコル層205に受け渡すと判断した場合、インターフェースオブジェクト261aから下位ハードウェアプロトコル層受渡部247にデータが受け渡される(ステップS2002)。このときに、プロトコル判別部241により、受信したデータのプロトコルが判別される。   If the processing destination determination unit 246 determines that the received data is to be transferred to the hardware protocol layer 205, the data is transferred from the interface object 261a to the lower hardware protocol layer transfer unit 247 (step S2002). At this time, the protocol discrimination unit 241 discriminates the protocol of the received data.

次に、下位ハードウェアプロトコル層受渡部247は、ハードウェアプロトコル層205のプロトコル処理回路232に送信対象であるデータを受け渡すと共に、プロトコル判別部241により判別されたプロトコルによる当該データのプロトコル解析処理を要求する(ステップS2003)。   Next, the lower hardware protocol layer delivery unit 247 delivers the data to be transmitted to the protocol processing circuit 232 of the hardware protocol layer 205 and performs protocol analysis processing of the data according to the protocol determined by the protocol determination unit 241. Is requested (step S2003).

そして、プロトコル処理回路232でプロトコル解析処理されたデータは、データキュー226に格納される(ステップS2004)。   The data subjected to the protocol analysis processing by the protocol processing circuit 232 is stored in the data queue 226 (step S2004).

一方、ステップS2001の後、処理先判断部246がプロトコル層204に受け渡すと判断した場合、インターフェースオブジェクト261aから下位プロトコル層受渡部244にデータが受け渡される(ステップS2005)。このときに、プロトコル判別部241により、受信したデータのプロトコルが判別される。   On the other hand, if the processing destination determination unit 246 determines to transfer to the protocol layer 204 after step S2001, the data is transferred from the interface object 261a to the lower protocol layer transfer unit 244 (step S2005). At this time, the protocol discrimination unit 241 discriminates the protocol of the received data.

次に、下位プロトコル層受渡部244は、プロトコル層204のプロトコル処理部231に受信したデータを受け渡すと共に、プロトコル判別部241により判別されたプロトコルによる当該データのプロトコル処理を要求する(ステップS2006)。   Next, the lower protocol layer delivery unit 244 delivers the received data to the protocol processing unit 231 of the protocol layer 204, and requests protocol processing of the data according to the protocol determined by the protocol determination unit 241 (step S2006). .

そして、プロトコル処理部231でプロトコル処理されたデータは、データキュー226に格納される(ステップS2007)。   The data subjected to the protocol processing by the protocol processing unit 231 is stored in the data queue 226 (step S2007).

次に、データキュー226に格納されたデータは、上位データ順序保証部224によりデータの順序が保証された後、ソケットディスパッチャ225がソケット212aに受け渡す(ステップS2008)。   Next, the data stored in the data queue 226 is transferred to the socket 212a by the socket dispatcher 225 after the data order is guaranteed by the higher-order data order guarantee unit 224 (step S2008).

そして、ソケットディスパッチャ225は、ネットワークプログラム211aに受信したデータを出力する(ステップS2009)。   Then, the socket dispatcher 225 outputs the received data to the network program 211a (step S2009).

次に、所定のネットワークデバイス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 predetermined network device 262a will be described. FIG. 21 is an explanatory diagram showing the concept in the case described above.

まずは、符号2102に示すように、プロトコル下位層206において、下位プロトコル層受渡部244が、受信データ1〜2をプロトコル層204に受け渡されたものとする。   First, as indicated by reference numeral 2102, it is assumed that in the protocol lower layer 206, the lower protocol layer transfer unit 244 has received the received data 1-2 to the protocol layer 204.

その後、パケット判断部260により当該ネットワークデバイス262aについてプロトコル解析処理を行う層が、ハードウェアプロトコル層205にするという切り替えが発生した(2102)。   Thereafter, the packet determining unit 260 switches to the layer that performs the protocol analysis processing for the network device 262a as the hardware protocol layer 205 (2102).

これにより、これ以降は、下位ハードウェアプロトコル層受渡部247が、受信データ3〜4をハードウェアプロトコル層205に受け渡す(2103)。   As a result, after that, the lower hardware protocol layer delivery unit 247 delivers the received data 3 to 4 to the hardware protocol layer 205 (2103).

そして、ソケットディスパッチャ225では、切り替えが生じる前の受信データ1〜2については第1のデータキュー2111に格納する(2104)。そして、第1のデータキュー2111に格納されたデータについて、ソケットディスパッチャ225が受信処理を行なう。そして、ソケットディスパッチャ225は、下位番号割当部263で受信データに割り当てられた番号を、第1のデータキュー2111内の連番記憶部に記録する。   Then, the socket dispatcher 225 stores the received data 1 to 2 before switching occurs in the first data queue 2111 (2104). Then, the socket dispatcher 225 performs reception processing on the data stored in the first data queue 2111. Then, the socket dispatcher 225 records the number assigned to the received data by the lower number assignment unit 263 in the serial number storage unit in the first data queue 2111.

そして、プロトコル解析処理を行う層の切り替えが生じたために、ハードウェアプロトコル層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 hardware protocol layer 205 is stored in the newly added second data queue 2112 (2106). At this time, the socket dispatcher 225 records the number assigned to the received data first stored in the second data queue 2112 in the serial number storage unit in the second data queue 2112.

そして、第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 first data queue 2111 becomes the number recorded in the sequential number storage unit in the second data queue 2112, and When it is determined that the received data 1 and 2 stored in the first data queue 2111 are output and become empty, the first data queue 2111 is discarded (2107). Thereafter, the received data is stored in the second data queue 2112.

また、上述した処理では、プロトコル層204からハードウェアプロトコル層205に切り替えた場合について説明したが、ハードウェアプロトコル層205からプロトコル層204に切り替えた場合についても同様とする。   In the above-described processing, the case where the protocol layer 204 is switched to the hardware protocol layer 205 has been described, but the same applies to the case where the hardware protocol layer 205 is switched to the protocol layer 204.

次に、所定のネットワークデバイス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 predetermined network device 262a will be described. FIG. 22 is an explanatory diagram showing the concept in the above-described case.

まずは、符号2201に示すように、プロトコル上位層203において、上位プロトコル層受渡部223が、送信データ1〜2をプロトコル層204に受け渡されたものとする。   First, as indicated by reference numeral 2201, in the protocol upper layer 203, it is assumed that the upper protocol layer delivery unit 223 has passed the transmission data 1 to 2 to the protocol layer 204.

その後、パケット判断部260により、当該ネットワークデバイス262aから送信する送信データのプロトコル処理を行う層が、ハードウェアプロトコル層205にするという切り替えが発生した(2202)。   Thereafter, the packet determining unit 260 switched to the hardware protocol layer 205 as a layer that performs protocol processing of transmission data transmitted from the network device 262a (2202).

これにより、これ以降は、上位ハードウェアプロトコル層受渡部229が、受信データ3〜4をハードウェアプロトコル層205に受け渡す(2203)。   Thereby, thereafter, the upper hardware protocol layer delivery unit 229 delivers the received data 3 to 4 to the hardware protocol layer 205 (2203).

そして、インターフェースディスパッチャ249では、切り替えが生じる前の受信データ1〜2については第1のデータキュー2211に格納する(2204)。そして、第1のデータキュー2211に格納されたデータについて、インターフェースディスパッチャ249が受信処理を行なう。そして、インターフェースディスパッチャ249は、上位番号割当部227で送信データに割り当てられた番号を、第1のデータキュー2211内の連番記憶部に記録する。   Then, the interface dispatcher 249 stores the received data 1 to 2 before switching occurs in the first data queue 2211 (2204). Then, the interface dispatcher 249 performs reception processing on the data stored in the first data queue 2211. The interface dispatcher 249 records the number assigned to the transmission data by the higher-order number assigning unit 227 in the serial number storage unit in the first data queue 2211.

そして、プロトコル解析処理を行う層の切り替えが生じたために、ハードウェアプロトコル層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 hardware protocol layer 205 are stored in the newly added second data queue 2212 (2206). At this time, the interface dispatcher 249 records the number assigned to the reception data first stored in the second data queue 2212 in the serial number storage unit in the second data queue 2212.

そして、第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 first data queue 2211 and further adding the number of occurrences of missing numbers is stored in the serial number storage unit in the second data queue 2212. When it is determined that the transmission data 1 and 2 stored in the first data queue 2211 are output and become empty, the first data queue 2211 is discarded (2207). . Thereafter, transmission data is stored in the second data queue 2212.

また、上述した処理では、プロトコル層204からハードウェアプロトコル層205に切り替えた場合について説明したが、ハードウェアプロトコル層205からプロトコル層204に切り替えた場合についても同様とする。   In the above-described processing, the case where the protocol layer 204 is switched to the hardware protocol layer 205 has been described, but the same applies to the case where the hardware protocol layer 205 is switched to the protocol layer 204.

また、上述した本実施の形態にかかる情報処理装置100は、ネットワークを制御するソフトウェア群がレイヤー構造で制御するOSであればどのようなOSでもよい。適用可能なOSとしては、例えばNetBSD等が存在する。   In addition, the information processing apparatus 100 according to the present embodiment described above may be any OS as long as the software group that controls the network is an OS controlled by a layer structure. As an applicable OS, for example, NetBSD exists.

上述したように、本実施の形態にかかる情報処理装置100では、ハードウェアプロトコル層205を備えた場合であっても、既存のソフトウェアプロトコルスタックと共存させることを可能としている。   As described above, the information processing apparatus 100 according to the present embodiment can coexist with an existing software protocol stack even when the hardware protocol layer 205 is provided.

これに対し、本実施の形態にかかる情報処理装置100では、上述したような構成を備えることで、ネットワークデバイス262a〜cであれば、ハードウェアプロトコル層205を使用することが可能になった。   On the other hand, in the information processing apparatus 100 according to the present embodiment, the hardware protocol layer 205 can be used in the network devices 262a to 262c by providing the configuration as described above.

これにより、本実施の形態にかかる情報処理装置100では、プロトコル処理回路232を搭載することでハードウェアオフロードを可能にして、CPU101の処理負担を軽減すると共に、さまざまなプロトコルに対応することが可能になる。   As a result, the information processing apparatus 100 according to the present embodiment enables hardware offload by installing the protocol processing circuit 232, thereby reducing the processing load on the CPU 101 and supporting various protocols. It becomes possible.

さらに、本実施の形態にかかる情報処理装置100では、送受信量の大きいネットワークデバイス262a〜cにハードウェアプロトコル層205を割り当てることで、CPU101の処理負担を効率よく軽減させることができる。   Furthermore, in the information processing apparatus 100 according to the present embodiment, the processing load on the CPU 101 can be efficiently reduced by assigning the hardware protocol layer 205 to the network devices 262a to 262c having a large transmission / reception amount.

また、本実施の形態にかかる情報処理装置100では、TCPプロトコルによる受信データは、TCPシーケンス番号で履歴を保持することで、再送要求などの処理を容易に実行することができる。さらに通信記録記憶部において、アドレスとポート番号によるエントリで、TCPシーケンス番号を保持するため、送信先のデータの種類毎に、再送要求を行うか否か判断することが可能となる。   Further, in the information processing apparatus 100 according to the present embodiment, it is possible to easily execute a process such as a retransmission request by holding a history of received data by the TCP protocol with a TCP sequence number. Further, since the TCP record number is held in the entry by address and port number in the communication record storage unit, it is possible to determine whether or not to make a retransmission request for each type of data at the transmission destination.

また、本実施の形態にかかる情報処理装置100では、さまざまなネットワークデバイスを利用することが可能になる。このようなネットワークデバイスは、本実施の形態のように、有線LAN106、シリアル回線107、無線LAN108及びUSB109に制限するものではなく、従来から使用される様々なネットワークデバイスを適用しても良い。   Also, the information processing apparatus 100 according to the present embodiment can use various network devices. Such network devices are not limited to the wired LAN 106, the serial line 107, the wireless LAN 108, and the USB 109 as in the present embodiment, and various network devices that have been used in the past may be applied.

本実施形態の情報処理装置100で実行される通信制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。   The communication control program executed by the information processing apparatus 100 according to the present embodiment is a file in an installable or executable format, such as a CD-ROM, a flexible disk (FD), a CD-R, a DVD (Digital Versatile Disk), or the like. And recorded on a computer-readable recording medium.

また、本実施形態の情報処理装置100で実行される通信制御プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の情報処理装置100で実行される通信制御プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。   Further, the communication control program executed by the information processing apparatus 100 of the present embodiment may be provided by being stored on a computer connected to a network such as the Internet and downloaded via the network. Further, the communication control program executed by the information processing apparatus 100 of the present embodiment may be provided or distributed via a network such as the Internet.

また、本実施形態の通信制御プログラムを、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 information processing apparatus 100 according to the present embodiment has a module configuration including the above-described units (user application layer, socket layer, protocol upper layer, protocol layer, protocol lower layer, interface layer). As the actual hardware, the CPU reads the communication control program from the recording medium and executes it to load the above units onto the main storage device. The user application layer, socket layer, protocol upper layer, protocol layer, protocol A lower layer and an interface layer are generated on the main storage device.

以上のように、本発明にかかる通信制御装置、通信制御方法及び通信制御プログラムは、通信制御に有用であり、特に、ハードウェア化したプロトコル処理回路を用いた通信制御に適している。   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.

実施の形態にかかる情報処理装置のハードウェア構成を示した図である。It is a figure showing hardware constitutions of an information processor concerning an embodiment. 情報処理装置のソフトウェア構成をレイヤー構造で示した図である。It is the figure which showed the software structure of information processing apparatus by the layer structure. インターフェースクラスとのクラス構造を示した図である。It is the figure which showed the class structure with an interface class. インターフェース管理テーブルとインターフェースオブジェクトとの関連を示した説明図である。It is explanatory drawing which showed the relationship between an interface management table and an interface object. インターフェースオブジェクトの登録先のインターフェース管理テーブル及びハードウェアインターフェース管理テーブルを示した説明図である。It is explanatory drawing which showed the interface management table and hardware interface management table of the registration destination of an interface object. 通信記録テーブルのテーブル構造を示した図である。It is the figure which showed the table structure of the communication recording table. プロトコル層、ハードウェアプロトコル層及びプロトコル下位層で、送受信するデータの概念を示した図である。It is the figure which showed the concept of the data transmitted / received in a protocol layer, a hardware protocol layer, and a protocol lower layer. 送信データの連番を用いた処理の概念を示した図である。It is the figure which showed the concept of the process using the serial number of transmission data. プロトコル層、ハードウェアプロトコル層及びプロトコル上位層で、送受信するデータの概念を示した図である。It is the figure which showed the concept of the data transmitted / received in a protocol layer, a hardware protocol layer, and a protocol upper layer. 受信データの連番を用いた処理の概念を示した図である。It is the figure which showed the concept of the process using the serial number of received data. 実施の形態にかかる情報処理装置における送信処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the transmission process in the information processing apparatus concerning embodiment. 実施の形態にかかるプロトコル上位層における送信データの受け渡すまでの処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the process until delivery data is delivered in the protocol upper layer concerning embodiment. 実施の形態にかかるネットワークプログラムから、ネットワークデバイスで送信処理を行うまでの送信するデータの移動経路を示した説明図である。It is explanatory drawing which showed the movement path | route of the data to transmit from the network program concerning embodiment to performing a transmission process in a network device. 実施の形態にかかる情報処理装置におけるネットワークデバイスでデータを受信した場合の処理手順を示すフローチャートである。6 is a flowchart illustrating a processing procedure when data is received by a network device in the information processing apparatus according to the embodiment. 実施の形態にかかる情報処理装置における受信したデータのプロトコルに応じて受渡先を決定する処理の手順を示すフローチャートである。6 is a flowchart illustrating a procedure of processing for determining a delivery destination according to a protocol of received data in the information processing apparatus according to the embodiment. 実施の形態にかかる情報処理装置のプロトコル下位層においてプロトコルがUDP/IP/ICMPにおける受信したデータの受渡先を決定する処理の手順を示すフローチャートである。6 is a flowchart showing a procedure of processing for determining a delivery destination of received data in the protocol UDP / IP / ICMP in the protocol lower layer of the information processing apparatus according to the embodiment; 実施の形態にかかる情報処理装置のプロトコル下位層の新規TCP通信における受信データの受渡先を決定する処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the process which determines the delivery destination of the received data in the new TCP communication of the protocol lower layer of the information processing apparatus concerning embodiment. 実施の形態にかかる情報処理装置のプロトコル下位層のTCP通信における受信データの受渡先を決定する処理の手順を示すフローチャートである。6 is a flowchart illustrating a procedure of processing for determining a delivery destination of received data in TCP communication in a protocol lower layer of the information processing apparatus according to the embodiment. 本実施の形態にかかる情報処理装置における再送されてきた受信データの受渡先を決定する処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the process which determines the delivery destination of the received data retransmitted in the information processing apparatus concerning this Embodiment. ネットワークデバイスで受信処理してから、ネットワークプログラムに出力されるまでの移動経路を示した説明図である。It is explanatory drawing which showed the movement path | route from receiving processing with a network device to outputting to a network program. 所定のネットワークデバイスから入力された受信データの処理中に、プロトコル解析処理を行う層が切り替えられた場合の概念を示した説明図である。It is explanatory drawing which showed the concept at the time of the layer which performs a protocol analysis process being switched during the process of the reception data input from the predetermined | prescribed network device. 所定のネットワークデバイス262aから出力する送信データの処理中に、プロトコル処理を行う層が切り替えられた場合の概念を示した説明図である。It is explanatory drawing which showed the concept at the time of the layer which performs a protocol process being switched during the process of the transmission data output from the predetermined | prescribed network device 262a. 従来のTOEを搭載した情報処理装置におけるネットワークの階層モデルを示した説明図である。It is explanatory drawing which showed the hierarchy model of the network in the information processing apparatus carrying the conventional TOE.

符号の説明Explanation of symbols

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 Protocol processing circuit 103 Arbiter 104 RAM
105 ROM
106 Wired LAN
107 Serial circuit 108 Wireless LAN
109 USB
201 User program layer 202 Socket layer 203 Protocol upper layer 204 Protocol layer 205 Hardware protocol layer 206 Protocol lower layer 207 Interface layer 208 Network device 211a-c Network program 212a-c Socket 221 Upper protocol determination unit 222 Socket specification unit 223 Upper protocol Layer transfer unit 224 Upper data order guarantee unit 225 Socket dispatcher 226 Data queue 227 Upper number allocation unit 229 Upper hardware protocol layer transfer unit 231 Protocol processing unit 232 Protocol processing circuit 241 Protocol determination unit 242 Destination acquisition unit 243 Interface management table 244 Lower protocol layer delivery unit 245 Hardware interface management table 246 Processing destination determination unit 247 Lower hardware protocol layer delivery unit 248 Lower data order guarantee unit 249 Interface dispatcher 250 Data queue 251 Communication history storage unit 252 Communication record table 253 Number of packets transmitted per device 254 Number of received packets per device 255 Entry control Unit 256 retransmission request unit 257 history update unit 258 history determination unit 259 search unit 260 packet determination unit 261a-c interface object 262a-c network device 263 lower number allocation unit

Claims (17)

受信データに対してTCPによるプロトコル解析処理を行う、ハードウェア結線された回路であるハードウェアプロトコル処理部と、
受信データに対して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シーケンス番号を記憶する通信記録記憶部と、
前記通信記録記憶部に記憶された前記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プロトコルを用いて通信を開始した場合に、前記通信記録記憶部に、当該所定のアドレスと、当該所定のアドレスから受信した受信データの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シーケンス番号を通信記録記憶部に記憶する通信記録記憶ステップと、
前記通信記録記憶部に記憶された前記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プロトコルを用いて通信を開始した場合に、前記通信記録記憶部に、当該所定のアドレスと、当該所定のアドレスから受信した受信データの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.
JP2007217549A 2007-08-23 2007-08-23 Communication control unit, communication control method, and communication control program Pending JP2009055134A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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