JP6129526B2 - 通信装置、通信方法およびプログラム - Google Patents

通信装置、通信方法およびプログラム Download PDF

Info

Publication number
JP6129526B2
JP6129526B2 JP2012254588A JP2012254588A JP6129526B2 JP 6129526 B2 JP6129526 B2 JP 6129526B2 JP 2012254588 A JP2012254588 A JP 2012254588A JP 2012254588 A JP2012254588 A JP 2012254588A JP 6129526 B2 JP6129526 B2 JP 6129526B2
Authority
JP
Japan
Prior art keywords
connection
data communication
identifier
application
request
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
JP2012254588A
Other languages
English (en)
Other versions
JP2014103553A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012254588A priority Critical patent/JP6129526B2/ja
Priority to US14/085,154 priority patent/US9992309B2/en
Publication of JP2014103553A publication Critical patent/JP2014103553A/ja
Application granted granted Critical
Publication of JP6129526B2 publication Critical patent/JP6129526B2/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session

Description

本発明の実施形態は、通信装置、通信方法およびプログラムに関する。
ネットワークを介して接続されたサーバ装置とクライアント装置との間でデータの送受信を行う情報通信システムにおいて、サーバ装置とクライアント装置は例えばコネクション型の伝送方式を用いて情報の送受信を行う。
コネクション型の伝送方式として代表的なものにTCP/IPがある。TCP/IPを用いる場合、送信側は受信側との間でTCPコネクションを確立し、シーケンス番号やウィンドウサイズ等を含むTCPヘッダをデータに付加し、パケット化して受信側に送出する。受信側からは、データを受信できたことを示す確認応答(ACK)が送出される。これにより、データ到着の信頼性と順序性が保証された転送が可能となる。またTCPは、ネットワークが輻輳状態に陥るのを防止するため、ネットワークに送出するデータレートを制御する輻輳制御の機構を備える。
TCPでは、輻輳制御を実現するために、送信側が内部的に輻輳ウィンドウというパラメータを使用する。輻輳ウィンドウとは、送信側が受信側からの確認応答無しで連続送信できる最大のパケットの個数を表す。TCPコネクションの作成直後は初期値として輻輳ウィンドウの値を小さくすることで、送信するデータを少なくする。その後、確認応答が到着するごとに輻輳ウィンドウの値を大きくしてデータを大量に送り、ネットワークの帯域幅を有効に利用する。この動作はスロースタートとして知られている。
特開2011−233979号公報 特開2005−11267号公報 特開2000−57095号公報
同一のサーバ装置とクライアント装置の間でTCPによるデータ通信を繰り返し行う場合において、TCPコネクションの開始や終了の処理負荷や遅延時間を削減し、ネットワークの帯域幅の利用効率を向上することを課題とする。
実施形態によれば、コネクション型のデータ通信を行う通信装置であって、コネクションを利用してデータを供給または要求するアプリケーションと、前記データ通信の終了要求を受け取り、前記コネクションを終了することなく前記アプリケーションに対して前記コネクションの終了を通知する終了部と、を具備する通信装置が提供される。
実施形態に係る映像配信システムを示す図 サーバ装置の起動と接続待受を示すフローチャート データの種別に応じたヘッダの例を示す図 動画ファイルのプレイリストの例を示す図 TCPコネクションの開始(1回目)のサーバ装置における処理を示すフローチャート TCPコネクションの開始(1回目)のクライアント装置における処理を示すフローチャート TCPコネクションの終了(再利用を待機)のサーバ装置の処理を示すフローチャート TCPコネクションの終了(再利用を待機)のクライアント装置の処理を示すフローチャート クライアント装置の記憶部に記憶される情報の例を示す図 サーバ装置の記憶部に記憶される情報の例を示す図 TCPコネクションの開始(2回目)のサーバ装置の処理を示すフローチャート TCPコネクションの開始(2回目)のクライアント装置の処理を示すフローチャート 第2の実施形態の構成を示す図 HTTPによる情報表示の例を示す図
以下、実施の形態について、図面を参照して説明する。
(第1の実施形態)
図1は、実施形態に係る映像配信システムの構成を示す。HTTPサーバとして機能する情報処理端末(サーバ装置1)と、HTTPクライアントとして機能する情報処理端末(クライアント装置2)とが、ネットワーク3を介して接続されている。サーバ装置1はチャンクによる映像アダプティブストリーミングを提供する。
(サーバ装置の構成)
サーバ装置1は、HTTPサーバアプリケーション101と、開始部102と、記憶部103と、終了部104と、通信部105とを含む。
HTTPサーバアプリケーション101は、クライアント装置2からのHTTPリクエストを受信し、要求された動画ファイル(チャンク)をHTTPレスポンスとして送出する。
開始部102は、HTTPサーバアプリケーション101からの接続待受要求を受けて、クライアント装置2からのTCPの接続要求を待機する。また、TCPコネクションの再利用指示を受けた場合、利用可能なものが存在する場合には、当該TCPコネクションの識別子をHTTPサーバアプリケーション101に通知する。
記憶部103は、再利用待機中のTCPコネクションに関する情報を記憶する。
終了部104は、クライアント装置2からのTCPコネクションの終了を待機する。また、使用中のTCPコネクションの再利用待機がクライアント装置2から指示された場合には、当該TCPコネクションの識別子をHTTPサーバアプリケーション101に通知する。
通信部105は、クライアント装置2との間でTCPコネクションの開始と終了を行う。また、クライアント装置2からのHTTPリクエストをHTTPサーバアプリケーション101に通知し、返答されたHTTPレスポンスをクライアント装置2に送出する。クライアント装置2からTCPコネクションの再利用指示または再利用待機指示があった場合には、それぞれ開始部102または終了部104に通知する。
(クライアント装置の構成)
クライアント装置2は、HTTPクライアントアプリケーション201と、開始部202と、記憶部203と、終了部204と、通信部205とを含む。
HTTPクライアントアプリケーション201は、サーバ装置1に対してHTTPリクエストを送出することにより動画ファイル(チャンク)を要求し、HTTPレスポンスにより受信したチャンクを再生する。
開始部202は、HTTPクライアントアプリケーション201からの接続要求を受けて、サーバ装置1に対するTCPの接続要求を送出する。また、サーバ装置1との間でTCPコネクションの再利用が可能である場合には、当該TCPコネクションの再利用指示をサーバ装置1に送出する。
記憶部203は、再利用待機中のTCPコネクションに関する情報を記憶する。
終了部204は、HTTPクライアントアプリケーション201からのTCPコネクションの終了要求を受けて、当該使用中のTCPコネクションを終了しない当該TCPコネクションの再利用待機指示をサーバ装置1に送出する。また、TCPコネクションの再利用を行わない/行なえない場合には、サーバ装置1にTCPコネクションの終了を送出する。
通信部205は、サーバ装置1との間でTCPコネクションの開始と終了を行う。また、開始部202または終了部204からのTCPコネクションの再利用指示または再利用待機指示をサーバ装置1に通知する。
(処理の流れ)
次に、本実施形態に係る情報通信システムにより行われる処理の流れについて、図面を適宜参照しながら説明する。
[サーバ起動と接続待受]
図2は、サーバ装置1の起動と接続待受を示すフローチャートである。
始めに、サーバ装置1においてHTTPサーバアプリケーション101が起動される。HTTPサーバアプリケーション101は開始部102、記憶部103、終了部104、通信部105をロードする。起動後、HTTPサーバアプリケーション101は、開始部102に接続待受要求を出す。なお本実施形態では、開始部102はHTTPサーバアプリケーション101に対し、標準ソケットライブラリの接続待受用のAPI(アプリケーション・プログラミング・インターフェース)であるaccept関数と互換性のあるAPIを提供するものとする。以下の説明では、区別のため、標準ソケットライブラリにおける接続待受用の関数をacceptと呼び、開始部102が提供する互換APIをaccept_newと呼ぶことにする。また、標準ソケットライブラリのAPIは通信部105において提供されるものとする。HTTPサーバアプリケーション101はこのaccept_new関数をコールすることにより開始部102に接続待受を指示する。accept_newの呼び出しの引数には、HTTPサーバアプリケーション101が使用するポート番号(例えば80)が指定される。
次に開始部102は、accept_newにおいて、通信部105に接続の待受要求を出し、通知を受けるまで待機する。これを受けて通信部105は、ソケットライブラリのaccept関数をコールし、クライアント装置2からのTCPの接続要求(SYN)の待受を行う。このときacceptの引数には、accept_newで渡されたポート番号を用いる。また、通信部105は、これと並行して、クライアント装置2の開始部202との通信用のポート番号(例えば9001)および終了部204との通信用のポート番号(例えば9002)についてaccept関数をコールし、TCPの接続要求の待受を行う。通信部105は、アプリケーションのポート番号(80)または開始部202との通信用のポート番号(9001)または終了部204との通信用のポート番号(9002)のいずれかにTCPの接続要求が来るまで待機する。
なお、本実施形態では、開始部102と開始部202の間の通信と、終了部104と終了部204の間の通信に、専用のポート番号によるTCPを利用するものとするが、必ずしもこれに限らなくともよい。例えばUDPなど任意の伝送プロトコルを用いてもよい。あるいは、HTTPサーバアプリケーション101とHTTPクライアントアプリケーション201が使用するTCPコネクションに、開始部102と開始部202の間の通信および終了部104と終了部204の間の通信を多重化してもよい。ただしこの場合、HTTPで使用するデータと、開始部(102,202)および終了部(104,204)で使用するデータが一つのストリームに混在することになるため、通信部105および通信部205において、データの種別に応じたヘッダを付与する必要がある。付与するヘッダの例を図3に示す。この例では、データ長とデータ種別を表す情報がヘッダとして付与されている。
[クライアント起動と接続要求]
次に、クライアント装置2においてHTTPクライアントアプリケーション201が起動される。HTTPクライアントアプリケーション201は開始部202、記憶部203、終了部204、通信部205をロードする。HTTPクライアントアプリケーション201は例えば動画プレイヤーである。HTTPクライアントアプリケーション201は、図4に示すような動画ファイルのプレイリストを予め保持しているものとする。プレイリストには、10秒のチャンクに分割されたファイルの再生時間とそのURLの組が羅列されている。HTTPクライアントアプリケーション201は、起動後、例えばユーザからの再生開始等の操作を契機として、リストに記載のファイルを上から順に取得し、再生を行う。
HTTPクライアントアプリケーション201は開始部202に対し、データ通信を開始するために接続要求を出す。なお本実施形態では、開始部202は標準ソケットライブラリの接続要求用のAPIであるconnect関数と互換性のあるAPIを提供するものとする。以下の説明では、区別のため、標準ソケットライブラリにおける接続要求用の関数をconnectと呼び、開始部202が提供する互換APIをconnect_newと呼ぶことにする。また、標準ソケットライブラリのAPIは通信部205において提供されるものとする。HTTPクライアントアプリケーション201はこのconnect_new関数をコールすることにより開始部202に接続要求を指示する。connect_newの呼び出しの引数には、サーバ装置1のIPアドレスと、HTTPクライアントアプリケーション201のポート番号(80)が指定される。
次に、開始部202は、connect_newにおいて、引数として渡されたIPアドレスとポート番号の組に一致するエントリが記憶部203に存在するか否かを判定する。HTTPクライアントアプリケーション201の起動直後は記憶部203にエントリが存在しないため、判定の結果はNOである。YESの場合の処理は後述する。NOの場合、開始部202は通信部205に接続要求を指示し、通知を受けるまで待機する。これを受けて通信部205は、ソケットライブラリのconnect関数をコールし、サーバ装置1にTCPの接続要求(SYN)の送出を行う。このときconnectの引数には、connect_newで渡されたサーバ装置1のIPアドレスと、HTTPクライアントアプリケーション201のポート番号(80)を用いる。
[TCPコネクションの開始(1回目)]
図5は、TCPコネクションの開始(1回目)のサーバ装置1における処理、図6は、クライアント装置2の処理を示すフローチャートである。
サーバ装置1の通信部105は、アプリケーションのポート番号(80)へのTCPの接続要求(SYN)が到着すると、クライアント装置2の通信部205にSYNとACKを送出する。さらに通信部205は通信部105にACKを送出する。これにより3ウェイハンドシェイクが完了し、通信部105と通信部205でTCPコネクションが確立された状態となる(S101)。
通信部105は、TCPコネクションの確立が完了すると、開始部102に確立完了を通知する。これを受けて開始部102はHTTPサーバアプリケーション101に確立完了を通知する。このときHTTPサーバアプリケーション101には、確立されたTCPコネクションの識別子(ソケットディスクリプタなど)が渡される。次にHTTPサーバアプリケーション101は通信部105が提供するデータ受信のためのAPIであるrecv関数をコールする。引数には先ほど受け取ったTCPコネクションの識別子を渡す。これによりクライアント装置2からのHTTPリクエストの到着を待機する(S102)。あわせてHTTPサーバアプリケーション101は、再び開始部102に待受要求を出す。これ以降の処理の流れは前述したものと同一である。
なお、本実施形態ではconnect_newの完了の通知とともにTCPコネクションの識別子を渡すものとしたが、必ずしもこれに限らなくともよい。ソケットを作成するためのAPIとしてsocket関数を通信部105がHTTPサーバアプリケーション101に提供し、この関数をコールすることでTCPコネクションの識別子が得られ、これをconnect_newへの引数として渡す、といったAPIの仕様に対しても適用可能である。
一方、クライアント装置2の通信部205は、TCPコネクションの確立(C201)が完了すると、開始部202に確立完了を通知する。これを受けて開始部202はHTTPクライアントアプリケーション201に確立完了を通知する。このときHTTPクライアントアプリケーション201には、確立されたTCPコネクションの識別子が渡される。次にHTTPクライアントアプリケーション201は、通信部205が提供するデータ送信のためのAPIであるsend関数をコールする。引数としては、先ほど受け取ったTCPコネクションの識別子を渡すほか、取得したいファイルのURLを含むHTTPリクエストを作成し、これを渡す。このHTTPリクエストは、作成されたTCPコネクションを通じてサーバ装置1に送出され(C202)、さらにHTTPサーバアプリケーション101に渡される。
HTTPサーバアプリケーション101は、HTTPリクエストを受け取ると、自身が保持する動画ファイルをHTTPレスポンスとしてクライアント装置2に送出する(S103)。送出にはsend関数を用いる。以後、HTTPクライアントアプリケーション201は繰り返しrecv関数をコールすることで動画ファイルの受信を行う(C203)。
[TCPコネクションの終了(再利用を待機)]
図7は、TCPコネクションの終了(再利用を待機)のサーバ装置1の処理、図8は、クライアント装置2の処理を示すフローチャートである。
サーバ装置1に対するHTTPリクエストの送出により、クライアント装置2のHTTPクライアントアプリケーション201は動画ファイル(チャンク)の受信を開始する。動画ファイルの受信が完了すれば、動画の再生を開始し、あわせて次の時間のチャンクの取得を行う。しかし、ネットワークの帯域幅が十分でない状況においては、動画ファイルの受信がすみやかに完了しないことがある。この場合、受信が完了するまで動画の再生を待機するという方法が一つの対処だが、そうすると、受信完了までユーザを長く待たせてしまうことになる。あるいは、2個目以降のチャンクの受信においては、チャンクごとに動画の再生がストップしてしまうことになり、ユーザの視聴の快適さが損なわれる。そこで、予め定められた再生時刻までに動画ファイルの受信が完了しなかった場合、その時点でファイルの受信を中断し、より低ビットレートのチャンクの取得に切り替える。ここでは、動画の受信を開始してから規定時間(10秒)後を予定の再生時刻とする。クライアント装置2は、規定時間(5秒など)後の時刻において、それまでに受信できたをデータサイズと経過時間から帯域幅を予想し、この帯域幅の大きさが今後も継続すると仮定した場合に残りのデータの受信が再生予定時刻までに間に合いそうか否かを判断する。間に合いそうにないと判断した場合、これまでの受信をキャンセルし、より低ビットレートのチャンクの取得に切り替えるものとする。
HTTPの仕様では、受信が完了していないデータの伝送を途中でキャンセルする機能は提供されていない。そこで、データ通信を終了するために、クライアント側からTCPコネクションを終了するという動作を行う。HTTPクライアントアプリケーション201は、終了部204に終了要求を出す。なお本実施形態では、終了部204はHTTPクライアントアプリケーション201に対し、標準ソケットライブラリにおける接続終了用のAPIであるclose関数と互換性のあるAPIを提供するものとする。以下の説明では、区別のため、標準ソケットライブラリにおける接続終了用の関数をcloseと呼び、終了部204が提供する互換APIをclose_newと呼ぶことにする。HTTPクライアントアプリケーション201はこのclose_new関数をコールすることにより終了部204に接続終了を指示する。close_newの呼び出しの引数には、動画ファイルの受信に使用したTCPコネクションの識別子が渡される。
次に終了部204は、close_newにおいて、渡されたTCPコネクションの識別子と、サーバ装置1のIPアドレスとポート番号の情報を記憶部203に記憶する(図8のC401)。記憶部203に記憶される情報の例を図9に示す。同図では、上述の情報と、記憶時の時刻(クライアント装置2の起動時からの経過時間:ミリ秒)が記されている。また、これと並行して、サーバ装置1の終了部104との通信用のポート番号(9002)に対してconnect関数をコールし、TCPの接続要求を行う。このポート番号に関して通信用のTCPコネクションの確立が完了すると(S301,C402)、終了部204は終了部104に対し待機指示を送出する(C403)。ここでいう「待機」の指示とは、後述する処理により終了しないTCPコネクションの再利用に向けた待機の指示を意味する。終了部104は、この待機指示を受け取ると(S302)、当該通信用のTCPコネクションを終了したのち(S303)、渡されたTCPコネクションの識別子とクライアント装置2のIPアドレスとポート番号の情報を記憶部103に記憶する(S304)。
記憶部103に記憶される情報の例を図10に示す。同図では、上述の情報と、記憶時の時刻(サーバ装置1の起動時からの経過時間:ミリ秒)が記されている。さらに、終了部104はHTTPサーバアプリケーション101に対し接続の終了を通知する(S305)。実際には、TCPコネクションは終了していない状態で存在する。
HTTPサーバアプリケーション101は、接続終了通知を受けてデータの送出を終了する。
なお、終了部104からHTTPサーバアプリケーション101への接続終了の通知のやり方は任意である。HTTPサーバアプリケーション101の指定されたコールバック関数を呼び出すというやり方であってもよいし、HTTPサーバアプリケーション101が行うsendやrecv等のAPIの呼び出しに対し規定のエラーコードを返すというやり方であってもよい。
終了部204は、待機指示の送出が完了すると、通信用のTCPコネクションの終了を行う(C404)。終了部204は、以上の処理が完了すると、HTTPクライアントアプリケーション201に対し、接続終了が完了したことを通知する(C405)。実際には、TCPコネクションは終了していない状態で存在する。
[TCPコネクションの開始(2回目)]
図11は、TCPコネクションの開始(2回目)のサーバ装置1の処理、図12は、クライアント装置2の処理を示すフローチャートである。
HTTPクライアントアプリケーション201は、close_new関数の呼び出しが終了すると、次の時間のチャンクを取得するために、再びconnect_newをコールして開始部202に対し接続要求を出すことによりデータ通信を開始する。connect_new関数の呼び出しの引数は1回目のときと同一である。
次に開始部202は、connect_newにおいて、引数として渡されたIPアドレスとポート番号の組に一致するエントリが記憶部203に存在するか否かを判定する。今回は、図9に示したように、対応するエントリが存在するため、判定の結果はYESである(なおNOの場合の処理は既に述べた)。YESの場合、開始部202はこのIPアドレスに対するTCPコネクションが接続終了されていない状態で存在しており、再利用可能であることを知る(C601)。NOの場合、HTTPサーバアプリケーション101のポートでTCPコネクションを確立する(C602)。これは、TCPコネクションの再利用には相当しない。
上記TCPコネクションを再利用可能である場合、記憶部203から当該エントリを削除する(C603)。さらに、サーバ装置1の開始部102との通信用のポート番号(9001)に対してconnect関数をコールし、TCPの接続要求を行う。このポート番号に関して通信用TCPコネクションの確立が完了すると(S501,C604)、開始部202は開始部102に対し再利用指示を送出する(C605)。再利用指示には、connect_newの呼び出しにおいて渡されたIPアドレス(クライアント装置2自身のIPアドレス)とポート番号(80)が付加されている。開始部102は、再利用指示を受信すると(S502)、通信用TCPコネクションを終了したのち(S503)、再利用指示に付加されたIPアドレスとポート番号の組が記憶部103に存在するか否かを判定する。すなわち、TCPコネクションを再利用可能であるか否かを判定する(S504)。今回は、図10に示したように、対応するエントリが存在するため、判定の結果はYESである。YESの場合、記憶部103から当該エントリを削除(S505)した上で、開始部102はHTTPサーバアプリケーション101に接続開始を通知する(S506)。このときHTTPサーバアプリケーション101には、当該エントリに記された、TCPコネクションの識別子が渡される。
開始部202は、再利用指示の送出が完了すると、通信用のTCPコネクションの終了を行う(C606)。開始部202は、以上の処理が完了すると、HTTPクライアントアプリケーション201に対し、接続要求が完了したことを通知する(C607)。通知の際には、記憶部203に記憶されていたTCPストリームの識別子を合わせて通知する。以後の処理は、1回目と同様である。すなわち、HTTPクライアントアプリケーション201はHTTPサーバアプリケーション101に対し、再利用したTCPコネクションを用いてHTTPリクエストの送出を行い(C608)、HTTPレスポンスで動画ファイルの受信を開始する(C609)。
以上のように本実施の形態によれば、同一のサーバ装置とクライアント装置の間でTCPによるデータ通信を繰り返し行う場合において、一方のアプリケーションからの接続終了の指示に対し、TCPコネクションの接続を持続したまま待機させ、サーバ・クライアント双方のアプリケーションに対しては接続終了が完了した旨の通知を行う。さらに再度接続開始の指示に対しては、待機させたTCPコネクションを再利用してサーバ・クライアント双方のアプリケーションに対し接続開始が完了した旨の通知を行う。こうした動作により、TCPコネクションの開始や終了の処理負荷や遅延時間を削減し、またネットワークの帯域幅の利用効率を向上することが可能となる。特に、遅延時間が大きいネットワークや、接続の開始と終了が頻繁に発生するようなアプリケーションにおいて、本実施形態による効果は顕著である。
なお、本実施形態では、開始部102、終了部104、開始部202、終了部204は、標準ソケットライブラリと互換性のあるAPIを提供するものとしている。これにより、既存のHTTPサーバアプリケーション101やHTTPクライアントアプリケーション201に改変を行うことなく、本実施形態の効果を得ることが可能となる。その場合、サーバ装置1においてHTTPサーバアプリケーション101以外の構成要素(開始部102、記憶部103、終了部104、通信部105)を標準ソケットライブラリと互換性のあるライブラリとして構成し、HTTPサーバアプリケーション101がロードする標準ソケットライブラリの代替として本ライブラリを利用するという構成を用いることも可能である。クライアント装置2においても同様に、HTTPクライアントアプリケーション201以外の構成要素(開始部202、記憶部203、終了部204、通信部205)を標準ソケットライブラリと互換性のあるライブラリとして構成することができる。もちろんこれらの構成は必須ではない。HTTPサーバアプリケーション101と開始部102、終了部104の間のインターフェース、および、HTTPクライアントアプリケーション201と開始部202、終了部204の間のインターフェースは任意の形式で定義することが可能である。
また、本実施形態では、サーバ装置1およびクライアント装置2において、接続を持続したまま待機させるTCPコネクションの個数に特に上限を設けなかったが、任意の上限を設けてよい。この場合例えば、記憶部103および記憶部203は記憶するエントリの個数に上限値を設け、新規のエントリ追加の要求が来た場合に、もしエントリの個数が上限値を超えるようであれば、エントリのうち待機時刻の値が最も古いものを削除することで、エントリの個数を上限値以下に保つことが可能となる。この場合、削除したエントリに対応するTCPコネクションは、FIN/ACKの交換により終了の手続きを行う。あるいは、記憶部203に追加されてからの経過時間が規定の閾値を超えたエントリを削除するという方法をとっても良い。この場合、終了部104および終了部204において、定期的なタイミングで現在時刻と、記憶部103および記憶部203に記憶された待機時刻との差を調べ、既定値を上回っていた場合には上記と同様にエントリの削除とTCPコネクションの終了を行う。このように古くなったTCPコネクションを自動で終了させることにより、サーバ装置1およびクライアント装置2のリソース消費量を削減することが可能となる。また、IPアドレスが同一のエントリが記憶部103および記憶部203に複数個存在する場合にそれらから優先的に削除する処理を追加してもよい。これによりサービス提供の公平性を実現することが可能となる。
(第2の実施形態)
第2の実施形態の基本的な構成は、第1の実施形態と同様であり、HTTPサーバとして機能する情報処理端末(サーバ装置1)と、HTTPクライアントとして機能する情報処理端末(クライアント装置2)とが、ネットワーク3を介して接続されている。
サーバ装置1のHTTPサーバアプリケーション101はウェブページの提供を行う。クライアント装置2のHTTPクライアントアプリケーション201は例えばブラウザ等のアプリケーションである。第2の実施形態の構成を図13に示す。
HTTPサーバアプリケーション101が提供するウェブページはHTMLで記述されている。このHTMLファイルにはimgタグで画像ファイルの読み込みが指定されている。HTTPクライアントアプリケーション201はHTTPリクエストを用いてHTMLファイルのダウンロードを行い、次に2回目のHTTPリクエストにより、HTMLファイルに記載されている画像ファイルの取得を行い、得られた両方の情報を表示する。表示される情報の例を図14に示す。表示される情報はテキスト1001と画像1002とリンク1003から構成される。クライアント装置2において、ユーザがリンク1003の文字列のクリックを行うことにより、別のファイルの表示を指示することができる。この場合、ユーザのクリック操作に伴い、新規のHTTPリクエストが作成され、上記と同様にしてHTMLファイルのダウンロードが実行される。
ネットワークの帯域幅が十分でない場合、画像1002のようにサイズの大きなデータのダウンロードに時間を要する場合がある。その場合のクライアント装置2のHTTPクライアントアプリケーション201の表示には様々な方法がある。全てのデータのダウンロードが完了してから表示を行う方法のほか、画像1002がダウンロードされるに従って上から段階的に表示を行っていく方法がある。このほか、当初はぼんやりした画像が表れ、ダウンロードが進むと次第に画像が鮮明になってくるという方法がある。
いずれの場合も、画像1002のダウンロードを実行している最中に、ユーザによりリンク1003のクリックが行われる状況が想定される。クライアント装置2のHTTPクライアントアプリケーション201は、ユーザにすみやかに遷移先のページを提示するために、クリックが行われた時点ですみやかに新たなHTTPリクエストを作成してサーバ装置1に送出する必要がある。このとき、ダウンロードの最中である画像1002のダウンロードはもはや不要である。古いデータのダウンロードに伴う帯域幅の消費が新しいデータのダウンロードに影響を及ぼさないよう、古いデータのダウンロードを中断する必要がある。
以下の説明では、図14に示したような、画像を含むウェブページの取得を行っている最中にリンクのクリックが行われ、(同一サーバが提供する)別のウェブページに遷移するという状況でのサーバ装置1およびクライアント装置2の処理の流れを述べる。
(HTMLファイルと画像ファイルの取得)
クライアント装置2のHTTPクライアントアプリケーション201(ブラウザアプリケーション)では、ユーザのURL入力などの操作を契機として、サーバ装置1のHTTPサーバアプリケーション101に向けてHTMLファイルの取得を行う。ここではサイト名example.comからHTMLファイルgallery.htmlを取得すると仮定する。始めにHTTPクライアントアプリケーション201は開始部202に対し、HTTPリクエストの送出のために必要なTCPコネクションの取得要求を行う。開始部202はさらに内部に直近にファイル取得を行ったサイト名と、ファイル取得に用いたTCPコネクションの識別子とを記憶するための記憶領域(記憶部203)を有する。初回は直近のファイル取得は存在しないため、いずれもnullで初期化されている。
開始部202は、記憶領域に記憶されたサイトと、これから取得を行うサイトが一致するか否かを判定する。ここでの判定結果はNOである(null≠example.com)。このとき、開始部202は、通信部205に対し、当該サイトとの間でのTCPコネクション作成を依頼する。通信部205はサーバ装置1の通信部105との間でTCPの3ウェイハンドシェイクを行ってTCPコネクションを作成し、その識別子を開始部202に返す。この識別子はHTTPクライアントアプリケーション201に渡される。HTTPクライアントアプリケーション201はこのTCPコネクションを利用して、HTMLファイルgallery01.htmlを要求するHTTPリクエストを作成し通信部205へ送信依頼する。このHTTPリクエストは開始部102を介してHTTPサーバアプリケーション101へと送信される。これを受けてHTTPサーバアプリケーション101は、自身が保持するHTMLファイルをHTTPレスポンスとしてHTTPクライアントアプリケーション201へ送信する。
次にHTTPクライアントアプリケーション201は、受け取ったHTMLファイルを解析し、当該ページに画像1002(image.jpg)およびリンク1003(gallery01.html)が含まれていることを知る。そこで画像1002を要求するHTTPリクエストを作成し、通信部205を介してHTTPサーバアプリケーション101へ送信する。同時に、ページのレンダリングを行い表示する。ユーザには、画像1002が空白の状態のページが提示される。HTTPサーバアプリケーション101は画像1002へのHTTPリクエストに対し、HTTPレスポンスとして画像ファイルimage.jpgを送信する。なお、画像1002の取得の際にはHTTPパーシステントコネクションが利用可能であり、gallery01.htmlとimage.jpgの取得の間にはTCPコネクションの終了は行われていない。
(画像ファイルの取得の中断)
さて、画像1002の受信の最中に、ユーザの操作によって、ページに含まれるリンク1003のクリックがなされ、別のページgallery02.htmlへの遷移が発生したとする。このとき、HTTPクライアントアプリケーション201は、受信中の画像1002の中断を行うと判断する。終了部204に対し、中断の指示を出す。終了部204は、通信部205を通じて、サーバ装置1の終了部104に対し、中断の指示を通知する。第1の実施形態で述べた通り、通知の方法は、通知用のポート番号を利用したTCPコネクションを作成する方法のほか、UDPを利用する方法など、任意であってよい。HTTPサーバアプリケーション101は、中断の指示を受けると、送信中の画像1002の送信を中断する。
HTTPクライアントアプリケーション201は、中断の指示を出した後で、自身が記憶する、直近にファイル取得を行ったサイト名と、ファイル取得に用いたTCPコネクションの識別子の情報を更新する。直近にファイル取得を行ったサイト名の情報はexample.comで更新され、TCPコネクションの識別子の情報は、画像1002の取得に用いたTCPコネクションの識別子で更新される。
次にHTTPクライアントアプリケーション201は、遷移先のページ(gallery02.html)の取得を行う。1回目の取得と同じように、HTTPクライアントアプリケーション201は開始部202に対し、HTTPリクエストの送出のために必要なTCPコネクションの取得要求を行う。開始部202は、記憶領域に記憶されたサイトと、これから取得を行うサイトが一致するか否かを判定する。ここでの判定結果はYESである(いずれもexample.com)。このとき開始部202は記憶部203に記憶されたTCPコネクションの識別子をHTTPクライアントアプリケーション201に渡す。HTTPクライアントアプリケーション201はこのTCPコネクションを利用して、HTMLファイルgallery02.htmlを要求するHTTPリクエストを作成し通信部205へ送信依頼する。このHTTPリクエストは開始部102を介してHTTPサーバアプリケーション101へと送信される。これを受けてHTTPサーバアプリケーション101は、自身が保持するHTMLファイルをHTTPレスポンスとしてHTTPクライアントアプリケーション201へ送信する。
以上のように本実施の形態により、第1の実施形態と同様の効果を得ることが可能となる。
なお、第1の実施形態および第2の実施形態では、伝送するデータの種類を映像データおよび画像データであるとしたが、必ずしもそれらに限る必要はなく、任意の種類のデータを使用することが可能である。また、サーバ装置1とクライアント装置2はアプリケーションとしてHTTPを使用するとしたが、必ずしもこれに限る必要はなく、任意のアプリケーションを使用することが可能である。特に、HTTPのように、TCPコネクションを終了することなく実行中のデータ送信を途中でキャンセルするという機能が存在しないようなアプリケーションにおいて、キャンセルの機能を実現することが可能となる。
また、第1の実施形態および第2の実施形態では、いずれもデータ通信の開始と終了をクライアントの側から行うものとしたが、必ずしもそれに限る必要はない。一般に、TCPによるデータ通信において、いったんTCPコネクションの確立が完了した後はサーバとクライアントの間の区別はなされない。このため、サーバの側からデータ通信の開始と終了を行う場合についても適用可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…サーバ装置
2…クライアント装置
3…ネットワーク
101…サーバアプリケーション
102,202…開始部
103…記憶部
104,204…終了部
105…通信部
201…クライアントアプリケーション
202…開始部
203…記憶部
204…終了部
205…通信部
1001…テキスト
1002…画像
1003…リンク

