JP2015032865A - Network reception device - Google Patents
Network reception device Download PDFInfo
- Publication number
- JP2015032865A JP2015032865A JP2013158891A JP2013158891A JP2015032865A JP 2015032865 A JP2015032865 A JP 2015032865A JP 2013158891 A JP2013158891 A JP 2013158891A JP 2013158891 A JP2013158891 A JP 2013158891A JP 2015032865 A JP2015032865 A JP 2015032865A
- Authority
- JP
- Japan
- Prior art keywords
- data
- event
- layer
- tcp
- received
- 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
- 238000013500 data storage Methods 0.000 claims description 8
- 230000008901 benefit Effects 0.000 abstract description 4
- 238000007726 management method Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
Description
本願発明はネットワーク受信装置、特に、ネットワーク信号受信を効率的に行うことを可能とする装置に関するものである。 The present invention relates to a network receiving apparatus, and more particularly to an apparatus that enables efficient network signal reception.
TCP送受信性能を改善する取り組みとして、ネットワークインタフェースカード(NIC)ハードウェアにより、元来CPUが処理していたTCPパケット処理などネットワーク関連の処理をNIC側で行うことが行われている。例えばNIC内蔵のLSIが、アプリケーション層で生成された送信データをTCPセグメントに分割するLSO(Large Send Offload)や、受信したTCPセグメントを逆に再構築するLRO(Large Receive Offload)などの取り組みが存在する。 As an effort to improve TCP transmission / reception performance, network-related processing such as TCP packet processing originally processed by the CPU is performed on the NIC side by network interface card (NIC) hardware. For example, there are efforts such as LSO (Large Send Offload) in which LSI built-in LSI divides transmission data generated in the application layer into TCP segments, and LRO (Large Receive Offload) in which received TCP segments are reconstructed in reverse. To do.
特に受信処理に関するLROは、TCPセグメンテーション処理を行うことにより、これまでCPUが行っていたTCP/IPスタック処理からCPUを開放することで、TCPスタックの処理に要するCPU負荷(オーバーヘッド)を下げ、最終的に得られるスループットを向上させるという目的を達成する手段として効果的である。 In particular, the LRO related to the reception processing reduces the CPU load (overhead) required for TCP stack processing by releasing the CPU from the TCP / IP stack processing that has been performed by the CPU so far by performing TCP segmentation processing. It is effective as a means for achieving the purpose of improving the throughput obtained.
また、例えば、特許文献1においては、ルータ、L3スイッチまたはNIC等において、受信バッファの空き容量を元にビッグパケットのサイズを決定し、当該サイズを満たすまで受信したパケットを再構築し続けるといった発明が開示されている。こうすることにより、再構築しない場合に比べて、ヘッダ領域相当分を節約し、サイズの大きいデータ受信の場合には効率良い受信が可能となる。 Further, for example, in Patent Document 1, an invention in which a router, an L3 switch, a NIC, or the like determines the size of a big packet based on the free capacity of a reception buffer and continues to reconstruct received packets until the size is satisfied. Is disclosed. By doing so, compared to the case where reconstruction is not performed, an amount corresponding to the header area can be saved, and efficient reception is possible in the case of data reception having a large size.
しかしこの様にバッファ容量という固定されたサイズを利用してLROを行うことはスループットの効果向上に寄与する反面、即時性が損なわれていくという問題があった。例えば、印刷データを受信する場合、データサイズの大きい印刷データ本体はスループットが重視されるためLROが有効に働く。しかし、印刷データとともにデータサイズの小さいコマンドデータを受信した場合、LROの受信ではセグメンテーション単位で受信データを上位層に送るため、このコマンドの処理は即座に行われないことがある。もしコマンドが印刷中止の指示であっても、受信データが所定のサイズにまで蓄積されるのを待つために動作が大幅に遅れることがあり、その場合には無視できない被害を招くこととなってしまう。なお、特許文献1には緊急フラグを用いて、当該フラグが存在するパケットは蓄積せずそのまま上位層にパケットを渡す機能が記載されているが、これはあくまでも送信側で付与するフラグであり、受信側で迅速な処理を行うには限界があった。
以上の問題に鑑み、本願発明ではLRO受信処理の利点であるスループットを向上しつつ、上位層たとえばTCP/IPアプリケーションが求める任意の要求に自在に対応して受信データ処理を行うことができるネットワーク受信装置を提供する。
However, performing LRO using a fixed size such as a buffer capacity in this way contributes to an improvement in throughput, but there is a problem that immediacy is lost. For example, when receiving print data, LRO works effectively because the print data body having a large data size places importance on throughput. However, when command data having a small data size is received together with the print data, the received data is sent to the upper layer in the segmentation unit when the LRO is received, so that the processing of this command may not be performed immediately. Even if the command is an instruction to cancel printing, the operation may be greatly delayed because it waits for the received data to be accumulated to a predetermined size. In this case, it will cause damage that cannot be ignored. End up. Note that Patent Document 1 describes a function of using an emergency flag and passing a packet to an upper layer as it is without accumulating the packet in which the flag exists, but this is a flag to be given on the transmission side to the last, There was a limit to the rapid processing on the receiving side.
In view of the above problems, the present invention improves network throughput, which is an advantage of LRO reception processing, and can perform received data processing in response to any request required by an upper layer, for example, a TCP / IP application. Providing equipment.
本発明のネットワーク受信装置は、TCP/IPアプリケーション層に備えられた、受信データを上位層に送るためのデータ区切りイベントを下位層に指示するデータ区切り指示手段と、トランスポート層よりも下位に位置するデータ受信手段であって、前記データ区切り指示手段が指示するデータ区切りイベントを参照し、当該データ区切りイベントが発生していると判断するまでは受信したデータを上位層に送らず蓄積するデータ受信手段とを備えたものである。 The network receiver of the present invention is provided in the TCP / IP application layer, and includes a data delimitation instruction means for instructing a lower layer of a data delimiter event for sending received data to an upper layer, and a position lower than the transport layer. Data receiving means for referring to the data delimiter event instructed by the data delimiter instructing means and storing the received data without sending it to an upper layer until it is determined that the data delimiter event has occurred Means.
本発明の別のネットワーク装置は、TCP/IPアプリケーション層に備えられた、受信データを上位層に送るためのデータ区切りイベントを下位層に指示するデータ区切り指示手段と、トランスポート層よりも下位に位置するデータ受信手段であって、(イ)前記データ区切りイベントが発生した、または(ロ)データ蓄積上限時間に到達した、のいずれかの事象が生じるまでは受信したデータを上位層に送らず蓄積するデータ受信手段とを備えたものである。 Another network apparatus according to the present invention includes a data delimitation instruction unit provided in the TCP / IP application layer for instructing a data delimiter event for sending received data to an upper layer to a lower layer, and a layer lower than the transport layer. The data receiving means is located and does not send the received data to the upper layer until either (a) the data delimiter event occurs or (b) the data storage upper limit time is reached. Data receiving means for storing.
本発明のプログラムは、コンピュータを、TCP/IPアプリケーション層に備えられた、受信データを上位層に送るためのデータ区切りイベントを下位層に指示するデータ区切り指示手段と、トランスポート層よりも下位に位置するデータ受信手段であって、前記データ区切り指示手段が指示するデータ区切りイベントを参照し、当該データ区切りイベントが発生していると判断するまでは受信したデータを上位層に送らず蓄積するデータ受信手段として機能させるものである。 The program of the present invention includes a data delimiter instruction means for instructing a data delimiter event for sending received data to an upper layer to a lower layer provided in a TCP / IP application layer, and a lower layer than a transport layer. The data receiving means that is located, refers to the data delimiter event instructed by the data delimiter instructing means, and stores the received data without sending it to the upper layer until it is determined that the data delimiter event has occurred It functions as a receiving means.
本発明の別のプログラムは、コンピュータを、TCP/IPアプリケーション層に備えられた、受信データを上位層に送るためのデータ区切りイベントを下位層に指示するデータ区切り指示手段と、トランスポート層よりも下位に位置するデータ受信手段であって、(イ)前記データ区切りイベントが発生した、または(ロ)データ蓄積上限時間に到達した、のいずれかの事象が生じるまでは受信したデータを上位層に送らず蓄積するデータ受信手段として機能させるものである。 Another program according to the present invention includes a data delimiter instruction means for instructing a data delimiter event for sending a received data to an upper layer, which is provided in a TCP / IP application layer, to a lower layer, and a transport layer. Data receiving means located at a lower level, wherein the received data is transferred to an upper layer until either (a) the data delimiter event occurs or (b) the data storage upper limit time is reached. It functions as a data receiving means that accumulates without sending.
本発明においてデータ区切りイベントとは、TCP/IPアプリケーションにより指示され、データ受信手段が受信データを上位層に送る判断の基準であるが、単純なイベントに加え、複数のイベントをANDもしくはORで組み合わせたものも含み、さらにはこれをプログラム化したものも含む概念である。要はデータ受信手段が、データを受信するごとに当該イベントが成立するか否か判定できる事象を意味している。 In the present invention, the data delimiter event is a criterion for determining that the data receiving means sends the received data to the upper layer, which is instructed by the TCP / IP application. In addition to a simple event, a plurality of events are combined with AND or OR. It is a concept that also includes the ones that have been programmed. The point is that the data receiving means can determine whether or not the event is established each time data is received.
本発明では、上位アプリケーションから、下位の物理送近傍の処理層に対して、データ区切り(これによりデータを上位層に転送することとなる)の判別ルールを予め指示しておく仕組みを設ける。この指示により、TCP/IPアプリケーションが意図するまま自在に受信処理を行うことができる。この結果、LRO受信処理の利点であるスループットを極力落とすことなく、即時処理が必要なデータは敏速に処理することができるという効果を奏する。 In the present invention, there is provided a mechanism for instructing in advance a determination rule for data delimitation (thus transferring data to the upper layer) from the upper application to the processing layer near the lower physical transmission. By this instruction, the reception process can be performed freely as the TCP / IP application intends. As a result, there is an effect that data that needs immediate processing can be processed promptly without reducing the throughput, which is an advantage of the LRO reception processing, as much as possible.
以下では図面を参照し本願発明に係る実施例を説明する。
[実施例1]
[ブロック図]
Embodiments according to the present invention will be described below with reference to the drawings.
[Example 1]
[Block Diagram]
図1は、本願発明にかかるネットワーク受信装置101のブロック図である。この図は、ネットワーク受信装置101のプロトコルスタックを中心に示したものである。なお、これより説明する処理は、ソフトウェアおよびハードウェアのいずれを用いても実現することが可能である。 FIG. 1 is a block diagram of a network receiving apparatus 101 according to the present invention. This figure mainly shows the protocol stack of the network receiver 101. Note that the processing described below can be realized using either software or hardware.
TCP/IPアプリケーション102は、TCP/IPプロトコルを使用するアプリケーションであり、FTP、HTTPおよびTELNETなどが一般的には有名である。なお、本願発明で使用するTCP/IPアプリケーション102は、これら従前のプロトコルも含めどのようなものであってもよい。本実施例では、TCP/IPアプリケーション102は、受信したデータを下位層から上位層へ転送する区切りを下位層(後述するTCP112)に指示するためのデータ区切り指示手段103を備え、自身が希望するデータ区切りを指示する。 The TCP / IP application 102 is an application that uses the TCP / IP protocol, and FTP, HTTP, TELNET, and the like are generally famous. Incidentally, TCP / IP application 102 for use in the present invention may be of any type, including those prior protocols. In this embodiment, the TCP / IP application 102 includes data delimitation instruction means 103 for instructing a lower layer (TCP 112 described later) to delimit transfer of received data from a lower layer to an upper layer, and is desired by itself. Indicate data separation.
TCP112は、テーブル登録手段104を備えてセッションを管理する。テーブル登録手段104は、ネットワーク受信装置101が備えるRAM(図示せず)などの記憶領域に、ネットワーク受信装置101が使用するセッション情報をセッション管理テーブル105として登録する手段である。セッション管理テーブルは、具体的には図3に示すテーブル情報であり、セッションごとにソースIPアドレス、宛先IPアドレス、ソースポート番号、宛先ポート番号が登録されているが、本実施例ではこれに加えて、TCP/IPアプリケーション102においてデータ区切り指示手段103が指示したデータ区切りイベントが登録される。ソースIPアドレスは送信装置側のIPアドレスであり、宛先IPアドレスは、ネットワーク受信装置101自身のIPアドレスである。 The TCP 112 includes a table registration unit 104 and manages a session. The table registration unit 104 is a unit that registers session information used by the network reception device 101 as a session management table 105 in a storage area such as a RAM (not shown) provided in the network reception device 101. The session management table is specifically table information shown in FIG. 3, and a source IP address, a destination IP address, a source port number, and a destination port number are registered for each session. Thus, the data delimiter event designated by the data delimiter instructing means 103 in the TCP / IP application 102 is registered. The source IP address is the IP address on the transmitting device side, and the destination IP address is the IP address of the network receiving device 101 itself.
データ区切りイベントとは、本発明のポイントとなるものであり、TCP/IPアプリケーションが所望するイベントがデータ区切り指示手段103から指示されて、これを受けたTCP112がセッションごとにセッション管理テーブル105に書き込む。当該イベントは任意であるが、要はそのイベントが発生した場合、TCP111は、後述するバッファ107に格納された受信データをTCP/IP層に転送する。(逆に言えば、そのイベントが発生しない限り、下位層で受信したデータは、受信パケットの数の如何にかかわらず、上位層まで転送せず、後述のようにバッファ107に蓄積される訳である。) The data delimiter event is a point of the present invention. An event desired by the TCP / IP application is instructed from the data delimiter instructing unit 103, and the TCP 112 that receives the event writes it to the session management table 105 for each session. . Although the event is arbitrary, in short, when the event occurs, the TCP 111 transfers received data stored in the buffer 107 described later to the TCP / IP layer. (Conversely, unless the event occurs, the data received in the lower layer is not transferred to the upper layer, and is stored in the buffer 107 as described later, regardless of the number of received packets. is there.)
以下にイベントの例を挙げるが、本発明はこれに限定されるものではない。
(ア)特定サイズのデータを受信(最初に当該特定サイズデータを受信した場合だけでなく、特定サイズのデータを所定回数受信した場合などでもよい)
(イ)特定キャラクタを受信(「CRLF」、印刷区切りを示す「\x1B%-12345X」、あるいはEOF代替コードとして使用される「\x04」など)
(ウ)レングス情報を解釈しての指定長受信(受信データの先頭4バイトを、後続データの長さNと解釈し、4+Nバイトのデータ受信により、データ区切りイベント成立とする。)
(エ)TCP特定フラグを受信(「OOB」、「FIN」など)
Although the example of an event is given below, this invention is not limited to this.
(A) Receive data of a specific size (not only when the specific size data is received first, but also when a specific number of data is received a predetermined number of times)
(A) Receive a specific character ("CRLF", "\ x1B% -12345X" indicating a print break, or "\ x04" used as an EOF alternative code)
(C) Receiving the specified length by interpreting the length information (the first 4 bytes of the received data are interpreted as the length N of the subsequent data, and a data delimiter event is established by receiving 4 + N bytes of data)
(D) Receive TCP specific flag ("OOB", "FIN", etc.)
データ区切りイベントは、複数のイベントをANDまたはORで論理的に組み合わせたものでもよい。 The data delimiter event may be a logical combination of a plurality of events by AND or OR.
さらには、特定ポート番号において実行されるデータ受信タスク中のサブタスクとしてのマクロプログラムでもよい。以下に例(1)および例(2)として、2つのTCPポートに関連したマクロプログラムのアルゴリズムを例示する。 Further, it may be a macro program as a subtask in a data reception task executed at a specific port number. As examples (1) and (2), the macro program algorithm related to two TCP ports is illustrated below.
例(1)TCPポートNO.80の場合
モードa
CRLFが2つ連続するまでHTTP HEADERを受信する
CONTENT LENGTHの項があったら、LENに設定してモードbに移行する
モードb
指定サイズまたは16Kbyteごとに受信する
指定サイズは受信ごとに減算し、ゼロになったらモードaに移行する
PUSHは無視する。FINは終了
という2つのモードから構成されるマクロプログラムで、モードaにおいては、連続した2つのCRLFを受信するイベントで上位層にデータを送り、モードbにおいては、16KByte受信ごと 又は 指定サイズの受信満了で上位層にデータを送る。
Example (1) TCP port NO. 80 for mode a
Receive HTTP HEADER until two consecutive CRLFs
If there is a CONTENT LENGTH item, set to LEN and enter mode b mode b
The specified size or the specified size received every 16 Kbytes is subtracted for each reception, and when it becomes zero, the mode shifts to mode a.
Ignore PUSH. FIN is a macro program that consists of two modes of termination. In mode a, data is sent to the upper layer in the event of receiving two consecutive CRLFs, and in mode b, every 16K bytes are received or the specified size is received. Send data to upper layer upon expiration.
例(2)TCPポートNO.515の場合
モードa
LFを受信するまでLPDコマンドを受信する
行頭に02または03がある場合はサイズ指定なので解釈してモードbに移行する
モードb
指定サイズまたは16Kbyteごとに受信する
指定サイズは受信ごとに減算し、ゼロになったら モードaに移行する
PUSHは無視する。FINは終了
という2つのモードから構成されるマクロプログラムで、モードaにおいては、LFを受信したイベントで上位層にデータを送り、モードbにおいては、16KByte受信ごと 又は 指定サイズ受信満了で、上位層にデータを送る。
この様なマクロプログラムで受信データを上位層に送るか否かの判断を行うことにより、TCP/IPアプリケーションが求める厳密な要求に正確に呼応して受信データを送ることが可能となる。
Example (2) TCP port NO. In case of 515, mode a
Mode b in which the LPD command is received until 02 or 03 is received until LF is received.
The specified size or the specified size that is received every 16 Kbytes is subtracted for each reception, and when it becomes zero, the mode shifts to mode a.
Ignore PUSH. FIN is a macro program consisting of two modes, ending. In mode a, data is sent to the upper layer at the event that LF is received. Send data to.
By determining whether or not the received data is to be sent to an upper layer with such a macro program, it is possible to send the received data in response to a strict request required by the TCP / IP application.
図1に戻り、ネットワークI/F108、LANコントローラドライバ109、データリンク110、IP111は、一般的なネットワーク機器におけるものと同様であるため説明を省略する。図1に示す通り、受信データはネットワークI/F108を通じてプロトコルスタックを順に上方へと進み、最終的にTCP/IPアプリケーション102に送られる。 Returning to FIG. 1, the network I / F 108, the LAN controller driver 109, the data link 110, and the IP 111 are the same as those in a general network device, and a description thereof will be omitted. As shown in FIG. 1, the received data sequentially proceeds upward through the protocol stack through the network I / F 108 and is finally sent to the TCP / IP application 102.
データ受信手段106は、LANコントローラドライバ109とデータリンク110の間に位置する手段である。本願発明において、データ受信手段106はいわゆるLRO処理を実行するエンジン部分であるため、プロトコルスタック上ではデータリンク110の直下に位置している。なお、データ受信手段106が位置する階層は、上記したものだけでなく、少なくともトランスポート層(図ではTCP112)よりも下位であればよい。
これは、本願発明が、TCP112が用いるセッション情報を用いて受信データを管理するためである。
The data receiving unit 106 is a unit located between the LAN controller driver 109 and the data link 110. In the present invention, since the data receiving means 106 is an engine part that executes a so-called LRO process, the data receiving means 106 is located immediately below the data link 110 on the protocol stack. It should be noted that the hierarchy in which the data receiving means 106 is located is not limited to the above, but may be at least lower than the transport layer (TCP 112 in the figure).
This is because the present invention manages received data using session information used by the TCP 112.
データ受信手段106は、LANコントローラドライバ109より送られた受信データを上位層であるデータリンクに110に送るかどうかを判定する手段である。具体的には、データを受信すると、セッション管理テーブル105を参照して、当該セッションに対してTCP/IPアプリケーションが指示した所定イベントが生じているかどうかを判定する。指示されたイベントが発生していないと判定すると、今受信したデータをバッファ107に格納する。一方、指示されたイベントが発生していれば、バッファ107に格納された受信データを読み出し、受信したデータと結合したうえでデータリンク110に送る。 The data receiving means 106 is means for determining whether or not the received data sent from the LAN controller driver 109 is sent to the data link 110 which is an upper layer. Specifically, when data is received, the session management table 105 is referenced to determine whether or not a predetermined event instructed by the TCP / IP application has occurred for the session. If it is determined that the instructed event has not occurred, the data just received is stored in the buffer 107. On the other hand, if the instructed event has occurred, the received data stored in the buffer 107 is read out, combined with the received data, and sent to the data link 110.
図3に示したセッション管理テーブルでは、データ区切りイベント欄がイベントコードとイベントパラメータから記載されている。イベントコードは、上述したイベントの種類を示し、イベントパラメータはそのイベントにおけるパラメータである。例えば、イベントコードが「1」はデータサイズ、「2」はキャラクタ、「3」はTCP特定フラグといった具合である。図3のセッション番号1では、データ区切りイベントが1-32000、とあるのは32000バイトのデータを受信するイベントであることを示し、セッション番号2で2-CRLFとあるのはCRLFのキャラクタを受信するイベントであることを意味している。TCP/IPアプリケーションが所望するデータサイズが32000バイトであるセッション番号1では、受信データが32000バイトに達するまでバッファ107への保存が繰り返され、所望データが蓄積された後データリンク110に送られる。一方、セッション番号2では、データサイズに依らずCRLFコードを受信するまでは受信されたデータはバッファ107へ保存され、CRLFキャラクタを受信すると、バッファに保存された受信データがデータリンク110に送られる。 In the session management table shown in FIG. 3, a data delimiter event column is described from an event code and an event parameter. The event code indicates the type of event described above, and the event parameter is a parameter in the event. For example, the event code “1” is the data size, “2” is the character, “3” is the TCP specific flag, and so on. In session number 1 in FIG. 3, the data delimiter event is 1-32000, indicating that it is an event that receives 32000 bytes of data. In session number 2, 2-CRLF is a CRLF character received. It means that it is an event. In session number 1 in which the data size desired by the TCP / IP application is 32000 bytes, storage in the buffer 107 is repeated until the received data reaches 32000 bytes, and the desired data is accumulated and sent to the data link 110. On the other hand, in session number 2, the received data is stored in the buffer 107 until the CRLF code is received regardless of the data size, and when the CRLF character is received, the received data stored in the buffer is sent to the data link 110. .
さらには、前述した様なマクロプログラムを利用する場合は、セッション管理テーブルのデータ区切りイベント欄には、イベントコードとしてP、イベントパラメータとして実行するプログラム名を記しておく。
[フロー]
Furthermore, when a macro program as described above is used, P as an event code and the name of a program to be executed as an event parameter are recorded in the data delimiter event column of the session management table.
[flow]
図2はネットワーク受信装置101の動作フローである。図2に示す通り、ネットワーク受信装置101はテーブル登録タスクとデータ受信タスクの2つのタスクから構成されている。なお、それぞれのタスクは前述した各手段が実行する。具体的には、テーブル登録タスクはテーブル登録手段104が、データ受信タスクはデータ受信手段106が実行する。 FIG. 2 is an operation flow of the network receiving apparatus 101. As shown in FIG. 2, the network receiving apparatus 101 includes two tasks, a table registration task and a data reception task. Each task is executed by each means described above. Specifically, the table registration task is executed by the table registration means 104, and the data reception task is executed by the data reception means.
まずはテーブル登録タスクについて説明する。ステップ201にて、TCP/IPアプリケーション102にてデータ受信要求が発生したかどうかを判定する。発生していなければ、発生するまで判定し続け、発生していれば処理がステップ202に進む。ステップ202にて、発生したデータ受信要求に含まれるデータ区切りに関する指示(データ区切りイベント)を認定する。ステップ203にて、受信要求の発生したセッションを認定する。具体的には、ソースIPアドレス、宛先IPアドレス、ソースポート番号および宛先ポート番号である。ステップ204にて、セッション情報とデータ区切りイベントをセットにして、セッション管理テーブル105に登録する。 First, the table registration task will be described. In step 201, it is determined whether a data reception request has occurred in the TCP / IP application 102. If it has not occurred, the determination continues until it occurs, and if it has occurred, the process proceeds to step 202. In step 202, an instruction (data delimiter event) regarding data delimiter included in the generated data reception request is recognized. In step 203, the session in which the reception request has occurred is authorized. Specifically, a source IP address, a destination IP address, a source port number, and a destination port number. In step 204, the session information and the data delimiter event are registered as a set in the session management table 105.
次いでデータ受信タスクについて説明する。ステップ251にて、データ受信があるかどうかを判定し、データを受信していなければデータ受信を検出し続け、受信していれば処理がステップ252に進む。ステップ252にて、受信データのセッションを認定する。これは上述したようにソースIPアドレスなどの情報である。ステップ253にて、受信したデータのサイズを認定する。(もちろん、指示されたデータ区切りイベントにおいてサイズを特定する要素がなければ、ステップ253は省略できる)。ステップ254にて、セッション管理テーブル105を参照し、該当するセッションのデータ区切りイベントが発生しているかどうかを判定する。イベントが発生していなければ、ステップ255にて、受信したデータをバッファ107に保存する。一方、ステップ254にてデータ区切りイベントが発生していれば、受信データを上位層、本実施例ではデータリンク110に送る。もちろん、バッファに107に保存されている受信データがあれば、これを読み出し、受信したデータと結合したうえで送る。なお、図示していないが、この時点でテーブルに登録されているセッション情報を削除してもよい。
[その他の実施形態]
Next, the data reception task will be described. In step 251, it is determined whether or not there is data reception. If no data is received, detection of data reception is continued, and if it is received, the process proceeds to step 252. In step 252, the received data session is authorized. This is information such as the source IP address as described above. In step 253, the size of the received data is certified. (Of course, step 253 can be omitted if there is no element specifying the size in the indicated data break event). In step 254, the session management table 105 is referred to and it is determined whether or not a data break event for the corresponding session has occurred. If no event has occurred, the received data is stored in the buffer 107 in step 255. On the other hand, if a data delimiter event has occurred in step 254, the received data is sent to the upper layer, in this embodiment, the data link 110. Of course, if there is received data stored in the buffer 107, it is read out, combined with the received data, and sent. Although not shown, the session information registered in the table at this time may be deleted.
[Other Embodiments]
先の実施例では、テーブル登録手段104がTCP112に存在したが、TCP/IPアプリケーション102の側に存在してもよい。この場合、通常のTCP/IPアプリケーション102にテーブル登録手段104を組み込めばよい。 In the previous embodiment, the table registration unit 104 exists in the TCP 112, but may exist on the TCP / IP application 102 side. In this case, the table registration unit 104 may be incorporated into the normal TCP / IP application 102.
テーブルに登録されたデータ区切りイベントが発生していない場合でも、セッションにおいてデータの受信を開始して一定時間(データ蓄積上限時間)を経過した場合には、受信データを強制的に上位層に送るようにしてもよい。これは、通信経路の途中においてデータのロストが発生するなど、データ区切りイベントの発生条件が遅延し、受信したデータがいつまでも上位層に転送されない状況を防ぐためである。データ蓄積上限時間は、ユーザが初期設定において設定するパラメータである。図4は、「データ区切りイベント発生」と「データ蓄積上限時間の到来」のそれぞれのケースにおいて、データ受信手段106が、受信データを上位層に送るかどうかを示す表である。図からわかるとおり、「データを受信した際、TCP/IPアプリケーションが指示するデータ区切りイベントが発生する」、または「データ蓄積上限時間に到達する」の少なくとも一方が満たされれば、受信データを上位層に送る。 Even if a data break event registered in the table has not occurred, if a certain period of time (data storage upper limit time) has elapsed since the start of data reception in the session, the received data is forcibly sent to the upper layer. You may do it. This is to prevent a situation in which the data delimiter event generation condition is delayed such that data is lost in the middle of the communication path and the received data is not transferred to the upper layer indefinitely. The data storage upper limit time is a parameter set by the user in the initial setting. FIG. 4 is a table showing whether or not the data receiving means 106 sends the received data to the upper layer in each case of “data delimiter event occurrence” and “data storage upper limit time coming”. As can be seen from the figure, if at least one of “data separation event instructed by TCP / IP application occurs when data is received” or “data storage upper limit time is reached” is satisfied, the received data is transferred to the upper layer. Send to.
さらに先の実施例では、セッションごとにデータ区切りイベントを定義し、セッション管理テーブルで管理する例を挙げたが、TCP/IPアプリケーションが下位層に対して予めポート番号ごとに異なるイベントを定義し指示しておくことも可能である。これにより、セッションごとに管理を行うことを省略できる。
[まとめ]
Furthermore, in the previous embodiment, an example was given in which a data delimiter event was defined for each session and managed by the session management table. However, the TCP / IP application previously defined a different event for each port number to the lower layer and indicated it. It is also possible to keep it. Thereby, management for every session can be omitted.
[Summary]
本願発明では、セッションまたはポートごとにTCP/IPアプリケーションが要求するデータ区切り条件を保持するテーブルを設け、データ受信手段は、当該テーブルに登録されている当該条件に基づいて上位層に受信データを送る。これにより、LRO受信処理の利点であるスループットの向上とともに、TCP/IPアプリケーションが求める条件に応じて自在に受信処理を行うことができるという効果を奏する。 In the present invention, a table for holding a data delimiter condition requested by the TCP / IP application is provided for each session or port, and the data receiving means sends received data to an upper layer based on the condition registered in the table . As a result, the throughput, which is an advantage of the LRO reception process, is improved, and the reception process can be performed freely according to the conditions required by the TCP / IP application.
103 データ区切り指示手段
104 テーブル登録手段
105 セッション管理テーブル
106 データ受信手段
107 バッファ
103 Data delimitation instruction means 104 Table registration means 105 Session management table 106 Data reception means 107 Buffer
Claims (4)
トランスポート層よりも下位に位置するデータ受信手段であって、前記データ区切り指示手段が指示するデータ区切りイベントを参照し、当該データ区切りイベントが発生していると判断するまでは受信したデータを上位層に送らず蓄積するデータ受信手段と、
を備えるネットワーク受信装置。
A data delimiter instructing means for instructing a lower layer a data delimiter event for sending received data to an upper layer, provided in the TCP / IP application layer;
Data receiving means positioned lower than the transport layer, referring to the data delimiter event instructed by the data delimiter instructing means, and receiving the received data until it is determined that the data delimiter event has occurred Data receiving means for storing without sending to the layer;
A network receiver comprising:
トランスポート層よりも下位に位置するデータ受信手段であって、(イ)前記データ区切りイベントが発生した、または(ロ)データ蓄積上限時間に到達した、のいずれかの事象が生じるまでは受信したデータを上位層に送らず蓄積するデータ受信手段と、
を備えるネットワーク受信装置。
A data delimiter instructing means for instructing a lower layer a data delimiter event for sending received data to an upper layer, provided in the TCP / IP application layer;
Data receiving means located below the transport layer, received until either (a) the data delimiter event occurs or (b) the data storage upper limit time is reached Data receiving means for storing data without sending it to the upper layer;
A network receiver comprising:
TCP/IPアプリケーション層に備えられた、受信データを上位層に送るためのデータ区切りイベントを下位層に指示するデータ区切り指示手段と、
トランスポート層よりも下位に位置するデータ受信手段であって、前記データ区切り指示手段が指示するデータ区切りイベントを参照し、当該データ区切りイベントが発生していると判断するまでは受信したデータを上位層に送らず蓄積するデータ受信手段と、
して機能させることを特徴とするプログラム。
Computer
A data delimiter instructing means for instructing a lower layer a data delimiter event for sending received data to an upper layer, provided in the TCP / IP application layer;
Data receiving means positioned lower than the transport layer, referring to the data delimiter event instructed by the data delimiter instructing means, and receiving the received data until it is determined that the data delimiter event has occurred Data receiving means for storing without sending to the layer;
A program characterized by making it function.
TCP/IPアプリケーション層に備えられた、受信データを上位層に送るためのデータ区切りイベントを下位層に指示するデータ区切り指示手段と、
トランスポート層よりも下位に位置するデータ受信手段であって、(イ)前記データ区切りイベントが発生した、または(ロ)データ蓄積上限時間に到達した、のいずれかの事象が生じるまでは受信したデータを上位層に送らず蓄積するデータ受信手段と、
して機能させることを特徴とするプログラム。
Computer
A data delimiter instructing means for instructing a lower layer a data delimiter event for sending received data to an upper layer, provided in the TCP / IP application layer;
Data receiving means located below the transport layer, received until either (a) the data delimiter event occurs or (b) the data storage upper limit time is reached Data receiving means for storing data without sending it to the upper layer;
A program characterized by making it function.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013158891A JP5994067B2 (en) | 2013-07-31 | 2013-07-31 | Network receiver |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013158891A JP5994067B2 (en) | 2013-07-31 | 2013-07-31 | Network receiver |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015032865A true JP2015032865A (en) | 2015-02-16 |
JP2015032865A5 JP2015032865A5 (en) | 2016-07-21 |
JP5994067B2 JP5994067B2 (en) | 2016-09-21 |
Family
ID=52517888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013158891A Active JP5994067B2 (en) | 2013-07-31 | 2013-07-31 | Network receiver |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5994067B2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000235536A (en) * | 1999-02-15 | 2000-08-29 | Fuji Xerox Co Ltd | Data communication system and device |
JP2006014143A (en) * | 2004-06-29 | 2006-01-12 | Nec Corp | Communication system equipped with off-road engine having execution function for communication low rank protocol and data dividing function for received data stream |
US7529261B2 (en) * | 2003-01-29 | 2009-05-05 | Fujitsu Limited | Data communications method selection by data communication system |
JP2013115576A (en) * | 2011-11-28 | 2013-06-10 | Fujitsu Ltd | Reception data processing method, communication device, and program |
-
2013
- 2013-07-31 JP JP2013158891A patent/JP5994067B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000235536A (en) * | 1999-02-15 | 2000-08-29 | Fuji Xerox Co Ltd | Data communication system and device |
US7529261B2 (en) * | 2003-01-29 | 2009-05-05 | Fujitsu Limited | Data communications method selection by data communication system |
JP2006014143A (en) * | 2004-06-29 | 2006-01-12 | Nec Corp | Communication system equipped with off-road engine having execution function for communication low rank protocol and data dividing function for received data stream |
JP2013115576A (en) * | 2011-11-28 | 2013-06-10 | Fujitsu Ltd | Reception data processing method, communication device, and program |
Also Published As
Publication number | Publication date |
---|---|
JP5994067B2 (en) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10505838B2 (en) | System and method for diverting established communication sessions | |
EP2959645B1 (en) | Dynamic optimization of tcp connections | |
US8737215B2 (en) | Packet forwarding apparatus, communication system, process rule update method, and program | |
US20130311614A1 (en) | Method for retrieving content and wireless communication device for performing same | |
JP5677393B2 (en) | Information processing apparatus and instruction offloading method | |
US20160241482A1 (en) | Packet communication apparatus and packet communication method | |
WO2015154475A1 (en) | Data processing method, device, and computer having corresponding device | |
US9794354B1 (en) | System and method for communication between networked applications | |
US9231879B1 (en) | Methods for policy-based network traffic queue management and devices thereof | |
JP2013502016A (en) | Apparatus and method for memory management and efficient data processing | |
US10827044B2 (en) | Method, apparatus and computer program product for processing data | |
JP2016525256A (en) | Method and apparatus for providing redundant data access | |
WO2015199743A1 (en) | Selecting an optimal network device for reporting flow table misses upon expiry of a flow in a software defined network | |
JP5094482B2 (en) | Processing apparatus and processing method thereof | |
US8588064B2 (en) | Transport layer that warns application of potential bottleneck and methods thereof | |
JP6056857B2 (en) | Communication control device and communication control method | |
JP5994067B2 (en) | Network receiver | |
JP6052284B2 (en) | COMMUNICATION DEVICE, CONTROL DEVICE, COMMUNICATION SYSTEM, COMMUNICATION METHOD, COMMUNICATION DEVICE CONTROL METHOD, AND PROGRAM | |
JP2022539218A (en) | Attack mitigation in packet-switched networks | |
US8639822B2 (en) | Extending application-layer sessions based on out-of-order messages | |
JP6334376B2 (en) | Communication apparatus and descriptor overflow detection method | |
JP7309384B2 (en) | COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD AND PROGRAM | |
CA2874047C (en) | System and method for diverting established communication sessions | |
JP6452573B2 (en) | Data transmission device, data reception device, data transmission method, data reception method, data transmission program, and data reception program | |
US20170265103A1 (en) | Communication device, communication method, and non-transitory computer readable medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160603 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160603 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20160603 |
|
TRDD | Decision of grant or rejection written | ||
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20160623 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160628 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160708 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5994067 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |