JP6394799B2 - 転送装置、通信システム、通信方法、および、通信プログラム - Google Patents

転送装置、通信システム、通信方法、および、通信プログラム Download PDF

Info

Publication number
JP6394799B2
JP6394799B2 JP2017517484A JP2017517484A JP6394799B2 JP 6394799 B2 JP6394799 B2 JP 6394799B2 JP 2017517484 A JP2017517484 A JP 2017517484A JP 2017517484 A JP2017517484 A JP 2017517484A JP 6394799 B2 JP6394799 B2 JP 6394799B2
Authority
JP
Japan
Prior art keywords
data
communication device
transmission
identifier
transfer
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
JP2017517484A
Other languages
English (en)
Other versions
JPWO2016181461A1 (ja
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2016181461A1 publication Critical patent/JPWO2016181461A1/ja
Application granted granted Critical
Publication of JP6394799B2 publication Critical patent/JP6394799B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、複数の装置の間で行われる通信に関する。
近年、通信の高速化が求められてきており、通信速度を高速化するために様々な試みが行われてきている。例えば、データの送信量を減らすために、送信対象のデータに対して重複除去が行われることがある。重複除去では、受信側の通信装置が、過去に送信側の通信装置から受信したデータを、識別子に対応付けて記憶しており、送信側の通信装置も過去に送信したデータと識別子を対応付けて記憶している。送信側の通信装置は、送信対象のデータの一部または全部が既に送信したことがあるデータであるかを判定し、既に送信したことがあるデータについては、実際のデータの代わりに、そのデータに対応付けられた識別子を受信側の通信装置に送信する。受信側の通信装置は、受信した識別子に対応付けて記憶しているデータを読み出し、読み出したデータを送信側の通信装置から送信されたデータとして扱う。
図1は、重複除去が行われる場合の転送処理の例を説明する図である。例えば、データd1を送信する場合、送信側の通信装置は、送信データを複数のデータに区切り、過去に送信したことがあるデータや送信データ中で複数回含まれるデータを特定する。図1の例では、送信データであるデータd1には、データd2とデータd3が、データd2、データd3、データd3、データd2の順に含まれている。また、データd2とデータd3のいずれも、送信側の通信装置が受信側の通信装置に送信したことがないとする。この場合、送信側の通信装置は、送信データの先頭のデータd2とともに、データd2を示す識別情報idaを受信側の通信装置に送信する。受信側の通信装置は、データd2と識別情報idaを対応付けて記憶する。図1では、見やすくするために、識別情報idaをAと示す。同様に、送信側の通信装置は、送信データのデータd3とともに、データd3を示す識別情報idbを受信側の通信装置に送信する。図1中では識別情報idbをBと示す。受信側の通信装置は、データd3と識別情報idbを対応付けて記憶する。
次に、送信側の通信装置は、送信データの続きのデータd3の代わりに、データd3を表す識別子idb(B)を受信側の通信装置に送信する。受信側の通信装置では、識別情報idbを受信すると、識別情報idbに対応付けて記憶しているデータd3を特定するとともに、受信データをデータd3に読み替える。同様に、送信側の通信装置は、送信データの続きのデータd2の代わりに、データd2を表す識別子ida(A)を受信側の通信装置に送信する。受信側の通信装置では、識別情報idaを受信すると、識別情報idaに対応付けて記憶しているデータd2を特定するとともに、受信データをデータd2に読み替える。このため、送信側の通信装置は、データd2とデータd3を1回送信した後は、それらの識別情報を送信するだけで、受信側の通信装置に、データd2、データd3、データd3、データd2を送信した場合と同様の効果が得られる。受信側の通信装置は、データd2、データd3、データd3、データd2をつなげてデータd1を復元する。
関連する技術として、出現率の高いパターンにパターン番号を付して記憶し、データに含まれたパターンと記憶しているパターンが一致する場合にデータ中のパターンをパターン番号で置き換えて転送データを生成する装置が提案されている(例えば特許文献1)。送信装置は、転送データとパターン辞書に登録したパターンの情報を、受信側の装置に転送する。他にも、送信対象のデータの1バイトの値が制御信号で使用される値の場合に、データの送信側の装置が、変換識別を行っていることを示す値を付したデータを転送する転送方法が知られている。この転送方法では、制御情報とは異なる所定の範囲の値についてはデータを変更しない(例えば特許文献2)。
特開2002−368623号公報 特開平9−331366号公報
送信データ中の重複を除去する場合、送信側の装置は、送信データを所定のデータ長に区切って、これまでに送信を行ったことがあるデータであるかを判定する。ここで、データの転送処理を行うアプリケーションによっては、アプリケーションヘッダの挿入などの、転送対象のデータへの改変が行われることがある。この場合、転送処理を行うアプリケーションによる改変に起因して、重複したデータとして除去できるデータ量が減少してしまい、転送効率が悪くなる。
本発明では、データの転送を効率化することを目的とする。
転送装置は、送受信部、制御部、置換処理部、送信部を備える。送受信部は、通信装置から宛先装置に送信されたパケットを受信する。制御部は、前記パケットにより受信したデータを、前記通信装置が前記宛先装置に送信する送信データと、前記送信データの送信処理を前記通信装置で行うアプリケーションが生成した制御情報に分離する。置換処理部は、前記宛先装置に向け、識別子に対応付けて送信したことがあるデータが前記送信データに含まれる場合、前記送信データ中で前記識別子に対応付けられたデータを前記識別子に置き換えた置換データを生成する。送信部は、前記送信データの代わりに前記置換データを前記宛先装置に向けて転送する。
データの転送を効率化できる。
重複除去が行われる場合の転送処理の例を説明する図である。 実施形態にかかる方法の例を説明する図である。 転送装置の構成の例を説明する図である。 転送装置のハードウェア構成の例を説明する図である。 転送処理が行われるネットワークの例を説明する図である。 フロー情報テーブルの例を説明する図である。 ヘッダ情報テーブルとアプリケーションヘッダの例を説明する図である。 第1の実施形態にかかる転送処理の例を説明する図である。 第1の実施形態にかかる転送装置で行われる処理の例を説明するフローチャートである。 第2の実施形態にかかる転送装置の構成の例を説明する図である。 第2の実施形態にかかるフロー情報テーブルの例を説明する図である。 第2の実施形態にかかる転送処理の例を説明する図である。 データの送信側の転送装置で行われる処理の例を説明するフローチャートである。 データの受信側の転送装置で行われる処理の例を説明するフローチャートである。 第3の実施形態にかかる転送装置の構成の例を説明する図である。 第3の実施形態にかかるフロー情報テーブルの例を説明する図である。 第3の実施形態にかかる転送処理の例を説明する図である。 第3の実施形態にかかる転送装置で行われる処理の例を説明するフローチャートである。 転送処理で実際に転送されるデータ量のシミュレーション結果を説明する図である。
図2は、実施形態にかかる方法の例を説明する図である。図2では、通信装置10aと通信装置10bが転送装置20aと転送装置20bを介して通信するネットワークの例と、ネットワーク中の各装置で行われる処理の例を示す。転送装置20aと転送装置20bは、いずれも、重複除去と重複除去を用いて送信されたデータの復元を行うことができる装置であるものとする。また、転送装置20aと転送装置20bは、Wide Area Network(WAN)を介して通信している。
ステップS1において、通信装置10aは、通信装置10bに送信する対象のデータ(送信データ)を含むデータパケットを生成する。このとき、通信装置10a中で動作しているアプリケーションは、通信装置10bに送信する送信データに、アプリケーションヘッダを付した上で、データパケットに含めるものとする。なお、送信データに含められるアプリケーションヘッダの数や、アプリケーションヘッダが挿入される間隔等は実装に応じて決定される。また、送信データに複数のアプリケーションヘッダが挿入される場合、複数のアプリケーションヘッダはそれぞれ異なる情報を含んでいる。
ステップS2において、通信装置10aは送信データを含むデータパケットを通信装置10bに向けて送信する。なお、図2では、図を見やすくするためデータパケットや転送パケットの送信を1つの矢印で示しているが、各装置間で送受信されるデータパケットや転送パケットの数は任意である。
ステップS3において、転送装置20aは、データパケットを受信し、データパケットのペイロードを抽出する。転送装置20aは、ペイロード中のデータに対し、アプリケーションヘッダと送信データを分離する処理を行う。なお、転送装置20aは、予め、データパケットに含まれている可能性のあるアプリケーションヘッダの候補を記憶しているものとする。転送装置20aは、ステップS3で特定した送信データについて、重複除去を行い、転送パケットを生成する(ステップS4)。転送装置20aは、転送パケットを転送装置20bに転送する(ステップS5)。なお、転送装置20aは、予め、通信装置10b宛てのデータの転送先は転送装置20bであることを記憶しているものとする。ステップS4、S5の処理により、転送パケットによって、転送されるデータの一部や、データに置き換えられる識別情報が転送装置20bに送信される。
転送装置20bは、転送パケットを受信すると、転送パケット中のデータや識別情報を、適宜、記憶する。このとき、転送装置20bは、識別情報をその識別情報に対応付けられたデータと対応付けて記憶する。転送装置20bは、転送パケットを用いて受信したデータや識別情報を用いて、送信されたデータを復元する(ステップS6)。転送装置20bは、復元後のデータを通信装置10bに転送するためのデータパケットを生成する(ステップS7)。転送装置20bは、ステップS7において、適宜、アプリケーションヘッダに関する処理も行う。転送装置20bは、生成したデータパケットを通信装置10bに転送する(ステップS8)。通信装置10bは、データパケットを受信することにより、通信装置10aから送信された送信対象のデータを取得する。
実施形態にかかる方法では、ステップS3、S4を参照しながら説明したように、データパケットのペイロード中のデータからアプリケーションヘッダを除いたデータについての重複除去が行われる。従って、転送装置20は、送信データ中に挿入されたアプリケーションヘッダ中の情報が異なることによって、重複除去の効率が低下することを防ぐことができる。
<第1の実施形態>
図3は、第1の実施形態にかかる転送装置20の構成の例を説明する図である。転送装置20は、送信部21、受信部22、送受信部23、パケット処理部30、記憶部50を備える。パケット処理部30は、置換処理部31、復元処理部32、制御部40を有する。さらに、制御部40は、ヘッダ分離部41とプロトコル判定部42を有する。記憶部50は、キャッシュ51として動作し、さらに、送信データテーブル52、フロー情報テーブル53、ヘッダ情報54、受信データテーブル55を記憶する。
送信部21は、WAN5に含まれている他の転送装置20にパケットを送信する。送信部21は、WAN5に含まれている他の転送装置20から受信したデータを復元処理部32に出力する。送受信部23は、WAN5に含まれていない通信装置10との間でパケットを送受信する。送受信部23は、通信装置10から受信したデータパケットをプロトコル判定部42に出力する。
プロトコル判定部42は、通信装置10がデータパケットの生成に使用したアプリケーションプロトコルを特定する。ヘッダ分離部41は、通信装置10から受信したデータから、アプリケーションヘッダを識別し、アプリケーションヘッダと通信装置10が通信先に送信しようとしている送信データが区別できるように、置換処理部31に出力する。ヘッダ分離部41は、アプリケーションヘッダの特定の際に、適宜、ヘッダ情報テーブル54を使用する。ヘッダ情報テーブル54は、転送処理に使用されうる転送アプリケーションと、アプリケーションヘッダのフォーマット情報などを対応付けている。ヘッダ情報テーブル54の例については後述する。
置換処理部31は、入力されたデータの重複除去処理を、送信データテーブル52を用いて行う。ここで、置換処理部31には、アプリケーションヘッダが送信データとは分けて入力される。また、送信データテーブル52は、他の転送装置20に送信したデータと、そのデータに対応付けて通知した識別子を関係付けている。そこで、置換処理部31は、送信データのうちで、送信データテーブル52に含まれているデータを、識別子に置換することにより、重複除去処理を行う。復元処理部32は、重複除去処理が施されたデータを、受信部22を介して取得すると、適宜、受信データテーブル55を用いて、復元データを生成する。なお、受信データテーブル55は、他の転送装置20から受信したデータを、そのデータとの対応関係を通知された識別子と共に記憶している。フロー情報テーブル53は、フローを識別可能な情報に対応付けて、そのフローの処理に使用されているアプリケーションプロトコルを記憶する。フローを識別可能な情報として、例えば、データの送信元アドレスと宛先アドレスの組合せが使用されうる。キャッシュ51は、適宜、データの格納に使用される。
図4は、転送装置20のハードウェア構成の例を説明する図である。転送装置20は、プロセッサ101、メモリ102、バス103、外部記憶装置104、ネットワーク接続装置105を備える。転送装置20は、例えば、コンピュータなどで実現されることがある。
プロセッサ101は、Central Processing Unit(CPU)を含む任意の処理回路とすることができる。プロセッサ101は、パケット処理部30として動作する。なお、プロセッサ101は、例えば、外部記憶装置104に記憶されたプログラムを実行することができる。メモリ102、外部記憶装置104は、記憶部50として動作する。さらに、メモリ102は、プロセッサ101の動作により得られたデータや、プロセッサ101の処理に用いられるデータも、適宜、記憶する。ネットワーク接続装置105は、他の装置との通信に使用され、送信部21、受信部22、送受信部23として動作する。
図5は、転送処理が行われるネットワークの例を説明する図である。図5は、WAN5をはさんで、転送装置20aと転送装置20bが通信する場合のネットワークの例を示す。転送装置20aは、通信装置10aや通信装置10cから受信したパケットを、宛先に応じて転送する。転送装置20bは、通信装置10bや通信装置10dから受信したパケットを、宛先に応じて転送する。通信装置10aと通信装置10cは、転送装置20aを介してWAN5にアクセスし、通信装置10bと通信装置10dは、転送装置20bを介してWAN5にアクセスする。ここで、転送装置20aおよび転送装置20bは、WAN高速化装置として動作するものとする。なお、図5はネットワークの例であって、例えば、各転送装置20に接続された通信装置10の数は任意である。図5の例では、通信装置10aはIPAというアドレスを用いて通信している。同様に、通信装置10bはIPB、通信装置10cはIPC、通信装置10dはIPDというアドレスを用いて通信を行っている。
以下、通信装置10aが転送装置20aと転送装置20bを介して、通信装置10bにデータを送信する場合に行われる転送処理を例として、各装置で行われる処理の例を説明する。以下の例では、通信装置10aからの通信装置10bへのデータ送信は、CIFS(Common Internet File System)を用いて行われるものとする。また、通信装置10aは、予め、通信装置10b宛てのパケットを転送装置20aに転送することを記憶しているものとする。また、以下の説明では、いずれの装置による動作であるかを分り易くするために、符号の後に、その転送装置20の符号の末尾のアルファベットを付すことがある。例えば、送受信部23aは、転送装置20aに備えられている送受信部23である。
通信装置10aが通信装置10bにファイルなどの送信データを送信する場合、通信装置10aでの処理により、送信データに、CIFSのアプリケーションヘッダが挿入される。通信装置10aは、アプリケーションヘッダ挿入後の送信データを、データパケットを用いて転送装置20aに送信する。なお、アプリケーションヘッダ挿入後の送信データの送信に使用されるデータパケットの数は任意である。各データパケットのペイロードには、アプリケーションヘッダの一部が含まれていても良く、また、アプリケーションヘッダが一部も含まれていなくても良い。さらに、データパケットのペイロードには、1つ以上のアプリケーションヘッダが含まれていても良い。なお、通信装置10aから通信装置10bに送信されるデータを含むデータパケットの送信元アドレスはIPA、宛先アドレスはIPBに設定されている。
転送装置20aは、通信装置10aから送信された通信装置10b宛のデータパケットを、送受信部23aを介して受信する。送受信部23aは、データパケットを、プロトコル判定部42aに出力する。プロトコル判定部42aは、入力されたデータパケットの送信元と宛先の組み合わせをキーとしてフロー情報テーブル53aを検索する。
図6は、フロー情報テーブル53の例を説明する図である。フロー情報テーブル53の情報は、予め、転送装置20の外部記憶装置104やメモリ102に格納されているものとする。図6の例では、送信元アドレスがIPA(通信装置10a)で、宛先アドレスがIPB(通信装置10b)であるフローは、CIFSを用いた通信を行っている。一方、送信元アドレスがIPC(通信装置10c)で、宛先アドレスがIPD(通信装置10d)であるフローは、HTTP(Hypertext Transfer Protocol)を用いた通信を行っている。
プロトコル判定部42aは、図6に示すフロー情報テーブル53を用いて、送信元アドレスがIPAであり、かつ、宛先アドレスがIPBであるデータパケットは、CIFSで処理されたと判定する。プロトコル判定部42aは、判定結果とともに、データパケット中のペイロードをヘッダ分離部41aに出力する。ヘッダ分離部41aは、ヘッダ情報テーブル54を参照して、パケットを処理する。
図7は、ヘッダ情報テーブル54とアプリケーションヘッダの例を説明する図である。ヘッダ情報テーブル54は、ファイルの送受信に使用される可能性のあるアプリケーションと、各アプリケーションで使用されるアプリケーションヘッダの種別を対応付けている。転送処理にCIFSが使用される場合、アプリケーションヘッダとして、ヘッダH1が使用されることがヘッダ情報テーブル54に記録されている。さらに、ヘッダ情報テーブル54には、アプリケーションヘッダの種別ごとに、アプリケーションヘッダのフォーマットが対応付けられている。例えば、CIFSに対応付けられたヘッダH1のフォーマットの例を、図7のP1に示すパケットフォーマット中に示す。転送処理にCIFSが使用される場合、パケットにはIPヘッダ、アプリケーションヘッダH1、データが含まれる。ヘッダH1には、アプリケーションヘッダの特定に使用される文字列(SMB)、シーケンス番号、データ長が含まれる。ここで、シーケンス番号は、アプリケーションヘッダの後に続くデータが送信対象のデータ中に占める位置を特定するために使用される情報である。データ長は、アプリケーションヘッダの後に続くデータの長さである。ヘッダ分離部41aは、プロトコル判定部42aでの判定結果とヘッダ情報テーブル54を用いて、パケットのペイロード中のアプリケーションヘッダとデータを分離する。
図8は、第1の実施形態にかかる転送処理の例を説明する図である。図8を参照しながら、通信装置10aが通信装置10bに対して、図8のデータd10を送信する場合を例として、処理の具体例を説明する。
ステップS11は、通信装置10aでのデータd10の送信処理の例を示す。図8の例では、通信装置10aは、データd10をデータd1〜d8の8つに分けて通信装置10bに送信する。以下、データd1〜d8とデータd10を区別するために、データd1〜d8を分割データと記載することがある。通信装置10aは、個々の分割データに、アプリケーションヘッダ(h1〜h8)を付す。このため、通信装置10aから送信されるデータには、ステップS11に示すように、アプリケーションヘッダと分割データが交互に含まれる。
ステップS12は、転送装置20中のヘッダ分離部41aの処理の例を示す。ヘッダ分離部41aには、ステップS12の左側に示すように、アプリケーションヘッダとデータが交互に連続したデータとして入力されている。また、ヘッダ分離部41aは、図6などを参照しながら説明した手順により、通信装置10b宛てのパケットのペイロード中の情報を取得している。
まず、ヘッダ分離部41aは、各アプリケーションヘッダの先頭位置を特定する。通信装置10aはCIFSを用いており、図7に示すとおり、CIFSで使用されるアプリケーションヘッダの先頭には、特定の文字列(SBM)が含まれる。そこで、ヘッダ分離部41aは、特定の文字列を用いてアプリケーションヘッダの先頭を特定する。ヘッダ分離部41aは、アプリケーションヘッダh1の先頭から末尾までを読み込み、アプリケーションヘッダh1を置換処理部31aに出力する。その後、アプリケーションヘッダh1の後に含まれる分割データd1を、アプリケーションヘッダh1、および、アプリケーションヘッダh2とは分けて、置換処理部31aに出力する。このとき、ヘッダ分離部41aは、図7で説明したデータ長を用いて、分割データd1の末尾を特定しても良い。同様の分離処理をアプリケーションヘッダh2〜h8と、分割データd2〜d8にも行う。この結果、ヘッダ分離部41aは、ステップS12の右側に示すように、アプリケーションヘッダと分割データを分離されたデータとして置換処理部31aに出力している。なお、アプリケーションヘッダと分割データの間の分離は、置換処理部31aにおいて、アプリケーションヘッダと分割データとが、別個のデータであると認識できる任意の形式で、置換処理部31aに入力されることにより行われる。
ステップS13は、置換処理部31aでの重複除去処理の例を示す。ステップS13の右側は、置換処理部31aにアプリケーションヘッダh1〜h8と分割データd1〜d8が分離されたデータとして入力される様子を示している。図8の例では、転送装置20aが過去に、分割データd1〜d8の各々と同じデータを転送装置20bに送信しているものとする。一方、アプリケーションヘッダは、個々に異なる情報が含まれているので、転送装置20aは、アプリケーションヘッダh1〜h8については、これまでに転送装置20bに送信していない。換言すると、送信データテーブル52aには、以下の情報が含まれているとする。
分割データd1に対応付けられた識別子:id1
分割データd2に対応付けられた識別子:id2
分割データd3に対応付けられた識別子:id3
分割データd4に対応付けられた識別子:id4
分割データd5に対応付けられた識別子:id5
分割データd6に対応付けられた識別子:id6
分割データd7に対応付けられた識別子:id7
分割データd8に対応付けられた識別子:id8
なお、以下の説明では、転送装置20b中の受信データテーブル55bにも、分割データd1〜d8に対応付けて、分割データd1〜d8の識別子が記憶されているとする。
置換処理部31aは、送信データテーブル52aに記録されていないアプリケーションヘッダh1〜h8については重複除去を行わず、アプリケーションヘッダh1〜h8を転送装置20bに送信する。一方、分割データd1〜d8については、置換処理部31aは、分割データd1〜d8の代わりに各分割データの識別子を、転送装置20bへの送信対象に設定する。このため、ステップS13の左側に示すように、置換処理部31aが転送装置20bへの送信対象に設定するデータは、アプリケーションヘッダh1〜h8自体と、分割データd1〜d8の識別子(id1〜id8)である。置換処理部31aは、送信対象に設定したデータを、送信部21aを介して、転送装置20bに送信する。
転送装置20bの受信部22bは、転送装置20aから受信したデータを、復元処理部32bに出力する。復元処理部32bは、受信データテーブル55bを用いて、復元処理を行う。前述のとおり、受信データテーブル55bには、分割データd1〜d8の識別子に分割データd1〜d8が対応付けられているので、転送装置20bは、転送装置20aから受信した識別子から、分割データd1〜d8を復元できる。このため、転送装置20bは、アプリケーションヘッダh1〜h8と分割データd1〜d8が、アプリケーションヘッダと分割データが交互になるように配置されたデータを復元できる。すなわち、転送装置20bの復元処理部32bの復元処理により、図8のステップS12の右側に示すデータを復元できる。復元処理部32bは、復元したデータを、送受信部23を介して、通信装置10bに送信する。このため、通信装置10bは、データd10を受信することができる。
図9は、第1の実施形態にかかる転送装置20で行われる処理の例を説明するフローチャートである。なお、図9は、1つのアプリケーションヘッダとそのアプリケーションヘッダに対応付けられたデータが複数のパケットで送信される場合に行われる処理を示しているが、1つのパケットに複数のアプリケーションヘッダが含まれてもよい。
転送装置20のヘッダ分離部41は、受信パケット中のペイロードを取得する(ステップS21)。ヘッダ分離部41は、ペイロードに含まれているアプリケーションヘッダを、そのアプリケーションヘッダの最後まで読み込んでいるかを判定する(ステップS22)。ペイロードの末尾がアプリケーションヘッダの途中である場合、ヘッダ分離部41は、次の受信パケットのペイロードも読み込む(ステップS22でNo)。ヘッダ分離部41は、アプリケーションヘッダを読み込むと、フロー情報テーブル53を用いて、アプリケーションヘッダのサイズと、アプリケーションヘッダ間のデータ長(X)を取得する(ステップS22でYes、ステップS23)。ヘッダ分離部41は、読み込んだデータの先頭からアプリケーションヘッダの長さ分の位置から、データを読み込んでいると判定する。ヘッダ分離部41は、読み込んでいるデータの長さが、アプリケーションヘッダ間のデータ長(X)以上であるかを判定する(ステップS24)。読み込んでいるデータの長さが、アプリケーションヘッダ間のデータ長(X)に満たない場合、ヘッダ分離部41は、所定の長さの後続データを取得する(ステップS24でNo、ステップS25)。ここで、所定の長さは、アプリケーションヘッダ間のデータ長(X)から読み込んでいるデータの長さを差し引いて得られるデータ長である。一方、読み込んでいるデータの長さが、アプリケーションヘッダ間のデータ長(X)以上である場合、ヘッダ分離部41は、アプリケーションヘッダを置換処理部31に出力する(ステップS24でYes)。置換処理部31は、アプリケーションヘッダに対する重複処理を行って、転送先に転送する(ステップS26)。次に、ヘッダ分離部41は、読み込んだデータを置換処理部31に出力する。置換処理部31は、入力されたデータに対する重複除去を行って、転送先に転送する(ステップS27)。なお、図9のフローチャートは、1組のアプリケーションヘッダとそのアプリケーションヘッダに続くデータの処理の例を説明しており、データの末尾に至るまで、図9で示す処理が繰り返される。
以上説明したように、第1の実施形態にかかる転送装置20は、データパケットのペイロード中のデータからアプリケーションヘッダを除いたデータと、アプリケーションヘッダを分けて重複除去を行う。従って、転送装置20では、送信データ中にアプリケーションヘッダが挿入されても、アプリケーションヘッダ中の情報の差による重複除去の効率の低下を防ぐことができる。
<第2の実施形態>
第2の実施形態では、重複除去をさらに効率化するために、転送装置間でアプリケーションヘッダが送受信されない場合の例を説明する。
図10は、第2の実施形態にかかる転送装置60の構成の例を説明する図である。転送装置60は、送信部21、受信部22、送受信部23、パケット処理部61、記憶部50を備える。パケット処理部61は、置換処理部31、復元処理部32、制御部62を有する。制御部62は、プロトコル判定部42、ヘッダ分離部63、ヘッダ生成部64を有する。また、記憶部50は、キャッシュ51、送信データテーブル52、ヘッダ情報テーブル54、受信データテーブル55、フロー情報テーブル65を記憶する。
ヘッダ分離部63は、データの送信側の転送装置60で動作する。ヘッダ分離部63は、送受信部23を介して受信パケットを取得し、受信パケット中のペイロードに含まれているアプリケーションヘッダとデータを分離する。アプリケーションヘッダとデータを分離する手順は第1の実施形態と同様である。その後、ヘッダ分離部63は、アプリケーションヘッダを廃棄し、データ部分を連続的に置換処理部31に出力する。この処理により、置換処理部31には、分割されたデータを結合した結合データが入力されることになる。ここで、結合データは、アプリケーションヘッダが挿入される前のデータと等価のデータである。すなわち、ヘッダ分離部63は、受信パケットのペイロードから、アプリケーションヘッダを削除することにより、送信元の通信装置10で送信対象とされているデータを一時的に復元する。結合データの生成例は図12を参照しながら説明する。
ヘッダ生成部64は、データの受信側の転送装置60で動作する。ヘッダ生成部64は、復元処理部32によって復元されたデータにアプリケーションヘッダが含まれていない場合、アプリケーションヘッダの代替となる情報(代替情報)を生成する。ヘッダ生成部64は、復元されたデータに代替情報を挿入し、代替情報の挿入後のデータを、宛先の通信装置10に転送する。なお、代替情報は、データの宛先の通信装置10において、アプリケーションヘッダの代替として使用される。
送信部21、受信部22、送受信部23、置換処理部31、復元処理部32、プロトコル判定部42で行われる処理は、第2の実施形態でも第1の実施形態と同様である。第2の実施形態において、キャッシュ51、送信データテーブル52、ヘッダ情報テーブル54、受信データテーブル55として記憶部50に記憶される情報も、第1の実施形態と同様である。
第2の実施形態にかかる転送装置60のハードウェア構成も図4に示すとおりである。パケット処理部61はプロセッサ101によって実現され、記憶部50は、メモリ102と外部記憶装置104によって実現される。また、送信部21、受信部22、送受信部23はネットワーク接続装置105によって実現される。
図11は、第2の実施形態が適用されるネットワークの例とフロー情報テーブル65の例を説明する図である。フロー情報テーブル65には、フローの送信元と宛先の組み合わせに対応付けて、そのフローでの通信に使用されるアプリケーション種別と、アプリケーションヘッダ間のデータの長さが格納される。ここで、アプリケーションヘッダ間のデータの長さは、転送装置60と、その転送装置60からデータを受信する通信装置10との間で決定される値である。転送装置60のヘッダ生成部64は、アプリケーションヘッダ間のデータの長さごとに代替情報を挿入してから、通信装置10にデータを転送する。例えば、図11の例では、送信元アドレスがIPA(通信装置10a)で、宛先アドレスがIPB(通信装置10b)であるフローは、CIFSを用いた通信を行っており、転送装置60が通信装置10b宛てのデータに挿入する代替情報間の間隔はY1である。また、通信装置10b宛てのデータに挿入される代替情報は、CIFSのアプリケーションヘッダの代替えとなる情報である。一方、送信元アドレスがIPC(通信装置10c)で、宛先アドレスがIPD(通信装置10d)であるフローは、HTTPを用いた通信を行っており、転送装置60が通信装置10d宛てのデータに挿入する代替情報間の間隔はY2である。なお、通信装置10d宛てのデータに挿入される代替情報は、HTTPヘッダの代替えとなる情報である。
以下、図11のN1に示すように、通信装置10aが通信装置10bにデータを転送する際に、転送装置60aと転送装置60bがデータ転送を中継する場合を例として説明する。
図12は、第2の実施形態にかかる転送処理の例を説明する図である。ステップS31は、通信装置10aでのデータd10の送信処理の例であり、図8のステップS11を参照しながら説明した処理と同様である。図12では、アプリケーションヘッダを、斜線の入った長方形で示す。
ステップS32は、転送装置60a中のヘッダ分離部63aの処理の例を示す。ヘッダ分離部63aは、送受信部23aを介して、通信装置10b宛てのパケットのペイロードを取得する。このため、ヘッダ分離部63aには、ステップS32の左側に示すように、アプリケーションヘッダとデータが交互に連続したデータが入力される。
ヘッダ分離部63aは、適宜、ヘッダ情報テーブル54aの情報を用いて、各アプリケーションヘッダを特定する。アプリケーションヘッダの特定方法は第1の実施形態でのヘッダ分離部41での処理と同様である。ヘッダ分離部63aは、アプリケーションヘッダh1の先頭から末尾までを特定し、アプリケーションヘッダh1を廃棄する。その後、アプリケーションヘッダh1の後に含まれる分割データd1を読み込む。さらに、ヘッダ分離部63aは、分割データd1の後に含まれているアプリケーションヘッダh2を特定し、アプリケーションヘッダh2を削除する。このように、ヘッダ分離部63aは、ペイロード中のアプリケーションヘッダを削除し、分割データを順に読み込む。アプリケーションヘッダh1〜h8の全てを削除し、分割データd1〜d8を連続的に読み込むことにより、ヘッダ分離部63aは、ステップS32の右側に示すように、データd10を一時的に復元する。ヘッダ分離部63aは、復元したデータd10を、置換処理部31aに出力する。
ステップS33は、置換処理部31aでの重複除去処理の例を示す。ステップS33の右側は、置換処理部31aにデータd10が入力されたときの様子を示している。図12の例では、データd10は、データd11とデータd12の組み合わせである場合を示している。なお、データd11とデータd12のいずれも、分割データd1〜d8とは一致しておらず、転送装置60aは、データd11とデータd12のいずれも、今までに転送装置60bに宛てて送信していないとする。置換処理部31aは、受信部22aを介して、データd10の先頭のデータd11を、識別子id11に対応付けて、転送装置60bに転送する。データd11の後に続くデータd12も、識別子id12に対応付けて転送装置60bに転送される。さらに、置換処理部31aは、送信データテーブル52aに以下の情報を追加する。
データd11に対応付けられた識別子:id11
データd12に対応付けられた識別子:id12
なお、転送装置60bが備える受信データテーブル55bも、データの受信に伴い、データd11、d12に対応付けて、各データの識別子が記憶される。
次に、置換処理部31aは、転送対象のデータ中に2回目に含まれているデータd12を、送信データテーブル52aに基づいて、識別子id12に置き換えて転送装置60bに転送する。同様に、置換処理部31aは、データd11を識別子id11に置き換えたデータを転送装置60bに転送する。なお、図12では、データの対応関係を見やすくするために、データd11に対応する情報にA、データd12に対応する情報にBと表示している。
ステップS34は、転送装置60bの復元処理部32bにおける復元処理の例を示している。復元処理部32bは、受信部22bを介して、転送装置60aから転送されてきたパケットを取得するので、ステップS34の左側に示すように、データd11、データd12、識別子id11、識別子id12を取得する。復元処理部32bは、受信データテーブル55bを用いて、識別子id11からデータd11を復元し、識別子id12からデータd12を復元する。ステップS34中の右側に、復元によって得られたデータの例を図示する。このため、復元処理部32bは、データd11、データd12、データd12、データd11の順に連続したデータ(データd10)が通信装置10b宛てのデータであると認識する。復元処理部32bは、復元後のデータをヘッダ生成部64bに出力する。なお、復元処理部32bは、データの送信元と宛先の情報も、データと合わせてヘッダ生成部64bに通知する。
ステップS35は、ヘッダ生成部64bにおける処理の例を示している。ヘッダ生成部64bは、復元処理部32bから入力されたデータにアプリケーションヘッダが含まれているかを判定する。図12の例では、データd10にはアプリケーションヘッダが含まれていない。そこで、ヘッダ生成部64bは、データの宛先の通信装置10bでのデータd10の受信処理に使用可能な代替情報を生成するための処理を行う。まず、ヘッダ生成部64bは、復元処理部32bから入力されたデータの送信元アドレス(IPA)と宛先アドレス(IPB)の組み合わせをキーとしてフロー情報テーブル65を参照して、フローで使用されるアプリケーションの種類を特定する。
さらに、送信元アドレス(IPA)と宛先アドレス(IPB)の組み合わせに対応づけられた代替情報間の間隔もフロー情報テーブル65bから特定できるかを判定する。ヘッダ生成部64bは、フロー情報テーブル65bから代替情報間の間隔が特定できれば特定した間隔を使用する。一方、フロー情報テーブル65bに、処理対象のフローでの代替情報間の間隔が含まれていない場合、ヘッダ生成部64bは、フローの宛先となる通信装置10bとの間でネゴシエーション処理を行い、アプリケーションヘッダ間に含めるデータの長さを決定する。なお、通信装置10bと転送装置60bの間でのネゴシエーションで決定されるアプリケーションヘッダの間隔は、転送装置60bがアプリケーションヘッダの代用として生成する代替情報の間隔である。ヘッダ生成部64bは、代替情報の間に含めるデータの長さをフロー情報テーブル65bに記録する。以下の説明では、転送装置60bが通信装置10bに転送するデータに対して、代替情報をY1ごとに挿入することが決定されたとする。
通信装置10bが使用するアプリケーションヘッダの種類と、アプリケーションヘッダ間に含めるデータの長さが特定できると、ヘッダ生成部64は、アプリケーションヘッダの代替えとなる代替情報を生成する。代替情報は、アプリケーションヘッダと同じフォーマットで生成される。なお、ヘッダ生成部64bは、アプリケーションヘッダを生成する際に、適宜、ヘッダ情報テーブル54bを使用する。ヘッダ生成部64bは、データd10の前に最初の代替情報を含め、データd10の先頭からY1の位置に2つ目の代替情報を含める。同様に、ヘッダ生成部64bは、データd10をY1毎に区切って、代替情報を含める。このため、ステップS35の左側に示すように、代替情報の間隔ごとに区切られたデータが生成される。ステップS35に示す例では、データd10は分割データd21〜d28に区切られ、各分割データの前に代替情報が含められている。代替情報を、縦線の入った長方形で示す。なお、分割データd21〜d28の長さは転送装置60bと通信装置10bとの間の通信の整合が取れるデータ長であるが、通信装置10aも含めて決められたデータ長ではない。このため、分割データd21〜d28は分割データd1〜d8と一致しなくてもよく、また、分割データd21〜d28は分割データd1〜d8と一致してもよい。ヘッダ生成部64bは、処理後のデータを送受信部23bに出力する。
送受信部23bは、ヘッダ生成部64bから入力されたデータを通信装置10bに送信する。このため、通信装置10bには、ステップS36に示す情報が到達する。通信装置10bは、データ転送に使用しているアプリケーションと代替情報を用いて、分割データd21〜d28と各分割データに付されている代替情報を処理することにより、データd10を取得する。
以上説明したように、第2の実施形態では、転送装置60は、一時的に送信元の通信装置10aが宛先の通信装置10bへの送信対象としているデータd10を再現している。このため、送信側の通信装置10aでの分割データの生成方法によって重複除去の効率が低下することも防ぐことができる。例えば、転送装置60aはデータd11とデータd12を転送装置60bに送信したことがあるが、分割データd1〜d8を転送装置60bに転送したことがないとする。この場合、第1の実施形態のように、分割データd1〜d8のままで重複除去を行うと、転送装置60aは転送装置60bに分割データd1〜d8を送信することになる。しかし、第2の実施形態では、送信対象のデータd10を分割データd1〜d8に基づいて復元してから重複除去を行うことにより、送信対象のデータd10には、送信済みのデータd11とデータd12が含まれていることを特定できる。従って、転送装置60は、通信装置10で生成される分割データの大きさの変更などによる重複除去の非効率化を防ぐことができる。
なお、図12に示した処理は一例であり、例えば、転送装置60bと通信装置10bとの間の転送処理の際に使用される代替情報の数などは実装に応じて任意に変更されうる。例えば、転送装置60bと通信装置10bの間でのネゴシエーションにより、1つのアプリケーションヘッダ(代替情報)の後に続けることができるデータ長がデータd10と同じ長さに設定されてもよい。この場合、転送装置60bは、データd10に1つの代替情報を付し、データd10を分割せずに通信装置10bに送信することができる。
図13は、データの送信側の転送装置60で行われる処理の例を説明するフローチャートである。ステップS41〜S45で行われる処理は、図9のステップS21〜S25での処理と同様である。ただし、ステップS42〜S45の処理はヘッダ分離部63によって行われる。ヘッダ分離部63は、アプリケーションヘッダを除去して、読み込んだデータをキャッシュ51に保存する(ステップS46)。ヘッダ分離部63は、キャッシュ51に保存しているデータ量が予め設定された所定値を超えているかを判定する(ステップS47)。保存しているデータ量が所定値を超えていない場合、ヘッダ分離部63は、ステップS41以降の処理を繰り返す(ステップS47でNo)。保存しているデータ量が所定値を超えると、ヘッダ分離部63は、読み込んだデータに対する重複除去を行って転送する(ステップS48)。なお、ステップS47で使用される所定値は、規定値であってもよく、また、フローごとに転送されるファイルの大きさなどに基づいて決定される値であってもよい。所定値がフローごとに転送されるファイルの大きさなどに基づいて決定される場合、転送装置60は、予め、送信されるファイルサイズの大きさを特定し、特定した値に基づいて、所定値を設定する。なお、ファイルサイズの大きさの特定方法の例については、図16を参照しながら説明する。
図14は、データの受信側の転送装置60で行われる処理の例を説明するフローチャートである。なお、図14は処理の一例であり、例えば、ステップS51とS52の順序が互いに変更されるなどの変形が行われても良い。
ヘッダ生成部64は、受信側の通信装置10との間で、アプリケーションヘッダ間に含めるデータ長(Y)を決定する(ステップS51)。復元処理部32は、送信側の転送装置60から受信した転送パケットのペイロードと、受信データテーブル55中のデータを用いて、復元データを生成する(ステップS52)。ヘッダ分離部63は、復元データの転送に使用するアプリケーションの種類と、アプリケーションヘッダ間のデータ長を特定する(ステップS53)。ヘッダ分離部63は、復元データのうち、転送用のデータパケットの生成に使用されていない部分の先頭からデータ長(Y)分のデータを切り取る(ステップS54)。ヘッダ分離部63は、切り取ったデータに、特定したアプリケーションのアプリケーションヘッダの代替えとなる代替情報を付加して、データパケットを生成する(ステップS55)。送受信部23は、データパケットを受信側の通信装置10に転送する(ステップS56)。ヘッダ分離部63は、復元データの転送が終了したかを判定する(ステップS57)。復元データの転送が終了していない場合、ヘッダ分離部63は、ステップS54以降の処理を繰り返す。
第2の実施形態にかかる転送装置60は、データパケットのペイロード中のデータから、アプリケーションヘッダを除去することにより、送信元の通信装置10が宛先の通信装置10に送信しようとしているデータを一時的に復元している。このため、第2の実施形態では、送信元の通信装置10でのアプリケーションヘッダの挿入のために生成された分割データよりも大きなデータサイズで重複除去処理を行うことができる。換言すると、第2の実施形態では、アプリケーションヘッダや送信元での分割データの切り分け方による重複除去の効率の低下を防ぐことができる。さらに、第2の実施形態では、転送装置60間ではアプリケーションヘッダが送受信されないので、第1の実施形態に比べて、転送装置60間で送受信されるデータの量を削減できるという利点もある。
<第3の実施形態>
通信装置10が使用するアプリケーションによっては、通信装置10から送信されるパケット中では、転送される分割データの順序が元のデータとは変更される場合もありうる。この場合、アプリケーションヘッダには、そのアプリケーションヘッダが付加された分割データについての元のデータ中での位置を示す情報が含まれている。図7で述べたシーケンス番号は、分割データの位置を示す情報の例である。受信側の通信装置10では、アプリケーションヘッダ中の情報に応じてデータの位置を特定することができるので、データの順序が変更されても元のデータを受信することができるが、データの順序が変更されると、転送装置での重複除去の効率が低下することもある。そこで、第3の実施形態では、転送装置において、アプリケーションによる順序の変更が行われた場合に、アプリケーションヘッダの除去とともにデータの順序の変更を行うことにより、送信対象のデータを復元する場合について説明する。
図15は、第3の実施形態にかかる転送装置70の構成の例を説明する図である。転送装置70は、送信部21、受信部22、送受信部23、パケット処理部71、記憶部50を備える。パケット処理部71は、置換処理部31、復元処理部32、制御部72を有する。制御部72は、プロトコル判定部42、順序変更部73、ヘッダ生成部64を有する。また、記憶部50は、キャッシュ51、送信データテーブル52、ヘッダ情報テーブル54、受信データテーブル55、フロー情報テーブル74を記憶する。
順序変更部73は、データの送信側の転送装置70で動作する。順序変更部73は、送受信部23を介して受信パケットを取得し、受信パケット中のペイロードに含まれているアプリケーションヘッダとデータを分離する。アプリケーションヘッダとデータを分離する手順は第1の実施形態と同様である。その後、順序変更部73は、データ部分をアプリケーションヘッダで指定された順序に結合し、アプリケーションヘッダを廃棄する。順序変更部73は、得られた結合データを置換処理部31に出力する。ここで、結合データは、アプリケーションヘッダの挿入と、分割データの順序の変更が行われる前の送信対象のデータと等価のデータである。すなわち、順序変更部73は、受信パケットのペイロードから抽出した分割データを、アプリケーションヘッダで指定された順序に並べ替えることにより、送信元の通信装置10で送信対象とされているデータを一時的に復元する。結合データの生成例は図17を参照しながら説明する。
送信部21、受信部22、送受信部23、置換処理部31、復元処理部32、プロトコル判定部42で行われる処理は、第3の実施形態でも第1の実施形態と同様である。また、ヘッダ生成部64で行われる処理は、第3の実施形態でも第2の実施形態と同様である。第3の実施形態において、キャッシュ51、送信データテーブル52、ヘッダ情報テーブル54、受信データテーブル55として記憶部50に記憶される情報も、第1の実施形態と同様である。
第3の実施形態にかかる転送装置70のハードウェア構成も図4に示すとおりである。パケット処理部71はプロセッサ101によって実現され、記憶部50は、メモリ102と外部記憶装置104によって実現される。また、送信部21、受信部22、送受信部23はネットワーク接続装置105によって実現される。
図16は、第3の実施形態が適用されるネットワークの例と、フロー情報テーブル74の例を説明する図である。以下、図16のネットワークN2に示すように、通信装置10aが通信装置10bにデータを転送する際に、転送装置70aと転送装置70bがデータ転送を中継するものとする。データの送信側の通信装置10aとデータの宛先となる通信装置10bの間でファイル転送を開始する際に、データを送受信の条件を決定するためのネゴシエーションが行われる。ここで、転送装置70aと転送装置70bは、通信装置10aと通信装置10bの間でのネゴシエーションに使用される制御パケットも中継するので、ネゴシエーションに使用される制御パケットを受信する。このとき、各転送装置70の送受信部23や受信部22は、ネゴシエーションに使用される制御情報を受信すると、受信した制御パケットをプロトコル判定部42に出力する。プロトコル判定部42は、入力された制御パケットから、適宜、送受信されるファイルのサイズ、アプリケーションヘッダ間に含めるデータ長などの情報を取得する。例えば、送受信されるファイルのサイズなどの情報の取得の際に、SBM2 QUERY_INFO Request等のパケットが使用され得る。SBM2 QUERY_INFO Requestが使用される場合、パケットの送受信に関するコマンドの情報からこれらの情報が取得される。なお、ファイルサイズなどの情報の取得方法や、ファイルサイズなどの情報の取得に使用される制御パケットの種類は実装に応じて任意に変更され得る。
プロトコル判定部42は、送受信されるファイルのサイズと、アプリケーションヘッダ間に含めるデータ長を用いて、送受信されるデータのシーケンス数の最大値を求め、得られたシーケンス数の最大値をフロー情報テーブル74に記録する。例えば、プロトコル判定部42は、以下の式から、最大シーケンス番号を求める。
SNmax=ceil(FS/L)+SNmin
ここで、SNmaxはシーケンス数の最大値、FSは送信対象のファイルサイズ、Lはアプリケーションヘッダ間に含められるデータ長、ceil()は天井関数、SNminはシーケンス数の最小値である。
図17は、第3の実施形態にかかる転送処理の例を説明する図である。ステップS61は、通信装置10aでのデータd10の送信処理の例である。図17の例では、通信装置10aは、データd10を分割データd1〜d8の8つに分けて通信装置10bに送信する。ここで、データd10の先頭に近いほど、分割データの記号中の数字が小さいものとする。すなわち、分割データd1は、データd10の先頭を含み、分割データd8はデータd10の末尾を含むものとする。各アプリケーションヘッダには、そのアプリケーションヘッダの符号の数字部分と同じ値がシーケンス番号として含まれているとする。例えば、シーケンス番号=8を表すアプリケーションヘッダh8に、分割データd8が対応付けられている。また、分割データd7はシーケンス番号=7、分割データd6はシーケンス番号=6、分割データd5はシーケンス番号=5、分割データd4はシーケンス番号=4、分割データd3はシーケンス番号=3、分割データd2はシーケンス番号=2に対応付けられる。同様に、シーケンス番号=1を表すアプリケーションヘッダh1に、分割データd1が対応付けられている。通信装置10aは、分割データを、対応するアプリケーションヘッダとともに、分割データd8、d7、d6、d5、d4、d3、d2、d1の順に通信装置10bに向けて送信したとする。
ステップS62は、転送装置70a中の順序変更部73aの処理の例を示す。順序変更部73aは、送受信部23aを介して、通信装置10b宛てのパケットのペイロードを取得する。このため、順序変更部73aには、ステップS62の左側に示すように、アプリケーションヘッダと分割データが交互に連続したデータが入力される。また、分割データd8、d7、d6、d5、d4、d3、d2、d1の順に、転送装置70aに送信されてきている。
順序変更部73aは、適宜、ヘッダ情報テーブル54aの情報を用いて、各アプリケーションヘッダを特定する。アプリケーションヘッダの特定方法は第1の実施形態でのヘッダ分離部41aでの処理と同様である。順序変更部73aは、各アプリケーションヘッダh8を読み込んで、シーケンス番号を抽出する。例えば、順序変更部73aは、アプリケーションヘッダh8を読み込んで、アプリケーションヘッダh8に含まれているシーケンス番号を抽出する。ここでは、アプリケーションヘッダh8中のシーケンス番号は8である。順序変更部73aは、フロー情報テーブル74aを参照することにより、最終シーケンス番号(SNmax)のデータを受信したと判定する。そこで、最少シーケンス番号(SNmin)に対応付けられた分割データから、最終シーケンス番号に対応付けられた分割データまでの各分割データを受信するまで待ち合わせる。ステップS62の例では、最少シーケンス番号に対応付けられた分割データから最終シーケンス番号に対応付けられた分割データまでの全てを受信している。そこで、順序変更部73aは、各分割データを、その分割データに対応付けられたシーケンス番号の順序に入れ替えるとともに、アプリケーションヘッダを削除する。このため、ステップS62の中央に示すように、分割データが分割データd1、d2、d3、d4、d5、d6、d7、d8の順に並べ替えられる。順序変更部73aは、並べ替えた分割データを、元のデータの順番に結合する。このため、順序変更部73aは、ステップS62の右側に示すように、送信元の通信装置10aが通信装置10bに送信する対象のデータ(データd10)を復元する。順序変更部73aは、復元したデータd10を、置換処理部31aに出力する。
ステップS63は、復元処理部32aで行われる重複除去の例と、転送装置70bへの転送処理の例を示す。ステップS63の処理は、図12のステップS33を参照しながら説明した処理と同様である。受信側の転送装置70bで行われる処理は第2の実施形態と同様である。このため、図12のステップS34〜S36を参照しながら説明した処理により、通信装置10bはデータd10を取得する。
なお、図17を参照しながら説明した処理は一例であり、実装に応じて送信側の転送装置70で行われる処理は変更され得る。例えば、順序変更部73は、分割データd1〜d8をシーケンス番号どおりに結合したデータd10を復元せず、個々の分割データをシーケンス番号順に置換処理部31に出力しても良い。この場合、置換処理部31に個々の分割データがシーケンス番号順に入力されることにより、置換処理部31において、送信対象とされているデータd10が再現される。個々の分割データがシーケンス番号順に置換処理部31に出力される場合の処理の例を、図18を参照しながら説明する。
図18は、第3の実施形態にかかる転送装置70で行われる処理の例を説明するフローチャートである。図18は、送信側の転送装置70の処理の例を表わすフローチャートである。図18において、変数mは処理を行ったアプリケーションヘッダの数の計数に使用される。一方、定数Mは、処理対象のフローにおいて、送信元の通信装置10から送信されるデータに付されるシーケンス番号の最大値である。なお、図18は処理の一例を示しており、例えば、ステップS71とS72の順序は互いに変更され得る。
順序変更部73は、変数mを1に設定する(ステップS71)。プロトコル判定部42は、処理対象のフローの送信元の通信装置10と宛先の通信装置10との間で行われるネゴシエーションに使用される制御コマンドを読み込み、送信対象のシーケンス番号の最大値(M)と最小値を取得する(ステップS72、S73)。順序変更部73は、m番目のアプリケーションヘッダと、m番目のアプリケーションヘッダを用いて送信されるデータを読み込む(ステップS74)。順序変更部73は、m番目のアプリケーションヘッダ中のシーケンス番号を取得する(ステップS75)。順序変更部73は、m番目のアプリケーションヘッダを用いて送信されるデータを、取得したシーケンス番号に対応付けて、キャッシュ51に保存する(ステップS76)。順序変更部73は、変数mを1つインクリメントする(ステップS77)。順序変更部73は、変数mが送信対象のシーケンス番号の最大値Mを超えたかを判定する(ステップS78)。変数mが送信対象のシーケンス番号の最大値M以下の値である場合、順序変更部73は、ステップS74以降の処理を繰り返す(ステップS78でNo)。一方、変数mが送信対象のシーケンス番号の最大値Mを超えると、順序変更部73は、キャッシュ51に保存しているデータをシーケンス番号順に置換処理部31に出力する(ステップS78でYes、ステップS79)。置換処理部31は重複除去を行い、重複除去後のデータを転送するための転送パケットを生成する(ステップS80)。置換処理部31は、送信部21を介して、受信側の転送装置70に、転送パケットを転送する(ステップS81)。
図19は、転送処理で実際に転送されるデータ量のシミュレーション結果を説明する図である。図19は、通信装置10aが通信装置10bに、2台の重複除去装置を介してファイルを再送する場合に、重複除去装置の間で転送されるデータ量を示している。通信装置10aが通信装置10bに再送しようとするファイル(再送ファイル)の大きさが10メガバイトであるとする。なお、再送ファイルは、通信装置10aが既に、重複除去装置を介して、通信装置10bに送信したことのあるファイルであり、かつ、通信装置10aから通信装置10bに再送信されるファイルである。
通信装置10aが再送ファイルを通信装置10bに再送する際に、重複除去が完全に行われたとすると、図19の理論値に示すように、重複除去装置の間では、400キロバイトのデータが送受信される。一方、CIFSを用いて再送ファイルが通信装置10aから通信装置10bに再送される際に、アプリケーションヘッダとデータ部分を区別せずに重複除去を行った場合には、850キロバイトのデータが重複除去装置間で送受信されることになる。すなわち、CIFSを用いて再送されたファイルの情報とCIFSのアプリケーションヘッダを区別せずに重複除去を行った結果、重複除去の効率が低下し、理論値の2.1倍以上のデータが重複除去装置間で送受信されることになる。
一方、通信装置10aと通信装置10bの間の通信を、転送装置70aと転送装置70bが中継する場合に転送装置70aと転送装置70bの間で送受信されるデータ量は、図19の右端に示すように423キロバイトである。従って、転送装置70間で送受信されるデータ量は、理論値とほぼ等しい。また、転送装置70間で送受信されるデータの量は、アプリケーションヘッダの存在やデータの順序入れ替えを考慮していない場合の重複処理に比べて、半分以下に削減されている。
このように、第3の実施形態では、アプリケーションヘッダと送信対象のデータを分けたうえに、アプリケーションによるデータの順序の変更を修正して、一時的に送信対象のデータを再現することにより、重複除去の効率の低下を効果的に防止できる。
さらに、第3の実施形態によると一時的に通信装置10aからの送信パケット間にギャップが発生しても、重複除去の効率が低下しないという効果もある。例えば、図17に示す処理において、送信側の通信装置10aでの処理や通信装置10aと送信側の転送装置70aとの間の経路の通信状況などによって、分割データd8〜d6までが転送装置70a送信された後、通信装置10aからのデータの送信が中断されたとする。この場合、転送装置70a中の順序変更部73aは、通信装置10aから送信される分割データのシーケンス番号の範囲を認識しているので、全てのデータが転送装置70aに到達していないと判定して、他の分割データの到着を待ち合わせることができる。
ここで、分割データd8〜d6を用いても、転送済みのデータd12が送信データに含まれていることが分からないとする。順序変更部73aを含まない装置では、他の分割データが到着するかを予測しないので、到着しているデータについての重複除去を行う。このため、一部のデータが未着のためにデータd12が送信対象に含まれていることが認識されず、データd12の一部のデータをデータのまま転送することになり、重複除去の効率が低下する。
一方、転送装置70では、順序変更部73は、通信装置10aから送信されてくるデータに付されているシーケンス番号を用いて、未着分の分割データを待ち合わせることにより、データd11とデータd12が送信データに含まれることを特定し、データd11とd12をいずれも識別子に変換して転送を行うことができる。従って、転送装置70では、データの転送中にギャップが含まれていても、そのギャップに起因した重複除去の効率低下を防止することができる。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
以上の説明では、CIFSによる転送処理が行われる場合を具体例に用いて詳しく説明したが、各実施形態にかかる方法は、転送に使用されるアプリケーションがCIFS以外の任意のプロトコルやアプリケーションであっても良い。例えば、HTTP、FTP(File Transfer Protocol)を含む任意のプロトコルを用いた転送処理にも、各実施形態にかかる転送処理が適用されうる。
以上の説明で用いたテーブル中の情報要素やパケットのフォーマットなどは一例であり、実装に応じて任意に変更され得る。また、アプリケーションヘッダ中のシーケンス番号やデータ長などの情報は、専用のフィールドに格納されても良く、また、アプリケーションヘッダ中のコマンドなどの情報の一部として格納されていても良い。
以上の説明では、転送装置20、60、70の動作に使用されるプログラムは外部記憶装置104に記憶されている場合を例として説明したが、プログラムは、任意の、記憶媒体に記録されうる。転送装置20、60、70がコンピュータとして実現される場合、コンピュータは、記憶媒体に記録されたプログラムを読み込むことにより、転送装置として動作する。
5 WAN
10 通信装置
20、60、70 転送装置
21 送信部
22 受信部
23 送受信部
30、61、71 パケット処理部
31 置換処理部
32 復元処理部
40、62、72 制御部
41、63 ヘッダ分離部
42 プロトコル判定部
50 記憶部
51 キャッシュ
52 送信データテーブル
53、65、74 フロー情報テーブル
54 ヘッダ情報テーブル
55 受信データテーブル
64 ヘッダ生成部
73 順序変更部
101 プロセッサ
102 メモリ
103 バス
104 外部記憶装置
105 ネットワーク接続装置

Claims (11)

  1. 通信装置から宛先装置に送信されたパケットを受信する送受信部と、
    前記パケットにより受信したデータを、前記通信装置が前記宛先装置に送信する送信データと、前記送信データの送信処理を前記通信装置で行うアプリケーションが生成した制御情報に分離する制御部と、
    前記宛先装置に向け、識別子に対応付けて送信したことがあるデータが前記送信データに含まれる場合、前記送信データ中で前記識別子に対応付けられたデータを前記識別子に置き換えた置換データを生成する置換処理部と、
    前記送信データの代わりに前記置換データを前記宛先装置に向けて転送する送信部
    を備えることを特徴とする転送装置であり、
    前記制御部は、前記パケットにより受信したデータから前記制御情報を除いて得られるデータの各々を、前記パケットの先頭に近い順に結合した結合データを生成すると共に、前記制御情報を廃棄し、
    前記置換処理部は、前記結合データ中で前記識別子に対応付けられたデータを前記識別子に置き換えることにより、前記置換データを生成する、
    ことを特徴とする転送装置。
  2. 前記制御部は、
    前記パケットにより受信したデータ中の第1の制御情報の末尾から、前記第1の制御情報の次に挿入されている第2の制御情報の開始位置までの間のデータである対象データを特定し、
    前記第1の制御情報、前記対象データ、前記第2の制御情報の各々を、互いに分離して前記置換処理部に出力し、
    前記置換処理部は、前記対象データを、前記第1および第2の制御情報と分けて処理する
    ことを特徴とする請求項1に記載の転送装置。
  3. 前記制御部は、前記パケットのペイロードに含まれている情報から前記制御情報を除いて得られるデータの各々を、前記通信装置中のアプリケーションでの処理が行われる前の順序に結合させた結合データを生成すると共に、前記制御情報を廃棄し、
    前記置換処理部は、前記結合データ中で前記識別子に対応付けられたデータを前記識別子に置き換えることにより、前記置換データを生成する
    ことを特徴とする請求項1に記載の転送装置。
  4. 他の転送装置から受信した受信データと、前記受信データを識別するために前記他の転送装置から通知された識別子である通知識別子を対応付けて記憶する記憶部と、
    前記通信装置宛のデータを前記他の転送装置から受信すると、前記通信装置宛のデータに含まれている前記通知識別子を、前記通知識別子で識別される受信データに復元する復元処理部
    をさらに備え、
    前記送受信部は、前記復元処理部により得られたデータを前記通信装置に送信する
    ことを特徴とする請求項1〜のいずれか1項に記載の転送装置。
  5. 前記制御部は、
    前記通信装置宛のデータを前記他の転送装置から受信すると、前記通信装置宛のデータに、前記通信装置中のアプリケーションが制御に使用する制御データが含まれているかを判定し、
    前記通信装置宛のデータに前記制御データが含まれていない場合、前記制御データの代替となる代替情報を前記通信装置宛のデータに挿入し、
    前記送信部は、前記代替情報が挿入されたデータを前記通信装置に送信する
    ことを特徴とする請求項に記載の転送装置。
  6. 通信装置と、
    前記通信装置の通信先である宛先装置と、
    前記通信装置と前記宛先装置の間の通信を中継する第1および第2の転送装置
    を備え、
    前記第1の転送装置は、
    前記通信装置から前記宛先装置宛てのパケットを受信すると、前記パケットにより受信したデータを、前記通信装置が前記宛先装置に送信する送信データと、前記送信データの送信処理を前記通信装置で行うアプリケーションが生成した制御情報に分離し、
    識別子に対応付けて前記第2の転送装置に送信したことがあるデータが前記送信データに含まれる場合、前記送信データ中で前記識別子に対応付けられたデータを前記識別子に置き換えた置換データを前記第2の転送装置に送信し、
    前記第2の転送装置は、前記置換データを前記送信データに復元してから、前記宛先装置に送信する
    ことを特徴とする通信システムであって、
    前記第1の転送装置は、前記パケットにより受信したデータから前記制御情報を除いて得られる複数のデータを結合した結合データを生成すると共に、前記制御情報を廃棄し、
    前記置換データは、前記結合データ中で前記識別子に対応付けられたデータを前記識別子に置換したデータであり、
    前記第2の転送装置は、
    前記第1の転送装置から受信したデータを用いて、前記結合データを復元し、
    前記宛先装置での処理に使用されるアプリケーションが前記制御情報の代替として制御に使用する代替情報を生成し、
    前記代替情報と前記結合データとを、前記宛先装置に送信する
    ことを特徴とする通信システム。
  7. 前記第1の転送装置は、
    前記パケットにより受信したデータ中の第1の制御情報の末尾から、前記第1の制御情報の次に挿入されている第2の制御情報の開始位置までの間のデータである対象データを特定し、
    前記第1の制御情報、前記対象データ、前記第2の制御情報の各々について、前記識別子を用いた置換処理を行う
    ことを特徴とする請求項に記載の通信システム。
  8. 通信装置と、前記通信装置の通信先である宛先装置の間の通信が第1および第2の転送装置によって中継されるネットワークにおいて、
    前記第1の転送装置は、
    前記通信装置から前記宛先装置宛てのパケットを受信すると、前記パケットにより受信したデータを、前記通信装置が前記宛先装置に送信する送信データと、前記送信データの送信処理を前記通信装置で行うアプリケーションが生成した制御情報に分離し、
    識別子に対応付けて前記第2の転送装置に送信したことがあるデータが前記送信データに含まれる場合、前記送信データ中で前記識別子に対応付けられたデータを前記識別子に置き換えた置換データを前記第2の転送装置に送信し、
    前記第2の転送装置は、前記置換データを前記送信データに復元してから、前記宛先装置に送信する
    ことを特徴とする通信方法であって、
    前記第1の転送装置は、前記パケットにより受信したデータから前記制御情報を除いて得られる複数のデータを結合した結合データを生成すると共に、前記制御情報を廃棄し、
    前記置換データは、前記結合データ中で前記識別子に対応付けられたデータを前記識別子に置換したデータであり、
    前記第2の転送装置は、
    前記第1の転送装置から受信したデータを用いて、前記結合データを復元し、
    前記宛先装置での処理に使用されるアプリケーションが前記制御情報の代替として制御に使用する代替情報を生成し、
    前記代替情報と前記結合データとを、前記宛先装置に送信する
    ことを特徴とする通信方法
  9. 前記第1の転送装置は、
    前記パケットにより受信したデータ中の第1の制御情報の末尾から、前記第1の制御情報の次に挿入されている第2の制御情報の開始位置までの間のデータである対象データを特定し、
    前記第1の制御情報、前記対象データ、前記第2の制御情報の各々について、前記識別子を用いた置き換え処理を行う
    ことを特徴とする請求項に記載の通信方法。
  10. 通信装置と宛先装置との間の通信を中継する転送装置に、
    前記通信装置から前記宛先装置に送信されたパケットを受信し、
    前記パケットにより受信したデータを、前記通信装置が前記宛先装置に送信する送信データと、前記送信データの送信処理を前記通信装置で行うアプリケーションが生成した制御情報に分離し、
    前記宛先装置に向け、識別子に対応付けて送信したことがあるデータが前記送信データに含まれる場合、前記送信データ中で前記識別子に対応付けられたデータを前記識別子に置き換えた置換データを生成し、
    前記送信データの代わりに前記置換データを前記宛先装置に向けて転送し、
    他の転送装置から受信した受信データと、前記受信データを識別するために前記他の転送装置から通知された識別子である通知識別子を対応付けて記憶し、
    前記通信装置宛のデータを前記他の転送装置から受信すると、前記通信装置宛のデータに含まれている前記通知識別子を、前記通知識別子で識別される受信データに置換することにより復元データを生成し、
    前記復元データに前記制御情報が含まれていない場合、前記制御情報の代替となる代替情報を前記復元データに挿入し、
    前記代替情報が挿入された復元データを前記通信装置に送信する、
    処理を行わせることを特徴とする通信プログラム。
  11. 前記転送装置に、
    前記パケットにより受信したデータから前記制御情報を除いて得られるデータを結合させた結合データを生成し、
    前記制御情報を廃棄し、
    前記結合データ中で前記識別子に対応付けられたデータを前記識別子に置き換えることにより、前記置換データを生成する
    処理を行わせることを特徴とする請求項1に記載の通信プログラム。


JP2017517484A 2015-05-11 2015-05-11 転送装置、通信システム、通信方法、および、通信プログラム Active JP6394799B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/063501 WO2016181461A1 (ja) 2015-05-11 2015-05-11 転送装置、通信システム、通信方法、および、通信プログラム

Publications (2)

Publication Number Publication Date
JPWO2016181461A1 JPWO2016181461A1 (ja) 2018-02-22
JP6394799B2 true JP6394799B2 (ja) 2018-09-26

Family

ID=57247800

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017517484A Active JP6394799B2 (ja) 2015-05-11 2015-05-11 転送装置、通信システム、通信方法、および、通信プログラム

Country Status (3)

Country Link
US (1) US10701188B2 (ja)
JP (1) JP6394799B2 (ja)
WO (1) WO2016181461A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020196958A1 (ko) * 2019-03-28 2020-10-01 라인플러스 주식회사 네트워크 상태 변환에 따른 효율적인 전송 복원 방법 및 시스템

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10530691B2 (en) * 2015-06-25 2020-01-07 Nec Corporation Method and system for managing data traffic in a computing network
JP6747303B2 (ja) * 2017-01-13 2020-08-26 富士通株式会社 通信装置、通信システム、通信方法、および、通信プログラム
DE102017204181A1 (de) * 2017-03-14 2018-09-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sender zum Emittieren von Signalen und Empfänger zum Empfangen von Signalen
JP7025105B2 (ja) * 2019-02-22 2022-02-24 日本電信電話株式会社 データ圧縮伝送システム、中間サーバ、方法およびプログラム
JP2021121065A (ja) * 2020-01-30 2021-08-19 株式会社Preferred Networks 通信装置及び通信方法
JP7247916B2 (ja) * 2020-02-17 2023-03-29 株式会社デンソー 通信装置
US20220200910A1 (en) * 2020-12-22 2022-06-23 Pensando Systems Inc. Methods and systems for autonomous rule-based task coordination amongst edge devices

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2786161B2 (ja) 1996-06-12 1998-08-13 東北日本電気通信システム株式会社 データ転送方法
JP2002368623A (ja) 2001-06-05 2002-12-20 Nec Corp 低速回線を使用したデータ転送システム及びその転送方法
JP5326922B2 (ja) * 2009-08-17 2013-10-30 株式会社リコー 通信装置、通信方法、及びプログラム
CN102684827B (zh) * 2012-03-02 2015-07-29 华为技术有限公司 数据处理方法及数据处理设备
US8923299B2 (en) * 2012-09-14 2014-12-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Segmentation and reassembly of network packets
US8954392B2 (en) * 2012-12-28 2015-02-10 Futurewei Technologies, Inc. Efficient de-duping using deep packet inspection
JP6164042B2 (ja) * 2013-10-24 2017-07-19 富士通株式会社 中継装置、中継方法、中継プログラム、および中継システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020196958A1 (ko) * 2019-03-28 2020-10-01 라인플러스 주식회사 네트워크 상태 변환에 따른 효율적인 전송 복원 방법 및 시스템

Also Published As

Publication number Publication date
US20180146073A1 (en) 2018-05-24
US10701188B2 (en) 2020-06-30
JPWO2016181461A1 (ja) 2018-02-22
WO2016181461A1 (ja) 2016-11-17

Similar Documents

Publication Publication Date Title
JP6394799B2 (ja) 転送装置、通信システム、通信方法、および、通信プログラム
JP4564228B2 (ja) ネットワーク通信データをオンラインで透過的にクロスセッションで符号化及び伝送するための構成及び方法
US7301948B2 (en) Routing method, node, packet communication system, program, and recording medium
JP4181212B2 (ja) データ多重化/分離装置
KR102444168B1 (ko) 송신 장치, 송신 방법, 수신 장치, 및 수신 방법
CN104917591B (zh) 一种适用于单向有损链路的卫星网络数据包压缩方法
JP6195014B2 (ja) 通信システム、通信方法、中継装置、および、通信プログラム
CN109194579B (zh) 一种IPv6实现分段路由的方法及装置
JPH0630004A (ja) 通信ネットワークから不要なデータパケットを破棄する方法
CN110431885B (zh) 处理报文的方法和装置
JP2017123522A (ja) 通信装置、制御装置、通信システム、および、通信方法
JP2018037702A (ja) 通信システム、通信装置、および、データ分割制御方法
JP6221786B2 (ja) 中継装置、通信システム、および、通信方法
CN115499390A (zh) 网络装置及其媒体存取控制地址学习方法
KR101108028B1 (ko) 복수의 세션을 이용한 공동작업 방법 및 그 시스템
JP2017147601A (ja) 通信装置および通信方法
JP2011097388A (ja) 無線通信システム
JP4581925B2 (ja) データ転送装置およびデータ転送方法
WO2021240606A1 (ja) 送信装置、受信装置、送信方法及び送受信システム
WO2008072667A1 (ja) 電気通信網、ネットワーク・ノード装置及びルーティング方法
JP4627243B2 (ja) ネットワーク中継装置
JP2018170661A (ja) 通信システム
JPH09298559A (ja) データ処理システム及び処理方法
JP4879728B2 (ja) 検索装置およびデータ処理装置
JP6907903B2 (ja) パケット識別装置および方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171110

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171110

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180813

R150 Certificate of patent or registration of utility model

Ref document number: 6394799

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150