Microsoft Windows BITS について:バックグラウンド インテリジェント転送サービスの説明
投稿者
- ラーフル・アワティ
- Stephen J. Bigelow、シニア テクノロジー エディター
発行日:2023 年 8 月 21 日
Microsoft Windows バックグラウンド インテリジェント転送サービス (BITS) は、ハイパーテキスト転送プロトコル (HTTP) Web サーバーおよびサーバー メッセージ ブロック (SMB) ファイル サーバーとの間でファイルのダウンロードとアップロードを可能にする Microsoft Windows オペレーティング システム (OS) のサービスです。
BITS はアイドル状態のネットワーク帯域幅を使用してバックグラウンドまたはフォアグラウンドでファイルを転送するため、ユーザーのフォアグラウンド エクスペリエンスへの影響は最小限に抑えられます。サービスを無効にすると、BITS に依存するすべてのアプリケーションがプログラムやその他の重要な情報を自動的にダウンロードできなくなります。
BITS は、HTTP Web サーバーおよび SMB ファイル サーバーとの間でファイル転送 (ダウンロードまたはアップロード) を実行するために、未使用またはアイドル状態のネットワーク帯域幅を使用します。ファイル転送 (たとえば、クライアント マシンとサーバーの間) は非同期であり、フォアグラウンドまたはバックグラウンドで行われます。これは、アプリケーションが BITS にファイル転送を要求するときに、他のタスクを自由に実行できることを意味します。
BITS には、転送を作成および管理するための PowerShell コマンドレットと、ダウンロード ジョブまたはアップロード ジョブを作成し、その進行状況を監視するための BITSAdmin コマンド ライン ユーティリティが含まれています。このサービスには、アプリケーションからのファイル転送リクエストに優先順位を付けるためのキュー管理機能も含まれています。
ネットワーク上で中断または中断が発生した場合、ネットワークまたはマシンがサービスに戻ると、BITS は自動的に再接続してファイル転送を再開します。 BITS は、再起動後でも転送を自動的に一時停止および再開できます。また、マシンが電源に接続されているときやモダン スタンバイ モードのときにファイルも転送されるため、電力使用量に注意が払われます。
バックグラウンド インテリジェント転送サービス ジョブのライフサイクル
BITS ジョブは、HTTP Web サーバーおよび SMB ファイル サーバーとの間で転送される 1 つ以上のファイルを保持するコンテナーです。ジョブには、BITS がファイルを転送し、アプリケーションと対話する方法を指定するプロパティがあります。
ジョブのライフサイクルは作成から始まります。これは、ユーザーがジョブの優先順位、アップロードかダウンロードか、通知を受け取りたいイベントを指定するときです。ジョブが作成されると、それにファイルを追加できます。アップロード ジョブの場合は最大 1 つのファイルを追加できます。アプリケーションに応じてジョブのプロパティを変更することもできます。 1 つ以上のファイルをジョブに追加するときは、ファイルのローカル (クライアント) 名とリモート (サーバー) 名を指定することが重要です。
ジョブが作成されると、BITS はジョブを自動的に一時停止します。ユーザーは、転送キュー内でジョブをアクティブ化するには、つまり一時停止状態からキューに入れられた状態にジョブを移行するには、ジョブを再開する必要があります。 BITS スケジューラがファイルを転送する順番を決定するまで、キューに入れられた状態のままになります。この時点で、ジョブは接続状態に移行し、BITS はリモート サーバーに接続します。その後、転送状態に移行し、次の 4 つの条件のいずれかが発生するまでその状態が維持されます。
<オル>BITS がすべてのファイルを転送すると、ジョブは転送済み状態に移行します。転送されたファイルは、アプリケーションが IBackgroundCopyJob::Complete メソッドを呼び出し、ファイルの所有権が BITS からユーザーに転送された場合にのみクライアントで使用可能になります。
BITS がユーザー エクスペリエンスを維持する方法
利用可能なアイドル状態のネットワーク帯域幅に応じて、BITS はファイルの転送速度を増減します。アプリケーションがより多くの帯域幅を消費し始めると、BITS はファイル転送速度を自動的に低下させ、ユーザーの全体的なエクスペリエンスを維持し、バックグラウンド転送が最適化されるようにします。
ファイル転送を開始したユーザーがネットワークにログオンしており、ネットワーク接続が維持されている限り、アプリケーション自体が終了しても、BITS はファイルの転送を続けます。ただし、ネットワークが失われた場合やユーザーがログオフした場合でも、BITS はネットワーク接続を強制しません。代わりに、まず転送ジョブを一時停止し、失われた接続が再確立された後、またはログオフしたユーザーが再度ログインした後に転送ジョブを再開します。
BITS は、ファイル転送のコストとネットワーク使用量、およびネットワークの混雑を常に考慮します。また、アプリ指定の転送ポリシーを使用して、有料のネットワーク接続でのファイルの転送を防ぎます。これらの考慮事項は、コストが急速に上昇する可能性があるローミング ネットワークでは特に重要です。また、BITS は、ユーザーのフォアグラウンド作業への影響や干渉を最小限に抑え、最終的にはシステムでの作業エクスペリエンスを維持するのに役立ちます。
バックグラウンド インテリジェント転送サービスのアプリケーション
BITS は、HTTP Web サーバーおよび SMB ファイル共有との間でファイルをダウンロードまたはアップロードすることを検討しているシステム管理者にとって最も役立ちます。さらに、C、C++、.NET プログラマーにとって便利なコンポーネント オブジェクト モデル インターフェイスも提供します。 Microsoft は、ユニバーサル Windows プラットフォーム プログラマーに対して BITS アプリケーション プログラミング インターフェイス (API) を推奨しません。代わりに Windows.Networking.BackgroundTransfer API を使用する必要があります。
Windows は BITS を使用して、ユーザーのローカル システムに更新プログラムをダウンロードします。 HTTP または表現状態転送 Web サーバーまたは SMB ファイル サーバーとの間でファイルをダウンロードまたはアップロードする必要があるアプリケーションなど、他の多くのアプリケーションでも BITS が使用されます。ネットワークの切断またはコンピュータの再起動後にファイル転送を自動的に再開する必要があるアプリケーションも BITS を使用します。最後に、BITS は、Windows および Windows Server OS の一部のエディションに含まれる WAN 最適化テクノロジである BranchCache と併用すると、広域ネットワーク トラフィックを最適化するために使用できます。
管理者は、Microsoft Windows BITS を使用して WAN トラフィックを管理できます。 BITS における転送ジョブの種類とジョブの状態
BITS は、次の 3 種類の転送ジョブをサポートします。
<オル>BITS ジョブは、次の 4 つの状態のいずれかになります。
<オル>BITS ジョブは実行すると、さまざまな状態クラスの状態間を遷移します。ただし、最終状態に到達すると、その状態から抜け出すことはできません。つまり、状態を変更するメソッドを呼び出すことはできません。また、ジョブの列挙にも表示されません。エラーが発生した場合、ジョブは致命的なエラー状態 (BITS は回復できません) または一時的なエラー状態 (エラーは自動的に解決される可能性があり、転送が成功するか、アプリケーションで指定された期間内にジョブがタイムアウトするまで、BITS はジョブを再試行します) に移行します。ジョブが一時的なエラー状態でタイムアウトすると、BITS はジョブを致命的なエラー状態に移行します。
バックグラウンド インテリジェント転送サービスの優先レベル
BITS は、どの転送ジョブをいつ実行するかをインテリジェントに選択できます。これは、アプリケーションが異なる優先レベル (前景に 1 つ、背景に 3 つ) を使用できるためです。優先レベルは、転送キュー内の他のジョブと比較して転送ジョブがいつ処理されるかを決定します。したがって、
- 優先度の高いジョブは、優先度の低いジョブより優先されます。
- 優先度の高いジョブがすべて転送されるか、エラー状態になるまで、優先度の低いジョブには転送時間が与えられません。
- 同じ優先度レベルのジョブは転送時間を共有するため、大きなジョブが転送キューをブロックして遅延を引き起こす可能性はありません。
同じ優先度レベルでジョブをスケジュールするために、BITS はラウンドロビン スケジューリングを使用します。この場合、各ジョブにはファイルを処理するための時間のスライスが与えられます。特定のジョブが割り当てられたタイム スライス内に完了しない場合、ジョブは自動的にキュー状態に戻り、キュー内の次のジョブが先入れ先出し (FIFO) ベースでアクティブ化されます。ここで、BITS は最善を尽くしますが、FIFO 処理を保証するものではないことに注意することが重要です。
Windows BITS はラウンドロビン スケジュールを使用して、同じ優先度レベルでジョブをスケジュールします。 BITS 1.5 以前では、フォアグラウンド ジョブがバックグラウンド ジョブよりも優先されます。実際、フォアグラウンド ジョブの優先順位が最も高く、BITS は一度に 1 つのジョブのみを処理します。以降の BITS バージョンでは、複数のフォアグラウンド転送を同時に実行できますが、同じジョブ内の複数のファイルは常に順次またはシリアルに転送されます。
バックグラウンド インテリジェント転送サービスの歴史
Microsoft は BITS を何度も更新してきました。
- Microsoft は 2001 年に Windows XP に BITS バージョン 1.0 を導入しました。
- 2002 年半ばにバージョン 1.2 が登場し、Windows 2000 に自動更新サービスが追加されました。
- バージョン 1.5 は 2003 年末に Windows Server 2003 とともにリリースされ、コマンドラインのサポート、アップロード機能の追加、セキュリティの向上をもたらしました。
- バージョン 2.0 は、複数の OS 導入向けのアップデートとして 2004 年半ばにリリースされ、ダウンロード機能、帯域幅調整、SMB のサポートが追加されました。
- 2007 年半ばにリリースされた BITS 2.5 では、IPv6 およびカスタム HTTP ヘッダーのサポートと、HTTP セキュリティの強化が追加されました。
- Windows Vista および Windows Server 2008 に含まれる BITS 3.0 には、ピア キャッシュ、通知、一時ファイル アクセス、HTTP リダイレクト処理、追加のグループ ポリシー制御、およびイベント ログが追加されました。
- 2009 年半ばに Windows 7 および Windows Server 2008 R2 とともにリリースされた BITS 4.0 は、トークンベースのセキュリティ、スタンドアロン ファイル サーバー機能、洗練された帯域幅調整、および改訂されたピア キャッシュを実現しました。
- 2016 年半ばに Windows 10 に組み込まれた BITS 5.0 では、バックグラウンド コピー ジョブの機能強化、古いバックグラウンド コピー ジョブのサポート、API と PowerShell コマンドレットを介して BITS を使用する機能が追加されました。
- BITS バージョン 10.1 は、Windows 10 バージョン 1703 の一部であり、Windows 10 Creators Update とも呼ばれ、ダウンロード機能と通知機能が改良されました。
- Windows 10 October 2018 Update の一部である BITS バージョン 10.2 では、デフォルトのプロキシ順序付けに加え、モダン スタンバイ、モバイル デバイス マネージャー ポリシー、グループ ポリシーのサポートが追加されました。
- Windows 10 May 2019 Update の一部である BITS バージョン 10.3 では、HTTP ヘッダーを書き込み専用およびサーバー証明書検証コールバックとしてマークできる機能が有効になりました。
PowerShell ファイル転送プロトコル スクリプトを使用してファイルをアップロードおよびダウンロードする方法を学び、企業向けの 8 つの安全なファイル転送サービスについて読んでください。
Microsoft Windows バックグラウンド インテリジェント転送サービス (BITS) についての続きを読む
- PowerShell とは何か、その使用方法:究極のチュートリアル
- Windows 11 のパフォーマンスの問題を特定して修正するための 5 つのステップ
- 大容量ファイルを転送するツール:最適なものを見つけて購入する方法
- デスクトップ管理者向けの Windows 11 移行ツール
- デスクトップ管理者が知っておくべき Windows 11 アップグレードの問題
IT 運用とインフラストラクチャ管理についてさらに深く掘り下げる
-
簡単な Struts 2 ファイルのアップロード例
投稿者:キャメロン・マッケンジー
-
JCL (ジョブ制御言語) とは何ですか?
投稿者:TechTarget 寄稿者
-
TFTP を使用してネットワーク経由でファイルを転送する方法
投稿者:デイモン・ガーン
-
cURL と Wget を使用して CLI からネットワーク ファイルをダウンロードする
投稿者:デイモン・ガーン
-
Mac で iMessage をオフにする方法
iPhone と一緒に Mac を使用することの優れた点の 1 つは、特に通信に関して、2 つのプラットフォーム間の統合です。電話を転送したり、iPhone から Mac にテキスト メッセージを送信したりすることもできます。 この同期は、複雑な祝福になる可能性があります。はい、Mac でメッセージを受け取るのは便利ですが、絶え間ないアラートの流れはかなりの注意散漫になる可能性があります。アラートのファイアホースをオフにしたいですか?それとも、メッセージを Mac から完全に削除しますか?これらの質問のいずれかに「はい」と答えた場合は、解決策があります。 Mac で iMessage を
-
Mac でファイルやフォルダを完全に削除する方法
ファイルを削除してデバイスのスペースを作ることは、デバイスの詰まりを解消する一般的な方法です。コンピューターを売却したり、セキュリティ上の理由でファイルを完全に削除したりするために、ファイルを完全に削除したい場合があります。 これを手動で行うことはおそらくできません。サードパーティのアプリを利用してこの面倒な作業を行うと、時間を節約できるだけでなく、確実に作業を完了できます。アプリを使用すると、ファイルとその痕跡を完全に削除できます。 この投稿では、痕跡を残さずに Mac 上のファイルを完全に削除する方法について説明します。 手動でファイルを削除できますか? はい、できます! Mac か