Claims (16)

  1. コネクション型のデータ通信を行う通信装置であって、
    コネクションを利用してデータを供給または要求するアプリケーションと、
    前記データ通信の終了要求を受け取り、前記コネクションを終了することなく前記アプリケーションに対して前記コネクションの終了を通知する終了部と、
    前記データ通信の相手の識別子と前記コネクションの識別子とを関連付けて記憶する記憶部と、
    前記データ通信の開始要求を受け取り、前記開始要求に応じて再利用可能なコネクションが前記記憶部に存在するか否かを判定し、再利用可能と判定されたコネクションの識別子を前記アプリケーションに通知する開始部と、を具備し、
    前記開始部は、前記コネクションの再利用への待機を前記データ通信の相手に報せる通知信号を送出する通信装置。
  2. コネクション型のデータ通信を行う通信装置であって、
    コネクションを利用してデータを供給または要求するアプリケーションと、
    前記データ通信の終了要求を受け取り、前記コネクションを終了することなく前記アプリケーションに対して前記コネクションの終了を通知する終了部と、
    前記データ通信の相手の識別子と前記コネクションの識別子とを関連付けて記憶する記憶部と、
    前記データ通信の開始要求を受け取り、前記開始要求に応じて再利用可能なコネクションが前記記憶部に存在するか否かを判定し、再利用可能と判定されたコネクションの識別子を前記アプリケーションに通知する開始部と、を具備し、
    前記記憶部は、前記コネクションの識別子を記憶した時刻をさらに記憶し、
    前記終了要求に対して終了しなかった複数のコネクションのうち、前記記憶した時刻から規定時間が経過したコネクションを終了する通信部をさらに具備する通信装置。
  3. 前記開始部は、前記コネクションの再利用を前記データ通信の相手に報せる通知信号を送出する請求項2記載の装置。
  4. 前記開始部は、前記コネクションの再利用への待機を前記データ通信の相手に報せる通知信号を送出する請求項2記載の装置。
  5. 前記開始部は、前記開始要求とともに指定された前記データ通信の相手の識別子を前記記憶部から探し、該識別子が存在していれば前記コネクションの識別子を前記アプリケーションに返し、該識別子が存在しなければ新規に確立したコネクションの識別子を前記アプリケーションに返す請求項2記載の装置。
  6. 前記データ通信の相手の識別子は、少なくともIPアドレスを含む請求項2記載の装置。
  7. 前記データ通信の相手の識別子は、少なくともアプリケーションのポート番号を含む請求項2記載の装置。
  8. 前記終了要求に対して終了しなかった複数のコネクションのうち、規定個数を上回ったコネクションを終了する通信部をさらに具備する請求項1乃至7のいずれかに記載の装置。
  9. 前記通信部は、同一のデータ通信の相手とのコネクションの個数が多いコネクションを優先的に終了する請求項またはに記載の装置。
  10. 前記アプリケーションは、HTTPによるデータ通信を行う請求項1乃至のいずれかに記載の装置。
  11. 前記終了部は、前記アプリケーションが使用する、データ通信のためのアプリケーション・プログラミング・インターフェース(API)と互換性のあるAPIを提供する請求項1乃至10のいずれかに記載の装置。
  12. 前記開始部は、前記アプリケーションが使用する、データ通信のためのアプリケーション・プログラミング・インターフェース(API)と互換性のあるAPIを提供する請求項乃至10のいずれかに記載の装置。
  13. コネクション型のデータ通信を行う通信方法であって、
    アプリケーションが、コネクションを利用してデータを供給または要求し、
    終了部が、前記データ通信の終了要求を受け取り、前記コネクションを終了することなく前記アプリケーションに対して前記コネクションの終了を通知し、
    記憶部が、前記データ通信の相手の識別子と前記コネクションの識別子とを関連付けて記憶し、
    開始部が、前記データ通信の開始要求を受け取り、前記開始要求に応じて再利用可能なコネクションが前記記憶部に存在するか否かを判定し、再利用可能と判定されたコネクションの識別子を前記アプリケーションに通知すること、を具備し、
    前記開始部は、前記コネクションの再利用への待機を前記データ通信の相手に報せる通知信号を送出する、通信方法。
  14. コネクション型のデータ通信を行う通信方法であって、
    アプリケーションが、コネクションを利用してデータを供給または要求し、
    終了部が、前記データ通信の終了要求を受け取り、前記コネクションを終了することなく前記アプリケーションに対して前記コネクションの終了を通知し、
    記憶部が、前記データ通信の相手の識別子と前記コネクションの識別子とを関連付けて記憶し、
    開始部が、前記データ通信の開始要求を受け取り、前記開始要求に応じて再利用可能なコネクションが前記記憶部に存在するか否かを判定し、再利用可能と判定されたコネクションの識別子を前記アプリケーションに通知すること、を具備し、
    前記記憶部は、前記コネクションの識別子を記憶した時刻をさらに記憶し、
    前記終了要求に対して終了しなかった複数のコネクションのうち、前記記憶した時刻から規定時間が経過したコネクションを終了することをさらに具備する通信方法。
  15. コンピュータに、コネクション型のデータ通信を行わせるためのプログラムであって、
    アプリケーションが、コネクションを利用してデータを供給または要求する手順と、
    終了部が、前記データ通信の終了要求を受け取り、前記コネクションを終了することなく前記アプリケーションに対して前記コネクションの終了を通知する手順と
    記憶部が、前記データ通信の相手の識別子と前記コネクションの識別子とを関連付けて記憶する手順と、
    開始部が、前記データ通信の開始要求を受け取り、前記開始要求に応じて再利用可能なコネクションが前記記憶部に存在するか否かを判定し、再利用可能と判定されたコネクションの識別子を前記アプリケーションに通知する手順と、を実行するためのプログラムであり、
    前記開始部は、前記コネクションの再利用への待機を前記データ通信の相手に報せる通知信号を送出するプログラム
  16. コンピュータに、コネクション型のデータ通信を行わせるためのプログラムであって、
    アプリケーションが、コネクションを利用してデータを供給または要求する手順と、
    終了部が、前記データ通信の終了要求を受け取り、前記コネクションを終了することなく前記アプリケーションに対して前記コネクションの終了を通知する手順と
    記憶部が、前記データ通信の相手の識別子と前記コネクションの識別子とを関連付けて記憶する手順と、
    開始部が、前記データ通信の開始要求を受け取り、前記開始要求に応じて再利用可能なコネクションが前記記憶部に存在するか否かを判定し、再利用可能と判定されたコネクションの識別子を前記アプリケーションに通知する手順と、を実行するためのプログラムであり、
    前記記憶部は、前記コネクションの識別子を記憶した時刻をさらに記憶し、
    前記終了要求に対して終了しなかった複数のコネクションのうち、前記記憶した時刻から規定時間が経過したコネクションを終了する手順をさらに実行するためのプログラム
