説明

データ受信端末とコンピュータプログラム

【課題】 ユーザが希望していないデータが配信されるのを抑制すること。
【解決手段】 受信端末50は、配信通知サービスアプリとデータ受信サービスアプリとを有する。配信通知サービスアプリは、自身のグローバルアドレス−ポート「1.1.1.1:30000」を接続管理サーバ20に登録する。配信通知サービスアプリは、接続管理サーバ20から上記のグローバルアドレス−ポートを取得した送信端末100が、上記のグローバルアドレス−ポートに向けて送信するコマンドを受信する。配信通知サービスアプリは、データ受信サービスアプリのグローバルポート番号「30001」を含む要求コマンドを送信端末100に送信する。データ受信サービスアプリは、要求コマンドを受信した送信端末100が、グローバルアドレス−ポート「1.1.1.1:30001」に向けて送信するコンテンツデータを受信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ送信端末から送信されるデータを受信することが可能であるデータ受信端末に関する。
【背景技術】
【0002】
一対の端末の間でデータ通信を行なうために、接続管理サーバが利用されることがある。例えば、下記の特許文献1には、SIP(Session Initiation Protocol)を利用したデータ通信システムが開示されている。SIPを利用したシステムでは、通常、SIPサーバと呼ばれる接続管理サーバが利用される。各端末は、データ通信を実行するためのサービス処理部(アプリケーション)を有する。各端末は、自身のID(例えばSIPURI)とアドレス情報(例えばIPアドレスと上記のサービスに割り当てられたポート番号)とを接続管理サーバに登録する。各端末は、接続管理サーバを介して、他の端末に接続することができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−99168号公報
【特許文献2】特開2007−281685号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、第三者が、接続管理サーバに登録されているアドレス情報を不正に取得し、そのアドレス情報に向けてデータ(例えば広告データ)を一方的に配信する可能性がある。この場合、接続管理サーバに登録されている端末のユーザが希望していないにもかかわらず、その端末にデータが配信されてしまう。
【0005】
本明細書では、ユーザが希望していないデータが配信されるのを抑制することができる技術を提供する。
【課題を解決するための手段】
【0006】
本明細書によって開示される技術は、データ送信端末に通信可能に接続されるデータ受信端末である。データ受信端末は、第1サービス処理部と第2サービス処理部とを備える。第1サービス処理部は、登録処理部と通知受信処理部とを備える。登録処理部は、データ受信端末に割り当てられた第1アドレスと、第1サービス処理部に割り当てられた第1ポート番号と、の組合せを第1サーバに登録する。通知受信処理部は、第1アドレスと第1ポート番号との組合せを第1サーバから取得したデータ送信端末が、第1アドレスと第1ポート番号との組合せを送信先として送信する特定通知を受信する。第1サービス処理部と第2サービス処理部との少なくとも一方は、特定通知が受信された場合に、第2サービス処理部に割り当てられた第2ポート番号を含む肯定的レスポンスを、データ送信端末に送信する肯定的レスポンス送信処理部を備える。なお、上記の「特定通知が受信された場合に」とは、他の条件(AND条件及び/又はOR条件)が付加されることを排除するものではない。例えば、肯定的レスポンス送信処理部は、特定通知が受信され、かつ、他の条件が成立した場合に、肯定的レスポンスをデータ送信端末に送信してもよい。第2サービス処理部は、肯定的レスポンスを受信したデータ送信端末が、第1アドレスと第2ポート番号との組合せを送信先として送信するデータを受信するデータ受信処理部を備える。
【0007】
上記のデータ受信端末は、データの配信を許容するための少なくとも2つのサービス処理部(第1サービス処理部と第2サービス処理部)を備える。各サービス処理部に異なるポート番号(第1ポート番号と第2ポート番号)が割り当てられている。第1サービス処理部に割り当てられている第1ポート番号は、第1サーバに登録される。仮に、第三者が第1サーバにアクセスして第1ポート番号を不正に取得しても、その第1ポート番号が割り当てられた第1サービス処理部は、データを受信する処理を実行しない。一方において、データを受信する処理を実行する第2サービス処理部に割り当てられている第2ポート番号は、第1サーバに登録されない。従って、第三者は、第1サーバにアクセスしても第2ポート番号を取得することができない。第三者が第2ポート番号に向けてデータを配信することを抑制することができる。このデータ受信端末を利用すると、ユーザが希望していないデータが配信されるのを抑制することができる。
【0008】
例えば、第2サービス処理部が肯定的レスポンス処理部を備える場合、肯定的レスポンスは、その送信元の情報として、第2サービス処理部に割り当てられている第2ポート番号を含むことになる。この場合、肯定的レスポンスの内容を解析すると、例えば、TCP/IP層のような下位階層のレベルにおいて第2ポート番号を取得することができる。これに対し、第1サービス処理部が肯定的レスポンス処理部を備える場合、肯定的レスポンスは、その送信元の情報として、第1サービス処理部に割り当てられている第1ポート番号を含むことになる。この肯定的レスポンスは、上位階層のレベルで解析されるデータ(例えばアプリケーションデータ)として、第2ポート番号を含むことになる。この肯定的レスポンスから第2ポート番号を取得するためには、上位階層のレベルでの解析が必要になる。従って、この肯定的レスポンスは、送信元の情報として第2ポート番号を含む肯定的レスポンスと比べると、第2ポート番号を特定しにくいものであると言える。従って、第三者が肯定的レスポンスを解析して第2ポート番号を不正に取得するという行為を抑制するためには、第1サービス処理部が肯定的レスポンス処理部を備える方が好ましい。なお、第1サービス処理部と第2サービス処理部のそれぞれが肯定的レスポンス処理部を有していてもよい。この場合、予め決められている条件に応じて、どちらの処理部が肯定的レスポンスを送信するのかが切り替えられてもよい。第1サービス処理部が肯定的レスポンスを送信することが可能である状況では、第1サービス処理部が肯定的レスポンスを送信することが好ましい。
【0009】
上記のデータ受信端末とデータ送信端末と第1サーバは、同一のルータの下流側(インターネットが上流側である)に存在していてもよい。即ち、これらのデバイスは、同一のプライベートネットワーク内に存在していてもよい。この場合、第1サーバには、データ受信端末に割り当てられたローカルアドレスとローカルポート番号との組合せ(プライベートネットワーク内のアドレス情報)が登録されてもよい。この構成によると、ユーザが希望していないデータがプライベートネットワーク内で配信されるのを抑制することができる。
【0010】
一方において、上記のデータ受信端末は、データ送信端末にルータを介して通信可能に接続されてもよい。即ち、データ送信端末は、データ受信端末が存在しているプライベートネットワーク外に存在していてもよい。この場合、第1アドレスは、第1グローバルアドレスであってもよい。第1ポート番号は、第1グローバルポート番号であってもよい。第2ポート番号は、第2グローバルポート番号であってもよい。通知受信処理部は、上記の特定通知を、ルータを介して受信してもよい。データ受信処理部は、上記のデータを、ルータを介して受信してもよい。この構成によると、ユーザが希望していないデータがインターネットを経由して配信されるのを抑制することができる。
【0011】
第2サービス処理部は、特定パケットを第2サーバに送信することによって、第2サーバから第2グローバルポート番号を取得するグローバルポート番号取得処理部をさらに有していてもよい。この場合、肯定的レスポンス送信処理部は、特定通知が受信された場合に、グローバルポート番号取得処理部によって取得された第2グローバルポート番号を含む肯定的レスポンスを、データ送信端末に送信してもよい。この構成によると、データ受信端末は、第2サービス処理部に割り当てられている第2グローバルポート番号を取得することができる。
【0012】
肯定的レスポンス送信処理部は、特定通知が受信され、かつ、データ送信端末が上記のデータを送信することが許可される場合に、肯定的レスポンスを、データ送信端末に送信してもよい。なお、「データ送信端末がデータを送信することを許可される場合」の例としては、データ受信端末において所定の操作がユーザによって実行されること、データ受信端末において所定の情報(例えばデータ送信端末に関する情報)が記憶されていること等を挙げることができる。第1サービス処理部は、特定通知が受信され、かつ、データ送信端末がデータを送信することが許可されない場合に、第2ポート番号を含まない否定的レスポンスを、データ送信端末に送信する否定的レスポンス送信処理部をさらに有していてもよい。否定的レスポンスに第2ポート番号が含まれないために、第三者が否定的レスポンスを解析して第2ポート番号を不正に取得するという行為を抑制することができる。
【0013】
第三者が、上記の肯定的レスポンスを解析することによって第2ポート番号を不正に取得し、第2ポート番号に向けてデータを配信する可能性がある。このような不正に対処するために、第2サービス処理部が起動される毎に、第2サービス処理部に異なるポート番号が割り当てられてもよい。第2サービス処理部に割り当てられているポート番号が第2ポート番号から他のポート番号に変わるために、ユーザが希望していないデータを第2サービス処理部が受信することを抑制することができる。
【0014】
第1サービス処理部は、特定通知が受信された場合に、第2サービス処理部を起動させる起動処理部をさらに有していてもよい。また、第2サービス処理部は、データ受信処理部が上記のデータを受信することを完了した場合に、第2サービス処理部を終了する終了処理部をさらに有していてもよい。なお、終了処理部は、第1サービス処理部からの指示に従って第2サービス処理部を終了してもよい。一方において、終了処理部は、データ受信処理部が上記のデータを受信することを完了することを監視し、その結果として第2サービス処理部を終了してもよい。この構成によると、データ受信処理部が上記のデータの受信を完了すると、第2サービス処理部が終了する。上述したように、第2サービス処理部が次に起動される際には、第2サービス処理部に異なるポート番号が割り当てられる。このために、ユーザが希望していないデータを第2サービス処理部が受信することを効果的に抑制することができる。
【0015】
なお、上記のデータ受信端末は、別のデータ受信端末にデータを送信するための端末として機能してもよい。このように機能するために、上記のデータ受信端末は、組合せ取得手段と通知送信手段とデータ送信手段とをさらに備えていてもよい。組合せ取得手段は、第1サーバに登録されている上記の別のデータ受信端末に割り当てられた第2アドレスと第3ポート番号との組合せを取得してもよい。通知送信手段は、組合せ取得手段によって取得された第2アドレスと第3ポート番号との組合せを送信先として、特定通知を送信してもよい。データ送信手段は、通知送信手段によって送信された特定通知に応じて、第4ポート番号を含む肯定的レスポンスを受信した場合に、第2アドレスと第4ポート番号との組合せを送信先として、データを送信してもよい。
【0016】
上記のデータ送信端末と上記のデータ受信端末とを備えるデータ通信システムも新規で有用である。また、上記のデータ受信端末を実現するための方法やコンピュータプログラムも新規で有用である。
【図面の簡単な説明】
【0017】
【図1】データ通信システムの構成の一例を示す。
【図2】受信端末の構成の一例を示す。
【図3】配信通知サービスアプリとデータ受信サービスアプリのそれぞれに割り当てられているアドレスとポート番号との組合せの一例を示す。
【図4】送信端末の構成の一例を示す。
【図5】各デバイスが実行する処理のシーケンスを示す。
【図6】図5の続きのシーケンスを示す。
【図7】図6の続きのシーケンスを示す。
【図8】図7の続きのシーケンスを示す。
【図9】図8の続きのシーケンスを示す。
【発明を実施するための形態】
【0018】
ここでは、以下の実施例に記載の技術の一部を列挙しておく。
(形態1)本明細書によって開示される技術は、データ受信端末と通信可能に接続されるデータ送信端末の単体として表現することもできる。このデータ送信端末は、上記の組合せ取得手段と通知送信手段とデータ送信手段とを備えていてもよい。なお、このデータ送信端末を実現するための方法やコンピュータプログラムも新規で有用である。
【0019】
(形態2)上記の第1サービス処理部は、上記の特定通知が受信された場合に、選択操作を実行することをユーザに許容する許容部をさらに有していてもよい。上記の肯定的レスポンス送信部は、ユーザによって第1選択操作が実行された場合に、上記の肯定的レスポンスを送信してもよい。また、上記の否定的レスポンス送信部は、ユーザによって第2選択操作が実行された場合に、上記の否定的レスポンスを実行してもよい。
【0020】
(形態3)上記のデータ受信端末は、自身にデータを送信することが許容される端末に関する情報を記憶する端末記憶部をさらに有していてもよい。上記の肯定的レスポンス送信部は、上記のデータ送信端末に関する情報が端末記憶部に記憶されている場合に、上記の肯定的レスポンスを送信してもよい。また、上記の否定的レスポンス送信部は、上記のデータ送信端末に関する情報が端末記憶部に記憶されていない場合に、上記の否定的レスポンスを送信してもよい。
【0021】
(形態4)第1サービス処理部と第2サービス処理部のそれぞれが肯定的レスポンス送信部を有していてもよい。この場合、第1サービス処理部の肯定的レスポンス送信部は、上記の特定通知が受信され、かつ、上記のルータが第1種類のルータである場合に、上記の肯定的レスポンスを送信してもよい。また、第2サービス処理部の肯定的レスポンス処理部は、上記の特定通知が受信され、かつ、上記のルータが第2種類のルータである場合に、肯定的レスポンスを送信してもよい。
【0022】
(形態5)上記のルータは、NAT(Network Address Translation)ルータであってもよい。上記のルータがポート番号も変換する場合、上記のルータのことをNAPTルータと呼ぶこともできる。
【実施例】
【0023】
(システムの構成)
図面を参照して実施例を説明する。図1は、本実施例のデータ通信システム2の概略図を示す。データ通信システム2は、インターネット4とSTUNサーバ10と接続管理サーバ20と複数のプライベートネットワーク40,90等を有する。インターネット4には、STUNサーバ10と、接続管理サーバ20と、複数のプライベートネットワーク40,90とが接続されている。
【0024】
(STUNサーバ10の構成)
STUNサーバ10は、プライベートネットワーク40,90から送信される所定のコマンドを受信する。STUNサーバ10は、上記の所定のコマンドを解析することによって、上記の所定のコマンドの送信元(例えば受信端末50)のグローバルIPアドレスとグローバルポート番号との組合せを取得する。STUNサーバ10は、上記の組合せを上記の所定のコマンドの送信元に送信する。これにより、上記の所定のコマンドの送信元は、自身に割り当てられているグローバルIPアドレスとグローバルポート番号との組合せを知ることができる。
【0025】
(接続管理サーバ20の構成)
接続管理サーバ20は、端末情報記憶部22を有する。端末情報記憶部22は、複数の組合せデータ24,26を記憶する。各組合せデータ24,26は、端末ID30とグローバルIPアドレス32とグローバルポート番号34とが対応づけられたものである。後で詳しく説明するが、送信端末100からのデータの配信を希望する端末(例えば受信端末50)は、自身のIDとグローバルIPアドレスとグローバルポート番号とを接続管理サーバ20に登録する。送信端末100は、接続管理サーバ20にアクセスすることによって、データの配信を希望する端末の情報を知ることができる。なお、接続管理サーバ20は、例えば、SIPサーバであってもよい。この場合、端末情報記憶部22に記憶される端末ID30は、端末に割り当てられるSIPURIであってもよい。一方において、接続管理サーバ20は、SIP以外のプロトコルに従って処理を実行するものであってもよい。この場合、端末情報記憶部22に記憶される端末ID30は、例えば、端末のMACアドレス、ノード名等であってもよい。
【0026】
(プライベートネットワーク40の構成)
プライベートネットワーク40は、ルータ42を介してインターネット4に接続されている。ルータ42は、インターネット4に接続されているとともに、LAN44に接続されている。プライベートネットワーク40は、LAN44に接続されている各デバイスによって構成されている。本実施例では、LAN44に受信端末50が接続されている。
【0027】
ルータ42は、NATと呼ばれるアドレス変換処理を実行する。ルータ42は、ローカルIPアドレスとローカルポート番号との第1の組合せを送信元としてプライベートネットワーク40から送信されてくるデータを、インターネット4に送信する。この際に、ルータ42は、送信元である上記の第1の組合せを、グローバルIPアドレスとグローバルポート番号との第2の組合せに変換する。逆に、上記の第2の組合せを送信先としてインターネット4から送信されてくるデータが存在する場合、ルータ42は、送信先である上記の第2の組合せを上記の第1の組合せに変換する。
【0028】
なお、本実施例では、ルータ42は、インターネット4から送信されてくるデータの送信先のアドレスとポート番号との組合せがプライベートネットワーク40内に存在する場合に、その送信先にデータを送信する。即ち、ルータ42は、Full Cone NATと呼ばれるものである。なお、Full Cone NATと異なる種類のルータとして、Restricted Cone NATと呼ばれるルータが知られている。このルータは、プライベートネットワーク40からインターネット4に送信されるコマンドの送信元のアドレスとポート番号との組合せを所定期間記憶し、その所定期間内に上記のコマンドのレスポンスのデータを受信し、かつ、そのレスポンスの送信先のアドレスとポート番号との組合せがプライベートネットワーク40内に存在する場合に、その送信先にデータを送信する。
【0029】
(受信端末50の構成)
図2は、受信端末50の構成の一例を示す。受信端末50は、制御部52と操作部54と表示部56と印刷部58とインターフェース60と記憶部70等を有する。制御部52は、記憶部70に記憶されているプログラム(例えばアプリ72,74等)に従って処理を実行する。操作部54は、複数のキーを有する。表示部56は、様々な情報を表示する。印刷部58は、例えば、受信端末50によって受信されたデータを印刷媒体に印刷する。インターフェース60は、LAN44に接続されている。
【0030】
記憶部70は、様々な情報(プログラム、制御部52の処理の過程で生成されるデータ等)を記憶する。記憶部70は、配信通知サービスアプリ72とデータ受信サービスアプリ74とを記憶している。本実施例の受信端末50は、後述する送信端末100から送信されるデータを受信する。送信端末100からのデータの配信を受けるためには、受信端末50のユーザは、送信端末100に所定の情報を登録する必要がある。例えば、受信端末50のユーザは、受信端末50の端末ID76を送信端末100に登録する。さらに、受信端末50が送信端末100からのデータの配信を受けるためには、専用のアプリケーションが必要とされる。このアプリケーションが、配信通知サービスアプリ72とデータ受信サービスアプリ74である。受信端末50は、例えば、これらのアプリ72,74を送信端末100からダウンロードしてもよい。また、受信端末50は、例えば、これらのアプリ72,74をプログラム記憶媒体からインストールしてもよい。
【0031】
図3は、上記のアプリ72,74のそれぞれがデータを通信する際に利用するIPアドレスとポート番号との組合せの一例を示す。本実施例では、受信端末50に割り当てられているローカルIPアドレスは、「192.168.0.100」である。このローカルIPアドレスは、ルータ42によってグローバルIPアドレスに変換される。本実施例では、ローカルIPアドレス「192.168.0.100」は、グローバルIPアドレス「1.1.1.1」に変換される。上記のアプリ72,74のそれぞれには異なるローカルポート番号が割り当てられている。例えば、配信通知サービスアプリ72には、ローカルポート番号「50000」が割り当てられている。また、データ受信サービスアプリ74には、ローカルポート番号「50001」が割り当てられている。これらのローカルポート番号は、ルータ42によってグローバルポート番号に変換される。本実施例では、ローカルポート番号「50000」がグローバルポート番号「30000」に変換され、ローカルポート番号「50001」がグローバルポート番号「30001」に変換される。
【0032】
記憶部70は、受信端末50の端末ID(例えば受信端末50のSIPURI)76を記憶する。本実施例では、受信端末50の端末ID76は、「XXX」である。また、記憶部70は、ルータ42の種類に関するルータ種類データ78を記憶する。ルータ種類データ78がどのようにして記憶されるのかについては、後で詳しく説明する。記憶部70は、上記の情報72〜78以外の情報を記憶するための記憶領域80を有する。記憶領域80に記憶される情報については、必要に応じて後で説明する。
【0033】
(プライベートネットワーク90の構成)
プライベートネットワーク90(図1参照)は、ルータ92を介してインターネット4に接続されている。ルータ92は、インターネット4に接続されているとともに、LAN94に接続されている。プライベートネットワーク90は、LAN94に接続されている各デバイスによって構成されている。本実施例では、LAN94に受信端末96と送信端末100が接続されている。ルータ92は、上記のルータ42と同様の機能を有する。受信端末96は、上記の受信端末50と同様の構成を有する。受信端末96が送信端末100から送信されるデータを受信する場合、受信端末96は、インターネット4を介さずに、データを受信する。一方において、受信端末50が送信端末100から送信されるデータを受信する場合、受信端末50は、インターネット4(即ちルータ42)を介して、データを受信する。
【0034】
(送信端末100の構成)
図4は、送信端末100の構成の一例を示す。送信端末100は、制御部102とインターフェース110と記憶部120等を有する。制御部102は、記憶部120に記憶されているプログラム(例えばアプリ122)に従って処理を実行する。インターフェース110は、LAN94に接続されている。
【0035】
記憶部120は、様々な情報(プログラム、制御部102の処理の過程で生成されるデータ等)を記憶する。記憶部120は、データ配信アプリ122とコンテンツデータ124と端末リスト126等を記憶している。データ配信アプリ122は、コンテンツデータ124を他の端末(例えば受信端末50)に配信するためのアプリケーションである。コンテンツデータ124は、他の端末に配信されるべきデータである。端末リスト126は、データの配信を希望している端末群のそれぞれのIDを含んでいる。例えば、端末リスト126は、受信端末50の端末ID「XXX」を含んでいる。記憶部70は、上記の情報122〜126以外の情報を記憶するための記憶領域128を有する。記憶領域128に記憶される情報については、必要に応じて後で説明する。
【0036】
(各デバイスが実行する処理)
続いて、各デバイス10,20,50,100が実行する処理の内容について説明する。図5〜9は、各デバイス10,20,50,100が実行する処理のシーケンスを示す。図5に示されるように、受信端末50の制御部52は、受信端末50の電源がONされると、配信通知サービスアプリ72を起動する(S2)。なお、配信通知サービスアプリ72に割り当てられるローカルポート番号(図3の例では「50000」)は、固定されていてもよいし、アプリ72が起動される毎に決定されてもよい。図5〜9に示される破線L1は、配信通知サービスアプリ72が実行する処理(正確に言うとアプリ72に従って制御部52が実行する処理)を示す。また、図7〜9に示される破線L2は、データ受信サービスアプリ74が実行する処理(正確に言うとアプリ74に従って制御部52が実行する処理)を示す。
【0037】
受信端末50の記憶領域80は、接続管理サーバ20のアドレスを記憶している。配信通知サービスアプリ72は、接続管理サーバ20のアドレスを送信先として、Registerコマンド200を送信するコマンド送信処理を実行する(S4)。Registerコマンド200は、受信端末50の端末ID「XXX」を含んでいる。Registerコマンド200は、送信元のローカルアドレス−ポートを含んでいる。このローカルアドレス−ポートは、受信端末50のローカルIPアドレスである「192.168.0.100」と、配信通知サービスアプリ72に割り当てられているローカルポート番号「50000」との組合せである。
【0038】
ルータ42は、Registerコマンド200を受信する。ルータ42は、Registerコマンド200の送信元のローカルアドレス−ポートを、グローバルアドレス−ポートに変換する。このグローバルアドレス−ポートは、グローバルIPアドレス「1.1.1.1」とグローバルポート番号「30000」との組合せである。ルータ42は、グローバルアドレス−ポート「1.1.1.1:30000」を含むRegisterコマンド202を接続管理サーバ20に送信する。
【0039】
接続管理サーバ20は、Registerコマンド202を受信する。接続管理サーバ20は、Registerコマンド202に含まれる端末ID「XXX」とグローバルアドレス−ポート「1.1.1.1:30000」を端末情報記憶部22に登録する登録処理を実行する(S6)。接続管理サーバ20は、端末情報記憶部22の端末ID30の欄に登録されている端末からのRegisterコマンドを所定期間に亘って受信しない場合に、その端末に関する組合せデータ24,26を削除する。配信通知サービスアプリ72は、自身が起動している間はRegisterコマンド200を定期的に送信する。
【0040】
送信端末100の記憶領域128は、接続管理サーバ20のアドレスを記憶している。送信端末100のデータ配信アプリ122は、接続管理サーバ20のアドレスを送信先として、第1コマンド210を送信する第1問い合わせ処理を実行する(S8)。第1コマンド210は、端末リスト126の端末ID(本実施例では「XXX」)を含んでいる。なお、送信端末100が第1問い合わせ処理(S8)を実行するタイミングは、特に限定されない。例えば、送信端末100は、新しいコンテンツデータ124を取得した場合に第1問い合わせ処理を実行してもよいし、ユーザからの指示に従って第1問い合わせ処理を実行してもよいし、定期的に第1問い合わせ処理を実行してもよい。
【0041】
接続管理サーバ20は、第1コマンド210を受信する。接続管理サーバ20は、第1コマンド210に含まれる端末ID「XXX」に対応づけて端末情報記憶部22に記憶されているグローバルアドレス−ポート「1.1.1.1:30000」を特定する。接続管理サーバ20は、特定されたグローバルアドレス−ポートを含むレスポンス212を送信端末100に送信する応答処理を実行する(S10)。
【0042】
送信端末100のデータ配信アプリ122は、レスポンス212を受信する。データ配信アプリ122は、レスポンス212を解析することによって、グローバルアドレス−ポート「1.1.1.1:30000」を取得する。次いで、図6に示されるように、データ配信アプリ122は、グローバルアドレス−ポート「1.1.1.1:30000」を送信先として、第2コマンド220を送信する第2問い合わせ処理を実行する(S20)。第2コマンド220は、問い合わせメッセージ222と、送信先のグローバルアドレス−ポート「1.1.1.1:30000」と、送信元のアドレス−ポート224とを含んでいる。問い合わせメッセージ222は、受信端末50で表示されるべきテキストメッセージである。送信元のアドレス−ポート224は、送信端末100に割り当てられているローカルアドレスと、データ配信アプリ122に割り当てられているローカルポート番号との組合せである。即ち、送信端末100から第2コマンド220が送信される時点では、第2コマンド220の送信元のアドレス−ポート224は、ローカルアドレス−ポートである。このローカルアドレス−ポートは、ルータ92によってグローバルアドレス−ポートに変換される。従って、ルータ92よりインターネット4側では、第2コマンド220の送信元のアドレス−ポート224は、グローバルアドレス−ポートである。
【0043】
ルータ42は、第2コマンド220を受信する。ルータ42は、第2コマンド220の送信先のグローバルアドレス−ポート「1.1.1.1:30000」を、ローカルアドレス−ポート「192.168.0.100:50000」に変換する。ルータ42は、送信先のローカルアドレス−ポート「192.168.0.100:50000」を含む第2コマンド226を受信端末50に送信する。
【0044】
受信端末50の配信通知サービスアプリ72は、第2コマンド226を受信する。配信通知サービスアプリ72は、第2コマンド226に含まれる問い合わせメッセージ222を表示部56に表示する表示処理を実行する(S22)。問い合わせメッセージ222は、データ配信を希望するのか否かを選択することをユーザに促すメッセージである。配信通知サービスアプリ72は、ユーザの操作が肯定的な操作であるのか否かを判断する(S24)。ユーザの操作が否定的な操作である場合、後述する図9のS76に進む。一方において、ユーザの操作が肯定的な操作である場合、配信通知サービスアプリ72は、記憶部70にルータ種類データ78が記憶されているのか否かを判断する(S26)。ここでYESの場合、後述する図7のS40に進む。
【0045】
受信端末50の記憶領域80は、STUNサーバ10のアドレスを記憶している。S26でNOの場合、配信通知サービスアプリ72は、STUNサーバ10のアドレスを送信先として、種類問い合わせコマンド228を送信する種類問い合わせ処理を実行する(S28)。STUNサーバ10は、種類問い合わせコマンド228を受信する。STUNサーバ10は、ルータ42の種類(Full Cone NAT又はRestricted Cone NAT)を示すルータ種類データ232を含むレスポンス230を送信する。配信通知サービスアプリ72は、レスポンス230を受信する。配信通知サービスアプリ72は、レスポンス230に含まれるルータ種類データ232を記憶部70に記憶させる記憶処理を実行する(S30)。これにより、記憶部70にルータ種類データ78(本実施例ではFull Cone NAT)が記憶される。S30を終えると、図7のS40に進む。
【0046】
図7のS40では、配信通知サービスアプリ72は、データ受信サービスアプリ74を起動する処理を実行する(S40)。データ受信サービスアプリ74は、自身が起動したタイミングでローカルポート番号が割り当てられる。本実施例では、データ受信サービスアプリ74が起動する毎に、配信通知サービスアプリ72が、データ受信サービスアプリ74のローカルポート番号を決定する。配信通知サービスアプリ72は、データ受信サービスアプリ74の前回の起動時に割り当てられた前回ローカルポート番号を記憶しておく。配信通知サービスアプリ72は、データ受信サービスアプリ74を起動する際に、前回ローカルポート番号と異なるローカルポート番号を決定する。本実施例では、図3に例示されるローカルポート番号「50001」がデータ受信サービスアプリ74に割り当てられた場合を例にして以下の説明を続ける。
【0047】
なお、例えば、データ受信サービスアプリ74は、データ受信サービスアプリ74を起動する際に、ランダムにローカルポート番号を決定してもよい。この場合であっても、前回ローカルポート番号と異なるローカルポート番号に決定される可能性が高い。この例も、前回ローカルポート番号と異なるローカルポート番号を決定することに等しい。
【0048】
配信通知サービスアプリ72は、記憶部70に記憶されているルータ種類データ78に基づいて、ルータ42がFull Cone NATであるのか否かを判断する(S42)。ここでYESの場合、後述する図8のS60に進む。一方において、S42でNOの場合、配信通知サービスアプリ72は、第1指示240をデータ受信サービスアプリ74に供給する第1指示処理を実行する(S44)。この結果、データ受信サービスアプリ74は、上記の図6の第2コマンド226に含まれる送信元のグローバルアドレス−ポート224(即ち送信端末100のデータ配信アプリ122)を送信先として、要求コマンド242を送信する要求処理を実行する(S46)。要求コマンド242は、送信元のローカルアドレス−ポートを含んでいる。このローカルアドレス−ポートは、受信端末50のローカルIPアドレスである「192.168.0.100」とデータ受信サービスアプリ74に割り当てられているローカルポート番号「50001」との組合せである。
【0049】
ルータ42は、要求コマンド242を受信する。ルータ42は、要求コマンド242の送信元のローカルアドレス−ポート「192.168.0.100:50001」を、グローバルアドレス−ポート「1.1.1.1:30001」に変換する。ルータ42は、送信元のグローバルアドレス−ポートを含む要求コマンド244を送信端末100に送信する。
【0050】
送信端末100のデータ配信アプリ122は、要求コマンド244を受信する。データ配信アプリ122は、要求コマンド244を解析することによって、送信元のグローバルアドレス−ポート「1.1.1.1:30001」を取得する。データ配信アプリ122は、TCP/IP層のレベルでの解析を実行することによって、送信元のグローバルアドレス−ポート「1.1.1.1:30001」を取得することができる。データ配信アプリ122は、グローバルアドレス−ポート「1.1.1.1:30001」を送信先として、送信コマンド246を送信するデータ送信処理を実行する(S48)。送信コマンド246は、コンテンツデータ124と、送信先のグローバルアドレス−ポート「1.1.1.1:30001」とを含んでいる。
【0051】
ルータ42は、送信コマンド246を受信する。ルータ42は、送信コマンド246の送信先のグローバルアドレス−ポート「1.1.1.1:30001」を、ローカルアドレス−ポート「192.168.0.100:50001」に変換する。ルータ42は、送信先のローカルアドレス−ポートを含む送信コマンド248を受信端末50に送信する。
【0052】
受信端末50のデータ受信サービスアプリ74は、送信コマンド248を受信する。即ち、データ受信サービスアプリ74は、コンテンツデータ124を受信する処理を実行する。データ受信サービスアプリ74は、コンテンツデータ124の受信が完了すると、データ受信サービスアプリ74を終了する処理を実行する(S50)。
【0053】
上述したように、ルータ42がFull Cone NATである場合、上記のS42においてYESと判断され、図8のS60に進む。S60では、配信通知サービスアプリ72は、第2指示250をデータ受信サービスアプリ74に供給する第2指示処理を実行する。この結果、データ受信サービスアプリ74は、STUNサーバ10のアドレスを送信先として、問い合わせコマンド252を送信する問い合わせ処理を実行する(S62)。問い合わせコマンド252は、送信元のローカルアドレス−ポート「192.168.0.100:50001」を含んでいる。
【0054】
ルータ42は、問い合わせコマンド252を受信する。ルータ42は、問い合わせコマンド252の送信元のローカルアドレス−ポート「192.168.0.100:50001」を、グローバルアドレス−ポート「1.1.1.1:30001」に変換する。ルータ42は、送信元のグローバルアドレス−ポートを含む問い合わせコマンド254をSTUNサーバ10に送信する。
【0055】
STUNサーバ10は、問い合わせコマンド254を受信する。STUNサーバ10は、問い合わせコマンド254を解析することによって、送信元のグローバルアドレス−ポート「1.1.1.1:30001」を特定する。STUNサーバ10は、特定されたグローバルアドレス−ポートを含むレスポンス256を送信する。
【0056】
受信端末50のデータ受信サービスアプリ74は、レスポンス256を受信する。データ受信サービスアプリ74は、レスポンス256を解析することによって、グローバルアドレス−ポート「1.1.1.1:30001」を取得する。データ受信サービスアプリ74は、グローバルアドレス−ポート「1.1.1.1:30001」を含む通知258を配信通知サービスアプリ72に供給する通知処理を実行する(S64)。S64を終えると、図9のS70に進む。
【0057】
S70では、配信通知サービスアプリ72は、上記の図6の第2コマンド226に含まれる送信元のグローバルアドレス−ポート224(即ち送信端末100のデータ配信アプリ122)を送信先として、要求コマンド260を送信する要求処理を実行する。要求コマンド260は、送信元のローカルアドレス−ポート「192.168.0.100:50000」と、通知258に含まれるグローバルアドレス−ポート「1.1.1.1:30001」とを含んでいる。
【0058】
ルータ42は、要求コマンド260を受信する。ルータ42は、要求コマンド260の送信元のローカルアドレス−ポート「192.168.0.100:50000」を、グローバルアドレス−ポート「1.1.1.1:30000」に変換する。ルータ42は、送信元のグローバルアドレス−ポートを含む要求コマンド262を送信端末100に送信する。
【0059】
送信端末100のデータ配信アプリ122は、要求コマンド262を受信する。データ配信アプリ122は、要求コマンド262を解析することによって、グローバルアドレス−ポート「1.1.1.1:30001」を取得する。データ配信アプリ122は、アプリケーション層のレベルでの解析を実行することによって、要求コマンド262に含まれるグローバルアドレス−ポート「1.1.1.1:30001」を取得することができる。データ配信アプリ122は、グローバルアドレス−ポート「1.1.1.1:30001」を送信先として、送信コマンド264を送信するデータ送信処理を実行する(S72)。送信コマンド264は、コンテンツデータ124と、送信先のグローバルアドレス−ポート「1.1.1.1:30001」とを含んでいる。
【0060】
ルータ42は、送信コマンド264を受信する。ルータ42は、送信コマンド264の送信先のグローバルアドレス−ポート「1.1.1.1:30001」を、ローカルアドレス−ポート「192.168.0.100:50001」に変換する。ルータ42は、送信先のローカルアドレス−ポートを含む送信コマンド266を受信端末50に送信する。
【0061】
受信端末50のデータ受信サービスアプリ74は、送信コマンド266を受信する。データ受信サービスアプリ74は、コンテンツデータ124の受信が完了すると、データ受信サービスアプリ74を終了する処理を実行する(S74)。
【0062】
なお、図6のS24でNOと判断された場合、配信通知サービスアプリ72は、上記の図6の第2コマンド226に含まれる送信元のグローバルアドレス−ポート224(即ち送信端末100のデータ配信アプリ122)を送信先として、非要求コマンド268を送信する非要求処理を実行する(S78)。非要求コマンド268は、要求コマンド260と異なり、グローバルアドレス−ポート「1.1.1.1:30001」を含まない。送信端末100は、非要求コマンド268を受信すると、受信端末50にコンテンツデータ124を配信するための処理を終了する。
【0063】
本実施例のデータ通信システム2について詳しく説明した。受信端末50は、コンテンツデータ124の配信を許容するための2つのアプリ72,74を有する。各アプリ72,74に異なるグローバルポート番号(30000と30001)が割り当てられている。配信通知サービスアプリ72に割り当てられているグローバルポート番号「30000」は接続管理サーバ20に登録される。仮に、第三者が接続管理サーバ20にアクセスしてグローバルIPアドレス「1.1.1.1」とポート番号「30000」を不正に取得しても、そのポート番号「30000」が割り当てられている配信通知サービスアプリ72は、コンテンツデータ124を受信する処理を実行しない。一方において、コンテンツデータ124を受信する処理を実行するデータ受信サービスアプリ74に割り当てられているポート番号「30001」は、接続管理サーバ20に登録されない。従って、第三者は、接続管理サーバ20にアクセスしてもポート番号「30001」を取得することができない。第三者がポート番号「30001」に向けてデータを配信することを抑制することができる。本実施例の受信端末50を利用すると、ユーザが希望していないコンテンツデータ124が配信されるのを抑制することができる。
【0064】
また、本実施例では、ルータ42がFull Cone NATである場合、配信通知サービスアプリ72が、要求コマンド260を送信する(図9のS70参照)。即ち、要求コマンド260の送信元は、配信通知サービスアプリ72である。従って、仮に、第三者が要求コマンド260に対して下位階層(例えばTCP/IP層)のレベルでの解析を実行しても、配信通知サービスアプリ72のグローバルアドレス−ポート番号「1.1.1.1:30000」しか取得することができない。要求コマンド260に含まれるデータ受信サービスアプリ74のグローバルアドレス−ポート番号「1.1.1.1:30001」を取得するためには、上位階層のレベル(例えばアプリケーション層)での解析が必要である。データ受信サービスアプリ74のグローバルアドレス−ポート番号が漏洩しにくい構成であると言える。なお、本実施例では、非要求コマンド268には、データ受信サービスアプリ74のグローバルアドレス−ポート番号が含まれない。この点においても、データ受信サービスアプリ74のグローバルアドレス−ポート番号が漏洩しにくくなっている。
【0065】
第三者が、要求コマンド262(図9参照)からデータ受信サービスアプリ74のグローバルアドレス−ポート番号を不正に取得し、そのグローバルアドレス−ポート番号に向けてデータ(以下では不正送信データと呼ぶ)を送信する可能性がある。本実施例では、データ受信サービスアプリ74が起動される毎に、データ受信サービスアプリ74に異なるローカルポート番号が割り当てられる。この結果、データ受信サービスアプリ74が起動される毎に、ルータ42によってデータ受信サービスアプリ74に割り当てられるグローバルポート番号も変わることになる。データ受信サービスアプリ74のグローバルポート番号が変わるために、データ受信サービスアプリ74が不正送信データを受信することを抑制することができる。
【0066】
(実施例の第1変形例)
受信端末50は、送信端末100と同様の機能を有していてもよい。即ち、受信端末50は、データ配信アプリ122を有していてもよい。この場合、受信端末96に関する情報が接続管理サーバ20に登録されており、受信端末50は、受信端末96にコンテンツデータを送信してもよい。受信端末50は、データ配信アプリ122に従って、図5のS8の第1問い合わせ処理、図6のS20の第2問い合わせ処理、図7のS48又は図9のS72のデータ送信処理等を実行してもよい。
【0067】
(実施例の第2変形例)
上記の実施例では、受信端末50の配信通知サービスアプリ72は、図6の第2コマンド220,226に含まれる問い合わせメッセージ222を表示し、ユーザの選択操作に従ってS24の判断処理を実行する。しかしながら、受信端末50の記憶領域80は、ユーザがデータの配信を希望する端末(例えば送信端末100)の端末IDを記憶しておいてもよい。第2コマンド220,226は、送信端末100の端末IDを含んでいてもよい。配信通知サービスアプリ72は、第2コマンド220,226に含まれる端末IDが記憶領域80に記憶されている場合にS24でYESと判断し、そうでない場合にS24でNOと判断してもよい。
【0068】
(実施例の第3変形例)
上記の実施例では、図9のS70の要求処理では、グローバルIPアドレス「1.1.1.1」とポート番号「30001」との組合せを含む要求コマンド260が送信される。しかしながら、要求コマンド260は、上記の組合せの代わりに、ポート番号「30001」のみを含んでいてもよい(即ちグローバルIPアドレス「1.1.1.1」を含まなくてもよい)。この場合であっても、送信端末100は、要求コマンド262に含まれる送信元の情報に基づいて、グローバルIPアドレス「1.1.1.1」を特定することができる。
【0069】
(実施例の第4変形例)
STUNサーバ10と接続管理サーバ20は、一体に構成されていてもよい。また、実施例に記載された他の2以上のデバイス(例えばSTUNサーバ10とルータ42)が一体に構成されてもよい。
【0070】
以上の説明から分かるように、本実施例の受信端末50、送信端末100、接続管理サーバ20、STUNサーバ10、ルータ42が、それぞれ、本発明のデータ受信端末、データ送信端末、第1サーバ、第2サーバ、ルータに対応する。また、受信端末50の配信通知サービスアプリ72、データ受信サービスアプリ74を実行する制御部52が、それぞれ、データ受信端末の第1サービス処理部、第2サービス処理部に対応する。さらに、受信端末50のグローバルIPアドレス「1.1.1.1」が第1アドレスに対応し、配信通知サービスアプリ72のグローバルポート番号「30000」と、データ受信サービスアプリ74のグローバルポート番号「30001」とが、それぞれ、第1ポート番号と第2ポート番号とに対応する。
【0071】
コマンド送信処理(図5のS4)が、本発明の登録処理部によって実行される処理に対応し、図6に示す第2コマンド226を受信する処理が、本発明の通知受信処理部によって実行される処理に対応する。また、図7に示す要求コマンド242を送信する要求処理(S46)と、図9に示す要求コマンド260を送信する要求処理(S70)とが、肯定的レスポンス処理部によって実行される肯定的レスポンスの送信処理に対応する。そして、図7に示すコンテンツデータ124を含む送信コマンド248を受信する処理と、図9に示すコンテンツデータ124を含む送信コマンド266を受信する処理とが、データ受信処理部によって実行される処理に対応する。
【0072】
なお、図8に示す問い合わせコマンド252を送信して、レスポンス256を受信する処理(図8)が、本発明のグローバルポート番号取得処理部によって実行される処理に対応する。また、図9に示す非要求コマンド268を送信する非要求処理(S76)が、否定的レスポンス送信処理部によって実行される否定的レスポンスの送信処理に対応する。さらに、起動処理(図7のS40)が、起動処理部によって実行される処理に対応し、終了処理(図7のS50、図9のS74)が、終了処理部によって実行される処理に対応する。
【0073】
本発明の別のデータ受信端末は、上記の第1変形例において記載された受信端末96に対応する。本発明の組合せ取得手段、通知送信手段、及び、データ送信手段は、受信端末50がデータ配信アプリ122を有することによって実現される。組合せ取得手段の処理は、第1問い合わせ処理(図5のS8)に対応する。第2アドレスは、受信端末96に割り当てられているグローバルIPアドレス(例えば「1.1.1.2」)に対応する。第3ポート番号は、受信端末96の配信通知サービスアプリに割り当てられているグローバルポート番号(例えば「40000」)に対応する。通知送信手段は、第2問い合わせ処理(図6のS20)に対応する。データ送信手段は、データ送信処理(図7のS48、図9のS72)に対応する。第4ポート番号は、受信端末96のデータ受信サービスアプリに割り当てられているグローバルポート番号(例えば「40001」)に対応する。
【0074】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
【0075】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【0076】
2:データ通信システム、4:インターネット、10:STUNサーバ、20:接続管理サーバ、22:端末情報記憶部、40:プライベートネットワーク、42:ルータ、50 受信端末、72:配信通知サービスアプリ、74:データ受信サービスアプリ、90:プライベートネットワーク、92:ルータ、96:受信端末、100:送信端末、122:データ配信アプリ、124:コンテンツデータ

【特許請求の範囲】
【請求項1】
データ送信端末に通信可能に接続されるデータ受信端末であって、
第1サービス処理部と、
第2サービス処理部と、
を備え、
前記第1サービス処理部は、
前記データ受信端末に割り当てられた第1アドレスと、前記第1サービス処理部に割り当てられた第1ポート番号と、の組合せを第1サーバに登録する登録処理部と、
前記第1アドレスと前記第1ポート番号との組合せを前記第1サーバから取得した前記データ送信端末が、前記第1アドレスと前記第1ポート番号との組合せを送信先として送信した特定通知を受信する通知受信処理部と、
を備え、
前記第1サービス処理部と前記第2サービス処理部との少なくとも一方は、
前記特定通知が受信された場合に、前記第2サービス処理部に割り当てられた第2ポート番号を含む肯定的レスポンスを、前記データ送信端末に送信する肯定的レスポンス送信処理部を備え、
前記第2サービス処理部は、
前記肯定的レスポンスを受信した前記データ送信端末が、前記第1アドレスと前記第2ポート番号との組合せを送信先として送信したデータを受信するデータ受信処理部を備える
ことを特徴とするデータ受信端末。
【請求項2】
前記第1サービス処理部が前記肯定的レスポンス送信処理部を備える
ことを特徴とする請求項1に記載のデータ受信端末。
【請求項3】
前記データ送信端末にルータを介して接続されており、
前記第1アドレスは、第1グローバルアドレスであり、
前記第1ポート番号は、第1グローバルポート番号であり、
前記第2ポート番号は、第2グローバルポート番号であり、
前記通知受信処理部は、前記特定通知を、前記ルータを介して受信し、
前記データ受信処理部は、前記データを、前記ルータを介して受信する
ことを特徴とする請求項1又は2に記載のデータ受信端末。
【請求項4】
前記第2サービス処理部は、特定パケットを第2サーバに送信することによって、前記第2サーバから前記第2グローバルポート番号を取得するグローバルポート番号取得処理部をさらに備え、
前記肯定的レスポンス送信処理部は、前記特定通知が受信された場合に、前記グローバルポート番号取得処理部によって取得された前記第2グローバルポート番号を含む前記肯定的レスポンスを、前記データ送信端末に送信する
ことを特徴とする請求項3に記載のデータ受信端末。
【請求項5】
前記肯定的レスポンス送信処理部は、前記特定通知が受信され、かつ、前記データ送信端末が前記データを送信することが許可される場合に、前記肯定的レスポンスを、前記データ送信端末に送信し、
前記第1サービス処理部は、前記特定通知が受信され、かつ、前記データ送信端末が前記データを送信することが許可されない場合に、前記第2ポート番号を含まない否定的レスポンスを、前記データ送信端末に送信する否定的レスポンス送信処理部をさらに備える
ことを特徴とする請求項1から4のいずれかに記載のデータ受信端末。
【請求項6】
前記第2サービス処理部が起動される毎に、前記第2サービス処理部に異なるポート番号が割り当てられる
ことを特徴とする請求項1から5のいずれかに記載のデータ受信端末。
【請求項7】
前記第1サービス処理部は、前記特定通知が受信された場合に、前記第2サービス処理部を起動させる起動処理部をさらに備え、
前記第2サービス処理部は、前記データ受信処理部が前記データを受信することを完了した場合に、前記第2サービス処理部を終了する終了処理部をさらに備える
ことを特徴とする請求項1から6のいずれかに記載のデータ受信端末。
【請求項8】
データ送信端末に通信可能に接続されるデータ受信端末のためのコンピュータプログラムであって、
第1サービス処理と、
第2サービス処理と、
をコンピュータに実行させ、
前記第1サービス処理は、
前記データ受信端末に割り当てられた第1アドレスと、前記第1サービス処理に割り当てられた第1ポート番号と、の組合せを第1サーバに登録する登録処理と、
前記第1アドレスと前記第1ポート番号との組合せを前記第1サーバから取得した前記データ送信端末が、前記第1アドレスと前記第1ポート番号との組合せを送信先として送信した特定通知を受信する通知受信処理と、を含み、
前記第1サービス処理と前記第2サービス処理との少なくとも一方は、
前記特定通知が受信された場合に、前記第2サービス処理に割り当てられた第2ポート番号を含む肯定的レスポンスを、前記データ送信端末に送信する肯定的レスポンス送信処理を含み、
前記第2サービス処理は、
前記肯定的レスポンスを受信した前記データ送信端末が、前記第1アドレスと前記第2ポート番号との組合せを送信先として送信するデータを受信するデータ受信処理を含む
ことを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−186207(P2010−186207A)
【公開日】平成22年8月26日(2010.8.26)
【国際特許分類】
【出願番号】特願2009−27986(P2009−27986)
【出願日】平成21年2月10日(2009.2.10)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】