(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6147415
(24)【登録日】2017年5月26日
(45)【発行日】2017年6月14日
(54)【発明の名称】ネットワークの変化に耐性のある、コンピュータネットワーク内のサービスディスカバリ方法
(51)【国際特許分類】
H04L 12/70 20130101AFI20170607BHJP
G06F 13/00 20060101ALI20170607BHJP
【FI】
H04L12/70 A
H04L12/70 B
G06F13/00 353U
【請求項の数】10
【全頁数】9
(21)【出願番号】特願2016-506792(P2016-506792)
(86)(22)【出願日】2013年4月9日
(65)【公表番号】特表2016-519896(P2016-519896A)
(43)【公表日】2016年7月7日
(86)【国際出願番号】EP2013057351
(87)【国際公開番号】WO2014166522
(87)【国際公開日】20141016
【審査請求日】2015年10月8日
(73)【特許権者】
【識別番号】390023711
【氏名又は名称】ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100112793
【弁理士】
【氏名又は名称】高橋 佳大
(74)【代理人】
【識別番号】100099483
【弁理士】
【氏名又は名称】久野 琢也
(72)【発明者】
【氏名】マルク スマーク
(72)【発明者】
【氏名】トム デ ブラウヴァー
(72)【発明者】
【氏名】ステファン ファン ティーネン
【審査官】
衣鳩 文彦
(56)【参考文献】
【文献】
特開2009−205612(JP,A)
【文献】
特表2011−516930(JP,A)
【文献】
特表2010−538537(JP,A)
【文献】
米国特許出願公開第2010/0070600(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/70
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
ドメインネームシステム・サービスディスカバリ(DNS−SD)を利用したコンピュータネットワーク内のサービスディスカバリ方法であって、
前記コンピュータネットワークは、構成要素として少なくとも、1つのクライアントと1つのサーバを含み、前記構成要素は、ブリッジを介してリンク可能であり、かつネットワークプロトコルによって通信可能であり、
前記クライアントおよび前記サーバは、前記コンピュータネットワークにおいて相互間でコネクション型通信経路を有しており、
コネクション消失が発生した場合、該コネクション消失により影響を受けた前記構成要素のうち1つの構成要素が、前記クライアントへのコネクションが復旧するまで、ドメインネームシステム・サービスディスカバリを利用して定期的に自身を告知する
ことを特徴とする、サービスディスカバリ方法。
【請求項2】
マルチキャストDNSを利用し、前記サーバが前記コネクション消失を検出した場合に、前記サーバが定期的に自身を告知する、
請求項1に記載の方法。
【請求項3】
マルチキャストDNSを利用し、前記クライアントが前記コネクション消失を検出した場合に、前記クライアントは、コネクションが消失した相手先である構成要素を該クライアントのDNS−SDキャッシュから削除する、
請求項1または2に記載の方法。
【請求項4】
前記コンピュータネットワークは、構成要素としてDNSストレージサーバを含む、
請求項1に記載の方法。
【請求項5】
ユニキャストDNSおよび前記DNSストレージサーバを利用し、前記サーバが前記クライアントへのコネクション消失を検出した場合に、前記サーバは自身の告知を定期的に取り消し、該取り消しは、前記DNSストレージサーバが該取り消しを受領確認するまで行う、
請求項4に記載の方法。
【請求項6】
ユニキャストDNSおよび前記DNSストレージサーバを利用し、前記サーバはDNSストレージサーバに自身を告知し、該告知は、前記DNSストレージサーバが該告知を受領確認するまで行う、
請求項4または5に記載の方法。
【請求項7】
ユニキャストDNSおよび前記DNSストレージサーバを利用し、前記クライアントは、前記DNSストレージサーバにメッセージを送信し、該メッセージに対し前記DNSストレージサーバが応答することにより、前記DNSストレージサーバの存在を監視する、
請求項4から6のいずれか1項に記載の方法。
【請求項8】
ユニキャストDNSおよび前記DNSストレージサーバを利用し、前記クライアントが、前記DNSストレージサーバの応答を短期間受け取らなかった場合、該クライアントは、前記DNSストレージサーバへメッセージを送信し続け、該クライアントは、前記DNSストレージサーバから応答を受信したときに、該クライアントのDNS−SDキャッシュを更新する、
請求項4から7のいずれか1項に記載の方法。
【請求項9】
ドメインネームシステム・サービスディスカバリを利用したコンピュータネットワーク内のサービスディスカバリのための、請求項1から8に記載の方法に適合されたコンピュータネットワークであって、
構成要素として少なくとも、1つのクライアントと1つのサーバが設けられており、前記構成要素は、ブリッジを介してリンク可能であり、かつネットワークプロトコルによって通信可能であり、
前記クライアントおよび前記サーバは、前記コンピュータネットワークにおいて相互間でコネクション型通信経路を有しており、
コネクション消失が発生した場合、該コネクション消失により影響を受けた前記構成要素のうち1つの構成要素が、前記クライアントへのコネクションが復旧するまで、ドメインネームシステム・サービスディスカバリを利用して定期的に自身を告知する
ことを特徴とする、コンピュータネットワーク。
【請求項10】
前記コンピュータネットワークはDNSストレージサーバを含む、
請求項9に記載のコンピュータネットワーク。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークの変化に耐性のある、コンピュータネットワーク内のサービスディスカバリ方法に関する。
【背景技術】
【0002】
コンピュータネットワークは、インターネットなど、リソースおよび情報の共有を可能にする通信チャネルにより相互に接続されたコンピュータと電子デバイスの集合である。通信プロトコルによって、この種のネットワークにおいて情報を交換するためのルールとデータフォーマットが定義されている。よく知られている通信プロトコルは、インターネット・プロトコル・スイートである。
【0003】
インターネット・プロトコル・スイートは、インターネットおよび同様のネットワークに利用される通信プロトコルセットであり、ワイドエリアネットワークのための一般に最もポピュラーなプロトコルスタックである。これは一般的にはTCP/IP:Transmission Control Protocol and Internet Protocolとして知られており、その理由は、TCP/IPが最も重要なプロトコルだからであり、この標準において定義された、ネットワークをネットワーク化する最初のプロトコルであった。
【発明の概要】
【発明が解決しようとする課題】
【0004】
TCP/IP対応の複数のシステムが稼働するネットワークにおいては、通例、複数のシステムによって複数のサービスが提供されることになる。どのシステムがどのサービスを提供しているのかを探し出す目的で、DNS(Domain Name System)ベースのサービスディスカバリ(DNS−SD)を利用することができる。ドメインネームシステム・サービスディスカバリ(DNS−SD)は、一般的なドメインネームシステムにおける1つの拡張である。
【課題を解決するための手段】
【0005】
本発明によれば、請求項1に記載された、ネットワークの変化に耐性のある、コンピュータネットワーク内のサービスディスカバリ方法、および請求項6に記載された装置が提供される。従属請求項には、本発明の実施形態が記載されている。
【0006】
自明の通り、上述の特徴および以下で説明する特徴は、本明細書で挙げた組み合わせとしてだけでなく、本発明の範囲を逸脱することなく、他の組み合わせでも、またはそれらの特徴そのものだけでも、利用することができる。
【0007】
具体例として、いくつかの実施形態に基づき本発明が図面に略示されており、次に、それらの図面を参照しながら本発明について詳しく説明する。なお、以下の説明は本発明の範囲の限定を意図したものではなく、本発明の実施形態の例示にすぎないことを理解されたい。
【図面の簡単な説明】
【0008】
【
図2】
図1に示したコンピュータネットワークを、ブリッジが接続された状態で示す図
【
図4】1つのサーバが追加されたコンピュータネットワークを示す図
【
図5】さらに別のコンピュータネットワークを示す図
【
図6】
図5に示したコンピュータネットワークを、ブリッジが切り離された状態で示す図
【発明を実施するための形態】
【0009】
ドメインネームシステムは、インターネットに接続された任意のリソースのための分散型ネーミングシステムである。このシステムは、様々な情報を加入者各々に割り当てられたドメインネームと結び付ける。さらにこのシステムは、ドメインネームを数値によるIPアドレスに変換し、このアドレスは、コンピュータサービスとデバイスの位置特定に必要とされる。
【0010】
この場合、DNS−SDを2つの異なる手法で利用することができる。
【0011】
マルチキャストDNS:
マルチキャストDNSは、ドメインネームシステムプログラミングインタフェースおよびパケットフォーマットを利用するための標準であり、さらに慣用のDNSサーバをコンフィギュレーションすることなく動作させるための標準である。
【0012】
各サーバはマルチキャストDNS(mDNS)を利用して、自身が提供しているサービスをマルチキャストする。このようなサービスのオファーは、最大で8つのメッセージである指数関数的バックオフタイマによって送信される。ブロードキャストの送信に続いて、サーバは自身が提供するサービスに対する何らかの明示的なクエリに対して応答する。
【0013】
クライアントは、ある特定のサービスに対するマルチキャストクエリを、すべてのサーバへ送信することができ、要求されたサービスを提供するサーバがそのクエリに応答する。クエリは、最大提示時間が60分である指数関数的バックオフタイマによって送信される。
【0014】
mDNSを利用することでクライアントは、集中型のDNSサーバに直接支援されることなく、所定のホストのIPアドレスを特定することができる。
【0015】
ユニキャストDNS:
ユニキャストDNSは1つのサーバを、ネットワーク内で提供されるサービスの記憶場所として利用する。ここではマルチキャストを行う代わりにすべてのサーバが、それらのサーバがどのようなサービスを提供しているのかを登録するために、ユニキャストによるメッセージ通信を利用する。ユニキャストDNSの方がよりスケーラブルなソリューションであって、その理由は、ユニキャストDNSの方が、ネットワーク上で発生するマルチキャストのトラフィックが少ないからである。
【0016】
この場合、クライアントは、クライアントが関心のあるサービスのために、ストレージサーバに長命クエリを設定する。このようにしてクライアントは、サービスを提供するデバイスに関するアップデートを受け取る。
【0017】
これら両方のソリューションはともに、サービスを提供するデバイスのリストを実世界の存在に関して最新の状態に維持する点で限界がある。
【0018】
クライアント−サーバベースのTCP/IPシステムの場合、クライアントは1つまたは複数のサーバと頻繁に通信を行う。それらのサーバに対する通信を、コネクションレス型プロトコルまたはコネクション型プロトコルを利用して実行することができる。コネクション型プロトコルの場合、クライアントとサーバは、互いに通信可能であることを相互に認識しており、すなわちクライアントとサーバは、相互間の通信経路が失われた場合には、認識することになる。
【0019】
マルチキャストDNS
問題点
図1には、ブリッジ10とクライアント12とサーバ14とから成る構成例が示されている。この場合、52分間は安定状態にあり、マルチキャストクエリは0:00:01, 0:00:03, 0:00:06, 0:00:12, 0:00:24, 0:00:48, 0:01:36, 0:03:12, 0:06:24, 0:12:48, 0:25:36, 0:51:12, 1:51:12, 2:51:12に送信され、指数関数的バックオフタイマに基づき、クライアント12は1時間に1回だけしかクエリを送信しない。
【0020】
図2に示されているように、0:51:13後に両方のブリッジ10のコネクションが確立されると、クライアント12がサーバ14を認識するまでに1時間を要することになる。つまり時点1:51:12においてクライアント12は、サーバ14が提供するサービスに対するクエリメッセージを送出することになり、このメッセージに対しサーバ14が応答する。1時間の最大待ち時間は、通常、サービスのユーザにとって許容できるものではない。
【0021】
解決手段
中央制御型ネットワークの場合には、クライアント(中央コントローラ)とサーバとの間に常に、コネクション型経路が存在することになる。この場合、サーバは、このようなコネクションが存在するか否かを照合することができる。2つのブリッジ10間のコネクションが失われたことから、サーバがコネクション消失状態を検出すると、サーバはそのネットワークコネクティビティがこれに関連して変化したと判定するので、サーバが定期的に自身を告知し、すなわち名乗り出る。インターネットドラフトによれば、サーバは自身のレコードを、1分間に最大で10回、更新することが許されている。
【0022】
やはり両方のブリッジ10間のコネクションを失った場合に、クライアントがコネクション消失状態を検出すると、クライアントはそれらのデバイスを自身のDNS−SDキャッシュからただちに削除する。したがってクライアントは、サーバについて再び報告されるまで、サーバに対する再接続を試みようとはしない。
【0023】
両方のブリッジ間のコネクションが再び復旧されると、クライアントはサーバをただちに発見することになり、そのサーバが提供しているサービスに再接続することができる。サーバは、自身のネットワークコネクティビティが再び確立されたと判断したならば、自身の定期的な告知を停止し、すなわち名乗り出るのをやめる。
【0024】
これに対する代案として、クライアントに対するコネクションが存在しないときには常に、サーバが定期的に自身を告知する。このようにすれば、クライアントとサーバのスタートアップ中にブリッジ間にコネクションが存在していなかったときと同様に、迅速なディスカバリが行われる。
【0025】
このようにした場合に不都合な点は、クライアントとサーバとの間でコネクションが確立されていない場合には、ネットワーク負荷が存在しないことであり、それというのも、すべてのサーバが頻繁に自身の告知を始めるようになるからである。ただし、このことは問題にはならない。その理由は、コントローラが存在しなければ、ネットワーク上で有効な情報が送信されないからである。
【0026】
ユニキャストDNS−クライアント(コントローラ)<->DNSストレージサーバのネットワークコネクティビティ消失
問題点
図3の構成によって、ブリッジ10とクライアント12とサーバ14とDNSストレージサーバ16を備えた、ユニキャストDNSのための適正なネットワークが示されている。この場合、前述の通りクライアントは、DNSストレージサーバ16に対する未解決の長命クエリを有する。これらのメッセージは、配送の保証がないUDP(User Datagram Protocol)を介して配送される。
【0027】
図4には、DNSストレージサーバ16とクライアント12との間でコネクションが利用できない時点に、付加的なサーバ18が接続されたシステムが示されている。DNSストレージサーバ16は、長命クエリのアップデートをクライアント12へ送出するが、このメッセージは決して到達せず、DNSストレージサーバ16は、このイベントのフィードバックを取得しないので、DNSストレージサーバ16は送出を再試行しない。クライアント12は、DNSストレージサーバ16とのコネクションが存在しないことを認識せず、このイベントはUDPを利用していることから、それを見逃すことになる。2つのブリッジ10間でコネクションが復旧されると、新たに加えられたサーバ18は、アップデートだけしか送信されないことから、決して見つけられない。
【0028】
解決手段
クライアントがLLQ(Long-Lived Query長命クエリ)をDNSストレージサーバにセットした時点で、クライアントは同様にキープアライブメカニズムもセットする。つまりクライアントは、x秒ごとに別のコネクション型通信経路を介して、メッセージをDNSストレージサーバに送信する。DNSストレージサーバは、そのメッセージに応答する。メッセージが数分間失われると、クライアントはコネクションが再び確立されるまで常に待機しなければならない。コネクションが再び確立されるとただちに、クライアントは自身のDNS−SDキャッシュを、LLQのリスタートによってリフレッシュし、その時点でクライアントにおける情報が再び更新されることになる。
【0029】
ユニキャストDNS−サーバ<->DNSストレージサーバ間のネットワークコネクティビティ消失
問題点
DNSストレージサーバをレコードストレージとして利用するシステムにおけるクライアントは、DNSストレージサーバのキャッシュを決して完全には信頼できない。
図5には、ブリッジ100とクライアント102とサーバ104とDNSストレージサーバ106とを備えた適正な構成が示されている。
【0030】
この場合、DNSストレージサーバ106は、サーバ104のDNSレコードを有する。これらのレコードは、所定の生存時間Time to Live, TTLにわたり記憶されている。サーバ104は、DNSストレージサーバ106におけるレコードをリフレッシュする役割を担っている。生存時間が経過したときだけ、レコードが失われたとクライアント102に報告されることになる。
図6に示されているように、2つのブリッジ100間でリンクが失われたときには常に、クライアント102はサーバ104とのコネクションを失う。DNSストレージサーバ106は、生存時間の期限が切れない期間中、レコードを保持し続ける。この生存時間は通常、かなり長く、数分あるいは数時間ですらあるので、クライアント102はこの期間中、期限切れのキャッシュ情報を利用することになる。
【0031】
DNSストレージサーバ106におけるレコードの期限が切れた後にリンクが復旧されると、クライアント102はサーバ104が失われていたというアップデートを受け取る。リンクが再び復旧したときにサーバ104は、デフォルトのリフレッシュ時点において、DNSストレージサーバ106を自身のレコードによって更新する。期限が切れる時間内にコネクションが復旧したときは常に、つまりDNSストレージサーバ106がクライアント102に対し、LLQを介して、サーバ104が消失したことを通知する前には、クライアント側ではアップデートを受信しないことになる。したがってクライアント102は、自身がサーバ104と再接続可能であることを認識できないことになる。
【0032】
解決手段
中央制御型ネットワークの場合には、クライアント102(中央コントローラ)とサーバ104との間には常に、コネクション型通信経路が存在することになる。
【0033】
この場合、サーバ104は、自身のコネクションが失われたことを認識する。コネクションが失われたことをサーバ104が認識した時点で、サーバ104は自身のレコードをDNSストレージサーバ106に再告知する。その際、サーバのレコードの削除と追加がDNSストレージサーバ106によって受信されたことを、受領確認の受信によって明確にしておく。このようにした場合、サーバ104は、クライアント102がLLQメカニズムを介して削除イベントと追加イベントを受信したことを、認識できるようになる。クライアント102は、削除イベントと追加イベントの認識後、サーバ104と再接続可能である。
【0034】
上述のメカニズムのうちの1つ、2つ、またはすべてを実装すれば、コネクション型システムにおけるサービスのサービスディスカバリが格段に安定したものとなる。