JP6123476B2 - Communication apparatus and communication system - Google Patents

Communication apparatus and communication system Download PDF

Info

Publication number
JP6123476B2
JP6123476B2 JP2013103771A JP2013103771A JP6123476B2 JP 6123476 B2 JP6123476 B2 JP 6123476B2 JP 2013103771 A JP2013103771 A JP 2013103771A JP 2013103771 A JP2013103771 A JP 2013103771A JP 6123476 B2 JP6123476 B2 JP 6123476B2
Authority
JP
Japan
Prior art keywords
offload engine
wireless lan
quality control
header
packet
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
JP2013103771A
Other languages
Japanese (ja)
Other versions
JP2014225769A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2013103771A priority Critical patent/JP6123476B2/en
Publication of JP2014225769A publication Critical patent/JP2014225769A/en
Application granted granted Critical
Publication of JP6123476B2 publication Critical patent/JP6123476B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、通信装置及び通信システムに関する。   The present invention relates to a communication device and a communication system.

インターネットやイントラネット等において標準的に用いられているTCP/IP(Transmission Control Protocol/Internet Protocol)通信において、そのプロトコル処理はネットワークデータを扱うネットワークサーバや情報処理装置等のCPU(Central Processing Unit)によって行われている。
このようなプロトコル処理は、CPUに大きな負荷がかかる。そこで、多くのCPU処理時間を要するプロトコル処理、又はプロトコルのチェックサム処理等をハードウェアエンジン化して、CPUからオフロードすることにより、CPUの負荷を低減する技術が知られている(例えば、特許文献1参照)。
In TCP / IP (Transmission Control Protocol / Internet Protocol) communication, which is standardly used on the Internet and intranets, the protocol processing is performed by a CPU (Central Processing Unit) such as a network server or information processing device that handles network data. It has been broken.
Such protocol processing places a heavy load on the CPU. Therefore, a technique for reducing the load on the CPU by converting a protocol process requiring a lot of CPU processing time or a checksum process of the protocol into a hardware engine and offloading from the CPU is known (for example, patents). Reference 1).

ハードウェアで構成されたネットワークオフロードエンジンでは、回路規模の縮小等のために、IPヘッダの一部のフィールド、例えば、TOS(Type Of Service)等のフィールドが固定値となっている場合がある。このような場合、固定値となっているTOSフィールドの値等を外部から変更することは困難であった。そのため、このようなネットワークオフロードエンジンを含む通信装置において、TOSフィールドの値に基づくQOS(Quality Of Service)制御を行うことには困難を伴っていた。
本発明の実施の形態は、上記問題点を鑑みてなされたものであって、ネットワークオフロードエンジンを含む通信装置において、TOSフィールドの値に基づくQOS制御を容易化した通信装置を提供することを目的とする。
In a network offload engine configured by hardware, some fields of the IP header, for example, a field such as TOS (Type Of Service) may have a fixed value due to a reduction in circuit scale or the like. . In such a case, it has been difficult to change the value of the TOS field, which is a fixed value, from the outside. Therefore, it has been difficult to perform quality of service (QOS) control based on the value of the TOS field in a communication apparatus including such a network offload engine.
Embodiments of the present invention have been made in view of the above problems, and provide a communication device that facilitates QOS control based on the value of a TOS field in a communication device including a network offload engine. Objective.

上記課題を解決するため、一実施の形態に係る通信装置は、送信パケットの生成を含むネットワークプロトコル処理の少なくとも一部を処理するオフロードエンジンと、アプリケーションからの要求に応じて前記オフロードエンジンの前記送信パケットの生成を制御するオフロードエンジン制御部と、前記制御に応じて前記オフロードエンジンが生成した前記送信パケットの品質制御パラメータを前記アプリケーションが指定した値に書き換える設定更新部と、を有する。   In order to solve the above problem, a communication device according to an embodiment includes an offload engine that processes at least a part of network protocol processing including generation of a transmission packet, and an offload engine that responds to a request from an application. An offload engine control unit that controls generation of the transmission packet; and a setting update unit that rewrites a quality control parameter of the transmission packet generated by the offload engine according to the control to a value specified by the application. .

本実施の形態によれば、ネットワークオフロードエンジンを含む通信装置において、TOSフィールドの値に基づくQOS制御を容易化した通信装置を提供することができる。   According to the present embodiment, it is possible to provide a communication device that facilitates QOS control based on the value of the TOS field in a communication device including a network offload engine.

第1の実施の形態に係る通信装置のハードウェア構成図である。It is a hardware block diagram of the communication apparatus which concerns on 1st Embodiment. 第1の実施の形態に係るオフロードエンジンが生成するパケットとTOS値との関係を説明するための図である。It is a figure for demonstrating the relationship between the packet and TOS value which the offload engine which concerns on 1st Embodiment produces | generates. 第1の実施の形態に係るオフロードエンジンドライバの機能構成図である。It is a functional lineblock diagram of the off-road engine driver concerning a 1st embodiment. 第1の実施の形態に係るパケット生成の開始処理のフローチャートである。It is a flowchart of the starting process of the packet generation which concerns on 1st Embodiment. 第1の実施の形態に係るTOS値の書き換え処理のフローチャートである。It is a flowchart of the rewriting process of the TOS value which concerns on 1st Embodiment. IPv4形式のIPヘッダの構成を示す図である。It is a figure which shows the structure of the IP header of an IPv4 format. 第1の実施の形態に係るパケット送信処理のフローチャートである。It is a flowchart of the packet transmission process which concerns on 1st Embodiment. TOS値とアクセスカテゴリの変換テーブルの例である。It is an example of the conversion table of a TOS value and an access category. 無線LANのフレームフォーマットの一例を示す図である。It is a figure which shows an example of the frame format of wireless LAN. 第2の実施の形態に係る通信システムの構成図である。It is a block diagram of the communication system which concerns on 2nd Embodiment.

