Microsoft DirectX 8.0 (Visual Basic)

メッセージ処理の基本

メッセージという用語は、このドキュメントで使用される場合、別のコンピュータに送信する必要があるデータ ブロックを意味する。ネットワーク プロトコルは、データ ブロックにターゲットのネットワーク アドレスといった情報を保持するいくつかのビットを追加して、"パケット" を作成する。このパケットが、ネットワーク データの基本単位となる。パケットがターゲットに届くと、ターゲットのネットワーク プロトコルが、余分のビットを削除し、受け側のアプリケーションにそのデータ ブロックを渡す。

使い方は似ているが、"メッセージ" という用語と "パケット" という用語は厳密には互換でない。このドキュメントでは、Microsoft® DirectPlay® API とやり取りする情報の単位を、"メッセージ" と表現する。また、ネットワークが処理する情報の単位を、"パケット" と表現する。パケットは、DirectPlay 内部で処理される。ごく稀な例外を除き、DirectPlay アプリケーションではメッセージだけを処理すればよい。

"メッセージ" と "パケット" を区別する主な理由は、ネットワークで処理されるパケットの最大サイズが通常制限されていることにある。このサイズを、最大伝送単位 (MTU) という。メッセージが小さい場合は、メッセージが単独パケットで送信されるため、2 つの用語は事実上同義である。一方、大きいメッセージは、複数のパケットに分割して送信し、受け側で再構成しなければならないことがある。DirectPlay プロトコルでは、メッセージの分割および再構成が必要に応じて自動的に処理される。どちらの場合も、アプリケーションに関する限り、メッセージを送信し、ターゲットがそれを受け取るということは変わらない。

  DirectPlay が配信するメッセージのサイズに制限はない。ただし、単独メッセージに必要なパケット数が増えるほど、パケットが失われ、再送信しなければならない確率が高くなる。したがって、分割および再構成が必要な大きいメッセージでは、通常、単独パケットのメッセージよりネットワークの遅延時間が大きくなる。ネットワークの遅延時間を最小限に抑える必要がある場合は、(ネットワークの損失が多い場合には特に) 大きなメッセージの送信を避けること。現在の接続で単独パケットに収容できる最大のメッセージ サイズは、DirectPlay8PeerDirectPlay8Client、および DirectPlay8Server インターフェイスで公開される GetSPCaps メソッドを呼び出して判断できる。