JP2009053770A - Communication control device, communication control method and communication control program - Google Patents

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

Info

Publication number
JP2009053770A
JP2009053770A JP2007217547A JP2007217547A JP2009053770A JP 2009053770 A JP2009053770 A JP 2009053770A JP 2007217547 A JP2007217547 A JP 2007217547A JP 2007217547 A JP2007217547 A JP 2007217547A JP 2009053770 A JP2009053770 A JP 2009053770A
Authority
JP
Japan
Prior art keywords
protocol
hardware
transmission
toe
unit
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
JP2007217547A
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 JP2007217547A priority Critical patent/JP2009053770A/en
Publication of JP2009053770A publication Critical patent/JP2009053770A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To reduce a processing load on a processor and handle various protocols. <P>SOLUTION: A communication control device comprises a TOE for protocol-processing transmission data for transmission in a predetermined protocol and transmitting the transmission data in the predetermined protocol, a protocol analysis processing part for protocol-processing transmission data in accordance with a request from a socket, network devices for transmitting the protocol-processed transmission data, a protocol determination part for determining whether or not the transmission data transmission request from the socket is transmission using the predetermined protocol processable in the TOE, a TOE delivery part for delivering the transmission data to the TOE if it is determined that the predetermined protocol is used for the transmission, and a protocol layer delivery part for delivering the transmission data to a protocol layer if it is determined that another protocol is used. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、TOEを用いて通信制御を行う通信制御装置、通信制御方法及び通信制御プログラムに関するものである。   The present invention relates to a communication control apparatus, a communication control method, and a communication control program that perform communication control using a TOE.

従来から、インターネットを含むネットワーク環境において、ネットワークのハイスピード化及び複雑化が進む傾向にある。このような傾向になるに従い、当該ネットワーク環境で使用されるネットワークサーバでは、本来目的とするデータ処理以外に、ネットワーク経由のデータを送受信するための処理が多くなり、処理負担が大きくなる傾向にある。   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を用いてハードウェア化を行った場合、ネットワークの階層モデルは、図16に示すような構造となる。図16に示すように、ソケット層より下は、ハードウェアにより実現された一つの層となっている。   When hardware is implemented using the TOE in this way, the hierarchical model of the network has a structure as shown in FIG. As shown in FIG. 16, the layer below the socket layer is one layer realized by hardware.

このようなTOEの技術は、ハードウェア化しているために、既存のプロトコル層のプロトコルを全てサポートすることは現実的ではない。このため、TOEは、現在のところTCP、UDP、IP及びICMPのプロトコルのみサポートしている。これらプロトコルの処理を行う場合には、ハードウェアオフロードにより、CPUの処理負担を軽減させることができる。   Since such TOE technology is implemented as hardware, it is not realistic to support all existing protocol layer protocols. For this reason, the TOE currently supports only TCP, UDP, IP and ICMP protocols. When processing these protocols, the processing load on the CPU can be reduced by hardware offload.

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

しかしながら、現在のPCアーキテクチャにおいて、ネットワークを通信する際に使用するプロトコルは、上述したプロトコルだけではない。例えば、OSにNetBSDを使用する場合、AppleTalk(登録商標)など様々なプロトコルがサポートされている。   However, in the current PC architecture, the above-described protocol is not the only protocol used when communicating over a network. For example, when NetBSD is used for the OS, various protocols such as AppleTalk (registered trademark) are supported.

このように、NetBSDカーネルで、様々なプロトコルがサポート可能なのは、ネットワークの階層モデルが、ネットワークプログラムの下に、ソケット層、プロトコル層、インターフェース層及びネットワークデバイスで構成されると共に、各階層がソフトウェアにより実現されているためである。   In this way, the NetBSD kernel can support various protocols because the network hierarchy model is composed of the socket layer, protocol layer, interface layer, and network device under the network program, and each layer is implemented by software. This is because it has been realized.

つまり、TOEを使用した装置では、ハードウェア的に結線されたネットワークデバイスを使用することでCPUの処理負担を軽減させることはできるが、このために様々なネットワークプロトコルを使用できないという問題がある。   That is, in the apparatus using the TOE, the processing load of the CPU can be reduced by using a network device connected in hardware, but there is a problem that various network protocols cannot be used for this purpose.

本発明は、上記に鑑みてなされたものであって、プロセッサの処理負担を軽減させるとともに様々なプロトコルを使用することができる通信制御装置、通信制御方法及び通信制御プログラムを提供することを目的とする。   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 reduce the processing load on the processor and use various protocols. To do.

上述した課題を解決し、目的を達成するために、本発明にかかる通信制御装置は、送信データに対して、所定のプロトコルで送信するためのプロトコル処理を行うと共に、当該送信データを前記所定のプロトコルで送信を行う、ハードウェア結線された回路であるハードウェア通信デバイス制御部と、送信データに対して、ネットワークプログラム毎に割り当てられるソケットからの要求に従ったプロトコル処理を行う、ソフトウェアで実現されたプロトコル処理部と、前記プロトコル処理部により前記プロトコル処理が行われた前記送信データを送信する通信デバイス制御部と、前記ソケットからの送信データの送信要求が、前記ハードウェア通信デバイス制御部でプロトコル処理可能な前記所定のプロトコルを用いた送信であるか否かを判断するプロトコル判断部と、前記所定のプロトコルを用いた送信であると判断された場合に、前記ソケットから送信要求された前記送信データを、前記ハードウェア送信デバイス制御部に対して受け渡すハードウェアデバイス受渡部と、前記所定のプロトコル以外と判断された場合に、前記ソケットから送信要求された前記送信データを、前記プロトコル処理部に対して受け渡すプロトコル受渡部と、を備える。   In order to solve the above-described problems and achieve the object, a communication control apparatus according to the present invention performs a protocol process for transmitting data according to a predetermined protocol, and transmits the transmission data to the predetermined data. The hardware communication device control unit, which is a hardware-connected circuit that performs transmission using a protocol, and software that performs protocol processing according to requests from sockets assigned to each network program for transmission data A protocol processing unit, a communication device control unit that transmits the transmission data that has been subjected to the protocol processing by the protocol processing unit, and a transmission request for transmission data from the socket is transmitted by the hardware communication device control unit. Whether or not the transmission is performed using the predetermined protocol that can be processed A protocol determination unit for refusing, and hardware that transfers the transmission data requested to be transmitted from the socket to the hardware transmission device control unit when it is determined that the transmission is performed using the predetermined protocol. A device delivery unit; and a protocol delivery unit that delivers the transmission data requested to be transmitted from the socket to the protocol processing unit when it is determined to be other than the predetermined protocol.

また、本発明にかかる通信制御装置は、外部のネットワークから受信データを受信する制御を行うと共に、受信した前記受信データを所定のプロトコルで解析処理可能か否か判断し、解析可能と判断した場合に前記所定のプロトコルによる解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡す、ハードウェア結線された回路であるハードウェア通信デバイス制御部と、前記ハードウェア通信デバイス制御部で前記所定のプロトコルで解析処理可能ではないと判断した場合に前記受信データを取得するハードウェア通信インターフェース部と、前記ハードウェア通信インターフェース部が取得した前記受信データに対してプロトコル解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡す、ソフトウェアで実現可能なプロトコル処理部と、を備えることを特徴とする。   When the communication control device according to the present invention performs control to receive received data from an external network, determines whether the received data can be analyzed by a predetermined protocol, and determines that analysis is possible A hardware communication device control unit that is a hardware-connected circuit that performs analysis processing according to the predetermined protocol and delivers the received data after the protocol analysis processing to a socket, and the hardware communication device control unit A hardware communication interface unit that acquires the received data when it is determined that the analysis process is not possible with the predetermined protocol, and a protocol analysis process for the received data acquired by the hardware communication interface unit, For the received data after protocol analysis processing Characterized in that it and a protocol processing unit can be realized by software.

また、本発明にかかる通信制御方法は、ネットワークプログラム毎に割り当てられるソケットからの送信データの送信要求が、ハードウェア結線された回路であるハードウェア送信デバイス制御部でプロトコル処理可能な所定のプロトコルを用いた送信であるか否かを判断するプロトコル判断ステップと、前記所定のプロトコルを用いた送信であると判断された場合に、前記ソケットから送信要求された前記送信データを、前記ハードウェア送信デバイス制御部に対して受け渡すハードウェアデバイス受渡ステップと、前記ハードウェア通信デバイス制御部が、送信データに対して、前記所定のプロトコルで送信するためのプロトコル処理を行うと共に、当該送信データを前記所定のプロトコルで送信を行うハードウェア通信デバイス制御ステップと、前記プロトコル判断ステップにより前記所定のプロトコル以外と判断された場合に、前記ソケットから送信要求された前記送信データを、プロトコル処理部に対して受け渡すプロトコル受渡ステップと、前記プロトコル処理部が、前記送信データに対して、前記ソケットからの要求に従ったプロトコル処理を行うプロトコル処理ステップと、前記プロトコル処理が行われた前記送信データを送信する通信デバイス制御ステップと、を有することを特徴とする。   In addition, the communication control method according to the present invention provides a predetermined protocol that allows a hardware transmission device control unit, which is a hardware-connected circuit, to process transmission data transmissions from a socket assigned to each network program. A protocol determination step for determining whether or not the transmission is used, and the transmission data requested to be transmitted from the socket when the transmission is determined to be transmission using the predetermined protocol, the hardware transmission device A hardware device delivery step for delivering to the control unit; and the hardware communication device control unit performs a protocol process for transmitting the transmission data using the predetermined protocol, and transmits the transmission data to the predetermined unit. Hardware communication device control module that transmits data using other protocols And a protocol delivery step of delivering the transmission data requested to be transmitted from the socket to a protocol processing unit when the protocol determination step determines that the protocol other than the predetermined protocol, and the protocol processing unit A protocol processing step for performing protocol processing on the transmission data in accordance with a request from the socket, and a communication device control step for transmitting the transmission data on which the protocol processing has been performed. And

また、本発明にかかる通信制御方法は、ハードウェア結線された回路であるハードウェア通信デバイス制御部が、外部のネットワークから受信データを受信する制御を行うと共に、受信した前記受信データを所定のプロトコルで解析処理可能か否か判断し、解析可能と判断した場合に前記所定のプロトコルによる解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すハードウェア通信デバイス制御ステップと、前記ハードウェア通信デバイス制御ステップで前記所定のプロトコルで解析処理可能ではないと判断した場合に前記受信データを取得するハードウェア通信インターフェースステップと、前記ハードウェア通信インターフェースステップにより取得された前記受信データに対してプロトコル解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すプロトコル処理ステップと、を備えることを特徴とする。   Further, the communication control method according to the present invention controls the hardware communication device control unit, which is a hardware-connected circuit, to receive reception data from an external network, and transmits the received reception data to a predetermined protocol. A hardware communication device control step for performing analysis processing according to the predetermined protocol when it is determined that analysis is possible, and delivering the received data after protocol analysis processing to a socket; A hardware communication interface step for acquiring the received data when it is determined in the hardware communication device control step that analysis processing is not possible with the predetermined protocol, and for the received data acquired by the hardware communication interface step Protocol analysis processing, Characterized in that it and a protocol processing step of passing the received data after the protocol analysis processing on the packet.

また、本発明にかかる通信制御プログラムは、ネットワークプログラム毎に割り当てられるソケットからの送信データの送信要求が、ハードウェア結線された回路であるハードウェア送信デバイス制御部でプロトコル処理可能な所定のプロトコルを用いた送信であるか否かを判断するプロトコル判断ステップと、前記所定のプロトコルを用いた送信であると判断された場合に、前記ソケットから送信要求された前記送信データを、前記ハードウェア送信デバイス制御部に対して受け渡すハードウェアデバイス受渡ステップと、前記ハードウェア通信デバイス制御部が、送信データに対して、前記所定のプロトコルで送信するためのプロトコル処理を行うと共に、当該送信データを前記所定のプロトコルで送信を行うハードウェア通信デバイス制御ステップと、前記プロトコル判断ステップにより前記所定のプロトコル以外と判断された場合に、前記ソケットから送信要求された前記送信データを、プロトコル処理部に対して受け渡すプロトコル受渡ステップと、前記プロトコル処理部が、前記送信データに対して、前記ソケットからの要求に従ったプロトコル処理を行うプロトコル処理ステップと、前記プロトコル処理が行われた前記送信データを送信する通信デバイス制御ステップと、をコンピュータに実行させる。   In addition, the communication control program according to the present invention provides a predetermined protocol that allows a hardware transmission device control unit, which is a hardware-connected circuit, to process a transmission request for transmission data from a socket assigned to each network program. A protocol determination step for determining whether or not the transmission is used, and the transmission data requested to be transmitted from the socket when the transmission is determined to be transmission using the predetermined protocol, the hardware transmission device A hardware device delivery step for delivering to the control unit; and the hardware communication device control unit performs a protocol process for transmitting the transmission data using the predetermined protocol, and transmits the transmission data to the predetermined unit. Hardware communication device that transmits using any protocol And a protocol delivery step of delivering the transmission data requested to be transmitted from the socket to a protocol processing unit when the protocol determination step determines that the protocol is other than the predetermined protocol, and the protocol processing unit Causes the computer to execute a protocol processing step for performing protocol processing on the transmission data in accordance with a request from the socket, and a communication device control step for transmitting the transmission data subjected to the protocol processing. .

