JP2007142582A - Data communication device, data communication method, program, and storage medium - Google Patents

Data communication device, data communication method, program, and storage medium Download PDF

Info

Publication number
JP2007142582A
JP2007142582A JP2005330650A JP2005330650A JP2007142582A JP 2007142582 A JP2007142582 A JP 2007142582A JP 2005330650 A JP2005330650 A JP 2005330650A JP 2005330650 A JP2005330650 A JP 2005330650A JP 2007142582 A JP2007142582 A JP 2007142582A
Authority
JP
Japan
Prior art keywords
protocol
data communication
management source
processing
control block
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.)
Withdrawn
Application number
JP2005330650A
Other languages
Japanese (ja)
Inventor
Masahiko Yoshimoto
雅彦 吉本
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2005330650A priority Critical patent/JP2007142582A/en
Publication of JP2007142582A publication Critical patent/JP2007142582A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data communication technology having superior flexibility and expandability. <P>SOLUTION: A data communication device comprises a universal processor for controlling the execution of a software module; a communication control processor for controlling communication; a determination section for determining whether a preset management source can process a protocol required for data communication; and a switch for changing the management source of a protocol control block generated for controlling the processing of the protocol, when the determination section determines that the management source cannot execute the processing of the protocol. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、ネットワークを介して行うデータ通信技術に関するものである。   The present invention relates to a data communication technique performed via a network.

インターネットを中心とするネットワークプロトコルとして、インターネット・プロトコル(IP)、トランスポート・コントロール・プロトコル(TCP)等が用いられている。ここで、IPは、Internet Protocolを示し、TCPは、Transmission Control Protocolを示す。これら一連のプロトコル群はTCP/IPと呼ばれている。   As a network protocol centering on the Internet, the Internet protocol (IP), the transport control protocol (TCP), etc. are used. Here, IP indicates Internet Protocol, and TCP indicates Transmission Control Protocol. A series of these protocols is called TCP / IP.

TCP/IPは、汎用プロセッサ上のソフトウェアモジュールとして、オペレーティングシステムに組み込まれた形で実現されることが多い。近年TCP/IPのプロトコル処理を専門に受け持つハードウェアモジュールとしてTOE (TCP/IP Offload Engine)が用いられるようになってきている。   TCP / IP is often implemented as a software module on a general-purpose processor and incorporated in an operating system. In recent years, a TOE (TCP / IP Offload Engine) has been used as a hardware module that specializes in TCP / IP protocol processing.

TOEは、専用のハードウェア、または専用プロセッサとファームウェアとして構成されることが多いが、汎用プロセッサ上のソフトウェア処理の代替という点で同じものとみなすことができる。TCP/IPに限らず、より上位のプロトコル処理を受け持つハードウェアも存在するが、これらは総称して通信オフロードエンジンと呼ばれている。   The TOE is often configured as dedicated hardware or dedicated processor and firmware, but can be considered the same in terms of an alternative to software processing on a general purpose processor. There is not only TCP / IP but also hardware that handles higher-level protocol processing, but these are collectively referred to as a communication offload engine.

TOEを用いると、チェックサム計算などTCP/IPプロトコル処理に適した機構を備えることから、比較的低いコストで高い性能を得ることができる。更に汎用プロセッサの処理負荷を軽減することで、アプリケーションとして画像処理など負荷の重い処理を実施することができ、システムの機能を高めることもできる。一方、従来のTOEでは、コネクション数の上限が予め制限されていたり、TCP/IPのパラメータ調整範囲が制限されていたりする場合がある。このため、汎用プロセッサ上のソフトウェアモジュールにくらべると柔軟性・拡張性が乏しく、結果的に適用範囲が限られるという問題がある。   When the TOE is used, a mechanism suitable for TCP / IP protocol processing such as checksum calculation is provided, so that high performance can be obtained at a relatively low cost. Furthermore, by reducing the processing load of the general-purpose processor, heavy processing such as image processing can be performed as an application, and the function of the system can be enhanced. On the other hand, in the conventional TOE, the upper limit of the number of connections may be limited in advance, or the TCP / IP parameter adjustment range may be limited. For this reason, there is a problem that flexibility and expandability are poor compared to software modules on a general-purpose processor, and as a result, the application range is limited.

なお、特許文献1には、異なる通信プロトコルをもつ複数のデバイスを接続可能とするために、接続されるデバイスに応じてプログラムを切り換えることが開示されている。
特開平7−254946公報
Patent Document 1 discloses that a program is switched according to a connected device so that a plurality of devices having different communication protocols can be connected.
JP 7-254946 A

すなわち、TOEを含む従来の通信オフロードエンジンでは、汎用プロセッサ上のソフトウェアモジュールと比べて柔軟性・拡張性が乏しい。特に、TCPのような内部状態の複雑なプロトコルについては、汎用プロセッサ上のソフトウェアモジュールと併用することができないという問題がある。   That is, the conventional communication offload engine including the TOE is less flexible and expandable than the software module on the general-purpose processor. In particular, there is a problem that a complicated protocol having an internal state such as TCP cannot be used together with a software module on a general-purpose processor.

本発明は、上記の従来技術における問題を解決するべく、柔軟性・拡張性に優れたデータ通信技術を提供することを目的とするものである。TCP/IPのプロトコル処理を汎用プロセッサ上のソフトウェアモジュールと通信オフロードエンジンを併用しつつ、通信内容に応じて動的に選択する。これにより、高い柔軟性・拡張性を確保しつつ、通信内容に応じて最適な処理系の選択を実現するデータ通信技術の提供を目的とする。   SUMMARY OF THE INVENTION An object of the present invention is to provide a data communication technology excellent in flexibility and expandability in order to solve the above-described problems in the prior art. TCP / IP protocol processing is dynamically selected according to communication contents while using a software module on a general-purpose processor and a communication offload engine in combination. Accordingly, an object of the present invention is to provide a data communication technique that realizes selection of an optimal processing system according to communication contents while ensuring high flexibility and expandability.

上記の目的を達成するべく、本発明に係るデータ通信装置は、
ソフトウェアモジュールの実行を制御する汎用プロセッサと、通信を制御する通信制御プロセッサとを有するデータ通信装置であって、
データ通信において必要とされるプロトコルの処理が予め設定された管理元で可能か否を判定する判定手段と、
前記判定手段の判定により、前記プロトコルの処理が前記管理元で実行できない場合、前記プロトコルの処理を制御するために生成されたプロトコル・コントロール・ブロックの管理元を切り替える切り替え手段と
を備えることを特徴とする。
In order to achieve the above object, a data communication apparatus according to the present invention provides:
A data communication apparatus having a general-purpose processor for controlling execution of a software module and a communication control processor for controlling communication,
A determination means for determining whether or not a protocol processing required in data communication is possible at a preset management source;
And switching means for switching the management source of the protocol control block generated to control the protocol processing when the processing of the protocol cannot be executed by the management source as determined by the determination means. And

