Skip to main content

Function Detail (Fast and Highly Efficient Communication)

Transport Selection#

Various transmission methods are available to suit different environments and purposes by combining the following connection methods and protocols.

Connecting Method

  • Single Connection Mode
  • Multiple Connection Mode

Available Protocols

  • TCP
  • HpFP (in UDP transport developed by us)
  • WebSocket (SSL/TLS)
  • WebSocket (no SSL/TLS)

In Single Connection Mode, the software creates a session for a single connection.

In Multiple Connection Mode, it creates multiple sessions for a single connection. This mode is useful for making file transfers on wide band networks over 10Gbps up to 100Gbps since the performance of the single connection is up to 20Gbps or less.

Selectable Connection Methods and Suitable Environments

Connection methodProtocolDescriptionEffective environment
Single-connectionTCPGeneral TCP communicationEnvironments having low latency and low packet loss
HpFP(UDP)house-developed communication methodEnvironments having high latency and high packet loss
WebSocket (SSL/TLS, cleartext)WebSocket communication methodEnvironments having both of low latency and low packet loss, broadband networks or restriction that only HTTP/HTTPS communication is permitted
Multiple-connectionTCPGeneral TCP communicationEnvironments having both of latency and low packet loss or broadband networks
HpFP(UDP)house-developed communication methodEnvironments having both of high latency and high packet loss or broadband networks
WebSocket(SSL/TLS, cleartext)WebSocket communication methodEnvironments having both of latency and low packet loss, broadband networks or restriction that only HTTP/HTTPS communication is permitted

* When choosing the TCP/WebSocket protocol, combined with RAPICOM seed, another house-developed product, achieves accelerated transfer.

Related Options

CommandShort NameOption NameDescription
hcp/hsync/hrm/hcp-ls/hmkdir/hpwd/hmv/hln/hchmod/hchownhpfpUse the HpFP protocol
wssUse the WebSocket protocol over SSL/TLS
udpUse the UDP(HpFP) protocol (bi-port form, deprecated)
wsUse the WebSocket protocol
ws-proxySet the proxy server in the WebSocket protocol
hcp/hsyncmcdSet the number of maximum connections per session

Related Configurations

CategoryConfiguration NameDescription
Server ConfigurationTCPListenAddressTCP service listen address setting
HPFPListenAddressHpFP service listen address
UDPListenAddressHpFP service listen address (bi-port type, deprecated)
WSSListenAddressWebSocket(SSL/TLS) service listen address
WSSOptionsWSS options
WSSCipherSuitesWSS TLS 1.3 Cipher Suites
WSSCipherListWSS TLS 1.2 or earlier Cipher Suites
WSListenAddressWebSocket(no SSL/TLS) service listen address
ListenServiceBondingListen service bonding
Client ConfigurationWSSOptionsWSS options
WSSCipherSuitesWSS TLS 1.3 Cipher Suites
WSSCipherListWSS TLS 1.2 or earlier Cipher Suites

Transfer Bundle of Files#

HCP tools can transfer a bundle of files by specifying file list or type to send together.

Related Options

CommandShort NameOption NameDescription
hcpgregexFile names recognized as regular expressions (but not in wildcard manner)
hcpfsource-fileSource file list

Congestion Control#

The following congestion control modes are prepared for each environment and purpose of use.

Congestion Control ModeAbbreviationDescription
Fair ModeFfairly shares the bandwidth with other protocols such as TCP/IP.
Modest ModeMemits packets only when the bandwidth has enough capacity to send.
Fair Fast-Start ModeScommunicates at high speed initially but behaves as the fair mode after that.
Aggressive ModeAaccelerates the throughput aggressively up to the maximum line bandwidth.

Aggressive Mode is an experimental function.

When processing load increases by communications over 10 Gbps, the performance may drop by packet loss. Especially when using the multi-channel function, the CPU core is not evenly allocated by the RSS function of NIC, which may cause unstable throughput. In those cases, Fair mode is recommended.

Related Options

CommandShort NameOption NameDescription
hcp/hsync/hrm/hcp-ls/hmkdir/hpwd/hmv/hln/hchmod/hchownhpfp-congCongestion control modes in the HpFP protocol

Communication Data Compression Function#

Transfer data can be compressed by packet, which can shorten transmission time. This function works effectively in environments where data transmission speed is slower than the data compression speed. The compression level can be also chosen.

Related Options

CommandShort NameOption NameDescription
hcpzcompressCompress transferred data blocks

Related Configurations