また、本発明にかかる通信制御プログラムは、ハードウェア結線された回路であるハードウェア通信デバイス制御部が、外部のネットワークから受信データを受信する制御を行うと共に、受信した前記受信データを所定のプロトコルで解析処理可能か否か判断し、解析可能と判断した場合に前記所定のプロトコルによる解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すハードウェア通信デバイス制御ステップと、前記ハードウェア通信デバイス制御ステップで前記所定のプロトコルで解析処理可能ではないと判断した場合に前記受信データを取得するハードウェア通信インターフェースステップと、前記ハードウェア通信インターフェースステップにより取得された前記受信データに対してプロトコル解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すプロトコル処理ステップと、をコンピュータに実行させる。   In addition, the communication control program according to the present invention controls the hardware communication device control unit, which is a hardware-connected circuit, to receive the received data from the external network, and transmits the received data to a predetermined protocol. A hardware communication device control step for performing analysis processing according to the predetermined protocol when it is determined that analysis is possible, and delivering the received data after protocol analysis processing to a socket; A hardware communication interface step for acquiring the received data when it is determined in the hardware communication device control step that analysis processing is not possible with the predetermined protocol, and for the received data acquired by the hardware communication interface step Protocol analysis And to execute the protocol processing step of passing the received data after the protocol analysis to the socket, to a computer.

本発明によれば、ハードウェア通信デバイス制御部でプロトコル処理と所定のプロトコルで送信を行うことでプロセッサの処理負担を軽減させるとともに、ソフトウェアでプロトコル処理を行うことで様々なプロトコルを使用可能という効果を奏する。   According to the present invention, the hardware communication device control unit reduces the processing load on the processor by performing protocol processing and transmission by a predetermined protocol, and various protocols can be used by performing protocol processing by software. Play.

本発明によれば、ハードウェア通信デバイス制御部でプロトコル解析処理と所定のプロトコルで受信を行うことでプロセッサの処理負担を軽減させるとともに、ソフトウェアでプロトコル解析処理を行うことで様々なプロトコルを使用可能という効果を奏する。   According to the present invention, the hardware communication device controller reduces the processing burden on the processor by performing protocol analysis processing and reception with a predetermined protocol, and various protocols can be used by performing protocol analysis processing with software. There is an effect.

以下に添付図面を参照して、この発明にかかる通信制御装置、通信制御方法及び通信制御プログラムの最良な実施の形態を詳細に説明する。なお、以下に示す実施の形態では通信制御装置を情報処理装置に適用した例について説明する。   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と、ROM102と、RAM103と、HDD104と、TOE105と、シリアル回線I/F106と、無線LAN_I/F107と、USB_I/F108とを備えており、通常のコンピュータを利用したハードウェア構成となっている。   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 ROM 102, a RAM 103, an HDD 104, a TOE 105, a serial line I / F 106, a wireless LAN_I / F 107, and a USB_I / F 108. It has a hardware configuration using a computer.

そして、ROM102又はHDD104に格納されたプログラムが、RAM103上にロードされる。そして、CPU101がロードされたプログラムを用いて処理を行うことになる。   Then, the program stored in the ROM 102 or the HDD 104 is loaded on the RAM 103. Then, the CPU 101 performs processing using the loaded program.

このCPU101は、当該プログラムを用いて、シリアル回線I/F106、無線LAN_I/F107及びUSB_I/F108を使用した通信制御を行う。   The CPU 101 performs communication control using the serial line I / F 106, the wireless LAN_I / F 107, and the USB_I / F 108 using the program.

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

TOE105は、有線LAN_I/F109を備え、有線LAN_I/F109を使用した通信制御を行うと共に、受信したデータをハードウェアで所定のプロトコルの解析をした後、例えばRAM103に格納する。また、TOE105では、有線LAN_I/F109から複数のネットワークデバイス(以下、TOEネットワークデバイスと称す)が接続されていることを想定している。   The TOE 105 includes a wired LAN_I / F 109, performs communication control using the wired LAN_I / F 109, analyzes the received data with a predetermined protocol by hardware, and stores the data in, for example, the RAM 103. In the TOE 105, it is assumed that a plurality of network devices (hereinafter referred to as TOE network devices) are connected from the wired LAN_I / F 109.

また、TOE105は、TCP/UDP/ICMP/IP以外のプロトコルのデータを受信した場合、これを検知し、受信したデータと共に外部に処理を要求する機能を持つものとする。また、有線LAN_I/F109を介して接続されるTOEネットワークデバイスは、TOEでプロトコル解析を行う構成以外から、直接送信データを受信できる機構を備えているものとする。   The TOE 105 has a function of detecting data of a protocol other than TCP / UDP / ICMP / IP and requesting processing to the outside along with the received data. Further, it is assumed that the TOE network device connected via the wired LAN_I / F 109 has a mechanism that can directly receive transmission data other than a configuration that performs protocol analysis by the TOE.

このように、本実施の形態にかかる情報処理装置100においては、TOE105による通信制御と、シリアル回線I/F106、無線LAN_I/F107及びUSB_I/F108と、による通信制御とが行われる。次に情報処理装置100のソフトウェア構成について説明する。   Thus, in the information processing apparatus 100 according to the present embodiment, communication control by the TOE 105 and communication control by the serial line I / F 106, the wireless LAN_I / F 107, and the USB_I / F 108 are performed. Next, the software configuration of the information processing apparatus 100 will be described.

図2は情報処理装置100のネットワークをレイヤー構造で示した図である。図2に示すように、情報処理装置100は、ユーザアプリケーション層201、ソケット層202、ラッパー層203と、プロトコル層204と、インターフェース層205と、ネットワークデバイス層206と、TOEインターフェース層207と、TOE208とを備えている。   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 application layer 201, a socket layer 202, a wrapper layer 203, a protocol layer 204, an interface layer 205, a network device layer 206, a TOE interface layer 207, and a TOE 208. And.

情報処理装置100では、ソケット層202、プロトコル層204、インターフェース層205について、従来から使用されているものをほぼ流用可能とする。これにより、広範に普及しているOSのカーネルに実装されたネットワーク処理を可能とする。そして、情報処理装置100では、新規にラッパー層203及びTOEインターフェース層207を追加することで、従来のソフトウェアによるネットワーク処理と、TOE208によるハードウェアオフロードとの共存を可能としている。   In the information processing apparatus 100, the socket layer 202, the protocol layer 204, and the interface layer 205 that are 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 new wrapper layer 203 and TOE interface layer 207 are added to allow coexistence of network processing by conventional software and hardware offload by the TOE 208.

ユーザアプリケーション層201は、利用者が使用可能なネットワークプログラム211a〜cを備える。そして、各ネットワークプログラム211a〜cは、通信を行う際に後述するソケット層202に対して、通信処理を要求する。   The user application 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に対し、プロトコル層204へのインターフェースを隠蔽し、ネットワーク接続のサービスのエンドポイントを提供する。   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 layer 204 from the network programs 211a to 211c of the user application layer 201, and provides an end point of a network connection service.

ソケット212a〜cは、ユーザアプリケーション層201のネットワークプログラム211a〜c毎に一つ以上作成される。また、ソケットは作成される際、通信に用いるプロトコルが設定される。このようにして、ソケット212a〜cは、上述したネットワークプログラム211a〜cとの関連付けと、送受信の対象となるアドレス、送受信に用いるプロトコル情報、送受信するデータに関する情報、送受信に用いるルーティング情報を保持する。そして、ソケット212a〜cは、ネットワークから所定のIPアドレスへの送信する指示や、所定のIPアドレスからの受信待ちする指示を受け付けた場合に、後述するラッパー層203に、当該指示を送信する。そして、送信先のラッパー層203からは、各ソケット212a〜cが保持しているプロトコル情報又はIPアドレス等を参照可能とする。   One or more sockets 212a to 212c are created for each network program 211a to 211c of the user application 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 receiving an instruction to transmit to a predetermined IP address from the network or an instruction to wait for reception from the predetermined IP address, the sockets 212a to 212c transmit the instruction to the wrapper layer 203 described later. The destination wrapper layer 203 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と、送信側TOEオブジェクト特定部222と、プロトコル層受渡部234と、TOE受渡部235と、を備えると共に、ソケット層202に対して既存のI/Fを保持している。また、ラッパー層203は、ソケット層202からデータの送信要求が行われた場合に、当該データの送信に使用するプロトコルに応じて、プロトコル層204にプロトコル処理を要求するか、TOE208にプロトコル処理を要求するか切り替えを行う。   The wrapper layer 203 includes a protocol determination unit 221, a transmission-side TOE object identification unit 222, a protocol layer delivery unit 234, and a TOE delivery unit 235, and holds an existing I / F for the socket layer 202 is doing. Further, when a data transmission request is made from the socket layer 202, the wrapper layer 203 requests a protocol process from the protocol layer 204 or performs a protocol process to the TOE 208 according to a protocol used for transmitting the data. Request or switch.

プロトコル判断部221は、ソケット212a〜cから送信要求が行われた場合、当該ソケット212a〜cが保持するプロトコル情報から、TOE208でプロトコル処理可能か否か判断する。   When a transmission request is made from the sockets 212a to 212c, the protocol determination unit 221 determines whether or not protocol processing is possible in the TOE 208 from the protocol information held by the sockets 212a to 212c.

プロトコル層受渡部234は、プロトコル判断部221がTOE208でプロトコル処理可能ではないと判断した場合、プロトコル層204に送信対象であるデータを受け渡すと共に、当該データのプロトコル処理を要求する。   When the protocol determination unit 221 determines that the protocol processing is not possible in the TOE 208, the protocol layer transfer unit 234 transfers data to be transmitted to the protocol layer 204 and requests protocol processing of the data.

一方、プロトコル判断部221で、TOE208でプロトコル処理可能であると判断した場合、さらに送信側TOEオブジェクト特定部222が、TOEインターフェース管理テーブル229を使用してTOEインターフェースオブジェクト231が保持する情報を順に参照して、TOE208内のネットワークデバイス233a〜bでデータの送信が可能か否か判断する。なお、詳細な処理については後述する。   On the other hand, when the protocol determining unit 221 determines that the protocol processing is possible with the TOE 208, the transmitting-side TOE object specifying unit 222 uses the TOE interface management table 229 to sequentially refer to the information held by the TOE interface object 231. The network device 233a-b in the TOE 208 determines whether data transmission is possible. Detailed processing will be described later.

TOE受渡部235は、送信側TOEオブジェクト特定部222がTOE208内のネットワークデバイス233a〜bでデータの送信が可能と判断した場合、TOE受渡部235に送信対象であるデータを受け渡すと共に、当該データのプロトコル処理を要求する。   When the transmission-side TOE object specifying unit 222 determines that data can be transmitted by the network devices 233a and 233b in the TOE 208, the TOE delivery unit 235 delivers the data to be transmitted to the TOE delivery unit 235 and the data Request protocol processing.

TOEインターフェース管理テーブル229は、後述するTOEインターフェースオブジェクト231を特定するための情報(オブジェクトのポインタ)が格納される。なお、本実施の形態では、この各オブジェクトを特定するための情報としてポインタを利用したが、ハッシュなど他の情報を用いても良い。つまり、当該TOEインターフェース管理テーブル229を参照することで、TOEインターフェースオブジェクト231にアクセスすることが可能になる。また、このTOEインターフェース管理テーブル229は、ラッパー層203及びTOEインターフェース層207から参照可能にする。   The TOE interface management table 229 stores information (object pointer) for specifying a TOE interface object 231 described later. In the present embodiment, a pointer is used as information for specifying each object, but other information such as a hash may be used. That is, the TOE interface object 231 can be accessed by referring to the TOE interface management table 229. The TOE interface management table 229 can be referenced from the wrapper layer 203 and the TOE interface layer 207.

プロトコル層204は、プロトコル解析処理部223と、プロトコル別受信バッファ224と、オブジェクト特定部225とを備え、上位に存在するソケット層202とのデータの送受信制御、下位に存在するインターフェース層205とのデータの送受信制御を行う。また、プロトコル層204により、ソケット層202及びインターフェース層207は完全に分離され、互いに意識することなく処理を行うことができる。   The protocol layer 204 includes a protocol analysis processing unit 223, a protocol-specific reception buffer 224, and an object specifying unit 225. Data transmission / reception control with the socket layer 202 existing at the upper level, and interface layer 205 existing at the lower level Performs data transmission / reception control. Further, the socket layer 202 and the interface layer 207 are completely separated by the protocol layer 204, and processing can be performed without being aware of each other.

プロトコル別受信バッファ224は、インターフェース層205又はTOEインターフェース層207から受信した受信データを、プロトコル別に一時的に記憶する。   The protocol-specific reception buffer 224 temporarily stores reception data received from the interface layer 205 or the TOE interface layer 207 for each protocol.

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

また、プロトコル解析処理部223は、受信したデータに対してプロトコル解析処理を行う。このプロトコル解析処理とは、プロトコル別受信バッファ224に記憶されたデータ(パケット)を読み出して、当該プロトコルのフォーマットによるパケットから、格納されていたデータを取得する等の処理をいう。   Further, the protocol analysis processing unit 223 performs protocol analysis processing on the received data. This protocol analysis processing refers to processing such as reading data (packets) stored in the protocol-specific reception buffer 224 and acquiring stored data from a packet in the format of the protocol.

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

オブジェクト特定部225は、プロトコル処理を行った後のデータを引き渡すインターフェースオブジェクト227又はTOEインターフェースオブジェクト231を特定する。オブジェクト特定部225は、インターフェース管理テーブル226を参照して、各インターフェースオブジェクト227又はTOEインターフェースオブジェクト231にアクセスして、送信制御が可能なインターフェースオブジェクト227又はTOEインターフェースオブジェクト231を特定する。   The object specifying unit 225 specifies the interface object 227 or the TOE interface object 231 that delivers data after performing the protocol processing. The object specifying unit 225 refers to the interface management table 226, accesses each interface object 227 or the TOE interface object 231, and specifies the interface object 227 or the TOE interface object 231 that can be controlled for transmission.