あるいは、本発明に係るデータ通信方法は、
ソフトウェアモジュールの実行を制御する汎用プロセッサと、通信を制御する通信制御プロセッサとを有するデータ通信装置におけるデータ通信方法であって、
データ通信において必要とされるプロトコルの処理が予め設定された管理元で可能か否を判定する判定工程と、
前記判定工程の判定により、前記プロトコルの処理が前記管理元で実行できない場合、前記プロトコルの処理を制御するために生成されたプロトコル・コントロール・ブロックの管理元を切り替える切り替え工程と
を備えることを特徴とする。
Alternatively, the data communication method according to the present invention includes:
A data communication method in a data communication apparatus having a general-purpose processor for controlling execution of a software module and a communication control processor for controlling communication,
A determination step of determining whether or not a protocol process required in data communication is possible at a preset management source;
A switching step of switching the management source of the protocol control block generated to control the protocol processing when the processing of the protocol cannot be executed by the management source due to the determination of the determination step. And

本発明によれば、データ通信の内容に応じて、汎用プロセッサまたは通信を制御する通信制御プロセッサを選択することで、高い柔軟性及び拡張性を確保しつつ、最適な処理系の選択が可能になる。   According to the present invention, it is possible to select an optimum processing system while ensuring high flexibility and expandability by selecting a general-purpose processor or a communication control processor that controls communication according to the contents of data communication. Become.

(第1実施形態)
以下、図面を参照して本発明の実施形態を説明する。図1は、本発明の実施形態に係るデータ通信装置の構成を示すブロック図である。汎用プロセッサ(CPU)101、専用の通信制御プロセッサであるオフロードエンジン(TOE)102、ROM103、RAM104、ネットワーク107と接続するためのネットワークインタフェース(NIC)105は、バス106により接続されている。
(First embodiment)
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing a configuration of a data communication apparatus according to an embodiment of the present invention. A general-purpose processor (CPU) 101, an offload engine (TOE) 102 that is a dedicated communication control processor, a ROM 103, a RAM 104, and a network interface (NIC) 105 for connecting to a network 107 are connected by a bus 106.

汎用プロセッサ101は、例えば、Unix(登録商標)のような汎用オペレーティングシステムを稼動させ、オフロードエンジン102は、組込み用のオペレーティングシステムを稼動させる。両オペレーティングシステムは、それぞれTCP/IPに基づく処理(TCP/IP処理)を行うソフトウェアモジュールを含む。これらのソフトウェアモジュール群は、ROM103に記録されており、RAM104をワークエリアとして用いて動作することが可能である。但し、オフロードエンジン102は、ソフトウェアモジュールを含まないハードウェアとして構成してもよい。以下の説明は、ハードウェアで構成されたオフロードエンジン102についても、同様に適用することができるものとする。   For example, the general-purpose processor 101 operates a general-purpose operating system such as Unix (registered trademark), and the offload engine 102 operates an embedded operating system. Both operating systems each include a software module that performs processing based on TCP / IP (TCP / IP processing). These software module groups are recorded in the ROM 103 and can operate using the RAM 104 as a work area. However, the offload engine 102 may be configured as hardware that does not include a software module. The following description can be similarly applied to the offload engine 102 configured by hardware.

更に、ネットワークインタフェース105は、必ずしもバス106に独立に接続されている必要はなく、オフロードエンジン102と一体構成であってもよい。   Further, the network interface 105 is not necessarily connected to the bus 106 independently, and may be integrated with the offload engine 102.

例えば、イーサネット(登録商標)のように標準で内蔵されるネットワークインタフェースの場合は、送受信バッファを含めてオフロードエンジン102と一体の構成にすれば、バスの負荷を軽減することが可能である。一方、無線LANなどで、USBデバイスやPCカードのような外部接続型ネットワークインタフェースの場合は、図1に示した構成とすることが多い。   For example, in the case of a network interface built in as standard, such as Ethernet (registered trademark), it is possible to reduce the load on the bus if it is configured integrally with the offload engine 102 including a transmission / reception buffer. On the other hand, in the case of an external connection type network interface such as a USB device or a PC card in a wireless LAN or the like, the configuration shown in FIG. 1 is often used.

本実施形態に係るデータ通信装置は、ネットワーク107を介したデータの送信および受信処理を行うことが可能である。データ通信装置は、データ通信の内容に応じて、ソフトウェアモジュールの実行を制御する汎用プロセッサ(CPU101)または、通信を制御する通信制御プロセッサ(以下、オフロードエンジン(TOE))102を選択する。   The data communication apparatus according to the present embodiment can perform data transmission and reception processing via the network 107. The data communication apparatus selects a general-purpose processor (CPU 101) that controls execution of the software module or a communication control processor (hereinafter referred to as offload engine (TOE)) 102 that controls communication according to the contents of data communication.

ここで、データ通信装置は、汎用プロセッサ101、オフロードエンジン102、ソフトウェアモジュールの協働により設定部、判定部、切り替え部、特定部及び比較部により構成される。   Here, the data communication apparatus includes a setting unit, a determination unit, a switching unit, a specifying unit, and a comparison unit in cooperation with the general-purpose processor 101, the offload engine 102, and the software module.

設定部は、プロトコルの処理を制御するために生成されたプロトコル・コントロール・ブロック(PCB)の管理元として、汎用プロセッサ101またはオフロードエンジン102のいずれかに設定する。   The setting unit sets either the general-purpose processor 101 or the offload engine 102 as a management source of a protocol control block (PCB) generated to control protocol processing.

判定部は、データ通信において必要とされるプロトコルの処理が可能か否を、各管理元において、プロトコル・コントロール・ブロックの有無(管理下にあるか否か)により判定する。   The determination unit determines whether or not processing of a protocol required in data communication is possible based on the presence / absence of a protocol control block (whether or not it is under management) in each management source.

判定部の判定により、プロトコルの処理が設定された管理元で実行できない場合、切り替え部は、プロトコル・コントロール・ブロックの管理元を切り替える。すなわち、切り替え部は、汎用プロセッサ101及びオフロードエンジン102の両方で処理が可能なプロトコル・コントロール・ブロックの有無(オフロードすべきか否か)を判定する。そして、オフロード可能な場合、管理元で実行できないプロトコルの処理を実行するために、両方で処理が可能なプロトコル・コントロール・ブロックの管理元を切り替える。   If it is determined by the determination unit that the protocol processing cannot be executed by the set management source, the switching unit switches the management source of the protocol control block. That is, the switching unit determines whether or not there is a protocol control block that can be processed by both the general-purpose processor 101 and the offload engine 102 (whether it should be offloaded). If offloading is possible, the management source of the protocol control block that can be processed by both is switched in order to execute processing of the protocol that cannot be executed by the management source.

特定部は、受信したデータ処理要求(HTTPリクエスト)の内容を特定する。すなわち、処理すべきデータが、処理容量の大きいデータ(例えば、映像データの送信)であるか、処理容量の小さいデータ(例えば、カメラの制御データ等)であるかを特定する。   The specifying unit specifies the content of the received data processing request (HTTP request). That is, it is specified whether the data to be processed is data with a large processing capacity (for example, transmission of video data) or data with a small processing capacity (for example, control data for a camera).

比較部は、プロトコル・コントロール・ブロックの通信負荷を設定された閾値と比較し、比較結果によりプロトコル・コントロール・ブロックの管理元を切り替えるためのオフロード開始命令、またはオフロード開始命令を発行する。   The comparison unit compares the communication load of the protocol control block with a set threshold, and issues an offload start command or an offload start command for switching the management source of the protocol control block according to the comparison result.

