説明

長命のDNSクエリを円滑にするための方法および装置

本発明の一実施形態は、ネーム・サーバにおいて長命のクエリ(LLQ)を実装するシステムを提供する。動作中、システムは、クライアントからのLLQをネーム・サーバにおいて受信し、LLQは、ネーム・サーバ上に格納されている1つまたは複数のデータ項目に関連する情報を要求する。LLQに応答して、システムはその1つまたは複数のデータ項目の更新についてクライアントに知らせる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ・ネットワークに関する。より具体的には、本発明は、長命のドメイン・ネーム・サービス(DNS)クエリを円滑にする方法および装置に関する。
【背景技術】
【0002】
現在、クライアントが、ネットワークを介して様々なサービスを利用することが一般的である。例えば、アップルのiPhoto(商標)を実行しているコンピュータが、別のコンピュータのiPhoto(商標)アルバムを、ネットワークを介して共有することができる。ネットワークを介して、あるサービスを利用するための1つの前提条件は、そのサービスを利用するのに先立って、クライアントが、例えば、サービスのホスト・アドレスとポート番号を獲得することにより、そのサービスの特定のインスタンスを識別する必要があることである。したがって、クライアントが、ネットワークにおけるサービスに関する正確な、更新された情報を獲得し、保持することが重要である。
【0003】
クライアントは、通常、何らかのタイプのサービス発見機構を介して、サービスを認識する。サービス発見機構は、異なるネットワーク・プロトコルを介して提供されることも可能であるが、直ちに利用できない、基礎をなすプロトコルを使用することは、通常、実際的ではない。既存のドメイン・ネーム・サービス(DNS)プロトコルは、このプロトコルの遍在性と拡張性のために、ローカル・エリア・サービス発見のための有効なプロトコルであることが実証されており、ローカル・ネットワークを超えるワイド・エリア・サービス発見を提供するための優れた候補である。特に、IETF(Internet Engineering Task Force)RFC(Request for Comments)2761は、DNSメッセージが、サービス・メタ情報を担持するRR(リソース・レコード)を配信することを可能にするDSNの拡張(EDNS0)を指定している。
【0004】
残念ながら、拡張されたDNSは、ネーム・サーバが、サービス情報を提供することはできるが、ネーム・サーバが、常に、更新されたサービス情報をクライアントに配信することはできない。サービス・インスタンスが出現または消えたとき、またはサービスの状態が変化したときにサービス更新が起こる。そのような更新は、ネットワークが、より動的になり、サービスが、より多用途で、より移動性が高くなるにつれ、次第により頻繁になってきている。
【0005】
従来のDNSクエリは、「1回限り」である。つまり、ネーム・サーバは、1回だけクエリに応答し、その時点で入手可能な結果だけを戻す。このため、クライアントが、ネーム・サーバにクエリを行うと、クライアントは、特定の時点におけるサービス・インスタンスに関する情報だけを獲得する。最新のサービス情報を保持するのに、クライアントは、ネーム・サーバに定期的にポーリングを行わなければならない。この問題解決法は、欠点を有する。というのは、低いポーリング・レートは、クライアントが古い情報を有したままにし、高いポーリング・レートは、ネットワーク・パフォーマンスやサーバ・パフォーマンスに悪影響を与える可能性があるからである。
【発明の開示】
【発明が解決しようとする課題】
【0006】
このため、必要とされているのは、クライアントが、ネーム・サーバにポーリングを行うことなしに、更新されたサービス情報を獲得することを可能にする、長命のDNSクエリを円滑にする方法および装置である。
【課題を解決するための手段】
【0007】
本発明の一実施態様は、ネーム・サーバで長命のクエリ(LLQ)を実施するシステムを提供する。動作中、システムは、クライアントからのLLQをネーム・サーバで受信し、LLQは、ネーム・サーバ上に格納されている1つまたは複数のデータ項目に関連する情報を要求する。LLQに応答して、システムは、その1つまたは複数のデータ項目の更新についてクライアントに知らせる。
【0008】
この実施態様の変種では、LLQを受信することには、2ウェイ・ハンドシェーク・プロセス、3ウェイ・ハンドシェーク・プロセス、または4ウェイ・ハンドシェーク・プロセスが関わる。
【0009】
さらなる変種では、4ウェイ・ハンドシェーク・プロセス中、システムはまず、所望のリース寿命を含む、初期LLQセットアップ要求をクライアントから受信する。スプーフィングの可能性を回避するため、次に、システムは、そのLLQセットアップ要求に応答して、クライアントにチャレンジを送信する。チャレンジは、ランダムなLLQ−ID(LLQ識別子)と付与されたリース寿命を含む。次に、システムは、チャレンジに応答して、クライアントからチャレンジ応答を受信する。チャレンジ応答はLLQ−IDをエコーする。次に、システムは、チャレンジ応答に応答して、LLQによって要求された1つまたは複数のデータ項目に関連する情報と共に肯定応答をクライアントに送信する。
【0010】
この実施態様の変種では、その1つまたは複数のデータ項目の更新についてクライアントに後に知らせるため、システムは、LLQによって指定された1つまたは複数のデータ項目の状態を監視する。その1つまたは複数のデータ項目の状態が変化した場合、システムは、1つまたは複数の無料応答(gratuitous response)の中で、それらの変化をクライアントに通信する。
【0011】
さらなる変種では、無料応答メッセージは、無料応答メッセージのサイズが、パケット・サイズ限度を超えない限り、単一のLLQに対応する複数のデータ項目を含むことが可能である。
【0012】
この実施態様の変種では、システムは、クライアントから1つまたは複数のLLQに関するリフレッシュ要求を受信する。そのリフレッシュ要求に応答して、システムは、その1つまたは複数のLLQが、ある期間にわたってアクティブなままであることを可能にする。
【0013】
さらなる変種では、システムは、クライアントのアドレスまたはリスニング・ポートの変更を示すリフレッシュ要求を受信すると、クライアントに関連するアドレスまたはリスニング・ポートを更新する。
【0014】
さらなる変種では、システムは、リフレッシュ要求に応答して、クライアントに肯定応答を送信する。
【0015】
この実施態様の変種では、システムは、クライアントから1つまたは複数のLLQに関する終了要求を受信する。終了要求に応答して、システムは、リフレッシュ要求の中で指定された1つまたは複数のLLQを終了する。
【0016】
この実施態様の変種では、システムは、クライアントからのLLQを中間LLQプロキシで受信する。このプロキシは、クライアントと直接に通信し、1つまたは複数のクライアントを代行してネーム・サーバと通信する。
【0017】
本発明の一実施態様は、ネットワークにおけるサービスを見つけるシステムを提供する。動作中、システムは、ネットワークにおける1つまたは複数のサービスに関する状態情報をネーム・サーバ上に保持する。ホストからの要求があると、システムは、ネーム・サーバから、サービスのその後の更新を要求側のホストに通信する。システムは、要求の受信の後、ある期間が経過すると、要求側のホストへのその後の更新の通信を停止する。
【0018】
本発明の一実施態様は、長命のクエリ(LLQ)を実施するシステムを提供する。動作中、システムは、クライアントからネーム・サーバにLLQを送信し、LLQは、ネーム・サーバ上に格納されている1つまたは複数のデータ項目に関連する情報を要求し、LLQは、ある期間にわたってアクティブなままである。その後、システムは、ネーム・サーバから、その1つまたは複数のデータ項目のその後の更新をクライアントにおいて受信する。
【0019】
この実施態様の変種では、システムは、LLQの有効期限が切れる前に、リフレッシュ要求を送信して、LLQをアクティブのままとする。
【0020】
本発明の一実施態様は、ネットワークにおけるサービスを見つけるシステムを提供する。動作中、システムは、クライアントからネーム・サーバにクエリを通信し、ネーム・サーバは、ネットワークにおける1つまたは複数のサービスに関する状態情報を保持する。その後、システムは、ネーム・サーバから、サービスのその後の更新をクライアントで受信する。
【0021】
この実施態様の変種では、システムは、クエリの有効期限が切れる前に、リフレッシュ要求をネーム・サーバに通信して、クエリをアクティブのままとする。
【発明を実施するための最良の形態】
【0022】
以下の説明は、当業者が、本発明を作成し、使用することを可能にするように提示され、特定の応用例や、その応用例の要件の文脈において与えられる。開示される諸実施形態の様々な変更形態が、当業者には直ちに明白となり、本明細書で定義される一般的な原理を、本発明の趣旨と範囲を逸脱することなく、他の実施形態や応用例に適用することができる。このため、本発明は、示される諸実施形態に限定されることは意図されず、本明細書で開示される諸原理および諸特徴と一致する最も広い範囲が与えられるべきである。
【0023】
この詳細な説明で説明されるデータ構造とコードは、通常、コンピュータ可読記憶媒体上に格納される。この記憶媒体は、コンピュータ・システムによって使用されるためのコードおよび/またはデータを格納することができる任意のデバイス、または任意の媒体でである。そのようなデバイスまたは媒体には、ディスク・ドライブ、磁気テープ、CD(コンパクト・ディスク)、DVD(デジタル・バーサタイル・ディスクまたはデジタル・ビデオ・ディスク)などの磁気記憶媒体または光記憶媒体、さらには伝送媒体(信号が変調される搬送波を伴う、または伴わない)において実現されたコンピュータ命令信号が含まれるが、以上には限定されない。例えば、伝送媒体には、インターネットなどの通信ネットワークが含まれる。
【0024】
(長命のクエリをサポートするネットワーク)
図1は、本発明の実施形態によるLLQをサポートするネーム・サーバを含むネットワークを示す。図1に示されるとおり、ネットワーク100は、ネーム・サーバ120、コンピュータ・システム102、104、プリンタ106,108、スキャナ110を含む。ネットワーク100は、ローカル・エリア・ネットワーク、あるいはインターネットなどのワイド・エリア・ネットワークでよいことに留意されたい。この例では、プリンタ106と108は共に、ネットワーク100を介して印刷サービスを提供する。
【0025】
クライアント・コンピュータ104が、印刷サービスを必要とする場合、コンピュータ104は、ネーム・サーバ120においてLLQをセットアップする。ネーム・サーバ120は、プリンタ106,108の双方に関する更新された状態情報を保持する。この例では、コンピュータ104のLLQがセットアップされた際、プリンタ106の印刷サービスが利用可能であり、プリンタ108の印刷サービスは利用可能ではない。このため、ネーム・サーバ120は、プリンタ106によって提供される印刷サービスについての現在の情報をコンピュータ104に送信する。
【0026】
その特定のサービス(プリンタ106による印刷サービス)に関するコンピュータ104のLLQに、ネーム・サーバ120によって付与されたリース寿命中に、ネーム・サーバ120は、無料応答を介して、そのサービスの最新の変更でコンピュータ104を自動的に更新する。例えば、プリンタ106が、オフライン、または用紙切れである場合、ネーム・サーバ120は、サービスのその変更をコンピュータ104に通知する無料応答を送信する。さらに、プリンタ108のサービスが、利用可能になった場合、ネーム・サーバ120は、プリンタ108による追加のサービスが、現時点で利用可能であることもコンピュータ102に通知する。
【0027】
図2は、本発明の実施形態によるLLQをサポートするDNSメッセージ・フォーマットを示す。通常のDNSメッセージは、ヘッダ210、質問フィールド212、回答フィールド214、権限フィールド216、追加情報フィールド218を含む。質問フィールド212は、クライアントからネーム・サーバにクエリを送信するのに使用される。回答フィールド214、権限フィールド216、追加情報フィールド218は、一般的なリソース・レコード(RR)フォーマットを共有するRRを含む。それらのフィールドの各々が、1つまたは複数のRRを含んでもよいことに留意されたい。
【0028】
図2を参照すると、リソース・レコードが、NAMEフィールド220、TYPEフィールド222、CLASSフィールド224、活動時間(TTL)フィールド226、リソース・データ長(RDLEN)フィールド228、リソース・データ(RDATA)フィールド230を含む。LLQを実施する1つのアプローチは、IETF RFC2671において指定されるオプション(OPT)擬似RRを使用することである。LLQをOPT RRの中に符号化することにより、ネーム・サーバのフロントエンドを最小限しか変更せずに、LLQを実施することが可能になり、LLQを実施しないサーバは、適切なエラーを自動的に戻す。
【0029】
したがって、NAMEフィールド220は、この場合、サービスのルート・ドメインである、以下のリソース・データが対応する名前である。TYPEフィールド222は、OPTの値を有して、そのフィールド222が、OPT RRであることを示す。CLASSフィールド224は、RFC2671に準拠して、送信側のユーザ・データグラム・プロトコル(UDP)ペイロード・サイズを示す。しかし、クライアントとサーバは、LLQをサポートするのに、クライアントとサーバの再組み立てバッファ・サイズまたはパスMTU(最大転送単位)を算出することを要求されない。このため、LLQ要求または応答の送信側は、CLASSフィールド224を0に設定することができる。受信側は、CLASSフィールドが0に設定されている場合、CLASSフィールドを無視する。TTLフィールド226は、クライアントによってRRがキャッシュされる秒数を示す。この場合、TTLフィールド226は0に設定されて、RRが、キャッシュされるべきリソース・レコード・データを含まないことを示す。RDLENフィールド228は、RDATAフィールド230の長さを指定する。
【0030】
RDATAフィールド230は、LLQ情報を担持する以下のフィールドを含む。すなわち、以下のフィールドがLLQ情報を担持することを示すのに、OPTION−CODEフィールド232が使用される。OPTION−LEGNTHフィールド234が以下のフィールドの長さを示す。VERSIONフィールド236が実装されたLLQプロトコルのバージョンを示す。LLQ−OPCODEフィールド238がLLQオペレーション(例えば、セットアップまたはリフレッシュ)を明らかにする。ERRORフィールド240がLLQエラーを示す。LLQ−IDフィールド242が特定のLLQに関する識別子を含む。LEASE LIFEフィールド244が、LLQの要求された寿命、または付与された寿命を秒数で示す。(OPTION−CODE、OPTION−LEN、LLQ−メタデータ)タプルから成るこのデータ・フォーマットが、適切に設定されたRDLENフィールドを伴って、RDATAフィールドの中で任意の回数、繰り返される。
【0031】
(LLQセットアップ)
図3は、本発明の実施形態によるLLQをセットアップするための4ウェイ・ハンドシェーク・プロセスを示す時間−空間図と流れ図である。通常、クライアントが、LLQを開始し、ネーム・サーバとの4ウェイ・ハンドシェーク・プロセスを介してLLQセットアップを完了する。このプロセスは、確実なセットアップをもたらし、サービス拒否攻撃のリスクを小さくする。
【0032】
図3に示されるとおり、ネーム・サーバ内のシステムが、クライアントからのLLQセットアップ要求を受信することから始める(ステップ310)。LLQセットアップ要求は、標準のDNSクエリと同様にフォーマットされ、OPT RRが、追加情報フィールドの中にLLQメタデータを含む。LLQセットアップ要求は、LLQ−SETUP OPCODEと0の値のLLQ−IDによって識別される。LLQセットアップ要求は、LLQメタデータ・セクションの中に各々が含まれる、複数のLLQをセットアップする複数の質問を含むことが可能である。また、LLQセットアップ要求は、LLQが、ネーム・サーバにおいて有効なままであるリース寿命も要求することができる。
【0033】
LLQセットアップ要求に応答して、システムは、LLQチャレンジをクライアントに返送する(ステップ320)。LLQチャレンジは、DNSメッセージIDが要求のIDと一致し、要求の中のすべての質問が質問フィールドの中に存在するDNS応答である。チャレンジは、各要求の成功または失敗を示す、各LLQ要求に関するLLQメタデータ・セクションを有するOPT−RRを含む。また、チャレンジは、要求が成功した各LLQに関するLLQ−IDと、付与されたリース寿命も含む。LLQ−IDは、ネーム・サーバによって生成される一意の乱数であることが可能である。ネーム・サーバは、クライアントがLLQを間に合うようにリフレッシュしない限り、LLQのリース寿命が切れると、LLQを破棄する。
【0034】
次に、システムは、チャレンジに応答して、クライアントによって送信されたLLQチャレンジ応答を受信する(ステップ330)。このLLQチャレンジ応答は、追加情報フィールドの中に単一のOPT−RRを有し、LLQチャレンジの中に含まれるOPT−RR RDATAと同一のOPT−RR RDATAを有する(すなわち、各フィールド・セットに関して、LLQ−ID、および付与されたリース寿命をエコーする)DNS要求であることが可能である。
【0035】
システムは、次に、LLQチャレンジ応答を確認する肯定応答を送信する(ステップ340)。この肯定応答は、元のLLQセットアップ要求の中に含まれる質問に対するすべての入手可能な回答を、追加情報フィールドの中の、それらの回答に適切なすべての追加のRRと共に含む。また、肯定応答は、割り当てられたLLQ−IDとリース寿命を繰り返すOPT−RRも含む。
【0036】
前述した4ウェイ・ハンドシェーク・プロセスは、本発明の一実施形態に過ぎないことに留意されたい。4ウェイ・ハンドシェーク・プロセスは、サービス拒否攻撃につながる可能性があるスプーフィングを防止することを主にねらっている。代替として、2ウェイ・ハンドシェーク・プロセス、3ウェイ・ハンドシェーク・プロセス、またはnウェイ・ハンドシェーク・プロセスが、LLQをセットアップするのに使用されてもよい。一般に、LLQがどのようにセットアップされるかの実際の仕組みは、LLQの基本的なオペレーションに影響を与えない。
【0037】
例えば、2ウェイ・ハンドシェーク・プロセスでは、クライアントはまず、LLQセットアップ要求をネーム・サーバに送信する。LLQセットアップ要求を受信すると、ネーム・サーバは、LLQセットアップ要求の中に含まれる質問に対するすべての入手可能な回答で応答する。同一の応答の中で、ネーム・サーバは、LLQにLLQ−IDとリース寿命を割り当てることも行う。
【0038】
例えば、3ウェイ・ハンドシェーク・プロセスでは、クライアントはまず、LLQセットアップ要求をネーム・サーバに送信する。LLQセットアップ要求を受信すると、ネーム・サーバは、LLQセットアップ要求の中に含まれる質問に対するすべての入手可能な回答で応答する。同一の応答の中で、ネーム・サーバは、LLQにLLQ−IDとリース寿命を割り当てることも行う。応答を受信した後、クライアントは、応答の受信に成功したことを確認する肯定応答をサーバに返送する。
【0039】
(無料応答)
図4は、本発明の実施形態によるネットワーク・サービス更新をクライアントに送信するプロセスを示す流れ図を提示する。サービスの状態が、ネーム・サーバのゾーンにおいて変化すると、サーバは、更新されたリソース・レコードが、リース寿命が切れていないいずれかのLLQに応答するかどうかを調べる。応答する場合、ネーム・サーバは、更新されたRRを、無料応答の形態でLLQ要求側クライアントに送信する。
【0040】
ネーム・サーバは、単一のLLQに関する複数の無料応答を集約して、単一のメッセージが、複数のRRを含むようにしてもよい。しかし、集約は、集約することにより単一のパケットの中に収まるメッセージが切り捨てられたり、または過度の待ち時間を必要とするようになる場合、望ましくない。
【0041】
無料応答を送信した後、ネーム・サーバは、クライアントからの肯定応答を待つ。クライアントが応答しない場合、サーバは応答を数回再送信して、各回の再送信の合間に、ある期間にわたって待ち、肯定応答が受信されない場合、LLQを終了する。
【0042】
図4の流れ図は、以上のイベント通知プロセスを示す。ネーム・サーバ内のシステムが、サービスの状態を監視することから始め、RR更新が存在するかどうかを判定する(ステップ410)。存在しない場合、システムは監視することを続ける。存在する場合、システムは、更新されたRRが、いずれかの有効期限が切れていないLLQに応答するかどうかを判定する(ステップ420)。応答しない場合、システムは、サービスを監視することを続ける。応答する場合、システムは、更新されたRRを伴う無料応答をクライアントに送信する(ステップ430)。その後、システムは、ある期間内にクライアントから肯定応答を受信したかどうかを判定する(ステップ440)。肯定応答は、クライアントが、無料応答を受信することに成功したことを示し、システムは、サービスの監視を続ける。受信していない場合、システムは、無料応答をクライアントに再送信し(ステップ450)、肯定応答を待つ(ステップ460)。システムが、肯定応答を最終的に受信した場合、無料応答は成功であり、システムは監視状態に戻る。受信しなかった場合、システムはLLQを終了する(ステップ470)。システムは、何回も無料応答を再送信してもよく、再送信と再送信の間で、次第により長い期間、待ってもよいことに留意されたい。
【0043】
(LLQリフレッシュ)
図5Aは、本発明の実施形態による1つまたは複数のLLQのリース寿命をリフレッシュするようにクライアントからリフレッシュ要求を送信するプロセスを示す流れ図を示している。クライアントが、割り当てられたリース寿命の中で指定された時間を超えてLLQを保つことを所望する場合、クライアントは、リフレッシュ要求を送信することができる。リフレッシュ要求は、LLQセットアップ要求に類似し、LLQ−OPCODEが、LLQ−REFRESHに設定されている。LLQセットアップ応答とは異なり、リフレッシュ要求は、全く応答を戻さない。さらに、クライアントは、いくつかのLLQを1つのリフレッシュ要求メッセージの中に集約して、ネットワーク・トラフィックを減らしてもよい。
【0044】
図5Aに示されるとおり、クライアントは、LLQのリース寿命がまもなく切れるかどうかを判定することから始める(ステップ510)。リース寿命がまもなく切れる場合、クライアントは、リフレッシュ要求をネーム・サーバに送信する(ステップ520)。その後、クライアントは、ネーム・サーバからの肯定応答を待つ(ステップ530)。クライアントが、肯定応答を受信した場合、リフレッシュ・プロセスは成功であり、そのため、完了する。クライアントは、ある期間が経過しても肯定応答を受信しなかった場合、リフレッシュ要求をネーム・サーバに再送信する(ステップ520)。肯定応答が受信されないため、ネーム・サーバがダウンしているとクライアントが判定した場合、クライアントは、LLQを再確立する。
【0045】
図5Bは、本発明の実施形態によるクライアントのアドレスまたはリスニング・ポートを更新するようにクライアントからリフレッシュ要求を送信するプロセスを示す流れ図を提示する。クライアントのアドレスまたはリスニング・ポートが変更された場合、クライアントは、その新たなアドレスまたはポートから、LLQリフレッシュ要求をネーム・サーバに送信することができる。リフレッシュ要求を受信すると、ネーム・サーバは、クライアントに関連するアドレス番号またはポート番号を更新し、クライアントに属するLLQのリース寿命を更新する。
【0046】
図5Bに示されるとおり、クライアントは、クライアントのアドレスまたはリスニング・ポートに変更があるかどうかを判定することから始める(ステップ540)。変更がない場合、クライアントは、クライアントのアドレスとリスニング・ポートを監視することを続ける。変更がある場合、クライアントは、リフレッシュ要求をネーム・サーバに送信する(ステップ550)。その後、クライアントは、ネーム・サーバからの肯定応答を待つ(ステップ560)。クライアントが、肯定応答を受信した場合、リフレッシュ・プロセスは成功であり、そのため、完了する。クライアントは、ある期間が経過しても肯定応答を受信しない場合、リフレッシュ要求をネーム・サーバに再送信する(ステップ550)。肯定応答が受信されないため、ネーム・サーバがダウンしているとクライアントが判定した場合、クライアントはLLQを再確立する。
【0047】
(DNSキャッシングとLLQプロキシ)
図6は、本発明の実施形態によるLLQを扱うLLQプロキシとして作用するDNSキャッシュを含むネットワークを示す。コンピュータ102が、LLQセットアップ要求と制御メッセージを中間DNSキャッシュ610に送信する。DNSキャッシュ610は、中間LLQプロキシの役割をする場合、コンピュータ102と直接に通信することができ、1つまたは複数のクライアントを代行してネーム・サーバ660と通信することができる。
【0048】
DNSキャッシュ610が、LLQプロキシを実施しない場合、コンピュータ102がLLQメッセージを送信することができるネーム・サーバのアドレス番号とポート番号をコンピュータ102が特定する必要がある。LLQメッセージを扱うネーム・サーバを明らかにするのに、コンピュータ102はまず、SOA(Start of Authority)タイプの、LLQの名前に関する標準のDNSクエリを送信する。SOAレコードが存在する場合、ネーム・サーバは、応答メッセージの回答フィールド中において、そのSOAレコードで回答する。存在しない場合、ネーム・サーバは、応答メッセージの権限フィールドの中において、その名前のゾーンに関するSOAレコードで回答する。例えば、_ftp._tcp.apple.comに関するクエリは、_ftp._tcp.apple.comという名前のSOAレコードが存在しない場合、応答の権限フィールドの中で、apple.comという名前のSOAレコードを戻す。その後、コンピュータ102が、この例では、_dsn−llq._udp.apple.comである、_dns−llq._udp.<soa−name>という名前に関するSRV(サービス・ロケーション)クエリを構築して、送信する。これに応答して、LLQを実施するネーム・サーバが、その名前に関するSRVレコードで回答する。SRV RDATAが、LLQ要求が送信されるべきポートを示す。
【0049】
本発明の諸実施形態の以上の説明は、例示と説明の目的でだけ提示されている。それらの実施形態は、網羅的であること、または開示された諸形態に本発明を限定することを意図していない。したがって、多くの変更形態や変形形態が、当業者には明白となろう。さらに、以上の開示は、本発明を限定することを意図していない。本発明の範囲は、添付の特許請求の範囲によって定義される。
【図面の簡単な説明】
【0050】
【図1】本発明の実施形態によるLLQをサポートするネーム・サーバを含むネットワークを示す図である。
【図2】本発明の実施形態によるLLQをサポートするDNSメッセージ・フォーマットを示す図である。
【図3】本発明の実施形態によるLLQをセットアップするための4ウェイ・ハンドシェーク・プロセスを示す時間−空間図および流れ図である。
【図4】本発明の実施形態によるネットワーク・サービス更新をクライアントに送信するプロセスを示す流れ図である。
【図5A】本発明の実施形態による1つまたは複数のLLQのリース寿命をリフレッシュするようにクライアントからリフレッシュ要求を送信するプロセスを示す流れ図である。
【図5B】本発明の実施形態によるクライアントのアドレスまたはリスニング・ポートを更新するようにクライアントからリフレッシュ要求を送信するプロセスを示す流れ図である。
【図6】本発明の実施形態によるLLQを扱うLLQプロキシとして作用するDNSキャッシュを含むネットワークを示す図である。

【特許請求の範囲】
【請求項1】
ネーム・サーバにおいて長命のクエリ(LLQ)を実施する方法であって、
前記ネーム・サーバ上に格納されている1つまたは複数のデータ項目に関連する情報を要求する、クライアントからのLLQを前記ネーム・サーバにおいて受信することと、
前記LLQに応答して、前記1つまたは複数のデータ項目の更新について前記クライアントに知らせること
を含む方法。
【請求項2】
前記LLQを受信することは、2ウェイ・ハンドシェーク・プロセス、3ウェイ・ハンドシェーク・プロセス、または4ウェイ・ハンドシェーク・プロセスを含む請求項1に記載の方法。
【請求項3】
前記4ウェイ・ハンドシェーク・プロセスには、
所望されるリース寿命を含む初期LLQセットアップ要求を前記クライアントから受信することと、
前記LLQセットアップ要求に応答して、ランダムなLLQ−ID(LLQ識別子)と、付与されたリース寿命を含むチャレンジを前記クライアントに送信することと、
前記チャレンジに応答して、前記LLQ−IDをエコーするチャレンジ応答を受信することと、
前記チャレンジ応答に応答して、前記LLQによって要求された前記1つまたは複数のデータ項目に関連する情報と共に、前記肯定応答をクライアントに送信すること
を含む請求項2に記載の方法。
【請求項4】
前記1つまたは複数のデータ項目の更新について前記クライアントに後に知らせることは、
前記LLQによって指定された前記1つまたは複数のデータ項目の状態を監視することと、
前記1つまたは複数のデータ項目の状態が、変化した場合、前記変化を1つまたは複数の無料応答の中で前記クライアントに通信することと
を含む請求項1に記載の方法。
【請求項5】
無料応答メッセージは、前記無料応答メッセージのサイズが、パケット・サイズ限度を超えない限り、単一のLLQに対応する複数のデータ項目を含む請求項4に記載の方法。
【請求項6】
クライアントから1つまたは複数のLLQに関するリフレッシュ要求を受信することと、
前記リフレッシュ要求に応答して、前記1つまたは複数のLLQが、ある期間にわたってアクティブなままとすることをさらに含む請求項1に記載の方法。
【請求項7】
前記クライアントのアドレスまたはリスニング・ポートの変更を示すリフレッシュ要求を受信すると、前記クライアントに関連するアドレスまたはリスニング・ポートを更新することをさらに含む請求項6に記載の方法。
【請求項8】
前記リフレッシュ要求に応答して、肯定応答を前記クライアントに送信することをさらに含む請求項6に記載の方法。
【請求項9】
クライアントから1つまたは複数のLLQに関する終了要求を受信することと、
前記終了要求の中で指定された前記1つまたは複数のLLQを終了することをさらに含む請求項1に記載の方法。
【請求項10】
前記クライアントと直接に通信し、1つまたは複数のクライアントを代行して前記ネーム・サーバと通信する中間LLQプロキシにおいて、クライアントからのLLQを受信することをさらに含む請求項1に記載の方法。
【請求項11】
ネットワークにおけるサービスを見つける方法であって、
前記ネットワークにおける1つまたは複数のサービスに関する状態情報をネーム・サーバ上に保持することと、
ホストからの要求があると、前記ネーム・サーバから、前記サービスのその後の更新を前記要求側のホストに通信することと、
前記要求の受信の後、ある期間が経過すると、前記要求側のホストへの前記その後の更新の通信を停止することを含む方法。
【請求項12】
長命のクエリ(LLQ)を実施する方法であって、
クライアントからネーム・サーバにLLQを送信することであって、前記LLQが、前記ネーム・サーバ上に格納されている1つまたは複数のデータ項目に関連する情報を要求し、前記LLQが、ある期間にわたってアクティブなままである、前記送信することと、
前記ネーム・サーバから、前記1つまたは複数のデータ項目のその後の更新を前記クライアントにおいて受信することを含む方法。
【請求項13】
前記LLQの有効期限が切れる前に、リフレッシュ要求を送信して、前記LLQが、アクティブなままであるようにすることをさらに含む請求項12に記載の方法。
【請求項14】
ネットワークにおけるサービスを見つける方法であって、
クライアントからのクエリをネーム・サーバに通信し、前記ネーム・サーバは、前記ネットワークにおける1つまたは複数のサービスに関する状態情報を保持することと、
前記ネーム・サーバから、前記サービスのその後の更新を前記クライアントにおいて受信することを含む方法。
【請求項15】
前記クエリの有効期限が切れる前に、リフレッシュ要求を前記ネーム・サーバに通信して、前記クエリをアクティブのままとすることをさらに含む請求項14に記載の方法。
【請求項16】
コンピュータによって実行されると、前記コンピュータが、ネーム・サーバで長命のクエリ(LLQ)を実施する方法であって、
前記ネーム・サーバ上に格納されている1つまたは複数のデータ項目に関連する情報を要求する、クライアントからのLLQを前記ネーム・サーバで受信することと、
前記LLQに応答して、前記1つまたは複数のデータ項目の更新について前記クライアントに知らせることと
を含む方法を実行させる命令を格納しているコンピュータ可読記憶媒体。
【請求項17】
前記LLQを受信することは、2ウェイ・ハンドシェーク・プロセス、3ウェイ・ハンドシェーク・プロセス、または4ウェイ・ハンドシェーク・プロセスを含む請求項16に記載のコンピュータ可読記憶媒体。
【請求項18】
前記4ウェイ・ハンドシェーク・プロセスは、
所望されるリース寿命を含む初期LLQセットアップ要求を前記クライアントから受信することと、
前記LLQセットアップ要求に応答して、ランダムなLLQ−ID(LLQ識別子)と付与されたリース寿命を含むチャレンジを前記クライアントに送信することと、
前記チャレンジに応答して、前記LLQ−IDをエコーするチャレンジ応答を受信することと、
前記チャレンジ応答に応答して、前記LLQによって要求された前記1つまたは複数のデータ項目に関連する情報と共に、前記肯定応答を前記クライアントに送信することを含む請求項17に記載のコンピュータ可読記憶媒体。
【請求項19】
前記1つまたは複数のデータ項目の更新について前記クライアントに後に知らせることは、
前記LLQによって指定された前記1つまたは複数のデータ項目の状態を監視することと、
前記1つまたは複数のデータ項目の状態が変化した場合、その変化を1つまたは複数の無料応答の中で前記クライアントに通信することと
を含む請求項16に記載のコンピュータ可読記憶媒体。
【請求項20】
無料応答メッセージは、前記無料応答メッセージのサイズが、パケット・サイズ限度を超えない限り、単一のLLQに対応する複数のデータ項目を含む請求項19に記載のコンピュータ可読記憶媒体。
【請求項21】
前記方法は、
クライアントから1つまたは複数のLLQに関するリフレッシュ要求を受信することと、
前記リフレッシュ要求に応答して、前記1つまたは複数のLLQが、ある期間にわたってアクティブなままとすることと
をさらに含む請求項16に記載のコンピュータ可読記憶媒体。
【請求項22】
前記方法は、前記クライアントのアドレスまたはリスニング・ポートの変更を示すリフレッシュ要求を受信すると、前記クライアントに関連するアドレスまたはリスニング・ポートを更新することをさらに含む請求項21に記載のコンピュータ可読記憶媒体。
【請求項23】
前記方法は、前記リフレッシュ要求に応答して、肯定応答を前記クライアントに送信することをさらに含む請求項21に記載のコンピュータ可読記憶媒体。
【請求項24】
前記リフレッシュ要求が0の値のリース寿命を指定する場合、前記方法は、前記リフレッシュ要求の中で指定された前記1つまたは複数のLLQを終了することをさらに含む請求項16に記載のコンピュータ可読記憶媒体。
【請求項25】
前記方法は、
クライアントから1つまたは複数のLLQに関する終了要求を受信することと、
前記終了要求の中で指定された前記1つまたは複数のLLQを終了することと
をさらに含む請求項16に記載のコンピュータ可読記憶媒体。
【請求項26】
コンピュータによって実行されると、前記コンピュータがネットワークにおけるサービスを見つける方法であって、
前記ネットワークにおける1つまたは複数のサービスに関する状態情報をネーム・サーバ上に保持することと、
ホストからの要求があると、前記ネーム・サーバから、前記サービスのその後の更新を前記要求側のホストに通信することと、
前記要求の受信の後、ある期間が経過すると、前記要求側のホストへの前記その後の更新の通信を停止することと
を含む方法を実行させる命令を格納しているコンピュータ可読記憶媒体。
【請求項27】
コンピュータによって実行されると、前記コンピュータが長命のクエリ(LLQ)を実施する方法であって、
クライアントからネーム・サーバにLLQを送信することであって、前記LLQは、前記ネーム・サーバ上に格納されている1つまたは複数のデータ項目に関連する情報を要求し、前記LLQは、ある期間にわたってアクティブなままである、前記送信することと、
前記ネーム・サーバから、前記1つまたは複数のデータ項目のその後の更新を前記クライアントにおいて受信することと
を含む方法を実行させる命令を格納しているコンピュータ可読記憶媒体。
【請求項28】
前記LLQの有効期限が切れる前にリフレッシュ要求を送信して、前記LLQを、アクティブのままとすることをさらに含む請求項27に記載のコンピュータ可読記憶媒体。
【請求項29】
コンピュータによって実行されると、前記コンピュータが、ネットワークにおけるサービスを見つける方法であって、
クライアントからのクエリをネーム・サーバに通信し、前記ネーム・サーバは、前記ネットワークにおける1つまたは複数のサービスに関する状態情報を保持することと、
前記ネーム・サーバから、前記サービスのその後の更新を前記クライアントにおいて受信することと
を含む方法を実行させる命令を格納しているコンピュータ可読記憶媒体。
【請求項30】
前記方法は、前記クエリの有効期限が切れる前に、リフレッシュ要求を前記ネーム・サーバに通信して、前記クエリをアクティブのままとすることをさらに含む請求項29に記載のコンピュータ可読記憶媒体。
【請求項31】
長命のクエリ(LLQ)を実施する装置であって、
ネーム・サーバ上に格納されている1つまたは複数のデータ項目に関連する情報を要求する、クライアントからのLLQを受信し、
前記LLQに応答して、前記1つまたは複数のデータ項目の現在の状態を前記クライアントに通信し、前記1つまたは複数のデータ項目の更新について前記クライアントにその後、知らせるように構成されたネーム・サーバを含む装置。
【請求項32】
前記ネーム・サーバは、前記LLQを受信している間、
所望されるリース寿命を含む初期LLQセットアップ要求を前記クライアントから受信し、
前記LLQセットアップ要求に応答して、ランダムなLLQ−ID(LLQ識別子)と付与されたリース寿命を含むチャレンジを前記クライアントに送信し、
前記チャレンジに応答して、前記LLQ−IDをエコーするチャレンジ応答を受信し、
前記チャレンジ応答に応答して、前記質問に対する回答と共に、前記肯定応答をクライアントに送信するように構成された請求項31に記載の装置。
【請求項33】
前記クライアントに前記1つまたは複数のデータ項目の更新について知らせるため、前記ネーム・サーバは、
前記LLQのリース寿命の期間にわたって、前記LLQによって指定された前記1つまたは複数のデータ項目の状態を監視し、
前記1つまたは複数のデータ項目の状態が変化した場合、1つまたは複数の無料応答の中でその変化を前記クライアントに通信するように構成された請求項31に記載の装置。
【請求項34】
無料応答メッセージは、前記無料応答メッセージのサイズがパケット・サイズ限度を超えない限り、単一のLLQに対応する複数のデータ項目を含む請求項33に記載の装置。
【請求項35】
前記ネーム・サーバは、
クライアントから1つまたは複数のLLQに関するリフレッシュ要求を受信し、
前記リフレッシュ要求が0でないリース寿命を指定する場合、前記リフレッシュ要求に応答して、前記1つまたは複数のLLQの前記リース寿命を更新するようにさらに構成された請求項31に記載の装置。
【請求項36】
前記ネーム・サーバは、前記クライアントのアドレスまたはリスニング・ポートの変更を示すリフレッシュ要求を受信すると、前記クライアントに関連するアドレスまたはリスニング・ポートを更新するようにさらに構成された請求項35に記載の装置。
【請求項37】
前記リフレッシュ要求が0の値のリース寿命を指定する場合、前記ネーム・サーバは、前記リフレッシュ要求の中で指定された前記1つまたは複数のLLQを終了するようにさらに構成された請求項35に記載の装置。
【請求項38】
前記ネーム・サーバは、前記リフレッシュ要求に応答して、肯定応答を前記クライアントに送信するようにさらに構成された請求項35に記載の装置。
【請求項39】
クライアントからLLQを受信し、
前記クライアントと直接に通信し、
1つまたは複数のクライアントを代行して前記ネーム・サーバと通信するように構成された中間LLQプロキシをさらに含む請求項31に記載の装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate


【公表番号】特表2007−531949(P2007−531949A)
【公表日】平成19年11月8日(2007.11.8)
【国際特許分類】
【出願番号】特願2007−507311(P2007−507311)
【出願日】平成17年2月10日(2005.2.10)
【国際出願番号】PCT/US2005/004305
【国際公開番号】WO2006/011909
【国際公開日】平成18年2月2日(2006.2.2)
【出願人】(500027770)アプル・コンピュータ・インコーポレーテッド (16)
【Fターム(参考)】