以下に、本発明の実施の形態について、添付の図面を参照して説明する。   Embodiments of the present invention will be described below with reference to the accompanying drawings.

[第1の実施の形態]
図1は、第1の実施の形態に係る通信装置100のハードウェア構成図である。通信装置100は、CPU(Central Processing Unit)101、共有メモリ102、DMA(Direct Memory Access)コントローラ103、オフロードエンジン104、無線LAN(Local Area Network)インタフェース(以下、無線LAN I/Fと称す)106、メモリ107、第1のバス109、及び第2のバス108を有する。
[First Embodiment]
FIG. 1 is a hardware configuration diagram of a communication apparatus 100 according to the first embodiment. The communication apparatus 100 includes a CPU (Central Processing Unit) 101, a shared memory 102, a DMA (Direct Memory Access) controller 103, an offload engine 104, and a wireless LAN (Local Area Network) interface (hereinafter referred to as a wireless LAN I / F). 106, a memory 107, a first bus 109, and a second bus 108.

CPU101、共有メモリ102、DMAコントローラ103、オフロードエンジン104、及び無線LAN I/F106は、第1のバスを介して互いに接続されている。さらに、CPU101は、第2のバスを介してメモリ107に接続されている。尚、第1及び第2のバスは、アドレス、データ及び各種制御信号等を伝達する。   The CPU 101, shared memory 102, DMA controller 103, offload engine 104, and wireless LAN I / F 106 are connected to each other via a first bus. Further, the CPU 101 is connected to the memory 107 via the second bus. The first and second buses transmit addresses, data, various control signals, and the like.

CPU101は、第2のバスを介してメモリ107等からプログラムやデータを読出し、処理を実行することで通信装置100が備える各機能を実現する演算装置である。メモリ107は、例えば、RAM(Random Access Memory)、フラッシュROM(Read Only Memory)、HDD(Read Only Memory)等の記憶手段である。メモリ107は、CPU101で実行するOS(Operating System)、アプリケーション、ドライバ等の各種プログラムと、各種プログラムによって利用されるデータの少なくとも一部を記憶し、CPU101のワークエリアとして利用される。また、CPU101は、第1のバスを介して、ネットワーク通信に係る制御を行う。   The CPU 101 is an arithmetic device that implements each function included in the communication device 100 by reading a program or data from the memory 107 or the like via the second bus and executing the processing. The memory 107 is a storage unit such as a RAM (Random Access Memory), a flash ROM (Read Only Memory), and an HDD (Read Only Memory). The memory 107 stores various programs such as an OS (Operating System), applications, and drivers executed by the CPU 101 and at least a part of data used by the various programs, and is used as a work area of the CPU 101. In addition, the CPU 101 performs control related to network communication via the first bus.

オフロードエンジン104は、ネットワークプロトコル処理の少なくとも一部、例えば、送信パケットの生成や、チェックサム処理等を行う。オフロードエンジン104は、例えば、ハードウェアで構成されており、内部に備えたDMAC(Direct Memory Access Controller)105により、送信用のパケットデータや、受信したパケットのペイロード等の通信データを、共有メモリ102との間で転送する。   The offload engine 104 performs at least a part of network protocol processing, for example, generation of a transmission packet, checksum processing, and the like. The offload engine 104 is configured by, for example, hardware, and transmits communication data such as packet data for transmission and a payload of a received packet to a shared memory by a DMAC (Direct Memory Access Controller) 105 provided therein. Transfer to / from 102.

無線LAN I/F106は、例えば、IEEE802.11規格に準拠した無線LAN通信を行うハードウェア及び、その制御用ファームウェアを備えるモジュールである。   The wireless LAN I / F 106 is, for example, a module including hardware for performing wireless LAN communication conforming to the IEEE 802.11 standard and firmware for controlling the hardware.

上記構成において、共有メモリ102とメモリ107は、異なるバスに接続されている。そのため、例えば、オフロードエンジン104が共有メモリ102にデータを書き込んでいる場合でも、CPU101のメモリ107へのアクセスには影響しない。また、DMAコントローラ103によって、共有メモリ102と無線LAN I/F106間のデータ転送を行い、さらに、DMAC105によって、共有メモリ102とオフロードエンジン104間のデータ制御を行う。そのため、CPU101のデータ転送に係る負荷を低減できる構成になっている。   In the above configuration, the shared memory 102 and the memory 107 are connected to different buses. Therefore, for example, even when the offload engine 104 writes data to the shared memory 102, the access to the memory 107 of the CPU 101 is not affected. The DMA controller 103 performs data transfer between the shared memory 102 and the wireless LAN I / F 106, and the DMAC 105 performs data control between the shared memory 102 and the offload engine 104. For this reason, the load related to the data transfer of the CPU 101 can be reduced.

図2は、オフロードエンジン104に係る構成と動作の概要を説明するための図である。CPU101上で、OS201、一又は複数のアプリケーション202、203、204、及びオフロードエンジンドライバ209を含む複数のプログラムが動作している。   FIG. 2 is a diagram for explaining an outline of the configuration and operation related to the off-road engine 104. A plurality of programs including an OS 201, one or more applications 202, 203, 204, and an offload engine driver 209 are operating on the CPU 101.

アプリケーション202〜204は、ネットワーク通信を行うアプリケーションであり、アプリケーション202、203は、それぞれの目的に応じて、通信品質を制御するためのパラメータであるTOS値205、206を有している。また、オフロードエンジンドライバ209は、オフロードエンジン104の制御を行うドライバである。   The applications 202 to 204 are applications that perform network communication, and the applications 202 and 203 have TOS values 205 and 206 that are parameters for controlling communication quality in accordance with the respective purposes. The off-road engine driver 209 is a driver that controls the off-road engine 104.