図2は、TCP/IPの内部処理を制御するためのプロトコル・コントロール・ブロック(PCB:Protocol Control Block)の構成を模式的に示す図である。各プロトコルに対応してIP用PCB201、TCP用PCB202などが用いられる。更に、トランスポート・レベル・セキュリティ(TLS:Transport Level Security)による暗号通信を行う場合は、上位のPCBとしてTLSコネクション用PCB203やTLSセッション用PCB204等が用いられる。一連のPCBはアプリケーションが設定したプロトコルに従って作成され、相互に関連づけられた上で、アプリケーションインタフェースであるソケット(socket)205から参照される。   FIG. 2 is a diagram schematically showing a configuration of a protocol control block (PCB) for controlling TCP / IP internal processing. An IP PCB 201, a TCP PCB 202, etc. are used corresponding to each protocol. Furthermore, in the case of performing encrypted communication using transport level security (TLS), a TLS connection PCB 203, a TLS session PCB 204, or the like is used as a higher-level PCB. A series of PCBs are created in accordance with a protocol set by an application, correlated with each other, and then referred to from a socket 205 which is an application interface.

図3は、TCP用PCB202の概略的な内容を示す図である。TCP用PCB202には通信を制御するための状態変数と状態フラグ、通信負荷を表わす通信レート、送信と受信の制御に用いられるシーケンス番号、送信及び受信ウインドウが含まれる。更に、TCP用PCB202には、データを一時的に格納するバッファとバッファ管理情報、輻輳ウインドウのようなフロー制御情報、再送や遅延ACK等の送信に用いられるタイマーも含まれる。   FIG. 3 is a diagram showing a schematic content of the TCP PCB 202. The TCP PCB 202 includes a state variable and state flag for controlling communication, a communication rate indicating a communication load, a sequence number used for transmission and reception control, and a transmission and reception window. Further, the TCP PCB 202 includes a buffer for temporarily storing data, buffer management information, flow control information such as a congestion window, and a timer used for transmission such as retransmission and delayed ACK.

受信バッファ301と送信バッファ302は、それぞれ対応するウインドウやシーケンス番号によって内容が管理されている。他のPCBに保持される内容はプロトコル毎に異なる。例えば、IP用のPCB201ではアドレス情報や経路情報、TLSコネクション用PCB203では暗号化鍵や暗号化状態、TLSセッション用PCB204ではセッション識別情報、証明書、暗号化アルゴリズムなどである。   The contents of the reception buffer 301 and the transmission buffer 302 are managed by corresponding windows and sequence numbers, respectively. The contents held in other PCBs are different for each protocol. For example, the IP PCB 201 includes address information and path information, the TLS connection PCB 203 includes an encryption key and an encryption state, and the TLS session PCB 204 includes session identification information, a certificate, and an encryption algorithm.

PCBに関する構成上の特徴は、PCBが汎用プロセッサ101とオフロードエンジン102で共有されており、更にいずれの管理下にあるか識別するための情報(図3の「管理元」)を保持している点である。すなわち、PCB(201〜204)はRAM104上に保持されるデータ構造である。そして、PCB(201〜204)相互、あるいはPCB(201〜204)とソケット205は、メモリ空間のアドレスを用いて相互に参照し合っている。汎用プロセッサ101のアドレス空間とオフロードエンジン102のアドレス空間は同一である方が望ましいが、異なる場合でもアドレス変換によって参照できればよい。   A structural feature regarding the PCB is that the PCB is shared by the general-purpose processor 101 and the offload engine 102, and further holds information ("management source" in FIG. 3) for identifying which is under management. It is a point. That is, the PCB (201 to 204) is a data structure held on the RAM 104. Then, the PCBs (201 to 204), or the PCBs (201 to 204) and the socket 205 refer to each other using addresses in the memory space. It is desirable that the address space of the general-purpose processor 101 and the address space of the offload engine 102 are the same.

各PCB(201〜204)を汎用プロセッサ101の管理下に置くか、オフロードエンジン102の管理下に置くかは、アプリケーションから設定される。   Whether each PCB (201 to 204) is placed under the management of the general-purpose processor 101 or the management of the offload engine 102 is set by the application.

例えば、TCP用PCB202であれば、サーバとしてクライアントからの接続を受け入れるパッシブオープンと、クライアントとしてサーバへの接続を行うアクティブオープンとがある。前者の場合は、例えば、HTTP用のポートを作成して接続要求を受け付けるように(listen)しておき、SYNパケットによる接続要求を受け付けると新たなPCBが作成される。受け付け(listen)用ポートを汎用プロセッサ101側に作成しておけば、新しい接続に対応するPCBも汎用プロセッサ101側に作成される。逆に、受け付け(listen)用ポートをオフロードエンジン102側に作成しておけば、新しい接続に対応するPCBもオフロードエンジン102側に作成される。アプリケーションから受け付け(listen)用ポートを作成する際に、ソケット作成命令においていずれの管理下に置くかを設定することができる。そして、受け付け(listen)用ポートを作成した後も後述するオフロード開始命令、またはオフロード停止命令によって管理元を切り替えることができる。オフロード開始命令、またはオフロード停止命令は、パッシブオープンによって作成されたPCB、またはアクティブオープンによって作成されたPCBについても、全く同様に適用することが可能である。   For example, the TCP PCB 202 includes a passive open that accepts a connection from a client as a server and an active open that establishes a connection to a server as a client. In the former case, for example, a port for HTTP is created and a connection request is received (listen), and a new PCB is created when a connection request by a SYN packet is received. If a reception port is created on the general-purpose processor 101 side, a PCB corresponding to a new connection is also created on the general-purpose processor 101 side. Conversely, if a reception port is created on the offload engine 102 side, a PCB corresponding to a new connection is also created on the offload engine 102 side. When creating a listening port from an application, it is possible to set which management is to be placed in the socket creation command. Even after the reception port is created, the management source can be switched by an offload start command or an offload stop command described later. The offload start instruction or the offload stop instruction can be applied in the same manner to a PCB created by passive open or a PCB created by active open.

更に、TLSによる暗号通信を行う場合、図2に示すようにTLSコネクション用PCB203やTLSセッション用PCB204が設けられる。各PCBについては個別にオフロード開始、オフロード終了を設定することができる。すなわち、ソケット作成命令においてプロトコル毎に管理元を設定することができるとともに、作成した後でプロトコルを設定して管理元を切り替えることも可能である。   Further, when performing cipher communication by TLS, a TLS connection PCB 203 and a TLS session PCB 204 are provided as shown in FIG. For each PCB, offload start and offload end can be set individually. In other words, the management source can be set for each protocol in the socket creation command, and the management source can be switched by setting the protocol after the creation.

図4は、汎用プロセッサ(CPU)101とオフロードエンジン(TOE)102のプロトコルスタックの構成例を示す図である。汎用プロセッサ101はアプリケーションを実行し、APIを介して通信制御を行う。汎用プロセッサ101側には、TCPとユーザ・データグラム・プロトコル(UDP)、およびTLSハンドシェイクプロトコル(TLS H)に対応したプロトコル処理機能がある。オフロードエンジン102側にはIP、TCPとUDP、およびTLSレコードプロトコル(TLS R)に対応したプロトコル処理機能がある。   FIG. 4 is a diagram illustrating a configuration example of protocol stacks of the general-purpose processor (CPU) 101 and the offload engine (TOE) 102. The general-purpose processor 101 executes an application and performs communication control via an API. The general-purpose processor 101 has protocol processing functions corresponding to TCP, user datagram protocol (UDP), and TLS handshake protocol (TLSH). On the offload engine 102 side, there are protocol processing functions corresponding to IP, TCP and UDP, and TLS record protocol (TLS R).

