現在オフラインです。再接続するためにインターネットの接続を待っています

Setsockopt が IP パケット ヘッダーで IP プロトコルの TOS ビットを設定できない

この記事は、以前は次の ID で公開されていました: JP248611
重要 : この資料には、レジストリの編集に関する情報が含まれています。レジストリを編集する前に、問題が発生した場合に備えて、レジストリの復元方法を理解しておいてください。復元方法の詳細については、Regedit.exe のヘルプ トピック「レジストリを復元する」、または Regedt32.exe のヘルプ トピック「レジストリ キーを復元する」を参照してください。
概要
Windows 2000 では、setsockopt 関数によるインターネット プロトコル (IP) の Type of Service (ToS) ビットの設定はサポートされていません。
詳細
Windows NT 4.0 と Windows 9x では、Winsock アプリケーションは、IP_TOS オプションを使用して setsockopt 関数を呼び出すことによって、UDP と ICMP パケットの IP ヘッダーで ToS ビットを設定することができます。それらのプラットフォームの ping ユーティリティについても、"-v" オプションを使用することにより、ICMP Echo パケットでの ToS ビットの設定を許可します。TCP ソケットで IP_TOS オプションを使用した setsockopt 呼び出しが 0 (正常) を返しても、Winsock では TCP パケットの ToS ビットの設定ができるようになっていないことに注意してください。

Windows 2000 では、Winsock アプリケーションと ping ユーティリティの ToS ビットの設定機能がデフォルトで無効になっています。Windows 2000 で setsockopt 関数の IP_TOS オプションを設定しようとすると、依然として 0 (正常) を返してアプリケーションは実行され続けますが、IP ヘッダーの ToS ビットは設定されません。

Windows 2000 でこの仕様に変更されたのは、RFC (Request For Comment) 1349 で指定されている以前の ToS ビットおよび優先順位 (precedence) ビットが RFC 2474 と 2475 で古くなったためです。これらの RFC により、ToS が Differentiated Services (DiffServ) に置き換えられました。

DiffServ Code Point (DSCP) により、ルータのようなレイヤ 3 の情報に影響するネットワーク デバイスを通過するパケットが、お互いに区別される相対優先度を持つようになります。DSCP は、IP ヘッダーで ToS フィールドの最初の 6 ビットを設定することによって確立されます。DSCP は、IP 優先順位を決定する機能を前提としていますが、後方互換性を維持しています。DSCP マーキングにより、レイヤ 3 デバイスは集約された優先順位ベースのキューを確立し、より高い相対優先度を持つパケットにより、より強化されたサービスを提供することができます。

これは、ストリーム メディアのプレゼンテーションと他のリアルタイム データ ストリームに関連する著しいネットワーク トラフィックの負荷がある場合と同様に、パケット サービスがキューに従う場合に特に有用です。DSCP を有効にするには、レイヤ 3 デバイスで DSCP が有効になっている必要があります。

Windows 2000 ホスト デバイスでは、GQOS (Generic Quality of Service) の実装により DSCP 設定が決定されます。Winsock GQOS プログラムは、RSVP サービス プロバイダをトリガし、ネットワーク データ パスに沿ってポリシー コントロールおよびリソースの利用可能性を判定するためにポリシーとリソースのチェックを送信します。意図したリソースの使用が承認されると、QOS パケット スケジューラ サービスにより IP パケット ヘッダーで DSCP の優先順位化が設定されます。Setsockopt 関数の IP_TOS オプションは Windows 2000 QOS ポリシー コントロールを省略するため、Windows 2000 ではデフォルトで無効になっています。

マイクロソフトでは、Winsock プログラムで GQOS を実装し、Windows 2000 GQOS 機能を利用することをお勧めします。しかし、後方互換性のために Windows 2000 で Windows NT 4.0 の IP_TOS に類似した現象を考慮するには、Windows 2000 で新しいレジストリ キーを追加します。

警告 : レジストリ エディタの使い方を誤ると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要です。マイクロソフトは、レジストリ エディタの誤用により発生した問題に関しては、一切責任を負わないものとします。レジストリ エディタは、自己の責任においてご使用ください。

レジストリの編集方法の詳細については、レジストリ エディタ (Regedit.exe) のヘルプ トピック「キーと値の変更」、または Regedt32.exe のヘルプ トピック「レジストリ情報の追加と削除」と「レジストリ情報の編集」を参照してください。レジストリを編集する前にレジストリのバックアップを必ず作成してください。Windows NT または Windows 2000 を実行している場合、システム修復ディスク (ERD) も更新する必要があります。

次の手順に従って、Windows 2000 で Winsock setsockopt 関数の IP_TOS オプションと ping ユーティリティの -v オプションを有効にします。
  1. レジストリ エディタ (Regedt32.exe) を起動します。
  2. 次のキーに移動します。
    ローカル コンピュータの HKEY_LOCAL_ MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\ 
    : 上記のレジストリ キーは 1 つのパスです。
  3. [編集] メニューの [値の追加] をクリックし、DisableUserTOSSetting と入力します。[データ型] ボックスの [REG_DWORD] をクリックし、[OK] をクリックします。
  4. 表示されるダイアログ ボックスに 0 を入力します。
  5. レジストリ エディタを終了して、コンピュータを再起動します。
IP_ToS オプションを効果的に置き換えた QoS (Quality of Service) アプリケーション プログラミング インターフェイス (API) の使用およびアプリケーションについては、MSDN オンラインを参照して QoS を検索してください。

トラフィックの優先順位付けの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
222102 Traffic Prioritization Using IP Precedence
222020 Description of 802.1P Signaling
222020[NT]802.1P 信号方式について
233039 QoS Queuing Techniques
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 248611 (最終更新日 2001-08-08) をもとに作成したものです。

プロパティ

文書番号:248611 - 最終更新日: 08/22/2003 18:11:00 - リビジョン: 3.0

Microsoft Windows NT Server 4.0 Standard Edition, Microsoft Windows NT 4.0 Service Pack 5, Microsoft Windows NT Workstation 4.0 Developer Edition, Microsoft Windows NT Workstation 4.0, Microsoft Windows 2000 Professional, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Server

  • kbinfo kbnetwork KB248611
フィードバック
/html> var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" >