機能詳細(高速・高効率通信)
#
通信方式選択機能ご利用環境と目的に合わせて、以下の接続方式と使用するプロトコルの組み合わせで、多様な通信方式を選択できます。
接続方式
- 「シングル接続方式」
- 「多重接続方式」
使用プロトコル
- TCP
- HpFP(UDP方式・独自プロトコル)
- WebSocket(SSL/TLS)
- WebSocket(平文通信)
「シングル接続方式」とは、1つの通信に対して1つのセッションを作る接続方式です。
「多重接続方式」とは、1つの通信に対して複数のセッションを作る接続方式です。シングル接続での通信性能限界である20Gbpsを超えて通信を行うことが可能です。100Gbpsを超えるような広帯域ネットワークの帯域を最大限使用したい場合などに選択します。
選択できる通信方式と適する環境
接続方式 | 使用するプロトコル | 説明 | 適する環境 |
---|---|---|---|
シングル接続方式 | TCP | 一般的なTCPによる通信方式 | 低遅延・低パケットロス環境 |
HpFP(UDP方式) | 弊社独自開発の通信方式 | 高遅延・高パケットロス環境 | |
WebSocket(SSL/TLS,平文通信) | WebSocketによる通信方式 | 低遅延・低パケットロス環境、ファイアウォールなどによりHTTP/HTTPSの通信しか許可されていない環境 | |
多重接続方式 | TCP | 一般的なTCPによる通信方式 | 広帯域ネットワークまたは、遅延・低パケットロス環境 |
HpFP(UDP方式) | 弊社独自開発の通信方式 | 広帯域ネットワークかつ、高遅延・高パケットロス環境 | |
WebSocket(SSL/TLS,平文通信) | WebSocketによる通信方式 | 広帯域ネットワークまたは、遅延・低パケットロス環境。ファイアウォールなどによりHTTP/HTTPSの通信しか許可されていない環境 |
※プロトコルとしてTCP/WebSocketを選択した場合は、別途弊社製品「RAPICOM seed」を組み合わせることで高遅延・高パケットロス環境に適した高速ファイル転送を利用できます。
関連オプション
コマンド | 短縮名 | オプション名 | 概略 |
---|---|---|---|
hcp/hsync/hrm/hcp-ls/hmkdir/hpwd/hmv/hln/hchmod/hchown | hpfp | HpFPプロトコルの使用 | |
wss | WebSocketプロトコル(SSL/TLS)の使用 | ||
udp | ポート分離型UDP (HpFP)プロトコルの使用(廃止予定) | ||
ws | WebSocketプロトコル(平文通信)の使用 | ||
ws-proxy | プロキシサーバの指定(WebSocketプロトコル使用時) | ||
hcp/hsync | mcd | 多重接続数の指定 |
関連設定項目
分類 | 項目名 | 内容 |
---|---|---|
サーバ設定項目 | TCPListenAddress | TCPサービス待機アドレスやポート番号などの設定 |
HPFPListenAddress | HpFPサービス待機アドレスやポート番号などの設定 | |
UDPListenAddress | HpFPポート分離型サービス待機アドレスやポート番号などの設定(廃止予定) | |
WSSListenAddress | WebSocket(SSL/TLS)サービス待機アドレスやポート番号などの設定 | |
WSSOptions | OpenSSLオプションの指定(WebSocket(SSL/TLS)通信時) | |
WSSCipherSuites | OpenSSLのCipher Suites オプション指定(WebSocket(SSL/TLS)通信時、TLS 1.3で使用) | |
WSSCipherList | OpenSSLのCipher List オプション指定(WebSocket(SSL/TLS)通信時、TLS 1.2 以前で使用) | |
WSListenAddress | WebSocket(平文通信)サービス待機アドレスやポート番号などの設定 | |
ListenServiceBonding | 複数サービスのボンディング設定(多重接続時) | |
クライアント設定項目 | WSSOptions | OpenSSLオプションの指定(WebSocket(SSL/TLS)通信時) |
WSSCipherSuites | OpenSSLのCipher Suites オプション指定(WebSocket(SSL/TLS)通信時、TLS 1.3で使用) | |
WSSCipherList | OpenSSLのCipher List オプション指定(WebSocket(SSL/TLS)通信時、TLS 1.2 以前で使用) |
#
多数ファイル一括転送HCP toolsでは、ファイルリストや特定パターンを指定することで、多数ファイルを一括転送することができます。
関連オプション
コマンド | 短縮名 | オプション名 | 概略 |
---|---|---|---|
hcp | g | regex | 正規表現使用(ワイルドカードの適用除外) |
hcp | f | source-file | ソースファイルリストを指定してコピー |
#
輻輳制御利用環境・目的に合わせて、以下の輻輳制御モードを選択することができます。
輻輳制御モード | 名称 | 省略表記 | 説明 |
---|---|---|---|
Fair Mode | 公平モード | F | 他のトラフィックと帯域の使用量が公平になるモード |
Modest Mode | 消極モード | M | 他のトラフィックを優先し空いている帯域のみを使用するモード |
Fair Fast-Start Mode | 高速立ち上げモード | S | Fair Mode(公平モード)の動作に通信開始直後の立ち上げの高速化を加えたモード |
Aggressive Mode | 積極モード | A | 積極的に回線帯域の限界近くまでスループットを上昇させるモード |
輻輳制御モードのAggressiveモードは実験的機能です。
10Gbps以上の帯域での通信など、処理負荷が大きくなる状況において、パケットロスが発生して性能低下が生じる場合があります。特に、マルチチャネル機能を使用している場合は、NICのRSS機能によるCPUコアの割り当ての偏りによって、スループットが不安定になることがあります。そのような環境ではFairモードを使用するようにしてください。
関連オプション
コマンド | 短縮名 | オプション名 | 概略 |
---|---|---|---|
hcp/hsync/hrm/hcp-ls/hmkdir/hpwd/hmv/hln/hchmod/hchown | hpfp-cong | 輻輳制御モードの指定(HpFPプロトコル使用時) |
#
通信データ圧縮機能データの転送時間を短縮するために、転送するファイルのデータをパケット単位で圧縮することが可能です。データ圧縮の処理速度より転送速度の方が遅い回線をご利用の場合に有効です。また、圧縮レベルの指定を行うことも可能です。
関連オプション
コマンド | 短縮名 | オプション名 | 概略 |
---|---|---|---|
hcp | z | compress | 転送データブロックの圧縮送信 |
関連設定項目
分類 | 項目名 | 内容 |
---|---|---|
サーバ設定項目 | HeaderCompress | ヘッダブロックの圧縮設定(予約) |
ContentCompress | ContentCompress コンテントブロックの圧縮設定(予約) | |
クライアントコマンド共通項目 | CompressLevel | 圧縮レベルの指定 |
HeaderCompress | ヘッダブロックの圧縮設定 | |
ContentCompress | コンテントブロックの圧縮設定 |
#
データフロー制御各種データフロー制御により利用環境に合わせたチューニングが可能です。
帯域制御
帯域のシェーピングを行うことで、転送レートの安定化を図ります。
本機能は、TCP/HpFP(UDP)層とアプリケーション層の間で帯域制限を行います。アプリケーション層で制限が掛かります(トランスポート層の通信バッファや伝送制御などの状態は反映されません)。
サーバ側は、システム全体と接続単位で設定することが可能です。
各設定項目で5Gbpsを超える値を設定すると、無制限(シェーピングなし)になります。
関連オプション
コマンド | 短縮名 | オプション名 | 概略 |
---|---|---|---|
hsync | bwlimit | 通信帯域制限 |
関連設定項目
分類 | 項目名 | 内容 |
---|---|---|
サーバ設定項目 | MaxTotalReceiveRate | 受信帯域制限(システム全体) |
MaxTotalSendRate | 送信帯域制限(システム全体) | |
MaxReceiveRatePerConnection | 受信帯域制限(接続単位) | |
MaxSendRatePerConnection | 送信帯域制限(接続単位) | |
クライアントコマンド共通設定項目 | MaxReceiveRate | 受信帯域制限(接続単位) |
MaxSendRate | 送信帯域制限(接続単位) |
ファイルロック機能
転送処理中に行われるファイルデータ読み書き時のファイルアクセスに対して、ファイルロックを行う機能です。
ファイルロックとは、ファイルへのアクセスを一時的に1人のユーザーや1つのプロセスに制限する機構のことです。
本機能を使用する際は、ファイルロックを獲得してからファイルの読み書きを行います。Linuxプラットフォームではアドバイザリロックを使用するため、本ソフトウェア間もしくは同じロック機構を使用するソフトウェアの間で有効に働きます。
NFS(Network File System)などのネットワークファイルシステムでハングアップが発生する場合やファイルロック獲得時にエラーが発生する場合は、本機能を使用しない設定にします。その場合は、hcpコマンドで指定する宛先の重複にご注意ください。
また、ファイルロックの獲得試行回数や要求間隔を設定することもできます。
関連設定項目
分類 | 項目名 | 内容 |
---|---|---|
サーバ設定項目 | FileLock | ファイルロック使用設定 |
FileLockTrials | 獲得試行回数の設定 | |
FileLockTrialInterval | 要求間隔(秒)の設定 | |
クライアントコマンド共通設定項目 | FileLock | ファイルロック使用設定 |
FileLockTrials | 獲得試行回数の設定 | |
FileLockTrialInterval | 要求間隔(秒)の設定 |
一時ファイル保存機能(アトミック(不可分)ファイル保存)
ファイル転送時のファイル書き込みの際に、一時ファイルを経由した二段階保存を行います。
安全にファイルの書き込みを行うための機能です。
Linux版では一時ファイルを生成する際に、最終的な書込み先に書込みを行う権限があるか検査されます。 また、再開機能(-rオプション)を使用する場合、途中まで転送していたファイルは先頭から再度転送しなおします。
hcpコマンドのoverwrite-als-temp-fileオプションを用いて、アトミックライクな保存で既に存在する一時ファイルを上書きするように要求することもできます。 このオプションを指定せずに一時ファイルが既に存在する場合は、そのファイルの転送はエラーと判定され中断されます。 また、サーバ設定項目AtomicLikeSavingRejectOverwriteRequestがyesの場合は、このオプションが指定されていてもサーバ上で既に存在する一時ファイルの上書きは拒否されます。
一時ファイル保存を実行するファイルサイズの閾値を指定することができます。その場合、指定したサイズ未満のファイルにはこの保存方法は適用されません。0バイトを指定した場合は、全てのファイルに適用されます。
関連オプション
コマンド | 短縮名 | オプション名 | 概略 |
---|---|---|---|
hcp | overwrite-als-temp-file | 一時ファイルへの上書き要求 |
関連設定項目
分類 | 項目名 | 内容 |
---|---|---|
サーバ設定項目 | AtomicLikeSaving | 一時ファイルを経由する二段階保存の設定 |
AtomicLikeSavingThreshold | 実行するファイルサイズの閾値指定 | |
AtomicLikeSavingRejectOverwriteRequest | 一時ファイル上書き要求の拒否 | |
クライアントコマンド共通設定項目 | AtomicLikeSaving | 一時ファイルを経由する二段階保存の設定 |
AtomicLikeSavingThreshold | 実行するファイルサイズの閾値指定 |
データバッファ設定
HCP toolsは、汎用メインメモリの一部にデータバッファ用の領域を設けます。この割り当てるバッファサイズや転送処理の際に使用するバッファサイズを設定する機能です。
サーバ側で割り当てるバッファサイズは、システム全体と接続単位のそれぞれを設定することができます。
その他、TCP通信時に指定する送信バッファのサイズ(TCPServiceSocketSendBuffer)やHpFPサービスで使用する拡張バッファのサイズ(UDPServiceExtensionBufferSize)を設定することができます。
TCP通信時に指定する送信バッファのサイズ(TCPServiceSocketSendBuffer)は、100G環境などでTCP通信性能のチューニングが必要な場合などに設定します。通常は変更する必要はありません。
HpFPセッションでは、遅延やロス及び通信量の増加などに伴い通信用のバッファを指定されたサイズ(HPFPListenAddressまたはUDPListenAddressのhpfp_sndbuf及びhpfp_rcvbuf)に拡張します。HpFPサービスで使用する拡張バッファのサイズ(UDPServiceExtensionBufferSize)は、この拡張するバッファの合計容量を指定された値で制限します。0を指定した場合は、この制限を行いません。 また、バッファの初期サイズ(拡張される前のバッファのサイズ)は1MBです。
LinuxのOOM(Out Of Memory) Killerが動作する場合の対処
Linuxには、OSの機能として、プロセスのメモリ消費の傾向を監視してプロセスを強制終了(KILLシグナル)する機構が備わっています。 サーバ設定項目の MaxTotalBufferSizeやクライアントコマンド共通項目のMaxBufferSize の設定をシステムのメモリサイズに対して大きく取った場合(同メモリサイズ未満の場合を含む)、この機構による強制終了の対象となる場合があります。 本症状が発生する場合は、より小さい値に変更する、システムメモリを拡張するなどの対処を行います。
関連オプション
コマンド | 短縮名 | オプション名 | 概略 |
---|---|---|---|
hcp/hsync/hrm/hcp-ls/hmkdir/hpwd/hmv/hln/hchmod/hchown | hpfp-sndbuf | 送信バッファサイズの指定(HpFPプロトコル使用時) | |
hpfp-rcvbuf | 受信バッファサイズの指定(HpFPプロトコル使用時) |
関連設定項目
分類 | 項目名 | 内容 |
---|---|---|
サーバ設定項目 | HPFPListenAddress | HpFPサービス待機アドレスやポート番号などの設定 |
UDPListenAddress | HpFPポート分離型サービス待機アドレスやポート番号などの設定(廃止予定) | |
MaxTotalBufferSize | バッファメモリ割当サイズ制限(システム全体) | |
MaxBufferSizePerConnection | バッファメモリ割当サイズ制限(接続単位) | |
TCPServiceSocketSendBuffer | 送信バッファサイズ設定(TCP通信時) | |
UDPServiceExtensionBufferSize | 拡張バッファサイズ設定(HpFPサービス使用時) | |
クライアントコマンド共通項目 | MaxBufferSize | バッファメモリ割当サイズ制限 |
UDPTransportExtensionBufferSize | 拡張バッファサイズ設定(HpFP通信使用時) | |
TCPTransportSocketSendBuffer | 送信バッファサイズ設定(TCP通信時) |
転送ファイルサイズ制限
転送するファイルサイズの上限を決める機能です。
関連設定項目
分類 | 項目名 | 内容 |
---|---|---|
サーバ設定項目 | MaxReceiveFileSize | 受信可能ファイルサイズの最大値設定 |
MaxSendFileSize | 送信可能ファイルサイズの最大値設定 | |
クライアントコマンド共通項目 | MaxReceiveFileSize | 受信可能ファイルサイズの最大値設定 |
MaxSendFileSize | 送信可能ファイルサイズの最大値設定 |
通信メッセージサイズ制御
ファイル転送の際に、実際に転送するデータ部分のサイズを設定する機能です。
HCP Toolsでは、通信を開始すると消費帯域を評価して、ファイル要求などのメッセージを複数含む「ヘッダブロック」やファイルのデータを複数含む「コンテントブロック」の形成可能なサイズを増減させます。
通信開始直後に適用するヘッダブロックの初期サイズ(InitHeaderBlockSize)やコンテントブロックの初期サイズ(InitContentBlockSize)、通信中に適用するヘッダブロックの拡張可能上限サイズ(MaxHeaderBlockSize)やコンテントブロックの拡張可能上限サイズ(MaxContentBlockSize)を設定することができます。
また、HpFPプロトコルのMSS(Maximum Segment Size)などを設定できます。
関連オプション
コマンド | 短縮名 | オプション名 | 概略 |
---|---|---|---|
hcp/hsync/hrm/hcp-ls/hmkdir/hpwd/hmv/hln/hchmod/hchown | hpfp-mss | MSS(Maximum Segment Size)の指定(HpFPプロトコル使用時) |
関連設定項目
分類 | 項目名 | 内容 |
---|---|---|
サーバ設定項目 | InitHeaderBlockSize | 転送するヘッダブロックの初期サイズ設定 |
InitContentBlockSize | 転送するコンテントブロックの初期サイズ設定 | |
MaxHeaderBlockSize | ヘッダブロックの拡張可能上限サイズ設定 | |
MaxContentBlockSize | コンテントブロックの拡張可能上限サイズ設定 | |
MaxRequestFileEntryAtOnce | 一括で送信できるファイル要求数の最大値設定 | |
クライアントコマンド共通項目 | InitHeaderBlockSize | 転送するヘッダブロックの初期サイズ設定 |
InitContentBlockSize | 転送するコンテントブロックの初期サイズ設定 | |
MaxHeaderBlockSize | ヘッダブロックの拡張可能上限サイズ設定 | |
MaxContentBlockSize | コンテントブロックの拡張可能上限サイズ設定 | |
MaxRequestFileEntryAtOnce | 一括で送信できるファイル要求数の最大値設定 |
ディスクI/O速度制御
転送処理中のディスク書き込み速度や読み込み速度の上限を設定する機能です。
SSDなどを使用する際に長時間の読み書きを高レートで行うとオーバーヒートを起こすことがあり(特に書き込み側)、それを抑制する場合などにこの設定を使用します。
関連設定項目
分類 | 項目名 | 内容 |
---|---|---|
サーバ設定項目 | MaxReadRatePerConnection | 読み込み速度の上限設定(接続単位) |
MaxWriteRatePerConnection | 書き込み速度の上限設定(接続単位) | |
クライアントコマンド共通設定項目 | MaxReadRate | 読み込み速度の上限設定(接続単位) |
MaxWriteRate | 書き込み速度の上限設定(接続単位) |
#
コード変換文字化けを防ぐために、文字コードを変換する機能です。
通信エンコードネゴシエーション
ネットワーク上でのやり取りに使用する文字コードを調整します。
サーバ及びクライアントコマンドの設定ファイルで、使用する文字列のエンコーディング方式を指定します。指定したエンコーディング方式は、サーバ-クライアント間で交換するファイルパスなどの文字列に適用されます。実際の通信時にどのエンコーディング方式が使用されるかは、サーバの設定とクライアントの設定を併せて評価し、一致した方式を使用します。
関連設定項目
分類 | 項目名 | 内容 |
---|---|---|
サーバ設定項目 | TransportCharEncoding | 通信時に使用できる文字列エンコーディング方式の設定 |
クライアントコマンド共通項目 | TransportCharEncoding | 通信時に使用する文字列エンコーディング方式の設定 |
ホスト文字エンコード対応
OSが扱う文字コードからHCP toolsが処理に使用する文字コードへ変換する機能です。
ホストOSで使用している文字列のエンコーディング方式を指定することにより、文字化けを防ぎます。ファイルパスなどをソフトウェアの内部文字列表現へ変換する際に使用される機能です。
関連設定項目
分類 | 項目名 | 内容 |
---|---|---|
サーバ設定項目 | HostEncoding | ホストで使用されている文字列エンコーディング方式の指定 |
クライアントコマンド共通項目 | HostEncoding | ホストで使用されている文字列エンコーディング方式の指定 |