JP2018196024A - Communication device and control method therefor, and information processing device - Google Patents

Communication device and control method therefor, and information processing device Download PDF

Info

Publication number
JP2018196024A
JP2018196024A JP2017099210A JP2017099210A JP2018196024A JP 2018196024 A JP2018196024 A JP 2018196024A JP 2017099210 A JP2017099210 A JP 2017099210A JP 2017099210 A JP2017099210 A JP 2017099210A JP 2018196024 A JP2018196024 A JP 2018196024A
Authority
JP
Japan
Prior art keywords
communication
header
information
flag
headers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017099210A
Other languages
Japanese (ja)
Other versions
JP2018196024A5 (en
Inventor
松本 仁
Hitoshi Matsumoto
仁 松本
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 JP2017099210A priority Critical patent/JP2018196024A/en
Publication of JP2018196024A publication Critical patent/JP2018196024A/en
Publication of JP2018196024A5 publication Critical patent/JP2018196024A5/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

To automatically generate different communication headers for a plurality of transmit packets by one session of setting when an information processing device transfers transmit information separately in a plurality of transmit packets via a network to an external apparatus and improve the transmission processing capability of the information processing device.SOLUTION: Provided is a network communication device, connected to an information processing device, for connecting the information processing device to a network, comprising: a determination unit for determining an N that represents the number of packets from the size of information to be transferred when a request for transfer to the network is received from the information processing device; a generation unit for generating N communication headers from a template communication header that conforms to the transfer request and dividing the information to be transferred into N payloads; an editing unit for doing different editing to the first, the second to N-1'th and the N'th communication headers among as many communication headers as the number of headers; and a transmission unit for transmitting N packets that are a combination of communication headers having undergone editing by the editing unit and payloads to the network.SELECTED DRAWING: Figure 1

Description

本発明は通信プロトコル処理における送信パケットの通信ヘッダ生成技術に関するものである。   The present invention relates to a communication header generation technique for transmission packets in communication protocol processing.

近年、スマートデバイスと呼ばれる多機能端末を利用して、ネットワーク経由による高解像度動画(8K/4K)の閲覧のニーズが高まっている。当然、この結果、ネットワーク上のデータトラフィックが増大することになる。Ethernet(登録商標)による10Gbps通信、移動体通信の5G通信などのネットワーク高速化は、TCP/UDP/IPなどの通信プロトコル処理に対するCPUの負荷が大きくなることを意味する。それ故、CPUによる通信プロトコル処理の負荷を低減させつつ、これらの高速データ通信を実現するために施策が提案されている。   In recent years, there is an increasing need for browsing high-resolution moving images (8K / 4K) via a network using a multifunction terminal called a smart device. Naturally, this results in increased data traffic on the network. Network acceleration such as 10 Gbps communication by Ethernet (registered trademark) and 5G communication of mobile communication means that the load on the CPU for communication protocol processing such as TCP / UDP / IP becomes large. Therefore, measures have been proposed for realizing these high-speed data communications while reducing the load of communication protocol processing by the CPU.

通信プロトコル処理は、国際標準化機構(ISO)によって策定された階層構造に分割したOSI(Open Systems Interconnection)参照モデルとして7つの階層に分けて定義されている。   The communication protocol process is defined in seven layers as an OSI (Open Systems Interconnection) reference model divided into a hierarchical structure established by the International Organization for Standardization (ISO).

そして、通信プロトコル処理の送信を高速化する処理方法としてTSO(TCP Segmentation Offload)がある。TSOはCPUで実行する通信プロトコル処理の一部(TCPセグメント処理)をオフロードして、CPUにかかる負荷を低減するものである。なお、このTCPセグメント処理は、OSI参照モデルで定義されるアプリケーション層で生成された送信データを下位レイヤである通信レイヤで使用する通信パケットに変換する処理である。   There is TSO (TCP Segmentation Offload) as a processing method for speeding up transmission of communication protocol processing. TSO offloads a part of communication protocol processing (TCP segment processing) executed by the CPU to reduce the load on the CPU. This TCP segment process is a process for converting transmission data generated in the application layer defined by the OSI reference model into a communication packet used in a communication layer which is a lower layer.

TCPセグメント処理の例として、特許文献1に記載されている送信パケット生成方法が知られている。この方法は、最初にペイロード分割部が、アプリケーション層で生成された転送可能長を超える送信データを転送可能長に分割して送信ペイロードを生成する。そして、ヘッダ生成部が、分割した送信ペイロードに付与するヘッダを生成する。そして、ヘッダ/ペイロード合成部が、生成されたヘッダと分割された送信ペイロードとを合成して送信パケットを完成させるものである。   As an example of TCP segment processing, a transmission packet generation method described in Patent Document 1 is known. In this method, first, the payload dividing unit divides transmission data exceeding the transferable length generated in the application layer into a transferable length to generate a transmission payload. And a header production | generation part produces | generates the header provided to the divided | segmented transmission payload. Then, the header / payload combining unit combines the generated header and the divided transmission payload to complete the transmission packet.

特開2006−81033号公報JP 2006-81033 A

特許文献1に記載した送信パケット生成方法は、転送可能長を超える送信データの一括入力に対して、順に送信データから送信パケットを生成し、順次送信パケットをネットワークから送出するようになっている。そして、送信パケット用のペイロード分割方法は、アプリケーション層で生成された送信データをペイロード分割部が一括で送信ペイロードに分割する方法である。   The transmission packet generation method described in Patent Document 1 is configured to generate transmission packets from transmission data in order for batch input of transmission data exceeding the transferable length, and sequentially transmit the transmission packets from the network. The payload dividing method for transmission packets is a method in which the payload dividing unit divides transmission data generated in the application layer into transmission payloads at once.

しかしながら、特許文献1では、分割された送信ペイロードに付与するヘッダをヘッダ生成部が一つずつ生成する方法となっている。そのため、このヘッダ生成方法ではヘッダを生成するたびにヘッダ情報とヘッダ生成指示情報が必要となるので、ヘッダ情報の収集や指示情報の生成に時間がかるという課題がある。   However, in Patent Document 1, the header generation unit generates one header at a time for each divided transmission payload. For this reason, this header generation method requires header information and header generation instruction information every time a header is generated, and thus there is a problem that it takes time to collect header information and generate instruction information.

この課題を解決するため、例えば本発明の通信装置は以下の構成を備える。すなわち、
情報処理装置をネットワークに接続するための通信装置であって、
前記情報処理装置からネットワークへの転送要求を受信した場合、転送すべき情報のサイズからパケット数を表すNを決定する決定手段と、
前記転送要求に応じたひな形の通信ヘッダに基づいてN個の通信ヘッダを生成する生成手段と、
前記転送すべき情報をN個のペイロードに分割する分割手段と、
前記生成手段により生成された通信ヘッダと前記ペイロードとの組み合わせたN個のパケットをネットワークに向けて送信する送信手段と、
を有し、
前記生成手段は、前記N個の通信ヘッダを生成する際に、前記転送要求に含まれる指示に従って、当該N個の通信ヘッダのうち、第1番目、第2乃至N−1番目、第N番目の通信ヘッダの少なくとも1つの通信ヘッダについて、前記ひな形の通信ヘッダを編集して生成することを特徴とする。
In order to solve this problem, for example, the communication device of the present invention has the following configuration. That is,
A communication device for connecting an information processing device to a network,
Determining means for determining N representing the number of packets from the size of information to be transferred when a transfer request to the network is received from the information processing apparatus;
Generating means for generating N communication headers based on a model communication header corresponding to the transfer request;
Dividing means for dividing the information to be transferred into N payloads;
Transmitting means for transmitting N packets, which are a combination of the communication header generated by the generating means and the payload, to the network;
Have
When generating the N communication headers, the generation means generates the first, second to N−1th, and Nth of the N communication headers according to an instruction included in the transfer request. The communication header of the template is generated by editing at least one of the communication headers.

本発明により、情報処理装置が外部機器に対してネットワーク経由で送信情報を複数の送信パケットに分割して転送する際に、複数の送信パケットの通信ヘッダを一度の設定で異なる通信ヘッダを自動生成することが可能となる。これにより送信情報を分割して複数の送信パケットを一度の設定によって高速に生成でき、情報処理装置の送信処理能力を向上させることが可能になる。   According to the present invention, when an information processing apparatus divides transmission information into a plurality of transmission packets and transfers them to an external device via a network, different communication headers are automatically generated with a single setting of communication headers of the plurality of transmission packets. It becomes possible to do. As a result, the transmission information can be divided and a plurality of transmission packets can be generated at a high speed by a single setting, and the transmission processing capability of the information processing apparatus can be improved.

実施形態における通信装置の機能ブロック図。The functional block diagram of the communication apparatus in embodiment. 実施形態における通信装置の送信動作フローチャート。The transmission operation | movement flowchart of the communication apparatus in embodiment. 実施形態におけるレジスタ設定情報の例を示す図。The figure which shows the example of the register setting information in embodiment. 実施形態における送信パケットの通信ヘッダを示す図。The figure which shows the communication header of the transmission packet in embodiment. 実施形態における通信ヘッダ生成処理を示すフローチャート。The flowchart which shows the communication header production | generation process in embodiment.

以下、添付図面に従って本発明に係る実施形態を詳細に説明する。   Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

[第1の実施形態]
図1は、第1の実施形態における通信装置100の機能ブロックを示した図である。通信装置100は、主な機能ブロックとしてメインCPU102とメインメモリ103と通信プロトコル処理を実行するサブシステム104で構成される。そして、通信装置100内の各機能ブロック102〜104はシステムバス101を介して相互に接続されている。
[First Embodiment]
FIG. 1 is a diagram illustrating functional blocks of the communication device 100 according to the first embodiment. The communication device 100 includes a main CPU 102, a main memory 103, and a subsystem 104 that executes communication protocol processing as main functional blocks. The functional blocks 102 to 104 in the communication apparatus 100 are connected to each other via the system bus 101.

通信装置100は、例えば、パーソナルコンピュータやスマートホン等の情報処理装置又は端末装置であり、サブシステム104はNIC(Network Interface Card)等のネットワーク通信用のインターフェース部であると考えると理解しやすい。なお、ネットワークの通信形態は有線、無線を問わない。なお、サブシステム104は、通信装置100となる基板に実装されるASIC等で実現しても良いし、PCI-Express等の汎用バスに接続するカードであっても構わない。さらには、USBに接続されるデバイスであっても構わない。   For example, the communication device 100 is an information processing device such as a personal computer or a smart phone or a terminal device, and the subsystem 104 is easily understood as an interface unit for network communication such as a NIC (Network Interface Card). The communication form of the network may be wired or wireless. Note that the subsystem 104 may be realized by an ASIC or the like mounted on a substrate serving as the communication apparatus 100, or may be a card connected to a general-purpose bus such as PCI-Express. Furthermore, it may be a device connected to the USB.

メインCPU102は、OSI参照モデルで定義されるアプリケーション層でアプリケーションソフトウエアを実行し、同時に通信装置全体の制御も実行する。メインCPU102は、アプリケーションソフトウエアを実行する上で必要となるOS(オペレーティングシステム),データや各種ドライバプログラムなどを不図示の外部記憶装置からメインメモリ103にロードし、実行することになる。   The main CPU 102 executes application software in the application layer defined by the OSI reference model, and also executes control of the entire communication device. The main CPU 102 loads an OS (operating system), data, various driver programs, and the like necessary for executing the application software from an external storage device (not shown) to the main memory 103 and executes them.

メインメモリ103は、通信装置内の各機能ブロックが共有して利用可能なメモリとなっており、主にDRAM(Dynamic Random Access Memory)に代表されるような半導体メモリで構成されている。内部の領域は、OSやプログラムを格納する領域、アプリケーションソフトウエアが使用するアプリケーションバッファ領域などに分けられる。   The main memory 103 is a memory that can be shared and used by each functional block in the communication apparatus, and is mainly composed of a semiconductor memory represented by a DRAM (Dynamic Random Access Memory). The internal area is divided into an area for storing an OS and a program, an application buffer area used by application software, and the like.

サブシステム104は、主な機能ブロックとして、サブCPU106、ローカルメモリ107、ヘッダ処理部111、DMAコントローラ108、通信インターフェース109とで構成される。そして、ローカルバス105を介して、上記参照符号106乃至109が互いに接続されている。   The sub system 104 includes a sub CPU 106, a local memory 107, a header processing unit 111, a DMA controller 108, and a communication interface 109 as main functional blocks. The reference numerals 106 to 109 are connected to each other via the local bus 105.

サブシステム104は、通信装置における通信プロトコル処理を実行するサブシステムであり、特にTCP/IPプロトコルといった通信プロトコル処理に特化して外部機器とネットワークを介したデータ転送処理を担う。そして、通信プロトコル処理専用のハードウェアを装備して高速な通信プロトコル処理をメインCPU102に代わって実行する。なお、TCP/IPプロトコルは説明を行うために示した一例であり、通信プロトコルの種類はこれに限らない。   The sub-system 104 is a sub-system that executes communication protocol processing in the communication device. The sub-system 104 specializes in communication protocol processing such as TCP / IP protocol and handles data transfer processing via an external device and a network. Then, hardware dedicated to communication protocol processing is installed, and high-speed communication protocol processing is executed instead of the main CPU 102. Note that the TCP / IP protocol is an example shown for explanation, and the type of communication protocol is not limited to this.

サブCPU106は、通信プロトコル処理を実行する。具体的には、サブCPU106は、IPv4(IPバージョン4)、IPv6(IPバージョン6)、UDP、TCPの各通信プロトコル処理(送信シーケンス制御や輻輳制御、通信エラー制御等)を行う。またサブCPU106は、1つのプロセッサとして構成してもよいし、複数のプロセッサによるマルチプロセッサ構成としてもよい。さらに、プロセッサと一部の機能をアクセラレートするハードウェアで構成してもよい。   The sub CPU 106 executes communication protocol processing. Specifically, the sub CPU 106 performs IPv4 (IP version 4), IPv6 (IP version 6), UDP, TCP communication protocol processing (transmission sequence control, congestion control, communication error control, etc.). In addition, the sub CPU 106 may be configured as one processor or may be configured as a multiprocessor with a plurality of processors. Further, it may be configured by hardware that accelerates a processor and some functions.

ローカルメモリ107は、サブシステム104のサブCPU106が利用可能なメモリとなっており、主にSRAM(Static Random Access Memory)に代表されるような半導体メモリで構成されている。また、メインCPU102もシステムバス101とローカルバス105を経由して、このローカルメモリ107をアクセス可能になっている。   The local memory 107 is a memory that can be used by the sub CPU 106 of the subsystem 104, and is mainly configured by a semiconductor memory represented by an SRAM (Static Random Access Memory). The main CPU 102 can also access the local memory 107 via the system bus 101 and the local bus 105.

DMAコントローラ108は、サブCPU106からの指示により、DMA転送を実行する。DMAコントローラ108は、デスクリプタに記載された内容に従ってDMA転送を実行する。ここでデスクリプタとは、データ転送を行うソース側のアドレス情報、ディスティネーション側のアドレス情報、そしてデータ転送の転送サイズ等の情報が記載された情報である。サブCPU106はローカルメモリ107にデスクリプタの書き込み完了後、DMAコントローラ108に対してDMA転送開始指示を通知する。このため、サブCPU106は、デスクリプタを保存しているローカルメモリ107のアドレス情報を、DMAコントローラ108に通知(設定)することになる。   The DMA controller 108 executes DMA transfer according to an instruction from the sub CPU 106. The DMA controller 108 executes DMA transfer according to the contents described in the descriptor. Here, the descriptor is information in which information such as address information on the source side that performs data transfer, address information on the destination side, and transfer size of data transfer is described. After completing the writing of the descriptor in the local memory 107, the sub CPU 106 notifies the DMA controller 108 of a DMA transfer start instruction. For this reason, the sub CPU 106 notifies (sets) the address information of the local memory 107 storing the descriptor to the DMA controller 108.

この通知を受けたDMAコントローラ108は、メインメモリ103とローカルメモリ107間、内部メモリ113とローカルメモリ107間のDMA転送を実行する。さらにDMAコントローラ108は、内部メモリ113と通信インターフェース間、ローカルメモリ107と通信インターフェース間のDMA転送処理も実行する。   Upon receiving this notification, the DMA controller 108 executes DMA transfer between the main memory 103 and the local memory 107 and between the internal memory 113 and the local memory 107. Further, the DMA controller 108 also executes DMA transfer processing between the internal memory 113 and the communication interface, and between the local memory 107 and the communication interface.

通信インターフェース109は、LAN(Local Area Network)に代表されるようなネットワーク110とのインターフェースとなっており、通信における物理層(PHY層)とデータリンク層(MAC層)の通信制御を担っている。内部に送受信情報を一時的に蓄積するバッファメモリを装備する。DMAコントローラ108は、このバッファメモリを介してDMA転送を行い、ネットワークとの間での送受信情報の入出力が行われることになる。なお、通信インターフェース109がDMAコントローラ108を内蔵して、そのDMAコントローラを使用する構成であっても良い。   The communication interface 109 is an interface with a network 110 represented by a LAN (Local Area Network), and is responsible for communication control of a physical layer (PHY layer) and a data link layer (MAC layer) in communication. . Equipped with a buffer memory that temporarily stores transmission / reception information. The DMA controller 108 performs DMA transfer via this buffer memory, and input / output of transmission / reception information to / from the network is performed. Note that the communication interface 109 may incorporate the DMA controller 108 and use the DMA controller.

ヘッダ処理部111は、主な機能ブロックとして、レジスタ部112、内部メモリ113、及び、コア部114で構成される。そして、ヘッダ処理部111は、これらを利用して、通信プロトコル処理における通信ヘッダ生成処理を担っている。具体的にはヘッダ処理部111は、サブCPU106が実行する通信プロトコル処理における通信ヘッダ生成処理を肩代わりして実行する。   The header processing unit 111 includes a register unit 112, an internal memory 113, and a core unit 114 as main functional blocks. And the header process part 111 bears the communication header production | generation process in a communication protocol process using these. Specifically, the header processing unit 111 executes the communication header generation process in the communication protocol process executed by the sub CPU 106 instead.

レジスタ部112は、コア制御部118がヘッダ複製部115とヘッダ編集部116とスイッチ117を制御するための設定情報を記憶する。さらに、レジスタ部112は、各機能ブロック115〜117の状態を確認するためのステータス情報も記憶する。   The register unit 112 stores setting information for the core control unit 118 to control the header duplicating unit 115, the header editing unit 116, and the switch 117. Further, the register unit 112 also stores status information for confirming the states of the functional blocks 115 to 117.

そして、サブCPU106は、ひな形となるヘッダ情報(以下、ひな形ヘッダ)と通信ヘッダ生成のための編集情報をセットするため、レジスタ部112に設定情報を格納する。   Then, the sub CPU 106 stores setting information in the register unit 112 in order to set header information (hereinafter referred to as “model header”) serving as a template and editing information for generating a communication header.

コア部114は、ヘッダ複製部115、ヘッダ編集部116、スイッチ117、コア制御部118で構成される。コア部114は、レジスタ部112の設定情報に従って、通信ヘッダ生成処理を実行し、内部メモリ113に生成した通信ヘッダを格納する。   The core unit 114 includes a header duplicating unit 115, a header editing unit 116, a switch 117, and a core control unit 118. The core unit 114 executes communication header generation processing according to the setting information of the register unit 112 and stores the generated communication header in the internal memory 113.

内部メモリ113は、ヘッダ処理部111のコア部114やサブCPU106が利用可能なメモリとなっており、主にSRAM(Static Random Access Memory)に代表されるような半導体メモリで構成されている。内部メモリ113は、コア部114により生成された通信ヘッダを記憶する。   The internal memory 113 is a memory that can be used by the core unit 114 of the header processing unit 111 and the sub CPU 106, and is mainly configured by a semiconductor memory represented by SRAM (Static Random Access Memory). The internal memory 113 stores the communication header generated by the core unit 114.

コア制御部118は、レジスタ部112に設定された設定情報に従って、ヘッダ複製部115、ヘッダ編集部116、及び、スイッチ117を制御する。   The core control unit 118 controls the header duplication unit 115, the header editing unit 116, and the switch 117 in accordance with the setting information set in the register unit 112.

ヘッダ複製部115は、コア制御部118の指示によりレジスタ部112内にセットされているひな形ヘッダ情報を、スイッチ117を介して内部メモリ113に、指示された回数だけ複製(格納)する。   The header duplicating unit 115 duplicates (stores) the template header information set in the register unit 112 according to an instruction from the core control unit 118 to the internal memory 113 through the switch 117 as many times as instructed.

ヘッダ編集部116は、コア制御部118の指示に従って、内部メモリ113に複製された各ひな形ヘッダ情報の編集を実行する。このとき、ヘッダ編集部116は、各ひな形ヘッダ情報の必要な部分だけをスイッチ117を介して上書きする。また、ヘッダ編集部116は、内部メモリ113に複製された各ひな形ヘッダ情報の編集する際に、編集処理を行ったヘッダの数をカウントする機能も装備している。   The header editing unit 116 edits each template header information copied to the internal memory 113 in accordance with an instruction from the core control unit 118. At this time, the header editing unit 116 overwrites only necessary portions of each template header information via the switch 117. The header editing unit 116 is also equipped with a function of counting the number of headers subjected to editing processing when editing each template header information copied to the internal memory 113.

スイッチ117は、コア制御部118の指示で、ヘッダ複製部115、ヘッダ編集部116のいずれかと、内部メモリ113とのデータパスの接続を切り替える。   The switch 117 switches the data path connection between the header duplicating unit 115 or the header editing unit 116 and the internal memory 113 in accordance with an instruction from the core control unit 118.

次に図1に示す通信装置100において、ネットワーク110を介して外部機器と接続し、その外部機器へ送信パケットを送信する際の通信装置100内の動作フローを、図2のフローチャートを参照して説明する。ここでは通信装置100が外部機器との間でデータ転送する際に使用する通信プロトコルとしてTCP/IPプロトコルを例に説明している。なお、TCP/IPプロトコルを例にするのは、広く知られている代表的なプロトコルとすることで、技術内容を容易に把握できるためである。あくまで例示として理解されたい。   Next, in the communication apparatus 100 shown in FIG. 1, an operation flow in the communication apparatus 100 when connecting to an external device via the network 110 and transmitting a transmission packet to the external device is described with reference to the flowchart of FIG. explain. Here, the TCP / IP protocol is described as an example of the communication protocol used when the communication apparatus 100 transfers data to / from an external device. The TCP / IP protocol is taken as an example because the technical contents can be easily grasped by using a widely known representative protocol. It should be understood as an example only.

S201(端子):
この端子は、このフローチャートのスタートを示している。通信装置100がネットワーク110を介して外部機器と通信状態になっていることを示している。
S201 (terminal):
This terminal indicates the start of this flowchart. It shows that the communication apparatus 100 is in communication with an external device via the network 110.

S202(処理):
メインCPU102で実行されるアプリケーションソフトウエアが、外部機器へ送信するための送信情報を、メインメモリ103のアプリケーションバッファ領域に準備する。そして、アプリケーションバッファ領域に送信情報が所定の量まで蓄積されると、メインCPU102は、サブCPU106に対して外部機器へ送信する送信情報の準備が完了したことを通知する処理を行う。つまり、メインCPU102は、サブCPU106に対して転送要求を発行する。
S202 (processing):
Application software executed by the main CPU 102 prepares transmission information for transmission to an external device in the application buffer area of the main memory 103. When the transmission information is accumulated up to a predetermined amount in the application buffer area, the main CPU 102 performs processing for notifying the sub CPU 106 that preparation of transmission information to be transmitted to the external device is completed. That is, the main CPU 102 issues a transfer request to the sub CPU 106.

なお、この通知には、現在の通信状態を示す情報も含まれる。例えばTCPプロトコルを使用した通信接続を開始することを示す情報である。あるいは、TCPプロトコルを使用したデータ転送を開始することを示す情報である。あるいは、TCPプロトコルを使用した通信の切断処理を開始する情報である。   This notification includes information indicating the current communication state. For example, it is information indicating that a communication connection using the TCP protocol is started. Alternatively, it is information indicating that data transfer using the TCP protocol is started. Alternatively, it is information for starting communication disconnection processing using the TCP protocol.

S203(条件判断):
この条件判断は、メインCPU102で実行されるアプリケーションソフトウエアが外部機器へ送信するための送信情報の準備ができたかどうかを条件として経路選択を行うことを示している。メインメモリ103のアプリケーションバッファ領域への、外部機器へ送信するための送信情報の蓄積が完了している場合は、S204に処理を移行し、そうでなければS202に処理を戻す。
S203 (condition judgment):
This condition determination indicates that the route selection is performed on the condition that the application software executed by the main CPU 102 is ready for transmission information to be transmitted to the external device. If the accumulation of transmission information for transmission to an external device in the application buffer area of the main memory 103 has been completed, the process proceeds to S204, and if not, the process returns to S202.

なお、この条件判断は、サブCPU106が、S202の処理で発行された通知を受け取ったかどうかの応答に基づき、メインCPU102が判断する。   This condition determination is determined by the main CPU 102 based on a response indicating whether the sub CPU 106 has received the notification issued in the process of S202.

S204(処理):
この処理は、サブCPU106が、外部機器へ通信プロトコルに従った送信を実行するための送信情報を、メインメモリ103からサブシステム104内のローカルメモリ107へ移動する処理を示している。
S204 (processing):
This process indicates a process in which the sub CPU 106 moves transmission information for executing transmission to an external device according to the communication protocol from the main memory 103 to the local memory 107 in the subsystem 104.

ここではサブCPU106が、S202の処理でメインCPU102から受け取った通知に基づき、メインメモリ103からローカルメモリ107へ送信情報のDMA転送を行う。DMA転送の設定は、サブCPU106がDMA転送の内容を記載したデスクリプタを生成してローカルメモリ107に保存する。そして、サブCPU106は、このデスクリプタを保存したローカルメモリ107のアドレス情報を、DMAコントローラ108に設定する。この結果、DMAコントローラ108は、メインメモリ103からローカルメモリ107へ送信情報の転送を行うことになる。このDMA転送の完了をもってサブCPU106による通信プロトコルに従った送信処理の準備が完了したことになる。   Here, the sub CPU 106 performs DMA transfer of transmission information from the main memory 103 to the local memory 107 based on the notification received from the main CPU 102 in the process of S202. For the DMA transfer setting, the sub CPU 106 generates a descriptor describing the contents of the DMA transfer and stores it in the local memory 107. Then, the sub CPU 106 sets the address information of the local memory 107 storing the descriptor in the DMA controller 108. As a result, the DMA controller 108 transfers transmission information from the main memory 103 to the local memory 107. Upon completion of this DMA transfer, preparation for transmission processing according to the communication protocol by the sub CPU 106 is completed.

S205(処理):
この処理は、サブCPU106が、S204の処理にて受け取った送信情報を分割して送信パケットのペイロード部分を確定させる処理、並びに、ヘッダ処理部111が送信パケットの通信ヘッダ部分を生成する処理を示している。
S205 (processing):
This process indicates a process in which the sub CPU 106 divides the transmission information received in the process of S204 to determine the payload part of the transmission packet, and a process in which the header processing unit 111 generates a communication header part of the transmission packet. ing.

そのため、まず、サブCPU106はローカルメモリ107に移動した送信情報から、送信パケット1個当たりのサイズと、送信パケットの数を決定する。次に、サブCPU106は、ヘッダ処理部111が送信パケットの通信ヘッダ部分を生成するために必要となる情報をレジスタ部112に設定し、ヘッダ処理部111を起動する。起動したヘッダ処理部111は、生成する送信パケットの数と同数の通信ヘッダをヘッダ処理部111内の内部メモリ113に生成する処理を実行する。これにより、送信パケットのペイロード部分の確定と通信ヘッダ部分の生成が完了する。   Therefore, first, the sub CPU 106 determines the size per transmission packet and the number of transmission packets from the transmission information moved to the local memory 107. Next, the sub CPU 106 sets information necessary for the header processing unit 111 to generate the communication header part of the transmission packet in the register unit 112 and activates the header processing unit 111. The activated header processing unit 111 executes processing for generating the same number of communication headers as the number of transmission packets to be generated in the internal memory 113 in the header processing unit 111. Thereby, the determination of the payload portion of the transmission packet and the generation of the communication header portion are completed.

なお、S202の処理による通知に含まれる現在の通信状態に応じて、サブCPU106はヘッダ処理部111のレジスタ部112に設定内容を変化させる。これにより、ヘッダ処理部111が内部メモリ113に生成する通信ヘッダは現在の通信状態に応じた通信ヘッダとして生成される。例えばTCPプロトコルを使用した通信接続を開始する状態であれば通信を開始するために必要となる通信ヘッダが生成される。あるいは、TCPプロトコルを使用したデータ転送を開始する状態であればデータ転送を開始するために必要となる通信ヘッダが生成される。あるいは、TCPプロトコルを使用した通信の切断処理を開始する状態であれば通信を切断するために必要となる通信ヘッダが生成される。なお、詳細な説明は、図3から図5を使用して後述する。   Note that the sub CPU 106 changes the setting contents in the register unit 112 of the header processing unit 111 according to the current communication state included in the notification by the process of S202. Accordingly, the communication header generated by the header processing unit 111 in the internal memory 113 is generated as a communication header corresponding to the current communication state. For example, if the communication connection using the TCP protocol is started, a communication header necessary for starting communication is generated. Alternatively, if the data transfer using the TCP protocol is started, a communication header necessary for starting the data transfer is generated. Alternatively, if the communication disconnection process using the TCP protocol is started, a communication header necessary for disconnecting the communication is generated. The detailed description will be described later with reference to FIGS.

S206(処理):
この処理は、サブCPU106がS205の処理で確定したペイロード部分と、生成した通信ヘッダ部分とから送信パケットを生成して、通信インターフェース109を介して外部機器へ送信する処理を示している。
S206 (processing):
This process indicates a process in which the sub CPU 106 generates a transmission packet from the payload part determined in S205 and the generated communication header part, and transmits the transmission packet to the external device via the communication interface 109.

まず、サブCPU106はローカルメモリ107内の送信情報をペイロード単位で切り出し、内部メモリ113に生成された各通信ヘッダと結合して1つの送信パケットとして転送するDMA転送設定を実施する。具体的には、サブCPU106は、内部メモリ113に格納された1つの通信ヘッダと、それに後続してローカルメモリ107に格納された該当するペイロードとを、通信インターフェース109へ転送する。このヘッダとペイロードの1組の転送を1セットとしたとき、この送信すべきパケット数分のセット処理を繰り返されることになる。この転送はDMAコントローラ108によるDMA転送によって実行される。サブCPU106によってDMA転送が起動されると、送信パケット(は通信イターフェース109へ転送される。   First, the sub CPU 106 cuts out transmission information in the local memory 107 in units of payload, and performs DMA transfer setting in which it is combined with each communication header generated in the internal memory 113 and transferred as one transmission packet. Specifically, the sub CPU 106 transfers one communication header stored in the internal memory 113 and a corresponding payload subsequently stored in the local memory 107 to the communication interface 109. When one set of transfer of the header and payload is set as one set, the set processing for the number of packets to be transmitted is repeated. This transfer is executed by DMA transfer by the DMA controller 108. When the DMA transfer is activated by the sub CPU 106, the transmission packet (is transferred to the communication interface 109).

次に、通信インターフェース109においてデータリンク層(MAC層)や物理層(PHY層)の通信処理を行った後、ネットワークを介して外部機器へ、生成された送信パケットが順次送信される。   Next, after the communication processing of the data link layer (MAC layer) and the physical layer (PHY layer) is performed in the communication interface 109, the generated transmission packets are sequentially transmitted to the external device via the network.

S207(条件判断):
この条件判断は、通信装置100と外部機器の通信状態を終了させる要因が発生したかどうかを条件として経路選択を行うことを示している。外部機器との通信状態を終了させる要因が発生した場合は処理記号S208へ移行し、そうでなければS202の条件判断へ移行する。
S207 (condition judgment):
This condition determination indicates that route selection is performed on the condition that a factor for terminating the communication state between the communication apparatus 100 and the external device has occurred. If a factor for terminating the state of communication with the external device occurs, the process proceeds to process symbol S208, and if not, the process proceeds to condition determination in S202.

ここではメインCPU102で実行しているアプリケーションソフトウエアにおいてユーザからの操作などで通信装置と外部機器の接続を終了させる指示を検知した場合は上記の要因となる。また、ユーザがネットワークケーブルを通信装置から抜くなどして通信回線が断絶したことを通信インターフェース109が検知した場合も上記の要因となる。また、通信相手である外部機器から通信回線を切断する旨の通知を含んだ受信パケットを受信した場合も上記の要因となる。   Here, when the application software executed by the main CPU 102 detects an instruction to end the connection between the communication apparatus and the external device by a user operation or the like, the above-described factors are caused. In addition, the above-described factor is also caused when the communication interface 109 detects that the communication line has been cut off by the user disconnecting the network cable from the communication device. The above-mentioned factor is also caused when a received packet containing a notification to disconnect the communication line is received from an external device that is a communication partner.

S208(処理):
この処理は、通信装置100と外部機器の通信状態を終了させる処理を示している。詳細にはサブCPU106が担っている通信プロトコル処理に従って外部機器との通信回線を切断する。そして、ローカルメモリ107やヘッダ処理部111の内部メモリ113に一時的に保存している関連情報を削除する。その後、サブCPU106からメインCPU102へ通信回線の切断完了の通知が伝達されるとアプリケーションソフトウエアで通信回線が切断した事をユーザなど示す表示を行う処理となる。
S208 (processing):
This process is a process for terminating the communication state between the communication apparatus 100 and the external device. Specifically, the communication line with the external device is disconnected in accordance with the communication protocol process carried out by the sub CPU 106. Then, the related information temporarily stored in the local memory 107 or the internal memory 113 of the header processing unit 111 is deleted. Thereafter, when a notification of the completion of disconnection of the communication line is transmitted from the sub CPU 106 to the main CPU 102, a process for displaying that the communication line has been disconnected by the application software is performed.

S209(端子):
この端子は、このフローチャートの終了を示している。通信装置はネットワークを介して外部機器と通信状態に無いことを示している。
S209 (terminal):
This terminal indicates the end of this flowchart. This indicates that the communication device is not in communication with the external device via the network.

次に、図2におけるS205の処理におけるヘッダ処理部111のレジスタ部112に、サブCPU106が設定する設定情報の例を図3に示す。   Next, FIG. 3 shows an example of setting information set by the sub CPU 106 in the register unit 112 of the header processing unit 111 in the processing of S205 in FIG.

図示の参照符号301は、ひな形ヘッダであり、ヘッダ処理部111で複製して複数の通信ヘッダを生成する際の元となるヘッダ情報である。内部構成としては例えばOSI参照モデルに規定されるトランスポート層のTCPヘッダと、ネットワーク層のIPヘッダ部に分けられる。TCPヘッダやIPヘッダは各層における通信プロトコル処理を実行するときに使用される。   A reference numeral 301 shown in the figure is a template header, and is header information that is a base when a plurality of communication headers are generated by being duplicated by the header processing unit 111. The internal configuration is divided into, for example, a transport layer TCP header defined in the OSI reference model and a network layer IP header. The TCP header and IP header are used when executing communication protocol processing in each layer.

なお、ひな形ヘッダはTCPヘッダとIPヘッダだけでなくEtherヘッダを含んでもよい。Etherヘッダとは送信先のMACアドレスや送信元のMACアドレスが記載されているOSI参照モデルに規定されるデータリンク層で使用される通信ヘッダである。また、ひな形ヘッダにTCPヘッダの代わりにUDPヘッダを使用しても構わない。   Note that the template header may include an Ether header as well as a TCP header and an IP header. The Ether header is a communication header used in the data link layer defined in the OSI reference model in which the destination MAC address and the source MAC address are described. Further, a UDP header may be used for the template header instead of the TCP header.

参照符号302から304は、通信ヘッダを生成するために必要となる編集情報である。編集情報は、ひな形ヘッダを複製する回数を指定する複製数情報302、生成する通信ヘッダの種別を指定するプロトコル種別情報303、及び、ひな形ヘッダを複製して作成した通信ヘッダのどの部分をどのように修正するかを指定するヘッダ修正情報304である。   Reference numerals 302 to 304 are editing information necessary for generating a communication header. The editing information includes copy number information 302 for specifying the number of times of copying the template header, protocol type information 303 for specifying the type of communication header to be generated, and which part of the communication header created by copying the template header. This is header correction information 304 that specifies how to correct the header.

ここで、ヘッダ修正情報304は2ビットある。例えば‘00’の場合は「0」値、‘01’の場合は「1」値、‘10’の場合は「2」値である。また‘11’の場合は禁止としている。サブCPU106がヘッダ修正情報304に「2」値をセットした時、先頭の通信ヘッダが編集される。また「1」値がセットされた場合、最後尾ヘッダが編集される。そして、「0」値がセットされた場合には、中間ヘッダが編集される。なお、ヘッダ修正情報304のヘッダ修正情報を使用して、どのように通信ヘッダを修正されるかについては図5を使用して後述する。   Here, the header correction information 304 has 2 bits. For example, “00” is a “0” value, “01” is a “1” value, and “10” is a “2” value. In the case of “11”, it is prohibited. When the sub CPU 106 sets a value “2” in the header correction information 304, the head communication header is edited. When the “1” value is set, the tail header is edited. If the “0” value is set, the intermediate header is edited. Note that how the communication header is corrected using the header correction information of the header correction information 304 will be described later with reference to FIG.

次に図2で説明したS205の処理において、ヘッダ処理部111の内部メモリ113に生成される通信ヘッダの例を図4に示す。   Next, an example of a communication header generated in the internal memory 113 of the header processing unit 111 in the process of S205 described in FIG. 2 is shown in FIG.

S205の処理にてヘッダ処理部111のヘッダ複製部115が、ひな形ヘッダを内部メモリ113に複製して、生成された中間生成物である通信ヘッダが、図示の参照符号401である。この通信ヘッダ401は、レジスタ部112に設定されたひな形ヘッダ301を複製元とし、複製数情報302で指定された個数分複製されて内部メモリ113に生成される。   In step S205, the header duplicating unit 115 of the header processing unit 111 duplicates the template header to the internal memory 113, and a communication header that is a generated intermediate product is denoted by reference numeral 401 in the drawing. The communication header 401 is generated in the internal memory 113 by copying the template header 301 set in the register unit 112 as the copy source and by the number specified by the copy number information 302.

その後、ヘッダ編集部116が、プロトコル種別情報303とヘッダ修正情報304に従って、中間生成物である通信ヘッダ401のそれぞれを修正して、完成した通信ヘッダ402〜404を作成する。なお、通信ヘッダ数をN個としたとき、通信ヘッダ402は第1番目の通信ヘッダ、通信ヘッダ403は第2乃至N−1番目の通信ヘッダ、通信ヘッダ404は第N番目の通信ヘッダを意味する。   Thereafter, the header editing unit 116 corrects each of the communication headers 401 that are intermediate products according to the protocol type information 303 and the header correction information 304, and creates completed communication headers 402 to 404. When the number of communication headers is N, the communication header 402 means the first communication header, the communication header 403 means the second to (N-1) th communication headers, and the communication header 404 means the Nth communication header. To do.

その後、S206の処理にて、外部機器に送信される場合は、完成した通信ヘッダ402〜404は、それぞれのペイロードと結合するため、順次、通信インターフェース109にDMAコントローラ108により転送される。そして、完成した送信パケットが、通信インターフェース109から外部装置にネットワーク110を介して送信宛先に向けて送信されることになる。   After that, when transmitted to the external device in the process of S206, the completed communication headers 402 to 404 are sequentially transferred to the communication interface 109 by the DMA controller 108 in order to be combined with each payload. The completed transmission packet is transmitted from the communication interface 109 to the external device via the network 110 toward the transmission destination.

この時、先頭に送信される送信パケットの通信ヘッダが参照符号402である。そして、先頭と最後尾との間の中間に送信される送信パケットの通信ヘッダが参照符号403である。そして、最後尾に送信される送信パケットの通信ヘッダが参照符号404である。   At this time, a communication header of a transmission packet transmitted at the head is a reference numeral 402. A communication header of a transmission packet transmitted in the middle between the head and the tail is reference numeral 403. The communication header of the transmission packet transmitted at the end is reference numeral 404.

通信ヘッダを完成させるために複製して生成された通信ヘッダ401のTCPヘッダ部、およびIPヘッダ部の一部に対して、ヘッダ編集部116はヘッダ修正情報304に従って上書きして書き換えを実施する。先頭に送信される送信パケットの通信ヘッダ402であれば参照符号405と406で示した部位を上書きして書き換える。そして、中間に送信される送信パケットの通信ヘッダ403であれば参照符号407と408で示した部位を上書きして書き換える。そして、最後尾に送信される送信パケットの通信ヘッダ404であれば参照符号409と410で示した部位を上書きして書き換える。   The header editing unit 116 overwrites and rewrites the TCP header part and part of the IP header part of the communication header 401 generated by duplication to complete the communication header in accordance with the header correction information 304. In the case of the communication header 402 of the transmission packet transmitted at the head, the parts indicated by reference numerals 405 and 406 are overwritten and rewritten. And if it is the communication header 403 of the transmission packet transmitted in the middle, it overwrites and rewrites the part shown with the reference numerals 407 and 408. If it is the communication header 404 of the transmission packet transmitted at the end, the part indicated by reference numerals 409 and 410 is overwritten and rewritten.

なお、内部メモリ113内に複製される通信ヘッダ401はTCPヘッダとIPヘッダだけでなくEtherヘッダを含んでもよい。Etherヘッダとは送信先のMACアドレスや送信元のMACアドレスが記載されているOSI参照モデルに規定されるデータリンク層で使用される通信ヘッダである。   Note that the communication header 401 copied in the internal memory 113 may include not only a TCP header and an IP header but also an Ether header. The Ether header is a communication header used in the data link layer defined in the OSI reference model in which the destination MAC address and the source MAC address are described.

ここで、部位406,408,410の書き換える情報としては、例えばTCPとして規定される通信プロトコルのフラグ情報であり、URG、ACK、PSH、RST、SYN、FINなどの情報となっている。これらは通信路の確立や切断などに使用される。   Here, the information to be rewritten in the parts 406, 408, 410 is, for example, flag information of a communication protocol defined as TCP, and is information such as URG, ACK, PSH, RST, SYN, FIN. These are used for establishing and disconnecting communication paths.

URGは緊急時に優先して処理を実行するデータを含むことを意味する情報である。ACKはTCPヘッダにある応答確認番号が有効であることを意味する情報である。PSHは受信したデータを即座に上位レイヤに渡すことを意味する情報である。RSTはTCPコネクションを強制的に切断することを意味する情報である。SYNはTCPコネクションの確立要求を意味する情報である。そして、FINはTCPコネクションの切断要求を意味する情報である。   URG is information meaning that it includes data that is preferentially executed in an emergency. ACK is information indicating that the response confirmation number in the TCP header is valid. PSH is information that means that received data is immediately passed to an upper layer. RST is information indicating that the TCP connection is forcibly disconnected. SYN is information indicating a TCP connection establishment request. FIN is information indicating a TCP connection disconnection request.

例えばTCPプロトコルを使用した通信接続を開始する状態であれば通信を開始するために必要となるSYNが‘1’となる。あるいは、TCPプロトコルを使用したデータ転送を開始する状態であればデータ転送を開始するために必要となるACKが‘1’となる。あるいは、TCPプロトコルを使用した通信の切断処理を開始する状態であれば通信を切断するために必要となるFINが‘1’となる。部位406,408,410の情報としては他にもシーケンス番号、チェックサムなどの情報も含まれる。   For example, if the communication connection using the TCP protocol is started, SYN required to start communication is “1”. Alternatively, if the data transfer using the TCP protocol is started, ACK necessary for starting the data transfer becomes “1”. Alternatively, if the communication disconnection process using the TCP protocol is started, the FIN required to disconnect the communication is “1”. The information on the parts 406, 408, and 410 includes information such as a sequence number and a checksum.

部位406,408,410の情報が通信ヘッダ(402〜404)のどこに位置するかは、プロトコル種別情報303とヘッダ修正情報304によって特定される。例えば、プロトコル種別情報303に設定される情報からEtherヘッダの長さ、IPヘッダの長さを特定する。そして、ヘッダ修正情報304に設定される情報からTCPヘッダの先頭アドレスからのオフセット値を特定する。そして、Etherヘッダの長さ、IPヘッダの長さ、TCPヘッダの先頭アドレスからのオフセット値から通信ヘッダ402〜404の部位406,408,410の情報の位置を算出することが可能となる。   Where the information of the parts 406, 408, 410 is located in the communication header (402 to 404) is specified by the protocol type information 303 and the header correction information 304. For example, the length of the Ether header and the length of the IP header are specified from information set in the protocol type information 303. Then, the offset value from the head address of the TCP header is specified from the information set in the header correction information 304. Then, it is possible to calculate the information positions of the portions 406, 408, and 410 of the communication headers 402 to 404 from the length of the Ether header, the length of the IP header, and the offset value from the top address of the TCP header.

また、部位405,407,409の情報としては、例えばIPとして規定される通信プロトコルのフラグ情報であり、DF、MFなどの情報となっている。DFは分断してはいけないことを意味する情報であり、MFは最後尾のパケットであるかどうかを意味する情報である。その他、部位405,407,409の情報としてはパケットの長さ情報やID情報、チェックサムなどの情報も含まれる。   The information on the parts 405, 407, and 409 is, for example, flag information of a communication protocol defined as IP, and is information such as DF and MF. DF is information meaning that it should not be divided, and MF is information meaning whether it is the last packet. In addition, the information on the parts 405, 407, and 409 includes information such as packet length information, ID information, and checksum.

部位405,407,409の情報が通信ヘッダ402〜404のどこに位置するかは、プロトコル種別情報303とヘッダ修正情報304によって特定される。例えば、プロトコル種別情報303に設定される情報からIPv4ヘッダかIPv6ヘッダかを特定する。そして、ヘッダ修正情報304に設定される情報からIPヘッダの先頭アドレスからのオフセット値を特定する。そして、IPヘッダがIPv4ヘッダであることと、IPヘッダの先頭アドレスからのオフセット値から通信ヘッダ402〜404の部位405,407,409の位置を算出することが可能となる。   Where the information of the parts 405, 407, and 409 is located in the communication headers 402 to 404 is specified by the protocol type information 303 and the header correction information 304. For example, an IPv4 header or an IPv6 header is specified from information set in the protocol type information 303. Then, the offset value from the head address of the IP header is specified from the information set in the header correction information 304. The positions of the portions 405, 407, and 409 of the communication headers 402 to 404 can be calculated from the fact that the IP header is an IPv4 header and the offset value from the head address of the IP header.

次に図5のフローチャートは、図2におけるヘッダ修正部116によるS205の処理の詳細な動作フローを示している。以下、同図を参照して、ヘッダ編集部116による通信ヘッダのフラグ部分を生成する処理を説明する。   Next, the flowchart of FIG. 5 shows a detailed operation flow of the processing of S205 by the header correction unit 116 in FIG. Hereinafter, with reference to the same figure, the process which produces | generates the flag part of the communication header by the header edit part 116 is demonstrated.

S204(端子):
この端子は、このフローチャートのスタートを示しており、図2のS204の処理に相当する。S204の処理が完了することで、S501へ処理が移行することになる。
S204 (terminal):
This terminal indicates the start of this flowchart and corresponds to the process of S204 in FIG. When the process of S204 is completed, the process proceeds to S501.

S501(処理):
この処理は、ヘッダ編集部(116)において最小単位のカウントアップのみを実行する処理を示している。最小単位のカウントアップを行った後、S502の条件判断処理に移行する。例えば、S201の端子から移行した時に、ヘッダ編集部116は最初のカウントアップを実行してカウンタ値を‘1’とする。その後、S513の条件判断から移行してきたときにカウントアップを実施してカウンタ値を‘2’とする。以降、S513の条件判断から移行する度にカウントアップを実施して、カウンタ値を‘3’、‘4’…のようにカウントアップする処理となる。
S501 (processing):
This process shows a process of executing only the minimum unit count-up in the header editing unit (116). After counting up by the minimum unit, the process proceeds to the condition determination process of S502. For example, when shifting from the terminal of S201, the header editing unit 116 executes the first count up and sets the counter value to “1”. Thereafter, when the process shifts from the condition determination in S513, the counter value is set to “2” by counting up. Thereafter, every time the process shifts from the condition determination in S513, the counter is incremented, and the counter value is incremented to “3”, “4”.

この処理は、ヘッダ編集部116が内部メモリ113内のそれぞれの通信ヘッダ401に対してヘッダ修正情報304に従って上書き修正を行った通信ヘッダの個数をカウントする意味をもっている。   This process has a meaning that the header editing unit 116 counts the number of communication headers in which each communication header 401 in the internal memory 113 is overwritten and corrected according to the header correction information 304.

S502(条件判断):
この条件判断は、サブCPU106が決定したヘッダ修正情報304の設定内容が‘10’(=2)あるかを条件として、経路選択を行うことを示している。設定内容が‘10’(=2)であればS503の処理へ移行し、そうでなければS506の条件判断へ移行する。
S502 (condition judgment):
This condition determination indicates that route selection is performed on the condition that the setting content of the header correction information 304 determined by the sub CPU 106 is “10” (= 2). If the setting content is “10” (= 2), the process proceeds to S503, and if not, the condition shifts to S506.

ここでヘッダ修正情報304の設定内容は、ヘッダ編集部116によって判断される。   Here, the setting content of the header correction information 304 is determined by the header editing unit 116.

S503(条件判断):
この条件判断記号は、ヘッダ編集部116が内部のカウンタの値が先頭の通信ヘッダ402に対応した値となっているかを条件として、経路選択を行うことを示している。カウンタの値が例えば初期値の最小値(‘1’)となっていればS504の処理へ移行し、そうでなければS505の処理へ移行する。ここで、カウンタの値と先頭の通信ヘッダとの対応付けは予めサブCPU106によって設定されている。
S503 (condition judgment):
This condition determination symbol indicates that the header editing unit 116 performs route selection on the condition that the value of the internal counter is a value corresponding to the first communication header 402. For example, if the counter value is the minimum initial value ('1'), the process proceeds to S504, and if not, the process proceeds to S505. Here, the association between the counter value and the head communication header is set in advance by the sub CPU 106.

S504(処理):
この処理は、先頭の通信ヘッダ402を生成するためにヘッダ修正情報304に従って通信ヘッダ401の対応する部分に上書きして修正処理することを示している。例えば、TCPとして規定される通信プロトコルのフラグ情報の要素であるACKやSYNフラグを‘1’にするなどの処理となる。
S504 (processing):
This process indicates that correction processing is performed by overwriting the corresponding portion of the communication header 401 in accordance with the header correction information 304 in order to generate the first communication header 402. For example, processing such as setting the ACK or SYN flag, which is an element of flag information of a communication protocol defined as TCP, to “1” is performed.

S505(処理):
この処理は、先頭の通信ヘッダ402以外を生成するためにヘッダ修正情報304に従って通信ヘッダ401の対応する部分に上書きして修正処理することを示している。
S505 (processing):
This process indicates that correction processing is performed by overwriting the corresponding portion of the communication header 401 in accordance with the header correction information 304 in order to generate other than the first communication header 402.

例えば、TCPとして規定される通信プロトコルのフラグ情報の全てを‘0’にするなどの処理となる。   For example, the processing is such that all the flag information of the communication protocol defined as TCP is set to “0”.

S506(条件判断):
この条件判断は、サブCPU106が決定したヘッダ修正情報304の設定内容が‘01’(=1)であるかを条件として、経路選択を行うことを示している。設定内容が‘01’(=1)であればS507の処理へ移行し、そうでなければS510の条件判断へ移行する。ここでヘッダ修正情報304の設定内容はヘッダ編集部116によって判断される。
S506 (condition judgment):
This condition determination indicates that route selection is performed on the condition that the setting content of the header correction information 304 determined by the sub CPU 106 is “01” (= 1). If the set content is “01” (= 1), the process proceeds to S507, and if not, the condition shifts to S510. Here, the setting content of the header correction information 304 is determined by the header editing unit 116.

S507(条件判断):
この条件判断は、ヘッダ編集部116が内部のカウンタの値が最後尾の通信ヘッダ404に対応した値となっているかを条件として、経路選択を行うことを示している。カウンタの値が例えば設定された最大値となっていればS508の処理へ移行し、そうでなければS509の処理へ移行する。ここで、カウンタの値と最後尾の通信ヘッダとの対応付けは予めサブCPU106によって設定されている。
S507 (condition judgment):
This condition determination indicates that the header editing unit 116 performs route selection on the condition that the value of the internal counter is a value corresponding to the last communication header 404. For example, if the counter value is the set maximum value, the process proceeds to S508, and if not, the process proceeds to S509. Here, the association between the counter value and the last communication header is set in advance by the sub CPU 106.

S508(処理):
この処理は、最後尾の通信ヘッダ404を生成するためにヘッダ修正情報304に従って通信ヘッダ401の対応する部分に上書きして修正を行う処理である。例えば、TCPとして規定される通信プロトコルのフラグ情報であるFINフラグを‘1’にするなどの処理となる。同様にIPとして規定される通信プロトコルのフラグ情報であるMFフラグを‘0’にするなどの処理となる。
S508 (processing):
This process is a process of overwriting the corresponding portion of the communication header 401 according to the header correction information 304 to correct the last communication header 404. For example, processing such as setting the FIN flag, which is flag information of a communication protocol defined as TCP, to “1” is performed. Similarly, processing such as setting the MF flag, which is flag information of a communication protocol defined as IP, to “0” is performed.

S509(処理):
この処理は、最後尾の通信ヘッダ404以外を生成するためにヘッダ修正情報304に従って通信ヘッダ401の対応する部分に上書きして修正処理することを示している。例えば、TCPとして規定される通信プロトコルのフラグ情報の全てを‘0’にするなどの処理となる。同様にIPとして規定される通信プロトコルのフラグ情報であるMF(More Fragment)フラグを‘1’にするなどの処理となる。
S509 (processing):
This process indicates that correction processing is performed by overwriting the corresponding portion of the communication header 401 according to the header correction information 304 in order to generate other than the last communication header 404. For example, the processing is such that all the flag information of the communication protocol defined as TCP is set to “0”. Similarly, processing such as setting an MF (More Fragment) flag, which is flag information of a communication protocol defined as IP, to “1” is performed.

S510(条件判断):
この条件判断は、ヘッダ編集部116が内部のカウンタの値が中間の通信ヘッダ403に対応した値となっているかを条件として、経路選択を行うことを示している。カウンタの値が例えば設定された範囲の値となっていればS511の処理へ移行し、そうでなければS512の処理へ移行する。ここで、カウンタの値と中間の通信ヘッダ群との対応付けは予めサブCPU106によって設定されている。
S510 (condition judgment):
This condition determination indicates that the header editing unit 116 performs route selection on the condition that the internal counter value is a value corresponding to the intermediate communication header 403. For example, if the counter value is within a set range, the process proceeds to S511, and if not, the process proceeds to S512. Here, the association between the counter value and the intermediate communication header group is set in advance by the sub CPU 106.

S511(処理):
この処理は、中間の通信ヘッダ403を生成するためにヘッダ修正情報304に従って通信ヘッダ401の対応する部分に上書きして修正処理することを示している。例えば、TCPとして規定される通信プロトコルのフラグ情報であるACKやFINフラグを‘0’にするなどの処理となる。
S511 (processing):
This process indicates that correction processing is performed by overwriting the corresponding portion of the communication header 401 in accordance with the header correction information 304 in order to generate the intermediate communication header 403. For example, processing such as setting ACK and FIN flag, which are flag information of a communication protocol defined as TCP, to “0” is performed.

S512(処理):
この処理は、中間の通信ヘッダ402以外を生成するためにヘッダ修正情報304に従って通信ヘッダ401の対応する部分に上書きして修正処理することを示している。例えば、TCPとして規定される通信プロトコルのフラグ情報の全てを‘0’にするなどの処理となる。
S512 (processing):
This process indicates that correction processing is performed by overwriting the corresponding portion of the communication header 401 in accordance with the header correction information 304 in order to generate other than the intermediate communication header 402. For example, the processing is such that all the flag information of the communication protocol defined as TCP is set to “0”.

S513(条件判断):
この条件判断は、S501の処理でカウントアップされたカウンタの値が設定した最大値(最終パケット)になっているかどうかを条件として、経路選択を行うことを示している。カウンタの値が設定した最大値であればS514の処理へ移行し、そうでなければS501の処理へ移行する。ここで、カウンタの値によって生成した通信ヘッダが所定の数に達したかどうか判断される。また、カウンタの値と通信ヘッダの総数との対応付けは予めサブCPU106によって設定されている。
S513 (condition judgment):
This condition determination indicates that route selection is performed on the condition that the value of the counter counted up in S501 is the set maximum value (final packet). If the counter value is the set maximum value, the process proceeds to S514. Otherwise, the process proceeds to S501. Here, it is determined whether or not the communication header generated based on the counter value has reached a predetermined number. The association between the counter value and the total number of communication headers is set in advance by the sub CPU 106.

S514(処理):
この処理は、ヘッダ編集部116においてカウンタの値を初期値にリセットする処理を示している。例えばカウンタの値を‘0’とすることで初期値とする。
S514 (processing):
This process indicates a process in which the header editing unit 116 resets the counter value to the initial value. For example, the initial value is set by setting the counter value to “0”.

S206(端子):
この端子は、このフローチャートの終了を示している。S514の処理が完了することで図2におけるS206へ処理が移行することを示している。
S206 (terminal):
This terminal indicates the end of this flowchart. It shows that the processing shifts to S206 in FIG. 2 when the processing of S514 is completed.

以上説明したように本実施形態によれば、通信装置が外部機器に対してネットワーク経由で送信情報を複数の送信パケットに分割して転送する際、一度の設定で異なる、複数の通信ヘッダを自動生成することが可能となる。これにより送信情報を分割して複数の送信パケットを一度の設定によって高速に生成することが可能となり、これまでと比較して、通信装置の送信処理能力を向上させることが可能になる。   As described above, according to the present embodiment, when a communication device divides transmission information into a plurality of transmission packets via a network and transfers them to an external device, a plurality of communication headers that are different in one setting are automatically used. Can be generated. As a result, it is possible to divide the transmission information and generate a plurality of transmission packets at a high speed by one setting, and it is possible to improve the transmission processing capability of the communication apparatus as compared with the past.

100…通信装置、102…メインCPU、103…メインメモリ、104…サブシステム、106…サブCPU、107…ローカルメモリ、108…DMAコントローラ、109…通信インターフェース、111…ヘッダ処理部、112…レジスタ部、113…内部メモリ、114…コア部、115…ヘッダ複製部、116…ヘッダ編集部、117…スイッチ、118…コア制御部 DESCRIPTION OF SYMBOLS 100 ... Communication apparatus, 102 ... Main CPU, 103 ... Main memory, 104 ... Sub system, 106 ... Sub CPU, 107 ... Local memory, 108 ... DMA controller, 109 ... Communication interface, 111 ... Header processing part, 112 ... Register part 113 ... Internal memory, 114 ... Core unit, 115 ... Header replication unit, 116 ... Header editing unit, 117 ... Switch, 118 ... Core control unit

Claims (9)

情報処理装置をネットワークに接続するための通信装置であって、
前記情報処理装置からネットワークへの転送要求を受信した場合、転送すべき情報のサイズからパケット数を表すNを決定する決定手段と、
前記転送要求に応じたひな形の通信ヘッダに基づいてN個の通信ヘッダを生成する生成手段と、
前記転送すべき情報をN個のペイロードに分割する分割手段と、
前記生成手段により生成された通信ヘッダと前記ペイロードとの組み合わせたN個のパケットをネットワークに向けて送信する送信手段と、
を有し、
前記生成手段は、前記N個の通信ヘッダを生成する際に、前記転送要求に含まれる指示に従って、当該N個の通信ヘッダのうち、第1番目、第2乃至N−1番目、第N番目の通信ヘッダの少なくとも1つの通信ヘッダについて、前記ひな形の通信ヘッダを編集して生成することを特徴とする通信装置。
A communication device for connecting an information processing device to a network,
Determining means for determining N representing the number of packets from the size of information to be transferred when a transfer request to the network is received from the information processing apparatus;
Generating means for generating N communication headers based on a model communication header corresponding to the transfer request;
Dividing means for dividing the information to be transferred into N payloads;
Transmitting means for transmitting N packets, which are a combination of the communication header generated by the generating means and the payload, to the network;
Have
When generating the N communication headers, the generation means generates the first, second to N−1th, and Nth of the N communication headers according to an instruction included in the transfer request. A communication apparatus, wherein at least one communication header of the communication header is generated by editing the communication header of the template.
前記生成手段による編集の内容を設定する設定手段を更に有することを特徴とする請求項1に記載の通信装置。   The communication apparatus according to claim 1, further comprising setting means for setting contents of editing by the generating means. 前記転送要求に含まれる指示は、通信ヘッダのTCPヘッダのフラグ情報であることを特徴とする請求項1又は2に記載の通信装置。   The communication apparatus according to claim 1, wherein the instruction included in the transfer request is flag information of a TCP header of a communication header. 前記転送要求に含まれる指示は、通信ヘッダのIPヘッダのフラグ情報であることを特徴とする請求項1又は2に記載の通信装置。   The communication apparatus according to claim 1, wherein the instruction included in the transfer request is flag information of an IP header of a communication header. 前記生成手段は、一度の実行の指示に対してTCPヘッダのフラグ情報の編集の内容として、
第1番目の通信ヘッダのフラグ情報の各要素のいずれかにフラグを立て、第1番目ではない通信ヘッダの前記フラグ情報の各要素のいずれにもフラグを立てない処理、
第N番目の通信ヘッダの前記フラグ情報の各要素のいずれかにフラグを立て、第N番目ではない通信ヘッダの前記フラグ情報の各要素のいずれにもフラグを立てない処理、
全ての通信ヘッダの前記フラグ情報の各要素のいずれにもフラグを立てない処理
のいずれかを実行することを特徴とする請求項3に記載の通信装置。
The generation means, as a content of editing the flag information of the TCP header for a single execution instruction,
A process for setting a flag on any of the elements of the flag information of the first communication header and not setting a flag on any of the elements of the flag information of the non-first communication header,
A process that sets a flag on any of the elements of the flag information of the Nth communication header and does not set a flag on any of the elements of the flag information of the non-Nth communication header,
The communication apparatus according to claim 3, wherein any one of the processes in which a flag is not set on any of the elements of the flag information of all communication headers is executed.
前記生成手段は、一度の実行の指示に対してIPヘッダのフラグ情報の編集の内容として、
第1番目から第N−1番目の通信ヘッダの前記フラグ情報のMF(More Fragment)の要素のフラグを立て、第N番目の通信ヘッダの前記フラグ情報のMFの要素のみフラグを立てない処理、
全ての通信ヘッダの前記フラグ情報の各要素のいずれにもフラグを立てない処理
のいずれかを実行することを特徴とする請求項4に記載の通信装置。
The generation means, as a content of editing IP header flag information for a single execution instruction,
A process of setting a flag of the MF (More Fragment) element of the flag information of the first to (N-1) th communication headers, and not setting a flag only of the MF element of the flag information of the Nth communication header;
The communication apparatus according to claim 4, wherein any one of the processes in which no flag is set on any of the elements of the flag information of all communication headers is executed.
前記通信ヘッダはEtherヘッダ、IPv4ヘッダもしくはIPv6ヘッダ、TCPヘッダもしくはUDPヘッダで構成されていることを特徴とする請求項1乃至6のいずれか1項に記載の通信装置。   The communication apparatus according to any one of claims 1 to 6, wherein the communication header includes an Ether header, an IPv4 header or an IPv6 header, a TCP header, or a UDP header. 情報処理装置をネットワークに接続するための通信装置の制御方法であって、
決定手段が、前記情報処理装置からネットワークへの転送要求を受信した場合、転送すべき情報のサイズからパケット数を表すNを決定する決定工程と、
生成手段が、前記転送要求に応じたひな形の通信ヘッダに基づいてN個の通信ヘッダを生成する生成工程と、
分割手段が、前記転送すべき情報をN個のペイロードに分割する分割工程と、
送信手段が、前記生成工程により生成された通信ヘッダと前記ペイロードとの組み合わせたN個のパケットをネットワークに向けて送信する送信工程と、
を有し、
前記生成工程は、前記N個の通信ヘッダを生成する際に、前記転送要求に含まれる指示に従って、当該N個の通信ヘッダのうち、第1番目、第2乃至N−1番目、第N番目の通信ヘッダの少なくとも1つの通信ヘッダについて、前記ひな形の通信ヘッダを編集して生成する
ことを特徴とする通信装置の制御方法。
A method for controlling a communication device for connecting an information processing device to a network,
A determination step for determining N representing the number of packets from the size of information to be transferred when the determination means receives a transfer request from the information processing apparatus to the network;
A generating step for generating N communication headers based on a model communication header corresponding to the transfer request;
A dividing step of dividing the information to be transferred into N payloads;
A transmission step of transmitting N packets, which are a combination of the communication header generated by the generation step and the payload, to the network;
Have
In the generation step, when generating the N communication headers, the first, second to (N−1) th, and Nth of the N communication headers according to an instruction included in the transfer request. A communication apparatus control method, comprising: generating at least one communication header of the communication header by editing the communication header of the template.
請求項1乃至7のいずれか1項に記載の通信装置を有する情報処理装置。   An information processing apparatus comprising the communication apparatus according to claim 1.
JP2017099210A 2017-05-18 2017-05-18 Communication device and control method therefor, and information processing device Pending JP2018196024A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017099210A JP2018196024A (en) 2017-05-18 2017-05-18 Communication device and control method therefor, and information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017099210A JP2018196024A (en) 2017-05-18 2017-05-18 Communication device and control method therefor, and information processing device

Publications (2)

Publication Number Publication Date
JP2018196024A true JP2018196024A (en) 2018-12-06
JP2018196024A5 JP2018196024A5 (en) 2020-07-09

Family

ID=64571865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017099210A Pending JP2018196024A (en) 2017-05-18 2017-05-18 Communication device and control method therefor, and information processing device

Country Status (1)

Country Link
JP (1) JP2018196024A (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003229905A (en) * 2002-02-05 2003-08-15 Sony Corp Transmitting apparatus, receiving apparatus and method therefor
JP2006005878A (en) * 2004-06-21 2006-01-05 Fujitsu Ltd Control method for communication system, communication control apparatus, and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003229905A (en) * 2002-02-05 2003-08-15 Sony Corp Transmitting apparatus, receiving apparatus and method therefor
JP2006005878A (en) * 2004-06-21 2006-01-05 Fujitsu Ltd Control method for communication system, communication control apparatus, and program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"INTERNET PROTOCOL DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION", RFC 791, JPN6021011703, September 1981 (1981-09-01), ISSN: 0004627852 *

Similar Documents

Publication Publication Date Title
US11489945B2 (en) TCP packet processing method, toe component, and network device
JP2014509483A (en) Mechanisms to improve the performance of transmission control protocols in wireless networks
US20070291782A1 (en) Acknowledgement filtering
EP3490293B1 (en) Data receiving method, data sending method, receiving device and system
CN115002023A (en) Link aggregation method, link aggregation device, electronic equipment and storage medium
WO2022017454A1 (en) Message processing method, network device and related device
CN108200221B (en) Method and device for synchronizing conversion rules in network address conversion environment
US11336297B2 (en) DMA transfer apparatus, method of controlling the same, communication apparatus, method of controlling the same, and non-transitory computer-readable storage medium
JP6234236B2 (en) Communication device
JP2018196024A (en) Communication device and control method therefor, and information processing device
CN114745331B (en) Congestion notification method and device
CN112994928B (en) Virtual machine management method, device and system
JP2019114947A (en) Communication device, control method of communication device, and program
JP5699985B2 (en) TCP communication acceleration device
JP6873953B2 (en) Communication equipment, control methods and programs for communication equipment
CN112003796A (en) Broadcast message processing method, system, equipment and computer storage medium
JP4766344B2 (en) Information processing apparatus and frame relay method
US10009252B2 (en) Flow entry delivery method and communication system
JP2012049883A (en) Communication device and packet processing method
JP7423223B2 (en) Communication device
JP2005101690A (en) Repeating device and repeating method
CN117478763B (en) ICMP agent UDP data transmission method, system and device
CN107493221A (en) A kind of system for improving fictitious host computer transmission performance
CN111107006B (en) Routing management method and device
JP7005303B2 (en) Communication equipment, packet generators and their control methods

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200513

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200513

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

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210531

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20211029