CategoryConfiguration NameDescription
Server ConfigurationHeaderCompressHeader compression (reserved)
ContentCompressContent compression (reserved)
Client Common ConfigurationCompressLevelCompress level
HeaderCompressHeader compression
ContentCompressContent compression

Data Flow Control#

Various data flow controls allow for the best tuning to each environment.

  • Bandwidth control

    Shaping bandwidth makes the data-transfer rate stable.

    This function limits the bandwidth between the TCP/HpFP(UDP) layer and the application layer. Therefore, the application layer gets limited. However, the Communication buffer and the transmission control on the transport layer are not affected.

    Servers can set the configuration both on the system and on each connection.

    With over 5Gbps in each setting, the bandwidth gets unlimited, which results in no shaping.

Related Options

CommandShort NameOption NameDescription
hsyncbwlimitLimit socket I/O bandwidth

Related Configurations

CategoryConfiguration NameDescription
Server ConfigurationMaxTotalReceiveRateMaximum total receiving rate (entire system)
MaxTotalSendRateMaximum total sending rate (entire system)
MaxReceiveRatePerConnectionMaximum receiving rate (per connection)
MaxSendRatePerConnectionMaximum sending rate (per connection)
Client Common ConfigurationMaxReceiveRateMax receiving rate (by session)
MaxSendRateMax sending rate (by session)
  • File lock

    This is a file lock function that the file gets locked and inaccessible while the file data is being read or written.

    File lock is a system that temporarily confines the users and processes that can access to files.

    In the process, after the file gets locked, the file is read or written. Advisory lock is supported on the Linux platform. This function is available between this software and also other software that uses the same file lock system.

    When a hung-up happens in the network file system, such as NFS(Network File System), or an error occurs when getting a file lock, this function has to be disabled. It is also requested to make sure the destination in the hcp commands is not input double.

    And configurations of the number of maximum trials and the interval time on the file lock are also provided.

Related Configurations

CategoryConfiguration NameDescription
Server ConfigurationFileLockUse file lock
FileLockTrialsNumber of trials to lock files
FileLockTrialIntervalThe trial interval (in seconds)
Client Common ConfigurationFileLockUse file lock
FileLockTrialsNumber of trials to lock files
FileLockTrialIntervalThe trial interval (in seconds)
  • Creating Temporary File to Save (atomically file saving)

    This function performs a two-step file saving using a temporary file on writing transferred data to a file.

    It's for writing dat to files in safety.

    On the Linux versions, the write access right in the final destination is checked before creating temporary files. With the resume function (-r option), files transferred part of the way are transferred from the beginning.

    The overwrite-als-temp-file option of the hcp command requests to overwrite a temporary file which already exists. Without this option, the transferring file goes to the transfer error when a temporary file already exists. As long as AtomicLikeSavingRejectOverwriteRequest is set to yes in the server setting, even though this option is on, overwriting a temporary file which already exists is rejected.

    The configuration of a threshold in file size to enable saving files atomically is provided. The saving atomically does not cover files under the threshold. "0 bytes" means all files are covered.

Related Options

CommandShort NameOption NameDescription
hcpoverwrite-als-temp-fileAtomically overwrite a temporary file

Related Configurations

CategoryConfiguration NameDescription
Server ConfigurationAtomicLikeSavingAtomically file saving
AtomicLikeSavingThresholdThreshold for atomically file saving
AtomicLikeSavingRejectOverwriteRequestReject requests to overwriting temporary files which already exist when atomically file saving
Client Configuration (hcp)AtomicLikeSavingAtomically file saving
AtomicLikeSavingThresholdThreshold for atomically file saving
  • Data Buffer Configuration

    HCP tools setups a data buffer in a part of the general main memory for buffering transferred data. This is a function to configure size of the data buffer.

    Its configuration on the server side includes a total size on the system and a size per session.

    And configurations of a sending buffer size on TCP (TCPServiceSocketSendBuffer) and an extension buffer size of HpFP (UDPServiceExtensionBufferSize) are also provided.

    You need the option of TCPServiceSocketSendBuffer to make a performance tuning of TCP on 100G environment. No need to use in ordinary cases.

    Each HpFP transport session extends a buffer holding transferred data up to a size specified by hpfp_sndbuf or hpfp_rcvbuf on HPFPListenAddress or UDPListenAddress. '0' indicates disabling this buffer extension and the initial size before extending is 1MB.

    Workarounds when a processe is killed by Linux OOM (Out Of Memory) Killer

    As an OS mechanism, Linux monitors memory consumption trends of processes and terminates (KILL signal) processes which run out of memory. When you set the following buffer size options, e.g, MaxTotalBufferSize or MaxBufferSize, in this software to values large than system memory, Linux OOM Killer might kill the process. For fixing it you have to specify smaller buffer size values for the options or extending the system memory.

Related Options

CommandShort NameOption NameDescription
hcp/hsync/hrm/hcp-ls/hmkdir/hpwd/hmv/hln/hchmod/hchownhpfp-sndbufSet the sending buffer size for the HpFP protocol
hpfp-rcvbufSet the receiving buffer size for the HpFP protocol

Related Configurations

CategoryConfiguration NameDescription
Server ConfigurationHPFPListenAddressHpFP service listen address
UDPListenAddressHpFP service listen address (bi-port type, deprecated)
MaxTotalBufferSizeMaximum buffer allocation size (entire system)
MaxBufferSizePerConnectionMaximum buffer allocation size (per connection)
TCPServiceSocketSendBufferTCP sending buffer
UDPServiceExtensionBufferSizeHpFP service extension buffer size
Client Common ConfigurationMaxBufferSizeMaximum buffer allocation size
UDPTransportExtensionBufferSizeHpFP transport buffer size extension
TCPTransportSocketSendBufferTCP sending buffer
  • Limitation File Size to Transfer

    This is a function to set maximum sizes of files to transfer.

Related Configurations

CategoryConfiguration NameDescription
Server ConfigurationMaxReceiveFileSizeMaximum receiving file size
MaxSendFileSizeMaximum sending file size
Client Common ConfigurationMaxReceiveFileSizeMaximum receiving file size
MaxSendFileSizeMaximum sending file size
  • Communication Message Size Control

    This is a function to configure sizes of transfer data blocks made from payloads of files.

    HCP tools evaluates consumption of bandwidth after starting transfers. And it increases and decreases sizes of header blocks including messages, e.g. file requests, and content blocks including a payload data of a file subject to the evaluation.

    You can set options for that mechanisms, InitHeaderBlockSize for a initial size of the header blocks, InitContentBlockSize for a initial size of the content blocks, MaxHeaderBlock for a maximum size of the header blocks and MaxContentBlockSize for a maximum size of the content blocks.

    And a configuration of MSS (Maximum Segment Size) for HpFP protocol is also provided for the frame size control on transport.

Related Options

CommandShort NameOption NameDescription
hcp/hsync/hrm/hcp-ls/hmkdir/hpwd/hmv/hln/hchmod/hchownhpfp-mssSet MSS for the HpFP protocol

Related Configurations

CategoryConfiguration NameDescription
Server ConfigurationInitHeaderBlockSizeInitial header block size
InitContentBlockSizeInitial content block size
MaxHeaderBlockSizeMaximum header block size
MaxContentBlockSizeMaximum content block size
MaxRequestFileEntryAtOnceMax file entry request
Client Common ConfigurationInitHeaderBlockSizeInitial header block size
InitContentBlockSizeInitial content block size
MaxHeaderBlockSizeMaximum header block size
MaxContentBlockSizeMaximum content block size
MaxRequestFileEntryAtOnceMax file entry request
  • Disk I/O Speed Control

    This is a function to set maximum speeds of writing data to a disk and reading from it on file transfers.

    In some environment, long time running of reading and writing might make overheat on SSDs (especially the writing side). So this option is useful for avoiding it.

Related Configurations

CategoryConfiguration NameDescription
Server ConfigurationMaxReadRatePerConnectionDisk I/O reading rate per session
MaxWriteRatePerConnectionDisk I/O writing rate per session
Client Configuration (hcp)MaxReadRateDisk I/O reading rate per session
MaxWriteRateDisk I/O writing rate per session

String Code Conversion#

This is a function to avoid character corruption by converting strings among string codes.

  • Transport Character Encoding Negotiation

    This is a function to determine a character encoding for strings to be transferred over networks.

    Encodings to use are supposed to be specified in configuration files of the client and server. The encodings will be applied to strings, e.g. file paths exchanged between the server and client. HCP tools determines an actual encoding to use by a way that it compares configurations of the server and client and determines an encoding defined in common.

Related Configurations

CategoryConfiguration NameDescription
Server ConfigurationTransportCharEncodingTransport character encoding
Client Common ConfigurationTransportCharEncodingTransport character encoding
  • Host Character Encoding Support

    This is a function to convert strings in a string code on the operating system (host) to strings in another string code on the software processing of HCP tools.

    This function avoids character corruption by setting a string code used on the host operating system. For example, that string conversion will be applied to file paths to convert them to the software internal representation.

Related Configurations

CategoryConfiguration NameDescription
Server ConfigurationHostEncodingHost character encoding
Client Common ConfigurationHostEncodingHost character encoding