JP6359184B2 - Rtcクライアントとrtcサーバとの間のrtc通信コネクションを確立するときにアプリケーションレイヤ・ゲートウェイ・ファイアウォールをトラバースするための通信装置および方法 - Google Patents

Rtcクライアントとrtcサーバとの間のrtc通信コネクションを確立するときにアプリケーションレイヤ・ゲートウェイ・ファイアウォールをトラバースするための通信装置および方法 Download PDF

Info

Publication number
JP6359184B2
JP6359184B2 JP2017522046A JP2017522046A JP6359184B2 JP 6359184 B2 JP6359184 B2 JP 6359184B2 JP 2017522046 A JP2017522046 A JP 2017522046A JP 2017522046 A JP2017522046 A JP 2017522046A JP 6359184 B2 JP6359184 B2 JP 6359184B2
Authority
JP
Japan
Prior art keywords
rtc
firewall
server
signaling
client
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.)
Expired - Fee Related
Application number
JP2017522046A
Other languages
English (en)
Other versions
JP2017536032A (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.)
Unify GmbH and Co KG
Original Assignee
Unify GmbH and Co KG
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 Unify GmbH and Co KG filed Critical Unify GmbH and Co KG
Publication of JP2017536032A publication Critical patent/JP2017536032A/ja
Application granted granted Critical
Publication of JP6359184B2 publication Critical patent/JP6359184B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • 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/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1023Media gateways
    • 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/10Architectures or entities
    • H04L65/1045Proxies, e.g. for session initiation protocol [SIP]
    • 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/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • 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/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、RTCクライアントとRTCサーバとの間のRTC通信コネクションを確立するときにアプリケーションレイヤ・ゲートウェイ・ファイアウォールをトラバースするための請求項1記載の方法、および上述の方法を実施可能な請求項8記載の通信装置に関する。さらに本発明は、請求項6記載の対応するコンピュータプログラム製品、およびこのコンピュータプログラム製品が記憶されている請求項7記載の機械読み取り可能な記憶媒体にも関する。
本発明はごく一般的には、アプリケーションレイヤ・ゲートウェイ・ファイアウォール(以下では通例、略して「ファイアウォール」と称する)のトラバースに関するものであり、換言すれば、たとえばVoice over IP (VoIP)またはVideo over IPによる通信のための、上述のファイアウォールを介したデータパケットの通過に関する。これらの通信形態は、いわゆるリアルタイム転送プロトコル通信(RTP通信)に属する。一般性を狭めるものではないが、以下の説明は、上述のようなRTC通信(RTC = Real Time Communications)の特別な適用事例に基づくものであり、つまりWebブラウザを介して行われるWebRTC通信に基づくものである。
ファイアウォールはかなり以前から、VoIPまたはVideo over IPを介した通信の伝達にとっては障害物である。その理由は、RTP音声パケットまたはビデオパケット(RTP = Real−Time Transport Protocol, [RFC3550]参照)に対し、VoIP標準(H.323, SIP[RFC3261], ...)においてUDPポート番号(User Datagram Protocol)が動的に取り決められることにある。
厳密に指定された標準シグナリングプロトコル(H.323/H.245(H.323はメディアデータの取り決めのためにH.245を用いる)、SIP/SDP (Session Initiation Protocol/Session Description Protocol), XMPP/Jingle (Extensible Messaging and Presence Protocol), MGCP (Media Gateway Control Protocol [RFC3435]等)を用いて、ファイアウォールメーカーは、(UDPポート番号の処理に関連するシグナリングパートの)特定のプロトコルパートの実装により、動的な読み出しが可能である。これによってファイアウォールは、動的に取り決められるUDPポートを、伝送すべき音声/ビデオのRTPパケットのために開放および閉鎖することができるようになる。このような公知の基本方式は、ファイアウォール・アプリケーションレイヤ・ゲートウェイ(=ALGファイアウォール、以下では略してファイアウォール)とも称する。
WebRTCのためのシグナリングプロトコルは標準化されていないことから、各メーカーはそれぞれ独自のプロプライエタリなプロトコルを用いてもよいし、または各メーカーは別の選択肢として、公知のプロトコルに基づき構築してもよい。しかしながら結局のところ、ALGファイアウォールのメーカーにとって問題になるのは、たとえばSIP/SDPの場合であれば当てはまるように、1つの決められたシグナリングプロトコルに基づき構築することはできず、したがってシグナリングメッセージにおいてポート情報を見つけるために、それを検査できないことである。
理解を深めるために、次に図5を参照しながら、これまで「WebSocketを介したSIP」のために実現されているような、ALGファイアウォールのトラバースについて概略的に説明する。最初にブラウザ22は、メッセージN01「HTTPリクエスト」をWebサーバ32に送信し、Webサーバ32は(JavaScript/HTML5用の)ファンクションユニット24へのメッセージN02「HTTPレスポンス」によって、メッセージN01に対して応答し、これによってHTTPコネクションが確立される。アップグレード手順において、正確に言えば、WebRTCクライアント20がWebSocketサーバ34へ、HTTPコネクションからWebSocketコネクションへの「WebSocketアップグレードリクエスト」として送信するメッセージN91において、WebRTCクライアント20とWebSocketサーバ34との間でSIPの使用について取り決めが行われる。このようにしてファイアウォール40は、SIPが使用されることを識別する。この場合、当然ながら、他の標準化プロトコルの取り決めも可能であり、たとえばXMPP(XMPPはSDPではなくJingleを使用する。Jingleは、RTCを許容するXMPPのそれ相応の拡張である)、H.323, MGCPなどの取り決めも行うことができる。WebSocketサーバ34からメッセージN92としてアップグレードレスポンスを受信した後、WebRTCクライアント20は、メッセージN93をWebRTCサーバ30へ送信し、これに応答してファイアウォール40は、既知のSIP/XMPP構造に基づきSDPデータをサーチし、対応するRTPポートを開放する。この取り決めは、対応するメッセージN94を用いてWebRTCサーバ30からWebRTCクライアント20へ、SDPレスポンスにより確認応答される。その後、メディアデータを交換することができ、この交換にあたり、他のプロトコルたとえばRTP (Realtime Protocol)、STUN (Session Traversal Utilities for NAT, NAT = Network Address Translation), ICE (Interactive Connectivity Establishment)などが用いられる。
WebSocketプロトコルには、使用されるシグナリングプロトコル(この例ではSIP)を識別するフィールドがオプションとして含まれている。このことは特に、情報欄14内において「ブラウザリクエスト」と「Webサーバレスポンス」の下に挙げられている。
これに関連してWebRTCによる問題点は、WebRTCのためのシグナリングプロトコルが標準化されていない、ということである。つまりWebRTCサーバがWebRTCクライアントとのシグナリング通信をどのように処理するのかは、WebRTCサーバ各々に課されている。WebRTCにおける独自のないしはプロプライエタリなシグナリングアプローチによって、ファイアウォールメーカーは、ファイアウォールをトラバースもしくは横断するための一般的なALGファイアウォールソリューションいわゆるWebRTCトラバーサルを、実現することができない。このことによって、WebRTCソリューションの進展において問題が引き起こされる可能性がある。
WebRTCは、商業的なアプリケーションがようやくスタートしたところである。ただしその際に前提とすることができるのは、WebRTCがWebベースのリアルタイム通信の最も有力な技術になる、ということである。
WebRTCのために複数のファイアウォール技術が知られており、それらの技術をWebRTCのためのファイアウォールトラバーサルについて説明する。
a.たとえばSIPまたはH.323の場合のように、WebRTCのために定められたファイアウォールのUDPポート領域についても、持続的に開放することができる。ただしこのことは、セキュリティ要求の厳格な企業にとっては望ましくない。
b.HTTP (Hypertext Transfer Protocol)トンネリング:この場合、ファイアウォールはたいてい、1つのポートを常時開放している。このポートはTCP−Port 80 (TCP = Transmission Control Protocol)であり、このポートを介してHTTPデータトラフィック[RFC2616参照]も伝送される(TCP/httpポート)。この着想は、WebRTCクライアントとTURNサーバ(Traversal Using Relays around NAT, NAT = Network Address Translation, [RFC5766]参照)との間のTCPトンネルを、ファイアウォールの他方の側に構築する、というものであり("TURN access via TCP")、ファイアウォールを介してUDP/RTP音声/ビデオパケットとデータパケットを通過させるためにこれが用いられる。多くのファイアウォール/企業は、任意のどのようなクライアントからのHTTPトラフィックも容認するのではなく、特定の内部サーバ(HTTPプロキシ)から到来したもののみを容認する、というように制約されている。このケースでは、WebRTCブラウザは、公知のHTTP−CONNECT方式[RFC2817]を用いてHTTPプロキシに対し、ファイアウォールを通過する上述のTCPトンネルを構築するよう依頼して、それをあとからTURNプロトコルのために使用できるようにする。たとえばIETFにおいて目下議論中のさらに別の形態によれば、ファイアウォールを通過する"TURN over WebSockets"トンネルを用いることができる[draft−chenxin−behave−turn−WebSocket]。
HTTPトンネリングのこのようなソリューションは、基本的に実現可能であるが、連続的な使用を可能にするためには、様々な前提条件を満たさなければならない。この場合、以下のことが保証されていなければならない。すなわち、
・WebRTCクライアント(ブラウザ)は、既述の特徴を実装済みである(たとえばHTTP CONNECT)。この点については、ブラウザメーカー(Google, Microsoft, Mozilla, ..)に左右される。スマートフォンやタブレットなどのモバイルWebRTCクライアント(ネイティブWebRTCアプリケーション)のためには、目下のところこの方法を自分で実装しなければならない。
・企業は、必要とされるインフラストラクチャを構築済みであり、サポートしている(HTTPプロキシ)。
・WebRTCソリューションプロバイダは、そのソリューションの一部分としてTURNサーバをファイアウォールの後方に設置済みである。
c.ファイアウォール/Port Control Protocol [RFC6887](たとえばCisco)。この着想は、WebRTCクライアントが音声パケットまたはビデオパケットを送信する前に、所定のUDPポートを開放するよう、独自のプロトコルでファイアウォールに依頼する、というものである。ファイアウォールコントロールプロトコルは、約2003年頃から知られている。ただし実際には、このアプローチは定着しておらず、その理由とは特に、セキュリティ、認証、権限に関して懸念があることによる。企業(CIO、ITセクション)の多くは、自身のファイアウォールを多数のクライアントまたはサーバによって「制御」させることを望んでいない。
d.ポート多重化:このアプローチによれば、1つのWebRTC呼のうちの複数またはすべてのRTPストリーム(たとえば1つの呼のすべての音声ストリームおよびビデオストリーム)から、システム全体の複数またはすべての呼のRTPストリーム全体に至るまで、単一のUDPポートを介して伝送することができる。このアプローチは、僅かなポートリソースしか必要としないことから、ファイアウォールのポートの問題を軽減するが、制約のあるファイアウォールをまずは乗り越える、という基本的な問題点を解決するものではない。さらに、WebRTCクライアントまたはWebRTCサーバのどのようなメーカーであっても、SIP/XMPP/H.323ベースのシステムと共働してポート多重化をサポートするわけではない(オプション)。ポート多重化は特に、大規模なスケーリング要求から極めて大規模なスケーリング要求を伴うWebRTCソリューションのメーカーのためのオプションである(たとえば公衆サービス、在宅サービス、たとえばGoogleなど)。
したがって本発明の課題は、上述の欠点を克服し、あらゆるセキュリティ要求を充足する一方で、容易に取り扱うことのできる、ファイアウォールのトラバース方法を提供することである。さらに本発明の課題は、かかる方法を実施可能な相応の通信装置を提供することである。
この課題は、(一般にコンピュータによって実現される)請求項1記載の方法、請求項6記載のコンピュータプログラムもしくはコンピュータプログラム製品、このコンピュータプログラム製品が記憶されている請求項7記載の機械読み取り可能なデータ媒体、さらに請求項8記載の通信装置によって解決される。従属請求項には、本発明の有利な実施形態が記載されている。
本発明によれば、たとえばHTTPリクエストを介してWebサイトを開くときに行われるようなRTC通信コネクションの確立が望まれるとき、RTCクライアントとRTCサーバは、プロプライエタリな(つまり標準化されていない)RTCシグナリングプロトコルを用いて、RTC通信コネクションのために必要とされるデータパケットを伝送できるようにする目的で、ALGファイアウォールのいずれのポートが必要とされるのか、についての取り決めを行う。この取り決めにおいて、RTCクライアントとRTCサーバは、プロプライエタリなRTCシグナリングプロトコルのコンテキストにおいて、つまりこのようなプロトコルの構成部分として、使用すべきポートに関する情報を見つけ出すことのできる少なくとも1つの標準化されたメッセージ要素を使用する。ファイアウォールは、プロプライエタリなRTCシグナリングプロトコルの固有の情報を有しておらず、RTC通信コネクションの確立にあたり、RTC通信コネクションを介して交換すべきデータパケットを伝送できるようにする目的で、ファイアウォールのいずれのポートがRTCクライアントとRTCサーバとによって取り決められたのかを、つまり必要であるとみなされたのかを、標準化されたメッセージ要素を使用して検出する。換言すれば、ファイアウォールは、いずれのポートが必要とされるのかを「聞き取る」ことができ、したがってファイアウォールは、RTCクライアントとRTCサーバとの取り決め結果に従って、必要とされるポートを動的に開放および閉鎖することができる。
通信プロトコルにおけるメッセージ要素は、1つまたは複数のシグナリングメッセージの構文上の1セクションであり、そのセクション内には、通信ネットワークのネットワークコンポーネントおよび/または端末機器において交換技術的なプロセス中に評価される情報が符号化されている。メッセージ要素において、標準化された要素とメーカー固有の(プロプライエタリな)要素とが区別される。メーカー固有の要素は、通信ネットワークの基本機能にとって必要不可欠なものではなく、他のメーカーのネットワークコンポーネントおよび/または端末機器は通常、それらの要素を無視する。本発明による標準化されたメッセージ要素には、端末機器からのおよび端末機器へのメディアデータの伝達のために構築されるコネクションに関して識別を行う情報が含まれており、これに応じてファイアウォールはこのコネクションを、たとえばポートのイネーブルなどによって送信方向および受信方向で通過させなければならない。この種のメッセージ要素についてのさらに詳しい説明は、欧州特許出願公開第1317150号明細書(EP 1 317 150 A2)を参照されたい。
したがって換言すれば本発明による方法は、基礎を成す問題点を以下のようにして解決するものである。すなわち、交換すべき音声パケットおよび/またはビデオパケットのためにいずれのポートもしくはいずれのUDPポートが動的に取り決められるのかを、ファイアウォールがRTCコネクション構築においてリスニングできるようにし、つまりはRTPトラフィックのために対応するUDPポートを動的に開放および閉鎖できるようにする拡張が、RTCシグナリングチャネルの構成部分として用いられる。この場合、上述のコンテキストは、RTCシグナリングチャネルの構築中、RTCシグナリング中、またはRTCシグナリングに続いて、シグナリングメッセージ内であとでRTPポートを見つけ出すために用いられる情報を含む付加的なフィールドの形態で、形成することができる。ファイアウォールによる読み取りにあたり、UDP/RTPポート制御つまりは開放および閉鎖の実現に十分であるコンテキストを、RTCシグナリングパートに対して定義する拡張の設定もしくは標準化を、以下ではWebRTCシグナリングと称し、または略してWebRTCSigとも称する。
これらのことから、本発明による方法によって以下の複数の利点が得られる。すなわち、
・セキュリティ要求について高いハードルとなってしまうファイアウォールコントロールプロトコルの実装が不要である。
・ファイアウォールにおけるポートを、またはそれどころかポートの領域を、持続的に開放状態に維持しておく必要がない。このように開放状態に維持しておくのは、セキュリティ上の理由から危険な状況となるおそれがある。ここで付言しておくと、複数またはすべてのUDPストリームがただ1つのUDPポートを介して伝送されるポート多重化技術が、おそらくは将来、まずは大規模なソリューションのメーカーによってサポートされることが見込まれる。
・HTTPトンネリングをベースとするソリューションを適用できない状況において、本発明による方法は比較的簡単でありながら確実に実現可能な選択肢であり、これによってWebRTCの急速な普及が促進される可能性がある。本発明による方法を使用することによってたとえば、特に所定のWebRTCアプリケーションに対し持続的なソリューションを提供できるようにするための、ファイアウォールソリューションを実現することができる。
・しかも本発明による解決手段を、たとえばIETFを介するなどして簡単に標準化することができ、したがってWebRTCベースのソリューションおよびWebRTCファイアウォールのすべてのメーカーにとってオープンな汎用的な実装を実現できるようになる。
セキュアなWebSocketプロトコル(WSS)、すなわちTLS(Transport Layer Security)を介したWebSocketコネクション、が使用される場合、ファイアウォールは、WSSコネクションに含まれる比較的高位のWebRTCシグナリングパートをそのままでは読み取ることができない。この問題に対処するためにたとえば、TLSホップバイホップ・コンテキストの使用がソリューションアプローチとして役立つ可能性があり、これはセッションボーダコントローラ(SBC)の場合と同様に実施される。ALGファイアウォールはTLSを終了させ、すなわち暗号化はファイアウォールまでしか、もしくはファイアウォールからしか行われない。TLSは、いずれにせよホップバイホップであるにすぎない。したがってALGファイアウォールは、一方ではALGファイアウォールの一方の側におけるWebRTCクライアント(またはプロキシ)までのTLSリンクと、ALGファイアウォールの他方の側におけるWebRTCサーバ(またはアクセスノード)とのTLSリンクとを有している。
本発明の1つの有利な実施形態によれば、RTCクライアントとRTCサーバとの間で、必要とされるポートを取り決めるために、つまりRTCシグナリングに関する情報とパラメータを交換するために、予め定義された(任意にナンバリングされた)複数のシグナリングタイプのうちの1つが用いられる。このようなシグナリングタイプは、RTCクライアントとRTCサーバとの間でHTTPコネクションが最初に確立された後、いわゆる「WebRTCSigハンドシェーク」によって交換される。その際、1つの有利な実施形態によれば、WebRTCSigハンドシェークは、HTTPコネクションからWebSocketコネクションへのアップグレード手順の一部分として実施され、RTCシグナリングに対するコンテキストを生成する。このために場合によっては、WebSocketプロトコルの拡張が必要とされ、そのような拡張のためにたとえば、ヘッダ内の特別なもしくは定義された(通常は付加的な)フィールドが用いられる。これに対する代替案として、HTTPコネクションがWebSocketコネクションに置き換えられた(もしくはアップグレードされた)後ではじめて、WebRTCSigハンドシェークを実施してもよく、このような置き換えは、好ましくは付加的な数バイトしか含まない独自のプロトコルによって実行され、そのようなプロトコルは"Thin Layer Protocol"もしくは"WebRTCSig Over WebSockets"とも呼ばれる。アップグレード手順後にはじめてWebRTCSigハンドシェークを実施する、最後に挙げた選択肢に対して、アップグレード手順の一部分としてWebRTCSigハンドシェークを実施する、最初に挙げた選択肢によれば、時間的に1つのラウンドトリップが節約される、という利点が得られる。厳密な時点もしくはタイミングについて言えば、WebRTCSigハンドシェークはたとえば、RTCクライアントがJavaScript (JSクライアント)をRTCサーバからロードした後に行われる。
本来のWebRTCSig情報は、使用されるRTCシグナリングプロトコルに従い、たとえば以下のシグナリングプロトコルのバリエーションを含むことができる。
1)WebRTCSigタイプ1=SIP and SDP over WebSockets(WebSocketを介したSIPおよびSDP)
2)WebRTCSigタイプ2=XMPP and Jingle over WebSockets(WebSocketを介したXMPPおよびJingle)
3)WebRTCSigタイプ3="Proprietary WebSockets Signalling with SDP Embedded (Offset)"(「SDP埋め込み型の(オフセットを有する)プロプライエタリWebSocketシグナリング」)
すなわち、SDPプロトコルメッセージを含むWSシグナリングメッセージ(WS = WebSocket)(たとえばSDP OfferによるWSセットアップ;SDP AnswerによるWS Connect)。ファイアウォールがSDP Offer/Answerメッセージの開始を見つけられるように、SDP Offerメッセージの始点をアドレッシングするオフセット値を付加することができる/付加しなければならない。ここで述べておきたいのは、以下の2つの理由からSDPがセッションシグナリングとして提供される、ということである。すなわち、
a)WebRTCブラウザAPI(W3C = World Wide Web Consortiumで標準化されている)バージョン1は、SDPベースである。
b)SDPは、SIPにおいてもセッション記述プロトコルである。
RFC3264においてOffer/Answerモデルが例示的な標準化メッセージ要素として挙げられており、これには"m=video 53000 RTP/AVP 32"という行が含まれていて、その意味は、ポート53000を介してビデオを伝送せよ、ということである。
このことからSDPによって、SIPワールドとの共働が簡単になる一方、セッションシグナリングとWebRTC−APIとのクライアント側の共働が簡単になる。
メーカーがプロプライエタリなシグナリングプロトコルを用いるときに、それにもかかわらずメーカーは、かなりの確率でSDPをプロプライエタリなメッセージと共に使用する。その理由は、WebRTC−APIも同様にSDPを使用するからである。本発明によるWebRTCSigタイプ3であるとしたならば、ALGファイアウォールはbyte 77のところでスタートすべきであること、および(やはり標準化されているという理由から)SDPプロトコルとして解釈すべきであることが、付加情報として共にシグナリングされる。その前に存在するすべてのものは、つまりbyte 76まではこのバイトも含めて、「プロプライエタリなセットアップメッセージ」の一部分である。
別の選択肢として、ブラウザはWebRTC−APIのSDPを、他のものにマッピングしてもよく、たとえばH.245、Jingleまたはプロプライエタリなフォーマットにマッピングしてもよく、これをRTCシグナリングのために用いることができる。この場合には、これを異なるWebRTCSigタイプによって表すことができる。このバリエーションは、シグナリングプロトコルをシグナリングメッセージと共に用いる、本発明による方法の1つの有利な実施形態に対応するものであり、このシグナリングメッセージによれば、オフセットが埋め込まれたセッション記述プロトコルのOfferメッセージが用いられ、この場合、オフセットによってこのメッセージの始点がアドレッシングされる。
4)WebRTCSigタイプ4=明示的なSDPプロトコル
この場合であれば、WebRTCのためにSDPプロトコルを明示的に標準化することができる。
5)WebRTCSigタイプ5=本発明による予め定義されて伝達されたシンタックスにより取り決められたポート
6)WebRTCSigタイプ6=RESTfulスタイル(REST = Representational State Transfer)で取り決められたポート:ポートを含む(サブ)構造が定義された既知のURI(Uniform Resource Identifier)
7)WebRTCSigタイプ7=RESTfulスタイルで取り決められたポート:ポートを受け取るべきリソース(サーバ)を指すポインタを含む既知のURI
最後に挙げた2つのバリエーションは、やはり本発明による方法の1つの有利な実施形態に対応し、これによればRTCシグナリングメッセージにおいて、取り決められたポートがRESTfulスタイルで定義される。
8)WebRTCSigタイプ8=シグナリングメッセージ内のSDPのスタートを表すテキスト文字列がパラメータとして挿入される。この種の文字列は任意のものであり、メッセージの他の部分に再度出現しないものであればよい。
本発明が基礎とする課題はさらに、少なくとも1つのRTCクライアントと、少なくとも1つのRTCサーバと、複数のポートを備えた少なくとも1つのファイアウォールとを含む通信装置によって解決される。本発明によればファイアウォールは、これまで説明してきた方法を実施できるように構成された制御装置を備えている。
さらに、これまで説明してきた方法を実施するためのコンピュータプログラム製品、ならびにこの種のコンピュータプログラム製品が記憶されている機械読み取り可能なデータ媒体も、本発明に属するものとみなされる。
IETFは、現時点での理解によれば、たとえばSIPまたはH.323について実施したような、完全なWebRTCシグナリングプロトコルの標準化を行わないと思われる。したがってALGファイアウォールは、本来のRTPパケットが送信される取り決められたUDPポートを見つけ出す目的で、あらゆる環境で動的にシグナリングプロトコルを理解しなければならない場合には、WebRTCアプリケーションのすべてのメーカーのWebRTCシグナリングプロトコルを実装しなければならない。このことは、選択されたシグナリングプロトコルを複数のカテゴリに分類することによって(つまりたとえば任意にナンバリングすることで)、回避することができる。ALGファイアウォールが、WebRTCシグナリングタイプ1であることを検出もしくは読み取ったならば、そのファイアウォールは、SIP/SDPに従って構文解析しなければならない、ということを理解する。これに対しALGファイアウォールが、WebRTCシグナリングタイプ3がオフセット77と共に用いられる、ということを読み取ったならば、ALGファイアウォールは、そのメッセージをbyte 77からSDPプロトコルとして構文解析しなければならないことを把握する、といった具合に行われる。WebRTCシグナリングタイプ4であれば、byte 1からSDPプロトコルである。さらにWebRTCシグナリングタイプ5に、明示的なソースおよび宛先のUDPポートの記述が加えられていれば、ALGファイアウォールに正確にUDPポートが伝達され、この場合にはSDPプロトコルは用いられない。
本発明のその他の利点、特徴および独自性は、図面を参照しながら有利な実施形態について以下で説明していくことで明らかになる。
本発明による通信装置の1つの実施形態に関する概略図。 本発明によるファイアウォールトラバース方法の実施形態について略示した流れ図。 本発明によるファイアウォールトラバース方法の実施形態について略示した流れ図。 本発明によるファイアウォールトラバース方法の実施形態について略示した流れ図。 すでに知られているファイアウォールトラバース方法について略示した流れ図。
図1に示した本発明による通信装置10には、RTCクライアント20、RTCサーバ30およびファイアウォール40が含まれている。一方の側におけるクライアント20を伴うファイアウォール40と、他方の側におけるサーバ30とのメッセージ交換が、いくつかの少数の矢印によってシンボリックに表されている。さらにこの図には、ファイアウォール40が複数のポートを備えていることも示されており、それらのポートは参照符号P1, P2, P3を用いてごく概略的に表されている。ファイアウォール40には、制御装置42たとえばCPUまたはプロセッサ群が含まれており、これによってファイアウォール40の機能が実現される。さらにこの図には、データ媒体の一例としてCD−ROM90が示されており、そこにコンピュータプログラムもしくはコンピュータプログラム製品92が記憶されていて、本発明による方法を実現する目的で、相応のコンピュータプログラム92を含むデータ媒体90が制御装置42に提供される。
図2には、本発明によるファイアウォールトラバース方法の第1の実施形態が示されており、この実施形態によれば、上述の説明によるRTCシグナリングタイプ3が実現される。最初にブラウザ22は、メッセージN01「HTTPリクエスト」をWebサーバ32に送信し、Webサーバ32は(JavaScript/HTML5用の)ファンクションユニット24へのメッセージN02「HTTPレスポンス」によって、メッセージN01に対して応答し、これによってHTTPコネクションが確立される。その後、ファンクションユニット24は、WebSocketアップグレード手順の過程で、相応のメッセージN11をWebサーバ32内のWebSocketサーバ34へ送信し、この場合、メッセージN11には、WebRTCシグナリングタイプとSDP_Offsetマーカが含まれている。WebSocketサーバ34は、WebRTCクライアント20に対し、メッセージN12によってアップグレード手順を確認する。最後にWebRTCクライアント20は、WebRTCサーバにメッセージN13を送信し、このメッセージには、シグナリングメッセージが255のSDP_Offsetでスタートする、という情報が含まれている。このようにしてファイアウォール40は、SDPをbyte 255のところで見つける。WebRTCサーバ30からWebRTCクライアント20への相応のメッセージN14(サーバとクライアントの双方はOffer/Answerプロトコルを使用)により、シグナリングがSDP_Offsetマーキングによって終了する。このような形式のシグナリングによって、ファイアウォール40は、自身にとって重要な情報がどこにあるのか(ここではbyte 255以降)を「読み取る」ことができる。この情報は、新たなヘッダフィールド内で伝達され、そこには、情報欄11内に「ブラウザリクエスト」という見出しの下に最終行として書き込まれているように、タイプとSDP_Offsetが記述されている。情報欄11内において「Webサーバレスポンス」という見出しの下の最終行に示されているように、WebRTCサーバ30はWebRTCクライアント20に対し、取り決められたシグナリングタイプはNo.3であることを確認して、"OK"と共に、取り決められたSDP_Offsetマーキングによってシグナリングが行われる、ということを知らせる。
図2に示されているその他の事項は、この技術分野における一般的な事項に相応するものであり、したがって別途説明する必要はない。
シグナリングが首尾よく完了した後、ファイアウォール40を通り抜けてメディアデータを伝送することができ、そのために他のプロトコルたとえばRTP (Realtime Protocol)、STUN (Session Traversal Utilities for NAT, NAT = Network Address Translation), ICE (Interactive Connectivity Establishment)などが用いられる。
既述のように、本発明によればWebRTCシグナリングのタイプが伝達され(この実施例では任意に与えられたNo.3のタイプ)、SDP_Offsetという記号がある個所に、シグナリングメッセージ内のSDPを指すポインタを表すテキスト文字列が存在する。この種の文字列は任意のものであり、メッセージの他の部分に再度出現しないものであればよい。この実施例で挙げた"SDP_Offset"という記号の代わりに、たとえば十分な長さのランダムなキャラクタシーケンスであっても、上述の要求を満たすことができる。
図3に示した本発明による方法の第2の実施形態が第1の実施形態と相違する点は、メッセージN21およびN22を用いたWebSocketコネクションへのアップグレード手順において、異なるシグナリングタイプ(この実施例では5)とファイアウォール40が開放すべきポート値とが伝送されることである。換言すれば、シグナリングメッセージN23には、この実施例では"Open_Ports: 62255, 62256, 31234, 31235"で表された構成要素が含まれており、確認メッセージN24がこれに続く。これに応じて、ファイアウォール40は対応するポートを開放する。したがって新たなヘッダフィールドには、シグナリングタイプNo.5と"Open_Ports"の記述がエントリされる。最後の個所には、シグナリングメッセージにおけるメディアのためのRTPポートを表すテキスト文字列が存在する。この文字列は任意のものであるが、メッセージの他の部分に再度出現しないものであるのが望ましい。情報欄12内において「ブラウザリクエスト」の見出しの下の最終行に記載された具体例である"Open_Ports"の代わりに、たとえば十分な長さのランダムなキャラクタシーケンスであっても、上述の要求を満たすことができる。同様に、WebRTCクライアント20に対するWebRTCサーバ30のレスポンスには、取り決められたNo.5のシグナリングタイプの確認、およびポートが開放されたという(オプションとしての)確認が含まれている(情報欄12も参照されたい)。このようにして、ポート値を用いたシグナリングが実行される。
図4に示した本発明による方法の第3の実施形態が、これまで述べてきた2つの実施形態と相違する点は、メッセージN31およびN32を用いたWebSocketコネクションへのアップグレード手順において、異なるWebRTCシグナリングタイプつまりNo.8と、シグナリングメッセージN33およびN34におけるSDPのスタートを表すテキスト文字列とが伝達されることである。したがってファイアウォール40は、SDPが埋め込まれた未知のプロトコルが用いられることを識別し、テキスト文字列"Here_starts_SDP"を探索し、SDP内に含まれていたRTPポートを開放する。その結果、新たに導入されたヘッダフィールドには、シグナリングタイプとしてNo.8が挙げられており、情報欄13に示されているように「ブラウザリクエスト」内にテキスト文字列"Here_starts_SDP"が含まれている。したがってWebRTCクライアント20に対するWebRTCサーバ30の相応のレスポンス(メッセージN34内)にも、取り決められたシグナリングタイプ8と、SDP_Start文字列によりシグナリングが実施されるという確認とが含まれている。たとえばここで挙げたテキスト文字列"Here_starts_SDP"の代わりに、十分な長さの他のランダムなキャラクタシーケンスであっても、それがメッセージの残りの部分で再度出現しないかぎり、使用することができる。
ここで確認しておくと、たとえば使用されるクライアント、サーバ、コネクションおよびプロトコルの種類や形態など、図示されている実施形態を参照しながら説明してきた本発明の特徴は、それらとは異なるように記載されていたり、または技術的な理由から当然禁止される場合を除いて、さらに別の実施形態において設けることもできる。また、組み合わせとして説明した個々の実施形態の上述のような特徴のうち、該当する1つの実施形態の特徴すべてが常に必ずしも実現されなくてもよい。
10 通信装置
11〜14 情報欄
20 (Web)RTCクライアント
22 ブラウザ
24 ファンクションユニット
30 (Web)RTCサーバ
32 Webサーバ
34 WebSocketサーバ
40 ファイアウォール
42 制御装置
90 データ媒体
92 コンピュータプログラム製品
N01〜N94 メッセージ
P1〜P3 ポート

Claims (7)

  1. 標準化されていないRTCシグナリングプロトコルを用いて、RTCクライアント(20)とRTCサーバ(30)との間でRTC通信コネクションを確立するときに、前記標準化されていないRTCシグナリングプロトコル情報を有していないアプリケーションレイヤ・ゲートウェイ・ファイアウォール(40)をトラバースするための方法であって、
    ・前記RTCクライアント(20)と前記RTCサーバ(30)とが、前記RTC通信コネクションを確立するときに、前記ファイアウォール(40)のいずれのポート(P1, P2, P3)を、前記RTC通信コネクションを介して交換すべきデータパケットのために必要とするのかを取り決めるステップであって、当該取り決めにおいて、前記RTCクライアント(20)と前記RTCサーバ(30)とは、前記標準化されていないRTCシグナリングプロトコルの構成部分として、使用すべきポートに関する情報を見つけ出すことのできる少なくとも1つの標準化されたメッセージ要素を使用する、ステップと、
    ・前記RTC通信コネクションを確立するときに、前記ファイアウォール(40)は、前記標準化されたメッセージ要素を用いて、前記ファイアウォール(40)のいずれのポート(P1, P2, P3)が、前記RTC通信コネクションを介して交換すべきデータパケットのために前記RTCクライアント(20)と前記RTCサーバ(30)とにより必要とされると取り決められたのかを検出するステップと、
    ・前記ファイアウォール(40)が、必要とされる前記ポート(P1, P2, P3)を、前記取り決めの結果に従い動的に開放および閉鎖するステップと、
    を含み、
    必要とされる前記ポート(P1, P2, P3)の取り決めのために、定義されたシグナリングプロトコルバリエーションを用い、当該シグナリングプロトコルバリエーションを、前記RTCクライアント(20)と前記RTCサーバ(30)との間のシグナリング伝送コネクションの確立後、RTCシグナリングを介して交換する、
    アプリケーションレイヤ・ゲートウェイ・ファイアウォール(40)をトラバースするための方法。
  2. 前記シグナリングプロトコルバリエーションの交換を、HTTPコネクションからWebSocketコネクションへのアップグレード手順の一部分として行う、
    請求項に記載の方法。
  3. 前記シグナリングプロトコルバリエーションの交換のために、WebSocketプロトコルにおける拡張を使用し、特にヘッダ内に定義された1つのフィールドを使用する、
    請求項に記載の方法。
  4. 前記シグナリングプロトコルバリエーションの交換を、独自のプロトコルを使用してHTTPコネクションからWebSocketコネクションへのアップグレード手順を実施した後にはじめて行う、
    請求項に記載の方法。
  5. 請求項1からまでのいずれか1項に記載の方法を実施するためのコンピュータプログラム92)。
  6. 請求項に記載のコンピュータプログラム92)が記憶されている、機械読み取り可能なデータ媒体(90)。
  7. 標準化されていないRTCシグナリングプロトコルを用いて、RTCクライアント(20)とRTCサーバ(30)との間でRTC通信コネクションを確立するときに、前記標準化されていないRTCシグナリングプロトコル情報を有していないアプリケーションレイヤ・ゲートウェイ・ファイアウォール(40)のトラバースを実現可能な通信システム(10)であって、
    ・RTCクライアント(20)と、
    ・RTCサーバ(30)と、
    ・複数のポート(P1, P2, P3)を備えたファイアウォール(40)と
    を備え、
    前記ファイアウォール(40)は、請求項1からまでのいずれか1項に記載の方法を実施するための制御装置(42)を有することを特徴とする、
    通信システム(10)。