この例では、TCPとUDPに対応したプロトコル処理機能が汎用プロセッサ101とオフロードエンジン102の両方に組み込まれている。従って、TCPやUDPについてはオフロード開始命令、またはオフロード停止命令を用いることによって、PCBの管理元を切り替えることができる。   In this example, protocol processing functions corresponding to TCP and UDP are incorporated in both the general-purpose processor 101 and the offload engine 102. Therefore, for TCP and UDP, the PCB management source can be switched by using an offload start command or an offload stop command.

一方、TLSハンドシェイクプロトコル(TLS H)、TLSレコードプロトコル(TLS R)に対応したプロトコル処理機能は、それぞれ汎用プロセッサ101側、オフロードエンジン102側にのみ組み込まれている。そのため、これらのプロトコル処理ついてはソケット作成時にPCBの管理元が決定されるため、その後のオフロード開始命令・オフロード停止命令によって管理元を切り替えることはできない。すなわち、オフロード開始命令、オフロード停止命令が適用されるには、汎用プロセッサ101側とオフロードエンジン102側の両方に共通のプロトコル処理機能を持つプロトコルスタック要素が組み込まれている必要がある。例えば、TLS Rに対応したプロトコルスタック要素が、汎用プロセッサ101及びオフロードエンジン102の両方に組み込まれていれば、オフロード開始・停止命令によって、PCBの管理元を切り替えることができる。   On the other hand, protocol processing functions corresponding to the TLS handshake protocol (TLS H) and the TLS record protocol (TLS R) are incorporated only in the general-purpose processor 101 side and the offload engine 102 side, respectively. Therefore, for these protocol processes, the management source of the PCB is determined at the time of creating the socket, and therefore the management source cannot be switched by a subsequent offload start instruction / offload stop instruction. That is, in order to apply the offload start instruction and the offload stop instruction, it is necessary to incorporate a protocol stack element having a common protocol processing function on both the general-purpose processor 101 side and the offload engine 102 side. For example, if a protocol stack element corresponding to TLS R is incorporated in both the general-purpose processor 101 and the offload engine 102, the management source of the PCB can be switched by an offload start / stop instruction.

図5は、PCBの管理元を汎用プロセッサ101とオフロードエンジン102の間で切り替える手順を示すフローチャートである。汎用プロセッサ101からオフロードエンジン102に切り替える命令をオフロード開始命令という。また、オフロードエンジン102から汎用プロセッサ101に切り替える命令をオフロード停止命令という。両者の処理手順は同じであるため、以下の説明では、オフロード開始命令について説明する。   FIG. 5 is a flowchart showing a procedure for switching the PCB management source between the general-purpose processor 101 and the offload engine 102. An instruction to switch from the general-purpose processor 101 to the offload engine 102 is referred to as an offload start instruction. An instruction for switching from the offload engine 102 to the general-purpose processor 101 is referred to as an offload stop instruction. Since both processing procedures are the same, in the following description, an offload start instruction will be described.

ステップS500において、アプリケーションがソケットとプロトコルを設定してオフロード開始命令を発行する。そして、ステップS501で、初めに設定されたソケットが存在するかどうかを確認する。ソケットが存在すれば(S501−YES)、処理はステップS502に進められ、設定されたプロトコルに対応するPCBが存在するかどうか確認する。続いて、ステップS503において、そのPCBが汎用プロセッサ101の管理下にあり、しかもオフロードエンジン102側に設定されたプロトコルに対応するプロトコルスタック要素が組み込まれているか(オフロード可能)どうかを判定する。オフロード可能と判定されれば、ステップS504において、汎用プロセッサ101の管理下から削除し、ステップS505において、オフロードエンジン102側の管理下への追加を行って、処理を完了する。   In step S500, the application sets the socket and protocol and issues an offload start command. In step S501, it is confirmed whether or not the initially set socket exists. If the socket exists (S501-YES), the process proceeds to step S502, and it is confirmed whether there is a PCB corresponding to the set protocol. In step S503, it is determined whether the PCB is under the control of the general-purpose processor 101 and a protocol stack element corresponding to the protocol set on the offload engine 102 side is incorporated (offload is possible). . If it is determined that offloading is possible, in step S504, it is deleted from the management of the general-purpose processor 101, and in step S505, it is added under the management of the offload engine 102 side, and the processing is completed.

一方、ソケットが存在しない場合(S501−NO)、PCBが存在しない場合(S502−NO)、そして、プロトコルスタック要素が組み込まれていない場合(S503−NO)、ステップS506でエラー処理を行う。   On the other hand, if the socket does not exist (S501-NO), the PCB does not exist (S502-NO), and the protocol stack element is not incorporated (S503-NO), error processing is performed in step S506.

ステップS504とS505の処理内容は、汎用プロセッサ101とオフロードエンジン102の組合せによって決まる。一般には汎用プロセッサ101側とオフロードエンジン102側でPCBの構造が異なるので、構造を変換するとともに、関連する付加的な処理、例えば、TCPのタイマーの移動を行う必要がある。具体的には、移動元のPCBを参照して移動先のPCBを作成し、PCB間の相互参照関係を更新した後、移動元のPCBを消去すればよい。尚、この処理を行っている間、パケットの送受信処理は保留されることはいうまでもない。   The processing contents of steps S504 and S505 are determined by the combination of the general-purpose processor 101 and the offload engine 102. In general, since the PCB structure is different between the general-purpose processor 101 side and the offload engine 102 side, it is necessary to convert the structure and perform related additional processing, for example, movement of a TCP timer. Specifically, it is only necessary to create a destination PCB by referring to the source PCB, update the cross-reference relationship between the PCBs, and then delete the source PCB. Needless to say, the packet transmission / reception process is suspended during this process.

次に、図4に示したプロトコルスタックに基づいて、送信処理と受信処理における汎用プロセッサ101とオフロードエンジン102の動作について説明する。   Next, operations of the general-purpose processor 101 and the offload engine 102 in transmission processing and reception processing will be described based on the protocol stack shown in FIG.

(パケットの送信処理)
初めに、汎用プロセッサ101側のTCPを用いてパケットを送信する場合について説明する。アプリケーションがデータの送信処理を行うと、汎用プロセッサ101側のオペレーティングシステムにおいてソケットが検索され、最上位のPCBとして汎用プロセッサ101の管理下にあるTCP用PCBが取り出される。この結果、汎用プロセッサ101側のTCPが起動され、送信バッファの空き領域に送信データが格納された後、TCPヘッダを作成する。
(Packet transmission processing)
First, a case where a packet is transmitted using TCP on the general-purpose processor 101 side will be described. When the application performs data transmission processing, the socket is searched in the operating system on the general-purpose processor 101 side, and the TCP PCB managed by the general-purpose processor 101 is taken out as the highest-level PCB. As a result, TCP on the general-purpose processor 101 side is activated, and after the transmission data is stored in the empty area of the transmission buffer, a TCP header is created.