アプリケーション202〜204は、アプリケーションプログラミングインタフェース(以下、APIと称す)208により、予め定義されている関数を使って、オフロードエンジン104に処理を要求することができる。OS201は、アプリケーション202〜204及びオフロードエンジンドライバ209を含む複数のソフトウェアをプロセスとして並列実行する。   The applications 202 to 204 can request processing from the offload engine 104 by using an application programming interface (hereinafter referred to as API) 208 using a predefined function. The OS 201 executes a plurality of software including the applications 202 to 204 and the offload engine driver 209 in parallel as processes.

図2において、例えば、アプリケーション202がオフロードエンジン104を利用する際には、まず、オフロードエンジンドライバ209に対して、アプリケーション202用の仮想的な通信インタフェースであるソケット213の生成を要求する。このソケット213は、ソケット213の生成を要求したアプリケーション202を識別するための識別情報210を有している。識別情報210には、例えば、アプリケーション202から指定された、宛先IPアドレス、送信元IPアドレス、宛先ポート、送信元ポート、プロトコル等の情報が含まれる。   In FIG. 2, for example, when the application 202 uses the offload engine 104, first, the offload engine driver 209 is requested to generate a socket 213 that is a virtual communication interface for the application 202. The socket 213 has identification information 210 for identifying the application 202 that has requested the generation of the socket 213. The identification information 210 includes information such as a destination IP address, a source IP address, a destination port, a source port, and a protocol specified by the application 202, for example.

一方、アプリケーション202が、ソケット213を介してデータの送信を要求すると、オフロードエンジンドライバ209の制御により、オフロードエンジン104が、例えば、IPパケット216、217を生成し、共有メモリ102に保存する。ここで、アプリケーション202の要求により生成されたIPパケット216、217のIPヘッダには、識別情報210と同じ宛先IPアドレス、送信元IPアドレス、及びプロトコルが含まれている。また、TCPパケット219、220のTCPヘッダには、識別情報210と同じ宛先ポート及び送信元ポートが含まれている。   On the other hand, when the application 202 requests transmission of data via the socket 213, the offload engine 104 generates, for example, IP packets 216 and 217 and stores them in the shared memory 102 under the control of the offload engine driver 209. . Here, the IP header of the IP packets 216 and 217 generated by the request of the application 202 includes the same destination IP address, source IP address, and protocol as the identification information 210. The TCP headers of the TCP packets 219 and 220 include the same destination port and transmission source port as the identification information 210.

同様にして、アプリケーション203が識別情報211を指定して生成を要求したソケット214を介して生成されたIPパケット218のIPヘッダには、識別情報211と同じ宛先IPアドレス、送信元IPアドレス、及びプロトコルが含まれている。また、TCPパケット221のTCPヘッダには、識別情報211と同じ宛先ポート及び送信元ポートが含まれている。   Similarly, the IP header of the IP packet 218 generated via the socket 214 requested to generate by specifying the identification information 211 by the application 203 includes the same destination IP address, transmission source IP address, and The protocol is included. Also, the TCP header of the TCP packet 221 includes the same destination port and transmission source port as the identification information 211.

従って、オフロードエンジンドライバ209は、識別情報210、211と生成されたIPパケット216〜218等のIPヘッダ、TCPヘッダを照合することにより、生成されたIPパケットの要求元のアプリケーションを特定することができる。   Accordingly, the offload engine driver 209 identifies the requesting application of the generated IP packet by comparing the identification information 210 and 211 with the IP header and TCP header of the generated IP packets 216 to 218 and the like. Can do.

図3は、オフロードエンジンドライバ209の機能構成図である。オフロードエンジンドライバ209は、インタフェース生成部301、オフロードエンジン制御部302、設定更新部303、チェックサム計算部304、及び送信制御部305を有する。インタフェース生成部301は、一又は複数のアプリケーション202、203等の要求によりソケットインタフェースを生成する。   FIG. 3 is a functional configuration diagram of the off-road engine driver 209. The offload engine driver 209 includes an interface generation unit 301, an offload engine control unit 302, a setting update unit 303, a checksum calculation unit 304, and a transmission control unit 305. The interface generation unit 301 generates a socket interface in response to a request from one or a plurality of applications 202 and 203.

オフロードエンジン制御部302は、オフロードエンジン104を動作させるためのレジスタ、ディスクリプタ等を設定して、オフロードエンジン104にパケットの生成を要求する。また、オフロードエンジン104が生成したパケットが共有メモリ102に書き込まれたことを、例えば、パケット生成完了の割り込み等により検出し、生成されたパケットのアドレスをオフロードエンジン104のレジスタ等から取得する。   The offload engine control unit 302 sets registers, descriptors, and the like for operating the offload engine 104 and requests the offload engine 104 to generate a packet. Further, the fact that the packet generated by the offload engine 104 has been written to the shared memory 102 is detected by, for example, a packet generation completion interrupt or the like, and the address of the generated packet is acquired from the register of the offload engine 104 or the like. .

設定更新部303は、識別情報に基づいて、共有メモリ102に記憶されたパケットのTOS値を、識別情報と関連付けされたTOS値に書き換える。チェックサム計算部304は、TOS値の書き換えにより、IPヘッダのチェックサムの更新が必要な場合に、IPヘッダのチェックサムを計算し、IPヘッダのチェックサムフィールドを更新する。   The setting update unit 303 rewrites the TOS value of the packet stored in the shared memory 102 to the TOS value associated with the identification information based on the identification information. When the checksum of the IP header needs to be updated due to the rewriting of the TOS value, the checksum calculation unit 304 calculates the checksum of the IP header and updates the checksum field of the IP header.

送信制御部305は、生成されたパケットをDIX形式等のフレームへ変換し、無線LAN I/F106に対してフレームの送信を要求する。   The transmission control unit 305 converts the generated packet into a DIX format frame and requests the wireless LAN I / F 106 to transmit the frame.

上記構成により、例えば、アプリケーション202が識別情報210及びTOS値205を指定してデータの送信を要求すると、インタフェース生成部301により、IPパケット216、217等が生成される。設定更新部303は、生成されたIPパケット216、217のIPヘッダ、TCPヘッダ等を識別情報210と照合し、所定の情報が一致した場合には、識別情報210と関連付けられたTOS値205をIPパケット216、217のTOS値に上書きする。さらに、チェックサム計算部304が、必要に応じてIPパケット216、217のIPヘッダのチェックサムを再計算し、IPヘッダのチェックサムフィールドを更新する。   With the above configuration, for example, when the application 202 specifies the identification information 210 and the TOS value 205 and requests data transmission, the interface generation unit 301 generates IP packets 216, 217, and the like. The setting update unit 303 compares the IP header, TCP header, and the like of the generated IP packets 216 and 217 with the identification information 210, and if the predetermined information matches, the setting update unit 303 sets the TOS value 205 associated with the identification information 210. The TOS value of the IP packet 216, 217 is overwritten. Furthermore, the checksum calculation unit 304 recalculates the checksum of the IP header of the IP packets 216 and 217 as necessary, and updates the checksum field of the IP header.

上記構成により、オフロードエンジン104がハードウェアの制限等により、IPパケット216、217のTOS値を変更できない場合であっても、IPパケット216、217のIPヘッダのTOS値を設定することが可能となる。従って、オフロードエンジン104を含む通信装置100において、TOSフィールドの値に基づくQOS制御を容易化することができる。   With the above configuration, even when the offload engine 104 cannot change the TOS value of the IP packets 216 and 217 due to hardware limitations, the TOS value of the IP header of the IP packets 216 and 217 can be set. It becomes. Therefore, in the communication device 100 including the offload engine 104, QOS control based on the value of the TOS field can be facilitated.

次に、図4〜6を使って、通信装置100の動作について説明する。図4は、第1の実施の形態に係るパケット生成の開始処理のフローチャートである。尚、ここでは、一例として、図2に示すアプリケーション202が、識別情報210を指定してソケット213の生成を要求して、オフロードエンジン104がIPパケット216を生成する場合について説明を行う。   Next, the operation of the communication apparatus 100 will be described with reference to FIGS. FIG. 4 is a flowchart of packet generation start processing according to the first embodiment. Here, as an example, a case will be described in which the application 202 illustrated in FIG. 2 specifies the identification information 210 to request generation of the socket 213 and the offload engine 104 generates the IP packet 216.

図4において、アプリケーション202が、TOS値205を指定してパケットの送信を行う場合、アプリケーション202は、オフロードエンジンドライバ209に対して、識別情報210を指定してソケットの生成を要求する(ステップS401)。識別情報210は、例えば、宛先IPアドレス、送信元IPアドレス、宛先ポート、送信元ポート、プロトコル、TOS値205等を含む。尚、識別情報210は、オフロードエンジンドライバ209のインタフェース生成部301が、アプリケーション202から指定された上記情報に基づいて生成するものであっても良い。   In FIG. 4, when the application 202 designates the TOS value 205 and transmits a packet, the application 202 designates the identification information 210 and requests the offload engine driver 209 to generate a socket (step). S401). The identification information 210 includes, for example, a destination IP address, a source IP address, a destination port, a source port, a protocol, a TOS value 205, and the like. The identification information 210 may be generated by the interface generation unit 301 of the offload engine driver 209 based on the information specified by the application 202.

インタフェース生成部301は、アプリケーション202からの要求に応じて、識別情報210を有するソケット213を生成する(ステップS402)。尚、ソケットは、アプリケーションが、例えば、TCPやUDP(User Datagram Protocol)等のプロトコルを利用して通信を行うための仮想的な通信インタフェースを提供するAPIである。各アプリケーションはソケットインタフェースを利用して、通信先のIPアドレスやポート番号の設定を行い、又データ送受信の要求等を行うことができる。尚、ソケットインタフェースは、通信に使用するAPIの一例であって、他のAPIを利用するものであっても良い。   The interface generation unit 301 generates a socket 213 having identification information 210 in response to a request from the application 202 (step S402). The socket is an API that provides a virtual communication interface for an application to perform communication using a protocol such as TCP or UDP (User Datagram Protocol). Each application can set an IP address and a port number of a communication destination using a socket interface, and can request data transmission / reception. The socket interface is an example of an API used for communication, and may use another API.

インタフェース生成部301は、ソケット213の生成時にTOSの値が指定されているか否かを判断する(ステップS403)。TOS値205の指定がある場合、インタフェース生成部301は識別情報210とTOS値205を関連付けて記憶する(ステップS404)。   The interface generation unit 301 determines whether a TOS value is specified when the socket 213 is generated (step S403). When the TOS value 205 is specified, the interface generation unit 301 stores the identification information 210 and the TOS value 205 in association with each other (step S404).

ソケット213が生成されると、アプリケーション202は、オフロードエンジンドライバ209に対してパケットの生成を要求する(ステップS405)。オフロードエンジン制御部302は、アプリケーション202の要求を受けて、オフロードエンジン104を動作させるためのレジスタ、ディスクリプタ等を設定し、オフロードエンジン104にパケットの生成開始を指示する(ステップS406)。   When the socket 213 is generated, the application 202 requests the offload engine driver 209 to generate a packet (step S405). In response to the request from the application 202, the offload engine control unit 302 sets registers, descriptors, and the like for operating the offload engine 104, and instructs the offload engine 104 to start generating packets (step S406).

上記動作により、オフロードエンジン104は、ソケット213に対応するIPパケット216の生成を開始する。   With the above operation, the offload engine 104 starts generating the IP packet 216 corresponding to the socket 213.