JP2017522046A 2014-10-21 2015-10-15 Rtcクライアントとrtcサーバとの間のrtc通信コネクションを確立するときにアプリケーションレイヤ・ゲートウェイ・ファイアウォールをトラバースするための通信装置および方法 Expired - Fee Related JP6359184B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102014015443.2A DE102014015443B4 (de) 2014-10-21 2014-10-21 Telekommunikationsanordnung und Verfahren zum Traversieren einer Application-Layer-Gateway-Firewall beim Aufbau einer RTC-Kommunikationsverbindung zwischen einem RTC-Client und einem RTC-Server
DE102014015443.2 2014-10-21
PCT/EP2015/002040 WO2016062387A1 (de) 2014-10-21 2015-10-15 Telekommunikationsanordnung und verfahren zum traversieren einer application-layer-gateway-firewall beim aufbau einer rtc-kommunikationsverbindung zwischen einem rtc-client und einem rtc-server

Publications (2)

Publication Number Publication Date
JP2017536032A JP2017536032A (ja) 2017-11-30
JP6359184B2 true JP6359184B2 (ja) 2018-07-18

Family

ID=54360428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017522046A Expired - Fee Related JP6359184B2 (ja) 2014-10-21 2015-10-15 Rtcクライアントとrtcサーバとの間のrtc通信コネクションを確立するときにアプリケーションレイヤ・ゲートウェイ・ファイアウォールをトラバースするための通信装置および方法

Country Status (8)

Country Link
US (3) US10382402B2 (ja)
EP (1) EP3210358B1 (ja)
JP (1) JP6359184B2 (ja)
KR (1) KR101813626B1 (ja)
CN (1) CN107079021B (ja)
DE (1) DE102014015443B4 (ja)
RU (1) RU2660620C1 (ja)
WO (1) WO2016062387A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107632988A (zh) * 2016-07-18 2018-01-26 杭州海康威视数字技术股份有限公司 浏览器语音发送和接收方法、装置及语音对讲系统
FR3059505B1 (fr) * 2016-11-28 2019-04-19 Wallix Integration d'une couche protocolaire reseau standard dans un navigateur web par compilation vers webassembly et utilisation d'un websocket.
CN109525624B (zh) * 2017-09-20 2022-01-04 腾讯科技(深圳)有限公司 一种容器登录方法、装置及存储介质
US11323288B2 (en) * 2018-08-07 2022-05-03 Dh2I Company Systems and methods for server cluster network communication across the public internet
US11165891B2 (en) 2018-08-27 2021-11-02 Dh2I Company Highly available transmission control protocol tunnels
US11496472B2 (en) * 2018-11-16 2022-11-08 Mutualink, Inc. System and method for secure access to camera systems
US11964202B2 (en) 2019-02-22 2024-04-23 Mursion, Inc. Peer to peer communication system and method
US11575757B2 (en) 2019-06-17 2023-02-07 Dh2I Company Cloaked remote client access
US10841357B1 (en) * 2019-09-12 2020-11-17 Dialpad, Inc. Using transport layer protocol packet headers to encode application layer attributes in an audiovisual over internet protocol (AVoIP) platform
US11831606B2 (en) 2020-04-29 2023-11-28 Kyndryl, Inc. Dynamically managing firewall ports of an enterprise network
CN111343083B (zh) * 2020-05-22 2020-08-11 支付宝(杭州)信息技术有限公司 即时通信方法、装置、电子设备及可读存储介质
CN112073378B (zh) * 2020-08-12 2022-07-08 福建升腾资讯有限公司 一种基于WebRTC的流媒体端口复用方法、设备及介质
US11563802B2 (en) 2020-11-06 2023-01-24 Dh2I Company Systems and methods for hierarchical failover groups
CN112770072B (zh) * 2020-12-30 2022-12-02 北京北信源软件股份有限公司 一种数据传输方法、装置及存储介质
US20220353335A1 (en) * 2021-04-28 2022-11-03 Microsoft Technology Licensing, Llc Session establishment in remote desktop infrastructure environments
CN113630439B (zh) * 2021-06-30 2023-05-05 网宿科技股份有限公司 实时通信rtc连接方法、服务器及存储介质
CN115361364B (zh) * 2022-10-08 2022-12-20 成都华栖云科技有限公司 一种基于WebRTC的通信协议的数据传输方法
CN117354287B (zh) * 2023-10-09 2024-08-06 广东元能星泰孪生科技创新有限公司 一种基于多路流复用技术的云渲染通信代理优化方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938090B2 (en) 2002-04-26 2005-08-30 Nokia Corporation Authentication and protection for IP application protocols based on 3GPP IMS procedures
JP4619059B2 (ja) 2004-08-12 2011-01-26 エヌ・ティ・ティ・コミュニケーションズ株式会社 端末装置、ファイアウォール装置、及びファイアウォール装置制御のための方法、並びにプログラム
US7570765B1 (en) * 2004-11-02 2009-08-04 Sonicwall, Inc. Method and an apparatus to perform secure real-time transport protocol-on-the-fly
US20110047253A1 (en) * 2009-08-19 2011-02-24 Samsung Electronics Co. Ltd. Techniques for controlling gateway functionality to support device management in a communication system
US8695077B1 (en) * 2013-03-14 2014-04-08 Sansay, Inc. Establishing and controlling communication sessions between SIP devices and website application servers
US9667582B2 (en) * 2013-11-04 2017-05-30 At&T Intellectual Property I, L.P. Per-session invocation of priority services based upon network available information
CN103929438B (zh) * 2014-05-06 2017-02-15 中国联合网络通信集团有限公司 基于网页浏览器通信的防火墙穿越方法、设备和系统