次に、汎用プロセッサ101は、下位プロトコルであるIP処理を行うが、IPは汎用プロセッサ101側にはなく、オフロードエンジン102側にある。このため、汎用プロセッサ101及びオフロードエンジン102の両方で処理が可能なTCP用PCBを介して管理元(汎用プロセッサ101側)で実行できないIPの処理をオフロードエンジン102側に依頼する。汎用プロセッサ101は、TCPヘッダと送信バッファを合わせてオフロードエンジン102にIPへの送信処理を依頼する。具体的には、オフロードエンジン102に対する割込み要求を行うか、またはオフロードエンジン102の制御レジスタへの書き込みを行うことになる。   Next, the general-purpose processor 101 performs IP processing, which is a lower-level protocol, but the IP is not on the general-purpose processor 101 side but on the offload engine 102 side. Therefore, the offload engine 102 is requested to perform IP processing that cannot be executed by the management source (general processor 101 side) via a TCP PCB that can be processed by both the general processor 101 and the offload engine 102. The general-purpose processor 101 requests the offload engine 102 to perform transmission processing to the IP together with the TCP header and the transmission buffer. Specifically, an interrupt request is made to the offload engine 102 or writing to the control register of the offload engine 102 is performed.

送信処理の依頼がオフロードエンジン102に受け付けられるとTCP以下の送信処理の管理元が切り替えられることになる。送信処理の依頼を受け付けたオフロードエンジン102は、IP処理としてIPヘッダの作成等を行い、通信インタフェースを介してパケットを送出する。   When a request for transmission processing is received by the offload engine 102, the management source of transmission processing below TCP is switched. The offload engine 102 that has received the request for the transmission process creates an IP header or the like as the IP process, and sends the packet through the communication interface.

オフロードエンジン102側のTCPを用いてパケットを送信する場合は、ソケットから取り出される最上位のPCBはオフロードエンジン102の管理下にあるものである。この場合、汎用プロセッサ101のTCPを起動せず、割込みやレジスタへの書き込みによって、オフロードエンジン102のTCPに対してTCP以下の送信処理を依頼する。オフロードエンジン102はTCPの処理、IPの処理を行ったのち、通信インタフェースを介してパケットを送出する。この間、汎用プロセッサ101は、オフロードエンジン102との間における通信処理には一切関与しない。   When a packet is transmitted using TCP on the offload engine 102 side, the uppermost PCB taken out from the socket is under the control of the offload engine 102. In this case, the TCP of the general-purpose processor 101 is not activated, and the transmission processing below the TCP is requested to the TCP of the offload engine 102 by interruption or writing to a register. The offload engine 102 performs TCP processing and IP processing, and then transmits a packet via the communication interface. During this time, the general-purpose processor 101 is not involved in any communication processing with the offload engine 102.

(パケットの受信処理)
次に、パケット受信処理について説明する。ネットワークインタフェース105がパケットを受信すると、ネットワークインタフェース105は、受信データをメモリ(RAM104)に転送した後、オフロードエンジン102に対して、割込み等によってパケットの受信を通知する。
(Packet reception processing)
Next, packet reception processing will be described. When the network interface 105 receives the packet, the network interface 105 transfers the received data to the memory (RAM 104), and then notifies the offload engine 102 of the reception of the packet by an interrupt or the like.

オフロードエンジン102はIPヘッダを解析して、上位プロトコルのPCBを検索する。上位プロトコルのPCBがオフロードエンジン102側にあればそのまま上位プロトコルの処理を行う。オフロードエンジン102側に上位のプロトコルのPCBがなく汎用プロセッサ101側にあれば、割込みによって汎用プロセッサ101に上位プロトコルの処理を依頼する。以下これを繰返し、上位プロトコルがなくなった時点で、ソケットを用いてアプリケーションに対して受信データを提供する。   The offload engine 102 analyzes the IP header and searches for the PCB of the upper protocol. If the upper protocol PCB is on the offload engine 102 side, the upper protocol processing is performed as it is. If there is no higher-level protocol PCB on the offload engine 102 side and the general-purpose processor 101 side, the general-purpose processor 101 is requested to process the higher-level protocol by an interrupt. Thereafter, this process is repeated, and when there is no higher protocol, the received data is provided to the application using the socket.

以上の処理は、TLSを用いた暗号通信等にもそのまま適用される。すなわち、アプリケーションがTLSコネクションを作成すると、ClientHelloから始まる一連のTLSハンドシェイクメッセージの送受信が行われる。この場合、TLSハンドシェイクプロトコル(TLS H)は汎用プロセッサ101側、TLSレコードプロトコル(TLS R)はオフロードエンジン102側で処理された後、TCP以下の送信処理が行われることになる。   The above processing is directly applied to encryption communication using TLS. That is, when an application creates a TLS connection, a series of TLS handshake messages starting from ClientHello are transmitted and received. In this case, after the TLS handshake protocol (TLS H) is processed on the general-purpose processor 101 side and the TLS record protocol (TLS R) is processed on the offload engine 102 side, transmission processing below TCP is performed.

以上の処理において、TCPの内部処理に関するプロトコル処理を一括して汎用プロセッサ101の管理下とすることで、オフロードエンジン102の負担を軽減するとともに、限られたオフロードエンジン102の資源を有効に利用することも可能である。例えば、TCPの切断処理は「接続終了」を意味するFINパケットの交換によって行われる。FINパケットを送信または受信したとき、TCP用PCBがオフロードエンジン102の管理下にあれば、アプリケーションのオフロード開始・停止命令とは無関係に、汎用プロセッサ101の管理下に切り替えを行えばよい。   In the above processing, the protocol processing related to the TCP internal processing is collectively managed by the general-purpose processor 101, thereby reducing the burden on the offload engine 102 and effectively using limited resources of the offload engine 102. It can also be used. For example, the TCP disconnection process is performed by exchanging FIN packets that mean “end of connection”. If the TCP PCB is under the control of the offload engine 102 when the FIN packet is transmitted or received, switching may be performed under the control of the general-purpose processor 101 regardless of the application offload start / stop command.

切断処理を開始した後、PCBを破棄するまでの期間は一般に長時間に及ぶ可能性がある。しかしながら、この間に大量の通信を行うことは稀であって、汎用プロセッサ101側でプロトコル処理を受け持つことによって、オフロードエンジン102を大量データの送受信処理に集中されることが可能になる。   In general, there is a possibility that the period until the PCB is discarded after the cutting process is started may be long. However, it is rare to perform a large amount of communication during this time, and the offload engine 102 can be concentrated on a large amount of data transmission / reception processing by handling the protocol processing on the general-purpose processor 101 side.

(アプリケーションの構成例)
アプリケーションの構成例として、ハイパーテキスト転送プロトコル(HTTP)を用いて映像送信やカメラ制御を行うサーバの動作ついて説明する。ここで、映像送信はオフロードエンジン102のTCPを使用し、カメラ制御は汎用プロセッサ101のTCPを使用するものとする。HTTPの処理は、汎用プロセッサ101側のオペレーティングシステム上で動作するアプリケーションによって行うものとし、さらにHTTPポートは汎用プロセッサ101側のPCBとして作成されているものとする。
(Application configuration example)
As an application configuration example, an operation of a server that performs video transmission and camera control using a hypertext transfer protocol (HTTP) will be described. Here, it is assumed that TCP of the offload engine 102 is used for video transmission and TCP of the general-purpose processor 101 is used for camera control. It is assumed that HTTP processing is performed by an application operating on the operating system on the general-purpose processor 101 side, and that the HTTP port is created as a PCB on the general-purpose processor 101 side.