次に、図5に一実施形態に係るTOS値の書き換え処理のフローチャートを示す。オフロードエンジン制御部302は、オフロードエンジン104からパケットを生成したことを示す割り込みを検出すると(ステップS501)、オフロードエンジン104のレジスタ等から、生成されたパケットのアドレスを取得する(ステップS502)。設定更新部303は、取得したアドレスに基づいて、IPパケット216のIPヘッダから宛先IPアドレス、送信元IPアドレス、プロトコルを抽出し、同様にTCPヘッダから宛先ポートと送信元ポートを抽出する(ステップS503)。   Next, FIG. 5 shows a flowchart of a TOS value rewrite process according to an embodiment. When the offload engine control unit 302 detects an interrupt indicating that a packet is generated from the offload engine 104 (step S501), the offload engine control unit 302 acquires the address of the generated packet from the register of the offload engine 104 (step S502). ). The setting update unit 303 extracts the destination IP address, the source IP address, and the protocol from the IP header of the IP packet 216 based on the acquired address, and similarly extracts the destination port and the source port from the TCP header (step S503).

設定更新部303は、ステップS503で抽出した各データと識別情報210を比較し、例えば、全ての項目が一致するか否かを判断する(ステップS504)。尚、このとき、ソケット213以外のソケット、例えば、図2のアプリケーション203に対応するソケット214が生成されている場合には、識別情報211についても同様に比較を行う。設定更新部303は、ステップS503で抽出したデータと識別情報210が一致した場合には、識別情報210と関連付けられたTOS値205で、IPパケット216のIPヘッダの品質制御パラメータの値を更新する(ステップS505)。   The setting update unit 303 compares each piece of data extracted in step S503 with the identification information 210, and determines, for example, whether all items match (step S504). At this time, when a socket other than the socket 213, for example, the socket 214 corresponding to the application 203 in FIG. 2 is generated, the identification information 211 is similarly compared. If the data extracted in step S503 matches the identification information 210, the setting update unit 303 updates the value of the quality control parameter of the IP header of the IP packet 216 with the TOS value 205 associated with the identification information 210. (Step S505).

ここで、IPヘッダの品質制御パラメータについて説明する。図6は、IPヘッダの一例として、IPv4形式のIPヘッダの構成を示す図である。IPパケットは、IPヘッダ601とIPペイロード602から構成されている。IPヘッダは、図6に示す各種情報が格納されており、Type Of Service(TOS)603のフィールドが品質制御パラメータの値に相当する。設定更新部303は、品質制御パラメータの値を更新する場合には、このType Of Service(TOS)603フィールドの値をTOS値205等で上書きする。   Here, the quality control parameters of the IP header will be described. FIG. 6 is a diagram illustrating a configuration of an IPv4 format IP header as an example of an IP header. The IP packet is composed of an IP header 601 and an IP payload 602. Various information shown in FIG. 6 is stored in the IP header, and the field of Type Of Service (TOS) 603 corresponds to the value of the quality control parameter. When updating the value of the quality control parameter, the setting update unit 303 overwrites the value of this Type Of Service (TOS) 603 field with the TOS value 205 or the like.

尚、IPv4形式のIPヘッダでは、IPヘッダのチェックサムの値がHeader Checksum604フィールドに格納されている。従って、IPv4形式のIPヘッダ601のTOS603フィールドの書き換えを行った場合には、IPヘッダ601のチェックサムを再計算し、Header Checksum604フィールドの値についても更新する必要がある。   In the IPv4 format IP header, the IP header checksum value is stored in the Header Checksum 604 field. Therefore, when the TOS 603 field of the IPv4 format IP header 601 is rewritten, it is necessary to recalculate the checksum of the IP header 601 and update the value of the Header Checksum 604 field.

一方、IPヘッダがIPv6形式のIPヘッダの場合には、IPヘッダの構成が異なり、Traffic Classのフィールドが品質制御パラメータの値に相当する。従って、設定更新部303が品質制御パラメータの値を更新する場合には、IPv4形式のIPヘッダではTOS603フィールドの値を、又IPv6形式のIPヘッダではTraffic Classのフィールドの値をTOS値205等で上書きを行う。尚、IPv6形式のIPヘッダでは、ヘッダのチェックサムが省略されているため、IPヘッダのチェックサムの再計算及び更新は不要である。   On the other hand, when the IP header is an IPv6 format IP header, the configuration of the IP header is different, and the Traffic Class field corresponds to the value of the quality control parameter. Therefore, when the setting update unit 303 updates the value of the quality control parameter, the value of the TOS 603 field in the IPv4 format IP header and the value of the Traffic Class field in the IPv6 format IP header are set to the TOS value 205 or the like. Overwrite. Note that since the checksum of the header is omitted in the IPv6 format IP header, it is not necessary to recalculate and update the checksum of the IP header.

ここで、図5に戻って、TOS値書き換え処理の説明を続ける。図5のステップS505において、IPパケット218の品質制御パラメータの値を更新した後、チェックサム計算部304は、必要に応じてIPヘッダのチェックサムを再計算し、IPヘッダのチェックサムを更新する。例えば、IPv4形式のIPヘッダの場合には、チェックサム計算部304は、IPヘッダ601のチェックサムを再計算し、再計算されたチェックサムをHeader Checksum604フィールドに上書きする。一方、IPv6形式のIPヘッダの場合には、チェックサム計算部304は、チェックサムの計算及び/又は更新を省略できる。尚、上記で例示したIPv4形式及びIPv6形式のIPヘッダは一例であって、本実施の形態は、他の形式のパケットやヘッダについても適用可能である。   Here, returning to FIG. 5, the description of the TOS value rewriting process will be continued. In step S505 of FIG. 5, after updating the quality control parameter value of the IP packet 218, the checksum calculation unit 304 recalculates the checksum of the IP header as necessary, and updates the checksum of the IP header. . For example, in the case of an IPv4 format IP header, the checksum calculation unit 304 recalculates the checksum of the IP header 601 and overwrites the recalculated checksum in the Header Checksum 604 field. On the other hand, in the case of an IPv6 format IP header, the checksum calculator 304 can omit the checksum calculation and / or update. Note that the IP headers in the IPv4 format and the IPv6 format exemplified above are examples, and this embodiment can be applied to packets and headers in other formats.