また、インターフェース管理テーブル226において、インターフェースオブジェクト227のポインタ及びTOEインターフェースオブジェクト231のポインタが区別することなく格納されている。このため、オブジェクト特定部225は、TOE208側のTOEネットワークデバイス233a〜b又はネットワークデバイス層206のネットワークデバイス228a〜cを指し示すオブジェクトであるかを認識する必要なく、これらインターフェースオブジェクト227又はTOEインターフェースオブジェクト231にアクセスできる。   In the interface management table 226, the pointer of the interface object 227 and the pointer of the TOE interface object 231 are stored without distinction. Therefore, the object specifying unit 225 does not need to recognize whether the object points to the TOE network devices 233a to 233b on the TOE 208 side or the network devices 228a to 228c on the network device layer 206, and these interface objects 227 or TOE interface objects 231 are not necessary. Can be accessed.

そして、プロトコル層204から、オブジェクト特定部225により特定されたインターフェースオブジェクト227又はTOEインターフェースオブジェクト231の、(TOE)ネットワークデバイスにデータを引き渡すためのインターフェースが呼び出される。これにより、データを(TOE)ネットワークデバイスに引き渡すことができる。なお、インターフェースオブジェクト227及びTOEインターフェースオブジェクト231の引き渡すためのインターフェースは共通として、デバイスの差異は隠蔽されているものとする。   Then, an interface for transferring data to the (TOE) network device of the interface object 227 or the TOE interface object 231 specified by the object specifying unit 225 is called from the protocol layer 204. Thereby, data can be delivered to the (TOE) network device. It is assumed that the interface for handing over the interface object 227 and the TOE interface object 231 is common, and the difference between devices is hidden.

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

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

また、プロトコル層204とインターフェース層205との間には、インターフェース管理テーブル226が備えられている。このインターフェース管理テーブル226には、インターフェースオブジェクト227及び後述するTOEインターフェースオブジェクト231を特定するための情報(オブジェクトのポインタ)が格納されている。なお、本実施の形態では、この各オブジェクトを特定するための情報としてポインタを利用したが、ハッシュなど他の情報を用いても良い。このインターフェース管理テーブル226は、プロトコル層204及びインターフェース層205から参照可能とする。   An interface management table 226 is provided between the protocol layer 204 and the interface layer 205. The interface management table 226 stores information (object pointers) for specifying an interface object 227 and a TOE interface object 231 described later. In the present embodiment, a pointer is used as information for specifying each object, but other information such as a hash may be used. This interface management table 226 can be referred to from the protocol layer 204 and the interface layer 205.

図3は、インターフェース管理テーブル226とインターフェースオブジェクト227との関連を示した説明図である。図3に示すように、インターフェース管理テーブル226に登録されたオブジェクトのポインタを参照することで、インターフェースオブジェクトを特定できる。さらに、インターフェースオブジェクトが生成、削除が行われる度に、インターフェース層205はインターフェース管理テーブル226のレコードの登録、削除を行う。なお、インターフェース管理テーブル226には、TOEインターフェースオブジェクト231のポインタも登録されるが、詳細については後述する。   FIG. 3 is an explanatory diagram showing the relationship between the interface management table 226 and the interface object 227. As shown in FIG. 3, the interface object can be specified by referring to the object pointer registered in the interface management table 226. Further, every time an interface object is created and deleted, the interface layer 205 registers and deletes a record in the interface management table 226. Note that the pointer of the TOE interface object 231 is also registered in the interface management table 226, details of which will be described later.

ネットワークデバイス層206は、第1ネットワークデバイス228a、第2ネットワークデバイス228b、第3ネットワークデバイス228cを備え、外部のネットワークと送受信する。受信したデータは、インターフェース層205のインターフェースオブジェクト227に受け渡される。   The network device layer 206 includes a first network device 228a, a second network device 228b, and a third network device 228c, and transmits and receives to / from an external network. The received data is transferred to the interface object 227 of the interface layer 205.

TOE208は、プロトコル解析回路232と、第1TOEネットワークデバイス233aと、第2TOEネットワークデバイス233bとを備え、ハードウェアにより結線した回路で、所定のプロトコルによるプロトコル処理及びプロトコル解析処理と、外部ネットワークとの間の通信制御と、を行う。これにより、TOE208は、特に処理データ量、スピードが増加傾向にある所定のプロトコル(例えばTCP/IP)のハードウェアオフロードを行うことができる。   The TOE 208 includes a protocol analysis circuit 232, a first TOE network device 233a, and a second TOE network device 233b, and is a circuit connected by hardware. Between the protocol processing and protocol analysis processing according to a predetermined protocol and an external network Communication control. Thereby, the TOE 208 can perform hardware offload of a predetermined protocol (for example, TCP / IP) in which the processing data amount and the speed tend to increase.

プロトコル解析回路232は、ラッパー層203から入力された通信データを送信するため、所定のプロトコルによるプロトコル処理を行う。また、プロトコル解析回路232は、第1TOEネットワークデバイス233a又は第2TOEネットワークデバイス233bが通信データを受信した場合、所定のプロトコルによるプロトコル解析処理を行う。また、プロトコル解析回路232においてプロトコル処理及びプロトコル解析処理が可能なプロトコルは、TCP、UDP、IP及びICMPとする。   The protocol analysis circuit 232 performs protocol processing according to a predetermined protocol in order to transmit communication data input from the wrapper layer 203. Further, when the first TOE network device 233a or the second TOE network device 233b receives communication data, the protocol analysis circuit 232 performs protocol analysis processing using a predetermined protocol. Protocols that can be protocol-processed and protocol-analyzed by the protocol analysis circuit 232 are TCP, UDP, IP, and ICMP.

また、プロトコル解析回路232は、受信したデータのプロトコルがTCP、UDP、IP及びICMP以外と判断した場合、受信したデータと共に、TOEインターフェース層207にプロトコル解析処理を要求する。   When the protocol analysis circuit 232 determines that the protocol of the received data is other than TCP, UDP, IP, and ICMP, the protocol analysis circuit 232 requests the TOE interface layer 207 for protocol analysis processing together with the received data.

第1TOEネットワークデバイス233a及び第2TOEネットワークデバイス233bは、ハードウェアにより結線され、外部のネットワークと送受信を行うためのデバイスとする。   The first TOE network device 233a and the second TOE network device 233b are connected by hardware, and are devices for transmitting and receiving with an external network.

TOEインターフェース層207は、受信側TOEオブジェクト特定部230と、TOEインターフェースオブジェクト231とを備え、TOE208を他の構成と接続するためのインターフェースとなる。   The TOE interface layer 207 includes a receiving-side TOE object specifying unit 230 and a TOE interface object 231 and serves as an interface for connecting the TOE 208 to other components.

受信側TOEオブジェクト特定部230は、TOE208でプロトコル解析処理できなかったデータを処理するTOEインターフェースオブジェクト231を特定する。受信側TOEオブジェクト特定部230は、TOEインターフェース管理テーブル229を参照して、各TOEインターフェースオブジェクト231にアクセスして、当該受信したネットワークデバイスに対応するTOEインターフェースオブジェクト231を特定する。   The receiving-side TOE object specifying unit 230 specifies a TOE interface object 231 that processes data that could not be subjected to protocol analysis processing by the TOE 208. The receiving-side TOE object specifying unit 230 refers to the TOE interface management table 229, accesses each TOE interface object 231, and specifies the TOE interface object 231 corresponding to the received network device.

TOEインターフェースオブジェクト231は、TOE208が備えるネットワークデバイス毎に1対1に対応付けられている。そして、当該TOEインターフェースオブジェクト231は、インターフェースオブジェクト227と同様の情報を保持すると共に、対応付けられたネットワークデバイスを制御することができる。さらに、TOEインターフェースオブジェクト231は、TOE208でプロトコル解析処理が失敗した場合に、プロトコル層204でプロトコル解析処理を行うためのインターフェースとなる。   The TOE interface object 231 is associated with each network device included in the TOE 208 on a one-to-one basis. The TOE interface object 231 holds the same information as the interface object 227 and can control the associated network device. Further, the TOE interface object 231 is an interface for performing protocol analysis processing in the protocol layer 204 when the protocol analysis processing fails in the TOE 208.

図4は、インターフェースクラス401とTOEインターフェースクラス402のクラス構造を示した図である。図4に示すように、インターフェースクラス401は、属性としてアドレス情報と、ハードウェア情報と、を備えている。このアドレス情報には、対応付けられたネットワークデバイスで送受信を行うIPアドレスを格納する。また、ハードウェア情報には、割り当てられたネットワークデバイスに関する情報を格納する。また、これら属性は、図4の属性の左側に「+」記号が付されていることから把握できるように、外部に対して公開されている。また、他の操作も「+」記号が付されている場合は同様に外部に対して公開されている。   FIG. 4 is a diagram showing the class structure of the interface class 401 and the TOE interface class 402. As shown in FIG. 4, the interface class 401 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 as to be understood from the fact 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.

また、インターフェースクラス401は、操作としてハードウェア、ドライバに対するアクセス制御()とプロトコル層から送信データを、ネットワークデバイスへの引き渡し制御()とを備えている。これら操作により、ネットワークデバイスを使用することができる。   The interface class 401 includes, as operations, access control () for hardware and drivers, and transfer control () for transmitting data from the protocol layer to the network device. With these operations, the network device can be used.

また、TOEインターフェースクラス402は、インターフェースクラスを継承すると共に、操作としてプロトコル解析処理への入力・出力インターフェース()を備えている。当該操作を使用することで、TOE208が受信したデータを、プロトコル層204に対して出力することができる。   The TOE interface class 402 inherits the interface class and includes an input / output interface () for protocol analysis processing as an operation. By using this operation, the data received by the TOE 208 can be output to the protocol layer 204.

これらインターフェースクラス及びTOEインターフェースクラスを実体化することで、インターフェースオブジェクト227及びTOEインターフェースオブジェクト231が生成され、上述した属性、操作を使用することができる。   By instantiating these interface class and TOE interface class, an interface object 227 and a TOE interface object 231 are generated, and the above-described attributes and operations can be used.

本実施の形態にかかる情報処理装置100においては、第1TOEネットワークデバイス233a及び第2TOEネットワークデバイス233bが起動時に自動的に検出された際に、対応するTOEインターフェースオブジェクト231が生成される。また、インターフェースオブジェクト227も同様に、起動時の自動検出に伴い生成される。   In the information processing apparatus 100 according to the present embodiment, a corresponding TOE interface object 231 is generated when the first TOE network device 233a and the second TOE network device 233b are automatically detected at startup. Similarly, the interface object 227 is generated with automatic detection at the time of activation.

そして、生成されたTOEインターフェースオブジェクト231のポインタは、インターフェース管理テーブル226及びTOEインターフェース管理テーブル229に登録され、インターフェースオブジェクト227のポインタはインターフェース管理テーブル226に登録される。   The generated pointer of the TOE interface object 231 is registered in the interface management table 226 and the TOE interface management table 229, and the pointer of the interface object 227 is registered in the interface management table 226.

これにより、TOEインターフェース管理テーブル229に格納されたポインタから、TOEインターフェースオブジェクト231にアクセスすることで、TOE208が備えるTOEネットワークデバイス233a〜bの情報を参照することができる。   Accordingly, by accessing the TOE interface object 231 from the pointer stored in the TOE interface management table 229, information on the TOE network devices 233a to 233b included in the TOE 208 can be referred to.

また、インターフェース管理テーブル226に格納されたポインタから、TOEインターフェースオブジェクト231にアクセスすることで、TOE208が備えるTOEネットワークデバイス233a〜bの情報を参照することができる。同様に、インターフェース管理テーブル226に格納されたポインタから、インターフェースオブジェクト227にアクセスすることで、ネットワークデバイス層206が備えるネットワークデバイス228a〜cの情報を参照することができる。   Further, by accessing the TOE interface object 231 from the pointer stored in the interface management table 226, information on the TOE network devices 233a-b included in the TOE 208 can be referred to. Similarly, by accessing the interface object 227 from the pointer stored in the interface management table 226, information on the network devices 228a to 228c included in the network device layer 206 can be referred to.

図5は、インターフェースオブジェクト227及びTOEインターフェースオブジェクト231の登録先のインターフェース管理テーブルを示した説明図である。図5に示すように、インターフェース管理テーブル226には、各インターフェースオブジェクト227と、各TOEインターフェースオブジェクト231とを参照可能にするポインタが格納される。これによりプロトコル層204でプロトコル処理が終了した後のデータを、ネットワークデバイス層206のネットワークデバイス228a〜c及びTOE208のTOEネットワークデバイス233a〜bのいずれに対しても出力することができる。   FIG. 5 is an explanatory diagram showing an interface management table of registration destinations of the interface object 227 and the TOE interface object 231. As shown in FIG. 5, the interface management table 226 stores pointers that can refer to each interface object 227 and each TOE interface object 231. As a result, the data after the protocol processing is completed in the protocol layer 204 can be output to both the network devices 228a to 228c of the network device layer 206 and the TOE network devices 233a to 233b of the TOE 208.

このような構成を備えることで、情報処理装置100では、最上位層にユーザアプリケーション層201のネットワークプログラム211a〜cから、ソケット層202を経由した後、ラッパー層203を介して、プロトコル層204及びTOE208にアクセスできるので、プロトコル処理を切り替えることができる。   With such a configuration, in the information processing apparatus 100, the network program 211a to 211c of the user application layer 201 is passed through the socket layer 202 to the uppermost layer and then passed through the wrapper layer 203 and the protocol layer 204 and Since the TOE 208 can be accessed, protocol processing can be switched.

次に、以上のように構成された本実施の形態にかかるTOEインターフェース層207におけるTOEインターフェースオブジェクト231のアドレス情報の登録手順について説明する。図6は、本実施の形態にかかるTOEインターフェース層207における上述した処理の手順を示すフローチャートである。   Next, the registration procedure of the address information of the TOE interface object 231 in the TOE interface layer 207 according to this embodiment configured as described above will be described. FIG. 6 is a flowchart showing the above-described processing procedure in the TOE interface layer 207 according to the present embodiment.

まず、TOEインターフェース層207は、外部からの要求に応じて、TOEネットワークデバイスにIPアドレスの割り当てを受け付ける(ステップS601)。なお、外部とは、ラッパー層203を介して接続されるソケット212a〜cや、TOE208等とする。   First, the TOE interface layer 207 accepts an IP address assignment to the TOE network device in response to a request from the outside (step S601). Note that the term “external” refers to the sockets 212a to 212c connected through the wrapper layer 203, the TOE 208, and the like.

そして、TOEインターフェース層207は、TOEインターフェース管理テーブル229にまだ確認していない、TOEインターフェースオブジェクト231を指し示すポインタがあるか否か判断する(ステップS602)。ないと判断した場合(ステップS602:No)、該当するTOEネットワークデバイスが存在しないものとして処理を終了する。   Then, the TOE interface layer 207 determines whether or not there is a pointer pointing to the TOE interface object 231 that has not been confirmed in the TOE interface management table 229 (step S602). If it is determined that there is not (step S602: No), the processing is terminated assuming that the corresponding TOE network device does not exist.

次に、TOEインターフェース層207は、ポインタがあると判断した場合(ステップS602:Yes)、ポインタが指し示すTOEインターフェースオブジェクト231のハードウェア情報を参照して、当該TOEインターフェースオブジェクト231が、割当先のネットワークデバイスか否か判断する(ステップS603)。割当先のネットワークデバイスではないと判断した場合(ステップS603:No)、再びステップS602から処理を開始する。   Next, when the TOE interface layer 207 determines that there is a pointer (step S602: Yes), the TOE interface object 231 refers to the hardware information of the TOE interface object 231 pointed to by the pointer, and the TOE interface object 231 assigns the network to which it is assigned. It is determined whether the device is a device (step S603). If it is determined that the network device is not the allocation destination network device (step S603: No), the processing starts again from step S602.

また、TOEインターフェース層207が、TOEインターフェースオブジェクト231が、割当先のネットワークデバイスと判断した場合(ステップS603:Yes)、当該TOEインターフェースオブジェクト231のアドレス情報に、IPアドレスの追加設定を行う(ステップS604)。これにより、IPアドレスが適切に割り当てられたことになる。   If the TOE interface layer 207 determines that the TOE interface object 231 is an allocation destination network device (step S603: Yes), the TOE interface layer 207 performs an additional setting of the IP address in the address information of the TOE interface object 231 (step S604). ). As a result, the IP address is appropriately assigned.

次に、以上のように構成された本実施の形態にかかるTOEインターフェース層207におけるTOEインターフェースオブジェクト231のアドレス情報の開放手順について説明する。図7は、本実施の形態にかかるTOEインターフェース層207における上述した処理の手順を示すフローチャートである。   Next, a procedure for releasing the address information of the TOE interface object 231 in the TOE interface layer 207 according to the present embodiment configured as described above will be described. FIG. 7 is a flowchart showing the above-described processing procedure in the TOE interface layer 207 according to the present embodiment.

まず、TOEインターフェース層207は、外部からの要求に応じて、TOEネットワークデバイスにIPアドレスの開放を受け付ける(ステップS701)。   First, the TOE interface layer 207 accepts the release of an IP address to the TOE network device in response to a request from the outside (step S701).

そして、TOEインターフェース層207は、TOEインターフェース管理テーブル229にまだ確認していないTOEインターフェースオブジェクト231を指し示すポインタがあるか否か判断する(ステップS702)。ないと判断した場合(ステップS702:No)、該当するTOEネットワークデバイスが存在しないものとして処理を終了する。   Then, the TOE interface layer 207 determines whether or not there is a pointer pointing to the TOE interface object 231 that has not been confirmed in the TOE interface management table 229 (step S702). If it is determined that there is not (step S702: No), it is determined that the corresponding TOE network device does not exist, and the process ends.

次に、TOEインターフェース層207は、ポインタがあると判断した場合(ステップS702:Yes)、ポインタが指し示すTOEインターフェースオブジェクト231のハードウェア情報を参照して、当該TOEインターフェースオブジェクト231が、アドレス開放先のネットワークデバイスか否か判断する(ステップS703)。開放先のネットワークデバイスではないと判断した場合(ステップS703:No)、再びステップS702から処理を開始する。   Next, when the TOE interface layer 207 determines that there is a pointer (step S702: Yes), the TOE interface object 231 refers to the hardware information of the TOE interface object 231 pointed to by the pointer, and the TOE interface object 231 is the address release destination. It is determined whether the device is a network device (step S703). If it is determined that the network device is not an open destination network device (step S703: No), the processing starts again from step S702.

また、TOEインターフェース層207が、TOEインターフェースオブジェクト231は、開放先のネットワークデバイスと判断した場合(ステップS703:Yes)、当該TOEインターフェースオブジェクト231のアドレス情報から、該当するIPアドレスを削除する(ステップS704)。これにより、IPアドレスが適切に削除されたことになる。   When the TOE interface layer 207 determines that the TOE interface object 231 is a network device to be opened (step S703: Yes), the corresponding IP address is deleted from the address information of the TOE interface object 231 (step S704). ). As a result, the IP address is appropriately deleted.

なお、インターフェースオブジェクト227に対するIPアドレスの割り当て及び開放は従来通りとして説明を省略する。   Note that the assignment and release of the IP address to the interface object 227 are the same as in the past, and the description thereof is omitted.

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

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

そして、ラッパー層203に送信するデータが入力された場合、ラッパー層203のプロトコル判断部221は、出力元のソケット212a〜cが保持するプロトコル情報に基づいて使用するプロトコルを決定した後、当該プロトコルがTOEで処理可能なプロトコル(TCP/UDP/ICMP/IP)であるか否かを判断する(ステップS803)。処理可能なプロトコルと判断した場合(ステップS803:Yes)、TOEインターフェース管理テーブル229及びTOEインターフェースオブジェクト231を参照して、送信処理を行うTOEネットワークデバイスを特定する(ステップS804)。   When the data to be transmitted is input to the wrapper layer 203, the protocol determination unit 221 of the wrapper layer 203 determines the protocol to be used based on the protocol information held by the output source sockets 212a to 212c, and then the protocol. Is a protocol (TCP / UDP / ICMP / IP) that can be processed by the TOE (step S803). If it is determined that the protocol can be processed (step S803: Yes), the TOE network device that performs transmission processing is specified with reference to the TOE interface management table 229 and the TOE interface object 231 (step S804).

次に、TOE受渡部235は、TOE208に対して送信するデータを受け渡すと共に、特定されたTOEネットワークデバイスから、入力されたIPアドレスにデータを送信するようTOE208に対して指示する(ステップS805)。なお、ステップS803〜S805で示したラッパー層203の処理の詳細については後述する。   Next, the TOE delivery unit 235 delivers data to be transmitted to the TOE 208 and instructs the TOE 208 to transmit data to the input IP address from the identified TOE network device (step S805). . Details of the processing of the wrapper layer 203 shown in steps S803 to S805 will be described later.

そして、TOE208のプロトコル解析回路232は、入力されたデータを、所定のプロトコルで送信するためのプロトコル処理を行う(ステップS806)。その後、ステップS804で特定されたTOEネットワークデバイス(例えば第1TOEネットワークデバイス233a)は、プロトコル処理された後のデータを、指示されたIPアドレスに送信する(ステップS807)。   Then, the protocol analysis circuit 232 of the TOE 208 performs a protocol process for transmitting the input data using a predetermined protocol (step S806). Thereafter, the TOE network device (for example, the first TOE network device 233a) identified in step S804 transmits the data after the protocol processing to the instructed IP address (step S807).

一方、ラッパー層203のプロトコル判断部221は、入力されたデータに使用するプロトコルがTOEで処理可能なプロトコル(TCP/UDP/ICMP/IP)ではないと判断した場合(ステップS803:No)、プロトコル層受渡部234が、プロトコル層204に対して、送信するデータを受け渡すと共に、当該データのプロトコル処理を要求する(ステップS808)。   On the other hand, if the protocol determination unit 221 of the wrapper layer 203 determines that the protocol used for the input data is not a protocol (TCP / UDP / ICMP / IP) that can be processed by the TOE (step S803: No), the protocol The layer transfer unit 234 transfers data to be transmitted to the protocol layer 204 and requests protocol processing of the data (step S808).

そして、プロトコル層204のプロトコル解析処理部223が、入力されたプロトコル情報に従って、入力されたデータに対してプロトコル処理を行う(ステップS809)。   Then, the protocol analysis processing unit 223 of the protocol layer 204 performs protocol processing on the input data according to the input protocol information (step S809).

その後、プロトコル層204のオブジェクト特定部225が、インターフェース管理テーブル226、インターフェースオブジェクト227及びTOEインターフェースオブジェクト231を参照して、送信処理を行うネットワークデバイス228a〜c又はTOEネットワークデバイス233a〜bを特定する(ステップS810)。そして、プロトコル層204は、特定されたネットワークデバイスに対応するインターフェースオブジェクト227又はTOEインターフェースオブジェクト231の操作を呼び出して、送信処理を指示する(ステップS811)。   Thereafter, the object specifying unit 225 of the protocol layer 204 refers to the interface management table 226, the interface object 227, and the TOE interface object 231 to specify the network devices 228a to 228c or the TOE network devices 233a to 233b that perform transmission processing ( Step S810). Then, the protocol layer 204 calls an operation of the interface object 227 or the TOE interface object 231 corresponding to the specified network device, and instructs transmission processing (step S811).

そして、送信指示されたインターフェースオブジェクト227又はTOEインターフェースオブジェクト231からの操作により、ネットワークデバイス228a〜c又はTOEネットワークデバイス233a〜bは、プロトコル処理された後のデータを、指示されたIPアドレスに送信する(ステップS812)。   Then, by the operation from the interface object 227 or the TOE interface object 231 instructed to transmit, the network devices 228a to 228c or the TOE network devices 233a to 233b transmit the data after the protocol processing to the instructed IP address. (Step S812).

次に、以上のように構成された本実施の形態にかかるラッパー層203における受信待ち又は送信処理について説明する。図9は、本実施の形態にかかるラッパー層203における上述した処理の手順を示すフローチャートである。なお、受信待ちの処理は、情報処理装置100の起動時に行われるものとする。   Next, the reception waiting or transmission processing in the wrapper layer 203 according to this embodiment configured as described above will be described. FIG. 9 is a flowchart showing the above-described processing procedure in the wrapper layer 203 according to the present embodiment. It is assumed that the reception waiting process is performed when the information processing apparatus 100 is activated.

まず、ラッパー層203は、ソケット層202のソケット212a〜cから、プロトコル層204へのリクエストを受け付ける(ステップS901)。このリクエストとは、受信待ち又は、データの送信の要求とする。なお、リクエストがデータの送信の場合、当該処理手順は、図8のステップS803及びS804の処理を詳細に説明したものとなる。   First, the wrapper layer 203 receives a request to the protocol layer 204 from the sockets 212a to 212c of the socket layer 202 (step S901). This request is a request for waiting for reception or data transmission. If the request is data transmission, the processing procedure is a detailed description of the processing in steps S803 and S804 in FIG.

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

そして、ラッパー層203のプロトコル判断部221は、決定されたプロトコルが、TOE208で処理可能なプロトコル(TCP/UDP/ICMP/IP)であるか否かを判断する(ステップS903)。TOE208で処理可能なプロトコル(TCP/UDP/ICMP/IP)ではないと判断した場合(ステップS903:No)、プロトコル層204に対して、リクエストに応じた受信待ち又は送信指示を行う(ステップS904)。   Then, the protocol determination unit 221 of the wrapper layer 203 determines whether or not the determined protocol is a protocol (TCP / UDP / ICMP / IP) that can be processed by the TOE 208 (step S903). If it is determined that the protocol (TCP / UDP / ICMP / IP) that can be processed by the TOE 208 is not determined (step S903: No), the protocol layer 204 is instructed to wait for reception or transmit according to the request (step S904). .

一方、プロトコル判断部221が、TOE208で処理可能なプロトコル(TCP/UDP/ICMP/IP)であると判断した場合(ステップS903:Yes)、送信側TOEオブジェクト特定部222は、TOEインターフェース管理テーブル229のレコード数だけ、ステップS906以降の処理を繰り返す(ステップS905)。なお、繰り返しが行われる度に、ステップS906で利用されるTOEインターフェース管理テーブル229のレコードが変更される。   On the other hand, when the protocol determining unit 221 determines that the protocol (TCP / UDP / ICMP / IP) that can be processed by the TOE 208 (step S903: Yes), the transmitting-side TOE object specifying unit 222 determines that the TOE interface management table 229 is used. The processing after step S906 is repeated for the number of records (step S905). Each time the process is repeated, the record in the TOE interface management table 229 used in step S906 is changed.

次に、送信側TOEオブジェクト特定部222は、TOEインターフェース管理テーブル229のレコードのポインタで示されたTOEインターフェースオブジェクト231に登録されたアドレスの数だけ、ステップS907以降の処理を繰り返す(ステップS906)。なお、繰り返しが行われる度に、ステップS907で利用されるTOEインターフェースオブジェクト231に設定されているIPアドレスが変更される。   Next, the transmitting-side TOE object specifying unit 222 repeats the processing from step S907 onward for the number of addresses registered in the TOE interface object 231 indicated by the pointer of the record in the TOE interface management table 229 (step S906). Each time the process is repeated, the IP address set in the TOE interface object 231 used in step S907 is changed.

そして、送信側TOEオブジェクト特定部222は、リクエストを行ったソケット212a〜cに設定されているIPアドレスが、ポインタで示されたTOEインターフェースオブジェクト231に設定されているIPアドレスか否か判断する(ステップS907)。   Then, the transmitting-side TOE object specifying unit 222 determines whether or not the IP address set in the sockets 212a to 212c that made the request is the IP address set in the TOE interface object 231 indicated by the pointer ( Step S907).

次に、送信側TOEオブジェクト特定部222は、リクエストを行ったソケット212a〜cに設定されているIPアドレスが、ポインタで示されたTOEインターフェースオブジェクト231に設定されているIPアドレスではないと判断した場合(ステップS907:No)、再びステップS906から処理を繰り返す(ステップS908)。   Next, the sending-side TOE object specifying unit 222 determines that the IP address set in the requesting socket 212a to 212c is not the IP address set in the TOE interface object 231 indicated by the pointer. In the case (step S907: No), the process is repeated again from step S906 (step S908).

そして、ステップS906〜ステップS908までのループが終了した場合、再びステップS905から処理を繰り返す(ステップS909)。   When the loop from step S906 to step S908 ends, the process is repeated from step S905 again (step S909).

一方、送信側TOEオブジェクト特定部222は、リクエストを行ったソケット212a〜cに設定されているIPアドレスが、ポインタで示されたTOEインターフェースオブジェクト231に設定されているIPアドレスだと判断した場合(ステップS907:Yes)、ラッパー層203は、受け付けたリクエストが受信待ちか送信か判断する(ステップS910)。このTOEインターフェースオブジェクト231に対応するTOEネットワークデバイス233a〜bが送信処理を行うデバイスとして特定される。   On the other hand, when the transmitting-side TOE object specifying unit 222 determines that the IP address set in the sockets 212a to 212c that made the request is the IP address set in the TOE interface object 231 indicated by the pointer ( In step S907: Yes), the wrapper layer 203 determines whether the accepted request is waiting for reception or transmission (step S910). The TOE network devices 233a-b corresponding to the TOE interface object 231 are specified as devices that perform transmission processing.

ステップS910で、ラッパー層203が受信待ちと判断した場合、TOE208に、受信待ちを指示する(ステップS911)。また、ラッパー層203は、リクエストにデータ受信先のIPアドレスが指定されていれば、当該IPアドレスから受信するよう指示し、リクエストにデータ受信先のIPアドレスが指定されていなければ、全てのIPアドレスから受信するよう指示する。   If the wrapper layer 203 determines in step S910 that it is waiting for reception, it instructs the TOE 208 to wait for reception (step S911). In addition, if the IP address of the data receiving destination is specified in the request, the wrapper layer 203 instructs to receive from the IP address. If the IP address of the data receiving destination is not specified in the request, all the IP addresses Instruct to receive from address.

一方、ステップS910で、ラッパー層203が送信と判断した場合、データ送信先のIPアドレスが、リクエストを出力したソケット212a〜cに設定されたルーティング情報から送信可能か否か判断する(ステップS912)。送信できないと判断した場合(ステップS912:No)、再びステップS906から処理を繰り返す(ステップS908)。   On the other hand, if it is determined in step S910 that the wrapper layer 203 is transmitting, it is determined whether or not the IP address of the data transmission destination can be transmitted from the routing information set in the sockets 212a to 212c that output the request (step S912). . If it is determined that transmission is not possible (step S912: No), the processing is repeated from step S906 again (step S908).

一方、ラッパー層203が送信可能と判断した場合(ステップS912:Yes)、TOE受渡部235は、TOE208に対して送信するデータを受け渡すと共に、特定されたTOEネットワークデバイス233a〜bから、入力されたIPアドレスにデータを送信するようTOE208に対して指示する(ステップS913)。当該指示により、図8のステップS806以降の処理が行われる。   On the other hand, if the wrapper layer 203 determines that transmission is possible (step S912: Yes), the TOE delivery unit 235 delivers data to be transmitted to the TOE 208 and is input from the identified TOE network devices 233a-b. The TOE 208 is instructed to transmit data to the IP address (step S913). In response to the instruction, the processing from step S806 onward in FIG. 8 is performed.

次に、ネットワークデバイス層206a〜cから送信のリクエストが行われた場合の処理の経路について説明する。図10は、所定のプロトコル(TCP/UDP/ICMP/IP)でプロトコル処理を行い、第1TOEネットワークデバイス233aから送信した場合の処理の経路を示した説明図である。   Next, the processing path when a transmission request is made from the network device layers 206a to 206c will be described. FIG. 10 is an explanatory diagram showing a processing path when the protocol processing is performed by a predetermined protocol (TCP / UDP / ICMP / IP) and transmitted from the first TOE network device 233a.

まずは、ネットワークプログラム211aから送信するデータの出力が行われたものとする(ステップS1001)。この場合、ソケット212aが、送信するデータを、ラッパー層203に出力する(ステップS1002)。この際、ラッパー層203のプロトコル判断部221が、出力元のソケット212a〜cが保持するプロトコル情報に基づいて使用するプロトコルを決定した後、決定されたプロトコルが所定のプロトコル(TCP/UDP/ICMP/IP)と判断したものとする。   First, it is assumed that data transmitted from the network program 211a is output (step S1001). In this case, the socket 212a outputs data to be transmitted to the wrapper layer 203 (step S1002). At this time, after the protocol determination unit 221 of the wrapper layer 203 determines a protocol to be used based on the protocol information held by the output source sockets 212a to 212c, the determined protocol is a predetermined protocol (TCP / UDP / ICMP). / IP).

そして、所定のプロトコルと判断された後、ラッパー層203は、送信側TOEオブジェクト特定部222に送信先のTOEネットワークデバイス233a〜bを特定するよう指示する(ステップS1003)。そこで、送信側TOEオブジェクト特定部222は、TOEインターフェース管理テーブル229を参照して、TOEインターフェースオブジェクト231のポインタを取得する(ステップS1004)。次に、送信側TOEオブジェクト特定部222は、ポインタで示されたTOEインターフェースオブジェクト231のアドレス情報を参照して、当該オブジェクトに対応するTOEネットワークデバイスが送信先か否か判断する(ステップS1005)。なお、本処理手順では、第1TOEネットワークデバイス233aが送信先と判断されたものとする。   After determining that the protocol is the predetermined protocol, the wrapper layer 203 instructs the transmission-side TOE object identification unit 222 to identify the transmission-destination TOE network devices 233a and 233b (step S1003). Therefore, the transmitting-side TOE object specifying unit 222 refers to the TOE interface management table 229 and acquires the pointer of the TOE interface object 231 (step S1004). Next, the transmission-side TOE object specifying unit 222 refers to the address information of the TOE interface object 231 indicated by the pointer, and determines whether or not the TOE network device corresponding to the object is a transmission destination (step S1005). In this processing procedure, it is assumed that the first TOE network device 233a is determined as the transmission destination.

送信先となる第1TOEネットワークデバイス233aを特定した後、TOE受渡部235が、送信するデータを受け渡すと共に、プロトコル解析回路232にプロトコル処理を指示する(ステップS1006)。   After specifying the first TOE network device 233a as the transmission destination, the TOE delivery unit 235 delivers the data to be transmitted and instructs the protocol analysis circuit 232 to perform protocol processing (step S1006).

そして、プロトコル解析回路232でプロトコル処理を終了した後、上述した処理で送信先と判断された第1ネットワークデバイス233aに送信処理を指示する(ステップS1007)。これにより、TOE208からデータの送信が行われる。   After the protocol analysis circuit 232 ends the protocol processing, the first network device 233a determined as the transmission destination in the above-described processing is instructed to perform transmission processing (step S1007). As a result, data is transmitted from the TOE 208.

図11は、所定のプロトコル(TCP/UDP/ICMP/IP)以外のプロトコル処理を行い、第1ネットワークデバイス228a又は第1TOEネットワークデバイス233aから送信した場合の処理の経路を示した説明図である。   FIG. 11 is an explanatory diagram showing a processing path when a protocol process other than a predetermined protocol (TCP / UDP / ICMP / IP) is performed and transmitted from the first network device 228a or the first TOE network device 233a.

まずは、ネットワークプログラム211aから送信するデータの出力が行われたものとする(ステップS1101)。この場合、ソケット212aが、送信するデータを、ラッパー層203に出力する(ステップS1102)。そして、ラッパー層203のプロトコル判断部221が、出力元のソケット212aが保持するプロトコル情報に基づいて使用するプロトコルを決定した後、決定されたプロトコルが所定のプロトコル(TCP/UDP/ICMP/IP)以外と判断したものとする。   First, it is assumed that data transmitted from the network program 211a is output (step S1101). In this case, the socket 212a outputs the data to be transmitted to the wrapper layer 203 (step S1102). Then, after the protocol determination unit 221 of the wrapper layer 203 determines a protocol to be used based on the protocol information held by the output source socket 212a, the determined protocol is a predetermined protocol (TCP / UDP / ICMP / IP). It is assumed that it is not.

そして、所定のプロトコル以外と判断された後、プロトコル層受渡部234が、プロトコル層204に対して送信するデータを受け渡すと共に、プロトコル層204のプロトコル解析処理部223に、決定されたプロトコルでプロトコル処理を行うよう指示する(ステップS1103)。そして、プロトコル層204は、プロトコル解析処理部223でプロトコル処理が終了した後、オブジェクト特定部225に対して、送信先のTOEインターフェースオブジェクト又はインターフェースオブジェクトを特定するよう指示する(ステップS1104)。そこで、オブジェクト特定部225は、インターフェース管理テーブル226を参照して、インターフェースオブジェクト227又はTOEインターフェースオブジェクト231のポインタを取得する(ステップS1105)。この後、インターフェース管理テーブル226に参照されたポインタに基づいて、第1ネットワークデバイス228aで送信する場合と、第1TOEネットワークデバイス233aで送信する場合とがある。まずは、第1ネットワークデバイス228aで送信する場合について説明する。   Then, after it is determined that the protocol other than the predetermined protocol, the protocol layer delivery unit 234 delivers the data to be transmitted to the protocol layer 204, and the protocol analysis processing unit 223 of the protocol layer 204 transmits the protocol using the determined protocol. An instruction is given to perform processing (step S1103). Then, after the protocol analysis processing unit 223 completes the protocol processing, the protocol layer 204 instructs the object specifying unit 225 to specify the destination TOE interface object or interface object (step S1104). Therefore, the object specifying unit 225 refers to the interface management table 226 and acquires the pointer of the interface object 227 or the TOE interface object 231 (step S1105). Thereafter, there are a case where transmission is performed by the first network device 228a and a case where transmission is performed by the first TOE network device 233a based on the pointer referred to in the interface management table 226. First, a case where transmission is performed by the first network device 228a will be described.

オブジェクト特定部225は、ポインタで示されたインターフェースオブジェクト227のアドレス情報を参照して、当該オブジェクトに対応するネットワークデバイスが送信先か否か判断する(ステップS1106)。そして、送信先となるネットワークデバイスを特定した後、ネットワークデバイスに対応するインターフェースオブジェクト227に送信処理を指示する。   The object specifying unit 225 refers to the address information of the interface object 227 indicated by the pointer, and determines whether or not the network device corresponding to the object is a transmission destination (step S1106). Then, after specifying a network device as a transmission destination, the interface object 227 corresponding to the network device is instructed to perform transmission processing.

そして、インターフェースオブジェクト227は、対応する第1ネットワークデバイス228aに送信処理を指示する(ステップS1107)。これにより、第1ネットワークデバイス228aからデータの送信が行われる。   Then, the interface object 227 instructs the corresponding first network device 228a to perform transmission processing (step S1107). Thereby, data is transmitted from the first network device 228a.

次に、第1TOEネットワークデバイス233aで送信する場合について説明する。オブジェクト特定部225は、ポインタで示されたTOEインターフェースオブジェクト231のアドレス情報を参照して、当該オブジェクトに対応するTOEネットワークデバイスが送信先か否か判断する(ステップS1108)。そして、送信先となるTOEネットワークデバイスを特定した後、当該TOEネットワークデバイスに対応するTOEインターフェースオブジェクト231に送信処理を指示する。   Next, a case where transmission is performed by the first TOE network device 233a will be described. The object specifying unit 225 refers to the address information of the TOE interface object 231 indicated by the pointer, and determines whether or not the TOE network device corresponding to the object is a transmission destination (step S1108). Then, after specifying the TOE network device as the transmission destination, the TOE interface object 231 corresponding to the TOE network device is instructed to perform transmission processing.

そして、TOEインターフェースオブジェクト231は、対応する第1TOEネットワークデバイス233aに送信処理を指示する(ステップS1109)。これにより、第1TOEネットワークデバイス233aからデータの送信が行われる。   Then, the TOE interface object 231 instructs the corresponding first TOE network device 233a to perform transmission processing (step S1109). Thereby, data is transmitted from the first TOE network device 233a.

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