クライアントからHTTP接続要求があると、汎用プロセッサ101側のTCPで接続要求が処理され、アプリケーションレベルでHTTPコネクションが確立され、汎用プロセッサ101側に新たにPCBが作成される。   When there is an HTTP connection request from the client, the connection request is processed by TCP on the general-purpose processor 101 side, an HTTP connection is established at the application level, and a new PCB is created on the general-purpose processor 101 side.

HTTPコネクションが確立すると、クライアントはHTTPリクエストを送信する。送信されるHTTPリクエストの内容は、例えば、映像送信要求、またはカメラの制御要求である。HTTPリクエストが受信されると、対応するPCBに従って汎用プロセッサ101のTCPでHTTPリクエストが処理された後、アプリケーションにHTTPリクエストが通知される。アプリケーションはHTTPリクエストに含まれる文字列等の情報によって、要求の内容(例えば、映像送信要求、カメラ制御要求)を特定する。そして、通信負荷の大きい映像送信要求であればオフロード開始命令によってPCBをオフロードエンジン102の管理下に切り替える。以下、映像データ送信はオフロードエンジン102によって処理され、カメラ制御は汎用プロセッサ101によって処理されるようになる。   When the HTTP connection is established, the client transmits an HTTP request. The content of the HTTP request to be transmitted is, for example, a video transmission request or a camera control request. When the HTTP request is received, the HTTP request is processed by TCP of the general-purpose processor 101 in accordance with the corresponding PCB, and then the HTTP request is notified to the application. The application specifies the content of the request (for example, video transmission request, camera control request) based on information such as a character string included in the HTTP request. If the video transmission request has a large communication load, the PCB is switched under the management of the offload engine 102 by an offload start command. Thereafter, video data transmission is processed by the offload engine 102, and camera control is processed by the general-purpose processor 101.

但し、映像データの生成とオフロードエンジン102への供給、カメラ制御要求の解析とカメラ制御コマンドの生成等については、別途既知の手段を用いることによって行われるものとする。   However, generation of video data and supply to the offload engine 102, analysis of a camera control request, generation of a camera control command, and the like are performed by using separately known means.

上記の説明において、HTTP以外のプロトコルを用いて映像送信やカメラ制御を行うサーバについても、全く同様に行うことが可能であることはいうまでもない。   In the above description, it goes without saying that the same can be applied to a server that performs video transmission and camera control using a protocol other than HTTP.

更に上記の説明において、プロトコルの種別や処理内容以外に、例えば、通信形態としてピアツーピア方式を用いる場合、通信形態に基づいてPCBの管理元を選択してもよい。ピアツーピアは小規模なLAN環境で用いられる場合が多く、サーバを介さずに直接通信し合うことから効率が向上する場合がある。ピアツーピア方式を用いる場合、PCBの管理元を固定的にオフロードエンジン102とするようにしてもよい。   Furthermore, in the above description, in addition to the protocol type and processing contents, for example, when using a peer-to-peer method as a communication form, a PCB management source may be selected based on the communication form. Peer-to-peer is often used in a small-scale LAN environment, and efficiency may be improved because direct communication is performed without using a server. When the peer-to-peer method is used, the PCB management source may be fixed to the offload engine 102.

PCBの管理元はアプリケーションが発行するオフロード開始命令とオフロード停止命令によって制御されるが、通信負荷状況に応じて自動的に管理元が切り替えられるように制御することも可能である。   The PCB management source is controlled by an offload start command and an offload stop command issued by the application, but it is also possible to control the management source to be automatically switched according to the communication load status.

図6は、通信負荷(通信レート)順に並べられたPCBのリストを示す図である。個々のPCBには管理元とともに通信レートとして単位時間当りの通信量が記録されている(図3を参照)。通信レートはPCBを用いて通信を行うたびに更新され、その値が前後のPCBと逆転したときに並び変えが行われる。更にリスト先頭のPCBは負荷最大のPCB、終端のPCBは負荷最小のPCBとしてRAM104に保持される。   FIG. 6 is a diagram showing a list of PCBs arranged in order of communication load (communication rate). In each PCB, the communication amount per unit time is recorded as a communication rate together with the management source (see FIG. 3). The communication rate is updated each time communication is performed using the PCB, and rearrangement is performed when the value is reversed from the previous and subsequent PCBs. Further, the PCB at the head of the list is held in the RAM 104 as the PCB with the maximum load, and the PCB at the end as the PCB with the minimum load.

図7は、通信負荷(通信レート)に応じてPCBの管理元を自動的に切り替える手順を示すフローチャートである。この処理手順は、上記の通信レートの値が変化したときに起動されるか、またはタイマーを用いて定期的に起動される。   FIG. 7 is a flowchart showing a procedure for automatically switching the PCB management source in accordance with the communication load (communication rate). This processing procedure is started when the value of the communication rate is changed, or is periodically started using a timer.

ステップS701において、対象とするPCBを負荷最大のPCBとする。ステップS702において、このPCBの通信レートを所定の閾値1と比較する。通信レートが閾値1を上回っていれば(S702−YES)、ステップS703において、管理元が汎用プロセッサ(CPU)101であるかどうかを確認する。管理元が汎用プロセッサ101であれば(S703−YES)、ステップS704において、オフロード開始により管理元をオフロードエンジン102に切り替える。   In step S701, the target PCB is the PCB with the maximum load. In step S702, the PCB communication rate is compared with a predetermined threshold value 1. If the communication rate exceeds the threshold 1 (S702-YES), it is confirmed in step S703 whether the management source is the general-purpose processor (CPU) 101. If the management source is the general-purpose processor 101 (S703-YES), the management source is switched to the offload engine 102 at the start of offload in step S704.

ステップS705において、次に通信レートの大きなPCBの取り出しを行う。ステップS706の判定で、PCBが無ければ(S706−YES)、処理を終了する。一方、PCBがあれば(S706−NO)、処理をステップS702に戻し、ステップS702以降の処理を繰り返す。   In step S705, the PCB having the next highest communication rate is taken out. If it is determined in step S706 that there is no PCB (S706-YES), the process is terminated. On the other hand, if there is a PCB (S706-NO), the process returns to step S702, and the processes after step S702 are repeated.

ステップS702において通信レートが閾値1以下であれば(S702−NO)、処理をステップS707に進め、別の閾値2と比較する。ここで閾値2は閾値1以下の値である。   If the communication rate is equal to or lower than the threshold value 1 in step S702 (S702-NO), the process proceeds to step S707 and is compared with another threshold value 2. Here, the threshold value 2 is a value equal to or less than the threshold value 1.

ステップS707の判定において、PCBの通信レートが閾値2以下でなければ(S707−NO)、処理をステップS710に進めて、次に通信レートの大きいPCBの取り出しを行う。一方、PCBの通信レートが閾値2以下であれば(S707−YES)、管理元がオフロードエンジン102であるかどうかを確認する(ステップS708)。管理元がオフロードエンジンであれば(S708−YES)、オフロード停止によって管理元を汎用プロセッサ101に切り替える(ステップS709)。続いて、ステップS710において、次に通信レートの大きなPCBの取り出しを行う。次に通信レートの大きなPCBがあれば(S711−NO)、処理をステップS707に戻し、ステップS707以降の処理を繰り返す。ステップS711の判定で、PCが無ければ(S711−YES)、処理を終了する。   If it is determined in step S707 that the PCB communication rate is not less than or equal to the threshold 2 (S707-NO), the process proceeds to step S710, and the PCB having the next highest communication rate is taken out. On the other hand, if the PCB communication rate is equal to or less than the threshold 2 (S707—YES), it is confirmed whether the management source is the offload engine 102 (step S708). If the management source is an offload engine (S708-YES), the management source is switched to the general-purpose processor 101 by stopping the offload (step S709). Subsequently, in step S710, a PCB having the next highest communication rate is taken out. If there is a PCB with the next highest communication rate (S711-NO), the process returns to step S707, and the processes after step S707 are repeated. If it is determined in step S711 that there is no PC (S711-YES), the process ends.

以上説明したように、本実施形態によれば、データ通信の内容に応じて、汎用プロセッサまたは通信を制御する通信制御プロセッサを選択することで、高い柔軟性及び拡張性を確保しつつ、最適な処理系の選択が可能になる。   As described above, according to the present embodiment, by selecting a general-purpose processor or a communication control processor that controls communication in accordance with the contents of data communication, it is possible to achieve an optimum while ensuring high flexibility and expandability. The processing system can be selected.

(他の実施形態)
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給することによっても、達成されることは言うまでもない。また、システムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
(Other embodiments)
Needless to say, the object of the present invention can also be achieved by supplying a storage medium storing software program codes for realizing the functions of the above-described embodiments to a system or apparatus. Needless to say, this can also be achieved by the computer (or CPU or MPU) of the system or apparatus reading and executing the program code stored in the storage medium.

この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。   In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the storage medium storing the program code constitutes the present invention.

プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,不揮発性のメモリカード,ROMなどを用いることができる。   As a storage medium for supplying the program code, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a nonvolatile memory card, a ROM, or the like can be used.

また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される。また、プログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態が実現される場合も含まれることは言うまでもない。   Further, the functions of the above-described embodiment are realized by executing the program code read by the computer. In addition, an OS (operating system) running on a computer performs part or all of actual processing based on an instruction of a program code, and the above-described embodiment is realized by the processing. Needless to say.

本発明の実施形態に係るデータ通信装置の構成を示すブロック図である。It is a block diagram which shows the structure of the data communication apparatus which concerns on embodiment of this invention. プロトコル・コントロール・ブロックの構成を模式的に示す図である。It is a figure which shows typically the structure of a protocol control block. TCPのプロトコル・コントロール・ブロックの内容を示す図である。It is a figure which shows the content of the protocol control block of TCP. プロトコルスタックの構成例を示す図である。It is a figure which shows the structural example of a protocol stack. オフロード開始命令の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of an offload start command. 通信レート順に並べられたプロトコル・コントロール・ブロックのリストを示す図である。It is a figure which shows the list of the protocol control block arranged in order of the communication rate. 通信負荷に応じてプロトコル・コントロール・ブロックの管理元を自動的に制御する手順を示すフローチャートである。It is a flowchart which shows the procedure which controls automatically the management origin of a protocol control block according to communication load.

Claims (12)

ソフトウェアモジュールの実行を制御する汎用プロセッサと、通信を制御する通信制御プロセッサとを有するデータ通信装置であって、
データ通信において必要とされるプロトコルの処理が予め設定された管理元で可能か否を判定する判定手段と、
前記判定手段の判定により、前記プロトコルの処理が前記管理元で実行できない場合、前記プロトコルの処理を制御するために生成されたプロトコル・コントロール・ブロックの管理元を切り替える切り替え手段と
を備えることを特徴とするデータ通信装置。
A data communication apparatus having a general-purpose processor for controlling execution of a software module and a communication control processor for controlling communication,
A determination means for determining whether or not a protocol processing required in data communication is possible at a preset management source;
And switching means for switching the management source of the protocol control block generated to control the protocol processing when the processing of the protocol cannot be executed by the management source as determined by the determination means. A data communication device.
前記プロトコルには、トランスポート・コントロール・プロトコル、インターネット・プロトコル、トランスポート・レベル・セキュリティ ハンドシェイクプロトコル、トランスポート・レベル・セキュリティ レコードプロトコル及びユーザ・データグラム・プロトコルのうち少なくとも一つが含まれることを特徴とする請求項1に記載のデータ通信装置。 The protocol includes at least one of a transport control protocol, an internet protocol, a transport level security handshake protocol, a transport level security record protocol, and a user datagram protocol. The data communication apparatus according to claim 1, wherein: 受信したデータ処理要求の内容を特定する特定手段を更に備え、
前記特定手段の特定結果に基づき、処理すべきデータの処理容量により前記プロトコル・コントロール・ブロックの管理元が予め設定されることを特徴とする請求項1に記載のデータ通信装置。
Further comprising a specifying means for specifying the content of the received data processing request;
2. The data communication apparatus according to claim 1, wherein a management source of the protocol control block is preset based on a processing capacity of data to be processed based on a specifying result of the specifying unit.
FINパケットの送信または受信により、前記トランスポート・コントロール・プロトコル用のプロトコル・コントロール・ブロックが前記通信制御プロセッサの管理元にあるプロトコル処理を切断する場合、前記切り替え手段は、前記汎用プロセッサに管理元を切り替えることを特徴とする請求項1に記載のデータ通信装置。 When the protocol control block for the transport control protocol disconnects the protocol processing in the management source of the communication control processor by sending or receiving the FIN packet, the switching means sends the management source to the general-purpose processor. The data communication device according to claim 1, wherein the data communication device is switched. 前記プロトコル・コントロール・ブロックの通信負荷を設定された閾値と比較し、当該比較の結果に基づき前記プロトコル・コントロール・ブロックの管理元を切り替えるための命令を発行する比較手段を更に備え、
前記切り替え手段は、前記比較手段により発行される命令に従い前記プロトコル・コントロール・ブロックの管理元を切り替えることを特徴とする請求項1に記載のデータ通信装置。
Comparing means for comparing the communication load of the protocol control block with a set threshold and issuing a command for switching the management source of the protocol control block based on a result of the comparison,
2. The data communication apparatus according to claim 1, wherein the switching unit switches a management source of the protocol control block in accordance with an instruction issued by the comparison unit.
ソフトウェアモジュールの実行を制御する汎用プロセッサと、通信を制御する通信制御プロセッサとを有するデータ通信装置におけるデータ通信方法であって、
データ通信において必要とされるプロトコルの処理が予め設定された管理元で可能か否を判定する判定工程と、
前記判定工程の判定により、前記プロトコルの処理が前記管理元で実行できない場合、前記プロトコルの処理を制御するために生成されたプロトコル・コントロール・ブロックの管理元を切り替える切り替え工程と
を備えることを特徴とするデータ通信方法。
A data communication method in a data communication apparatus having a general-purpose processor for controlling execution of a software module and a communication control processor for controlling communication,
A determination step of determining whether or not a protocol process required in data communication is possible at a preset management source;
A switching step of switching the management source of the protocol control block generated to control the protocol processing when the processing of the protocol cannot be executed by the management source due to the determination of the determination step. Data communication method.
前記プロトコルには、トランスポート・コントロール・プロトコル、インターネット・プロトコル、トランスポート・レベル・セキュリティ ハンドシェイクプロトコル、トランスポート・レベル・セキュリティ レコードプロトコル及びユーザ・データグラム・プロトコルのうち少なくとも一つが含まれることを特徴とする請求項6に記載のデータ通信方法。 The protocol includes at least one of a transport control protocol, an internet protocol, a transport level security handshake protocol, a transport level security record protocol, and a user datagram protocol. The data communication method according to claim 6, wherein: 受信したデータ処理要求の内容を特定する特定工程を更に備え、
処理すべきデータの処理容量により前記プロトコル・コントロール・ブロックの管理元が予め設定されることを特徴とする請求項6に記載のデータ通信方法。
A specific step of specifying the content of the received data processing request;
7. The data communication method according to claim 6, wherein a management source of the protocol control block is preset according to a processing capacity of data to be processed.
FINパケットの送信または受信により、前記トランスポート・コントロール・プロトコル用のプロトコル・コントロール・ブロックが前記通信制御プロセッサの管理元にあるプロトコル処理を切断する場合、前記切り替え工程は、前記汎用プロセッサに管理元を切り替えることを特徴とする請求項6に記載のデータ通信方法。 When the protocol control block for the transport control protocol cuts off the protocol processing in the management source of the communication control processor by sending or receiving the FIN packet, the switching step sends the management source to the general-purpose processor. The data communication method according to claim 6, wherein the data communication is switched. 前記プロトコル・コントロール・ブロックの通信負荷を設定された閾値と比較し、当該比較の結果に基づき前記プロトコル・コントロール・ブロックの管理元を切り替えるための命令を発行する比較工程を更に備え、
前記切り替え工程は、前記比較工程により発行される命令に従い前記プロトコル・コントロール・ブロックの管理元を切り替えることを特徴とする請求項6に記載のデータ通信方法。
A comparison step of comparing a communication load of the protocol control block with a set threshold value and issuing an instruction to switch a management source of the protocol control block based on a result of the comparison;
7. The data communication method according to claim 6, wherein the switching step switches a management source of the protocol control block in accordance with an instruction issued by the comparison step.
請求項6乃至10のいずれかに記載のデータ通信方法をコンピュータに実行させることを特徴とするプログラム。 A program for causing a computer to execute the data communication method according to any one of claims 6 to 10. 請求項11に記載のプログラムを格納したことを特徴とするコンピュータ可読の記憶媒体。 A computer-readable storage medium storing the program according to claim 11.
JP2005330650A 2005-11-15 2005-11-15 Data communication device, data communication method, program, and storage medium Withdrawn JP2007142582A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005330650A JP2007142582A (en) 2005-11-15 2005-11-15 Data communication device, data communication method, program, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005330650A JP2007142582A (en) 2005-11-15 2005-11-15 Data communication device, data communication method, program, and storage medium