次に、通信装置100のパケット送信処理について説明する。図7は、第1の実施の形態に係るパケット送信処理のフローチャートである。送信制御部305は、TOS値205の書き換えと、必要に応じてチェックサムの更新が行われたIPパケット216を、例えば、DIX形式等のイーサネット(登録商標)フレームに変換する(ステップS701)。次に、送信制御部305は、イーサネットフレームに変換されたフレームの送信を無線LAN I/F106に要求する(ステップS702)。要求を受けた無線LAN I/F106は、送信を要求されたフレームを無線LAN形式のフレームに変換する(ステップS703)。さらに、無線LAN I/F106は、送信を要求されたフレームのIPヘッダに含まれるTOSフィールドの上位3ビットを無線LANの例えば、IEEE802.11e等の規格で定められているアクセスカテゴリの値に変換する(ステップS704)。   Next, packet transmission processing of the communication device 100 will be described. FIG. 7 is a flowchart of packet transmission processing according to the first embodiment. The transmission control unit 305 converts the IP packet 216 in which the TOS value 205 is rewritten and the checksum is updated as necessary into an Ethernet (registered trademark) frame such as a DIX format, for example (step S701). Next, the transmission control unit 305 requests the wireless LAN I / F 106 to transmit the frame converted into the Ethernet frame (step S702). Upon receiving the request, the wireless LAN I / F 106 converts the frame requested for transmission into a wireless LAN format frame (step S703). Furthermore, the wireless LAN I / F 106 converts the upper 3 bits of the TOS field included in the IP header of the frame requested to be transmitted into an access category value defined in the wireless LAN standard such as IEEE802.11e. (Step S704).

図8は、TOS値とアクセスカテゴリの変換テーブル801の例である。無線LAN I/F106は、例えば、このようなテーブルに基づいて、TOS優先度802の値を
アクセスカテゴリ(以下、ACと称す)803の値に変換する。
FIG. 8 is an example of a conversion table 801 for TOS values and access categories. For example, the wireless LAN I / F 106 converts the value of the TOS priority 802 into the value of an access category (hereinafter referred to as AC) 803 based on such a table.

ここで、図7に戻ってパケット送信処理の説明を続ける。無線LAN I/F106は、例えば、変換テーブル801に基づいて変換したAC803の値を無線LANフレームの品質制御フィールドに設定する(ステップS705)。   Here, returning to FIG. 7, the description of the packet transmission process is continued. For example, the wireless LAN I / F 106 sets the AC 803 value converted based on the conversion table 801 in the quality control field of the wireless LAN frame (step S705).

図9に、無線LANフレームフォーマットの一例として、IEEE802.11e形式の無線LANフレーム901のフォーマットを示す。無線LANフレーム901は、IEEE802.11e Header902を含み、IEEE802.11e Header902は、QoS Control904フィールドを有している。無線LAN I/F106は、例えば、このQoS Control904フィールドに変換したAC803の値を設定する。また、無線LANフレーム901のData903のフィールドには、例えば、IPパケットが格納される。   FIG. 9 shows a format of a wireless LAN frame 901 in the IEEE 802.11e format as an example of the wireless LAN frame format. The wireless LAN frame 901 includes an IEEE 802.11e Header 902, and the IEEE 802.11e Header 902 has a QoS Control 904 field. For example, the wireless LAN I / F 106 sets the value of the AC 803 converted into the QoS Control 904 field. Also, for example, an IP packet is stored in the Data 903 field of the wireless LAN frame 901.

再び図7に戻って、無線LAN I/F106は、生成した無線LANフレーム901を送信する(ステップS706)。   Returning to FIG. 7 again, the wireless LAN I / F 106 transmits the generated wireless LAN frame 901 (step S706).

以上、本実施の形態によれば、設定更新部303は、オフロードエンジン104で生成されたIPパケット216の品質制御パラメータの値を、アプリケーション202から指定された値に更新する。また、チェックサム計算部304は、必要に応じて、品質制御パラメータが更新されたIPヘッダのチェックサムを再計算し、IPヘッダのチェックサムフィールドを更新する。そのため、無線LAN I/F106は、IPヘッダの品質制御パラメータに基づいて、無線LANフレームの品質制御フィールドを設定できる。つまり、オフロードエンジン104を含む通信装置100において、TOS603フィールドの値に基づくQOS制御を容易化することができる。   As described above, according to the present embodiment, the setting update unit 303 updates the value of the quality control parameter of the IP packet 216 generated by the offload engine 104 to a value specified by the application 202. In addition, the checksum calculation unit 304 recalculates the checksum of the IP header in which the quality control parameters are updated as necessary, and updates the checksum field of the IP header. Therefore, the wireless LAN I / F 106 can set the quality control field of the wireless LAN frame based on the quality control parameter of the IP header. That is, in the communication apparatus 100 including the offload engine 104, QOS control based on the value of the TOS 603 field can be facilitated.

[第2の実施の形態]
第1の実施の形態では、通信装置100が無線LAN I/F106を有する例を示したが、無線LAN I/F106の機能は、必ずしも通信装置100が有していなくても良い。
[Second Embodiment]
In the first embodiment, an example in which the communication apparatus 100 includes the wireless LAN I / F 106 has been described. However, the communication apparatus 100 does not necessarily have the function of the wireless LAN I / F 106.

図10は、第2の実施の形態に係る通信システム1000の構成図である。通信システム1000は、通信装置1001、無線LAN装置1003、及び情報処理装置1004を有している。   FIG. 10 is a configuration diagram of a communication system 1000 according to the second embodiment. The communication system 1000 includes a communication device 1001, a wireless LAN device 1003, and an information processing device 1004.