まず、第1TOEネットワークデバイス233aが、データの受信処理を行う(ステップS1201)。   First, the first TOE network device 233a performs data reception processing (step S1201).

次に、プロトコル解析回路232は、受信したデータが解析可能な所定のプロトコル(TCP/UDP/ICMP/IP)であるか否か判断する(ステップS1202)。   Next, the protocol analysis circuit 232 determines whether or not the received data is a predetermined protocol (TCP / UDP / ICMP / IP) that can be analyzed (step S1202).

そして、プロトコル解析回路232が所定のプロトコルであると判断した場合(ステップS1202:Yes)、所定のプロトコルによる解析処理を受信したデータに対して行う(ステップS1203)。   If the protocol analysis circuit 232 determines that the protocol is the predetermined protocol (step S1202: Yes), the analysis processing based on the predetermined protocol is performed on the received data (step S1203).

次に、TOE208は、プロトコル解析処理後のデータを、ソケット層202のソケット212a〜cに出力する(ステップS1204)。   Next, the TOE 208 outputs the data after the protocol analysis processing to the sockets 212a to 212c of the socket layer 202 (step S1204).

一方、プロトコル解析回路232が所定のプロトコルではないと判断した場合(ステップS1202:No)、TOE208は、受信したデータをTOEインターフェース層207に出力する(ステップS1205)。   On the other hand, when the protocol analysis circuit 232 determines that the protocol is not a predetermined protocol (step S1202: No), the TOE 208 outputs the received data to the TOE interface layer 207 (step S1205).

そして、TOEインターフェース層207の受信側TOEオブジェクト特定部230は、TOEインターフェース管理テーブル229に格納されたポインタから、TOEインターフェースオブジェクト231を参照し、当該TOEインターフェースオブジェクト231のハードウェア情報を確認して、受信処理を行ったTOEネットワークデバイス233aに対応するTOEインターフェースオブジェクト231を特定する(ステップS1206)。受信側TOEオブジェクト特定部230は、特定されたTOEインターフェースオブジェクト231に受信したデータを出力する。   Then, the receiving-side TOE object specifying unit 230 of the TOE interface layer 207 refers to the TOE interface object 231 from the pointer stored in the TOE interface management table 229, confirms the hardware information of the TOE interface object 231, and The TOE interface object 231 corresponding to the TOE network device 233a that has performed the reception process is specified (step S1206). The receiving-side TOE object specifying unit 230 outputs the received data to the specified TOE interface object 231.

次に、TOEインターフェースオブジェクト231は、入力されたデータを出力すると共に、当該データのプロトコル解析処理をするようプロトコル層204に対して指示する(ステップS1207)。   Next, the TOE interface object 231 outputs the input data and instructs the protocol layer 204 to perform a protocol analysis process on the data (step S1207).

そして、プロトコル層204では、TOEインターフェースオブジェクト231からプロトコル別受信バッファ224に入力されたデータを、指示されたプロトコル別に一時的に格納する(ステップS1208)。   The protocol layer 204 temporarily stores the data input from the TOE interface object 231 to the protocol-specific reception buffer 224 for each designated protocol (step S1208).

そして、プロトコル解析処理部223は、指示に従って、プロトコル別受信バッファ224に格納されていたデータを取り出し、プロトコル解析処理を行う(ステップS1209)。これにより、受信したパケットから使用されるデータを抽出できたことになる。   Then, according to the instruction, the protocol analysis processing unit 223 extracts the data stored in the protocol-specific reception buffer 224, and performs protocol analysis processing (step S1209). As a result, data used from the received packet can be extracted.

次に、プロトコル層204は、プロトコル解析処理後のデータを、ソケット212a〜cに出力する(ステップS1210)。   Next, the protocol layer 204 outputs the data after the protocol analysis processing to the sockets 212a to 212c (step S1210).

そして、ソケット212a〜cは、入力されたデータを、当該ソケット212a〜cと対応付けられたネットワークプログラム211a〜cに出力する(ステップS1211)。   The sockets 212a to 212c output the input data to the network programs 211a to 211c associated with the sockets 212a to 212c (step S1211).

上述した処理手順により、TOE208が受信したデータについて、所定のプロトコルの場合はハードウェアオフロードを行うことを可能にすると共に、所定のプロトコル以外のプロトコルについてはプロトコル層204で解析処理を行うことを可能にしている。   With the processing procedure described above, it is possible to perform hardware offload for data received by the TOE 208 in the case of a predetermined protocol, and to perform analysis processing in the protocol layer 204 for protocols other than the predetermined protocol. It is possible.

次に、第1TOEネットワークデバイス233aがデータを受信した場合の処理の経路について説明する。図13は、第1TOEネットワークデバイス233aがデータを受信して、所定のプロトコル(TCP/UDP/ICMP/IP)でプロトコル解析処理を行った場合の処理の経路を示した説明図である。   Next, a processing path when the first TOE network device 233a receives data will be described. FIG. 13 is an explanatory diagram showing a processing path when the first TOE network device 233a receives data and performs protocol analysis processing using a predetermined protocol (TCP / UDP / ICMP / IP).

まず、第1ネットワークデバイス233aが、データの受信処理した場合、プロトコル解析回路232に解析処理を行うよう指示する(ステップS1301)。   First, when the first network device 233a performs data reception processing, the first network device 233a instructs the protocol analysis circuit 232 to perform analysis processing (step S1301).

そして、プロトコル解析回路232が、解析処理可能と判断して、解析処理を行った後、解析処理後のデータを、ソケット212aに出力する(ステップS1302)。   Then, the protocol analysis circuit 232 determines that the analysis process is possible, performs the analysis process, and then outputs the data after the analysis process to the socket 212a (step S1302).

そして、ソケット212aは、入力されたデータを、対応付けられているネットワークプログラム211aに出力する(ステップS1303)。上述する処理を行うことで、ネットワークプログラム211aは、第1TOEネットワークデバイス233aからデータを受信することができる。   Then, the socket 212a outputs the input data to the associated network program 211a (step S1303). By performing the processing described above, the network program 211a can receive data from the first TOE network device 233a.

図14は、第1TOEネットワークデバイス233aがデータを受信して、所定のプロトコル(TCP/UDP/ICMP/IP)以外のプロトコルでプロトコル解析処理を行った場合の処理の経路を示した説明図である。   FIG. 14 is an explanatory diagram showing a processing path when the first TOE network device 233a receives data and performs protocol analysis processing using a protocol other than a predetermined protocol (TCP / UDP / ICMP / IP). .

まず、第1ネットワークデバイス233aが、データの受信処理した場合、プロトコル解析回路232に解析処理を行うよう指示する(ステップS1401)。   First, when the first network device 233a performs data reception processing, the first network device 233a instructs the protocol analysis circuit 232 to perform analysis processing (step S1401).

そして、プロトコル解析回路232が、解析処理できないと判断した場合、受信したデータをTOEインターフェース層207に出力する(ステップS1402)。   If the protocol analysis circuit 232 determines that analysis processing cannot be performed, the received data is output to the TOE interface layer 207 (step S1402).

そして、受信側TOEオブジェクト特定部230は、TOEインターフェース管理テーブル229を参照して、TOEインターフェースオブジェクト231のポインタを取得する(ステップS1403)。そして、受信側TOEオブジェクト特定部230は、取得したポインタが指し示すTOEインターフェースオブジェクト231のハードウェア情報を確認し、データを受信した第1TOEネットワークデバイス233aに対応するTOEインターフェースオブジェクト231を特定する。   Then, the receiving-side TOE object specifying unit 230 refers to the TOE interface management table 229 and acquires the pointer of the TOE interface object 231 (step S1403). Then, the receiving-side TOE object specifying unit 230 checks the hardware information of the TOE interface object 231 indicated by the acquired pointer, and specifies the TOE interface object 231 corresponding to the first TOE network device 233a that has received the data.

そして、受信側TOEオブジェクト特定部230は、特定されたTOEインターフェースオブジェクト231に受信したデータを出力する(ステップS1404)。   Then, the receiving-side TOE object specifying unit 230 outputs the received data to the specified TOE interface object 231 (step S1404).

次に、TOEインターフェースオブジェクト231は、プロトコル層204に対して、入力されたデータを出力すると共に、当該データのプロトコル解析処理をするよう指示する(ステップS1405)。これにより入力されたデータは、プロトコル別にプロトコル別受信バッファ224に格納される。   Next, the TOE interface object 231 instructs the protocol layer 204 to output the input data and to perform a protocol analysis process on the data (step S1405). Thus, the input data is stored in the protocol-specific reception buffer 224 for each protocol.

そして、プロトコル解析処理部223は、プロトコル別受信バッファ224に格納されたデータを取得する(ステップS1406)。その後、プロトコル解析処理部223は、取得したデータのプロトコル解析処理を行った後、解析処理したデータを、ソケット212a〜cに出力する(ステップS1407)。   Then, the protocol analysis processing unit 223 acquires the data stored in the protocol-specific reception buffer 224 (step S1406). Thereafter, the protocol analysis processing unit 223 performs a protocol analysis process on the acquired data, and then outputs the analyzed data to the sockets 212a to 212c (step S1407).

そして、ソケット212a〜cは、入力されたデータを、当該ソケット212a〜cと対応付けられたネットワークプログラム211a〜cに出力する(ステップS1408)。上述した処理手順により、TOEでプロトコル解析処理を実行できないデータを受信した場合にでも適切にプロトコル解析処理を行うことができる。   The sockets 212a to 212c output the input data to the network programs 211a to 211c associated with the sockets 212a to 212c (step S1408). According to the processing procedure described above, even when data that cannot be executed by the TOE is received, the protocol analysis processing can be appropriately performed.

図15は、第1ネットワークデバイス228aがデータを受信して、プロトコル解析処理を行った場合の処理の経路を示した説明図である。   FIG. 15 is an explanatory diagram showing a processing path when the first network device 228a receives data and performs protocol analysis processing.

まず、第1ネットワークデバイス228aが、データの受信処理した場合、当該第1ネットワークデバイス228aに対応するインターフェースオブジェクト227に、受信したデータを出力する(ステップS1501)。   First, when the first network device 228a performs data reception processing, the received data is output to the interface object 227 corresponding to the first network device 228a (step S1501).

そして、インターフェースオブジェクト227は、入力されたデータを、プロトコル別にプロトコル別受信バッファ224に格納する(ステップS1502)。   The interface object 227 stores the input data in the protocol-specific reception buffer 224 for each protocol (step S1502).

そして、プロトコル解析処理部223は、プロトコル別受信バッファ224に格納されたデータを取得する(ステップS1503)。その後、プロトコル解析処理部223は、取得したデータのプロトコル解析処理を行った後、解析処理したデータを、ソケット212a〜cに出力する(ステップS1504)。   Then, the protocol analysis processing unit 223 acquires the data stored in the protocol-specific reception buffer 224 (step S1503). Thereafter, the protocol analysis processing unit 223 performs a protocol analysis process on the acquired data, and then outputs the analyzed data to the sockets 212a to 212c (step S1504).

そして、ソケット212a〜cは、入力されたデータを、当該ソケット212a〜cと対応付けられたネットワークプログラム211a〜cに出力する(ステップS1505)。   Then, the sockets 212a to 212c output the input data to the network programs 211a to 211c associated with the sockets 212a to 212c (step S1505).

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

ところで、従来の情報処理装置では、ソケット層及びインターフェース層は互いに一方から他方を参照できない関係にあったため、ソケット層以下をハードウェア化してオフロード可能にすると共に、当該ハードウェアを経由しないネットワークデバイスを搭載した場合、送信するデータを適切なネットワークデバイスに振り分けることが出来なくなっていた。   By the way, in the conventional information processing apparatus, since the socket layer and the interface layer cannot be referred to each other, it is possible to offload the hardware below the socket layer and do not pass through the hardware. When installed, it was impossible to distribute the data to be sent to an appropriate network device.

これに対し、本実施の形態にかかる情報処理装置100では、上述したような構成を備えることで、TOEハードウェアに搭載されたTOEネットワークデバイス以外のネットワークデバイスも使用することが可能になった。   On the other hand, in the information processing apparatus 100 according to the present embodiment, it is possible to use a network device other than the TOE network device mounted on the TOE hardware by providing the configuration as described above.

これにより、本実施の形態にかかる情報処理装置100では、TOEを搭載することでハードウェアオフロードを可能にして、CPU101の処理負担を軽減すると共に、さまざまなプロトコルに対応することが可能になる。   Thereby, in the information processing apparatus 100 according to the present embodiment, by installing the TOE, hardware offload can be performed, the processing load on the CPU 101 can be reduced, and various protocols can be supported. .

また、本実施の形態にかかる情報処理装置100では、TOEに搭載されたTOEネットワークデバイス以外に、さまざまなネットワークデバイスを利用することが可能になる。このようなネットワークデバイスは、本実施の形態のように、シリアル回線I/F106、無線LAN_I/F107及びUSB_I/F108に制限するものではなく、従来から使用される様々なネットワークデバイスを適用しても良い。   In the information processing apparatus 100 according to the present embodiment, various network devices can be used in addition to the TOE network device mounted on the TOE. Such network devices are not limited to the serial line I / F 106, the wireless LAN_I / F 107, and the USB_I / F 108 as in the present embodiment, and various network devices that are conventionally used may be applied. good.