JP2012254588A 2012-11-20 2012-11-20 通信装置、通信方法およびプログラム Active JP6129526B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012254588A JP6129526B2 (ja) 2012-11-20 2012-11-20 通信装置、通信方法およびプログラム
US14/085,154 US9992309B2 (en) 2012-11-20 2013-11-20 Communication device and communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012254588A JP6129526B2 (ja) 2012-11-20 2012-11-20 通信装置、通信方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2014103553A JP2014103553A (ja) 2014-06-05
JP6129526B2 true JP6129526B2 (ja) 2017-05-17

Family

ID=50728980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012254588A Active JP6129526B2 (ja) 2012-11-20 2012-11-20 通信装置、通信方法およびプログラム

Country Status (2)

Country Link
US (1) US9992309B2 (ja)
JP (1) JP6129526B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10320918B1 (en) * 2014-12-17 2019-06-11 Xilinx, Inc. Data-flow architecture for a TCP offload engine
JP2017163440A (ja) 2016-03-11 2017-09-14 富士通株式会社 データ転送プログラム、データ転送方法、及び、データ転送装置
CN111414208B (zh) * 2020-03-13 2023-08-01 百度在线网络技术(北京)有限公司 应用程序的启动方法、装置及设备
EP4199439A1 (en) 2020-08-12 2023-06-21 Toyota Jidosha Kabushiki Kaisha Communication device and communication method

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03237542A (ja) * 1990-02-14 1991-10-23 Nec Corp データ通信装置
JP3398681B2 (ja) 1998-08-06 2003-04-21 エヌイーシーシステムテクノロジー株式会社 通信処理システム
EP1269310A2 (en) * 2000-03-30 2003-01-02 Telefonaktiebolaget LM Ericsson (publ) Optimized connection life cycle for an authenticated client-server relationship
US20020107966A1 (en) * 2001-02-06 2002-08-08 Jacques Baudot Method and system for maintaining connections in a network
JP4285101B2 (ja) 2003-06-20 2009-06-24 ソニー株式会社 リアルタイムデータ通信システム、リアルタイムデータ通信装置およびリアルタイムデータ通信方法
JP2007226398A (ja) 2006-02-22 2007-09-06 Hitachi Ltd データベース接続管理方法及び計算機システム
US20080114882A1 (en) * 2006-11-13 2008-05-15 David Alan Christenson Multiplexing Multiple Client Connections in a Single Socket
JP2008134767A (ja) * 2006-11-28 2008-06-12 Hitachi Software Eng Co Ltd コネクション割当管理方法
US20080307093A1 (en) * 2007-06-07 2008-12-11 Samsung Electronics Co., Ltd. Method and system for managing resource consumption by transport control protocol connections
US20080307037A1 (en) * 2007-06-07 2008-12-11 Yahoo! Inc. Client Notification Mechanism Over HTTP
US8271777B2 (en) * 2008-09-05 2012-09-18 Psion Teklogix Inc. Secure host connection
JP5239966B2 (ja) * 2009-03-17 2013-07-17 富士通株式会社 中継装置、テナント管理プログラム
JP5091273B2 (ja) 2010-04-23 2012-12-05 株式会社エヌ・ティ・ティ・ドコモ 通信端末及びアプリケーション制御方法
JP5361924B2 (ja) * 2011-02-28 2013-12-04 株式会社東芝 データ送信装置、データ通信装置および通信プログラム
US8667183B1 (en) * 2011-03-20 2014-03-04 Israel L'Heureux Server-side HTTP translator
JP5695537B2 (ja) 2011-09-30 2015-04-08 株式会社東芝 サーバ、サーバ制御方法、サーバ制御プログラム