通信装置1001は、第1の実施の形態の通信装置100の無線LAN I/F106に代えて、ネットワークインタフェース(以下、ネットワークI/Fと称す)1002を有している。他の構成は、通信装置100と同じである。ネットワークI/F1002は、第1の実施の形態の図7ステップS701で生成した、DIX形式等のイーサネットフレームを無線LAN形式のフレームに変換せずに出力する。   The communication device 1001 includes a network interface (hereinafter referred to as a network I / F) 1002 instead of the wireless LAN I / F 106 of the communication device 100 according to the first embodiment. Other configurations are the same as those of the communication device 100. The network I / F 1002 outputs the Ethernet frame, such as the DIX format, generated in step S701 in FIG. 7 of the first embodiment without converting it to a wireless LAN format frame.

無線LAN装置1003は、第1の実施の形態の無線LAN I/F106、又は、無線LAN I/F106に相当する機能を有する。無線LAN装置1003は、通信装置1001から送られてきたイーサネットフレームを無線LAN形式のフレームに変換し、イーサネットフレームに含まれるIPヘッダのTOSの値を無線LANのアクセスカテゴリに変換する。さらに、アクセスカテゴリの値を無線LANフレームの品質制御パラメータのフィールド、例えば、IEEE802.11e Header902のQoS Control904フィールドに設定し、情報処理装置1004へ送信する。   The wireless LAN device 1003 has a function corresponding to the wireless LAN I / F 106 or the wireless LAN I / F 106 according to the first embodiment. The wireless LAN device 1003 converts the Ethernet frame transmitted from the communication device 1001 into a wireless LAN format frame, and converts the TOS value of the IP header included in the Ethernet frame into a wireless LAN access category. Further, the value of the access category is set in the quality control parameter field of the wireless LAN frame, for example, the QoS Control 904 field of the IEEE802.11e Header 902 and transmitted to the information processing apparatus 1004.

上記構成により、第1の実施の形態と同様の効果が得られる。   With the above configuration, the same effect as in the first embodiment can be obtained.

尚、上記構成はあくまでも一例であって、用途や目的に応じて様々なシステム構成例があることは言うまでもない。例えば、通信装置1001は、ネットワークI/F1002の代わりに、USB(Universal Serial Bus)インタフェース等の拡張インタフェースを有し、無線LAN装置1003は、USBインタフェースに接続された無線LANインタフェースであっても良い。このとき、無線LANインタフェースは、第1の実施の形態の図7ステップS701のイーサネットフレームに変換する処理を省略して、無線LANフレームを作成しても良い。   In addition, the said structure is an example to the last, and it cannot be overemphasized that there are various system structural examples according to a use and the objective. For example, the communication device 1001 may have an extended interface such as a USB (Universal Serial Bus) interface instead of the network I / F 1002, and the wireless LAN device 1003 may be a wireless LAN interface connected to the USB interface. . At this time, the wireless LAN interface may create a wireless LAN frame by omitting the conversion to the Ethernet frame in step S701 in FIG. 7 of the first embodiment.

100 通信装置
103 DMAC
104 オフロードエンジン
106 無線LANインタフェース
301 インタフェース生成部
302 オフロードエンジン制御部
303 設定更新部
304 チェックサム計算部
305 送信制御部
1000 通信システム
100 communication device 103 DMAC
DESCRIPTION OF SYMBOLS 104 Offload engine 106 Wireless LAN interface 301 Interface production | generation part 302 Offload engine control part 303 Setting update part 304 Checksum calculation part 305 Transmission control part 1000 Communication system

特許第3966307号公報Japanese Patent No. 3966307

Claims (10)