本実施形態の情報処理装置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で実行される通信制御プログラムは、上述した各部(ユーザアプリケーション層、ソケット層、プロトコル層、インターフェース層、TOEインターフェース層)を含むモジュール構成となっており、実際のハードウェアとしてはCPUが上記記録媒体から通信制御プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、ユーザアプリケーション層、ソケット層、プロトコル層、インターフェース層、TOEインターフェース層が主記憶装置上に生成されるようになっている。   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 layer, interface layer, TOE interface layer). As hardware, the CPU reads the communication control program from the recording medium and executes it to load the above-described units onto the main storage device. The user application layer, socket layer, protocol layer, interface layer, and TOE interface layer are the main memory. It is generated on the device.

以上のように、本発明にかかる通信制御装置、通信制御方法及び通信制御プログラムは、通信制御に有用であり、特に、TOEを用いた通信制御に適している。   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 the TOE.

実施の形態にかかる情報処理装置のハードウェア構成を示した図である。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 explanatory drawing which showed the relationship between an interface management table and an interface object. インターフェースクラスとTOEインターフェースクラスのクラス構造を示した図である。It is the figure which showed the class structure of the interface class and the TOE interface class. インターフェースオブジェクト及びTOEインターフェースオブジェクトの登録先のインターフェース管理テーブルを示した説明図である。It is explanatory drawing which showed the interface management table of the registration destination of an interface object and TOE interface object. 実施の形態にかかるTOEインターフェース層におけるTOEインターフェースオブジェクトのアドレス情報の登録手順を示すフローチャートである。It is a flowchart which shows the registration procedure of the address information of the TOE interface object in the TOE interface layer concerning an embodiment. 実施の形態にかかるTOEインターフェース層におけるTOEインターフェースオブジェクトのアドレス情報の開放手順を示すフローチャートである。It is a flowchart which shows the release procedure of the address information of the TOE interface object in the TOE interface layer concerning an embodiment. 実施の形態にかかる情報処理装置における送信処理の手順を示すフローチャートである。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 reception waiting or transmission process in the wrapper layer concerning embodiment. 実施の形態にかかる情報処理装置における、所定のプロトコルでプロトコル処理を行い、第1TOEネットワークデバイスから送信した場合の処理経路を示した説明図である。It is explanatory drawing which showed the process path | route at the time of performing a protocol process by the predetermined protocol and transmitting from the 1st TOE network device in the information processing apparatus concerning embodiment. 実施の形態にかかる情報処理装置における、所定のプロトコル以外のプロトコル処理を行い、第1ネットワークデバイス又は第1TOEネットワークデバイスから送信した場合の処理経路を示した説明図である。6 is an explanatory diagram illustrating a processing path when a protocol process other than a predetermined protocol is performed and transmitted from the first network device or the first TOE network device in the information processing apparatus according to the embodiment. FIG. 実施の形態にかかる情報処理装置におけるTOEでデータを受信した場合の処理の手順を示すフローチャートである。6 is a flowchart illustrating a processing procedure when data is received by the TOE in the information processing apparatus according to the embodiment. 実施の形態にかかる情報処理装置における、第1TOEネットワークデバイスがデータを受信して、所定のプロトコルでプロトコル解析処理を行った場合の処理の経路を示した説明図である。6 is an explanatory diagram illustrating a processing path when a first TOE network device receives data and performs a protocol analysis process using a predetermined protocol in the information processing apparatus according to the embodiment. FIG. 実施の形態にかかる情報処理装置における、第1TOEネットワークデバイスがデータを受信して、所定のプロトコル以外のプロトコルでプロトコル解析処理を行った場合の処理の経路を示した説明図である。FIG. 6 is an explanatory diagram illustrating a processing path when a first TOE network device receives data and performs a protocol analysis process using a protocol other than a predetermined protocol in the information processing apparatus according to the embodiment. 実施の形態にかかる情報処理装置における、第1ネットワークデバイスがデータを受信して、プロトコル解析処理を行った場合の処理の経路を示した説明図である。6 is an explanatory diagram illustrating a processing path when a first network device receives data and performs a protocol analysis process in the information processing apparatus according to the embodiment. FIG. 従来の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 ROM
103 RAM
104 HDD
105 TOE
106 シリアル回線I/F
107 無線LAN_I/F
108 USB_I/F
109 有線LAN_I/F
201 ユーザアプリケーション層
202 ソケット層
203 ラッパー層
204 プロトコル層
205 インターフェース層
206 ネットワークデバイス層
207 TOEインターフェース層
208 TOE
211a〜c ネットワークプログラム
212a〜c ソケット
221 プロトコル判断部
222 送信側TOEオブジェクト特定部
223 プロトコル解析処理部
224 プロトコル別受信バッファ
225 オブジェクト特定部
226 インターフェース管理テーブル
227 インターフェースオブジェクト
228a 第1ネットワークデバイス
228b 第2ネットワークデバイス
228c 第3ネットワークデバイス
229 インターフェース管理テーブル
230 受信側TOEオブジェクト特定部
231 TOEインターフェースオブジェクト
232 プロトコル解析回路
233a 第1ネットワークデバイス
233b 第2ネットワークデバイス
100 Information processing apparatus 101 CPU
102 ROM
103 RAM
104 HDD
105 TOE
106 Serial line I / F
107 Wireless LAN_I / F
108 USB_I / F
109 Wired LAN_I / F
201 User application layer 202 Socket layer 203 Wrapper layer 204 Protocol layer 205 Interface layer 206 Network device layer 207 TOE interface layer 208 TOE
211a-c Network program 212a-c Socket 221 Protocol determination unit 222 Transmission-side TOE object specifying unit 223 Protocol analysis processing unit 224 Protocol-specific reception buffer 225 Object specifying unit 226 Interface management table 227 Interface object 228a First network device 228b Second network Device 228c Third network device 229 Interface management table 230 Receiving side TOE object specifying unit 231 TOE interface object 232 Protocol analysis circuit 233a First network device 233b Second network device

Claims (16)

