[go: up one dir, main page]

JP7142462B2 - COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD, AND PROGRAM - Google Patents

COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD, AND PROGRAM Download PDF

Info

Publication number
JP7142462B2
JP7142462B2 JP2018093223A JP2018093223A JP7142462B2 JP 7142462 B2 JP7142462 B2 JP 7142462B2 JP 2018093223 A JP2018093223 A JP 2018093223A JP 2018093223 A JP2018093223 A JP 2018093223A JP 7142462 B2 JP7142462 B2 JP 7142462B2
Authority
JP
Japan
Prior art keywords
transmission data
checksum value
transmission
communication device
determining
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.)
Active
Application number
JP2018093223A
Other languages
Japanese (ja)
Other versions
JP2019201249A (en
JP2019201249A5 (en
Inventor
暁央 木下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2018093223A priority Critical patent/JP7142462B2/en
Publication of JP2019201249A publication Critical patent/JP2019201249A/en
Publication of JP2019201249A5 publication Critical patent/JP2019201249A5/ja
Application granted granted Critical
Publication of JP7142462B2 publication Critical patent/JP7142462B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Communication Control (AREA)

Description

本発明は、通信装置、通信装置の制御方法、およびプログラムに関する。 The present invention relates to a communication device, a communication device control method, and a program.

従来、パケット通信において、通信の信頼性を保証するため、送信側から送信されたパケットを受信した受信側が、ACKと呼ばれる確認応答を用いる通信方式が利用されている。例えば、インターネット通信において広く利用されているTCP/IP(Transmission Control Protocol/Internet Protocol)では、送信側は、送信データをセグメントにチャンク化してパケット化して送信する。受信側は、セグメントをオクテット単位にシーケンス番号で管理し、受信に成功したセグメントのシーケンス番号をACKとして応答する。また、送信側は、所定時間内にACKを受信しなかったセグメントを含むパケットの再送を行う。 2. Description of the Related Art Conventionally, in packet communication, in order to guarantee the reliability of communication, a communication method is used in which a receiving side that receives a packet transmitted from a transmitting side uses an acknowledgment called ACK. For example, in TCP/IP (Transmission Control Protocol/Internet Protocol), which is widely used in Internet communication, the transmitting side chunks transmission data into segments, packetizes them, and transmits them. The receiving side manages the segments by sequence number in units of octets, and responds with the sequence number of the successfully received segment as ACK. Also, the transmitting side retransmits packets including segments for which ACK has not been received within a predetermined time.

TCP/IPのプロトコル処理では、送信側は、通信データのパケット化や再送処理のために、ネットワークバッファを用意している。近年、TCP/IPのプロトコル処理では、CPU(Central Processing Unit)による処理軽減および高速送信を実現可能なパケット化技術が用いられている。例えば、指定されたユーザデータをソケットAPI send()のコール毎にネットワークバッファへの転送とチェックサム計算を同時にハードウェアオフロードで処理を行い、転送時に計算された(事前に計算された)チェックサム値を用いてCPU処理でパケット化する技術である。この技術では、所定の送信単位である1MSS(Maximum Segment Size)以下のデータサイズが、一つずつCPU処理でパケット化される。 In TCP/IP protocol processing, the transmitting side prepares a network buffer for packetization and retransmission processing of communication data. In recent years, TCP/IP protocol processing uses a packetization technique that can reduce processing by a CPU (Central Processing Unit) and achieve high-speed transmission. For example, for each socket API send() call, the specified user data is transferred to the network buffer and the checksum calculation is simultaneously processed by hardware offload, and the check calculated (pre-calculated) at the time of transfer This is a technique of packetizing by CPU processing using a sum value. In this technique, a data size of 1 MSS (Maximum Segment Size) or less, which is a predetermined transmission unit, is packetized one by one by CPU processing.

国際公開第2010/073671号WO2010/073671

しかしながら、従来の技術では、より大きいサイズを有する送信データに対するパケット化処理を行う際に、事前に計算されたチェックサム値を活用することができなかった。 However, the prior art cannot utilize pre-calculated checksum values when performing packetization processing for transmission data having a larger size.

本発明は、上記課題に鑑みてなされたものであり、より大きいサイズを有する送信データに対するパケット化処理を行う際に、事前に計算されたチェックサム値を活用することを目的とする。 SUMMARY OF THE INVENTION An object of the present invention is to utilize a pre-calculated checksum value when packetizing transmission data having a larger size.

上記目的を達成するための一手段として、本発明の通信装置は以下の構成を有する。すなわち、通信装置であって、複数のパケットに対応する送信データをDMA(Direct Memory Access)により送信バッファへ転送する転送手段と、前記転送手段による前記送信データの転送に並行して、当該送信データに対する第1のチェックサム値を計算する第1の計算手段と、通信相手装置へ送信する際の送信データサイズを決定する決定手段と、前記決定手段により決定された前記送信データサイズに基づいて、前記第1のチェックサム値が利用可能かを判定する判定手段と、前記判定手段により前記第1のチェックサム値が利用可能と判定された場合、前記転送手段により転送された前記送信データに対するパケット化処理を行う際に、前記第1の計算手段により計算された前記第1のチェックサム値を利用してパケット化処理を行うことで、複数のパケットを生成する第1の生成手段と、を有する。

As one means for achieving the above object, the communication device of the present invention has the following configuration. That is, the communication device includes transfer means for transferring transmission data corresponding to a plurality of packets to a transmission buffer by DMA (Direct Memory Access); a first calculating means for calculating a first checksum value for ; a determining means for determining a transmission data size when transmitting to a communication partner device; and based on the transmission data size determined by the determining means, determining means for determining whether the first checksum value is available; and a packet for the transmission data transferred by the transferring means when the determining means determines that the first checksum value is available. a first generating means for generating a plurality of packets by performing the packetizing process using the first checksum value calculated by the first calculating means when performing the packetizing process; have.

本発明によれば、より大きいサイズを有する送信データに対するパケット化処理を行う際に、事前に計算されたチェックサム値を活用することが可能となる。 According to the present invention, it is possible to utilize pre-calculated checksum values when performing packetization processing for transmission data having a larger size.

実施形態における通信装置のハードウェア構成例を示す。1 shows an example hardware configuration of a communication device according to an embodiment. 実施形態における通信装置のソフトウェア構成例を示す。1 shows an example of software configuration of a communication device according to an embodiment. 実施形態1におけるデータ送信処理を説明するフローチャートである。4 is a flowchart for explaining data transmission processing according to the first embodiment; 実施形態2におけるデータ送信処理を説明するフローチャートである。FIG. 10 is a flowchart for explaining data transmission processing in the second embodiment; FIG.

以下、添付の図面を参照して、本発明をその実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。 BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, the present invention will be described in detail based on its embodiments with reference to the accompanying drawings. Note that the configurations shown in the following embodiments are merely examples, and the present invention is not limited to the illustrated configurations.

[実施形態1]
送信側におけるTCP/IPパケット生成の一般的な処理では、まず、ソケットAPI send()によって指定されたユーザデータがネットワークバッファに転送され、MTU(maximum transmission unit)にチャンク化される。そして、チャンク化されたデータと擬似ヘッダのチェックサムが計算され、TCPヘッダとIPヘッダが追加されたTCT/IPパケットが生成される。伝送経路がイーサネット(登録商標)の場合、これらのヘッダに加えて、イーサネットヘッダが付加されたイーサネットフレームが生成され、送信される。受信側は、セグメントをオクテット単位にシーケンス番号で管理し、受け取ったセグメントのシーケンス番号をACKとして応答する必要がある。
[Embodiment 1]
In the general process of TCP/IP packet generation on the sending side, user data specified by the socket API send( ) is first transferred to a network buffer and chunked into MTUs (maximum transmission units). A checksum of the chunked data and the pseudo-header is then calculated to generate a TCT/IP packet with the TCP header and IP header added. When the transmission path is Ethernet (registered trademark), in addition to these headers, an Ethernet frame with an Ethernet header added is generated and transmitted. The receiving side must manage segments by sequence number in octet units and respond with the sequence number of the received segment as ACK.

TCP/IPのプロトコル処理では、送信側のパケット送信の度に受信側がACKを送信することによる通信速度の低下を回避するために、所定の送信ウィンドウサイズを利用するウィンドウ制御が行われる。TCP/IPのウィンドウ制御では、受信側は、受信バッファの残りサイズを送信ウィンドウサイズに設定したACKを送信し、送信側は、送信ウィンドウサイズになるまでACKを待つことなく送信データを送信することができる。更に、TCP/IPのウィンドウ制御では、通信速度をより向上させるために、スライディングウィンドウが用いられる。スライディングウィンドウでは、受信側はパケットを受信する度にACKを送信し、送信側は最初のACKを受信するとウィンドウをスライドさせて、ACKを待つことなくウィンドウサイズ分のデータを連続的に送信することが可能となる。 In TCP/IP protocol processing, window control using a predetermined transmission window size is performed in order to avoid a decrease in communication speed due to the receiving side sending an ACK every time the sending side sends a packet. In TCP/IP window control, the receiving side transmits ACK with the remaining size of the receiving buffer set to the transmission window size, and the transmitting side transmits transmission data without waiting for ACK until the transmission window size is reached. can be done. Furthermore, in TCP/IP window control, a sliding window is used to further improve the communication speed. In the sliding window, the receiving side sends an ACK each time it receives a packet, and the sending side slides the window when it receives the first ACK, and continuously sends data for the window size without waiting for an ACK. becomes possible.

上述したように、近年では、CPUによる処理軽減及び高速送信のため、事前に計算したチェックサム値を用いて1MSS以下のデータサイズを、一つずつCPU処理でパケット化する技術が用いられている。また、送信データのセグメントチャンク化処理と、チャンク化したセグメントのIPパケット化処理をネットワークI/Fでハードウェアオフロードがする技術が用いられている。このような技術は、TSO(TCP Segmentation Offload)機能により実現化されている(特許文献1参照)。TSO機能は、NIC(Network Interface Card)などのハードウェアオフロードで実施することが一般的である。TSO機能を用いることで、アプリケーションデータを従来のMSS単位よりも大きいデータ単位でハードウェアオフロードに送信要求を行い、ハードウェアオフロードにてMSS単位にチャンク化してネットワークに連続送信することが可能となる。一方、TSO機能によっても、事前にユーザデータをネットワークバッファへ転送時にハードウェアオフロードで計算したチェックサム値を活用した複数のIPパケット化処理ができない。 As described above, in recent years, in order to reduce processing by the CPU and transmit at high speed, a technology is used in which data sizes of 1 MSS or less are packetized one by one by CPU processing using a pre-calculated checksum value. . Also, a technology is used in which hardware offloading of segment chunking processing of transmission data and IP packetization processing of the chunked segments is performed on a network I/F. Such technology is realized by a TSO (TCP Segmentation Offload) function (see Patent Document 1). The TSO function is generally implemented by hardware offload such as NIC (Network Interface Card). By using the TSO function, it is possible to request the hardware offload to send application data in data units larger than the conventional MSS unit, chunk it into MSS units by the hardware offload, and send it continuously to the network. becomes. On the other hand, even with the TSO function, it is not possible to perform multiple IP packetization processes utilizing checksum values calculated by hardware offloading in advance when transferring user data to a network buffer.

本実施形態では、MSSを超えるデータに対しても、事前に計算したチェックサム値を活用した複数のIPパケット生成処理を行うことを可能とする通信装置について説明する。 In the present embodiment, a communication device capable of performing a plurality of IP packet generation processes utilizing pre-calculated checksum values even for data exceeding MSS will be described.

(通信装置10の構成)
図1に、実施形態1における通信装置10のハードウェア構成例を示す。通信装置10は、そのハードウェア構成として、RAM(Random Access Memory)101、ROM(Read Only Memory)103、CPU102、通信部110を有する。これらの構成要素は通常の通信装置と同様であるが、本実施形態における通信装置10は更に、データ転送部105、フレーム生成部106、パケット生成部107、チェックサム計算部111を有する。以下、各構成要素について説明する。
(Configuration of communication device 10)
FIG. 1 shows a hardware configuration example of the communication device 10 according to the first embodiment. The communication device 10 has a RAM (Random Access Memory) 101, a ROM (Read Only Memory) 103, a CPU 102, and a communication section 110 as its hardware configuration. Although these components are the same as those of a normal communication device, the communication device 10 in this embodiment further has a data transfer section 105, a frame generation section 106, a packet generation section 107, and a checksum calculation section 111. FIG. Each component will be described below.

RAM101は、各種データの保存やワークメモリとして使用される。RAM101は、送信データを格納して管理するための送信バッファ112を有する。ROM103は、CPU102により実行される各種プログラム等を記憶する。CPU102は、RAM101をワークメモリとして、ROM103や、図示していないハードディスクなどのプログラム格納部としての記録媒体に格納された各種プログラムを実行し得る。 A RAM 101 is used to store various data and as a work memory. The RAM 101 has a transmission buffer 112 for storing and managing transmission data. The ROM 103 stores various programs and the like executed by the CPU 102 . The CPU 102 can use the RAM 101 as a work memory to execute various programs stored in the ROM 103 and a recording medium such as a hard disk (not shown) as a program storage unit.

通信部110は、MAC(Media Access Control)モジュール108とPHY(Physical Layer)モジュール109を有し、Ethernet(商標登録)などのネットワークを介した通信相手装置との通信を行う。データの送受信は、CPU102によりネットワークドライバが実行され、これに応じてMACモジュール108が制御されることにより行われる。なお、本実施形態では、通信部110は、イーサネット(登録商標)を介した通信を行うものとするが、これに替えて、無線LAN(Wi-Fi)など、IP通信可能な媒体を介して通信を行うことも可能である。 The communication unit 110 has a MAC (Media Access Control) module 108 and a PHY (Physical Layer) module 109, and communicates with a communication partner device via a network such as Ethernet (registered trademark). Data transmission/reception is performed by executing a network driver by the CPU 102 and controlling the MAC module 108 accordingly. In this embodiment, the communication unit 110 performs communication via Ethernet (registered trademark). Communication is also possible.

データ転送部105は、例えばDMA(Direct Memory Access)により構成され、通信装置10内部でデータを転送する。例えば、データ転送部105は、RAM101に記憶されているデータを、フレーム生成部106やパケット生成部107に転送する。データ転送部105は、CPU102により転送制御されてもよい。チェックサム計算部111は、RAM101に記憶されているデータに対してチェックサム計算を行う。フレーム生成部106は、送信する送信データサイズを決定し、決定したサイズの送信データと、送信データに対するヘッダ情報を生成するためのヘッダ情報の生成処理を行う。パケット生成部107は、フレーム生成部106により生成された送信データとヘッダ情報に基づいて、送信データのセグメント化およびヘッダの生成を行い、当該セグメントとヘッダから送信パケットを生成する。タイマ管理部104は、パケット送信に関して必要な所定時間を管理する。なお、以下に説明する(送信)パケットは、IP通信上で送受信されるデータの単位である。このパケットの組み立て方法については、本実施形態の本質ではないので、説明を省略する。 The data transfer unit 105 is configured by, for example, DMA (Direct Memory Access), and transfers data inside the communication device 10 . For example, the data transfer unit 105 transfers data stored in the RAM 101 to the frame generation unit 106 and packet generation unit 107 . The data transfer unit 105 may be transfer-controlled by the CPU 102 . A checksum calculator 111 performs checksum calculation on data stored in the RAM 101 . The frame generation unit 106 determines the size of transmission data to be transmitted, and performs generation processing of header information for generating transmission data of the determined size and header information for the transmission data. Packet generator 107 segments the transmission data and generates a header based on the transmission data and header information generated by frame generator 106, and generates a transmission packet from the segment and header. A timer management unit 104 manages a predetermined time required for packet transmission. A (transmission) packet described below is a unit of data transmitted and received on IP communication. Since this packet assembling method is not the essence of this embodiment, its explanation is omitted.

図2は、本実施形態における通信装置10の機能構成例を示す。アプリケーション201は、ユーザアプリケーションを指す。本実施形態では、アプリケーション201は、ソケットAPI send()を呼び出すアプリケーションであり、これにより、任意のサイズの、送信対象のアプリケーションデータ(送信データ)がプロトコルスタック202に入力される。 FIG. 2 shows a functional configuration example of the communication device 10 in this embodiment. Application 201 refers to a user application. In this embodiment, the application 201 is an application that calls the socket API send( ), whereby application data to be sent (send data) of arbitrary size is input to the protocol stack 202 .

プロトコルスタック202は、ネットワークバッファ管理部203、セグメント処理部204、通信プロトコル処理部205、コネクション管理部206、TCPウィンドウ制御部207、輻輳制御部208から構成される。ネットワークバッファ管理部203は、アプリケーション201から入力された送信データを、RAM101の送信バッファ112(図1)に格納して管理する。ネットワークバッファ管理部203はまた、送信バッファ112に格納されている送信データのサイズを管理する。コネクション管理部206は、通信装置10の通信コネクションに関する情報を管理する。例えば、コネクション管理部206は、通信コネクションにおけるMSS(Maximum Segment Size)等のコネクション情報を管理する。TCPウィンドウ制御部207は、通信インタフェース制御部209を介して通信相手装置から受信したACK(確認応答)から、TCPコネクションの送信ウィンドウサイズを取得し、管理する。輻輳制御部208は、TCPコネクションにおける輻輳制御を管理する。例えば、輻輳制御部208は、アプリケーション201に対する通信コネクションにおける輻輳ウィンドウサイズを管理する。送信ウィンドウサイズと輻輳ウィンドウサイズは、送信データサイズを決定するために使用され得る。 The protocol stack 202 comprises a network buffer management section 203 , a segment processing section 204 , a communication protocol processing section 205 , a connection management section 206 , a TCP window control section 207 and a congestion control section 208 . The network buffer management unit 203 stores and manages transmission data input from the application 201 in the transmission buffer 112 (FIG. 1) of the RAM 101 . Network buffer management unit 203 also manages the size of transmission data stored in transmission buffer 112 . The connection management unit 206 manages information regarding communication connections of the communication device 10 . For example, the connection management unit 206 manages connection information such as MSS (Maximum Segment Size) in communication connections. The TCP window control unit 207 acquires the transmission window size of the TCP connection from the ACK (acknowledgement) received from the communication partner device via the communication interface control unit 209 and manages it. The congestion control unit 208 manages congestion control in TCP connections. For example, the congestion control unit 208 manages congestion window sizes in communication connections to the application 201 . The send window size and congestion window size may be used to determine the send data size.

セグメント処理部204は、ネットワークバッファ管理部203、コネクション管理部206、TCPウィンドウ制御部207、輻輳制御部208で管理されている情報等に基づいて、送信データサイズ(送信可能な全体の送信データのサイズ)を決定する。すなわち、RAM101内の送信バッファ112に格納されている送信データのサイズ、MSS、送信ウィンドウサイズ、輻輳ウィンドウサイズ等に基づいて、送信データサイズが決定される。通信プロトコル処理部205は、パケット生成部107を制御して、TCPセグメントのTCPヘッダやIPヘッダの生成と、それに伴うチェックサム計算等の処理を行う。そして、通信プロトコル処理部205は、これらの処理から得られたデータから、パケット化処理を行って送信パケットを生成する。 The segment processing unit 204 determines the transmission data size (the size of the total transmission data that can be transmitted) based on the information managed by the network buffer management unit 203, the connection management unit 206, the TCP window control unit 207, and the congestion control unit 208. size). That is, the transmission data size is determined based on the transmission data size, MSS, transmission window size, congestion window size, etc. stored in the transmission buffer 112 in the RAM 101 . The communication protocol processing unit 205 controls the packet generation unit 107 to generate the TCP header and IP header of the TCP segment, and performs processes such as checksum calculation associated therewith. Then, the communication protocol processing unit 205 performs packetization processing on the data obtained from these processes to generate a transmission packet.

データ転送部400は、データ転送部105とチェックサム計算部111(図1)に対応し、チャンク部401、チェックサム計算部402から構成される。チャンク部401は、送信データを、データ転送するための所定の単位(例えばMSS単位)にチャンク化する。チェックサム計算部402は、チャンク部401によりチャンク化された各データに対してチェックサム計算を行う。 The data transfer section 400 corresponds to the data transfer section 105 and the checksum calculation section 111 (FIG. 1), and is composed of a chunk section 401 and a checksum calculation section 402 . The chunk unit 401 chunks transmission data into predetermined units (for example, MSS units) for data transfer. The checksum calculation unit 402 performs checksum calculation on each piece of data chunked by the chunk unit 401 .

パケット生成部300は、データ転送部105、パケット生成部107、チェックサム計算部111(図1)に対応し、データ転送部301、ヘッダ生成部302、パケット生成部303から構成される。データ転送部301は、送信データを所定の単位(例えばMSS単位)へのチャンク化し、チャンク化した各データに対してチェックサム計算を行う。ヘッダ生成部302は、フレーム生成部106により生成されたヘッダ情報に基づいて、TCP/IPヘッダとイーサネットヘッダを生成する。パケット生成部303は、データ転送部301とヘッダ生成部302から出力されたデータから、パケット化処理を行って送信パケットを生成する。 The packet generation unit 300 corresponds to the data transfer unit 105 , the packet generation unit 107 and the checksum calculation unit 111 ( FIG. 1 ), and is composed of the data transfer unit 301 , the header generation unit 302 and the packet generation unit 303 . The data transfer unit 301 chunks transmission data into predetermined units (for example, MSS units), and performs checksum calculation on each piece of chunked data. Header generator 302 generates a TCP/IP header and an Ethernet header based on the header information generated by frame generator 106 . The packet generation unit 303 performs packetization processing on the data output from the data transfer unit 301 and the header generation unit 302 to generate transmission packets.

本実施形態では、セグメント処理部204により決定された送信データサイズに応じて、通信プロトコル処理部205またはパケット生成部300が、送信パケットを生成する。送信パケットの生成手法については、図3を用いて後述する。 In this embodiment, the communication protocol processing unit 205 or the packet generation unit 300 generates transmission packets according to the transmission data size determined by the segment processing unit 204 . A method of generating a transmission packet will be described later with reference to FIG.

通信プロトコル処理部205またはパケット生成部300により生成された送信パケットは、通信インタフェース制御部209に入力される。通信インタフェース制御部209は、プロトコルスタック202と通信インタフェース210との間でデータや情報のやり取りを担う。通信インタフェース210は、図1のMACモジュール108、PHYモジュール109に対応し、ネットワークと通信を行う。送信パケットの送信は、タイマ管理部104により一定時間以上経過したことが通知された場合に、行われてもよい。 A transmission packet generated by the communication protocol processing unit 205 or the packet generation unit 300 is input to the communication interface control unit 209 . A communication interface control unit 209 is in charge of exchanging data and information between the protocol stack 202 and the communication interface 210 . A communication interface 210 corresponds to the MAC module 108 and PHY module 109 in FIG. 1 and communicates with the network. The transmission of the transmission packet may be performed when the timer management unit 104 notifies that a certain period of time or more has elapsed.

(処理の流れ)
次に、図3を参照して、本実施形態における処理について説明する。図3は、本実施形態におけるデータ送信処理を説明するフローチャートである。本フローチャートは、ソケットAPI send()(以下、send())によるデータ送信処理を想定する。
(Processing flow)
Next, referring to FIG. 3, processing in this embodiment will be described. FIG. 3 is a flowchart for explaining data transmission processing in this embodiment. This flowchart assumes data transmission processing by socket API send( ) (hereinafter, send( )).

まず、ステップS101において、CPU102により、ROM103に格納されている所定のプログラムが実行されることに応じて、アプリケーション201は、send()を呼び出す。send()が呼び出されると、データ転送部105は、ステップS102で、データ転送先であるRAM101内の送信バッファ114へ送信データを転送する。それと並行して、チャンク部401は、送信データをMSS単位にチャンク化し、チェックサム計算部402は、チャンク化されたデータに対してチェックサム計算する。なお、上述したように、チャンク部401とチェックサム計算部402を含むデータ転送部400(図2)は、データ転送部105とチェックサム計算部111(図1)に対応する。 First, in step S<b>101 , the application 201 calls send( ) in response to the execution of a predetermined program stored in the ROM 103 by the CPU 102 . When send( ) is called, the data transfer unit 105 transfers the transmission data to the transmission buffer 114 in the RAM 101, which is the data transfer destination, in step S102. In parallel with this, the chunk unit 401 chunks the transmission data in units of MSS, and the checksum calculation unit 402 calculates the checksum for the chunked data. As described above, the data transfer section 400 (FIG. 2) including the chunk section 401 and the checksum calculation section 402 corresponds to the data transfer section 105 and the checksum calculation section 111 (FIG. 1).

ステップS103では、ネットワークバッファ管理部203が、チャンク化されたデータと、チャンク化されたデータに対するチェックサム値を関連付けし、送信バッファ112に格納する。ステップS104では、セグメント処理部204が、送信バッファ114に格納されている送信データ(チャンク化された一連のデータ)のサイズが、TCPウィンドウ制御部207により管理されている送信ウィンドウサイズを超えるかどうかを判定する。送信バッファ114に格納されている送信データのサイズが送信ウィンドウサイズを超えない場合は(ステップS104でNo)、処理はステップS105に進む。ステップS105では、セグメント処理部204は、送信バッファ114に格納されている送信データのサイズを、送信データサイズとして決定する。一方、送信バッファ114に格納されている送信データのサイズが送信ウィンドウサイズ超える場合は(ステップS104でYes)、処理はステップS106に進む。ステップS106では、セグメント処理部204は、送信ウィンドウサイズを、送信データサイズとして決定する。 In step S<b>103 , the network buffer management unit 203 associates the chunked data with the checksum value for the chunked data, and stores them in the transmission buffer 112 . In step S104, the segment processing unit 204 determines whether the size of the transmission data (a series of chunked data) stored in the transmission buffer 114 exceeds the transmission window size managed by the TCP window control unit 207. judge. If the size of the transmission data stored in the transmission buffer 114 does not exceed the transmission window size (No in step S104), the process proceeds to step S105. In step S105, the segment processing unit 204 determines the size of the transmission data stored in the transmission buffer 114 as the transmission data size. On the other hand, if the size of the transmission data stored in the transmission buffer 114 exceeds the transmission window size (Yes in step S104), the process proceeds to step S106. In step S106, the segment processing unit 204 determines the transmission window size as the transmission data size.

ステップS107では、通信プロトコル処理部205が、ステップS106またはS105で決定した送信データサイズが、コネクション管理部206で管理されているMSSを超えるかどうか判定する。決定した送信データサイズがMSSを超えない場合は(ステップS107でNo)、処理はステップS108に進む。ステップS108では、通信プロトコル処理部205は、送信データに対するチェックサムを計算してTCP/IPヘッダを生成し、TCP/IPヘッダと送信データ(セグメント)を連結してパケット化し、TCP/IPパケットを生成する。通信プロトコル処理部205は、更に、イーサネットヘッダを生成し、生成したイーサネットヘッダを用いて、生成したTCP/IPパケットをイーサネットフレーム化し、ステップS114に進む。 In step S<b>107 , communication protocol processing section 205 determines whether or not the transmission data size determined in step S<b>106 or S<b>105 exceeds the MSS managed by connection management section 206 . If the determined transmission data size does not exceed the MSS (No in step S107), the process proceeds to step S108. In step S108, the communication protocol processing unit 205 calculates a checksum for the transmission data to generate a TCP/IP header, concatenates the TCP/IP header and the transmission data (segment) into a packet, and converts the TCP/IP packet into a packet. Generate. The communication protocol processing unit 205 further generates an Ethernet header, converts the generated TCP/IP packet into an Ethernet frame using the generated Ethernet header, and proceeds to step S114.

一方、決定した送信データサイズがMSSを超える場合は(ステップS107でYes)、処理はステップS109へ進む。ステップS109では、フレーム生成部106は、TCP/IPヘッダとイーサネットヘッダを生成するための情報としてヘッダ情報を生成し、ステップS110へ進む。ステップS110~S113の処理は、パケット生成部300による処理である。なお、上述したように、パケット生成部300(図2)は、データ転送部105、パケット生成部107、チェックサム計算部111(図1)に対応する。 On the other hand, if the determined transmission data size exceeds the MSS (Yes in step S107), the process proceeds to step S109. In step S109, the frame generator 106 generates header information as information for generating a TCP/IP header and an Ethernet header, and proceeds to step S110. The processing of steps S110 to S113 is performed by the packet generator 300. FIG. Note that, as described above, the packet generation unit 300 (FIG. 2) corresponds to the data transfer unit 105, the packet generation unit 107, and the checksum calculation unit 111 (FIG. 1).

ステップS110では、データ転送部301は、ステップS102で計算されたチェックサム値が利用可能かどうかを判定する。ステップ102で計算されたチェックサム値は、ステップS103で、チャンク化されたデータと関連付けられて送信バッファ112に格納されている。しかしながら、S104からのS105またはS106の処理を経て、送信データサイズに基づいて決定される実際の送信データ(実送信データ)は変わり得る。例えば、実送信データが、複数のチャンクに跨ることもあり得る。よって、ステップS110では、データ転送部301が、ステップS102で計算されたチェックサム値が実送信データに対応するか否かを判定する。 At step S110, the data transfer unit 301 determines whether the checksum value calculated at step S102 is available. The checksum value calculated in step 102 is associated with the chunked data and stored in the transmission buffer 112 in step S103. However, through the processing from S104 to S105 or S106, the actual transmission data (actual transmission data) determined based on the transmission data size may change. For example, actual transmission data may span multiple chunks. Therefore, in step S110, the data transfer unit 301 determines whether or not the checksum value calculated in step S102 corresponds to the actual transmission data.

ステップS110の判定の結果、ステップS102で計算されたチェックサム値が利用可能でない場合は(ステップS110でNo)、処理はステップS111へ進む。ステップS111では、データ転送部301は、実送信データがMSS単位にチャンク化された各セグメントに対するチェックサム計算(再計算)を行う。続いて、ヘッダ生成部302は、ステップS109で生成されたヘッダ情報を使用し、各セグメントに対してTCP/IPヘッダとイーサネットヘッダを(自動)生成する。ステップS113では、パケット生成部303は、S111で生成されたTCP/IPヘッダと各セグメントを連結し、TCP/IPパケット化した後、イーサネットヘッダを付加し、イーサネットフレーム化する。 If the checksum value calculated in step S102 cannot be used as a result of the determination in step S110 (No in step S110), the process proceeds to step S111. In step S111, the data transfer unit 301 performs checksum calculation (recalculation) for each segment obtained by chunking actual transmission data in units of MSS. Subsequently, the header generation unit 302 uses the header information generated in step S109 to (automatically) generate a TCP/IP header and an Ethernet header for each segment. In step S113, the packet generation unit 303 concatenates the TCP/IP header generated in step S111 and each segment, forms a TCP/IP packet, adds an Ethernet header, and forms an Ethernet frame.

ステップS102で計算されたチェックサム値が利用可能である場合は(ステップS110でYes)、処理はステップS112へ進む。ステップS112では、ヘッダ生成部302は、ステップS102で計算されたチェックサム値と、ステップS109で生成されたヘッダ情報を使用し、各セグメントに対して、TCP/IPヘッダとイーサネットヘッダを(自動)生成する。ステップS113では、パケット生成部303は、S112で生成されたTCP/IPヘッダと各セグメントを連結し、TCP/IPパケット化した後、イーサネットヘッダを付加し、イーサネットフレーム化する。なお、一度に連結できるセグメントの数は、輻輳ウィドウサイズに基づいて決定され得る。ステップS114では、通信プロトコル処理部205は、イーサネットフレームを通信インタフェース制御部209に送信し、処理を終了する。 If the checksum value calculated in step S102 is available (Yes in step S110), the process proceeds to step S112. In step S112, the header generation unit 302 uses the checksum value calculated in step S102 and the header information generated in step S109 to (automatically) generate a TCP/IP header and an Ethernet header for each segment. Generate. In step S113, the packet generation unit 303 concatenates the TCP/IP header generated in step S112 and each segment, forms a TCP/IP packet, adds an Ethernet header, and forms an Ethernet frame. Note that the number of segments that can be concatenated at one time can be determined based on the congestion window size. At step S114, the communication protocol processing unit 205 transmits the Ethernet frame to the communication interface control unit 209, and ends the processing.

このように、送信データサイズがMSSを超える場合であっても、事前にハードウェアで計算したチェックサム値を用いてIPパケット化処理を行うことができる。また、事前にハードウェアで計算したチェックサム値を用いることができない場合であっても、ハードウェアで再計算したチェックサム値を用いて、IPパケット化処理を行うことができる。なお、ステップS110~S113におけるハードウェアによる処理を、ソフトウェアで処理を実行した場合においても、本実施形態を適用可能である。また、本実施形態では、通信インタフェースが一つ存在する例を挙げたが、通信インタフェースが複数の場合にも本実施形態を適用することができる。また、本実施形態では、TCP/IPプロトコルを例にして説明したが、UDP(User Datagram Protocol)プロトコル等の他のプロトコルを適用することも可能である。 In this way, even if the transmission data size exceeds the MSS, IP packetization processing can be performed using the checksum value calculated in advance by hardware. In addition, even if a checksum value calculated in advance by hardware cannot be used, IP packetization processing can be performed using a checksum value recalculated by hardware. Note that the present embodiment can be applied even when the processing by hardware in steps S110 to S113 is executed by software. Also, in this embodiment, an example in which there is one communication interface has been given, but this embodiment can also be applied when there are a plurality of communication interfaces. Also, in the present embodiment, the TCP/IP protocol has been described as an example, but other protocols such as the UDP (User Datagram Protocol) protocol can also be applied.

[実施形態2]
続いて、実施形態2について説明する。なお、本実施形態において、実施形態1と同様の構成については、同一符号を付して、その詳細説明を省略する。
[Embodiment 2]
Next, Embodiment 2 will be described. In addition, in this embodiment, the same code|symbol is attached|subjected about the structure similar to Embodiment 1, and the detailed description is abbreviate|omitted.

(処理の流れ)
図4を参照して、本実施形態における処理について説明する。図4は、本実施形態におけるデータ送信処理を説明するフローチャートである。本フローチャートは、ソケットAPI send()によるデータ送信処理を想定する。なお、S201~S210の処理は、実施形態1において説明した図3のステップS101~S110と同様の処理のため、説明を省略する。
(Processing flow)
Processing in this embodiment will be described with reference to FIG. FIG. 4 is a flowchart for explaining data transmission processing in this embodiment. This flowchart assumes data transmission processing by the socket API send( ). Note that the processing of S201 to S210 is the same as the processing of steps S101 to S110 in FIG. 3 described in the first embodiment, so description thereof will be omitted.

ステップS210では、データ転送部301は、ステップS202で計算されたチェックサム値が利用可能かどうかを判定する。ステップS202で計算されたチェックサム値が利用可能でない場合は(ステップS210でNo)、処理はステップS211へ進む。ステップS211では、データ転送部301は、実送信データがMSS単位にチャンク化されているかどうかを判定する。ステップS202において、送信データはチャンク化されているが、S104からのS105またはS106の処理を経て、送信データサイズに対応する送信データ(実送信データ)は変わり得る。よって、S211では、データ転送部301は、実送信データがMSS単位にチャンク化されているか、すなわち、フラグメント化されているかを判定する。 At step S210, the data transfer unit 301 determines whether the checksum value calculated at step S202 is available. If the checksum value calculated in step S202 is not available (No in step S210), processing proceeds to step S211. In step S211, the data transfer unit 301 determines whether or not the actual transmission data is chunked in MSS units. Although the transmission data is chunked in step S202, the transmission data (actual transmission data) corresponding to the transmission data size may change through the processing from S104 to S105 or S106. Therefore, in S211, the data transfer unit 301 determines whether the actual transmission data is chunked in MSS units, ie, fragmented.

実送信データがMSS単位にチャンク化されていない場合は(ステップS211でNo)、処理はステップS212へ進む。ステップS212では、データ転送部301は、実送信データをセグメントサイズへチャンク化し、チャンク化した各送信データ(セグメント)に対するチェックサム計算(再計算)を行う。続いて、ヘッダ生成部302は、ステップS209で生成されたヘッダ情報を使用し、各セグメントに対してTCP/IPヘッダとイーサネットヘッダを(自動)生成する。ステップS215では、パケット生成部303は、S212で生成されたTCP/IPヘッダとセグメントを連結し、TCP/IPパケット化した後、イーサネットヘッダを付加し、イーサネットフレーム化する。 If the actual transmission data is not chunked by MSS (No in step S211), the process proceeds to step S212. In step S212, the data transfer unit 301 chunks the actual transmission data into segment sizes, and performs checksum calculation (recalculation) for each chunked transmission data (segment). Subsequently, the header generation unit 302 uses the header information generated in step S209 to (automatically) generate a TCP/IP header and an Ethernet header for each segment. In step S215, the packet generator 303 concatenates the TCP/IP header generated in S212 and the segment, forms a TCP/IP packet, adds an Ethernet header, and forms an Ethernet frame.

実送信データがMSS単位にチャンク化されている場合は(ステップS211でYes)、処理はステップS213へ進む。ステップS213では、データ転送部301は、チャンク化された各送信データ(セグメント)のチェックサム計算を行う。また、ヘッダ生成部302は、ステップS209で生成されたヘッダ情報を使用し、各セグメントに対してTCP/IPヘッダとイーサネットヘッダを(自動)生成する。ステップS215では、パケット生成部303は、S213で生成されたTCP/IPヘッダとセグメントを連結し、TCP/IPパケット化した後、イーサネットヘッダを付加し、イーサネットフレーム化する。 If the actual transmission data is chunked in units of MSS (Yes in step S211), the process proceeds to step S213. In step S213, the data transfer unit 301 performs checksum calculation of each chunked transmission data (segment). The header generation unit 302 also uses the header information generated in step S209 to (automatically) generate a TCP/IP header and an Ethernet header for each segment. In step S215, the packet generator 303 concatenates the TCP/IP header generated in S213 and the segment, forms a TCP/IP packet, adds an Ethernet header, and forms an Ethernet frame.

ステップS202で計算されたチェックサム値が利用可能である場合は(ステップS210でYes)、処理はステップS214へ進む。ステップS214では、ヘッダ生成部302は、ステップS202で計算されたチェックサム値と、ステップS109で生成されたヘッダ情報を使用し、各セグメントに対して、TCP/IPヘッダとイーサネットヘッダを(自動)生成する。ステップS215では、パケット生成部303は、S214で生成されたTCP/IPヘッダとセグメントを連結し、TCP/IPパケット化した後、イーサネットヘッダを付加し、イーサネットフレーム化する。なお、一度に連結できるセグメントの数は、輻輳ウィドウサイズに基づいて決定され得る。ステップS216では、通信プロトコル処理部205は、イーサネットフレームを通信インタフェース制御部209に送信し、処理を終了する。 If the checksum value calculated in step S202 is available (Yes in step S210), processing proceeds to step S214. In step S214, the header generation unit 302 uses the checksum value calculated in step S202 and the header information generated in step S109 to (automatically) generate a TCP/IP header and an Ethernet header for each segment. Generate. In step S215, the packet generator 303 concatenates the TCP/IP header generated in S214 and the segment, forms a TCP/IP packet, adds an Ethernet header, and forms an Ethernet frame. Note that the number of segments that can be concatenated at one time can be determined based on the congestion window size. At step S216, the communication protocol processing unit 205 transmits the Ethernet frame to the communication interface control unit 209, and ends the processing.

このように、送信データサイズがMSSを超える場合であっても、事前にハードウェアで計算したチェックサム値を用いてIPパケット化処理を行うことができる。また、事前にハードウェアで計算したチェックサム値を用いることができない場合や、実送信データがチャンク化されていない場合であっても、ハードウェアで再計算したチェックサム値を用いて、IPパケット化処理を行うことができる。なお、ステップS210~S215におけるハードウェアによる処理を、ソフトウェアで処理を実行した場合においても、本実施形態を適用可能である。また、本実施形態では、通信インタフェースが一つ存在する例を挙げたが、通信インタフェースが複数の場合にも本実施形態を適用することができる。また、本実施形態では、TCP/IPプロトコルを例にして説明したが、UDPプロトコル等の他のプロトコルを適用することも可能である。 In this way, even if the transmission data size exceeds the MSS, IP packetization processing can be performed using the checksum value calculated in advance by hardware. In addition, even if the checksum value calculated in advance by hardware cannot be used, or even if the actual transmission data is not chunked, the checksum value recalculated by hardware is used to generate IP packets. conversion processing can be performed. Note that the present embodiment can be applied even when the processing by hardware in steps S210 to S215 is executed by software. Also, in this embodiment, an example in which there is one communication interface has been given, but this embodiment can also be applied when there are a plurality of communication interfaces. Also, in the present embodiment, the TCP/IP protocol has been described as an example, but other protocols such as the UDP protocol can also be applied.

[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
[Other embodiments]
The present invention supplies a program that implements one or more functions of the above-described embodiments to a system or device via a network or a storage medium, and one or more processors in the computer of the system or device reads and executes the program. It can also be realized by processing to It can also be implemented by a circuit (for example, ASIC) that implements one or more functions.

101 RAM、102 CPU、103 ROM、104 タイマ管理部、105 データ転送部、106 フレーム生成部、107 パケット生成部、108 MACモジュール、109 PHYモジュール、110 通信部、111 チェックサム計算部 101 RAM, 102 CPU, 103 ROM, 104 timer management unit, 105 data transfer unit, 106 frame generation unit, 107 packet generation unit, 108 MAC module, 109 PHY module, 110 communication unit, 111 checksum calculation unit

Claims (9)

通信装置であって、
複数のパケットに対応する送信データをDMA(Direct Memory Access)により送信バッファへ転送する転送手段と、
前記転送手段による前記送信データの転送に並行して、当該送信データに対する第1のチェックサム値を計算する第1の計算手段と、
通信相手装置へ送信する際の送信データサイズを決定する決定手段と、
前記決定手段により決定された前記送信データサイズに基づいて、前記第1のチェックサム値が利用可能かを判定する判定手段と、
前記判定手段により前記第1のチェックサム値が利用可能と判定された場合、前記転送手段により転送された前記送信データに対するパケット化処理を行う際に、前記第1の計算手段により計算された前記第1のチェックサム値を利用してパケット化処理を行うことで、複数のパケットを生成する第1の生成手段と、
を有することを特徴とする通信装置。
A communication device,
transfer means for transferring transmission data corresponding to a plurality of packets to a transmission buffer by DMA (Direct Memory Access);
a first calculation means for calculating a first checksum value for the transmission data in parallel with the transfer of the transmission data by the transfer means;
determining means for determining a transmission data size when transmitting to a communication partner device;
determining means for determining whether the first checksum value is available based on the transmission data size determined by the determining means;
When the determining means determines that the first checksum value can be used, the above calculated by the first calculating means when packetizing the transmission data transferred by the transferring means a first generation means for generating a plurality of packets by performing packetization processing using the first checksum value;
A communication device comprising:
前記決定手段は、前記通信相手装置から受信した情報に基づいて、前記送信データサイズを決定することを特徴とする請求項に記載の通信装置。 2. The communication apparatus according to claim 1 , wherein said determining means determines said transmission data size based on information received from said communication partner apparatus. 前記転送手段により転送された前記送信データに対するパケット化処理を行う際に、第2のチェックサム値を計算する第2の計算手段と、
前記転送手段により転送された前記送信データに対するパケット化処理を行う際に、前記第2の計算手段により計算された前記第2のチェックサム値を利用してパケット化処理を行うことで、複数のパケットを生成する第2の生成手段と、
を更に有し、
前記判定手段により前記第1のチェックサム値が利用可能でないと判定された場合、前記第2の生成手段が複数のパケットを生成することを特徴とする請求項またはに記載の通信装置。
a second calculation means for calculating a second checksum value when packetizing the transmission data transferred by the transfer means;
When performing the packetization process on the transmission data transferred by the transfer means, by performing the packetization process using the second checksum value calculated by the second calculation means, a plurality of a second generating means for generating packets;
further having
3. The communication device according to claim 1 , wherein said second generating means generates a plurality of packets when said determining means determines that said first checksum value is not available.
前記判定手段により前記第1のチェックサム値が利用可能でないと判定された場合、前記送信データをチャンク化するチャンク化手段を更に有し、
前記第2の計算手段は、前記チャンク化手段によりチャンク化された各セグメントについて、前記第2のチェックサム値を計算することを特徴とする請求項に記載の通信装置。
further comprising chunking means for chunking the transmission data when the determining means determines that the first checksum value is not available;
4. The communication device according to claim 3 , wherein said second calculating means calculates said second checksum value for each segment chunked by said chunking means.
前記第1のチェックサム値を前記送信データと関連付けてメモリで管理する管理手段を更に有し、
前記判定手段は、前記メモリを参照することにより、前記第1のチェックサム値が利用可能かを判定することを特徴とする請求項からのいずれか1項に記載の通信装置。
further comprising management means for managing the first checksum value in a memory in association with the transmission data;
5. The communication apparatus according to any one of claims 1 to 4 , wherein said determining means determines whether said first checksum value is available by referring to said memory.
前記第1のチェックサム値は、前記送信データを構成する各セグメントに対するチェックサム値であることを特徴とする請求項1からのいずれか1項に記載の通信装置。 6. The communication apparatus according to any one of claims 1 to 5 , wherein the first checksum value is a checksum value for each segment forming the transmission data. 前記第1の生成手段は、前記第1のチェックサム値を用いて前記各セグメントに対するヘッダを生成し、前記ヘッダと前記各セグメントを連結することにより、複数のパケットを生成することを特徴とする請求項に記載の通信装置。 The first generating means generates a header for each segment using the first checksum value, and generates a plurality of packets by concatenating the header and each segment. 7. A communication device according to claim 6 . 通信装置によって実行される制御方法であって、
複数のパケットに対応する送信データをDMA(Direct Memory Access)により送信バッファへ転送する転送工程と、
前記転送工程における前記送信データの転送に並行して、当該送信データに対する第1のチェックサム値を計算する計算工程と、
通信相手装置へ送信する際の送信データサイズを決定する決定工程と、
前記決定工程において決定された前記送信データサイズに基づいて、前記第1のチェックサム値が利用可能かを判定する判定工程と、
前記判定工程において前記第1のチェックサム値が利用可能と判定された場合、前記転送工程において転送された前記送信データに対するパケット化処理を行う際に、前記計算工程において計算された前記第1のチェックサム値を利用してパケット化処理を行うことで、複数のパケットを生成する生成工程と、
を有することを特徴とする制御方法。
A control method performed by a communication device, comprising:
a transfer step of transferring transmission data corresponding to a plurality of packets to a transmission buffer by DMA (Direct Memory Access);
a calculation step of calculating a first checksum value for the transmission data in parallel with the transmission of the transmission data in the transmission step;
a determination step of determining a transmission data size when transmitting to a communication partner device;
determining whether the first checksum value is available based on the transmission data size determined in the determining step;
If it is determined in the determining step that the first checksum value can be used, the first checksum value calculated in the calculating step is performed when packetizing the transmission data transferred in the transferring step. a generation step of generating a plurality of packets by performing packetization processing using the checksum value;
A control method characterized by having
コンピュータを、請求項1からのいずれか1項に記載の通信装置として機能させるためのプログラム。 A program for causing a computer to function as the communication device according to any one of claims 1 to 7 .
JP2018093223A 2018-05-14 2018-05-14 COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD, AND PROGRAM Active JP7142462B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018093223A JP7142462B2 (en) 2018-05-14 2018-05-14 COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD, AND PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018093223A JP7142462B2 (en) 2018-05-14 2018-05-14 COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD, AND PROGRAM

Publications (3)

Publication Number Publication Date
JP2019201249A JP2019201249A (en) 2019-11-21
JP2019201249A5 JP2019201249A5 (en) 2021-07-26
JP7142462B2 true JP7142462B2 (en) 2022-09-27

Family

ID=68613292

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018093223A Active JP7142462B2 (en) 2018-05-14 2018-05-14 COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD, AND PROGRAM

Country Status (1)

Country Link
JP (1) JP7142462B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006303765A (en) 2005-04-19 2006-11-02 Seiko Epson Corp TCP / IP transmission processing circuit and semiconductor integrated circuit having the same
JP2009116386A (en) 2007-11-01 2009-05-28 Sony Corp Information processor, method and program
JP2017108357A (en) 2015-12-11 2017-06-15 キヤノン株式会社 Arithmetic unit, arithmetic method and communication apparatus

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04352054A (en) * 1991-05-29 1992-12-07 Toshiba Corp Communication controller
US5430842A (en) * 1992-05-29 1995-07-04 Hewlett-Packard Company Insertion of network data checksums by a network adapter
JP3358254B2 (en) * 1993-10-28 2002-12-16 株式会社日立製作所 Communication control device and communication control circuit device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006303765A (en) 2005-04-19 2006-11-02 Seiko Epson Corp TCP / IP transmission processing circuit and semiconductor integrated circuit having the same
JP2009116386A (en) 2007-11-01 2009-05-28 Sony Corp Information processor, method and program
JP2017108357A (en) 2015-12-11 2017-06-15 キヤノン株式会社 Arithmetic unit, arithmetic method and communication apparatus

Also Published As

Publication number Publication date
JP2019201249A (en) 2019-11-21

Similar Documents

Publication Publication Date Title
CN100448224C (en) Method and apparatus for exploring path maximum transmission unit
US7385923B2 (en) Method, system and article for improved TCP performance during packet reordering
US8311059B2 (en) Receive coalescing and automatic acknowledge in network interface controller
US7596144B2 (en) System-on-a-chip (SoC) device with integrated support for ethernet, TCP, iSCSI, RDMA, and network application acceleration
US7103674B2 (en) Apparatus and method of reducing dataflow distruption when detecting path maximum transmission unit (PMTU)
US11012367B2 (en) Technologies for managing TCP/IP packet delivery
JP5523350B2 (en) Method and apparatus for TCP flow control
US8306062B1 (en) Method and apparatus of adaptive large receive offload
US20180004705A1 (en) Selective acknowledgment of RDMA packets
US20070014246A1 (en) Method and system for transparent TCP offload with per flow estimation of a far end transmit window
EP2632102A1 (en) Method and device for data transmission
JP2014509483A (en) Mechanisms to improve the performance of transmission control protocols in wireless networks
US7480301B2 (en) Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement
US8976814B2 (en) Method of transporting data from sending node to destination node
CN103414714B (en) Method, device and equipment for processing messages
JP6963411B2 (en) Communication equipment, communication methods, and programs
US20070291782A1 (en) Acknowledgement filtering
US8578040B2 (en) Method, system and article for client application control of network transmission loss tolerance
JP7142462B2 (en) COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD, AND PROGRAM
CN114390054A (en) Core network acceleration method, electronic equipment and computer storage medium
JP4506430B2 (en) Application monitor device
JP2012049883A (en) Communication device and packet processing method
KR102184363B1 (en) Communicating method between host and client with network connector, and network connector proceeding the same
JP2021087172A (en) Communication device, communication method, and program
CN116155810A (en) Multilink aggregation ordered transmission method and device

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210510

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220331

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: 20220815

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220913

R151 Written notification of patent or utility model registration

Ref document number: 7142462

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151