JP2007189296A - Method and device for stream data communication - Google Patents
Method and device for stream data communication Download PDFInfo
- Publication number
- JP2007189296A JP2007189296A JP2006003442A JP2006003442A JP2007189296A JP 2007189296 A JP2007189296 A JP 2007189296A JP 2006003442 A JP2006003442 A JP 2006003442A JP 2006003442 A JP2006003442 A JP 2006003442A JP 2007189296 A JP2007189296 A JP 2007189296A
- Authority
- JP
- Japan
- Prior art keywords
- protocol stack
- memory area
- application program
- stream data
- data
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本発明は、ストリームデータの通信方法及びストリームデータの通信装置に関し、特に、チェックサム計算モジュール及びソケット類似のプロトコルスタックを用いたバス帯域の浪費防止及びプロセッサ処理負荷の浪費防止に適用して有効な技術に関するものである。 The present invention relates to a stream data communication method and a stream data communication apparatus, and is particularly effective when applied to the prevention of waste of bus bandwidth and the waste of processor processing load using a checksum calculation module and a socket-like protocol stack. It is about technology.
今般、PC(Personal Computer)だけでなく、ビデオレコーダ等のAV(Audio/Visual)機器を含め様々な組込み機器にも、通信機能が搭載されてきている。それらの機器が採用している通信機能に関する代表的な物理インタフェース及びデータリンク層プロトコルの規格として、Ethernet(登録商標)やIEEE(Institute of Electrical and Electronic Engineers)802.3の有線LAN(Local Area Network)規格や、IEEE802.11の無線LAN規格がある。又、ネットワーク層プロトコルとして、IAB(Internet Architecture Board)によりRFC(Request For Comments)791で定義されているIP(Internet Protocol)規格があり、又、トランスポート層プロトコルとしてRFC791で定義されているTCP(Transmission Control Protocol)規格や、RFC768で定義されているUDP(User Datagram Protocol)規格がある。 In recent years, not only PCs (Personal Computers) but also various embedded devices including AV (Audio / Visual) devices such as video recorders have been equipped with communication functions. Typical physical interface and data link layer protocol standards related to communication functions adopted by these devices include Ethernet (registered trademark) and IEEE (Institut of Electrical and Electronic Engineers) 802.3 wired LAN (Local Area Network). ) Standard and IEEE 802.11 wireless LAN standard. As a network layer protocol, there is an IP (Internet Protocol) standard defined by RFC (Request For Comments) 791 by IAB (Internet Architecture Board), and a TCP (defined by RFC 791 as a transport layer protocol). There are a Transmission Control Protocol (UDP) standard and a UDP (User Datagram Protocol) standard defined in RFC768.
ネットワーク層プロトコル及びトランスポート層プロトコル等の機能を合わせ持ったネットワーク制御ソフトウェア群は一般にプロトコルスタックと称され、それらの機器が採用するOS(Operating System)によってプロトコルスタックは異なってくる。例えばUNIX(登録商標)系のOSには、カーネルにプロトコルスタックが標準搭載されていることが多い。一方、通信に標準対応していないOSについても、通信機器の開発メーカ・製造メーカに向けた、そのOSに対して通信機能を提供するためのプロトコルスタック製品が販売・提供されていることが多い。そのため、多様な仕様から成る各プロトコル機能を組み合わせた標準規格に則した通信機能を有する機器を開発・製造することは、今般は比較的困難ではなくなってきている。 A network control software group having functions such as a network layer protocol and a transport layer protocol is generally referred to as a protocol stack, and the protocol stack differs depending on an OS (Operating System) adopted by these devices. For example, a UNIX (registered trademark) OS often has a standard protocol stack in the kernel. On the other hand, for OSs that do not support communication as a standard, protocol stack products for providing communication functions to the OSs are often sold and provided to communication device developers and manufacturers. . For this reason, it has become relatively difficult to develop and manufacture a device having a communication function conforming to a standard combining various protocol functions having various specifications.
プロトコルスタックの代表的なAPI(Application Program Interface)仕様として、非特許文献1や非特許文献2に示されるソケットがある。 As typical API (Application Program Interface) specifications of the protocol stack, there are sockets shown in Non-Patent Document 1 and Non-Patent Document 2.
図10は、代表的なソケットAPI仕様を有するプロトコルスタックにおける、TCPプロトコル通信のAPI関数呼び出し順を示す図であり、図11は、代表的なソケットAPI仕様を有するプロトコルスタックにおける、UDPプロトコル通信のAPI関数呼び出し順を示す図である。いずれの図も、右半分がサーバ側を示しており、左半分がクライアント側を示している。これら図に示した関数は一般的な表記であるが、他の一般的な表記としてwrite関数1006の代わりにsend関数と表記することもあり、又read関数1005の代わりにrecv関数と表記することもある。
FIG. 10 is a diagram showing an API function call order of TCP protocol communication in a protocol stack having a typical socket API specification, and FIG. 11 is a diagram of UDP protocol communication in a protocol stack having a typical socket API specification. It is a figure which shows API function call order. In both figures, the right half shows the server side, and the left half shows the client side. Although the functions shown in these figures are general notations, other general notations may be expressed as send functions instead of write
socket関数1001は、TCPプロトコル通信/UDPプロトコル通信や、サーバ/クライアント等の属性を持つソケットを生成する。bind関数1002は、ソケットにポート番号等の属性を与える。listen関数1003は通信相手からの接続を待つ。connect関数1011は通信相手に接続を要求する。accept関数1004は通信相手からの接続を受け入れる。write関数1006及びsendto関数1106は通信相手にデータを送り、一方、read関数1005及びrecvfrom関数1105は通信相手からのデータを受ける。close関数1007はソケットを閉じる。
The
ソケットAPI仕様を有するプロトコルスタックとそれを用いるアプリケーションプログラムのTCPによるデータ送信時の働きについて、通信相手の指定や接続の確立・切断の手続き等については省略し、特に送信データの流れ(write関数1006の働きの詳細)に着目して説明すると、次の送信ステップ1〜5のようになる。
With regard to the protocol stack having the socket API specification and the operation of the application program using the TCP at the time of data transmission by TCP, the specification of the communication partner and the procedure for establishing / disconnecting the connection are omitted, and the flow of transmission data (write
[送信ステップ1]アプリケーションプログラムは、アプリケーションプログラム自身が(OSのメモリ管理機能を用いて)確保済の第1のメモリ領域に、送信すべきデータを格納(準備)する。 [Transmission Step 1] The application program stores (preparation) data to be transmitted in the first memory area secured by the application program itself (using the memory management function of the OS).
[送信ステップ2]アプリケーションプログラムは、プロトコルスタックに対して第1のメモリ領域を指定しながらwrite関数1006を呼び出し送信指示する。
[Transmission Step 2] The application program calls the
[送信ステップ3]プロトコルスタックは、プロトコルスタック自身が(OSのメモリ管理機能を用いて)確保済の第2のメモリ領域にアプリケーションプログラムから指定された第1のメモリ領域のデータをコピーし、更にそのデータのチェックサム値を計算する。ここにチェックサム値の計算は、対象とするデータは同一であるため、コピーと同時に行うことも可能である。 [Transmission Step 3] The protocol stack copies the data in the first memory area designated by the application program to the second memory area secured by the protocol stack itself (using the memory management function of the OS). Calculate the checksum value of the data. Here, the calculation of the checksum value can be performed simultaneously with the copy because the target data is the same.
[送信ステップ4]プロトコルスタックは、得られたチェックサム値を用いてTCPヘッダ等のプロトコルヘッダを生成する。 [Transmission Step 4] The protocol stack generates a protocol header such as a TCP header using the obtained checksum value.
[送信ステップ5]プロトコルスタックは、通信相手に対して、生成したプロトコルヘッダとともに第2のメモリ領域のデータを送信する。 [Transmission Step 5] The protocol stack transmits the data in the second memory area together with the generated protocol header to the communication partner.
又、ソケットAPI仕様を有するプロトコルスタックとそれを用いるアプリケーションプログラムのTCPによるデータ受信時の働きについて、通信相手の指定や接続の確立・切断の手続き等については省略し、特に受信データの流れ(read関数1005の働きの詳細)に着目して説明すると、次の受信ステップ1〜5のようになる。
In addition, the protocol stack having the socket API specification and the operation of the application program using the socket when receiving data by TCP are omitted for the specification of the communication partner and the procedure for establishing / disconnecting the connection. The following receiving steps 1 to 5 will be described with a focus on the details of the
[受信ステップ1]プロトコルスタックは、プロトコルスタック自身が(OSのメモリ管理機能を用いて)確保済の第3のメモリ領域に、通信相手からの受信データを格納する。 [Reception Step 1] The protocol stack stores the received data from the communication partner in the third memory area secured by the protocol stack itself (using the memory management function of the OS).
[受信ステップ2]アプリケーションプログラムは、プロトコルスタックに対してアプリケーションプログラム自身が(OSのメモリ管理機能を用いて)確保済の第四のメモリ領域を指定しながらread関数1005を呼び出し受信指示する。
[Reception Step 2] The application program calls the
[受信ステップ3]プロトコルスタックは、アプリケーションプログラムから指定された第四のメモリ領域に第3のメモリ領域のデータをコピーし、更にそのデータのチェックサム値を計算する。ここにチェックサム値の計算は、対象とするデータは同一であるため、コピーと同時に行うことも可能である。 [Reception Step 3] The protocol stack copies the data in the third memory area to the fourth memory area designated by the application program, and further calculates the checksum value of the data. Here, the calculation of the checksum value can be performed simultaneously with the copy because the target data is the same.
[受信ステップ4]プロトコルスタックは、得られたチェックサム値と受信TCPヘッダに含まれるチェックサム値が整合していることを確認すると、アプリケーションプログラムに知らせる。 [Reception Step 4] When the protocol stack confirms that the obtained checksum value matches the checksum value included in the received TCP header, the protocol stack notifies the application program.
[受信ステップ5]アプリケーションプログラムは、第四のメモリ領域のデータを利用する。 [Reception Step 5] The application program uses the data in the fourth memory area.
尚、以上のソケットAPI仕様を有するプロトコルスタックとそれを用いるアプリケーションプログラムのTCPによるデータ受信時の働きにおいて、上記受信ステップ1と2は、通信相手からの受信データの到着タイミングによっては前後することもある。 It should be noted that the reception steps 1 and 2 may be changed depending on the arrival timing of the received data from the communication partner in the function of the protocol stack having the above socket API specifications and the application program using the socket when receiving data by TCP. is there.
このようにデータの送受信に際して、ソケットAPI仕様を有するプロトコルスタックを用いたアプリケーションプログラムは、準備した送信データが格納されたメモリ領域を指定しながら送信関数を呼び出したり、後ほど利用するための受信データを格納すべきメモリ領域を指定しながら受信関数を呼び出したりするだけでよい。そのためソケットAPI仕様を有するプロトコルスタックは、アプリケーションプログラムが負担・配慮しなければならないことが少ない体系として完成しており、機器やOSの種別に関わらず広く利用されている。
しかしながら、前述のソケットAPI仕様のプロトコルスタックでは、データ送信時はアプリケーションプログラムが確保したメモリ領域からプロトコルスタックが確保したメモリ領域への、データ受信時はプロトコルスタックが確保したメモリ領域からアプリケーションプログラムが確保したメモリ領域への、チェックサム計算を伴うデータコピーが発生する。これにより、そのデータが流れるバス帯域の浪費を導き、又、その処理を行うプロセッサの処理負荷の浪費を導くという問題があった。 However, in the protocol stack of the socket API specification described above, the application program secures from the memory area secured by the protocol stack to the memory area secured by the protocol stack when data is transmitted, and from the memory area secured by the protocol stack when data is received. Data copy with checksum calculation occurs in the selected memory area. As a result, there is a problem that the bus bandwidth through which the data flows is wasted and the processing load of the processor that performs the processing is wasted.
そこで、本発明の目的は、アプリケーションプログラムとプロトコルスタックの間のチェックサム計算を伴うデータコピーを発生させずに送受信することで、バス帯域の消費の効率化、及びプロセッサの処理負荷の消費の効率化を達成するストリームデータ通信方法及びストリームデータ通信装置を提供することにある。 Therefore, an object of the present invention is to transmit and receive data without accompanying checksum calculation between an application program and a protocol stack, thereby improving the efficiency of bus bandwidth consumption and the efficiency of processor processing load consumption. It is an object to provide a stream data communication method and a stream data communication apparatus that achieve the above.
本発明のストリームデータ通信方法及びストリームデータ通信装置においては、チェックサム計算モジュールを有し、ストリームデータが入力されるストリームインタフェースと、ストリームデータを送信する通信インタフェースと、アプリケーションプログラムとプロトコルスタックとで構成されるプログラムが記憶されるメモリと、プログラムを処理するプロセッサとを備え、チェックサム計算モジュールを利用してチェックサム値を計算し、アプリケーションプログラムとプロトコルスタックで利用するメモリを共有化し、送信時にはアプリケーションプログラムが準備した送信すべきデータをプロトコルスタックがコピーすることなく通信インタフェースに指示して送信し、受信時には通信インタフェースがネットワークを介して受信するデータをプロトコルスタックがコピーすることなくアプリケーションプログラムが利用することを最も主要な特徴とする。 In the stream data communication method and the stream data communication apparatus of the present invention, the stream data communication method has a checksum calculation module, and includes a stream interface to which stream data is input, a communication interface for transmitting stream data, an application program, and a protocol stack. A memory for storing the program to be stored, and a processor for processing the program, calculate the checksum value using the checksum calculation module, share the memory used by the application program and the protocol stack, and transmit the application The protocol stack sends data prepared by the program to the communication interface without copying, and when receiving, the communication interface receives it via the network. The most important feature that the application program is utilized without a data protocol stack copy.
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。 Among the inventions disclosed in the present application, effects obtained by typical ones will be briefly described as follows.
本発明によれば、アプリケーションプログラムとプロトコルスタックの間のチェックサム計算を伴うデータコピーが発生せずに送受信可能なため、バス帯域の消費の効率化、及びプロセッサの処理負荷の消費の効率化を達成するという利点がある。 According to the present invention, data can be transmitted and received without generating a checksum calculation between the application program and the protocol stack, so that the bus bandwidth can be consumed more efficiently and the processor processing load can be consumed more efficiently. There is an advantage to achieve.
以下、本発明の実施の形態を図面に基づいて詳細に説明する。尚、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. Note that components having the same function are denoted by the same reference symbols throughout the drawings for describing the embodiment, and the repetitive description thereof will be omitted.
(実施の形態1)
<ストリームデータ通信装置の構成>
図1により、本発明の実施の形態1に係るストリームデータ通信装置の構成について説明する。図1は本発明の実施の形態1に係るストリームデータ通信装置の構成を示す構成図であり、ストリームデータの送信を行う構成である。
(Embodiment 1)
<Configuration of stream data communication apparatus>
The configuration of the stream data communication apparatus according to Embodiment 1 of the present invention will be described with reference to FIG. FIG. 1 is a configuration diagram showing a configuration of a stream data communication apparatus according to Embodiment 1 of the present invention, which is a configuration for transmitting stream data.
図1において、ストリームデータ通信装置101は、各種のデータ演算や判断等のデータ処理を行うプロセッサ111と、データを記憶するメモリ112と、データの送信及び受信を行う通信インタフェース113と、ストリームデータの入力及び出力を行うストリームインタフェース114を備える。プロセッサ111とメモリ112と通信インタフェース113とストリームインタフェース114とは、内バス116を介して接続されている。
In FIG. 1, a stream
プロセッサ111と通信インタフェース113とストリームインタフェース114はそれぞれ、特にメモリ112へのアクセスについては内バス116を主導する(バスマスタである)。ストリームインタフェース114は、チェックサム計算を行うチェックサム計算モジュール115を備える。
Each of the
更に、ストリームデータ通信装置101は、通信インタフェース113に接続された通信ケーブル121を介して、LAN或いはインターネットといったネットワーク122に接続されている。ネットワーク122には図示していない通信相手が存在し、ストリームデータ通信装置101はその通信相手と通信可能な状態である。
Further, the stream
更に、ストリームデータ通信装置101は、外バス131を介してストリーマ132と接続されている。ストリーマ132は、図示していない記憶装置からその記憶装置に格納されているストリームデータを入手したり、或いはその記憶装置にストリームデータを格納したり、或いは図示していないチューナからストリームデータを受けたり、或いはストリームデータを処理して映像データや音声データを生成し、図示していないディスプレイに映像データを、図示していないスピーカに音声データを送ったりすること等が可能である。ストリームデータ通信装置101は、ストリーマ132からストリームデータが入力され、ストリーマ132へストリームデータを出力する。
Further, the stream
<ストリームデータ通信装置のストリームデータ通信方法>
次に、図2及び図3により、本発明の実施の形態1に係るストリームデータ通信装置のストリームデータ通信方法について説明する。図2は本発明の実施の形態1に係るストリームデータ通信装置のストリームデータ通信方法を示すフローチャートであり、ストリームデータを送信する場合の動作を示している。図3は本発明の実施の形態1に係るストリームデータ通信装置のストリームデータ通信方法においてストリームデータを送信する場合のメモリ内のデータ配置を示す図である。
<Stream Data Communication Method of Stream Data Communication Device>
Next, the stream data communication method of the stream data communication apparatus according to Embodiment 1 of the present invention will be described with reference to FIG. 2 and FIG. FIG. 2 is a flowchart showing the stream data communication method of the stream data communication apparatus according to Embodiment 1 of the present invention, and shows the operation when transmitting stream data. FIG. 3 is a diagram showing a data arrangement in the memory when stream data is transmitted in the stream data communication method of the stream data communication apparatus according to Embodiment 1 of the present invention.
まず、プロセッサ111は、メモリ112が記憶している3種類のプログラム、すなわちアプリケーションプログラム301、及びプロトコルスタック302、及び図示していないOS(カーネル)に従って動作している。
First, the
以下では、プロセッサ111という語句の代わりにプロセッサ111で処理中のプログラム(アプリケーションプログラム301、又はプロトコルスタック302)を語句として用い、ストリームデータを送信する場合におけるストリームデータ通信装置101の動作について説明する。
Hereinafter, the operation of the stream
まず、ステップ1(201)において、アプリケーションプログラム301は、ストリームインタフェース114に対して、ストリーマ132から入力されるストリームデータのチェックサム値を計算しつつそのストリームデータを第1のメモリ領域311に格納することを指示する。それによって、ストリームインタフェース114は、入力されるストリームデータのチェックサム値をチェックサム計算モジュール115を用いて計算しつつそのストリームデータを第1のメモリ領域311に格納する。
First, in step 1 (201), the
次に、ステップ2(202)において、アプリケーションプログラム301は、プロトコルスタック302に対して、ステップ1(201)において、チェックサム計算モジュール115が計算したチェックサム値と第1のメモリ領域311を指定して送信指示する。
Next, in step 2 (202), the
すなわち、アプリケーションプログラム301は、ステップ1(201)において、チェックサム計算モジュール115が計算したチェックサム値と第1のメモリ領域311を指定して、プロセッサ111の次の処理としてプロトコルスタック302の送信処理へと移す。
That is, the
次に、ステップ3(203)において、指示を受けたプロトコルスタック302は、指定されたチェックサム値を用いて、指定された第1のメモリ領域311に格納されているストリームデータを通信に供させるためのデータ(プロトコルヘッダ)を生成して、第2のメモリ領域312に格納する。
Next, in step 3 (203), the
一般に、プロトコルヘッダとは、例えば、TCPプロトコルによる通信の場合はMAC(Media Access Control)ヘッダ、IPヘッダ、及びTCPヘッダであり、又、例えば、UDPプロトコルによる通信の場合はMACヘッダ及びIPヘッダ及びUDPヘッダである。IPv6プロトコルによる通信の場合はそれらIPヘッダは実際にはIPv6ヘッダである。 In general, the protocol header is, for example, a MAC (Media Access Control) header, an IP header, and a TCP header in the case of communication using the TCP protocol, and a MAC header and an IP header in the case of communication using the UDP protocol, for example. It is a UDP header. In the case of communication using the IPv6 protocol, these IP headers are actually IPv6 headers.
TCPヘッダには必須として、UDPヘッダには選択可能として、送信すべきデータとプロトコルヘッダの構成要素の一部(ポート番号等)のチェックサム値を格納する部分がある。ステップ3(203)では、指定された第1のメモリ領域311に格納されたデータを読み出すことなく、指定されたチェックサム値を利用してその値とプロトコルヘッダの構成要素の一部とのチェックサム値を計算して、TCPヘッダ或いはUDPヘッダに格納するチェックサム値とする。
The TCP header is essential, the UDP header is selectable, and there is a portion that stores data to be transmitted and a checksum value of a part of the components of the protocol header (port number and the like). In step 3 (203), the specified checksum value is used to check the value and a part of the constituent elements of the protocol header without reading the data stored in the specified
次に、ステップ4(204)において、プロトコルスタック302は、通信インタフェース113に対して、第2のメモリ領域312と第1のメモリ領域311それぞれに格納されているデータを一連の送信データとして送信することを指示する。それによって通信インタフェース113は、指定された第2のメモリ領域312と第1のメモリ領域311に格納されているそれぞれのデータを一連の送信データとして、通信ケーブル121、ひいてはネットワーク122、ひいては通信相手へと送信する。
Next, in step 4 (204), the
次に、プロトコルスタック302は、送信完了を認識すると、ステップ5(205)において、アプリケーションプログラム301に対して送信完了したことを知らせる。
Next, when recognizing the completion of transmission, the
最終的にステップ5(205)において、アプリケーションプログラム301が送信完了を知った後には、アプリケーションプログラム301は、第1のメモリ領域311を(OSのメモリ管理機能を用いて)解放、或いは別用途に用いて別データを再格納することが可能であるし、或いはステップ1(201)から再開して第1のメモリ領域311に次に送信すべきストリームデータを再格納することも可能である。
Finally, in step 5 (205), after the
逆に、送信完了を知る前には、アプリケーションプログラム301が第1のメモリ領域311の解放や再格納することは制限される。第1のメモリ領域311に格納されているストリームデータが通信インタフェース113からの送信前に、或いは通信相手からの受信応答の確認前に破壊されてしまうと、アプリケーションプログラム301が意図した送信すべきストリームデータを送信、或いは再送信できなくなるためである。
Conversely, before knowing the completion of transmission, the
但し、前述した送信完了とは、受信側が正常受信したという意味に限定されるものではなく、信頼性の提供が不要な通信では、例えば通信インタフェース113が送信している最中に通信ケーブル121で信号が衝突したことによる送信エラーを送信完了と見なす等も可能である。
However, the above-described transmission completion is not limited to the meaning that the reception side has received normally, and in communication that does not require provision of reliability, for example, the
尚、以上ではアプリケーションプログラム301が単一のストリームデータを単一の送信データとして送信する、言わば基本的な流れを説明したが、ストリームデータ通信方法はこれに限定されるものではない。
In the above description, the basic flow in which the
例えば、ステップ1(201)において、アプリケーションプログラム301は逐次入力されるストリームデータのそれぞれのチェックサム値を計算しつつそれぞれのストリームデータを複数のメモリ領域それぞれに格納するように指示し、ステップ2(202)において、アプリケーションプログラム301はそれぞれのチェックサム値と対応するメモリ領域を指定して、それぞれ送信指示し、ステップ3(203)において、プロトコルスタック302は対応するプロトコルヘッダをそれぞれ生成し、ステップ4(204)において、プロトコルスタック302はそれぞれのプロトコルヘッダ及び対応するストリームデータを合わせた一連のデータそれぞれを指定しつつ送信指示し、ステップ5(205)において、プロトコルスタック302は送信完了したものから知らせる、等の実施も可能である。
For example, in step 1 (201), the
又、上述ではステップ2(202)において、アプリケーションプログラム301がプロトコルスタック302にチェックサム値を知らせるとしたが、これは明示的なものではなく、暗黙的な実施も可能である。すなわち、例えば、ステップ1(201)において、チェックサム計算モジュール115が計算したチェックサム値をストリームインタフェース114が、例えば第1のメモリ領域311の直後のメモリ領域に格納することを決まり事としておけば、ステップ2(202)において、アプリケーションプログラム301がプロトコルスタック302にチェックサム値を明示的に知らせなくても、ステップ3(203)では、プロトコルスタック302は第1のメモリ領域311の直後のメモリ領域を読み出した値をチェックサム値として利用する、等の実施も可能である。
In the above description, in step 2 (202), the
尚、プロトコルスタック302は、既存のAPI仕様を有するプロトコルスタックを簡単に修正することによって実施することが可能である。すなわち、図10及び図11に示した公知の代表的なソケットAPI仕様を有するプロトコルスタックのAPI関数において、write関数1006或いはsendto関数1106は、ソケットとデータ(メモリ領域)だけを与えられるのではなく、そのデータのチェックサム値も与えられて、ステップ3(203)〜ステップ5(205)を実行するように修正すればよい。
The
それに対応するアプリケーションプログラム301は、ステップ1(201)において、ストリームデータを通信に供するサイズ毎に分割してそれぞれのチェックサム値をチェックサム計算モジュール115を用いて計算し(そのようにストリームインタフェース114に指示し)、ステップ2(202)において、メモリ領域と合わせて得られたチェックサム値も指定してそれら関数を呼び出すように修正すればよい。
In step 1 (201), the
そして、アプリケーションプログラム301とプロトコルスタック302との間でフラグを予め共有し、アプリケーションプログラム301がそれら関数の呼び出しの前にそのフラグを初期化しておき、プロトコルスタック302はステップ5(205)において、そのフラグの値を変更すれば、そのフラグの値をアプリケーションプログラム301が観測することにより、プロトコルスタック302がアプリケーションプログラム301に対して送信完了したことを知らせることが可能である。
Then, a flag is shared in advance between the
ステップ5(205)において、プロトコルスタック302がアプリケーションプログラム301に対して送信完了したことを知らせる他の方法は、アプリケーションプログラム301へコールバックする関数を登録するための新規のAPI関数をプロトコルスタック302に予め用意し、コールバック関数(イベントリスナー)をアプリケーションプログラム301に予め用意し、アプリケーションプログラム301はそのAPI関数を用いてそのコールバック関数を予め登録し、プロトコルスタック302がステップ5(205)において、その関数を呼び出せばよい。
In step 5 (205), another method for notifying that the
ステップ5(205)において、プロトコルスタック302がアプリケーションプログラム301に対して送信完了したことを知らせる更なる他の方法は、アプリケーションプログラム301が割り込み処理の関数を予め用意し、プロトコルスタック302がステップ5(205)において、その割り込み処理の関数に対応する割り込み要求を発生させればよい。
In step 5 (205), another method for notifying that the
以上説明したストリームデータ通信方法及びストリームデータ通信装置によれば、アプリケーションプログラムとプロトコルスタックの間のチェックサム計算を伴うデータコピーは発生せずにストリームデータを送信可能なため、バス帯域の消費の効率化、及びプロセッサの処理負荷の消費の効率化を達成する。 According to the stream data communication method and the stream data communication apparatus described above, the stream data can be transmitted without causing a data copy accompanied by a checksum calculation between the application program and the protocol stack. And efficient consumption of the processing load of the processor.
尚、本実施の形態のストリームインタフェース114は、図示していないタイムスタンプ挿入モジュールを備えることが可能である。タイムスタンプ挿入モジュールは、ストリーマ132からストリームインタフェース114に入力されるストリームデータに対して、所定のサイズ毎に(相対的な)時間データ(タイムスタンプ)を挿入する。
The
この場合、以前の説明では、ストリーマ132からストリームインタフェース114に入力されるストリームデータのを除く全ての「ストリームデータ」を「タイムスタンプが挿入されたストリームデータ」と読み替えれば実施可能である。こうすることで、通信相手(受信側)でこのタイムスタンプ値を参照することにより、ストリーマ132からの入力と相対的な時間が等しいタイミングで通信相手はストリームデータを扱うことが可能となる。
In this case, in the previous description, all “stream data” except the stream data input from the
又、本実施の形態のストリームインタフェース114は、図示していない暗復号化モジュールを備えることが可能である。暗復号化モジュールは、ストリーマ132からストリームインタフェース114に入力される暗号化されたストリームデータを復号して元のストリームデータに戻す。
Further, the
この場合、以前の説明では、ストリーマ132からストリームインタフェース114に入力される(暗号化された)「ストリームデータ」のみを「暗号化されたストリームデータ」と読み替えれば実施可能である。こうすることで、外バス131を流れるストリームデータが暗号化されることになり、外バス131が攻撃されることによるストリームデータの不正な複製等を避けることが可能となる。
In this case, in the previous description, it is possible to replace only “stream data” (encrypted) input (encrypted) from the
又、暗復号化モジュールは、ストリーマ132からストリームインタフェース114に入力されるストリームデータを暗号化する。この場合、以前の説明では、ストリーマ132からストリームインタフェース114に入力されるストリームデータを除く全ての「ストリームデータ」を「暗号化されたストリームデータ」と読み替えれば実施可能である。こうすることで、通信相手(受信側)までのネットワーク122を流れるストリームデータが暗号化されることになり、ネットワーク122が攻撃されることによるストリームデータの不正な複製等を避けることが可能となる。
The encryption / decryption module encrypts stream data input from the
(実施の形態2)
<ストリームデータ通信装置の構成>
図4により、本発明の実施の形態2に係るストリームデータ通信装置の構成について説明する。図4は本発明の実施の形態2に係るストリームデータ通信装置の構成を示す構成図であり、ストリームデータの受信を行う構成である。
(Embodiment 2)
<Configuration of stream data communication apparatus>
The configuration of the stream data communication apparatus according to Embodiment 2 of the present invention will be described with reference to FIG. FIG. 4 is a block diagram showing the configuration of the stream data communication apparatus according to Embodiment 2 of the present invention, which is a configuration for receiving stream data.
図4において、実施の形態1で説明した図1と符号が同じ部位の働きの概要は、実施の形態1と同じであるため、ここでは説明を省く。 In FIG. 4, the outline of the operation of the parts having the same reference numerals as those in FIG.
ストリームデータ通信装置401は、プロセッサ111と、メモリ112と、データの送信及び受信を行う通信インタフェース413と、ストリームデータの入力及び出力を行うストリームインタフェース414を備える。プロセッサ111とメモリ112と通信インタフェース413とストリームインタフェース414とは、内バス116を介して接続されている。
The stream
プロセッサ111と通信インタフェース413とストリームインタフェース414はそれぞれ、特にメモリ112へのアクセスについては内バス116を主導する(バスマスタである)。通信インタフェース413は、チェックサム計算を行うチェックサム計算モジュール415を備える。
Each of the
<ストリームデータ通信装置のストリームデータ通信方法>
次に、図5及び図6により、本発明の実施の形態2に係るストリームデータ通信装置のストリームデータ通信方法について説明する。図5は本発明の実施の形態2に係るストリームデータ通信装置のストリームデータ通信方法を示すフローチャートであり、ストリームデータを受信する場合の動作を示している。図6は本発明の実施の形態2に係るストリームデータ通信装置のストリームデータ通信方法においてストリームデータを受信する場合のメモリ内のデータ配置を示す図である。
<Stream Data Communication Method of Stream Data Communication Device>
Next, the stream data communication method of the stream data communication apparatus according to Embodiment 2 of the present invention will be described with reference to FIGS. FIG. 5 is a flowchart showing the stream data communication method of the stream data communication apparatus according to Embodiment 2 of the present invention, and shows the operation when receiving stream data. FIG. 6 is a diagram showing a data arrangement in the memory when stream data is received in the stream data communication method of the stream data communication apparatus according to Embodiment 2 of the present invention.
まず、プロセッサ111は、メモリ112が記憶している3種類のプログラム、すなわちアプリケーションプログラム601、及びプロトコルスタック602、及び図示していないOS(カーネル)に従って動作している。
First, the
以下では、プロセッサ111という語句の代わりにプロセッサ111で処理中のプログラム(アプリケーションプログラム601、又はプロトコルスタック602)を語句として用い、ストリームデータを受信する場合におけるストリームデータ通信装置401の動作を説明する。
In the following, the operation of the stream
まず、ステップ1(501)において、プロトコルスタック602は、通信インタフェース413に対して、図示していない通信相手からの受信データのチェックサム値を計算しつつその受信データを第1のメモリ領域611に格納することを指示する。それによって通信インタフェース413は、通信相手からの受信データのチェックサム値をチェックサム計算モジュール415を用いて計算しつつその受信データを第1のメモリ領域611に格納する。
First, in step 1 (501), the
尚、ステップ1(501)において、チェックサム計算モジュール415は、受信データのうち、プロトコルヘッダが常に存在する最初の所定サイズのデータを無視し、残りの部分のチェックサム値を計算するようにも実施可能である。又、チェックサム計算モジュール415は、受信データのうち、プロトコルヘッダが拡張されていないか解釈して適切なサイズのデータを無視するようにも実施可能である。更に、チェックサム計算モジュール415は、TCPヘッダやUDPヘッダに格納されるチェックサム値の計算に参照されるプロトコルヘッダの構成要素の一部(ポート番号等)は無視せずに、プロトコルヘッダ以外の部分と合わせてチェックサム値を計算するようにも実施可能である。
In step 1 (501), the
次に、ステップ2(502)において、プロトコルスタック602は、第1のメモリ領域611に格納されたデータのうち通信に供させるためのデータ(プロトコルヘッダ)612を解釈して、残りのデータが格納された第2のメモリ領域613を抽出(認識)しつつ、ステップ1(501)において、チェックサム計算モジュール415が計算したチェックサム値も用いてアプリケーションプログラム601が扱うべき適切なデータかどうかを判定する。
Next, in step 2 (502), the
すなわち、プロトコルヘッダ612に含まれるアドレスとストリームデータ通信装置401のネットワークアドレスが整合しているか、或いはプロトコルヘッダ612に含まれるポート番号とアプリケーションプログラム601のポート番号が整合しているか、或いはプロトコルヘッダ612に含まれるTCPヘッダ或いはUDPヘッダに格納されているチェックサム値と、プロトコルヘッダ612の構成要素の一部(ポート番号等)と第2のメモリ領域613に格納されているデータから計算されるチェックサム値が整合しているか、等である。このチェックサム値の整合性の判定では、第2のメモリ領域613に格納されたデータを読み出すことなく、ステップ1(501)によって得られたチェックサム値を利用する。
That is, the address included in the
この判定によって、ストリームデータ通信装置401が扱うべきデータではないことを(他の通信装置へのデータ、或いは破損したと推定されるデータである等と)認識すると、プロトコルスタック602は第1のメモリ領域611に格納されたデータを廃棄(無視)する。又、プロトコルスタック602が扱うべきデータであると認識すると、プロトコルスタック602は対応した処理を行う。又、アプリケーションプログラム601ではない他のアプリケーションプログラムが扱うべきデータであると認識すると、プロトコルスタック602は以降のステップを対応するアプリケーションプログラムのために行う。
If it is determined by this determination that the data is not to be handled by the stream data communication device 401 (data to another communication device or data estimated to be damaged, etc.), the
図示していないが、アプリケーションプログラム601が扱うべきデータであると認識された場合のみ、次のステップ3(503)に進み、他の場合は本説明においてはステップ1(501)に戻る。
Although not shown, only when it is recognized that the data should be handled by the
更に、ステップ3(503)において、アプリケーションプログラム601は、プロトコルスタック602に対して、受信指示する。
Furthermore, in step 3 (503), the
ここに、ステップ1(501)とステップ2(502)とステップ3(503)は、ステップ1(501)とステップ2(502)の順序は変わらないものの、アプリケーションプログラム601の受信指示タイミングと通信相手からの受信データの到着タイミングによっては、図5に示した順序に関わらず前後することもある。
Here, step 1 (501), step 2 (502), and step 3 (503) do not change the order of step 1 (501) and step 2 (502), but the reception instruction timing of
すなわち、ステップ1(501)の後にステップ3(503)が続き、その後にステップ2(502)が続くこともあれば、ステップ3(503)の後にステップ1(501)が続き、その後にステップ2(502)が続くこともある。 That is, Step 3 (503) is followed by Step 3 (503), followed by Step 2 (502), or Step 3 (503) is followed by Step 1 (501), followed by Step 2. (502) may follow.
次に、ステップ4(504)において、プロトコルスタック602は、アプリケーションプログラム601に対して、アプリケーションプログラム601が扱うべきストリームデータが格納されている第2のメモリ領域613を知らせる。
Next, in step 4 (504), the
次に、ステップ5(505)において、アプリケーションプログラム601は、ストリームインタフェース414に対して、知らされた第2のメモリ領域613に格納されているストリームデータをストリーマ132に出力することを指示する。
Next, in step 5 (505), the
それによってストリームインタフェース414は、第2のメモリ領域613に格納されているストリームデータをストリーマ132に出力する。
Thereby, the
次に、アプリケーションプログラム601は、出力完了を認識すると、ステップ6(506)において、プロトコルスタック602に対して利用完了したことを知らせる。
Next, when recognizing the completion of output, the
最終的にステップ6(506)においてプロトコルスタック602が利用完了を知った後には、プロトコルスタック602は、第2のメモリ領域613を(OSのメモリ管理機能を用いて)解放、或いは別用途に用いて別データを再格納することができるし、或いはステップ1(501)から再開して第1のメモリ領域611に次の受信データを再格納することもできる。逆に利用完了を知る前には、プロトコルスタック602が第2のメモリ領域613の解放や再格納することは制限される。
Finally, after the
尚、以上ではアプリケーションプログラム601が単一の受信データに含まれる単一のストリームデータを利用する、言わば基本的な流れを説明したが、ストリームデータ通信方法はこれに限定されるものではない。例えば、ステップ1(501)においてプロトコルスタック602は逐次受信される複数の受信データのそれぞれのチェックサム値を計算しつつそれぞれの受信データを複数のメモリ領域それぞれに格納するように指示し、ステップ2(502)においてプロトコルスタック602はそれぞれのメモリ領域に格納されたデータに対して解釈及び抽出及び判定し、ステップ3(503)においてアプリケーションプログラム601は複数回受信指示し、ステップ4(504)においてプロトコルスタック602は複数のメモリ領域を知らせ、ステップ5(505)においてアプリケーションプログラム601は複数のメモリ領域に格納されたストリームデータそれぞれを出力することを指示し、ステップ6(506)においてアプリケーションプログラム601は利用完了したものから知らせる、等の実施も可能である。
In the above, the basic flow in which the
尚、プロトコルスタック602は、既存のAPI仕様を有するプロトコルスタックを簡単に修正することによって実施することが可能である。すなわち、プロトコルスタック602は、ステップ1(501)において、受信データのチェックサム値をチェックサム計算モジュール415を用いて計算し(そのように通信インタフェース413に指示し)、ステップ2(502)におけるプロトコルヘッダ612の構成要素の一部(ポート番号等)と第2のメモリ領域613に格納されているデータから計算されるチェックサム値の計算を、第2のメモリ領域613に格納されたデータを読み出すことなく、ステップ1(501)によって得られたチェックサム値を利用するように修正すればよい。
The
又、図10及び図11に示した公知の代表的なソケットAPI仕様を有するプロトコルスタックのAPI関数において、read関数1005或いはrecvfrom関数1105は、アプリケーションプログラムが扱うべきデータを格納すべきメモリ領域が与えられるのではなく、アプリケーションプログラムが扱うべきデータが格納されたメモリ領域を与えるように修正すればよい。
In addition, in the API function of the protocol stack having the well-known representative socket API specifications shown in FIGS. 10 and 11, the
それに対応するアプリケーションプログラム601は、それら関数によって与えられるメモリ領域に格納されたデータを利用するように修正すればよい。
The
そして、アプリケーションプログラム601とプロトコルスタック602との間でフラグを予め共有し、プロトコルスタック602がそれら関数に対応する処理から抜ける前にそのフラグを初期化しておき、アプリケーションプログラム601はステップ6(506)において、そのフラグの値を変更すれば、そのフラグの値をプロトコルスタック602が観測することにより、アプリケーションプログラム601がプロトコルスタック602に対して利用完了したことを知らせることが可能である。
Then, a flag is shared in advance between the
ステップ6(506)において、アプリケーションプログラム601がプロトコルスタック602に対して利用完了したことを知らせる他の方法は、新規のAPI関数をプロトコルスタック602に予め用意し、アプリケーションプログラム601がステップ6(506)において、その関数を呼び出せばよい。
In step 6 (506), another method for notifying that the
ステップ6(506)において、アプリケーションプログラム601がプロトコルスタック602に対して利用完了したことを知らせる更なる他の方法は、プロトコルスタック602が割り込み処理の関数を予め用意し、アプリケーションプログラム601がステップ6(506)において、その割り込み処理の関数に対応する割り込み要求を発生させればよい。
In step 6 (506), another method for informing the
以上説明したストリームデータ通信方法及びストリームデータ通信装置によれば、プロトコルスタックとアプリケーションプログラムの間のチェックサム計算を伴うデータコピーは発生せずにストリームデータを受信可能なため、バス帯域の消費の効率化、及びプロセッサの処理負荷の消費の効率化を達成する。 According to the stream data communication method and the stream data communication apparatus described above, the stream data can be received without causing a data copy accompanied by a checksum calculation between the protocol stack and the application program. And efficient consumption of the processing load of the processor.
尚、本実施の形態のストリームインタフェース414は、図示していないタイムスタンプ削除モジュールを備えることが可能である。タイムスタンプ削除モジュールは、通信相手(送信側)によって(相対的な)時間データ(タイムスタンプ)が挿入されたストリームデータに対して、そのタイムスタンプ値を参照することによって相対的な時間が等しいタイミングで、タイムスタンプを削除したストリームデータをストリーマ132に出力する。
Note that the
この場合、以前の説明では、ストリームインタフェース414がストリーマ132に出力するストリームデータを除く全ての「ストリームデータ」を「タイムスタンプが挿入されたストリームデータ」と読み替えれば実施可能である。こうすることで、通信相手(送信側)がこのタイムスタンプを挿入したのと相対的な時間が等しいタイミングで、ストリームデータをストリーマ132に出力することが可能となる。
In this case, in the previous description, it is possible to replace all “stream data” except the stream data output from the
又、本実施の形態のストリームインタフェース414は、図示していない暗復号化モジュールを備えることが可能である。暗復号化モジュールは、ストリームインタフェース114がストリーマ132に出力するデータを暗号化する。この場合、以前の説明では、ストリームインタフェース414がストリーマ132に出力する「ストリームデータ」のみを「暗号化されたストリームデータ」と読み替えれば実施可能である。こうすることで、外バス131を流れるストリームデータが暗号化されることになり、外バス131が攻撃されることによるストリームデータの不正な複製等を避けることが可能となる。
Further, the
又、暗復号化モジュールは、通信相手(送信側)によって暗号化されたストリームデータを復号して元のストリームデータに戻す。この場合、以前の説明では、ストリームインタフェース414がストリーマ132に出力するストリームデータを除く全ての「ストリームデータ」を「暗号化されたストリームデータ」と読み替えれば実施可能である。こうすることで、通信相手(受信側)からのネットワーク122を流れるストリームデータが暗号化されることになり、ネットワーク122が攻撃されることによるストリームデータの不正な複製等を避けることが可能となる。
The encryption / decryption module decrypts the stream data encrypted by the communication partner (transmission side) and returns the stream data to the original stream data. In this case, in the previous description, it is possible to read all “stream data” except the stream data output from the
(実施の形態3)
<ストリームデータ通信装置の構成>
図7により、本発明の実施の形態3に係るストリームデータ通信装置の構成について説明する。図7は本発明の実施の形態3に係るストリームデータ通信装置の構成を示す構成図であり、ストリームデータの送受信を行う構成である。
(Embodiment 3)
<Configuration of stream data communication apparatus>
The configuration of the stream data communication apparatus according to Embodiment 3 of the present invention will be described with reference to FIG. FIG. 7 is a block diagram showing the configuration of the stream data communication apparatus according to Embodiment 3 of the present invention, which is a configuration for transmitting and receiving stream data.
図7において、実施の形態1及び2で説明した図1及び図4と符号が同じ部位の働きの概要は、実施の形態1及び2と同じであるため、ここでは説明を省く。 In FIG. 7, the outline of the operation of the parts having the same reference numerals as those in FIGS. 1 and 4 described in the first and second embodiments is the same as that in the first and second embodiments, and thus description thereof is omitted here.
ストリームデータ通信装置701は、プロセッサ111と、メモリ112と、データの送信及び受信を行う通信インタフェース113と、ストリームデータの入力及び出力を行うストリームインタフェース414と、チェックサム計算を行うチェックサム計算モジュール715を備える。
The stream
プロセッサ111とメモリ112と通信インタフェース113とストリームインタフェース414とチェックサム計算モジュール715とは、内バス116を介して接続されている。プロセッサ111と通信インタフェース113とストリームインタフェース414とチェックサム計算モジュール715とはそれぞれ、特にメモリ112へのアクセスについては内バス116を主導する(バスマスタである)。
The
<ストリームデータ通信装置のストリームデータ通信方法>
次に、図8により、本発明の実施の形態3に係るストリームデータ通信装置のストリームデータ通信方法について説明する。図8は本発明の実施の形態3に係るストリームデータ通信装置のストリームデータ通信方法を示すフローチャートであり、ストリームデータを送信する場合の動作を示している。尚、本実施の形態のストリームデータを受信する場合のメモリ内のデータ配置は、実施の形態1で示した図3と同じであり、それを用いて説明する。
<Stream Data Communication Method of Stream Data Communication Device>
Next, the stream data communication method of the stream data communication apparatus according to Embodiment 3 of the present invention will be described with reference to FIG. FIG. 8 is a flowchart showing the stream data communication method of the stream data communication apparatus according to Embodiment 3 of the present invention, and shows the operation when transmitting stream data. Note that the data arrangement in the memory when receiving the stream data of the present embodiment is the same as that of FIG. 3 shown in the first embodiment, and will be described using that.
以下では、プロセッサ111という語句の代わりにプロセッサ111で処理中のプログラム(アプリケーションプログラム301、又はプロトコルスタック302)を語句として用い、ストリームデータを送信する場合におけるストリームデータ通信装置701の動作を説明する。
Hereinafter, the operation of the stream
まず、ステップ1(801)において、アプリケーションプログラム301は、ストリームインタフェース414に対して、ストリーマ132から入力されるストリームデータを第1のメモリ領域311に格納することを指示する。それによってストリームインタフェース414は、入力されるストリームデータのチェックサム値をチェックサム計算モジュール115を用いて計算しつつそのストリームデータを第1のメモリ領域311に格納する。
First, in step 1 (801), the
次に、ステップ2(802)において、アプリケーションプログラム301は、プロトコルスタック302に対して、第1のメモリ領域311を指定して送信指示する。
Next, in step 2 (802), the
次に、ステップ3(803)において、プロトコルスタック302は、チェックサム計算モジュール715に対して、指定された第1のメモリ領域311に格納されているデータのチェックサム値を計算することを指示する。それによってチェックサム計算モジュール715は、第1のメモリ領域311に格納されているデータをメモリ112から読み出し、そのチェックサム値を計算する。
Next, in step 3 (803), the
次に、ステップ4(804)において、得られたチェックサム値を用いて、指定された第1のメモリ領域311に格納されているストリームデータを通信に供させるためのデータ(プロトコルヘッダ)を生成して、第2のメモリ領域312に格納する。ステップ4(804)では、第1のメモリ領域311に格納されたデータを読み出すことなく、ステップ3(803)によって得られたチェックサム値を利用してその値とプロトコルヘッダの構成要素の一部とのチェックサム値を計算して、TCPヘッダ或いはUDPヘッダに格納するチェックサム値とする。
Next, in step 4 (804), using the obtained checksum value, data (protocol header) for generating the stream data stored in the designated
残りのステップ5(805)及びステップ6(806)はそれぞれ、図2に示す実施の形態1におけるステップ4(204)及びステップ5(205)と同じであるため、ここでは説明を省く。 The remaining Step 5 (805) and Step 6 (806) are the same as Step 4 (204) and Step 5 (205) in Embodiment 1 shown in FIG.
尚、以上ではアプリケーションプログラム301が単一のストリームデータを単一の送信データとして送信する、言わば基本的な流れを説明したが、ストリームデータ通信方法はこれに限定されるものではない。
In the above description, the basic flow in which the
例えば、ステップ1(801)において、アプリケーションプログラム301は逐次入力されるそれぞれのストリームデータを複数のメモリ領域それぞれに格納するように指示し、ステップ2(802)において、アプリケーションプログラム301はそれぞれのメモリ領域を指定して、それぞれ送信指示し、ステップ3(803)において、プロトコルスタック302は指定されたそれぞれのメモリ領域に格納されているデータのチェックサム値をそれぞれ計算することを指示し、ステップ4(804)において、プロトコルスタック302は対応するプロトコルヘッダをそれぞれ生成する、等の実施も可能である。
For example, in step 1 (801), the
尚、プロトコルスタック302は、既存のAPI仕様を有するプロトコルスタックを簡単に修正することによって実施することが可能である。すなわち、図10及び図11に示した公知の代表的なソケットAPI仕様を有するプロトコルスタックのAPI関数において、write関数1006或いはsendto関数1106は、それが呼ばれるとステップ3(803)〜ステップ6(806)を実行するように修正すればよい。
The
そして、ステップ6(806)においてプロトコルスタック302がアプリケーションプログラム301に対して送信完了したことを知らせる方法は、実施の形態1におけるステップ5(205)と同じであるため、ここでは説明を省く。
The method for notifying that the
以上説明したストリームデータ通信方法及びストリームデータ通信装置によれば、アプリケーションプログラムとプロトコルスタックの間のチェックサム計算を伴うデータコピー(メモリからの読み出し及びメモリへの書き込み)は発生せずにストリームデータを送信可能である。チェックサム計算を伴うデータのメモリからの読み出しのみは全てのストリームデータに対して発生するものの、チェックサム計算は主にプロセッサが行うのではなくチェックサム計算モジュールが行う。よって、実施の形態1と比べれば劣ると考えられるものの、バス帯域の消費の効率化、及びプロセッサの処理負荷の消費の効率化を達成する。 According to the stream data communication method and the stream data communication apparatus described above, stream data can be generated without causing data copy (reading from the memory and writing to the memory) that involves checksum calculation between the application program and the protocol stack. It can be sent. Although only reading from the memory of data accompanied by checksum calculation occurs for all stream data, the checksum calculation is not mainly performed by the processor but by the checksum calculation module. Therefore, although considered to be inferior to the first embodiment, it is possible to achieve efficient use of the bus bandwidth and efficient use of the processing load of the processor.
尚、本実施例のストリームインタフェース414は、図示していないタイムスタンプ挿入モジュールや、図示していない暗復号化モジュールを備えることが可能であり、その機能を利用してその効果を得ることが実施可能であることは、実施の形態1におけるストリームインタフェース114と同じであるため、ここでは説明を省く。
Note that the
(実施の形態4)
<ストリームデータ通信装置の構成>
実施の形態3におけるストリームデータ通信装置の構成は、実施の形態3で示した図7と同じでありそれを用いて説明する。働きの概要は、実施の形態3と同じであるため、ここでは説明を省く。
(Embodiment 4)
<Configuration of stream data communication apparatus>
The configuration of the stream data communication apparatus in the third embodiment is the same as that of FIG. 7 shown in the third embodiment, and will be described using that. Since the outline of the operation is the same as that of the third embodiment, the description is omitted here.
<ストリームデータ通信装置のストリームデータ通信方法>
次に、図9により、本発明の実施の形態4に係るストリームデータ通信装置のストリームデータ通信方法について説明する。図9は本発明の実施の形態3に係るストリームデータ通信装置のストリームデータ通信方法を示すフローチャートであり、ストリームデータを受信する場合の動作を示している。尚、本実施の形態のストリームデータを受信する場合のメモリ内のデータ配置は、実施例実施の形態2で示した図6と同じでありそれを用いて説明する。
<Stream Data Communication Method of Stream Data Communication Device>
Next, a stream data communication method of the stream data communication apparatus according to Embodiment 4 of the present invention will be described with reference to FIG. FIG. 9 is a flowchart showing the stream data communication method of the stream data communication apparatus according to Embodiment 3 of the present invention, and shows the operation when receiving stream data. Note that the data arrangement in the memory when receiving the stream data of the present embodiment is the same as that shown in FIG. 6 in the second embodiment, and will be described below.
以下では、プロセッサ111という語句の代わりにプロセッサ111で処理中のプログラム(アプリケーションプログラム601、又はプロトコルスタック602)を語句として用い、ストリームデータを受信する場合におけるストリームデータ通信装置701の動作を説明する。
In the following, the operation of the stream
まず、ステップ1(901)において、プロトコルスタック602は、通信インタフェース113に対して、図示していない通信相手からの受信データを第1のメモリ領域611に格納することを指示する。それによって通信インタフェース113は、通信相手からの受信データを第1のメモリ領域611に格納する。
First, in step 1 (901), the
次に、ステップ2(902)において、プロトコルスタック602は、第1のメモリ領域611に格納されたデータのうち通信に供させるためのデータ(プロトコルヘッダ)612を解釈して、残りのデータが格納された第2のメモリ領域613を抽出(認識)しつつ、アプリケーションプログラム601が扱うべき適切なデータかどうかを判定する。
Next, in step 2 (902), the
すなわち、プロトコルヘッダ612に含まれるアドレスとストリームデータ通信装置701のネットワークアドレスが整合しているか、或いはプロトコルヘッダ612に含まれるポート番号とアプリケーションプログラム601のポート番号が整合しているか、等である。尚、ステップ2(902)ではチェックサム値の整合性の判定は行わない。
That is, whether the address included in the
この判定によって、ストリームデータ通信装置701が扱うべきデータではないことを(他の通信装置へのデータ、或いは破損したと推定されるデータである等と)認識すると、プロトコルスタック602は第1のメモリ領域611に格納されたデータを廃棄(無視)する。又、プロトコルスタック602が扱うべきデータであると認識すると、プロトコルスタック602は対応した処理を行う。
If it is determined by this determination that the data to be handled by the stream
又、アプリケーションプログラム601ではない他のアプリケーションプログラムが扱うべきデータであると認識すると、プロトコルスタック602は以降のステップを対応するアプリケーションプログラムのために行う。図示していないが、アプリケーションプログラム601が扱うべきデータであると認識された場合のみ、次のステップ3(903)に進み、他の場合は本説明においてはステップ1(901)に戻る。
If the
次に、ステップ3(903)において、プロトコルスタック602は、チェックサム計算モジュール715に対して、抽出された第2のメモリ領域613に格納されているデータのチェックサム値を計算することを指示する。それによってチェックサム計算モジュール715は、第2のメモリ領域613に格納されているデータをメモリ112から読み出し、そのチェックサム値を計算する。
Next, in step 3 (903), the
次に、ステップ4(904)において、プロトコルスタック602は、プロトコルヘッダ612に含まれるTCPヘッダ或いはUDPヘッダに格納されているチェックサム値と、プロトコルヘッダ612の構成要素の一部(ポート番号等)と第2のメモリ領域613に格納されているデータから計算されるチェックサム値が整合しているかを判定する。ステップ4(904)では、第2のメモリ領域613に格納されたデータを読み出すことなく、ステップ3(903)によって得られたチェックサム計算モジュール715が計算したチェックサム値を利用する。
Next, in step 4 (904), the
更に、ステップ5(905)において、アプリケーションプログラム601は、プロトコルスタック602に対して、受信指示する。
In step 5 (905), the
ここに、ステップ1(901)〜ステップ4(904)とステップ5(905)は、ステップ1(901)〜ステップ4(904)の順序は変わらないものの、アプリケーションプログラム601の受信指示タイミングと通信相手からの受信データの到着タイミングによっては、図9に示した順序に関わらず前後することもある。
Here, step 1 (901) to step 4 (904) and step 5 (905) do not change the order of step 1 (901) to step 4 (904), but the reception instruction timing of the
残りのステップ6(906)〜ステップ8(908)は、それぞれ、実施の形態2におけるステップ4(504)〜ステップ6(506)と同じであるため、ここでは説明を省く。 The remaining Step 6 (906) to Step 8 (908) are the same as Step 4 (504) to Step 6 (506) in the second embodiment, respectively, and thus description thereof is omitted here.
尚、以上ではアプリケーションプログラム601が単一の受信データに含まれる単一のストリームデータを利用する、言わば基本的な流れを説明したが、ストリームデータ通信方法はこれに限定されるものではない。
In the above, the basic flow in which the
例えば、ステップ1(901)において、プロトコルスタック602は逐次受信される複数の受信データを複数のメモリ領域それぞれに格納するように指示し、ステップ2(902)において、プロトコルスタック602はそれぞれのメモリ領域に格納されたデータに対して解釈及び抽出及び判定し、ステップ3(903)において、プロトコルスタック602は指定されたそれぞれのメモリ領域に格納されているデータのチェックサム値をそれぞれ計算することを指示し、ステップ4(904)において、プロトコルスタック602はそれぞれのメモリ領域に格納されたデータに対して正当性を判定し、ステップ5(905)において、アプリケーションプログラム601は複数回受信指示する、等の実施も可能である。
For example, in step 1 (901), the
尚、プロトコルスタック602は、既存のAPI仕様を有するプロトコルスタックを簡単に修正することによって実施することが可能である。すなわち、プロトコルスタック602は、ステップ3(903)において、チェックサム値をチェックサム計算モジュール715を用いて計算し(そのようにチェックサム計算モジュール715に指示し)、ステップ4(904)におけるプロトコルヘッダ612の構成要素の一部(ポート番号等)と第2のメモリ領域613に格納されているデータから計算されるチェックサム値の計算を、第2のメモリ領域613に格納されたデータを読み出すことなく、ステップ3(903)によって得られたチェックサム値を利用するように修正すればよい。
The
又、図10及び図11に示した公知の代表的なソケットAPI仕様を有するプロトコルスタックのAPI関数において、read関数1005或いはrecvfrom関数1105は、アプリケーションプログラムが扱うべきデータを格納すべきメモリ領域が与えられるのではなく、アプリケーションプログラムが扱うべきデータが格納されたメモリ領域を与えるように修正すればよい。それに対応するアプリケーションプログラム601は、それら関数によって与えられるメモリ領域に格納されたデータを利用するように修正すればよい。
In addition, in the API function of the protocol stack having the well-known representative socket API specifications shown in FIGS. 10 and 11, the
そして、ステップ8(908)において、アプリケーションプログラム601がプロトコルスタック602に対して利用完了したことを知らせる方法は、実施の形態2におけるステップ6(506)と同じであるため、ここでは説明を省く。
In step 8 (908), the method for notifying the
以上説明したストリームデータ通信方法及びストリームデータ通信装置によれば、アプリケーションプログラムとプロトコルスタックの間のチェックサム計算を伴うデータコピー(メモリからの読み出し及びメモリへの書き込み)は発生せずにストリームデータを受信可能である。チェックサム計算を伴うデータのメモリからの読み出しのみは全てのストリームデータに対して発生するものの、チェックサム計算は主にプロセッサが行うのではなくチェックサム計算モジュールが行う。 According to the stream data communication method and the stream data communication apparatus described above, stream data can be generated without causing data copy (reading from the memory and writing to the memory) that involves checksum calculation between the application program and the protocol stack. It can be received. Although only reading of data accompanied by checksum calculation from the memory occurs for all stream data, the checksum calculation is not mainly performed by the processor but by the checksum calculation module.
よって、実施の形態2と比べれば劣ると考えられるものの、バス帯域の消費の効率化、及びプロセッサの処理負荷の消費の効率化を達成する。 Therefore, although considered to be inferior to the second embodiment, it is possible to achieve efficient use of the bus bandwidth and efficient use of the processing load of the processor.
尚、本実施の形態のストリームインタフェース414は、図示していないタイムスタンプ削除モジュールや、図示していない暗復号化モジュールを備えることが可能であり、その機能を利用してその効果を得ることが実施可能であることは、実施の形態2と同じであるため、ここでは説明を省く。
Note that the
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。 As mentioned above, the invention made by the present inventor has been specifically described based on the embodiment. However, the present invention is not limited to the embodiment, and various modifications can be made without departing from the scope of the invention. Needless to say.
例えば、図1,図4,図7に示すストリームデータ通信装置101,401,701それぞれの構成要素、プロセッサ111やメモリ112や通信インタフェース113,413やストリームインタフェース114,414やチェックサム計算モジュール115,415,715は、それぞれ別々の半導体チップで実施することも可能であるし、或いはそのうちの複数或いは全てを一つの半導体チップで実施することも可能である。
For example, the constituent elements of the stream
すなわち、ストリームデータ通信装置101,401,701のそれぞれは、複数の半導体チップを組み合わせたセットとして実施することも可能であるし、或いはそれ自身を一つの半導体チップとして実施することも可能である。
That is, each of the stream
又、通信インタフェース113,413それぞれは、通信ケーブル121を用いているため有線のネットワークに対応しているように示したが、通信ケーブルを用いない無線ネットワークに対応するように実施することも可能である。
Each of the communication interfaces 113 and 413 uses a
本発明は、ストリームデータの通信方法及びストリームデータの通信装置に関し、特に、チェックサム計算モジュール及びソケット類似のプロトコルスタックを用いたバス帯域の浪費防止及びプロセッサ処理負荷の浪費防止に適用可能である。 The present invention relates to a stream data communication method and a stream data communication apparatus, and is particularly applicable to prevention of waste of bus bandwidth and prevention of processor processing load using a protocol stack similar to a checksum calculation module and a socket.
101,401,701…ストリームデータ通信装置、111…プロセッサ、112…メモリ、113,413…通信インタフェース、114,414…ストリームインタフェース、115,415,715…チェックサム計算モジュール。 101, 401, 701 ... stream data communication device, 111 ... processor, 112 ... memory, 113, 413 ... communication interface, 114, 414 ... stream interface, 115, 415, 715 ... checksum calculation module.
Claims (8)
前記アプリケーションプログラムが、前記ストリームインタフェースに対して、前記ストリームデータのチェックサム値を計算しつつ前記ストリームデータを第1のメモリ領域に格納することを指示するステップと、
前記アプリケーションプログラムが、前記プロトコルスタックに対して、前記チェックサム値及び前記第1のメモリ領域を指定して送信指示するステップと、
前記プロトコルスタックが、前記チェックサム値を用いて前記第1のメモリ領域に格納されているデータを通信に供させるためのプロトコルヘッダを生成し、第2のメモリ領域に前記プロトコルヘッダを格納するステップと、
前記プロトコルスタックが、前記通信インタフェースに対して、前記第2のメモリ領域及び前記第1のメモリ領域それぞれに格納されているデータを一連のデータとして送信することを指示するステップと、
前記プロトコルスタックが、前記アプリケーションプログラムに対して、送信完了したことを知らせるステップとを有することを特徴とするストリームデータ通信方法。 A stream data communication method for a stream data communication apparatus, which operates by a program composed of an application program and a protocol stack, and transmits stream data input from a stream interface including a checksum calculation module from a communication interface,
Instructing the stream interface to store the stream data in a first memory area while calculating a checksum value of the stream data;
The application program instructing the protocol stack to transmit by designating the checksum value and the first memory area;
The protocol stack generates a protocol header for using data stored in the first memory area for communication using the checksum value, and stores the protocol header in a second memory area When,
The protocol stack instructing the communication interface to transmit data stored in each of the second memory area and the first memory area as a series of data;
A stream data communication method comprising: the protocol stack notifying the application program that transmission has been completed.
前記プロトコルスタックが、前記通信インタフェースに対して、前記受信データのチェックサム値を計算しつつ前記受信データを第1のメモリ領域に格納することを指示するステップと、
前記プロトコルスタックが、前記第1のメモリ領域に格納されているデータのプロトコルヘッダを解釈し、第2のメモリ領域を抽出しつつ前記チェックサム値を用いて受信データの正当性を判定するステップと、
前記アプリケーションプログラムが、前記プロトコルスタックに対して、受信指示するステップと、
前記プロトコルスタックが、前記アプリケーションプログラムに対して、前記第2のメモリ領域を知らせるステップと、
前記アプリケーションプログラムが、前期ストリームインタフェースに対して、前記第2のメモリ領域に格納されているストリームデータを出力することを指示するステップと、
前記アプリケーションプログラムが、前記プロトコルスタックに対して、利用完了したことを知らせるステップとを有することを特徴とするストリームデータ通信方法。 A stream data communication method for a stream data communication apparatus that operates from a program composed of an application program and a protocol stack and outputs stream data included in received data received from a communication interface having a checksum calculation module from the stream interface Because
Directing the protocol stack to store the received data in a first memory area while calculating a checksum value of the received data to the communication interface;
The protocol stack interpreting a protocol header of data stored in the first memory area, and extracting the second memory area and determining the validity of the received data using the checksum value; ,
The application program instructing the protocol stack to receive;
The protocol stack notifying the application program of the second memory area;
Instructing the application program to output stream data stored in the second memory area to the previous stream interface;
A stream data communication method comprising: a step of notifying the protocol stack that use of the application program is completed.
前記アプリケーションプログラムが、前記ストリームインタフェースに対して、前記ストリームデータを第1のメモリ領域に格納することを指示するステップと、
前記アプリケーションプログラムが、前記プロトコルスタックに対して、前記第1のメモリ領域を指定して送信指示するステップと、
前記プロトコルスタックが、前記チェックサム計算モジュールに対して、前記第1のメモリ領域に格納されているデータのチェックサム値を計算することを指示するステップと、
前記プロトコルスタックが、前記チェックサム値を用いて前記第1のメモリ領域に格納されているデータを通信に供させるためのプロトコルヘッダを生成し、第2のメモリ領域に前記プロトコルヘッダを格納するステップと、
前記プロトコルスタックが、前記通信インタフェースに対して、前記第2のメモリ領域及び前記第1のメモリ領域それぞれに格納されているデータを一連のデータとして送信することを指示するステップと、
前記プロトコルスタックが、前記アプリケーションプログラムに対して、送信完了したことを知らせるステップとを有することを特徴とするストリームデータ通信方法。 A stream data communication method for a stream data communication apparatus, which operates by a program composed of an application program and a protocol stack and transmits stream data input from a stream interface from a communication interface using a checksum calculation module,
The application program instructing the stream interface to store the stream data in a first memory area;
The application program instructing the protocol stack to transmit by designating the first memory area;
The protocol stack directing the checksum calculation module to calculate a checksum value of data stored in the first memory area;
The protocol stack generates a protocol header for using data stored in the first memory area for communication using the checksum value, and stores the protocol header in a second memory area When,
The protocol stack instructing the communication interface to transmit data stored in each of the second memory area and the first memory area as a series of data;
A stream data communication method comprising: the protocol stack notifying the application program that transmission has been completed.
前記プロトコルスタックが、前記通信インタフェースに対して、前記受信データを第1のメモリ領域に格納することを指示するステップと、
前記プロトコルスタックが、前記第1のメモリ領域に格納されているデータのプロトコルヘッダを解釈し、第2のメモリ領域を抽出しつつ受信データの正当性を判定するステップと、
前記プロトコルスタックが、前記チェックサム計算モジュールに対して、前記第2のメモリ領域に格納されているデータのチェックサム値を計算することを指示するステップと、
前記プロトコルスタックが、前記プロトコルヘッダの構成要素と前記チェックサムを用いて受信データの正当性を判定するステップと、
前記アプリケーションプログラムが、前記プロトコルスタックに対して、受信指示するステップと、
前記プロトコルスタックが、前記アプリケーションプログラムに対して、前記第2のメモリ領域を知らせるステップと、
前記アプリケーションプログラムが、前期ストリームインタフェースに対して、前記第2のメモリ領域に格納されているストリームデータを出力することを指示するステップと、
前記アプリケーションプログラムが、前記プロトコルスタックに対して、利用完了したことを知らせるステップとを有することを特徴とするストリームデータ通信方法。 Stream data communication of a stream data communication device that operates by a program composed of an application program and a protocol stack and outputs stream data included in received data received from the communication interface from the stream interface using a checksum calculation module A method,
The protocol stack directing the communication interface to store the received data in a first memory area;
The protocol stack interprets the protocol header of the data stored in the first memory area and determines the validity of the received data while extracting the second memory area;
Instructing the checksum calculation module to calculate a checksum value of data stored in the second memory area;
The protocol stack determining the validity of received data using the component of the protocol header and the checksum;
The application program instructing the protocol stack to receive;
The protocol stack notifying the application program of the second memory area;
Instructing the application program to output stream data stored in the second memory area to the previous stream interface;
A stream data communication method comprising: a step of notifying the protocol stack that use of the application program is completed.
前記ストリームデータを送信する通信インタフェースと、
アプリケーションプログラムとプロトコルスタックとで構成されるプログラムが記憶されるメモリと、
前記プログラムを処理するプロセッサとを備え、
前記プロセッサは、
前記アプリケーションプログラムにより、前記ストリームインタフェースに対して、前記ストリームデータのチェックサム値を計算しつつ前記ストリームデータを前記メモリの第1のメモリ領域に格納することを指示し、
前記アプリケーションプログラムにより、前記プロトコルスタックに対して、前記チェックサム値及び前記第1のメモリ領域を指定して送信指示し、
前記プロトコルスタックにより、前記チェックサム値を用いて前記第1のメモリ領域に格納されているデータを通信に供させるためのプロトコルヘッダを生成し、前記メモリの第2のメモリ領域に前記プロトコルヘッダを格納し、
前記プロトコルスタックにより、前記通信インタフェースに対して、前記第2のメモリ領域及び前記第1のメモリ領域それぞれに格納されているデータを一連のデータとして送信することを指示し、
前記プロトコルスタックにより、前記アプリケーションプログラムに対して、送信完了したことを知らせることを特徴とするストリームデータ通信装置。 A stream interface having a checksum calculation module and receiving stream data;
A communication interface for transmitting the stream data;
A memory for storing a program composed of an application program and a protocol stack;
A processor for processing the program,
The processor is
The application program instructs the stream interface to store the stream data in the first memory area of the memory while calculating the checksum value of the stream data,
The application program instructs the protocol stack to specify the checksum value and the first memory area for transmission,
The protocol stack generates a protocol header for using the data stored in the first memory area for communication using the checksum value, and the protocol header is stored in the second memory area of the memory. Store and
Instructing the communication interface to transmit data stored in the second memory area and the first memory area as a series of data by the protocol stack,
A stream data communication apparatus, characterized in that the protocol stack notifies the application program that transmission has been completed.
チェックサム計算モジュールを有し、前記ストリームデータを送信する通信インタフェースと、
アプリケーションプログラムとプロトコルスタックとで構成されるプログラムが記憶されるメモリと、
前記プログラムを処理するプロセッサとを備え、
前記プロセッサは、
前記プロトコルスタックにより、前記通信インタフェースに対して、前記受信データのチェックサム値を計算しつつ前記受信データを前記メモリの第1のメモリ領域に格納することを指示し、
前記プロトコルスタックにより、前記第1のメモリ領域に格納されているデータのプロトコルヘッダを解釈し、前記メモリの第2のメモリ領域を抽出しつつ前記チェックサム値を用いて受信データの正当性を判定し、
前記アプリケーションプログラムにより、前記プロトコルスタックに対して、受信指示し、
前記プロトコルスタックにより、前記アプリケーションプログラムに対して、前記第2のメモリ領域を知らせ、
前記アプリケーションプログラムにより、前記ストリームインタフェースに対して、前記第2のメモリ領域に格納されているストリームデータを出力することを指示し、
前記アプリケーションプログラムにより、前記プロトコルスタックに対して、利用完了したことを知らせることを特徴とするストリームデータ通信装置。 A stream interface to which stream data is input;
A communication interface having a checksum calculation module and transmitting the stream data;
A memory for storing a program composed of an application program and a protocol stack;
A processor for processing the program,
The processor is
Instructing the communication interface to store the received data in the first memory area of the memory while calculating a checksum value of the received data by the protocol stack,
The protocol stack interprets the protocol header of data stored in the first memory area, and extracts the second memory area of the memory to determine the validity of received data using the checksum value. And
The application program instructs the protocol stack to receive,
Informing the application program of the second memory area by the protocol stack;
The application program instructs the stream interface to output the stream data stored in the second memory area,
A stream data communication apparatus characterized in that the application program notifies the protocol stack that use has been completed.
前記ストリームデータを送信する通信インタフェースと、
チェックサム計算モジュールと、
アプリケーションプログラムとプロトコルスタックとで構成されるプログラムが記憶されるメモリと、
前記プログラムを処理するプロセッサとを備え、
前記プロセッサは、
前記アプリケーションプログラムにより、前記ストリームインタフェースに対して、前記ストリームデータを前記メモリの第1のメモリ領域に格納することを指示し、
前記アプリケーションプログラムにより、前記プロトコルスタックに対して、前記第1のメモリ領域を指定しつつ送信指示し、
前記プロトコルスタックにより、前記チェックサム計算モジュールに対して、前記第1のメモリ領域に格納されているデータのチェックサム値を計算することを指示し、
前記プロトコルスタックにより、前記チェックサム値を用いて前記第1のメモリ領域に格納されているデータを通信に供させるためのプロトコルヘッダを生成し、前記メモリの第2のメモリ領域に前記プロトコルヘッダを格納し、
前記プロトコルスタックにより、前記通信インタフェースに対して、前記第2のメモリ領域及び前記第1のメモリ領域それぞれに格納されているデータを一連のデータとして送信することを指示し、
前記プロトコルスタックにより、前記アプリケーションプログラムに対して、送信完了したことを知らせることを特徴とするストリームデータ通信装置。 A stream interface to which stream data is input;
A communication interface for transmitting the stream data;
A checksum calculation module;
A memory for storing a program composed of an application program and a protocol stack;
A processor for processing the program,
The processor is
Instructing the stream interface to store the stream data in the first memory area of the memory by the application program,
The application program instructs the protocol stack to transmit while specifying the first memory area,
Instructing the checksum calculation module to calculate a checksum value of data stored in the first memory area by the protocol stack;
The protocol stack generates a protocol header for using the data stored in the first memory area for communication using the checksum value, and the protocol header is stored in the second memory area of the memory. Store and
Instructing the communication interface to transmit data stored in the second memory area and the first memory area as a series of data by the protocol stack,
A stream data communication apparatus, characterized in that the protocol stack notifies the application program that transmission has been completed.
前記ストリームデータを送信する通信インタフェースと、
チェックサム計算モジュールと、
アプリケーションプログラムとプロトコルスタックとで構成されるプログラムが記憶されるメモリと、
前記プログラムを処理するプロセッサとを備え、
前記プロセッサは、
前記プロトコルスタックにより、前記通信インタフェースに対して、前記受信データを前記メモリの第1のメモリ領域に格納することを指示し、
前記プロトコルスタックにより、前記第1のメモリ領域に格納されているデータのプロトコルヘッダを解釈し、前記メモリの第2のメモリ領域を抽出しつつ受信データの正当性を判定し、
前記プロトコルスタックにより、前記チェックサム計算モジュールに対して、前記第2のメモリ領域に格納されているデータのチェックサム値を計算することを指示し、
前記プロトコルスタックにより、前記プロトコルヘッダの構成要素と前記チェックサムを用いて受信データの正当性を判定し、
前記アプリケーションプログラムにより、前記プロトコルスタックに対して、受信指示し、
前記プロトコルスタックにより、前記アプリケーションプログラムに対して、前記第2のメモリ領域を知らせ、
前記アプリケーションプログラムにより、前記ストリームインタフェースに対して、前記第2のメモリ領域に格納されているストリームデータを出力することを指示し、
前記アプリケーションプログラムにより、前記プロトコルスタックに対して、利用完了したことを知らせることを特徴とするストリームデータ通信装置。 A stream interface to which stream data is input;
A communication interface for transmitting the stream data;
A checksum calculation module;
A memory for storing a program composed of an application program and a protocol stack;
A processor for processing the program,
The processor is
Instructing the communication interface to store the received data in the first memory area of the memory by the protocol stack;
The protocol stack interprets the protocol header of data stored in the first memory area, determines the validity of the received data while extracting the second memory area of the memory,
Instructing the checksum calculation module to calculate a checksum value of data stored in the second memory area by the protocol stack;
The protocol stack determines the validity of the received data using the component of the protocol header and the checksum,
The application program instructs the protocol stack to receive,
Informing the application program of the second memory area by the protocol stack;
The application program instructs the stream interface to output the stream data stored in the second memory area,
A stream data communication apparatus characterized in that the application program notifies the protocol stack that use has been completed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006003442A JP4809679B2 (en) | 2006-01-11 | 2006-01-11 | Stream data communication method and stream data communication apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006003442A JP4809679B2 (en) | 2006-01-11 | 2006-01-11 | Stream data communication method and stream data communication apparatus |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010278856A Division JP5055420B2 (en) | 2010-12-15 | 2010-12-15 | Stream data communication method and stream data communication apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007189296A true JP2007189296A (en) | 2007-07-26 |
JP4809679B2 JP4809679B2 (en) | 2011-11-09 |
Family
ID=38344187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006003442A Expired - Fee Related JP4809679B2 (en) | 2006-01-11 | 2006-01-11 | Stream data communication method and stream data communication apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4809679B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010057033A (en) * | 2008-08-29 | 2010-03-11 | Nec Electronics Corp | Communications apparatus and method therefor |
US11288362B2 (en) * | 2018-02-06 | 2022-03-29 | AO Kaspersky Lab | System and method for creating antivirus records for antivirus applications |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0678024A (en) * | 1992-05-29 | 1994-03-18 | Hewlett Packard Co <Hp> | Network adaptor system |
JP2003308262A (en) * | 2002-04-08 | 2003-10-31 | Wiznot Corp | Internet communication protocol system realized by hardware protocol processing logic and data parallel processing method using the system |
JP2004221795A (en) * | 2003-01-10 | 2004-08-05 | Sanyo Electric Co Ltd | Packet processing apparatus, packet processing method, and telephone set capable of utilizing the method |
JP2005086292A (en) * | 2003-09-05 | 2005-03-31 | Nec Corp | Session relaying apparatus and session relay method |
JP2006005698A (en) * | 2004-06-18 | 2006-01-05 | Seiko Epson Corp | Network controller and semiconductor integrated circuit |
-
2006
- 2006-01-11 JP JP2006003442A patent/JP4809679B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0678024A (en) * | 1992-05-29 | 1994-03-18 | Hewlett Packard Co <Hp> | Network adaptor system |
JP2003308262A (en) * | 2002-04-08 | 2003-10-31 | Wiznot Corp | Internet communication protocol system realized by hardware protocol processing logic and data parallel processing method using the system |
JP2004221795A (en) * | 2003-01-10 | 2004-08-05 | Sanyo Electric Co Ltd | Packet processing apparatus, packet processing method, and telephone set capable of utilizing the method |
JP2005086292A (en) * | 2003-09-05 | 2005-03-31 | Nec Corp | Session relaying apparatus and session relay method |
JP2006005698A (en) * | 2004-06-18 | 2006-01-05 | Seiko Epson Corp | Network controller and semiconductor integrated circuit |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010057033A (en) * | 2008-08-29 | 2010-03-11 | Nec Electronics Corp | Communications apparatus and method therefor |
US11288362B2 (en) * | 2018-02-06 | 2022-03-29 | AO Kaspersky Lab | System and method for creating antivirus records for antivirus applications |
Also Published As
Publication number | Publication date |
---|---|
JP4809679B2 (en) | 2011-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7917597B1 (en) | RDMA network configuration using performance analysis | |
CN104967585B (en) | A kind of method and apparatus of remote debugging mobile terminal | |
WO2018094743A1 (en) | Method for processing packet, and computer device | |
US10735373B2 (en) | Communications over multiple protocol interfaces in a computing environment | |
WO2014180110A9 (en) | Data processing apparatus and data processing method | |
CN112039824A (en) | Communication method, system, device and computer readable storage medium | |
JP5304674B2 (en) | Data conversion apparatus, data conversion method and program | |
CN105389120A (en) | Supporting RMA API over active message | |
CN105190530A (en) | Transmitting hardware-rendered graphical data | |
US20110153882A1 (en) | Apparatus and method for transforming content | |
JP4809679B2 (en) | Stream data communication method and stream data communication apparatus | |
JP5479710B2 (en) | Processor-server hybrid system and method for processing data | |
JP3988475B2 (en) | Transmitting apparatus, receiving apparatus and methods thereof | |
JP5055420B2 (en) | Stream data communication method and stream data communication apparatus | |
US20050165983A1 (en) | System and method for processing data in kernel area by a user command | |
CN109714337B (en) | Data encryption transmission method and equipment | |
US20080092206A1 (en) | Security protocol control apparatus and security protocol control method | |
WO2018196223A1 (en) | Data processing method and relevant device | |
CN114780353A (en) | File log monitoring method and system and computing device | |
JP2006018430A (en) | Information processor, network system, program, data structure and storage medium | |
JP2007329730A (en) | Communication protocol processor | |
JP2009116386A (en) | Information processor, method and program | |
KR100900963B1 (en) | Hardware device and method for sending the network protocol packet | |
JP4519090B2 (en) | Transmitting apparatus, receiving apparatus and methods thereof | |
CN113726723B (en) | UDP-based data transmission method, device and equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090107 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100528 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101014 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101019 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101215 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110308 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110606 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110613 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110802 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110819 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140826 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |