JP2013536663A - ネットワーク接続をアイドリングさせる方法及び装置 - Google Patents

ネットワーク接続をアイドリングさせる方法及び装置 Download PDF

Info

Publication number
JP2013536663A
JP2013536663A JP2013529134A JP2013529134A JP2013536663A JP 2013536663 A JP2013536663 A JP 2013536663A JP 2013529134 A JP2013529134 A JP 2013529134A JP 2013529134 A JP2013529134 A JP 2013529134A JP 2013536663 A JP2013536663 A JP 2013536663A
Authority
JP
Japan
Prior art keywords
network interface
route
interface
operating system
root
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.)
Granted
Application number
JP2013529134A
Other languages
English (en)
Other versions
JP5662579B2 (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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2013536663A publication Critical patent/JP2013536663A/ja
Application granted granted Critical
Publication of JP5662579B2 publication Critical patent/JP5662579B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

ここに述べる実施形態は、ネットワークインターフェイスを構成するシステムを包含する。動作中に、このシステムは、ネットワークインターフェイスをアイドリングさせることができることを指示する信号をオペレーティングシステムから受信する。この信号は、ネットワークインターフェイスに依存する最終的なルート構造体が満了となりそして削除されたことをオペレーティングシステムが決定するや否や、オペレーティングシステムから送信される。次いで、このシステムは、オペレーティングシステムから信号が送信されて以来、ネットワークインターフェイスを使用するルートをアプリケーションが確立したかどうか決定する。もし確立されなければ、システムが、ネットワークインターフェイスがアイドリングされるようにする。さもなければ、システムは、ネットワークインターフェイスを現在動作状態のままにする。
【選択図】 図7

Description

本発明は、ネットワーク接続を与える電子装置に係る。より詳細には、本発明は、ネットワーク接続のための改良されたアイドリングを促進する電子装置に係る。
多数の近代的な電子装置は、その装置と他の装置との間でワイヤード又はワイヤレスネットワークを横切ってデータを転送するのに使用できるネットワークサブシステムを備えている。例えば、これら電子装置は、BluetoothTMネットワークサブシステム、セルラーネットワークサブシステム、ユニバーサルシリアルバス(USB)ネットワークサブシステム、インスティテュート・フォア・エレクトリカル・アンド・エレクトロニック・エンジニアズ(IEEE)802.11ワイヤレスネットワークサブシステム、イーサネット(登録商標)ネットワークサブシステム、或いはワイヤード又はワイヤレスパーソナルエリアネットワーキング(PAN)サブシステムを含む。これらの電子装置において、各ネットワークサブシステムは、対応するネットワーク上で通信するために電子装置により使用されるハードウェア(例えば、送信器、ラジオ、等)及び/又はソフトウェアを含むインターフェイスを有する。
これら電子装置に幾つかにおいて、所与のネットワークサブシステムインターフェイスの動作モードは、インターフェイスマネージャータスクによりコントロールされる。インターフェイスマネージャータスクの機能の1つは、インターフェイス上にネットワークトラフィックがないことに基づいてインターフェイスをパワーダウンすることにより節電すべきときを決定することである。これらの装置では、インターフェイス上のネットワークトラフィックのレベルを決定するときに、インターフェイスマネージャータスクは、典型的に、インターフェイスの物理的レイヤにおいてある最小レートでパケットが転送されているかどうか決定する。
インターフェイスマネージャータスクは、インターフェイスをパワーダウンすべきかどうかの決定をなすために物理的レイヤにおいてパケットが転送されるレートを使用するので、インターフェイスマネージャータスクは、アプリケーションによりまだ使用されているインターフェイスを誤ってパワーダウンすることがある。特に、アプリケーションがまだアクティブである(例えば、ユーザがまだ退出していない)が、所定の時間中インターフェイスを使用してパケットを単に転送していない場合に、インターフェイスマネージャータスクは、インターフェイスをパワーダウンすることがある。アプリケーションがその後にパケットの転送を再開すると、アプリケーションは、インターフェイスがダウンしていることを発見し、そしてユーザにエラーを信号することができる(又はインターフェイスを再アクチベートするよう強制されてもよい)。これはユーザを苛立たせる。例えば、2人以上のユーザが、装置間でゲームデータを転送するためにネットワーク接続に依存するポータブル電子装置(例えば、ラップトップ又はスマートホン)においてゲームアプリケーションを使用していると仮定する。ゲームデータの転送中に所定時間より長い休止が生じた場合には、一方の装置のインターフェイスマネージャータスクが、それに対応するインターフェイスをパワーダウン(さもなければ、そのインターフェイスの動作モードを調整)することがあり、これは、インターフェイスを通してゲームデータを転送する電子装置の能力を混乱させ、潜在的にゲームの中断を招くことがある。
ここに述べる実施形態は、ネットワークインターフェイスを構成するシステムを包含する。動作中に、このシステムは、ネットワークインターフェイスをアイドリングさせることができることを指示する信号をオペレーティングシステムから受信する。この信号は、ネットワークインターフェイスに依存する最終的なルート構造体が満了となりそして削除されたことをオペレーティングシステムが決定するや否や、オペレーティングシステムから送信される。次いで、このシステムは、オペレーティングシステムから信号が送信されて以来、ネットワークインターフェイスを使用するルートをアプリケーションが確立したかどうか決定する。もしそうでなければ、システムが、ネットワークインターフェイスがアイドリングされるようにする。さもなければ、システムは、ネットワークインターフェイスを現在動作状態のままにする。
ある実施形態では、別のアプリケーションがルートを確立したかどうか決定するとき、システムは、別のアプリケーションがルートを確立したかどうか決定するためにオペレーティングシステム及び/又はアプリケーションに問合せし、及び/又は一致するルートを見つけるためにコンピュータシステムのルート構造体をサーチする。
ある実施形態では、ネットワークインターフェイスをアイドリングさせるときに、システムは、(1)ネットワークインターフェイスをパワーダウンし、(2)ネットワークインターフェイスを低電力モードへスイッチし、又は(3)ネットワークインターフェイスを通常の/アクティブな電力レベルで使用するが低プライオリティ動作又はメンテナンス動作のみを遂行するように構成する。
ある実施形態では、ネットワークインターフェイスをアイドリングさせることで、別のアプリケーション(1つ又は複数)がネットワークインターフェイスをアイドル状態に入れるようにさせる。更に、ある実施形態では、アプリケーション(1つ又は複数)がネットワークインターフェイスをアイドリングさせるときに、システムは、少なくとも1つの他のアプリケーションに、ネットワークインターフェイスがアイドリングされることを通知することができる。
ある実施形態では、インターフェイスをアイドリングするアプリケーション(1つ又は複数)は、ネットワークインターフェイスをアイドル状態に入れることのできるインターフェイスマネージャー及び/又は別のアプリケーションを含む。
ここに述べる実施形態は、オペレーティングシステムにおいて削除されるべき満了となったルート構造体をスキャンする処理サブシステムを包含する。動作中に、この処理サブシステムは、ルートドメインにおける機能を実行する。ルートドメインにおける機能を実行するとき、ルートドメインにおけるドレイン機能ポインタがルートドメインにおけるドレイン機能を指す場合には、処理サブシステムは、満了となったルート構造体をスキャンするためにドレイン機能を実行する。さもなければ、ドレイン機能ポインタがNULLにセットされた場合には、処理サブシステムは、ドレイン機能をスキップし(即ち、実行せず)、むしろ、オペレーティングシステムにおけるネットワークプロトコルスタックメカニズムを使用して、満了となったルート構造体をスキャンする。
ここに述べる実施形態は、ネットワークインターフェイスをもつ装置と、ネットワークインターフェイスの動作状態を管理するための処理システムとを包含する。これらの実施形態において、ブートアップシーケンス中に、処理サブシステムは、ネットワークインターフェイスを構成する。ネットワークインターフェイスを構成するとき、プロセッサは、(1)ネットワークインターフェイスに依存するルート構造体が、短いルート満了タイマー値を使用して満了とされるとき、及び(2)ルート満了タイマーが満了となったルート構造体が、ネットワークインターフェイスがアイドルでない限り、ルートドメインにおけるドレイン機能を使用してスキャンされるとき、ネットワークインターフェイスに対する積極的なアイドリングフラグをアサートする。
ここに述べる実施形態は、コンピュータシステムにおける対応するネットワークインターフェイスの動作状態を追跡するのに使用されるインターフェイスデータ構造体を記憶することのできるコンピュータ読み取り可能な記憶媒体を包含する。これら実施形態では、インターフェイスデータ構造体は、積極的なアイドリングフラグ及びルート参照カウンタを含む。積極的なアイドリングフラグは、それがアサートされると、オペレーティングシステムが、ネットワークインターフェイスに依存するルート構造体のための短い満了時間を使用するようにさせ、そしてオペレーティングシステムが、ルート満了タイマーが満了となったルート構造体をスキャンするためにルートドメインにおけるドレイン機能を使用するようにさせる。インターフェイスデータ構造体におけるルート参照カウンタは、どれほど多くのルート構造体がネットワークインターフェイスに依存するか追跡するのに使用される。これらの実施形態では、ルート参照カウンタがゼロに等しいときに、ネットワークインターフェイスをアイドリングさせることができる。
ここに述べる実施形態によるコンピュータシステムのブロック図である。 ここに述べる実施形態によるオペレーティングシステムを示す。 ここに述べる実施形態によるオペレーティングシステムにおける規範的インターフェイスデータ構造及びルートデータ構造を示すブロック図である。 ここに述べる実施形態による多数の規範的なカーネルプロトコルドメイン及びそれに関連したドメイン特有機能を示すブロック図である。 ここに述べる実施形態によるオペレーティングシステム及び多数のアプリケーションのブロック図である。 ここに述べる実施形態によるインターフェイスを管理するプロセスを示すフローチャートである。 ここに述べる実施形態によるインターフェイスをアイドリングさせるプロセスを示すフローチャートである。
添付図面において、同じ要素は、同じ参照番号で示す。
以下の説明は、当業者がここに述べる実施形態を具現化し利用できるようにするためのもので、特定の用途及びその要件について表現されている。又、当業者であれば、ここに述べる実施形態に対して種々の変更が容易に明らかであり、そしてここに定義する一般的な原理は、ここに述べる実施形態の精神及び範囲から逸脱せずに、他の実施形態及び用途にも適用することができる。従って、ここに述べる実施形態は、図示された実施形態に限定されず、ここに開示する原理及び特徴と一貫した最も広い範囲に従うものとする。
ここに詳細に述べるデータ構造及びコードは、コンピュータ読み取り可能な記憶媒体に記憶することができる。コンピュータ読み取り可能な記憶媒体は、コンピュータシステムにより使用するためのデータ構造及びコードを記憶できる装置又は媒体(又は装置及び/又は媒体の組み合わせ)を含む。例えば、コンピュータ読み取り可能な記憶媒体は、フラッシュメモリ、ランダムアクセスメモリ(RAM、SRAM、DRAM、RDRAM、DDR/DDR2/DDR3 SDRAM、等)、磁気又は光学記憶媒体(例えば、ディスクドライブ、磁気テープ、CD、DVD)、或いはデータ構造又はコードを記憶できる他の媒体を含めて、揮発性メモリ又は不揮発性メモリを含むことができる。ここに述べる実施形態では、コンピュータ読み取り可能な記憶媒体は、送信信号のような非法定のコンピュータ読み取り可能な記憶媒体を含まないことに注意されたい。
以下に述べる方法及びプロセスは、コンピュータ読み取り可能な記憶媒体に記憶されるプログラムコードとして実施することができる。コンピュータシステム(例えば、図1のコンピュータシステム100)が、コンピュータ読み取り可能な記憶媒体に記憶されたプログラムコードを読み取って実行するときには、コンピュータシステムは、コンピュータ読み取り可能な記憶媒体に記憶されたプログラムコードで方法及びプロセスを遂行する。
以下の説明で述べる方法及びプロセスは、ハードウェアモジュールに含ませることができる。例えば、ハードウェアモジュールは、これに限定されないが、特定用途向け集積回路(ASIC)チップ、フィールドプログラマブルゲートアレイ(FPGA)、及び他のプログラマブルロジック装置を含むことができる。ハードウェアモジュールがアクチベートされると、ハードウェアモジュールは、そのハードウェアモジュール内に含まれた方法及びプロセスを遂行する。ある実施形態では、ハードウェアモジュールは、方法及びプロセスを遂行するように(例えば、インストラクションを実行することにより)構成される1つ以上の汎用回路を含む。
概略
ここに述べる実施形態は、ネットワークサブシステムにおけるインターフェイスのための「積極的」アイドリングを促進する。実施形態に基づき、「アイドリング」とは、インターフェイスが完全にパワーダウンされるか、低電力(しかし、少なくとも部分的に動作する)モードへスイッチされるか、或いは通常に使用される(が、低プライオリティ又はインターフェイスメンテナンス動作を遂行するだけ)ことを意味する。この説明で使用する「積極的」という語は、システムリソースの使用最適化を促進する、インターフェイスのためのより応答性の高い又はインテリジェントなアイドリングを表わす。
ここに述べる実施形態では、所与のインターフェイスは、積極的にアイドリングされるように構成することができる。そのようなインターフェイスでは、オペレーティングシステムは、インターフェイスを参照するルートを監視して、ルートがもはや使用されないとき、ひいては、満了となって削除されたときを決定する。インターフェイスを参照する最後のルートが削除されると、オペレーティングシステムは、インターフェイスがアイドリングの候補であることをインターフェイスマネージャータスクに通知する(例えば、コンフィギュレーションエージェントに通知し、これが、次いで、インターフェイスマネージャータスクに通知する)。インターフェイスマネージャータスクは、次いで、インターフェイスをアイドリングさせる。
ある実施形態では、インターフェイスがアイドリングの候補であるという通知を受け取ると、インターフェイスマネージャータスクは、オペレーティングシステムにより通知が送られて以来、インターフェイスを参照するルートが確立されていないことを保証するために、オペレーティングシステムとでチェックを行う。インターフェイスを参照する新たなルートが確立された場合には、インターフェイスマネージャータスクは、その通知を無視し、そしてインターフェイスのオペレーティングモードを不変のままにする。
ここに述べる実施形態では、オペレーティングシステムは、カーネルプロトコルドメインに関連したタスクを周期的に遂行するためのメカニズムを含む。これら実施形態では、オペレーティングシステムは、オペレーティングシステムの異なるプロトコル(例えば、ルーティング、IPv4、等)に各々関連したカーネルプロトコルドメインのリストを含む。カーネルプロトコルドメインの各々は、対応するドメインに対して1つ以上のタスクを遂行するドメイン特有機能のセットに関連付けられる。オペレーティングシステムは、カーネルプロトコルドメインのリストを通して周期的にサイクルして、それに関連したドメイン特有機能を実行する。又、ここに述べる実施形態は、ドメイン特有機能の1つがドメイン機能であるところのルートドメインも含む。実行時に、ドメイン機能は、オペレーティングシステムにおける満了となったルートを削除する。
ここに述べる実施形態では、各ルートは、ルートがもはやアプリケーションにより使用されないとき(例えば、アプリケーションが、ルートを参照するソケットを閉じるとき)オペレーティングシステムによりセットされる満了タイマーを含む。タイマーが満了となると、ルートが満了となり、(1)オペレーティングシステムにおける対応プロトコルメカニズム、又は(2)ルートドメインに対するドレイン機能、のいずれかにより削除することができる。これらの実施形態では、ルートにより参照されるインターフェイスが積極的にアイドリングされるように構成される場合に、タイマーは、積極的な短い満了時間にセットされる。さもなければ、ルートにより参照されるインターフェイスが積極的にアイドリングされるように構成されない場合には、タイマーは、大きさの程度が典型的に短い満了時間より長いデフォールト満了時間にセットされる。
ある実施形態では、オペレーティングシステムは、積極的にアイドリングされるように構成されたアクティブなインターフェイスの数を追跡するためにオペレーティングシステムが使用する積極的なインターフェイスカウンタを維持する。積極的にアイドリングされるように構成された各インターフェイスがアクチベートされるときは、オペレーティングシステムは、積極的なインターフェイスカウンタをインクリメントする。他方、積極的にアイドリングされるように構成された各インターフェイスがアイドリングされるときは、オペレーティングシステムは、積極的なインターフェイスカウンタをデクリメントする。積極的なインターフェイスカウンタがゼロに等しくなると(即ち、接触的なアイドリングで構成されるアクティブなインターフェイスがないと)、オペレーティングシステムは、ルートドメインにおけるドレイン機能のポインタをNULLにセットし、これは、ドレイン機能がカーネルプロトコルドメインを通してサイクルするたびにオペレーティングシステムにより実行されるのを防止する。しかしながら、積極的なインターフェイスカウンタが非ゼロであるときに、オペレーティングシステムは、ルートドメインにおけるドレイン機能のポインタを、ドレイン機能のポインタにセットする。
コンピュータシステム
図1は、ここに述べる実施形態によるコンピュータシステム100のブロック図である。このコンピュータシステム100は、処理サブシステム102、メモリサブシステム104及びネットワークサブシステム106を備えている。
処理サブシステム102は、計算動作を遂行するように構成された1つ以上の装置を備えている。例えば、処理サブシステム102は、これに限定されないが、1つ以上のマイクロプロセッサ、ASIC、マイクロコントローラ、又はプログラム可能なロジック装置を含む。
メモリサブシステム104は、処理サブシステム102及びネットワークサブシステム106のためのデータ及び/又はインストラクションを記憶するための1つ以上の装置を含む。例えば、メモリサブシステム104は、DRAM、フラッシュメモリ、及び/又は他の形式のメモリを含む。更に、メモリサブシステム104は、メモリへのアクセスをコントロールするためのメカニズムを含む。ある実施形態では、メモリサブシステム104は、コンピュータシステム100のメモリに結合された1つ以上のキャッシュの配列体を含むメモリハイアラーキーを備えている。これら実施形態の幾つかにおいて、キャッシュの1つ以上が処理サブシステム102に配置される。
ある実施形態では、メモリサブシステム104は、1つ以上の大容量の大量記憶装置(図示せず)に結合される。例えば、メモリサブシステム104は、磁気又は光学ドライブ、ソリッドステートドライブ、又は別の形式の大量記憶装置に結合される。これら実施形態では、メモリサブシステム104は、コンピュータシステム100により、頻繁に使用するデータのための高速アクセス記憶装置として使用され、一方、大量記憶装置は、低い頻度で使用されるデータを記憶するのに使用される。
ネットワークサブシステム106は、ワイヤード及び/又はワイヤレスネットワークに結合されて通信を行うように(即ち、ネットワーク動作を行うように)構成された1つ以上の装置を備えている。例えば、ネットワークサブシステム106は、これに限定されないが、BluetoothTMネットワークシステム、セルラーネットワークシステム(例えば、3G/4Gネットワーク)、ユニバーサルシリアルバス(USB)ネットワークシステム、インスティテュート・フォア・エレクトリカル・アンド・エレクトロニック・エンジニアズ(IEEE)802.11(即ち、802.11ワイヤレスネットワーク)に述べられた規格に基づくネットワークシステム、イーサネット(登録商標)ネットワークサブシステム、或いはワイヤード又はワイヤレスパーソナルエリアネットワーキング(PAN)システム(例えば、赤外線データ関連性(IrDA)、ウルトラワイドバンド(UWB)、Z−Wave、又はIEEE802.15に述べた規格に基づくネットワーク)を含む。
ネットワークサブシステム106は、コントローラ、ワイヤレスネットワーク接続のためのラジオ/アンテナ、ハードワイヤード電気的接続のためのソケット/プラグ、及び/又はワイヤード及び/又はワイヤレスネットワークに接続し、それを経て通信し、そしてそれを経てデータ及び事象を取り扱うのに使用される他の装置を含む。これら実施形態の幾つかにおいて、ネットワークサブシステム106は、他の装置とのアドホックネットワーク接続(例えば、アドホックワイヤレスPAN)を形成するための1つ以上のメカニズムを含む。
以下の説明において、各ネットワーク接続の物理的レイヤにおいてネットワークに接続し、それを経て通信し、そしてそれを経てデータ及び事象を取り扱うのに使用されるメカニズムのサブセットを、集合的に、それに対応するネットワーク接続に対する「インターフェイス」と称する。ある実施形態では、各インターフェイスは、アプリケーション(例えば、図5のインターフェイスマネージャータスク504)でインターフェイスの動作モードをコントロールできるようにするための1つ以上のメカニズムを含む。
コンピュータシステム100内では、処理サブシステム102、メモリサブシステム104、及びネットワークサブシステム106がバス110を使用して一緒に結合される。バス110は、互いにコマンド及びデータを通信するためにサブシステムが使用する電気的接続である。明瞭化のために1つのバス110しか示されていないが、異なる実施形態では、サブシステム間に異なる数又は構成の電気的接続を含むことができる。
ある実施形態では、バス110は、パケットバスであり、そしてサブシステム間の通信は、バス110を経てコマンド及びデータパケットを所定のフォーマットで送信することを含む。別の実施形態では、バス110は、1つ以上の専用の信号ラインを含み、そしてサブシステム間の通信は、1つ以上の専用の信号ラインを経てサブシステムにシグナリングすることを含む。
図1には、個別のサブシステムとして示されているが、ある実施形態では、所与のサブシステムの幾つか又は全部を、コンピュータシステム100における他のサブシステムの1つ以上に統合することができる。別の実施形態は、このように構成できるが、明瞭化のために、サブシステムを別々に説明する。
コンピュータシステム100は、多数の異なる形式の電子装置へ合体することができる。一般的に、これらの電子装置は、アイドリングさせることのできるネットワークインターフェイスを伴う装置を含む。例えば、コンピュータシステム100は、デスクトップコンピュータ、ラップトップコンピュータ、サーバー、メディアプレーヤ、機器、サブノートブック/ネットブック、タブレットコンピュータ、セルラーホン、テスト装置の断片、ネットワーク機器、セットトップボックス、パーソナルデジタルアシスタント(PDA)、スマートホン、玩具、コントローラ、又は別の装置の一部分である。
特定のコンポーネントを使用してコンピュータシステム100を説明するが、別の実施形態では、異なるコンポーネント及び/又はサブシステムがコンピュータ100に存在してもよい。例えば、コンピュータシステム100は、1つ以上の付加的な処理サブシステム102、メモリサブシステム104及び/又はネットワークサブシステム106を含んでもよい。或いは又、サブシステムの1つ以上がコンピュータシステム100に存在しなくてもよい。
ある実施形態では、コンピュータシステム100は、図1に示されていない1つ以上の付加的なサブシステムを含んでもよい。例えば、コンピュータシステム100は、これに限定されないが、ディスプレイに情報を表示するためのディスプレイサブシステム、データ収集サブシステム、オーディオサブシステム、アラームサブシステム、メディア処理サブシステム、及び/又は入力/出力(I/O)サブシステムを含む。
オペレーティングシステム
図2は、ここに述べる実施形態に従って処理サブシステム102により実行されるオペレーティングシステム200を示す。一般的に、オペレーティングシステム200は、コンピュータシステム100のシステムハードウェア(例えば、サブシステム102−106)と、処理サブシステム102により実行されるアプリケーション、例えば、アプリケーション202−206(例えば、各々、e−メールアプリケーション、ウェブブラウザ及びゲームアプリケーション)との間の仲介手段として働く。例えば、オペレーティングシステム200は、これに限定されないが、カリフォルニア州クパチーノのアップル社からのOS Xオペレーティングシステム、コロラド州ボルダーのFressBSDファウンデーションからのFreeBSDオペレーティングシステム、又は別のオペレーティングシステムである。オペレーティングシステム及びその一般的な機能は、良く知られており、ここでは詳細に説明しない。
以下の説明において、オペレーティングシステム200を参照するために「カーネル」を使用して実施形態を説明する。カーネルは、オペレーティングシステム200のコア部を含み、そしてアプリケーション202−206がコンピュータシステム100のシステムハードウェアにアクセスし及び/又はそれをコントロールしてそれらの機能を遂行するために使用できるシステムハードウェアの低レベル抽象化レイヤをなす。
ネットワークサブシステム106の適当なインターフェイスを使用してコンピュータシステム100のアプリケーションとのパケットの転送を管理するために、オペレーティングシステム200は、多数の論理的レイヤを各々含む1つ以上のネットワークプロトコルスタック(図示せず)を維持する。例えば、オペレーティングシステムは、リンク、インターネット、トランスポート、及びアプリケーションレイヤを含むインターネットプロトコルスタックを維持することができる。別の例として、オペレーティングシステムは、アプリケーション、プレゼンテーション、セッション、トランスポート、ネットワーク、データリンク、及び物理的レイヤを含むOSIモデルに基づいてプロトコルスタックを維持することができる。プロトコルスタックの各レイヤにおいて、オペレーティングシステムは、レイヤに関連した機能を遂行するためのコントロールメカニズム及びデータ構造を含む。プロトコルスタックにおける各レイヤに関連した機能は、この分野で知られており、従って、ここでは詳細に説明しない。
オペレーティングシステムにより維持されるネットワーク接続データ
ここに述べる実施形態では、オペレーティングシステム200は、ネットワークサブシステム106におけるネットワーク接続の動作を監視し、構成し及び/又はコントロールするための1つ以上のデータ構造体含む。例えば、ある実施形態では、オペレーティングシステム200は、ネットワークサブシステム106におけるネットワークインターフェイス(例えば、イーサネット(登録商標)インターフェイス、3G/4Gセルラーインターフェイス、BluetoothTMインターフェイス、等)のためのレコードを保持するのに使用されるインターフェイスデータ構造体(structures)(「インターフェイス構造(structs)」と交換可能)を含む。これら実施形態では、インターフェイス構造は、インターフェイスの名前、インターフェイスのアドレス(例えば、メディアアクセスコントロール(MAC)アドレス)、インターフェイスフラグ、タイマー、オペレーティングモードデータ、コンフィギュレーションデータ、及び/又はインターフェイスに関する他の情報のような情報及びデータを含む。インターフェイス構造に典型的に存在する情報及びデータは、この分野で知られており、ここでは、詳細に説明しない。
オペレーティングシステム200は、更に、オペレーティングシステム200が所与の行先にパケットを送信するための適当なネットワークインターフェイスを選択できるようにするルート情報のレコードを保持するのに使用されるルートデータ構造体(structures)(「ルート構造(structs)」と交換可能)のセットも含む。ここに述べる実施形態では、特定のサブネット又は行先へのルートがアプリケーションにより要求されて分析されたときに、オペレーティングシステム200は、ルートに関する情報を伴うルート構造を生成する。或いは又、既存のルート構造を伴うサブネット又は行先のための「テンプレート」ルートをコピーして、「クローン」ルートを生成することもでき、オペレーティングシステム200は、クローンルートに関する情報を伴うルート構造を生成することができる。次いで、ルート構造における情報を使用し、ネットワークサブシステム106における関連インターフェイスを使用してパケットをルーティングすることができる。ここに述べる実施形態では、ルート構造は、ルートのための行先アドレス、ゲートウェイアドレス、フラグ、アプリケーション参照カウント(即ち、ルートを使用するアプリケーションのカウント)、使用カウント、インターフェイスID、及びルートに関する他の情報、等の情報を含むことができる。ルート構造に典型的に存在する情報及びデータは、この分野で知られており、ここでは、詳細に説明しない。
ここに述べる実施形態では、2つ以上のアプリケーションが、所与のルート構造で述べたルートを使用して、パケットを関連行先へ送信することができる。これらのケースでは、ルートを使用する複数のアプリケーションがあることを指示するために、ルート構造におけるアプリケーション参照カウントをインクリメントすることができる。
ここに述べる実施形態では、オペレーティングシステム200は、複数の関連インターフェイス構造を含む1つ以上のインターフェイスをネットワークサブシステム106に含んでいる。例えば、ネットワークサブシステム106におけるWiFiネットワークインターフェイスは、複数のピアツーピアネットワーク接続を取り扱うために使用される複数のバーチャルインターフェイスをなすことができる。明瞭化のため単一インターフェイス構造を使用する実施形態を説明するが、複数のインターフェイス構造を伴う実施形態は、同様に機能する。例えば、ある実施形態は、複数のインターフェイス構造を伴うBluetooth(登録商標)インターフェイスを含む。以下に述べるメカニズムと同様のメカニズムを使用して、これらの実施形態は、インターフェイス構造がルートにより参照されないときに、インターフェイスをアイドリングさせることができる。
ここに述べる実施形態におけるインターフェイスデータ構造体は、既存のインターフェイスデータ構造体とは異なる。というのは、ここに述べる実施形態におけるインターフェイスデータ構造体は、(1)積極的なアイドリングフラグ、及び(2)ルート参照カウンタを含むからである。以下に詳細に述べるように、積極的なアイドリングフラグは、どのインターフェイスを積極的にアイドリングすべきか決定するためにオペレーティングシステム200により使用され、そしてルート参照カウンタは、インターフェイスを参照するルート(即ち、対応するルート構造内のインターフェイスIDをチェックすることによりインターフェイスを使用する/参照すると決定されるルート)の数を追跡するのに使用される。インターフェイスのアイドリングを述べるためにこの説明で使用される「積極的」とは、コンピュータシステム100及びネットワークサブシステム106内の実際の動作条件に応答するインターフェイスアイドリングを指示することに注意されたい。より応答性の高いアイドリングは、コンピュータシステム100がインターフェイスの電力消費を最適化し、そしてアプリケーションからのデータ転送の要求に対するインターフェイスの応答性に対して電力消費をバランスさせることができるようにする。
図3は、ここに述べる実施形態によるオペレーティングシステム200における規範的なインターフェイス(IF)構造306−310及びルート構造312−316を示すブロック図である。図3において明らかなように、ネットワークサブシステム106は、インターフェイス300−304を備え、これらは、例えば、各々、BluetoothTMインターフェイス、イーサネット(登録商標)インターフェイス、及び802.11ワイヤレスネットワークインターフェイスである。上述したように、アプリケーション202−206は、例えば、各々、e−メールアプリケーション、ウェブブラウザ、及びゲームアプリケーションであり、各々、オペレーティングシステム200におけるルート及びネットワークサブシステム106における対応インターフェイス300−304を使用して、データパケットを他の装置へ転送する。
ここに示す実施形態では、オペレーティングシステム200は、インターフェイス302及び304を経て対応する行先ホストへパケットを転送できるようにするためのルートを確立している。オペレーティングシステム200に利用できるものとして図3に示されたルートは、例示の目的で簡単化されたものであり、別の実施形態では、付加的な及び/又は異なる形式のルートを含むことに注意されたい。例えば、インターフェイス300に対してデフォールトルートを確立することができる。更に、既に確立されたルートが使用され、それらのルートを確立するための技術(特に、各ルートに関連したネットワークプロトコルに基づく)は、この分野で知られており、従って、ここでは詳細に説明しない。
インターフェイス構造306−310は、各々、その基礎的なインターフェイス300−304のアイデンティティ、コンフィギュレーション、能力及び要件をオペレーティングシステム200が決定できるようにする情報及びデータを含む。ルート構造312−316は、オペレーティングシステム200がそれらルートを経てインターフェイス300−304の中からその関連インターフェイスへパケットをルーティングできるようにする情報及びデータを含む。例えば、ルートの行先、ルートを参照するオープンソケット/アプリケーションの数、並びにルートの形式及びコンフィギュレーションを識別する情報と共に、ルート構造312は、インターフェイス構造308のポインタも含む。上述したように、インターフェイス構造308は、関連ルートを使用するときにオペレーティングシステム200をインターフェイス302に向けさせるインターフェイス名及び/又はMACアドレスを含む。
ここに例示する実施形態では、アプリケーション202及び204は、同じインターフェイス302を参照するルートを使用する。例えば、インターフェイス302がイーサネット(登録商標)インターフェイスであると仮定すれば、両アプリケーションが(例えば、異なる行先ホストと共に)個別のルートを使用して、オペレーティングシステム200がそれらアプリケーションからのパケットをイーサネット(登録商標)インターフェイスへ転送し、ルートの行先へ送信できるようにする。このケースでは、ルート構造312及び314によって指し示されるインターフェイス構造308内のルート参照カウンタは、2つのルートがインターフェイス302を参照することを指示できる。対照的に、インターフェイス304に関連しそしてルート構造316のみにより指し示されるインターフェイス構造310内のルート参照カウンタは、1つのルートがインターフェイス304を参照することを指示できる。
ある実施形態では、コンピュータシステム100は、各インターフェイスのための装置ドライバを備えている。実行時に、装置ドライバは、インターフェイスを、積極的にアイドリングされるように構成する(即ち、オペレーティングシステム200内の対応するインターフェイス構造において積極的なアイドリングフラグをセットする)。或いは又、オペレーティングシステム200は、環境変数、ファイル、又はオペレーティングシステムスイッチを使用して、インターフェイスを、積極的にアイドリングされるよう構成する。
ルート及びインターフェイス構造は、それら構造内の情報のアクセス及び読み取りを行えるようにオペレーティングシステム200内に多数の仕方で配置されることに注意されたい。例えば、ある実施形態では、ルート及び/又はインターフェイス構造は、オペレーティングシステム200内のリンクされたリストへと編成される。オペレーティングシステム200におけるそれら構造の配置は、この分野で一般的に知られており、従って、ここでは詳細に述べない。
満了になるルート
ここに述べる実施形態では、幾つかのルートは、オペレーティングシステム200によって一時的に維持されるだけである。ルート構造、ひいては、オペレーティングシステム200に対するルーティングテーブルの対応エントリーは、ルートが少なくとも1つのアプリケーションによりもはや使用されなくなった後の所定時間中だけオペレーティングシステム200によりそれらルートとして使用できるように保持される。所定時間が満了となると、ルート構造が削除され、オペレーティングシステム200により維持されるルーティングテーブルからルートを除去することができる。
より詳細には、ここに述べる実施形態では、オペレーティングシステム200は、アプリケーションがソケットをオープンし、アプリケーションがデータパケットをネットワークプロトコルスタックの下位レイヤへ送信して所与の行先ホストへ転送できるようにするメカニズムをなす。アプリケーションがソケットの使用を終了するか又はネットワーク接続を失うと、アプリケーションは、ソケットをクローズする。或いは又、アプリケーションがクラッシュした場合には、オペレーティングシステム200は、ソケットをクローズする。ソケットをクローズすると、オペレーティングシステム200は、その関連ルートに対するルート構造のアプリケーション参照カウントをデクリメントさせる。アプリケーションが、ルートを使用する最後のアプリケーションである場合には、デクリメント動作で、ルート構造のアプリケーション参照カウントがゼロに落ちる。
ルート構造のアプリケーション参照カウントがゼロに落ちると、オペレーティングシステム200は、ルート構造における満了タイマーを所定値へ更新し、そして満了タイマーを使用してルート構造に対するカウントダウンをスタートする。満了タイマーがゼロに等しくなると、ルート構造は、オペレーティングシステム200による削除に使用できるようになる。(ルートの実際の削除は、削除メカニズムが満了となったルート構造をその後に削除するまで行われないことに注意されたい。)
以下に述べるように、ここに述べる実施形態は、満了となったルートを削除するための多数の異なる削除メカニズムを含む。例えば、オペレーティングシステム200は、ネットワークプロトコルスタックにデフォールトルート満了メカニズムを含むことができる。更に、オペレーティングシステム200は、積極的なアイドリングのために少なくとも1つのアクティブなインターフェイスが構成される限りオペレーティングシステム200により実行されるルートプロトコルドメイン406に関連したドレイン機能412(図4を参照)を含むことができる。
これらの実施形態では、満了タイマーがセットされる所定値は、ルートが参照するインターフェイス(即ち、ルート構造で識別されるインターフェイス)のコンフィギュレーションに依存する。ルートが、積極的なアイドリングに構成されたインターフェイスを参照する場合には、所定値は、短い積極値である。例えば、ここに述べる実施形態は、10秒、30秒、1分、5分又は別の値のような値を使用する。或いは又、ルートが、積極的なアイドリングに構成されていないインターフェイスを参照する場合には、所定値は、デフォールト(より長い)値となる。例えば、ここに述べる実施形態は、20分、1時間、24時間、2日、又は別の値のような値を使用する。
ある実施形態では、積極的なアイドリングに構成されないインターフェイスを参照するルートに対して使用される所定値は、既存のシステムにおいて満了になるルートに使用される同じ値であることに注意されたい。例えば、ある実施形態では、積極的なアイドリングに構成されないインターフェイスを参照するARPルートに対して20分のデフォールト値が使用される。
ここに述べる実施形態は、積極的なアイドリングに構成されたインターフェイスをルートが参照するかどうかに基づいてルートの満了時間のセットが異なるので、既存のシステムとは異なる。参照されたインターフェイスが積極的なアイドリングに構成されるときにルート満了値を短い値にセットすることによって、オペレーティングシステム200は、ルートが既存のシステムのルートより急速に満了となることを保証する(典型的に数桁も急速に)。これは、次いで、オペレーティングシステム200が基礎的なインターフェイスをより急速にアイドリングできるようにし、インターフェイスが、使用されないルートに対してアクティブな状態に不必要に維持されるのを防止する上で役立つ。
プロトコルスタックメカニズムを使用して満了になったルートを削除
上述したように、オペレーティングシステム200は、関連するネットワークプロトコルスタックに対して古い/満了となったデータを削除するためのプロトコルスタックメカニズムを含む。一般的に、プロトコルスタックメカニズムは、オペレーティングシステム200により所定の間隔で実行される。例えば、ある実施形態では、プロトコルスタックメカニズムは、10分間隔で実行される。プロトコルスタックメカニズムは、満了タイマーがゼロに達したところのルート構造を削除することができる。プロトコルスタックメカニズムは、この分野で知られており、それ故、ここでは詳細に説明しない。
ルートドメイン特有のドレイン機能を使用して満了になったルートを削除
オペレーティングシステム200は、カーネルプロトコルドメインのセットを通して周期的にサイクルしてカーネルプロトコルドメインに関連したタスクを遂行するためのメカニズムをなす。図4は、ここに述べる実施形態による多数の規範的なカーネルプロトコルドメイン400及びそれに関連したドメイン特有の機能408−412を示すブロック図である。
図4において明らかなように、ドメイン400は、カーネルプロトコルドメイン402−404及びルートドメイン406を含む。カーネルプロトコルドメイン402及び404は、各々、多数の異なるプロトコルドメインの1つである。より詳細には、オペレーティングシステム200によりサポートされるカーネルプロトコルは、カーネルプロトコルドメインを有する。一例として、カーネルプロトコルドメイン402は、IPv4ドメインを含み、そしてカーネルプロトコルドメイン404は、アドレス分析プロトコル(ARP)ドメインを含む。或いは又、カーネルプロトコルドメイン402は、IPv6ドメインを含み、そしてカーネルプロトコルドメイン404は、IPv6近隣発見(ND)ドメインを含んでもよい。ルートドメイン406もカーネルプロトコルドメインであるが、以下に述べる実施形態においてドメイン特有機能412の「ドレイン」機能を使用して満了となったルートを削除できるので特別に列挙されている。
カーネルプロトコルドメイン402−406の各々は、ドメイン特有機能408−412のセットに対するポインタのセットを含む。ある実施形態では、各ドメイン特有機能は、それに対応するカーネルプロトコルドメインからポインタにより指示される。ドメイン特有機能408−412の各セット内には、それに対応するドメインに関連したアクションを遂行するためにオペレーティングシステム200により実行される機能がある。一例として、1つのドメイン特有機能は、古い/満了となったドメインデータを処理サブシステム102及びコンピュータシステム100から除去することのできるドレイン機能である。更に、ドメイン特有機能は、入力機能、出力機能及び他の機能を含む。
動作中に、オペレーティングシステム200は、図4に「サイクル」で示すように、カーネルプロトコルドメイン402−406(及び楕円で示す付加的なカーネルプロトコルドメイン)を通して周期的にサイクルする。各ドメインに対して、オペレーティングシステム200は、ドメインからのポインタをたどり、ドメイン特有機能を実行する。このように、オペレーティングシステム200は、ドメイン特有機能を周期的に実行して、カーネルプロトコルに対して更新、構成、及び/又は不要データ収集を遂行することができる。
カーネルプロトコルドメイン402−406を通してサイクルする間に、オペレーティングシステム200に存在するルート(例えば、ARPルート、ND6ルート、IPv6ルート、IPv4ルート、等)に対するデータを取り扱うルートドメイン406に到達すると、オペレーティングシステム200は、ルートドメイン406からドレイン機能及び他のルートドメイン特有機能412までポインタをたどり、これらの機能を実行する。ドレイン機能を実行することで、オペレーティングシステム200は、各ルート構造(例えば、ルート構造体312−316)を即座にチェックして、ルート構造のための満了タイマーがゼロに到達したかどうか決定する。満了タイマーがゼロに到達したところのルート構成の各々に対して、オペレーティングシステム200は、ルート構成を削除し、オペレーティングシステム200からのルートを除去する。
ある実施形態では、オペレーティングシステム200がカーネルプロトコルドメインを通してサイクルする時間は、約500ミリ秒である。これは、オペレーティングシステムがルートドメイン406に対するドレイン機能の実行をほぼ半秒ごとに試みることができることを意味する。オペレーティングシステム200が満了となったルートをチェックするドレイン機能を実行して不必要にビジーとなり続けるのを回避するために、ある実施形態では、ドレイン機能は、カーネルプロトコルドメインを通るN番目のサイクルごとにオペレーティングシステム200がドレイン機能を実行するようにさせるメカニズムを含む。特に、ルートドメイン406は、ドレイン機能に入ったときに直ちにチェックされるタイマー値を含む。このタイマーは、指定の時間に対してセットされ(例えば、10秒、30秒、又は1分)、そしてタイマーがゼロに到達する前には、オペレーティングシステム200は、ドレイン機能をスキップする。しかしながら、タイマーがゼロに到達すると、オペレーティングシステム200は、ドレイン機能の残りを実行し、オペレーティングシステム200が満了となったルートに対してルート構造をチェックするようにさせる。
ルート削除に基づきインターフェイスをアイドリングできることを決定
ここに述べる実施形態では、所与のルート構造が削除される(従って、オペレーティングシステム200からルートを削除する)ときに、オペレーティングシステム200は、ルート構造においてどのインターフェイスが参照されるか決定する。オペレーティングシステム200は、次いで、その参照されたインターフェイスに対してインターフェイス構造内のルート参照カウンタをデクリメントする。例えば、ルート構造312を削除するときに、オペレーティングシステム200は、インターフェイス302がルート構造312により参照されたインターフェイスである(従って、ルートのためのインターフェイスがインターフェイス302である)と決定する。次いで、オペレーティングシステム200は、IF構造306におけるルート参照カウンタをデクリメントする。
このように、所与のインターフェイスを参照する最後のルートが削除されたときには、インターフェイスのルート参照カウンタがゼロにデクリメントされる。ルート参照カウンタがゼロであることが決定されると、オペレーティングシステム200は、コンフィギュレーションエージェント(図5のコンフィギュレーションエージェント502を参照)に信号を発して、そのコンフィギュレーションエージェントが、インターフェイスがアイドリングの候補であるという通知を1つ以上のアプリケーションへ転送できるようにする。ある実施形態では、オペレーティングシステム200は、インターフェイスのためのインターフェイス構造において積極的なアイドリングフラグがセットされたときにコンフィギュレーションエージェントのみに信号を発する。これらの実施形態では、所与のインターフェイスに対して積極的なアイドリングフラグがセットされない場合に、オペレーティングシステム200は、ルート参照カウンタのゼロへのデクリメントを無視することができる。
コンフィギュレーションエージェント及びインターフェイスマネージャータスク
図5は、ここに述べる実施形態により多数のアプリケーションとインターフェイスするオペレーティングシステムのブロック図である。コンピュータシステム100の処理サブシステム102により実行される図5のアプリケーションは、アプリケーション202、コンフィギュレーションエージェント502、及びインターフェイスマネージャータスク504を含む。
ルート500は、アプリケーション202からインターフェイス300を通して行先ホストへパケットをルーティングするためにオペレーティングシステム200により使用されるルートである。明瞭化のために、ルート500、インターフェイス構造508、及びインターフェイス300は、一般的に説明するだけとする(例えば、ルート500に対するルート構造は示されていない)。
コンフィギュレーションエージェント502は、処理サブシステム102の1つ以上のコンフィギュレーション観点を管理する。コンフィギュレーションエージェント502は、処理サブシステム102/コンピュータシステム100の希望の及び現在の状態を反映するデータを維持し、このデータが変化するときにアプリケーション(例えば、アプリケーション202及び/又はインターフェイスマネージャータスク504)に通知を与え、及び/又は関連するコンフィギュレーションタスクを遂行する。一般的に、コンフィギュレーションエージェント502は、1つ以上の入力ソース(好み、低レベルカーネル事象、通知、等)に依存し、そしてコンフィギュレーションエージェント502に含まれたポリシーモジュールのセットを使用して、処理サブシステム102/コンピュータシステム100と対話し、望ましい動作コンフィギュレーションを確立する。例えば、ある実施形態では、コンフィギュレーションエージェント502は、カリフォルニア州クパチーノのアップル社からの“configd”と同様のコンフィギュレーションエージェントである。コンフィギュレーションエージェントは、この分野で知られており、従って、ここでは詳細に述べない。
既存のコンフィギュレーションエージェントとは異なり、コンフィギュレーションエージェント502は、インターフェイスがそのインターフェイスを参照するルートをもたず、従って、そのインターフェイスがアイドリングの候補なり得るという通知をオペレーティングシステム200から受け容れるためのメカニズムを備えている。更に、コンフィギュレーションエージェント502は、インターフェイスがアイドリングの候補であるという通知を他のアプリケーションに送信してそれらアプリケーションにその旨通知するためのメカニズムも備えている。
インターフェイスマネージャータスク504は、インターフェイス300の動作をコントロールする。例えば、インターフェイスマネージャータスク504は、インターフェイス300を初期化し、インターフェイス300の動作モードを構成し、インターフェイス300をパワーダウンし、インターフェイス300に関連したコントロールメッセージをオペレーティングシステム200から受信し及びそこへ送信し、そしてインターフェイス300に関する他の動作を遂行することができる。
ある実施形態では、インターフェイスマネージャータスク504は、インターフェイス300をアイドリングできる(即ち、アイドリングの候補である)ときに通知されるようにコンフィギュレーションエージェント502に登録される。これらの実施形態では、インターフェイス構造508内のルート参照カウンタがゼロにデクリメントされ、従って、インターフェイスを参照するアクティブなルートがないことを決定すると、オペレーティングシステム200は、インターフェイス300がそれを参照するルートをもはやもたないことを信号する。次いで、コンフィギュレーションエージェント502は、インターフェイス300がアイドリングの候補であるという通知をインターフェイスマネージャータスク504へ送信する。
ある実施形態では、インターフェイス300がアイドリングの候補であるという通知を受け取ると、インターフェイスマネージャータスク504は、オペレーティングシステム200により通知が送信されて以来、インターフェイス300を参照するルートが確立されていないことを保証するため、オペレーティングシステム200でチェックを行う。次いで、オペレーティングシステム200は、インターフェイス300のインターフェイス構造508におけるルート参照カウンタをチェックして、値が非ゼロであるかどうか(即ち、新たに確立されたルートがインターフェイス300を参照するかどうか)決定する。
インターフェイス300を参照する新たなルートが確立された場合には、インターフェイスマネージャータスク504は、通知を無視し、そしてインターフェイス300の動作モードを不変のままにする。これらの実施形態では、このチェックを行うことにより、インターフェイスマネージャータスク504は、インターフェイスマネージャータスク504により受信される前に遅延されたかもしれない通知に基づいてアクティブなインターフェイスを誤ってアイドリングさせるのを回避することができる(即ち、オペレーティングシステム200がビジーでありそしてコンフィギュレーションエージェント502へ通知を直ちに送信しない場合、或いはコンフィギュレーションエージェント502がインターフェイスマネージャータスク504への通知の送信に遅延を生じた場合に)。換言すれば、インターフェイスマネージャータスク504は、通知信号と、オペレーティングシステム200における新たなルートの確立との間の競合状態に基づいてインターフェイス300をアイドリングさせる判断を誤って行うのを回避することができる。
さもなければ、インターフェイスマネージャータスク504は、インターフェイスをアイドリングさせることができる。上述したように、インターフェイスをアイドリングさせるとは、実施形態に基づき異なることを意味する。例えば、「アイドリング」とは、インターフェイスを完全にパワーダウンし、低電力(であるが、少なくとも部分的に動作する)モードへスイッチし、或いは通常に使用するが、低プライオリティ又はインターフェイスメンテナンス動作を遂行することを意味する。
インターフェイスマネージャータスク504は、インターフェイスがアイドリングの候補であるという通知をコンフィギュレーションエージェント502から受け取ることができるので、既存のインターフェイスマネージャータスクとは異なる。更に、通知を受け取ると、インターフェイスマネージャータスク504は、インターフェイスをアイドリングさせる前にインターフェイスがルートにより参照されるかどうか決定するためにオペレーティングシステム200でチェックを行うことができる。
図5には、1つのコンフィギュレーションエージェント及び1つのインターフェイスマネージャータスクしか示されていないが、ある実施形態では、複数のコンフィギュレーションエージェント及び/又はインターフェイスマネージャータスクをコンピュータシステム100において実行できることに注意されたい。更に、インターフェイスマネージャータスク504は、2つ以上のインターフェイスに対するインターフェイスマネージャータスクである。
積極的なインターフェイスカウンタ
ある実施形態では、オペレーティングシステム200は、積極的にアイドリングされるように構成されたアクティブなインターフェイスの数を追跡するためにオペレーティングシステム200が使用する「積極的なインターフェイスカウンタ」を維持する。積極的にアイドリングされるように構成された各インターフェイスがアクチベートされるときに、オペレーティングシステム200は、積極的なインターフェイスカウンタをインクリメントする。他方、積極的にアイドリングされるように構成された各インターフェイスがアイドリングされるときには、オペレーティングシステム200は、積極的なインターフェイスカウンタをデクリメントする。
積極的なインターフェイスカウンタがゼロに等しくなる(即ち、積極的なアイドリングに構成された全てのインターフェイスがアイドルである)とき、オペレーティングシステム200は、ルートドメイン406におけるドレイン機能412のポインタをNULLにセットする。しかしながら、積極的なインターフェイスカウンタが非ゼロであるときは、オペレーティングシステム200は、ルートドメイン406におけるドレイン機能のポインタを、ドレイン機能を指すようにセットする。ポインタをこのようにセットすることにより、これら実施形態は、積極的にアイドリングされるように構成された少なくとも1つのインターフェイスがアクティブである間にドレイン機能を実行するだけである。
インターフェイスを管理するプロセス
図6は、ここに述べる実施形態によるインターフェイスを管理するプロセスを示すフローチャートである。より詳細には、図6において、積極的にアイドリングされるよう構成されたネットワークサブシステム106におけるBluetoothTMインターフェイスの管理について説明する。この例では、BluetoothTMインターフェイスが最初にアイドルであると仮定する。更に、積極的にアイドリングされるように構成された他のインターフェイスはアクティブでなく、従って、積極的なインターフェイスカウンタはゼロに等しく、そしてオペレーティングシステム200は、ルートドメイン406のためのドレイン機能412を実行しない(即ち、ルートドメイン406のドレイン機能412のポインタは、NULLを指す)。
一例としてBluetoothTMインターフェイスを使用してインターフェイスを管理するプロセスについて述べるが、別の実施形態では、異なるインターフェイスが使用される。これらの別の実施形態は、プロセスにおいてより多くの又はより少ない及び/又は異なるステップ含んでもよい。例えば、他の装置の分析及び/又は他の装置のアドレスは、異なる仕方で行われてもよいし又は全く行われなくてもよい(行先アドレスは、既知である、等)。別の実施形態は、他の点では、ここに述べる実施形態と同様に動作する。
図6のプロセスは、処理サブシステム102により実行されているアプリケーションがBluetoothTMインターフェイスを使用する別の電子装置とのネットワーク接続を要求するときに開始する(ステップ600)。例えば、ゲームアプリケーションは、装置間にゲームデータを転送するのに使用されるゲームアプリケーションを実行する別の電子装置とのBluetoothTM接続の形成を要求することができる。次いで、アプリケーションは、他の装置を見出し、そして他の装置に対する行先インターネットプロトコル(IP)アドレスを分析するプロセス開始する。例えば、アプリケーションは、カリフォルニア州クパチーノのアップル社からのBonjourTMサービスを開始するか、又は別のアドレス分析サービスを開始することができる。
別の装置を使用できると決定されると、アプリケーションは、BluetoothTMインターフェイスをアクチベートするようにインターフェイスマネージャータスク504(例えば、BluetoothTMサーバー)に信号する(ステップ602)。次いで、インターフェイスマネージャータスク504は、BluetoothTMインターフェイスをアクチベートし、BluetoothTMインターフェイスがアプリケーションのためのパケットを送信及び受信する準備ができるようにする。
BluetoothTMインターフェイスは、積極的にアイドリングされるように構成される(従って、オペレーティングシステム200におけるBluetoothTMインターフェイスのインターフェイス構造において積極的なアイドリングフラグがセットされる)ことを想起されたい。従って、BluetoothTMインターフェイスがアクチベートされると、オペレーティングシステム200は、積極的なインターフェイスカウンタをインクリメントし、そして未使用のルートを積極的に満了とし削除することを開始する(ステップ604)。より詳細には、オペレーティングシステム200は、ルートドメイン406のドレイン機能412のポインタを、NULLを指すことから、ドレイン機能412を指すことへと調整する。積極的なインターフェイスカウンタをインクリメントすることにより、オペレーティングシステム200は、積極的なアイドリングについてアクティブなインターフェイスが構成されたことを記録する。更に、ルートドメイン406のドレイン機能412のポインタを調整することで、オペレーティングシステム200は、ドメイン400を通過するたびに(より詳細には、ルートドメイン406を通過するたびに)ドレイン機能412を実行するようにされる。
上述したように、ドレイン機能412は、ルートドメイン406を通過するたびに実行されるが、ドレイン機能412の内部カウンタは、所定の時間が経過するまで、オペレーティングシステム200がドレイン機能412を完全に実行するのを防止する。例えば、ドレイン機能412は、X秒(又はルートドメイン406を通るYサイクル)で満了となるカウントダウンカウンタを含むことができる。オペレーティングシステム200がドレイン機能412のカウンタをチェックして、カウンタが満了となったことを見出すと、オペレーティングシステム200は、ドレイン機能412の残りを実行し、内部カウンタをリセットする。ドレイン機能412の残りが実行されると、オペレーティングシステム200が各ルート構造(例えば、ルート構造312−316)をチェックして、どのルートが満了となり、従って、削除できるか決定するようにさせる。
次いで、アプリケーションは、BluetoothTMインターフェイスを使用して送信コントロールプロトコル/インターネットプロトコル(TCP/IP)セッションを開始するためのソケットをオープンする(ステップ606)。より詳細には、アプリケーションは、Bluetooth(登録商標)インターフェイスを使用して行先IPアドレスの他の装置へパケットを送信し始めるためのソケットをオープンする。オペレーティングシステム200は、ソケットをオープンする通知を受け取るのに応答して、BluetoothTMインターフェイスに対する参照/ポインタを含めてルートに関する情報を含むルート構造(テンプレートルートからクローン化された)を生成し(ステップ608)、これにより、オペレーティングシステム200におけるルーティングテーブルにルートを追加する。更に、オペレーティングシステム200は、BluetoothTMインターフェイスのインターフェイス構造におけるルート参照カウンタをインクリメントし(ステップ608)、ルートがBluetoothTMインターフェイスに依存することを記録する。次いで、オペレーティングシステム200は、BluetoothTMインターフェイスを使用してアプリケーションから対応する行先へパケットを転送し始める。
アプリケーションがルートの使用を終了すると(又はBluetoothTM接続が失われると)、アプリケーションは、ソケットをクローズする(ステップ610)。アプリケーションがソケットをクローズしたという通知をネットワークプロトコルスタックの関連レイヤから受け取るのに応答して、オペレーティングシステム200は、関連ルートを削除するプロセスを開始する。特に、オペレーティングシステム200は、ルート構造における満了タイマーを短い満了時間にセットする(ステップ612)。上述したように、BluetoothTMインターフェイスのインターフェイス構造における積極的なアイドリングフラグがセットされるので、満了タイマーは、短い満了時間にセットされるべきである。
BluetoothTMインターフェイスのインターフェイス構造において積極的なアイドリングフラグがセットされない場合には、オペレーティングシステム200は、ルート構造における満了タイマーを、短い満了時間より典型的に少なくとも数桁大きな値にセットする。このケースでも、オペレーティングシステム200は、ルートドメイン406のドレイン機能412を実行せず(ドレイン機能412のポインタが依然NULLにセットされるので)、従って、満了となったルートを除去するためのプロトコルスタックの関連メカニズムがルート構造を削除する(ひいては、ルーティングテーブルから満了となったルートを除去する)役割を果たす。プロトコルスタックのメカニズムは、ドレイン機能412のインターバルより著しく長いインターバルで動作するので、長いデフォールト満了時間とプロトコルスタックのメカニズムの長いインターバルとが組み合わされると、短い満了時間に基づきルートがドレイン機能により削除されるときより相当に長い時間中ルートが削除されないことになる。
ルート構造における短い満了タイマーがゼロに到達すると、オペレーティングシステム200がドレイン機能412を完全に実行する次のときに、オペレーティングシステム200は、ルート構造を削除し(ステップ614)、それにより、オペレーティングシステム200のルートテーブルからルートを除去する。又、ルート構造を削除すると、オペレーティングシステム200は、ルートが参照するインターフェイスのポインタでインターフェイス更新機能へのコールバックをトリガーする。このコールバックは、オペレーティングシステム200がBluetoothTMインターフェイスのインターフェイス構造のルート参照カウンタをデクリメントして、インターフェイスを参照したルートの削除を反映するようにさせる(ステップ616)。
上述したように、ルートは、インターフェイスに関連した唯一のルートであるから、ルート構造が削除されたときにインターフェイス構造のルート参照カウンタをデクリメントすると、インターフェイス構造のルート参照カウンタをゼロにデクリメントさせる。オペレーティングシステム200は、インターフェイス構造のルート参照カウンタがゼロにデクリメントされたことを決定し、そしてコンフィギュレーションエージェント502にメッセージを送信して、インターフェイスがもはやいずれのルートによっても参照されないことをコンフィギュレーションエージェント502に通知する(ステップ618)。
オペレーティングシステム200からメッセージを受け取ると、コンフィギュレーションエージェント502は、インターフェイスを参照するルートがないときに送られる通知を、インターフェイスマネージャータスク504へ、及びコンフィギュレーションエージェント502に登録された他のアプリケーションへ送信する(ステップ620)。インターフェイスマネージャータスク504は、次いで、BluetoothTMインターフェイスをアイドリングする(ステップ622)。
図7は、ここに述べる実施形態によるBluetoothTMインターフェイスをアイドリングさせるプロセスを示すフローチャートである。より詳細には、図7に示す実施形態は、ここに述べる実施形態による図6のステップ622の説明図である。
図7に示すプロセスは、インターフェイスマネージャータスク504が、BluetoothTMインターフェイスを参照するルートがないという通知をコンフィギュレーションエージェント502から受け取ったときに開始する(ステップ700)。インターフェイスマネージャータスク504は、次いで、インターフェイスがアイドルであったことをオペレーティングシステム200がコンフィギュレーションエージェント502に信号して以来、BluetoothTMインターフェイスを参照するルートがアプリケーションにより確立されたかどうか決定するための問合せをオペレーティングシステム200へ送信する(ステップ702)。
これらの実施形態では、インターフェイスを参照するルートが確立された場合に(ステップ704)、インターフェイスマネージャータスク504は、BluetoothTMインターフェイスをアクティブな状態のままとする(即ち、BluetoothTMインターフェイスの現在動作状態を変化させない)(ステップ706)。
さもなければ、インターフェイスを参照するルートが確立されない場合に(ステップ704)、インターフェイスマネージャータスク504は、BluetoothTMインターフェイスをアイドリングさせる(ステップ708)。上述したように、インターフェイスをアイドリングさせるときには、インターフェイスマネージャータスク504は、BluetoothTMインターフェイスをパワーダウンし、BluetoothTMインターフェイスを低電力動作モードに入れ(例えば、インターフェイスの動作速度を変化させ、等)、及び/又はBluetoothTMインターフェイスを使用して低プライオリティ動作を遂行することができる。
インターフェイスマネージャータスク504がBluetoothTMインターフェイスをアイドリングさせるときに、オペレーティングシステム200は、インターフェイスのアイドリングを検出し、そして積極的なアイドリングモードにあるインターフェイスがアイドリングされたと決定する。次いで、オペレーティングシステム200は、積極的なインターフェイスカウンタをデクリメントする(710)。インターフェイスは、積極的にアイドリングされるよう構成された唯一の、それ故、最後のアクティブなインターフェイスであるから、積極的なインターフェイスカウンタをデクリメントすると、積極的なインターフェイスカウンタは、ゼロに等しくなる。積極的なインターフェイスカウンタがゼロになるのに基づいて、オペレーティングシステム200は、ルートドメイン406のドレイン機能412のポインタを、ドレイン機能412を指すことから、NULLを指すことへと調整し(ステップ712)、これは、オペレーティングシステム200が、ドメイン400を通過するたびにドレイン機能412を実行するのではないことを意味する。
インターフェイスマネージャータスク504が、BluetoothTMインターフェイスの物理的レイヤにおけるトラフィック(即ち、実際のパケット送信)のみを監視して、BluetoothTMインターフェイスをいつアイドリングさせるべきか決定する既存のシステムとは対照的に、ここに述べる実施形態では、インターフェイスマネージャータスク504は、特定のインターフェイスを参照するルートの数に関する情報をオペレーティングシステム内から受け取る。この情報を使用して、BluetoothTMサーバーは、コンピュータシステム100において実際に遂行される動作にとってより適した仕方で(即ち、インターフェイスを使用するルートがないときだけ)インターフェイスをパワーダウンすることができる。
実施形態についての以上の説明は、例示のためのものである。それらは、余すところのないものでもないし、又は実施形態をここに開示する形態に限定するものでもない。従って、当業者であれば、多数の変更及び修正が明らかであろう。更に、以上の開示は、実施形態を限定するものではない。
100:コンピュータシステム
102:処理サブシステム
104:メモリサブシステム
106:ネットワークサブシステム
110:バス
200:オペレーティングシステム
202、204、206:アプリケーション
300、302、304:インターフェイス
306、308、310:IF構造
312、314、316:ルート構造
400:ドメイン
402:カーネルプロトコルドメイン
404:カーネルプロトコルドメイン
406:ルートドメイン
408:ドメイン特有機能
410:ドメイン特有機能
412:ドメイン機能及び他のドメイン特有機能
500:ルート
502:コンフィギュレーションエージェント
504:インターフェイスマネージャータスク
508:IF構造

Claims (15)

  1. ネットワークインターフェイスを構成するための方法において、
    ネットワークインターフェイスをアイドリングできることを指示する信号をオペレーティングシステムから受信し、この信号は、ネットワークインターフェイスに依存する最終的なルート構造体が満了となって削除されたことをオペレーティングシステムが決定するや否やオペレーティングシステムから送信され、
    オペレーティングシステムからその信号が送信されて以来、ネットワークインターフェイスを使用するルートをアプリケーションが確立したかどうか決定し、
    確立しない場合には、ネットワークインターフェイスをアイドリングさせ、
    さもなければ、ネットワークインターフェイスを現在動作状態のままにする、
    ことを含む方法。
  2. 別のアプリケーションがルートを確立したかどうか決定することは、
    別のアプリケーションがルートを確立したかどうか決定するためにオペレーティングシステム又はアプリケーションに問合せし、又は
    一致するルートを見つけるためにコンピュータシステムのルート構造体をサーチする、
    のうちの1つを含む、請求項1に記載の方法。
  3. 前記ネットワークインターフェイスをアイドリングさせることは、
    前記ネットワークインターフェイスをパワーダウンし、
    前記ネットワークインターフェイスを低電力モードへスイッチし、又は
    前記ネットワークインターフェイスを通常の/アクティブな電力レベルで使用するが低プライオリティ動作又はメンテナンス動作のみを遂行するよう構成する、
    のうちの1つを含む、請求項1に記載の方法。
  4. 前記ネットワークインターフェイスをアイドリングさせることは、少なくとも1つの他のアプリケーションがネットワークインターフェイスをアイドル状態に入れるようにさせることを含む、請求項1に記載の方法。
  5. 前記少なくとも1つの他のアプリケーションは、
    インターフェイスマネージャー、又は
    前記ネットワークインターフェイスをアイドル状態に入れることのできる別のアプリケーション、
    を含む、請求項4に記載の方法。
  6. コンピュータシステムにより実行されたときに、そのコンピュータシステムが、ネットワークインターフェイスを構成するための方法を遂行するようにさせる構成アプリケーションのためのインストラクションを記憶する非一時的コンピュータ読み取り可能な記憶媒体において、前記方法は、
    ネットワークインターフェイスをアイドリングできることを指示する信号をオペレーティングシステムから受信し、この信号は、ネットワークインターフェイスに依存する最終的なルート構造体が満了となって削除されたことをオペレーティングシステムが決定するや否やオペレーティングシステムから送信され、
    オペレーティングシステムからその信号が送信されて以来、ネットワークインターフェイスを使用するルートをアプリケーションが確立したかどうか決定し、
    確立しない場合には、ネットワークインターフェイスをアイドリングさせ、
    さもなければ、ネットワークインターフェイスを現在動作状態のままにする、
    ことを含むものである、コンピュータ読み取り可能な記憶媒体。
  7. ネットワークインターフェイスを構成する装置において、
    ネットワークインターフェイスと、
    ネットワークインターフェイスに結合された処理サブシステムと、
    を備え、ネットワークインターフェイスをアイドリングできることを指示する信号をオペレーティングシステムから受信すると、この信号は、ネットワークインターフェイスに依存する最終的なルート構造体が満了となって削除されたことをオペレーティングシステムが決定するや否やオペレーティングシステムから送信されるものであるが、前記処理サブシステムは、
    オペレーティングシステムからその信号が送信されて以来、ネットワークインターフェイスを使用するルートをアプリケーションが確立したかどうか決定し、
    確立しない場合には、ネットワークインターフェイスをアイドリングさせ、
    さもなければ、ネットワークインターフェイスを現在動作状態のままにする、
    ようにされた装置。
  8. オペレーティングシステムにおいて削除されるべき満了となったルート構造体をスキャニングするための方法において、
    ルートドメインにおける機能を実行することを含み、このルートドメインにおける機能を実行することは、
    ルートドメインにおけるドレイン機能ポインタが、ルートドメインにおけるあるドレイン機能指す場合には、そのドレイン機能を実行して、満了となったルート構造体をスキャンし、
    さもなければ、ドレイン機能ポインタがNULLにセットされた場合には、そのドレイン機能をスキップし、むしろ、オペレーティングシステムのネットワークプロトコルスタックメカニズムを使用して、満了となったルート構造体をスキャンする、
    ことを含む、方法。
  9. コンピュータシステムにより実行されたときに、そのコンピュータシステムが、オペレーティングシステムにおいて削除されるべき満了となったルート構造体をスキャニングするための方法を遂行するようにさせるオペレーティングシステムのためのインストラクションを記憶する非一時的コンピュータ読み取り可能な記憶媒体において、前記方法は、
    ルートドメインにおける機能を実行することを含み、このルートドメインにおける機能を実行することは、
    ルートドメインにおけるドレイン機能ポインタが、ルートドメインにおけるあるドレイン機能指す場合には、そのドレイン機能を実行して、満了となったルート構造体をスキャンし、
    さもなければ、ドレイン機能ポインタがNULLにセットされた場合には、そのドレイン機能をスキップし、むしろ、オペレーティングシステムのネットワークプロトコルスタックメカニズムを使用して、満了となったルート構造体をスキャンする、
    ことを含む、コンピュータ読み取り可能な記憶媒体。
  10. オペレーティングシステムにおいて削除されるべき満了となったルート構造体をスキャニングする装置において、
    処理サブシステム、
    を備え、前記処理サブシステムは、ルートドメインにおける機能を実行し、このルートドメインにおける機能を実行するときに、前記処理サブシステムは、
    ルートドメインにおけるドレイン機能ポインタが、ルートドメインにおけるあるドレイン機能指す場合には、そのドレイン機能を実行して、満了となったルート構造体をスキャンし、
    さもなければ、ドレイン機能ポインタがNULLにセットされた場合には、そのドレイン機能をスキップし、むしろ、オペレーティングシステムのネットワークプロトコルスタックメカニズムを使用して、満了となったルート構造体をスキャンする、
    ように構成された、装置。
  11. ネットワークインターフェイスの動作状態を管理する方法において、
    ブートアップシーケンス中にネットワークインターフェイスを構成することを含み、このネットワークインターフェイスを構成することは、
    ネットワークインターフェイスに依存するルート構造体を、短いルート満了タイマー値を使用して満了とすべきときに、及び
    ルート満了タイマーが満了となったルート構造体を、ネットワークインターフェイスがアイドルでない限り、ルートドメインのドレイン機能を使用してスキャンするときに、
    ネットワークインターフェイスに対する積極的なアイドリングフラグをアサートすることを含む、方法。
  12. コンピュータシステムにより実行されたときに、そのコンピュータシステムが、ネットワークインターフェイスの動作状態を管理する方法を遂行するようにさせる装置ドライバのためのインストラクションを記憶する非一時的コンピュータ読み取り可能な記憶媒体において、前記方法は、
    ブートアップシーケンス中にネットワークインターフェイスを構成することを含み、このネットワークインターフェイスを構成することは、
    ネットワークインターフェイスに依存するルート構造体を、短いルート満了タイマー値を使用して満了とすべきときに、及び
    ルート満了タイマーが満了となったルート構造体を、ネットワークインターフェイスがアイドルでない限り、ルートドメインのドレイン機能を使用してスキャンするときに、
    ネットワークインターフェイスに対する積極的なアイドリングフラグをアサートすることを含む、コンピュータ読み取り可能な記憶媒体。
  13. ネットワークインターフェイスの動作状態を管理する装置において、
    ネットワークインターフェイスと、
    前記ネットワークインターフェイスに結合された処理サブシステムと、
    を備え、ブートアップシーケンス中に、前記処理サブシステムは、ネットワークインターフェイスを構成し、このネットワークインターフェイスを構成するとき、プロセッサは、
    ネットワークインターフェイスに依存するルート構造体を、短いルート満了タイマー値を使用して満了とすべきときに、及び
    ルート満了タイマーが満了となったルート構造体を、ネットワークインターフェイスがアイドルでない限り、ルートドメインのドレイン機能を使用してスキャンするときに、
    ネットワークインターフェイスに対する積極的なアイドリングフラグをアサートする、
    ようにされた装置。
  14. インターフェイスデータ構造体を使用してコンピュータシステムにおけるネットワークインターフェイスの動作状態を追跡する方法において、
    インターフェイスデータ構造体における積極的なアイドリングフラグをセット又はクリアし、前記積極的なアイドリングフラグは、オペレーティングシステムが、ネットワークインターフェイスに依存するルート構造体のための短い満了時間を使用するようにさせ、そしてオペレーティングシステムが、ルートドメインのドレイン機能を使用して、ルート満了タイマーが満了となったルート構造体をスキャンするようにさせ、
    インターフェイスデータ構造体におけるルート参照カウンタを維持し、オペレーティングシステムは、そのルート参照カウンタを使用して、どれほど多くのルート構造体がネットワークインターフェイスに依存するか決定し、そのルート参照カウンタがゼロに等しくなったとき、ネットワークインターフェイスをアイドリングさせることができる、方法。
  15. コンピュータシステムにおける対応するネットワークインターフェイスの動作状態を追跡するためにインターフェイスデータ構造体を保持する非一時的なコンピュータ読み取り可能な記憶媒体において、前記データ構造体は、
    積極的なアイドリングフラグを備え、この積極的なアイドリングフラグは、これがアサートされたとき、オペレーティングシステムが、ネットワークインターフェイスに依存するルート構造体のための短い満了時間を使用するようにさせ、そしてオペレーティングシステムが、ルートドメインのドレイン機能を使用して、ルート満了タイマーが満了となったルート構造体をスキャンするようにさせ、
    ルート参照カウンタを更に備え、オペレーティングシステムは、そのルート参照カウンタを使用して、どれほど多くのルート構造体がネットワークインターフェイスに依存するか決定し、そのルート参照カウンタがゼロに等しくなったとき、ネットワークインターフェイスをアイドリングさせることができる、コンピュータ読み取り可能な記憶媒体。
JP2013529134A 2010-01-15 2011-01-03 ネットワーク接続をアイドリングさせる方法及び装置 Active JP5662579B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US29562210P 2010-01-15 2010-01-15
US61/295,622 2010-01-15
US12/857,421 2010-08-16
US12/857,421 US9009297B2 (en) 2010-01-15 2010-08-16 Method and apparatus for idling a network connection
PCT/US2011/020034 WO2013025184A1 (en) 2010-01-15 2011-01-03 Method and apparatus for idling a network connection

Publications (2)

Publication Number Publication Date
JP2013536663A true JP2013536663A (ja) 2013-09-19
JP5662579B2 JP5662579B2 (ja) 2015-02-04

Family

ID=44278361

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013529134A Active JP5662579B2 (ja) 2010-01-15 2011-01-03 ネットワーク接続をアイドリングさせる方法及び装置
JP2012548964A Active JP5536232B2 (ja) 2010-01-15 2011-01-03 ネットワーク接続をアイドリングさせる方法及び装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2012548964A Active JP5536232B2 (ja) 2010-01-15 2011-01-03 ネットワーク接続をアイドリングさせる方法及び装置

Country Status (5)

Country Link
US (2) US9009297B2 (ja)
EP (2) EP2580664B1 (ja)
JP (2) JP5662579B2 (ja)
KR (2) KR101417555B1 (ja)
WO (2) WO2013025184A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8744367B2 (en) * 2010-08-31 2014-06-03 At&T Intellectual Property I, L.P. Tail optimization protocol for cellular radio resource allocation
US8527627B2 (en) 2010-12-14 2013-09-03 At&T Intellectual Property I, L.P. Intelligent mobility application profiling with respect to identified communication bursts
US9264872B2 (en) 2011-06-20 2016-02-16 At&T Intellectual Property I, L.P. Controlling traffic transmissions to manage cellular radio resource utilization
US9220066B2 (en) 2011-06-20 2015-12-22 At&T Intellectual Property I, L.P. Bundling data transfers and employing tail optimization protocol to manage cellular radio resource utilization
US8806250B2 (en) 2011-09-09 2014-08-12 Microsoft Corporation Operating system management of network interface devices
US9049660B2 (en) 2011-09-09 2015-06-02 Microsoft Technology Licensing, Llc Wake pattern management
US8892710B2 (en) 2011-09-09 2014-11-18 Microsoft Corporation Keep alive management
EP2781053B1 (en) * 2011-11-16 2020-12-23 Nokia Solutions and Networks Oy Network coordination method, apparatus and computer program
US10009246B1 (en) * 2014-03-28 2018-06-26 Amazon Technologies, Inc. Monitoring service
KR102524290B1 (ko) 2017-12-26 2023-04-21 현대자동차주식회사 이더넷 스위치, 차량 내 네트워크 구성 방법 및 차량
EP3965379A1 (en) * 2020-09-04 2022-03-09 Huawei Technologies Co., Ltd. Data transmission method, apparatus, and network device
CN117596184B (zh) * 2023-11-20 2024-05-28 江苏新质信息科技有限公司 一种通信连接检测方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004164566A (ja) * 2002-09-27 2004-06-10 Casio Comput Co Ltd 通信端末の電力制御装置及び通信端末の電力制御方法
WO2008087931A1 (ja) * 2007-01-17 2008-07-24 Nec Corporation 無線通信システム及びその方法と、それらに用いられる装置及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5223827A (en) 1991-05-23 1993-06-29 International Business Machines Corporation Process and apparatus for managing network event counters
US20020138627A1 (en) * 2001-03-26 2002-09-26 Frantzen Michael T. Apparatus and method for managing persistent network connections
US20030226056A1 (en) 2002-05-28 2003-12-04 Michael Yip Method and system for a process manager
US7284053B1 (en) * 2003-03-31 2007-10-16 Cisco Technology, Inc. System and method for loadbalancing in a network environment
JP2005099515A (ja) * 2003-09-25 2005-04-14 Toshiba Corp 情報処理装置および省電力制御方法。
US7050940B2 (en) * 2004-03-17 2006-05-23 International Business Machines Corporation Method and system for maintaining and examining timers for network connections

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004164566A (ja) * 2002-09-27 2004-06-10 Casio Comput Co Ltd 通信端末の電力制御装置及び通信端末の電力制御方法
WO2008087931A1 (ja) * 2007-01-17 2008-07-24 Nec Corporation 無線通信システム及びその方法と、それらに用いられる装置及びプログラム

Also Published As

Publication number Publication date
JP2013522698A (ja) 2013-06-13
KR20130051917A (ko) 2013-05-21
KR101417555B1 (ko) 2014-07-08
EP2580664B1 (en) 2018-07-04
EP2524310B1 (en) 2018-07-25
WO2011087924A1 (en) 2011-07-21
US9009297B2 (en) 2015-04-14
KR20120106897A (ko) 2012-09-26
KR101552382B1 (ko) 2015-09-10
US8706855B2 (en) 2014-04-22
US20110179163A1 (en) 2011-07-21
US20110179153A1 (en) 2011-07-21
JP5662579B2 (ja) 2015-02-04
JP5536232B2 (ja) 2014-07-02
WO2013025184A1 (en) 2013-02-21
EP2580664A1 (en) 2013-04-17
EP2524310A1 (en) 2012-11-21

Similar Documents

Publication Publication Date Title
JP5662579B2 (ja) ネットワーク接続をアイドリングさせる方法及び装置
JP6204510B2 (ja) ハイブリッドネットワーク内のトポロジ発見
EP3020233B1 (en) Neighbor discovery to support sleepy nodes
JP6385276B2 (ja) 起動パターン管理
US20100332212A1 (en) Method and apparatus for sleep and wake of computer devices
Lim et al. Design, implementation, and evaluation of energy-aware multi-path TCP
US20100077063A1 (en) System and method for emulating a computing device
US20120110173A1 (en) Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
US20110029659A1 (en) Method and System for Network Proxy Services for Energy Efficient Networking
EP2636252A2 (en) Mobile traffic categorization and policy for network use optmization while preserving user experience
US9681378B2 (en) Energy efficient data handling for mobile devices
WO2021047259A1 (zh) 一种数据管理方法,相关产品及通信系统
US20120137150A1 (en) Data processing apparatus, method for controlling data processing apparatus, and storage medium storing program
WO2020220748A1 (zh) 应用控制方法、装置、终端及计算机可读存储介质
EP3414952B1 (en) Power-aware network communication
US20120109912A1 (en) Methods and systems to maintain data coherency
CN109451354B (zh) 一种唤醒终端的方法及终端
US20130047014A1 (en) Communication apparatus and computer program product
JP2012227804A (ja) 情報処理装置および情報処理装置の制御方法
CN109995678B (zh) 报文传输方法及装置
WO2020000603A1 (zh) 一种确定数据流的映射地址的方法及服务器
CN113994650A (zh) 用于传输层上网络切换的方法和系统
WO2017012315A1 (zh) 业务监听控制方法及装置
WO2014173247A1 (zh) 无线局域网终端保持一直在线的系统及方法、服务器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120913

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140523

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141204

R150 Certificate of patent or registration of utility model

Ref document number: 5662579

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250