タイムアウトや Transport に関する各種設定を行うためのクラスです。 このクラスは接続/切断/NAT トラバーサルのタイムアウトや、Transport のチューニングパラメータを設定します。 [詳解]
#include <OnlineCore/src/Transport/Interface/RootTransport.h>
公開メンバ関数 | |
InputEmulationDevice * | GetInputEmulationDevice () |
入力ネットワークエミュレータデバイスを取得します。[デバック用] [詳解] | |
OutputEmulationDevice * | GetOutputEmulationDevice () |
出力ネットワークエミュレータデバイスを取得します。[デバック用] [詳解] | |
静的公開メンバ関数 | |
static void | EnableDOPacketHistoryBundling (qBool b) |
過去に送られた DO のパケットをバンドリングして再送するか指定します。 [詳解] | |
static void | EnableDropDuplicateReorderingUnreliablePackets (qBool b) |
Unreliable通信において、リオーダリングもしくは重複発生パケットをドロップする機能をON/OFFします。 [詳解] | |
static void | EnablePacketHistoryBundling (qBool b) |
過去に送られたパケットをバンドリングして再送する機能をON/OFFします [詳解] | |
static void | EnableReliablePacketHistoryBundling (qBool b) |
過去に送られたReliableパケットをバンドリングして再送するか指定します。 [詳解] | |
static void | EnableUnreliablePacketHistoryBundling (qBool b) |
過去に送られたUnreliableパケットをバンドリングして再送するか指定します。 [詳解] | |
static RootTransport * | GetInstance () |
RootTransportのインスタンスを取得します。 [詳解] | |
static qInt32 | GetNameResolveThreadCoreNo () |
名前解決用スレッドが利用する CPU の コア番号を取得します。 [詳解] | |
static qUnsignedInt | GetNameResolveThreadPriority () |
名前解決用スレッドの優先度を返します。 [詳解] | |
static qUnsignedInt32 | GetNATTraversalTimeout () |
NAT トラバーサルのタイムアウト時間を取得します。 [詳解] | |
static TimeInterval | GetPacketHistoryBundlingForcedRetransmitTimeout () |
過去に送られたパケットをバンドリングされなかったパケットを強制再送するまでの保留時間 [詳解] | |
static TimeInterval | GetPacketHistoryBundlingHoldingTime () |
過去に送られたパケットをバンドリングして再送するために、パケットを保持する時間を返します。 [詳解] | |
static size_t | GetPacketHistoryBundlingMaxHoldingPackets () |
過去に送られたパケットをバンドリングして再送するために、保持する最大パケット数を返します。 [詳解] | |
static size_t | GetPacketHistoryBundlingMaximumPacketBytes () |
過去に送られたパケットバンドリングする時の、パケットの上限サイズを返します。 [詳解] | |
static size_t | GetPacketHistoryBundlingMaxRetransmitCounts () |
過去に送られたパケットをバンドリングして再送する最大再送回数を返します [詳解] | |
static size_t | GetPacketHistoryBundlingMaxRetransmitPackets () |
過去に送られたパケットをバンドリングして再送する時に、同時にバンドルする最大パケット数を返します。 [詳解] | |
static size_t | GetPacketHistoryBundlingPacketCount (PacketHistoryCount phc) |
バンドリングされたパケット数の統計値を返します。(デバッグ用) [詳解] | |
static const size_t * | GetPacketHistoryBundlingPacketCounts () |
バンドリングされたパケット数の統計値を返します。(デバッグ用) [詳解] | |
static qUnsignedInt32 | GetRoutingHistoryTTL () |
マスター経由通信履歴の生存時間を取得します。 [詳解] | |
static qUnsignedInt32 | GetRoutingHistoryUpdateSpan () |
マスター経由通信履歴の更新間隔を取得します。 [詳解] | |
static qUnsignedInt32 | GetRoutingLimit () |
マスター経由通信の制限数を取得します。 [詳解] | |
static size_t | GetTransportBufferPoolNum () |
トランスポートバッファスレッドで使用されるバッファのためのメモリプール数を返します。 [詳解] | |
static qInt32 | GetTransportBufferThreadCoreNo () |
トランスポートバッファスレッドが利用する CPU の コア番号を取得します。 [詳解] | |
static qUnsignedInt | GetTransportBufferThreadPriority () |
トランスポートバッファスレッドの受信用スレッドの優先度を返します。 [詳解] | |
static qUnsignedInt | GetTransportBufferThreadRecvPriority () |
トランスポートバッファスレッドの受信用優先度を返します。 [詳解] | |
static qUnsignedInt | GetTransportBufferThreadSendPriority () |
トランスポートバッファスレッドの送信用優先度を返します。 [詳解] | |
static qUnsignedInt16 | GetWellKnownPortNumber () |
既知ポート番号を取得します。 [詳解] | |
static qBool | IsEnableDOPacketHistoryBundling () |
過去に送られた DO のパケットをバンドリングするか否かを返します。 [詳解] | |
static qBool | IsEnableDropDuplicateReorderingUnreliablePackets () |
Unreliable通信において、リオーダリングもしくは重複発生パケットをドロップする機能のON/OFFを返します。 [詳解] | |
static qBool | IsEnablePacketHistoryBundling () |
過去に送られたパケットをバンドリングして再送する機能のON/OFFを返します。 [詳解] | |
static qBool | IsEnableReliablePacketHistoryBundling () |
過去に送られたReliableパケットをバンドリングするか否かを返します。 [詳解] | |
static qBool | IsEnableUnreliablePacketHistoryBundling () |
過去に送られたUnreliableパケットをバンドリングするか否かを返します。 [詳解] | |
static void | SetNameResolveThreadCoreNo (qInt32 no) |
名前解決用スレッドが利用する CPU の コア番号を設定します。 [詳解] | |
static void | SetNameResolveThreadPriority (qUnsignedInt priority) |
名前解決用スレッドの優先度を設定します。 [詳解] | |
static void | SetNATTraversalTimeout (qUnsignedInt32 o) |
NAT トラバーサルのタイムアウト時間を設定します。 ゲームに参加できる最大人数×[3000-5000]を目安に設定してください。 [詳解] | |
static void | SetPacketHistoryBundlingForcedRetransmitTimeout (TimeInterval timeout) |
過去に送られたパケットをバンドリングされなかったパケットを強制再送するまでの保留時間を設定します。 [詳解] | |
static void | SetPacketHistoryBundlingHoldingTime (TimeInterval t) |
過去に送られたパケットをバンドリングして再送するためにパケットを保持する時間を設定します。 [詳解] | |
static void | SetPacketHistoryBundlingMaxHoldingPackets (size_t n) |
過去に送られたパケットをバンドリングして再送するために、保持する最大パケット数を設定します。 [詳解] | |
static void | SetPacketHistoryBundlingMaximumPacketBytes (size_t bytes) |
過去に送られたパケットをバンドリングする時の、バンドリング上限サイズを設定します。デフォルトは1364です。 [詳解] | |
static void | SetPacketHistoryBundlingMaxRetransmitCounts (size_t n) |
過去に送られたパケットをバンドリングして再送する最大再送回数します。 [詳解] | |
static void | SetPacketHistoryBundlingMaxRetransmitPackets (size_t n) |
過去に送られたパケットをバンドリングして再送する時に、同時にバンドルする最大パケット数を設定します。 [詳解] | |
static void | SetRoutingHistoryTTL (qUnsignedInt32 ui) |
マスター経由通信履歴の生存時間を設定します。 [詳解] | |
static void | SetRoutingHistoryUpdateSpan (qUnsignedInt32 ui) |
マスター経由通信履歴の更新間隔を設定します。 [詳解] | |
static void | SetRoutingLimit (qUnsignedInt32 ui) |
マスター経由通信の数を制限します。 [詳解] | |
static void | SetTransportBufferPoolNum (qUnsignedInt poolNum) |
トランスポートバッファスレッドで使用されるバッファのためのメモリプール数を設定します。 [詳解] | |
static void | SetTransportBufferThreadCoreNo (qInt32 no) |
トランスポートバッファスレッドが利用する CPU の コア番号を設定します。 [詳解] | |
static void | SetTransportBufferThreadPriority (qUnsignedInt priority) |
トランスポートバッファスレッドの送信用と受信用のスレッド優先度をまとめて設定します。 [詳解] | |
static void | SetTransportBufferThreadRecvPriority (qUnsignedInt priority) |
トランスポートバッファスレッドの受信用優先度を設定します。 [詳解] | |
static void | SetTransportBufferThreadSendPriority (qUnsignedInt priority) |
トランスポートバッファスレッドの送信用優先度を設定します。 [詳解] | |
static void | SetWellKnownPortNumber (qUnsignedInt16 uiWellKnownPort) |
既知ポート番号を設定します。 [詳解] | |
タイムアウトや Transport に関する各種設定を行うためのクラスです。 このクラスは接続/切断/NAT トラバーサルのタイムアウトや、Transport のチューニングパラメータを設定します。
anonymous enum |
PacketHistoryBundling用のパケット数の統計種別値
GetPacketHistoryBundlingPacketCounts()が返す配列の添え字、 GetPacketHistoryBundlingPacketCount()の引数として利用する値です。
|
static |
NAT トラバーサルのタイムアウト時間を取得します。
|
static |
NAT トラバーサルのタイムアウト時間を設定します。 ゲームに参加できる最大人数×[3000-5000]を目安に設定してください。
[in] | o | タイムアウトをミリ秒単位で指定します。 |
|
static |
|
static |
|
static |
トランスポートバッファスレッドの受信用スレッドの優先度を返します。
|
static |
トランスポートバッファスレッドの送信用と受信用のスレッド優先度をまとめて設定します。
[in] | priority | 優先度 |
|
static |
トランスポートバッファスレッドの受信用優先度を返します。
|
static |
トランスポートバッファスレッドの受信用優先度を設定します。
[in] | priority | 優先度 |
|
static |
トランスポートバッファスレッドの送信用優先度を返します。
|
static |
トランスポートバッファスレッドの送信用優先度を設定します。
[in] | priority | 優先度 |
|
static |
トランスポートバッファスレッドが利用する CPU の コア番号を設定します。
DEFAULT_TRANSPORT_BUFFER_CORE_NO が、デフォルト値です。 CTR では、デフォルト値を使用した場合は CORE_NO_USE_PROCESS_VALUE が設定されます。
SDK 3.0 以降の CTR では、1 を指定することによりシステムコアを選択できます。 システムコアの利用の際には、nn::os::CTR::SetApplicationCpuTimeLimit() で、CPU時間を割り当てる必要があります。 システムコアの利用は、動作保証外です。
[in] | no | CPU コア番号 |
|
static |
トランスポートバッファスレッドが利用する CPU の コア番号を取得します。
|
static |
名前解決用スレッドの優先度を返します。
|
static |
名前解決用スレッドの優先度を設定します。
[in] | priority | 優先度 |
|
static |
名前解決用スレッドが利用する CPU の コア番号を設定します。
DEFAULT_NAME_RESOLVE_THREAD_CORE_NO が、デフォルト値です。 CTR では、デフォルト値を使用した場合は CORE_NO_USE_PROCESS_VALUE が設定されます。
SDK 3.0 以降の CTR では、1 を指定することによりシステムコアを選択できます。 システムコアの利用の際には、nn::os::CTR::SetApplicationCpuTimeLimit() で、CPU時間を割り当てる必要があります。 システムコアの利用は、動作保証外です。
[in] | no | CPU コア番号 |
|
static |
名前解決用スレッドが利用する CPU の コア番号を取得します。
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
過去に送られたパケットをバンドリングして再送するために、保持する最大パケット数を返します。
|
static |
過去に送られたパケットをバンドリングして再送する時に、同時にバンドルする最大パケット数を返します。
|
static |
|
static |
過去に送られたパケットをバンドリングされなかったパケットを強制再送するまでの保留時間
|
static |
過去に送られたパケットバンドリングする時の、パケットの上限サイズを返します。
|
static |
バンドリングされたパケット数の統計値を返します。(デバッグ用)
enum PacketHistoryCountを要素に持つ配列ポインタを返します。
|
static |
バンドリングされたパケット数の統計値を返します。(デバッグ用)
[in] | phc | PacketHistoryCount統計種別値を指定します。 |
|
static |
過去に送られたパケットをバンドリングして再送する機能をON/OFFします
複製オブジェクトの新規パケット送信時に、送信先が同じ過去に送られたパケットを一つのパケットに含めて送信します。 Unreliableパケットの到達性向上につながります。最低1回は再送信されることを保証するため、バンドリングされる契機がなくても、 1回は再送信します。Unreliableパケットに関しては、常にバンドリングされて、 Reliableパケットに関しては、EnableReliablePacketHistoryBundlingの指定に従います。 パケットのペイロードサイズが、1364バイト以上にはバンドリングされることはありません。
パケット数がすくない場合には、パケットを送信する機会を増やすため、 nn::nex::Stream::GetSettings().GetBundling().Disable(); (バンドリングなし)と設定する必要があります。 パケット数が多い場合には、負荷を下げるため、 nn::nex::Stream::GetSettings().GetBundling().Enable(0); (タイムアウトなしで、バッファに溜まっているパケットをバンドリングする) と設定する必要があります。
[in] | b | バンドリングするか設定します。デフォルトは、OFF(False)です。 |
|
static |
過去に送られたReliableパケットをバンドリングして再送するか指定します。
[in] | b | Reliableパケットをバンドリングするか設定します。デフォルトは、ON(True)です。 |
|
static |
過去に送られたUnreliableパケットをバンドリングして再送するか指定します。
[in] | b | Unreliableパケットをバンドリングするか設定します。デフォルトは、ON(True)です。 |
|
static |
過去に送られた DO のパケットをバンドリングして再送するか指定します。
DO のパケットに対するバンドリングを無効にすると、 DirectStream のパケットのみが バンドリングの対象になります。
DO のデータセットの同期だけでなく、RMC も指定の対象となることに注意してください。
[in] | b | DO のパケットをバンドリングするか設定します。デフォルトは、ON(True)です。 |
|
static |
過去に送られたパケットをバンドリングして再送するためにパケットを保持する時間を設定します。
[in] | t | 保持時間をmsec単位で設定します。 |
|
static |
過去に送られたパケットをバンドリングして再送するために、保持する最大パケット数を設定します。
[in] | n | 最大パケット数 |
|
static |
過去に送られたパケットをバンドリングして再送する時に、同時にバンドルする最大パケット数を設定します。
[in] | n | 最大パケット数 |
設定する値は、1+ Stream::GetSettings().GetBundling().GetMaxUnreliableBundlingPackets()以上でないと、 伝送効率が悪くなります。 伝送スループットを調整する場合には、SetPacketHistoryBundlingMaxRetransmitCountsの方が調整しやすいです。
|
static |
過去に送られたパケットをバンドリングして再送する最大再送回数します。
強制再送も1回とカウントされます。
[in] | n | 最大再送回数 |
|
static |
過去に送られたパケットをバンドリングされなかったパケットを強制再送するまでの保留時間を設定します。
強制再送により最低1回送信されることが保証されます。GetPacketHistoryBundlingHoldingTimeより大きい値の場合は、強制再送されません。
[in] | timeout | 保留時間[msec] インターネット通信の場合は、往復遅延時間が100msec~133msecに値が集中するので、133msecより大きい値を推奨します。 |
|
static |
過去に送られたパケットをバンドリングする時の、バンドリング上限サイズを設定します。デフォルトは1364です。
[in] | bytes | 上限サイズ[byte] |
|
static |
Unreliable通信において、リオーダリングもしくは重複発生パケットをドロップする機能をON/OFFします。
パケットが届く順番がおかしくなってしまう、同じパケットが何度か届く問題を解消し、パケットの順番を保証します。 届く順番がおかしいパケットに関しては、ロスとなり、順番入れ替えを行いません。
EnablePacketHistoryBundling=trueの時には、このフラグにかかわらず、リオーダリングもしくは重複パケットはドロップされます
[in] | b | ドロップするか設定します。デフォルトは、OFF(False)です。 |
|
static |
Unreliable通信において、リオーダリングもしくは重複発生パケットをドロップする機能のON/OFFを返します。
パケットが届く順番がおかしくなってしまう、同じパケットが何度か届く問題を解消し、パケットの順番を保証します。 届く順番がおかしいパケットに関しては、ロスとなり、順番入れ替えを行いません。
EnablePacketHistoryBundling=trueの時には、このフラグにかかわらず、リオーダリングもしくは重複パケットはドロップされます
|
static |
マスター経由通信履歴の更新間隔を設定します。
[in] | ui | 更新間隔[msec] |
|
static |
マスター経由通信履歴の更新間隔を取得します。
|
static |
マスター経由通信履歴の生存時間を設定します。
StreamSettings::GetMaxSilenceTime() で取得した沈黙時間の2倍程度の値に設定してください。 マスター経由通信を持つステーション同士がここで設定した時間分通信しなかった場合、その通信は Session::GetNumOfRoutingConnections() 及び Station::GetNumOfRoutingConnections() でカウントされません。
[in] | ui | 生存時間[msec] |
|
static |
マスター経由通信履歴の生存時間を取得します。
|
static |
マスター経由通信の数を制限します。
マスター経由通信の数を制限します。 この制限値を超えるマスター経由の通信は、転送せずに破棄されます。 マスター経由通信の数を制限することで、マスター経由通信が一定数に収まるネットワークを構築することができます。 0を設定すると、制限なしとなります。初期値は0、制限なしです。 現在のマスター経由通信の数は、Session::GetNumOfRoutingConnections で取得できます。
[in] | ui | 制限数 |
|
static |
マスター経由通信の制限数を取得します。
|
static |
既知ポート番号を設定します。
デフォルトの既知ポート番号は9103ですが、この関数でポート番号を変更できます。 既知ポートが利用できない場合、システムはdynamic port (49152 ~ 65535)をオープンします。 NEX の Core オブジェクトを生成する前にこの関数を呼ぶことで、デフォルトの既知ポート番号を変更できます。 通常、既知ポート番号を変更する必要はありませんが、別アプリケーションが同一のポート番号を 使用しているとき(複数のセッションを同一のステーションで作成する場合など)、ポート番号の 衝突を回避するためにこの関数を利用できます。
[in] | uiWellKnownPort | 設定するポート番号。デフォルト値は9103です。 |
|
static |
OutputEmulationDevice* nn::nex::RootTransport::GetOutputEmulationDevice | ( | ) |
出力ネットワークエミュレータデバイスを取得します。[デバック用]
InputEmulationDevice* nn::nex::RootTransport::GetInputEmulationDevice | ( | ) |
入力ネットワークエミュレータデバイスを取得します。[デバック用]
|
static |
RootTransportのインスタンスを取得します。