Also Published As

Publication number Publication date
JP2014103553A (ja) 2014-06-05
US20140143315A1 (en) 2014-05-22
US9992309B2 (en) 2018-06-05

Similar Documents

Publication Publication Date Title
EP2744169B1 (en) Method and apparatus for playing streaming media files
US9215283B2 (en) System and method for mobility and multi-homing content retrieval applications
US20150271233A1 (en) Method and apparatus for dash streaming using http streaming
WO2020140729A1 (zh) 数据传输方法、装置、计算机可读介质及电子设备
JP6129526B2 (ja) 通信装置、通信方法およびプログラム
JP5913258B2 (ja) 中継装置及びデータ転送方法
JP5807710B2 (ja) コンテンツ配信システム、コンテンツ配信方法及びプログラム
WO2015043406A1 (zh) 获取流媒体数据的方法、装置及存储介质
JP4988487B2 (ja) データの転送方法、装置、プログラム
US20170222874A1 (en) Method and apparatus of performing remote management of a managed machine
WO2009093473A1 (ja) 中継装置、端末、優先通信制御方法、プログラム及び記録媒体
JP2005184165A (ja) トラフィック制御装置およびそれを用いたサービスシステム
CN109347674B (zh) 一种数据传输的方法、装置及电子设备
JP2008167359A (ja) Ip電話システムにおける所分割方法,ファイル更新方法及びip電話システム
JP4508210B2 (ja) 受信装置及び受信システム
JP2009265932A (ja) データ転送方法とプロキシサーバおよびストレージサブシステム
US11973824B2 (en) Method for data transmission of audio and video in end-to-end system
JP4415391B2 (ja) データをネットワークに送信する方法及び装置並びにデータをネットワークから受信する方法及び装置
JP2010213338A (ja) 受信装置
CN109688085B (zh) 传输控制协议代理方法、存储介质及服务器
KR101410510B1 (ko) Sctp를 이용한 데이터 전송 방법 및 장치
JP2009071766A (ja) 受信端末装置
WO2015096012A1 (zh) 一种会话处理方法及设备
WO2015172320A1 (zh) 视频缓存切换处理方法、装置和系统
JP2017163346A (ja) 通信装置、方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150915

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160920

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161121

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170412

R151 Written notification of patent or utility model registration

Ref document number: 6129526

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151