送信データに対して、所定のプロトコルで送信するためのプロトコル処理を行うと共に、当該送信データを前記所定のプロトコルで送信を行う、ハードウェア結線された回路であるハードウェア通信デバイス制御部と、
送信データに対して、ネットワークプログラム毎に割り当てられるソケットからの要求に従ったプロトコル処理を行う、ソフトウェアで実現されたプロトコル処理部と、
前記プロトコル処理部により前記プロトコル処理が行われた前記送信データを送信する通信デバイス制御部と、
前記ソケットからの送信データの送信要求が、前記ハードウェア通信デバイス制御部でプロトコル処理可能な前記所定のプロトコルを用いた送信であるか否かを判断するプロトコル判断部と、
前記所定のプロトコルを用いた送信であると判断された場合に、前記ソケットから送信要求された前記送信データを、前記ハードウェア送信デバイス制御部に対して受け渡すハードウェアデバイス受渡部と、
前記所定のプロトコル以外と判断された場合に、前記ソケットから送信要求された前記送信データを、前記プロトコル処理部に対して受け渡すプロトコル受渡部と、
を備えることを特徴とする通信制御装置。
A hardware communication device control unit, which is a hardware-connected circuit, performs a protocol process for transmitting the transmission data with a predetermined protocol, and transmits the transmission data with the predetermined protocol;
A protocol processing unit implemented in software that performs protocol processing according to a request from a socket assigned to each network program for transmission data;
A communication device control unit that transmits the transmission data subjected to the protocol processing by the protocol processing unit;
A protocol determination unit for determining whether a transmission request for transmission data from the socket is transmission using the predetermined protocol that can be protocol-processed by the hardware communication device control unit;
A hardware device delivery unit that delivers the transmission data requested to be transmitted from the socket to the hardware transmission device control unit when it is determined that the transmission is performed using the predetermined protocol;
A protocol delivery unit that delivers the transmission data requested to be transmitted from the socket to the protocol processing unit when determined to be other than the predetermined protocol;
A communication control apparatus comprising:
前記プロトコル処理部は、前記プロトコル処理部で前記送信データに対して前記ソケットからの要求に従ったプロトコル処理を行った後、当該送信データの送信先が前記ハードウェア送信デバイス制御部か、前記通信デバイス制御部か判断し、判断結果に従って前記ハードウェア送信デバイス制御部又は、通信デバイス制御部に対して前記送信データを受け渡すこと、
を特徴とする請求項1に記載の通信制御装置。
The protocol processing unit performs protocol processing in accordance with a request from the socket on the transmission data in the protocol processing unit, and then the transmission destination of the transmission data is the hardware transmission device control unit or the communication Determining whether it is a device control unit, and passing the transmission data to the hardware transmission device control unit or the communication device control unit according to the determination result;
The communication control device according to claim 1.
前記ハードウェア通信デバイス制御部は、外部のネットワークに対して送信を行うハードウェア通信デバイスを複数備え、
前記ハードウェア通信デバイスで前記外部のネットワークで送信が許可されているアドレス情報を保持する、前記ハードウェア通信デバイス毎に複数個存在するハードウェアインターフェース情報保持部と、
前記プロトコル判断部で所定のプロトコルを用いて送信を行うと判断した場合に、送信を行う前記ハードウェア通信デバイスを、前記ハードウェアインターフェース情報保持部が保持する前記アドレス情報に基づいて特定するハードウェア特定部と、
をさらに備えることを特徴とする請求項1又は2に記載の通信制御装置。
The hardware communication device control unit includes a plurality of hardware communication devices that transmit to an external network,
A plurality of hardware interface information holding units for each hardware communication device that holds address information that is permitted to be transmitted in the external network by the hardware communication device;
Hardware that identifies the hardware communication device that performs transmission based on the address information held by the hardware interface information holding unit when the protocol judging unit determines to perform transmission using a predetermined protocol A specific part,
The communication control device according to claim 1, further comprising:
前記通信デバイス制御部は、外部のネットワークに対して送信を行う通信デバイスを複数備え、
ネットワークデバイスで前記外部のネットワークで送信が許可されているアドレス情報を保持する、前記ネットワークデバイス毎に複数個存在するインターフェース情報保持部と、
前記プロトコル処理部でプロトコル処理が行われた後、前記送信データの送信に用いる前記ハードウェア通信デバイス又は前記通信デバイスを、前記インターフェース情報保持部及び前記ハードウェアインターフェース情報保持部が保持する前記アドレス情報に基づいて特定する特定部と、
をさらに備えることを特徴とする請求項3に記載の通信制御装置。
The communication device control unit includes a plurality of communication devices that transmit to an external network,
A plurality of interface information holding units for each network device that hold address information that is permitted to be transmitted in the external network by the network device;
The address information that the interface information holding unit and the hardware interface information holding unit hold the hardware communication device or the communication device used for transmission of the transmission data after the protocol processing is performed by the protocol processing unit. A specific part to be identified based on
The communication control apparatus according to claim 3, further comprising:
前記インターフェース情報保持部を指し示すポインタ情報と、及び前記ハードウェアインターフェース情報保持部を指し示すポインタ情報と、を記憶するインターフェース管理記憶部と、をさらに備え、
前記特定部は、インターフェース管理記憶部に記憶された前記ポインタ情報が指し示す前記インターフェース情報保持部及び前記ハードウェアインターフェース情報保持部が保持する前記アドレス情報に基づいて特定すること、
を特徴とする請求項4に記載の通信制御装置。
An interface management storage unit that stores pointer information that points to the interface information holding unit and pointer information that points to the hardware interface information holding unit;
The specifying unit is specified based on the address information held by the interface information holding unit and the hardware interface information holding unit indicated by the pointer information stored in the interface management storage unit;
The communication control device according to claim 4.
前記所定のプロトコルが、TCP、UDP、IP及びICMPのうちいずれか一つ以上であることを特徴とする請求項1乃至5のいずれか一つに記載の通信制御装置。   6. The communication control apparatus according to claim 1, wherein the predetermined protocol is any one or more of TCP, UDP, IP, and ICMP. 外部のネットワークから受信データを受信する制御を行うと共に、受信した前記受信データを所定のプロトコルで解析処理可能か否か判断し、解析可能と判断した場合に前記所定のプロトコルによる解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡す、ハードウェア結線された回路であるハードウェア通信デバイス制御部と、
前記ハードウェア通信デバイス制御部で前記所定のプロトコルで解析処理可能ではないと判断した場合に前記受信データを取得するハードウェア通信インターフェース部と、
前記ハードウェア通信インターフェース部が取得した前記受信データに対してプロトコル解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡す、ソフトウェアで実現可能なプロトコル処理部と、
を備えることを特徴とする通信制御装置。
Performs control to receive data received from an external network, determines whether the received data can be analyzed by a predetermined protocol, and if it is determined that analysis is possible, performs analysis processing by the predetermined protocol, socket A hardware communication device controller that is a hardware-connected circuit that delivers the received data after the protocol analysis processing to
A hardware communication interface unit that acquires the received data when it is determined by the hardware communication device control unit that analysis processing is not possible with the predetermined protocol;
A protocol processing unit that can be implemented by software, performs protocol analysis processing on the received data acquired by the hardware communication interface unit, and passes the received data after protocol analysis processing to a socket;
A communication control apparatus comprising:
ネットワークプログラム毎に割り当てられるソケットからの送信データの送信要求が、ハードウェア結線された回路であるハードウェア送信デバイス制御部でプロトコル処理可能な所定のプロトコルを用いた送信であるか否かを判断するプロトコル判断ステップと、
前記所定のプロトコルを用いた送信であると判断された場合に、前記ソケットから送信要求された前記送信データを、前記ハードウェア送信デバイス制御部に対して受け渡すハードウェアデバイス受渡ステップと、
前記ハードウェア通信デバイス制御部が、送信データに対して、前記所定のプロトコルで送信するためのプロトコル処理を行うと共に、当該送信データを前記所定のプロトコルで送信を行うハードウェア通信デバイス制御ステップと、
前記プロトコル判断ステップにより前記所定のプロトコル以外と判断された場合に、前記ソケットから送信要求された前記送信データを、プロトコル処理部に対して受け渡すプロトコル受渡ステップと、
前記プロトコル処理部が、前記送信データに対して、前記ソケットからの要求に従ったプロトコル処理を行うプロトコル処理ステップと、
前記プロトコル処理が行われた前記送信データを送信する通信デバイス制御ステップと、
を有することを特徴とする通信制御方法。
It is determined whether or not the transmission data transmission request from the socket allocated for each network program is transmission using a predetermined protocol that can be protocol-processed by the hardware transmission device control unit, which is a hardware-connected circuit. A protocol decision step;
A hardware device delivery step of delivering the transmission data requested to be transmitted from the socket to the hardware transmission device control unit when it is determined that the transmission is performed using the predetermined protocol;
The hardware communication device control unit performs a protocol process for transmitting the transmission data with the predetermined protocol and a hardware communication device control step for transmitting the transmission data with the predetermined protocol;
A protocol delivery step of delivering the transmission data requested to be transmitted from the socket to a protocol processing unit when it is determined by the protocol determination step that the protocol other than the predetermined protocol;
A protocol processing step in which the protocol processing unit performs protocol processing according to a request from the socket for the transmission data;
A communication device control step of transmitting the transmission data subjected to the protocol processing;
A communication control method characterized by comprising:
前記プロトコル処理ステップは、前記プロトコル処理ステップで前記送信データに対して前記ソケットからの要求に従ったプロトコル処理を行った後、当該送信データの送信先が前記ハードウェア送信デバイス制御部であるか否か判断し、前記ハードウェア送信デバイス制御部と判断した場合に、前記ハードウェア送信デバイス制御部に前記送信データを受け渡すこと、
を特徴とする請求項8に記載の通信制御方法。
In the protocol processing step, after the protocol processing according to the request from the socket is performed on the transmission data in the protocol processing step, whether or not the transmission destination of the transmission data is the hardware transmission device control unit Determining that when the hardware transmission device control unit determines, the transmission data is transferred to the hardware transmission device control unit,
The communication control method according to claim 8.
前記ハードウェア通信デバイス制御ステップは、外部のネットワークに対して送信を行う複数のハードウェア通信デバイスから、前記送信データを送信し、
前記ハードウェア通信デバイス毎に複数個存在するハードウェアインターフェース情報保持部が、前記ハードウェア通信デバイスで前記外部のネットワークで送信が許可されているアドレス情報を保持するハードウェアインターフェース情報保持ステップと、
前記プロトコル判断ステップで所定のプロトコルを用いて送信を行うと判断した場合に、送信を行う前記ハードウェア通信デバイスを、前記ハードウェアインターフェース情報保持部が保持する前記アドレス情報に基づいて特定するハードウェア特定ステップと、
をさらに有することを特徴とする請求項8又は9に記載の通信制御方法。
The hardware communication device control step transmits the transmission data from a plurality of hardware communication devices that perform transmission to an external network,
A hardware interface information holding step in which a plurality of hardware interface information holding units exist for each hardware communication device holds address information that is permitted to be transmitted on the external network by the hardware communication device; and
Hardware that identifies the hardware communication device that performs transmission based on the address information held by the hardware interface information holding unit when it is determined that transmission is performed using a predetermined protocol in the protocol determining step Specific steps,
The communication control method according to claim 8 or 9, further comprising:
前記通信デバイス制御ステップは、外部のネットワークに対して送信を行う複数の通信デバイスから、前記送信データを送信し、
前記ネットワークデバイス毎に複数個存在するインターフェース情報保持部が、前記ネットワークデバイスで前記外部のネットワークで送信が許可されているアドレス情報を保持するインターフェース情報保持ステップと、
前記プロトコル処理ステップでプロトコル処理が行われた後、前記送信データの送信に用いる前記ハードウェア通信デバイス又は前記通信デバイスを、前記インターフェース情報保持部及び前記ハードウェアインターフェース情報保持部が保持する前記アドレス情報に基づいて特定する特定ステップと、
をさらに有することを特徴とする請求項10に記載の通信制御方法。
The communication device control step transmits the transmission data from a plurality of communication devices that perform transmission to an external network,
A plurality of interface information holding units that exist for each network device, an interface information holding step of holding address information that is permitted to be transmitted on the external network in the network device;
The address information that the interface information holding unit and the hardware interface information holding unit hold the hardware communication device or the communication device used for transmission of the transmission data after the protocol processing is performed in the protocol processing step. Specific steps to identify based on,
The communication control method according to claim 10, further comprising:
前記インターフェース情報保持部を指し示すポインタ情報と、及び前記ハードウェアインターフェース情報保持部を指し示すポインタ情報と、をインターフェース管理記憶部に記憶するインターフェース管理記憶ステップと、をさらに有し、
前記特定ステップは、インターフェース管理記憶部に記憶された前記ポインタ情報が指し示す前記インターフェース情報保持部及び前記ハードウェアインターフェース情報保持部が保持する前記アドレス情報に基づいて特定すること、
を特徴とする請求項11に記載の通信制御方法。
An interface management storage step of storing in the interface management storage unit pointer information indicating the interface information storage unit and pointer information indicating the hardware interface information storage unit;
The specifying step is based on the address information held by the interface information holding unit and the hardware interface information holding unit indicated by the pointer information stored in the interface management storage unit;
The communication control method according to claim 11.
前記所定のプロトコルが、TCP、UDP、IP及びICMPのうちいずれか一つ以上であることを特徴とする請求項8乃至12のいずれか一つに記載の通信制御方法。   The communication control method according to any one of claims 8 to 12, wherein the predetermined protocol is any one or more of TCP, UDP, IP, and ICMP. ハードウェア結線された回路であるハードウェア通信デバイス制御部が、外部のネットワークから受信データを受信する制御を行うと共に、受信した前記受信データを所定のプロトコルで解析処理可能か否か判断し、解析可能と判断した場合に前記所定のプロトコルによる解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すハードウェア通信デバイス制御ステップと、
前記ハードウェア通信デバイス制御ステップで前記所定のプロトコルで解析処理可能ではないと判断した場合に前記受信データを取得するハードウェア通信インターフェースステップと、
前記ハードウェア通信インターフェースステップにより取得された前記受信データに対してプロトコル解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すプロトコル処理ステップと、
を備えることを特徴とする通信制御方法。
A hardware communication device control unit, which is a hardware-connected circuit, performs control to receive received data from an external network, and determines whether the received data can be analyzed by a predetermined protocol. A hardware communication device control step of performing analysis processing according to the predetermined protocol when it is determined to be possible, and passing the received data after the protocol analysis processing to the socket;
A hardware communication interface step of acquiring the received data when it is determined in the hardware communication device control step that analysis processing is not possible with the predetermined protocol;
A protocol processing step for performing a protocol analysis process on the received data acquired by the hardware communication interface step, and passing the received data after the protocol analysis process to a socket;
A communication control method comprising:
ネットワークプログラム毎に割り当てられるソケットからの送信データの送信要求が、ハードウェア結線された回路であるハードウェア送信デバイス制御部でプロトコル処理可能な所定のプロトコルを用いた送信であるか否かを判断するプロトコル判断ステップと、
前記所定のプロトコルを用いた送信であると判断された場合に、前記ソケットから送信要求された前記送信データを、前記ハードウェア送信デバイス制御部に対して受け渡すハードウェアデバイス受渡ステップと、
前記ハードウェア通信デバイス制御部が、送信データに対して、前記所定のプロトコルで送信するためのプロトコル処理を行うと共に、当該送信データを前記所定のプロトコルで送信を行うハードウェア通信デバイス制御ステップと、
前記プロトコル判断ステップにより前記所定のプロトコル以外と判断された場合に、前記ソケットから送信要求された前記送信データを、プロトコル処理部に対して受け渡すプロトコル受渡ステップと、
前記プロトコル処理部が、前記送信データに対して、前記ソケットからの要求に従ったプロトコル処理を行うプロトコル処理ステップと、
前記プロトコル処理が行われた前記送信データを送信する通信デバイス制御ステップと、
をコンピュータに実行させる通信制御プログラム。
It is determined whether or not the transmission data transmission request from the socket allocated for each network program is transmission using a predetermined protocol that can be protocol-processed by the hardware transmission device control unit, which is a hardware-connected circuit. A protocol decision step;
A hardware device delivery step of delivering the transmission data requested to be transmitted from the socket to the hardware transmission device control unit when it is determined that the transmission is performed using the predetermined protocol;
The hardware communication device control unit performs a protocol process for transmitting the transmission data with the predetermined protocol and a hardware communication device control step for transmitting the transmission data with the predetermined protocol;
A protocol delivery step of delivering the transmission data requested to be transmitted from the socket to a protocol processing unit when it is determined by the protocol determination step that the protocol other than the predetermined protocol;
A protocol processing step in which the protocol processing unit performs protocol processing according to a request from the socket for the transmission data;
A communication device control step of transmitting the transmission data subjected to the protocol processing;
Communication control program for causing a computer to execute.
ハードウェア結線された回路であるハードウェア通信デバイス制御部が、外部のネットワークから受信データを受信する制御を行うと共に、受信した前記受信データを所定のプロトコルで解析処理可能か否か判断し、解析可能と判断した場合に前記所定のプロトコルによる解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すハードウェア通信デバイス制御ステップと、
前記ハードウェア通信デバイス制御ステップで前記所定のプロトコルで解析処理可能ではないと判断した場合に前記受信データを取得するハードウェア通信インターフェースステップと、
前記ハードウェア通信インターフェースステップにより取得された前記受信データに対してプロトコル解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すプロトコル処理ステップと、
をコンピュータに実行させる通信制御プログラム。
A hardware communication device control unit, which is a hardware-connected circuit, performs control to receive received data from an external network, and determines whether the received data can be analyzed by a predetermined protocol. A hardware communication device control step of performing analysis processing according to the predetermined protocol when it is determined to be possible, and passing the received data after the protocol analysis processing to the socket;
A hardware communication interface step of acquiring the received data when it is determined in the hardware communication device control step that analysis processing is not possible with the predetermined protocol;
A protocol processing step for performing a protocol analysis process on the received data acquired by the hardware communication interface step, and passing the received data after the protocol analysis process to a socket;
Communication control program for causing a computer to execute.
JP2007217547A 2007-08-23 2007-08-23 Communication control device, communication control method and communication control program Pending JP2009053770A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007217547A JP2009053770A (en) 2007-08-23 2007-08-23 Communication control device, communication control method and communication control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007217547A JP2009053770A (en) 2007-08-23 2007-08-23 Communication control device, communication control method and communication control program

Publications (1)

Publication Number Publication Date
JP2009053770A true JP2009053770A (en) 2009-03-12

Family

ID=40504829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007217547A Pending JP2009053770A (en) 2007-08-23 2007-08-23 Communication control device, communication control method and communication control program

Country Status (1)

Country Link
JP (1) JP2009053770A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011186797A (en) * 2010-03-09 2011-09-22 Toshiba Corp Data communication apparatus and method
JP2015210793A (en) * 2014-04-30 2015-11-24 株式会社東芝 Processor, communication device, communication system, communication method and computer program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011186797A (en) * 2010-03-09 2011-09-22 Toshiba Corp Data communication apparatus and method
US9130957B2 (en) 2010-03-09 2015-09-08 Kabushiki Kaisha Toshiba Data communication apparatus and method
JP2015210793A (en) * 2014-04-30 2015-11-24 株式会社東芝 Processor, communication device, communication system, communication method and computer program

Similar Documents

Publication Publication Date Title
JP6859795B2 (en) Relay communication method, relay communication program, and relay communication device
US8898336B2 (en) Content conversion system and content conversion server
JP4503225B2 (en) Virtual network with adaptive dispatcher
CN112738284B (en) Data transmission method, device, equipment and storage medium in service integration
KR20150013860A (en) Clientless cloud computing
US20070189486A1 (en) Communication apparatus, system, method and computer readable medium
JP2007219608A (en) Load balancing processing program and load balancing device
KR20090090145A (en) Remote user interface proxy apparatus and method for processing user interface components thereat
JP2007334886A (en) Routing system and method for document processing job
JP2006024197A (en) Service provision system, service provision method and its program
WO2022170948A1 (en) Method for implementing communication continuity and related device
US20180227347A1 (en) Virtualizing audio and video devices using synchronous a/v streaming
WO2018107433A1 (en) Information processing method and device
US20090157896A1 (en) Tcp offload engine apparatus and method for system call processing for static file transmission
JP2009053770A (en) Communication control device, communication control method and communication control program
US10742776B1 (en) Accelerating isochronous endpoints of redirected USB devices
JP2001345854A (en) Method, system and device for communicating packet between networks
JP2008165653A (en) Information processor, proxy answer device, image forming device, state acquisition method, storage medium and program
JP2009055134A (en) Communication control unit, communication control method, and communication control program
US20140281033A1 (en) Information processing apparatus, relay method, and computer-readable storage medium
KR100835528B1 (en) Multimedia Contents Streaming Method Using Section Information and Streaming Apparatus Thereof
JP4882738B2 (en) Client device, communication method, and program
JP2009055133A (en) Communication control unit, communication control method, and communication control program
JP2005122358A (en) Web content delivery system, web content delivery program, and proxy server
JP5060775B2 (en) Method and apparatus for transmitting / receiving content on distributed storage system