Publications (1)

Publication Number Publication Date
JP2007142582A true JP2007142582A (en) 2007-06-07

Family

ID=38204963

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005330650A Withdrawn JP2007142582A (en) 2005-11-15 2005-11-15 Data communication device, data communication method, program, and storage medium

Country Status (1)

Country Link
JP (1) JP2007142582A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010073671A1 (en) * 2008-12-25 2010-07-01 パナソニック株式会社 Tcp transmission control device and method of control of tcp transmission
JP2013176106A (en) * 2013-04-09 2013-09-05 Toshiba Corp Data communication device and communication program
JP2013179615A (en) * 2013-04-09 2013-09-09 Toshiba Corp Data communication device and communication program
JP2014225769A (en) * 2013-05-16 2014-12-04 株式会社リコー Communication device and communication system
US8943214B2 (en) 2009-09-16 2015-01-27 Kabushiki Kaisha Toshiba Communication apparatus
US9100332B2 (en) 2011-02-28 2015-08-04 Kabushiki Kaisha Toshiba Data transmitting device, data communicating device, and computer readable medium
US10580797B2 (en) 2008-05-16 2020-03-03 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and manufacturing method of the same
US10897426B2 (en) 2013-09-30 2021-01-19 Mitsubishi Electric Corporation Reception apparatus and communication apparatus

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10580797B2 (en) 2008-05-16 2020-03-03 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and manufacturing method of the same
WO2010073671A1 (en) * 2008-12-25 2010-07-01 パナソニック株式会社 Tcp transmission control device and method of control of tcp transmission
JP5517951B2 (en) * 2008-12-25 2014-06-11 パナソニック株式会社 TCP transmission control apparatus and TCP transmission control method
US9042244B2 (en) 2008-12-25 2015-05-26 Panasonic Intellectual Property Corporation Of America TCP transmission control device and method of control of TCP transmission
US8943214B2 (en) 2009-09-16 2015-01-27 Kabushiki Kaisha Toshiba Communication apparatus
US9100332B2 (en) 2011-02-28 2015-08-04 Kabushiki Kaisha Toshiba Data transmitting device, data communicating device, and computer readable medium
JP2013176106A (en) * 2013-04-09 2013-09-05 Toshiba Corp Data communication device and communication program
JP2013179615A (en) * 2013-04-09 2013-09-09 Toshiba Corp Data communication device and communication program
JP2014225769A (en) * 2013-05-16 2014-12-04 株式会社リコー Communication device and communication system
US10897426B2 (en) 2013-09-30 2021-01-19 Mitsubishi Electric Corporation Reception apparatus and communication apparatus

Similar Documents

Publication Publication Date Title
JP2007142582A (en) Data communication device, data communication method, program, and storage medium
US7809966B2 (en) Information processing apparatus having a low power consumption state and releasing the low power consumption state to perform communication, and power control method therefor
EP1622334B1 (en) Server device, method for controlling a server device, and method for establishing a connection using the server device
US7471681B2 (en) Determining network path transmission unit
EP3761591B1 (en) Tcp link configuration method, apparatus, and computer program product
WO2015043413A1 (en) Method and device for sending requests
KR20100080402A (en) Reduced power state network processing
US9794354B1 (en) System and method for communication between networked applications
CN112104744B (en) Traffic proxy method, server and storage medium
JP5084372B2 (en) Data processing apparatus and data processing apparatus control method
WO2011148480A1 (en) Relay device, relay system, relay method, program, and storage medium capable of reading from computer storing said program
US9356989B2 (en) Learning values of transmission control protocol (TCP) options
US8761164B2 (en) Network offloading with reduced packet loss
WO2017107148A1 (en) Method of transmitting data and network equipment
US9106479B1 (en) System and method for managing network communications
US9261948B2 (en) Image forming apparatus and control method for executing a proxy in response to a heartbeat
JP2019114947A (en) Communication device, control method of communication device, and program
JP6640065B2 (en) Communication device, communication control device, communication method, communication control method, and program
JP2018050128A (en) Processing determination device, processing determination method, and processing determination program
JP6949578B2 (en) Image forming device, control method and program of image forming device
JP2011044823A (en) Communication equipment, communication system, communication method and communication program
JP6568571B2 (en) Data transfer device, data transfer method, and communication device
JP7309384B2 (en) COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD AND PROGRAM
JP2017163346A (en) Communication device, method and program
JP2006109016A (en) Transmitter/receiver, transmission/reception control method, program and memory

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20090203