送信パケットの生成を含むネットワークプロトコル処理の少なくとも一部を処理するオフロードエンジンと、
アプリケーションからの要求に応じて前記オフロードエンジンの前記送信パケットの生成を制御するオフロードエンジン制御部と、
前記制御に応じて前記オフロードエンジンが生成した前記送信パケットの品質制御パラメータを前記アプリケーションが指定した値に書き換える設定更新部と、
を有する通信装置。
An offload engine that handles at least part of the network protocol processing, including the generation of outgoing packets;
An offload engine control unit that controls generation of the transmission packet of the offload engine in response to a request from an application;
A setting update unit that rewrites the quality control parameter of the transmission packet generated by the offload engine according to the control to a value specified by the application;
A communication device.
前記アプリケーションによって指定された識別情報に対応する仮想的な通信インタフェースを生成するインタフェース生成部を有し、
前記設定更新部は、前記識別情報に基づいて前記品質制御パラメータの書き換えを行う請求項1に記載の通信装置。
An interface generation unit that generates a virtual communication interface corresponding to the identification information specified by the application;
The communication apparatus according to claim 1, wherein the setting update unit rewrites the quality control parameter based on the identification information.
前記仮想的な通信インタフェースがソケットインタフェースである請求項2に記載の通信装置。   The communication apparatus according to claim 2, wherein the virtual communication interface is a socket interface. 前記設定更新部が前記品質制御パラメータを書き換えたパケットのチェックサムを再計算するチェックサム計算部を有する請求項1乃至3のいずれか一項に記載の通信装置。   The communication apparatus according to any one of claims 1 to 3, further comprising a checksum calculation unit that recalculates a checksum of a packet in which the setting update unit rewrites the quality control parameter. 前記送信パケットは、IPv4形式のIPヘッダを有するIPパケットであり、前記品質制御パラメータがType Of Serviceの値である請求項4に記載の通信装置。   The communication apparatus according to claim 4, wherein the transmission packet is an IP packet having an IPv4 format IP header, and the quality control parameter is a value of Type Of Service. 前記送信パケットは、IPv6形式のIPヘッダを有するIPパケットであり、前記品質制御パラメータがTraffic Classの値である請求項1乃至3のいずれか一項に記載の通信装置。   The communication device according to any one of claims 1 to 3, wherein the transmission packet is an IP packet having an IPv6 format IP header, and the quality control parameter is a value of Traffic Class. 前記品質制御パラメータを無線LANのアクセスカテゴリに変換し、前記アクセスカテゴリを前記無線LANのフレームの品質制御フィールドに設定する無線LANインタフェース部を有する請求項1乃至6のいずれか一項に記載の通信装置。   7. The communication according to claim 1, further comprising: a wireless LAN interface unit that converts the quality control parameter into a wireless LAN access category and sets the access category in a quality control field of the wireless LAN frame. apparatus. 前記アプリケーション、前記オフロードエンジン制御部、及び前記設定更新部に係る処理を行うCPUと、前記オフロードエンジンと、前記送信パケットに係るデータを記憶する第1のメモリとが接続された第1のバスと、
前記CPUと、前記CPUが実行するプログラム及び前記プログラムによって利用されるデータの少なくとも一部を記憶する第2のメモリとが接続された第2のバスと、
を有する請求項1乃至6のいずれか一項に記載の通信装置。
A CPU that performs processing related to the application, the offload engine control unit, and the setting update unit, the offload engine, and a first memory that stores data related to the transmission packet are connected to each other. With bus,
A second bus to which the CPU and a program executed by the CPU and a second memory storing at least a part of data used by the program are connected;
The communication apparatus according to any one of claims 1 to 6, further comprising:
前記第1のバスに接続されたネットワークインタフェース部と、
前記第1のバスに接続されたDMAコントローラと、
前記DMAコントローラによって前記第1のメモリと前記ネットワークインタフェース部との間のデータ転送をDMAで行うデータ転送手段と、
を有する請求項8に記載の通信装置。
A network interface unit connected to the first bus;
A DMA controller connected to the first bus;
A data transfer means for performing data transfer between the first memory and the network interface unit by the DMA using the DMA controller;
The communication device according to claim 8, comprising:
送信パケットの生成を含むネットワークプロトコル処理の少なくとも一部を処理するオフロードエンジンと、
アプリケーションからの要求に応じて前記オフロードエンジンの前記送信パケットの生成開始を指示するオフロードエンジン制御部と、
前記指示に応じて前記オフロードエンジンが生成した前記送信パケットの品質制御パラメータを前記アプリケーションが指定した値に書き換える設定更新部と、
前記品質制御パラメータを無線LANのアクセスカテゴリに変換し、前記アクセスカテゴリを前記無線LANのフレームの品質制御フィールドに設定する無線LANインタフェースと、
を有する通信システム。
An offload engine that handles at least part of the network protocol processing, including the generation of outgoing packets;
An offload engine control unit that instructs generation start of the transmission packet of the offload engine in response to a request from an application;
A setting update unit for rewriting the quality control parameter of the transmission packet generated by the offload engine according to the instruction to a value specified by the application;
A wireless LAN interface that converts the quality control parameter into a wireless LAN access category, and sets the access category in a quality control field of the wireless LAN frame;
A communication system.
JP2013103771A 2013-05-16 2013-05-16 Communication apparatus and communication system Active JP6123476B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013103771A JP6123476B2 (en) 2013-05-16 2013-05-16 Communication apparatus and communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013103771A JP6123476B2 (en) 2013-05-16 2013-05-16 Communication apparatus and communication system

Publications (2)

Publication Number Publication Date
JP2014225769A JP2014225769A (en) 2014-12-04
JP6123476B2 true JP6123476B2 (en) 2017-05-10

Family

ID=52124139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013103771A Active JP6123476B2 (en) 2013-05-16 2013-05-16 Communication apparatus and communication system

Country Status (1)

Country Link
JP (1) JP6123476B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6765901B1 (en) * 1998-06-11 2004-07-20 Nvidia Corporation TCP/IP/PPP modem
JP2003209573A (en) * 2002-01-10 2003-07-25 Fujitsu Ltd Communication apparatus and repeater
JP2007142582A (en) * 2005-11-15 2007-06-07 Canon Inc Data communication device, data communication method, program, and storage medium

Also Published As

Publication number Publication date
JP2014225769A (en) 2014-12-04

Similar Documents

Publication Publication Date Title
JP6846891B2 (en) Virtual router clusters, data transfer methods and equipment
US10200204B2 (en) Link state information advertisement method and device
JP2018139448A5 (en)
KR102610823B1 (en) Communication system and method for network address translation
WO2014038070A1 (en) Information processing device, parallel computer system and information processing device control method
US11337211B2 (en) Operation request generating method, device, and system
JP2018518867A5 (en)
US8014282B2 (en) Hashing packet contents to determine a processor
JP5482230B2 (en) COMMUNICATION DEVICE, INFORMATION PROCESSING DEVICE, COMMUNICATION DEVICE CONTROL METHOD, AND CONTROL PROGRAM
US20160112315A1 (en) Communication apparatus, communication method, and computer-readable recording medium
JP2012175394A (en) Flow switch, flow control system and flow control method
US10749842B2 (en) Communication system and method for network address translation
JP6123476B2 (en) Communication apparatus and communication system
US9942823B2 (en) Communication terminal, communication method, and communication program
US10911983B2 (en) Packet load generation device and packet load generation method
JP2018142853A (en) Communication method, communication device, and program
JP6822032B2 (en) Processing decision device, processing decision method, and processing decision program
JP7387335B2 (en) Communication device, control method and program
JP6279970B2 (en) Processor, communication apparatus, communication system, communication method, and computer program
JP6438206B2 (en) COMMUNICATION DEVICE, ITS CONTROL METHOD, AND PROGRAM
US20170078438A1 (en) Communication device, communication method, and non-transitory computer readable medium
JP7091078B2 (en) Communication equipment, control methods and programs for communication equipment
US20160149989A1 (en) Method for transferring data between an electrical measuring device and a control computer
US20190089636A1 (en) In-vehicle apparatus, information processing unit, information processing method, and non-transitory computer readable storage medium that stores program
JP5964692B2 (en) Protocol conversion support apparatus, protocol conversion support method, and protocol conversion support program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170207

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170320

R151 Written notification of patent or utility model registration

Ref document number: 6123476

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151