JP2009053770A - Communication control device, communication control method and communication control program - Google Patents
Communication control device, communication control method and communication control program Download PDFInfo
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
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.
しかしながら、現在の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
そして、ROM102又はHDD104に格納されたプログラムが、RAM103上にロードされる。そして、CPU101がロードされたプログラムを用いて処理を行うことになる。
Then, the program stored in the
このCPU101は、当該プログラムを用いて、シリアル回線I/F106、無線LAN_I/F107及びUSB_I/F108を使用した通信制御を行う。
The
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
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
また、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
図2は情報処理装置100のネットワークをレイヤー構造で示した図である。図2に示すように、情報処理装置100は、ユーザアプリケーション層201、ソケット層202、ラッパー層203と、プロトコル層204と、インターフェース層205と、ネットワークデバイス層206と、TOEインターフェース層207と、TOE208とを備えている。
FIG. 2 is a diagram showing the network of the
情報処理装置100では、ソケット層202、プロトコル層204、インターフェース層205について、従来から使用されているものをほぼ流用可能とする。これにより、広範に普及しているOSのカーネルに実装されたネットワーク処理を可能とする。そして、情報処理装置100では、新規にラッパー層203及びTOEインターフェース層207を追加することで、従来のソフトウェアによるネットワーク処理と、TOE208によるハードウェアオフロードとの共存を可能としている。
In the
ユーザアプリケーション層201は、利用者が使用可能なネットワークプログラム211a〜cを備える。そして、各ネットワークプログラム211a〜cは、通信を行う際に後述するソケット層202に対して、通信処理を要求する。
The
ソケット層202は、ネットワーク接続に関する情報をまとめたディスクリプタ(記述子)であるソケット212a〜cを保持する層である。ソケット層202はユーザアプリケーション層201のネットワークプログラム211a〜cに対し、プロトコル層204へのインターフェースを隠蔽し、ネットワーク接続のサービスのエンドポイントを提供する。
The
ソケット212a〜cは、ユーザアプリケーション層201のネットワークプログラム211a〜c毎に一つ以上作成される。また、ソケットは作成される際、通信に用いるプロトコルが設定される。このようにして、ソケット212a〜cは、上述したネットワークプログラム211a〜cとの関連付けと、送受信の対象となるアドレス、送受信に用いるプロトコル情報、送受信するデータに関する情報、送受信に用いるルーティング情報を保持する。そして、ソケット212a〜cは、ネットワークから所定のIPアドレスへの送信する指示や、所定のIPアドレスからの受信待ちする指示を受け付けた場合に、後述するラッパー層203に、当該指示を送信する。そして、送信先のラッパー層203からは、各ソケット212a〜cが保持しているプロトコル情報又はIPアドレス等を参照可能とする。
One or
なお、このソケット層202で使用されるソケットAPIはネットワークプログラミングのデファクトスタンダードとなっており、OSを問わず使用可能である。
The socket API used in the
ラッパー層203は、プロトコル判断部221と、送信側TOEオブジェクト特定部222と、プロトコル層受渡部234と、TOE受渡部235と、を備えると共に、ソケット層202に対して既存のI/Fを保持している。また、ラッパー層203は、ソケット層202からデータの送信要求が行われた場合に、当該データの送信に使用するプロトコルに応じて、プロトコル層204にプロトコル処理を要求するか、TOE208にプロトコル処理を要求するか切り替えを行う。
The
プロトコル判断部221は、ソケット212a〜cから送信要求が行われた場合、当該ソケット212a〜cが保持するプロトコル情報から、TOE208でプロトコル処理可能か否か判断する。
When a transmission request is made from the
プロトコル層受渡部234は、プロトコル判断部221がTOE208でプロトコル処理可能ではないと判断した場合、プロトコル層204に送信対象であるデータを受け渡すと共に、当該データのプロトコル処理を要求する。
When the
一方、プロトコル判断部221で、TOE208でプロトコル処理可能であると判断した場合、さらに送信側TOEオブジェクト特定部222が、TOEインターフェース管理テーブル229を使用してTOEインターフェースオブジェクト231が保持する情報を順に参照して、TOE208内のネットワークデバイス233a〜bでデータの送信が可能か否か判断する。なお、詳細な処理については後述する。
On the other hand, when the
TOE受渡部235は、送信側TOEオブジェクト特定部222がTOE208内のネットワークデバイス233a〜bでデータの送信が可能と判断した場合、TOE受渡部235に送信対象であるデータを受け渡すと共に、当該データのプロトコル処理を要求する。
When the transmission-side TOE
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
プロトコル層204は、プロトコル解析処理部223と、プロトコル別受信バッファ224と、オブジェクト特定部225とを備え、上位に存在するソケット層202とのデータの送受信制御、下位に存在するインターフェース層205とのデータの送受信制御を行う。また、プロトコル層204により、ソケット層202及びインターフェース層207は完全に分離され、互いに意識することなく処理を行うことができる。
The
プロトコル別受信バッファ224は、インターフェース層205又はTOEインターフェース層207から受信した受信データを、プロトコル別に一時的に記憶する。
The protocol-
プロトコル解析処理部223は、通信データを送信するためのプロトコル処理を行う。プロトコル処理とは、任意のプロトコルで通信データを送信するために、当該通信データから、当該プロトコルのフォーマットのよるパケットを生成する等の処理をいう。
The protocol
また、プロトコル解析処理部223は、受信したデータに対してプロトコル解析処理を行う。このプロトコル解析処理とは、プロトコル別受信バッファ224に記憶されたデータ(パケット)を読み出して、当該プロトコルのフォーマットによるパケットから、格納されていたデータを取得する等の処理をいう。
Further, the protocol
また、プロトコル解析処理部223においてプロトコル処理又はプロトコル解析の可能なプロトコルとしては、どのようなプロトコルであっても良く、例えば現在NetBSDでサポートされているあらゆるプロトコル等でも良い。
In addition, the protocol
オブジェクト特定部225は、プロトコル処理を行った後のデータを引き渡すインターフェースオブジェクト227又はTOEインターフェースオブジェクト231を特定する。オブジェクト特定部225は、インターフェース管理テーブル226を参照して、各インターフェースオブジェクト227又はTOEインターフェースオブジェクト231にアクセスして、送信制御が可能なインターフェースオブジェクト227又はTOEインターフェースオブジェクト231を特定する。
The
また、インターフェース管理テーブル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
そして、プロトコル層204から、オブジェクト特定部225により特定されたインターフェースオブジェクト227又はTOEインターフェースオブジェクト231の、(TOE)ネットワークデバイスにデータを引き渡すためのインターフェースが呼び出される。これにより、データを(TOE)ネットワークデバイスに引き渡すことができる。なお、インターフェースオブジェクト227及びTOEインターフェースオブジェクト231の引き渡すためのインターフェースは共通として、デバイスの差異は隠蔽されているものとする。
Then, an interface for transferring data to the (TOE) network device of the
インターフェース層205は、下位のネットワークデバイス層206と、プロトコル層204との間に存在する層である。インターフェース層205は、ネットワークデバイス層206が備えているハードウェアを抽象化することで、具体的なハードウェアを隠蔽し、ハードウェア毎にAPIを提供する。
The
また、インターフェース層205は、インターフェースオブジェクト227を備えている。当該インターフェースオブジェクト227は、物理的なネットワークデバイス毎に1対1に割り当てられているメモリオブジェクトである。また、インターフェースオブジェクト227は、当該ネットワークデバイスのハードウェア情報、アクセス先のアドレス情報及び当該ネットワークデバイスにアクセスするためのインターフェースを備えている。これにより、当該インターフェースオブジェクト227を操作することで、割り当てられたネットワークデバイスを制御することができる。
The
また、プロトコル層204とインターフェース層205との間には、インターフェース管理テーブル226が備えられている。このインターフェース管理テーブル226には、インターフェースオブジェクト227及び後述するTOEインターフェースオブジェクト231を特定するための情報(オブジェクトのポインタ)が格納されている。なお、本実施の形態では、この各オブジェクトを特定するための情報としてポインタを利用したが、ハッシュなど他の情報を用いても良い。このインターフェース管理テーブル226は、プロトコル層204及びインターフェース層205から参照可能とする。
An interface management table 226 is provided between the
図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
ネットワークデバイス層206は、第1ネットワークデバイス228a、第2ネットワークデバイス228b、第3ネットワークデバイス228cを備え、外部のネットワークと送受信する。受信したデータは、インターフェース層205のインターフェースオブジェクト227に受け渡される。
The
TOE208は、プロトコル解析回路232と、第1TOEネットワークデバイス233aと、第2TOEネットワークデバイス233bとを備え、ハードウェアにより結線した回路で、所定のプロトコルによるプロトコル処理及びプロトコル解析処理と、外部ネットワークとの間の通信制御と、を行う。これにより、TOE208は、特に処理データ量、スピードが増加傾向にある所定のプロトコル(例えばTCP/IP)のハードウェアオフロードを行うことができる。
The
プロトコル解析回路232は、ラッパー層203から入力された通信データを送信するため、所定のプロトコルによるプロトコル処理を行う。また、プロトコル解析回路232は、第1TOEネットワークデバイス233a又は第2TOEネットワークデバイス233bが通信データを受信した場合、所定のプロトコルによるプロトコル解析処理を行う。また、プロトコル解析回路232においてプロトコル処理及びプロトコル解析処理が可能なプロトコルは、TCP、UDP、IP及びICMPとする。
The
また、プロトコル解析回路232は、受信したデータのプロトコルがTCP、UDP、IP及びICMP以外と判断した場合、受信したデータと共に、TOEインターフェース層207にプロトコル解析処理を要求する。
When the
第1TOEネットワークデバイス233a及び第2TOEネットワークデバイス233bは、ハードウェアにより結線され、外部のネットワークと送受信を行うためのデバイスとする。
The first
TOEインターフェース層207は、受信側TOEオブジェクト特定部230と、TOEインターフェースオブジェクト231とを備え、TOE208を他の構成と接続するためのインターフェースとなる。
The
受信側TOEオブジェクト特定部230は、TOE208でプロトコル解析処理できなかったデータを処理するTOEインターフェースオブジェクト231を特定する。受信側TOEオブジェクト特定部230は、TOEインターフェース管理テーブル229を参照して、各TOEインターフェースオブジェクト231にアクセスして、当該受信したネットワークデバイスに対応するTOEインターフェースオブジェクト231を特定する。
The receiving-side TOE
TOEインターフェースオブジェクト231は、TOE208が備えるネットワークデバイス毎に1対1に対応付けられている。そして、当該TOEインターフェースオブジェクト231は、インターフェースオブジェクト227と同様の情報を保持すると共に、対応付けられたネットワークデバイスを制御することができる。さらに、TOEインターフェースオブジェクト231は、TOE208でプロトコル解析処理が失敗した場合に、プロトコル層204でプロトコル解析処理を行うためのインターフェースとなる。
The
図4は、インターフェースクラス401とTOEインターフェースクラス402のクラス構造を示した図である。図4に示すように、インターフェースクラス401は、属性としてアドレス情報と、ハードウェア情報と、を備えている。このアドレス情報には、対応付けられたネットワークデバイスで送受信を行うIPアドレスを格納する。また、ハードウェア情報には、割り当てられたネットワークデバイスに関する情報を格納する。また、これら属性は、図4の属性の左側に「+」記号が付されていることから把握できるように、外部に対して公開されている。また、他の操作も「+」記号が付されている場合は同様に外部に対して公開されている。
FIG. 4 is a diagram showing the class structure of the
また、インターフェースクラス401は、操作としてハードウェア、ドライバに対するアクセス制御()とプロトコル層から送信データを、ネットワークデバイスへの引き渡し制御()とを備えている。これら操作により、ネットワークデバイスを使用することができる。
The
また、TOEインターフェースクラス402は、インターフェースクラスを継承すると共に、操作としてプロトコル解析処理への入力・出力インターフェース()を備えている。当該操作を使用することで、TOE208が受信したデータを、プロトコル層204に対して出力することができる。
The
これらインターフェースクラス及びTOEインターフェースクラスを実体化することで、インターフェースオブジェクト227及びTOEインターフェースオブジェクト231が生成され、上述した属性、操作を使用することができる。
By instantiating these interface class and TOE interface class, an
本実施の形態にかかる情報処理装置100においては、第1TOEネットワークデバイス233a及び第2TOEネットワークデバイス233bが起動時に自動的に検出された際に、対応するTOEインターフェースオブジェクト231が生成される。また、インターフェースオブジェクト227も同様に、起動時の自動検出に伴い生成される。
In the
そして、生成されたTOEインターフェースオブジェクト231のポインタは、インターフェース管理テーブル226及びTOEインターフェース管理テーブル229に登録され、インターフェースオブジェクト227のポインタはインターフェース管理テーブル226に登録される。
The generated pointer of the
これにより、TOEインターフェース管理テーブル229に格納されたポインタから、TOEインターフェースオブジェクト231にアクセスすることで、TOE208が備えるTOEネットワークデバイス233a〜bの情報を参照することができる。
Accordingly, by accessing the
また、インターフェース管理テーブル226に格納されたポインタから、TOEインターフェースオブジェクト231にアクセスすることで、TOE208が備えるTOEネットワークデバイス233a〜bの情報を参照することができる。同様に、インターフェース管理テーブル226に格納されたポインタから、インターフェースオブジェクト227にアクセスすることで、ネットワークデバイス層206が備えるネットワークデバイス228a〜cの情報を参照することができる。
Further, by accessing the
図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
このような構成を備えることで、情報処理装置100では、最上位層にユーザアプリケーション層201のネットワークプログラム211a〜cから、ソケット層202を経由した後、ラッパー層203を介して、プロトコル層204及びTOE208にアクセスできるので、プロトコル処理を切り替えることができる。
With such a configuration, in the
次に、以上のように構成された本実施の形態にかかるTOEインターフェース層207におけるTOEインターフェースオブジェクト231のアドレス情報の登録手順について説明する。図6は、本実施の形態にかかるTOEインターフェース層207における上述した処理の手順を示すフローチャートである。
Next, the registration procedure of the address information of the
まず、TOEインターフェース層207は、外部からの要求に応じて、TOEネットワークデバイスにIPアドレスの割り当てを受け付ける(ステップS601)。なお、外部とは、ラッパー層203を介して接続されるソケット212a〜cや、TOE208等とする。
First, the
そして、TOEインターフェース層207は、TOEインターフェース管理テーブル229にまだ確認していない、TOEインターフェースオブジェクト231を指し示すポインタがあるか否か判断する(ステップS602)。ないと判断した場合(ステップS602:No)、該当するTOEネットワークデバイスが存在しないものとして処理を終了する。
Then, the
次に、TOEインターフェース層207は、ポインタがあると判断した場合(ステップS602:Yes)、ポインタが指し示すTOEインターフェースオブジェクト231のハードウェア情報を参照して、当該TOEインターフェースオブジェクト231が、割当先のネットワークデバイスか否か判断する(ステップS603)。割当先のネットワークデバイスではないと判断した場合(ステップS603:No)、再びステップS602から処理を開始する。
Next, when the
また、TOEインターフェース層207が、TOEインターフェースオブジェクト231が、割当先のネットワークデバイスと判断した場合(ステップS603:Yes)、当該TOEインターフェースオブジェクト231のアドレス情報に、IPアドレスの追加設定を行う(ステップS604)。これにより、IPアドレスが適切に割り当てられたことになる。
If the
次に、以上のように構成された本実施の形態にかかるTOEインターフェース層207におけるTOEインターフェースオブジェクト231のアドレス情報の開放手順について説明する。図7は、本実施の形態にかかるTOEインターフェース層207における上述した処理の手順を示すフローチャートである。
Next, a procedure for releasing the address information of the
まず、TOEインターフェース層207は、外部からの要求に応じて、TOEネットワークデバイスにIPアドレスの開放を受け付ける(ステップS701)。
First, the
そして、TOEインターフェース層207は、TOEインターフェース管理テーブル229にまだ確認していないTOEインターフェースオブジェクト231を指し示すポインタがあるか否か判断する(ステップS702)。ないと判断した場合(ステップS702:No)、該当するTOEネットワークデバイスが存在しないものとして処理を終了する。
Then, the
次に、TOEインターフェース層207は、ポインタがあると判断した場合(ステップS702:Yes)、ポインタが指し示すTOEインターフェースオブジェクト231のハードウェア情報を参照して、当該TOEインターフェースオブジェクト231が、アドレス開放先のネットワークデバイスか否か判断する(ステップS703)。開放先のネットワークデバイスではないと判断した場合(ステップS703:No)、再びステップS702から処理を開始する。
Next, when the
また、TOEインターフェース層207が、TOEインターフェースオブジェクト231は、開放先のネットワークデバイスと判断した場合(ステップS703:Yes)、当該TOEインターフェースオブジェクト231のアドレス情報から、該当するIPアドレスを削除する(ステップS704)。これにより、IPアドレスが適切に削除されたことになる。
When the
なお、インターフェースオブジェクト227に対するIPアドレスの割り当て及び開放は従来通りとして説明を省略する。
Note that the assignment and release of the IP address to the
次に、本実施の形態にかかる情報処理装置100における送信処理について説明する。図8は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。
Next, transmission processing in the
まず、ネットワークプログラム211a〜cが、ソケット212a〜cに対して、送信するデータを出力する(ステップS801)。次に。ソケット212a〜cが、送信するデータを、ラッパー層203に出力する(ステップS802)。
First, the
そして、ラッパー層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
次に、TOE受渡部235は、TOE208に対して送信するデータを受け渡すと共に、特定されたTOEネットワークデバイスから、入力されたIPアドレスにデータを送信するようTOE208に対して指示する(ステップS805)。なお、ステップS803〜S805で示したラッパー層203の処理の詳細については後述する。
Next, the
そして、TOE208のプロトコル解析回路232は、入力されたデータを、所定のプロトコルで送信するためのプロトコル処理を行う(ステップS806)。その後、ステップS804で特定されたTOEネットワークデバイス(例えば第1TOEネットワークデバイス233a)は、プロトコル処理された後のデータを、指示されたIPアドレスに送信する(ステップS807)。
Then, the
一方、ラッパー層203のプロトコル判断部221は、入力されたデータに使用するプロトコルがTOEで処理可能なプロトコル(TCP/UDP/ICMP/IP)ではないと判断した場合(ステップS803:No)、プロトコル層受渡部234が、プロトコル層204に対して、送信するデータを受け渡すと共に、当該データのプロトコル処理を要求する(ステップS808)。
On the other hand, if the
そして、プロトコル層204のプロトコル解析処理部223が、入力されたプロトコル情報に従って、入力されたデータに対してプロトコル処理を行う(ステップS809)。
Then, the protocol
その後、プロトコル層204のオブジェクト特定部225が、インターフェース管理テーブル226、インターフェースオブジェクト227及びTOEインターフェースオブジェクト231を参照して、送信処理を行うネットワークデバイス228a〜c又はTOEネットワークデバイス233a〜bを特定する(ステップS810)。そして、プロトコル層204は、特定されたネットワークデバイスに対応するインターフェースオブジェクト227又はTOEインターフェースオブジェクト231の操作を呼び出して、送信処理を指示する(ステップS811)。
Thereafter, the
そして、送信指示されたインターフェースオブジェクト227又はTOEインターフェースオブジェクト231からの操作により、ネットワークデバイス228a〜c又はTOEネットワークデバイス233a〜bは、プロトコル処理された後のデータを、指示されたIPアドレスに送信する(ステップS812)。
Then, by the operation from the
次に、以上のように構成された本実施の形態にかかるラッパー層203における受信待ち又は送信処理について説明する。図9は、本実施の形態にかかるラッパー層203における上述した処理の手順を示すフローチャートである。なお、受信待ちの処理は、情報処理装置100の起動時に行われるものとする。
Next, the reception waiting or transmission processing in the
まず、ラッパー層203は、ソケット層202のソケット212a〜cから、プロトコル層204へのリクエストを受け付ける(ステップS901)。このリクエストとは、受信待ち又は、データの送信の要求とする。なお、リクエストがデータの送信の場合、当該処理手順は、図8のステップS803及びS804の処理を詳細に説明したものとなる。
First, the
次に、ラッパー層203は、リクエストを行ったソケット212a〜cが保持するアドレス情報から、使用するプロトコルを決定する(ステップS902)。
Next, the
そして、ラッパー層203のプロトコル判断部221は、決定されたプロトコルが、TOE208で処理可能なプロトコル(TCP/UDP/ICMP/IP)であるか否かを判断する(ステップS903)。TOE208で処理可能なプロトコル(TCP/UDP/ICMP/IP)ではないと判断した場合(ステップS903:No)、プロトコル層204に対して、リクエストに応じた受信待ち又は送信指示を行う(ステップS904)。
Then, the
一方、プロトコル判断部221が、TOE208で処理可能なプロトコル(TCP/UDP/ICMP/IP)であると判断した場合(ステップS903:Yes)、送信側TOEオブジェクト特定部222は、TOEインターフェース管理テーブル229のレコード数だけ、ステップS906以降の処理を繰り返す(ステップS905)。なお、繰り返しが行われる度に、ステップS906で利用されるTOEインターフェース管理テーブル229のレコードが変更される。
On the other hand, when the
次に、送信側TOEオブジェクト特定部222は、TOEインターフェース管理テーブル229のレコードのポインタで示されたTOEインターフェースオブジェクト231に登録されたアドレスの数だけ、ステップS907以降の処理を繰り返す(ステップS906)。なお、繰り返しが行われる度に、ステップS907で利用されるTOEインターフェースオブジェクト231に設定されているIPアドレスが変更される。
Next, the transmitting-side TOE
そして、送信側TOEオブジェクト特定部222は、リクエストを行ったソケット212a〜cに設定されているIPアドレスが、ポインタで示されたTOEインターフェースオブジェクト231に設定されているIPアドレスか否か判断する(ステップS907)。
Then, the transmitting-side TOE
次に、送信側TOEオブジェクト特定部222は、リクエストを行ったソケット212a〜cに設定されているIPアドレスが、ポインタで示されたTOEインターフェースオブジェクト231に設定されているIPアドレスではないと判断した場合(ステップS907:No)、再びステップS906から処理を繰り返す(ステップS908)。
Next, the sending-side TOE
そして、ステップ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
ステップS910で、ラッパー層203が受信待ちと判断した場合、TOE208に、受信待ちを指示する(ステップS911)。また、ラッパー層203は、リクエストにデータ受信先のIPアドレスが指定されていれば、当該IPアドレスから受信するよう指示し、リクエストにデータ受信先のIPアドレスが指定されていなければ、全てのIPアドレスから受信するよう指示する。
If the
一方、ステップS910で、ラッパー層203が送信と判断した場合、データ送信先のIPアドレスが、リクエストを出力したソケット212a〜cに設定されたルーティング情報から送信可能か否か判断する(ステップS912)。送信できないと判断した場合(ステップS912:No)、再びステップS906から処理を繰り返す(ステップS908)。
On the other hand, if it is determined in step S910 that the
一方、ラッパー層203が送信可能と判断した場合(ステップS912:Yes)、TOE受渡部235は、TOE208に対して送信するデータを受け渡すと共に、特定されたTOEネットワークデバイス233a〜bから、入力されたIPアドレスにデータを送信するようTOE208に対して指示する(ステップS913)。当該指示により、図8のステップS806以降の処理が行われる。
On the other hand, if the
次に、ネットワークデバイス層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
まずは、ネットワークプログラム211aから送信するデータの出力が行われたものとする(ステップS1001)。この場合、ソケット212aが、送信するデータを、ラッパー層203に出力する(ステップS1002)。この際、ラッパー層203のプロトコル判断部221が、出力元のソケット212a〜cが保持するプロトコル情報に基づいて使用するプロトコルを決定した後、決定されたプロトコルが所定のプロトコル(TCP/UDP/ICMP/IP)と判断したものとする。
First, it is assumed that data transmitted from the
そして、所定のプロトコルと判断された後、ラッパー層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
送信先となる第1TOEネットワークデバイス233aを特定した後、TOE受渡部235が、送信するデータを受け渡すと共に、プロトコル解析回路232にプロトコル処理を指示する(ステップS1006)。
After specifying the first
そして、プロトコル解析回路232でプロトコル処理を終了した後、上述した処理で送信先と判断された第1ネットワークデバイス233aに送信処理を指示する(ステップS1007)。これにより、TOE208からデータの送信が行われる。
After the
図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
まずは、ネットワークプログラム211aから送信するデータの出力が行われたものとする(ステップS1101)。この場合、ソケット212aが、送信するデータを、ラッパー層203に出力する(ステップS1102)。そして、ラッパー層203のプロトコル判断部221が、出力元のソケット212aが保持するプロトコル情報に基づいて使用するプロトコルを決定した後、決定されたプロトコルが所定のプロトコル(TCP/UDP/ICMP/IP)以外と判断したものとする。
First, it is assumed that data transmitted from the
そして、所定のプロトコル以外と判断された後、プロトコル層受渡部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
オブジェクト特定部225は、ポインタで示されたインターフェースオブジェクト227のアドレス情報を参照して、当該オブジェクトに対応するネットワークデバイスが送信先か否か判断する(ステップS1106)。そして、送信先となるネットワークデバイスを特定した後、ネットワークデバイスに対応するインターフェースオブジェクト227に送信処理を指示する。
The
そして、インターフェースオブジェクト227は、対応する第1ネットワークデバイス228aに送信処理を指示する(ステップS1107)。これにより、第1ネットワークデバイス228aからデータの送信が行われる。
Then, the
次に、第1TOEネットワークデバイス233aで送信する場合について説明する。オブジェクト特定部225は、ポインタで示されたTOEインターフェースオブジェクト231のアドレス情報を参照して、当該オブジェクトに対応するTOEネットワークデバイスが送信先か否か判断する(ステップS1108)。そして、送信先となるTOEネットワークデバイスを特定した後、当該TOEネットワークデバイスに対応するTOEインターフェースオブジェクト231に送信処理を指示する。
Next, a case where transmission is performed by the first
そして、TOEインターフェースオブジェクト231は、対応する第1TOEネットワークデバイス233aに送信処理を指示する(ステップS1109)。これにより、第1TOEネットワークデバイス233aからデータの送信が行われる。
Then, the
次に、本実施の形態にかかる情報処理装置100におけるTOE208でデータを受信した場合の処理について説明する。図12は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。
Next, processing when data is received by the
まず、第1TOEネットワークデバイス233aが、データの受信処理を行う(ステップS1201)。
First, the first
次に、プロトコル解析回路232は、受信したデータが解析可能な所定のプロトコル(TCP/UDP/ICMP/IP)であるか否か判断する(ステップS1202)。
Next, the
そして、プロトコル解析回路232が所定のプロトコルであると判断した場合(ステップS1202:Yes)、所定のプロトコルによる解析処理を受信したデータに対して行う(ステップS1203)。
If the
次に、TOE208は、プロトコル解析処理後のデータを、ソケット層202のソケット212a〜cに出力する(ステップS1204)。
Next, the
一方、プロトコル解析回路232が所定のプロトコルではないと判断した場合(ステップS1202:No)、TOE208は、受信したデータをTOEインターフェース層207に出力する(ステップS1205)。
On the other hand, when the
そして、TOEインターフェース層207の受信側TOEオブジェクト特定部230は、TOEインターフェース管理テーブル229に格納されたポインタから、TOEインターフェースオブジェクト231を参照し、当該TOEインターフェースオブジェクト231のハードウェア情報を確認して、受信処理を行ったTOEネットワークデバイス233aに対応するTOEインターフェースオブジェクト231を特定する(ステップS1206)。受信側TOEオブジェクト特定部230は、特定されたTOEインターフェースオブジェクト231に受信したデータを出力する。
Then, the receiving-side TOE
次に、TOEインターフェースオブジェクト231は、入力されたデータを出力すると共に、当該データのプロトコル解析処理をするようプロトコル層204に対して指示する(ステップS1207)。
Next, the
そして、プロトコル層204では、TOEインターフェースオブジェクト231からプロトコル別受信バッファ224に入力されたデータを、指示されたプロトコル別に一時的に格納する(ステップS1208)。
The
そして、プロトコル解析処理部223は、指示に従って、プロトコル別受信バッファ224に格納されていたデータを取り出し、プロトコル解析処理を行う(ステップS1209)。これにより、受信したパケットから使用されるデータを抽出できたことになる。
Then, according to the instruction, the protocol
次に、プロトコル層204は、プロトコル解析処理後のデータを、ソケット212a〜cに出力する(ステップS1210)。
Next, the
そして、ソケット212a〜cは、入力されたデータを、当該ソケット212a〜cと対応付けられたネットワークプログラム211a〜cに出力する(ステップS1211)。
The
上述した処理手順により、TOE208が受信したデータについて、所定のプロトコルの場合はハードウェアオフロードを行うことを可能にすると共に、所定のプロトコル以外のプロトコルについてはプロトコル層204で解析処理を行うことを可能にしている。
With the processing procedure described above, it is possible to perform hardware offload for data received by the
次に、第1TOEネットワークデバイス233aがデータを受信した場合の処理の経路について説明する。図13は、第1TOEネットワークデバイス233aがデータを受信して、所定のプロトコル(TCP/UDP/ICMP/IP)でプロトコル解析処理を行った場合の処理の経路を示した説明図である。
Next, a processing path when the first
まず、第1ネットワークデバイス233aが、データの受信処理した場合、プロトコル解析回路232に解析処理を行うよう指示する(ステップS1301)。
First, when the
そして、プロトコル解析回路232が、解析処理可能と判断して、解析処理を行った後、解析処理後のデータを、ソケット212aに出力する(ステップS1302)。
Then, the
そして、ソケット212aは、入力されたデータを、対応付けられているネットワークプログラム211aに出力する(ステップS1303)。上述する処理を行うことで、ネットワークプログラム211aは、第1TOEネットワークデバイス233aからデータを受信することができる。
Then, the
図14は、第1TOEネットワークデバイス233aがデータを受信して、所定のプロトコル(TCP/UDP/ICMP/IP)以外のプロトコルでプロトコル解析処理を行った場合の処理の経路を示した説明図である。
FIG. 14 is an explanatory diagram showing a processing path when the first
まず、第1ネットワークデバイス233aが、データの受信処理した場合、プロトコル解析回路232に解析処理を行うよう指示する(ステップS1401)。
First, when the
そして、プロトコル解析回路232が、解析処理できないと判断した場合、受信したデータをTOEインターフェース層207に出力する(ステップS1402)。
If the
そして、受信側TOEオブジェクト特定部230は、TOEインターフェース管理テーブル229を参照して、TOEインターフェースオブジェクト231のポインタを取得する(ステップS1403)。そして、受信側TOEオブジェクト特定部230は、取得したポインタが指し示すTOEインターフェースオブジェクト231のハードウェア情報を確認し、データを受信した第1TOEネットワークデバイス233aに対応するTOEインターフェースオブジェクト231を特定する。
Then, the receiving-side TOE
そして、受信側TOEオブジェクト特定部230は、特定されたTOEインターフェースオブジェクト231に受信したデータを出力する(ステップS1404)。
Then, the receiving-side TOE
次に、TOEインターフェースオブジェクト231は、プロトコル層204に対して、入力されたデータを出力すると共に、当該データのプロトコル解析処理をするよう指示する(ステップS1405)。これにより入力されたデータは、プロトコル別にプロトコル別受信バッファ224に格納される。
Next, the
そして、プロトコル解析処理部223は、プロトコル別受信バッファ224に格納されたデータを取得する(ステップS1406)。その後、プロトコル解析処理部223は、取得したデータのプロトコル解析処理を行った後、解析処理したデータを、ソケット212a〜cに出力する(ステップS1407)。
Then, the protocol
そして、ソケット212a〜cは、入力されたデータを、当該ソケット212a〜cと対応付けられたネットワークプログラム211a〜cに出力する(ステップS1408)。上述した処理手順により、TOEでプロトコル解析処理を実行できないデータを受信した場合にでも適切にプロトコル解析処理を行うことができる。
The
図15は、第1ネットワークデバイス228aがデータを受信して、プロトコル解析処理を行った場合の処理の経路を示した説明図である。
FIG. 15 is an explanatory diagram showing a processing path when the
まず、第1ネットワークデバイス228aが、データの受信処理した場合、当該第1ネットワークデバイス228aに対応するインターフェースオブジェクト227に、受信したデータを出力する(ステップS1501)。
First, when the
そして、インターフェースオブジェクト227は、入力されたデータを、プロトコル別にプロトコル別受信バッファ224に格納する(ステップS1502)。
The
そして、プロトコル解析処理部223は、プロトコル別受信バッファ224に格納されたデータを取得する(ステップS1503)。その後、プロトコル解析処理部223は、取得したデータのプロトコル解析処理を行った後、解析処理したデータを、ソケット212a〜cに出力する(ステップS1504)。
Then, the protocol
そして、ソケット212a〜cは、入力されたデータを、当該ソケット212a〜cと対応付けられたネットワークプログラム211a〜cに出力する(ステップS1505)。
Then, the
また、上述した本実施の形態にかかる情報処理装置100は、ネットワークを制御するソフトウェア群がレイヤー構造で制御するOSであればどのようなOSでもよい。適用可能なOSとしては、例えばNetBSD等が存在する。
In addition, the
上述したように、本実施の形態にかかる情報処理装置100では、TOEを備えた場合であっても、既存のソフトウェアプロトコルスタックと共存させることを可能としている。
As described above, the
ところで、従来の情報処理装置では、ソケット層及びインターフェース層は互いに一方から他方を参照できない関係にあったため、ソケット層以下をハードウェア化してオフロード可能にすると共に、当該ハードウェアを経由しないネットワークデバイスを搭載した場合、送信するデータを適切なネットワークデバイスに振り分けることが出来なくなっていた。 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
これにより、本実施の形態にかかる情報処理装置100では、TOEを搭載することでハードウェアオフロードを可能にして、CPU101の処理負担を軽減すると共に、さまざまなプロトコルに対応することが可能になる。
Thereby, in the
また、本実施の形態にかかる情報処理装置100では、TOEに搭載されたTOEネットワークデバイス以外に、さまざまなネットワークデバイスを利用することが可能になる。このようなネットワークデバイスは、本実施の形態のように、シリアル回線I/F106、無線LAN_I/F107及びUSB_I/F108に制限するものではなく、従来から使用される様々なネットワークデバイスを適用しても良い。
In the
本実施形態の情報処理装置100で実行される通信制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
The communication control program executed by the
また、本実施形態の情報処理装置100で実行される通信制御プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の情報処理装置100で実行される通信制御プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
Further, the communication control program executed by the
また、本実施形態の通信制御プログラムを、ROM等に予め組み込んで提供するように構成してもよい。 Further, the communication control program of the present embodiment may be provided by being incorporated in advance in a ROM or the like.
本実施の形態の情報処理装置100で実行される通信制御プログラムは、上述した各部(ユーザアプリケーション層、ソケット層、プロトコル層、インターフェース層、TOEインターフェース層)を含むモジュール構成となっており、実際のハードウェアとしてはCPUが上記記録媒体から通信制御プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、ユーザアプリケーション層、ソケット層、プロトコル層、インターフェース層、TOEインターフェース層が主記憶装置上に生成されるようになっている。
The communication control program executed by the
以上のように、本発明にかかる通信制御装置、通信制御方法及び通信制御プログラムは、通信制御に有用であり、特に、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.
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
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
211a-
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.
前記ハードウェア通信デバイス制御部で前記所定のプロトコルで解析処理可能ではないと判断した場合に前記受信データを取得するハードウェア通信インターフェース部と、
前記ハードウェア通信インターフェース部が取得した前記受信データに対してプロトコル解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡す、ソフトウェアで実現可能なプロトコル処理部と、
を備えることを特徴とする通信制御装置。 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.
前記ハードウェア通信デバイス制御ステップで前記所定のプロトコルで解析処理可能ではないと判断した場合に前記受信データを取得するハードウェア通信インターフェースステップと、
前記ハードウェア通信インターフェースステップにより取得された前記受信データに対してプロトコル解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すプロトコル処理ステップと、
を備えることを特徴とする通信制御方法。 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.
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)
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 |
-
2007
- 2007-08-23 JP JP2007217547A patent/JP2009053770A/en active Pending
Cited By (3)
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 |