Also Published As

Publication number Publication date
US20190312842A1 (en) 2019-10-10
JP2017536032A (ja) 2017-11-30
US10382402B2 (en) 2019-08-13
CN107079021B (zh) 2019-03-22
EP3210358B1 (de) 2018-10-03
US20210250329A1 (en) 2021-08-12
DE102014015443A1 (de) 2016-04-21
US11012422B2 (en) 2021-05-18
KR20170061174A (ko) 2017-06-02
CN107079021A (zh) 2017-08-18
US20170237708A1 (en) 2017-08-17
KR101813626B1 (ko) 2017-12-29
RU2660620C1 (ru) 2018-07-06
DE102014015443B4 (de) 2016-05-04
EP3210358A1 (de) 2017-08-30
WO2016062387A1 (de) 2016-04-28

Similar Documents

Publication Publication Date Title
JP6359184B2 (ja) Rtcクライアントとrtcサーバとの間のrtc通信コネクションを確立するときにアプリケーションレイヤ・ゲートウェイ・ファイアウォールをトラバースするための通信装置および方法
US11108570B2 (en) Method and apparatus for multimedia communication, and storage medium
EP3145129B1 (en) Method and gateway for communication between browser and telecommunication network
US7694127B2 (en) Communication systems for traversing firewalls and network address translation (NAT) installations
US8549614B2 (en) Establishing internet protocol security sessions using the extensible messaging and presence protocol
US9699237B2 (en) Managed media relay selection for real-time communications
JP2014099160A (ja) ウェブ・リアルタイム通信(webrtc)対話セッションに対する企業ポリシーの分散適用、ならびに関連する方法、システム、およびコンピュータ可読媒体
CN109088958B (zh) 数据传输方法及计算机设备
JP4260659B2 (ja) パケットのnat透過機能を有する端末装置及びそのプログラム
CN103916485A (zh) Nat穿越方法以及服务器
CN111131182B (zh) 一种VoIP通信网络穿透装置及方法
EP2234365A1 (en) Method and system for distributing the local transport address and media gateway and media gateway controller
CN106921624B (zh) 会话边界控制器及数据传输方法
JP4893279B2 (ja) 通信装置および通信方法
JP5103031B2 (ja) ネットワーク通信方法及びそのシステム
Holmberg Web real-time data transport: WebRTC data channels
Andreasen et al. Connectivity Preconditions for Session Description Protocol (SDP) Media Streams
Holmberg et al. An Alternative Connection Model for the Message Session Relay Protocol (MSRP)
Grégoire Ubiquitous Home-Based Services
Karnati et al. Technology Case Study on Web Real-Time Communications (WebRTC)
CN116264525A (zh) 具有中间人攻击防止的远程访问
Andreasen et al. RFC 5898: Connectivity Preconditions for Session Description Protocol (SDP) Media Streams
Moskalenko et al. Behavior Engineering for Hindrance Avoidance X. Chen Internet-Draft Huawei Intended status: Standards Track S. Garcia Murillo Expires: March 16, 2014 Medooze
Jiang Secure SIP between IPv4 endpoints and IPv6 endpoints
Holmberg et al. RFC 6135: An Alternative Connection Model for the Message Session Relay Protocol (MSRP)

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171002

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20171228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180402

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180619

R150 Certificate of patent or registration of utility model

Ref document number: 6359184

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees