Layer5.Http.MultiClient can be used in combination with Layer5.Http.MultiServer to start multiple concurrent HTTP requests. More...
Methods | |
CumulativeConnectionLimit.Get | |
Returns the limit on the total number of connections that may be created. More... | |
CumulativeConnectionLimit.Set | |
Sets a limit on the total number of connections that may be created. More... | |
Description.Get | |
Returns a textual description of the object. | |
Duration.Get | |
Returns the flow duration. More... | |
Duration.Set requestDuration | |
Sets the maximum total duration of the flow. More... | |
Finished.Get | |
Returns true if the flow has finished or was stopped explicitly. More... | |
FlowLabel.Get | |
Returns the "Flow Label" for IPv6 flows. More... | |
FlowLabel.Set | |
Sets the flow label for IPv6 flows. More... | |
Http.Method.Get | |
Returns the HTTP request method. More... | |
Http.Method.Set | |
Sets the HTTP request method. More... | |
InitialTimeToWait.Get | |
Returns the initial time to wait value. More... | |
InitialTimeToWait.Set timeToWait | |
Sets the initial time to wait before really starting the flow. More... | |
Local.PortRange.Get | |
Returns the port range. More... | |
Local.PortRange.Set min max | |
Sets the local port range for the TCP connections. More... | |
MaximumConcurrentConnectionAttempts.Get | |
Returns the maximum number of concurrent connection attempts. | |
MaximumConcurrentConnectionAttempts.Set | |
Sets the maximum number of concurrent connection attempts. More... | |
MaximumConcurrentRequests.Get | |
Returns the maximum number of concurrent requests. More... | |
MaximumConcurrentRequests.Set numberOfRequests | |
Sets the maximum number of concurrent requests. More... | |
MaximumSegmentSize.Get | |
Returns the TCP maximum segment size. More... | |
MaximumSegmentSize.Set size | |
Sets the TCP maximum segment size. More... | |
Parent.Get | |
Returns the parent object. | |
ReceiveWindow.InitialSize.Get | |
Returns the TCP receive window. More... | |
ReceiveWindow.InitialSize.Set windowsize | |
Sets the TCP receive window. More... | |
ReceiveWindow.Scaling.Enable | |
Enables of disables the TCP window scale option. More... | |
ReceiveWindow.Scaling.IsEnabled | |
Returns if TCP window scaling is enabled or not. More... | |
ReceiveWindow.Scaling.Value.Get | |
Returns the TCP window scale value. More... | |
ReceiveWindow.Scaling.Value.Set scale | |
Sets the TCP window scale value. More... | |
Remote.Address.Get | |
Returns the remote address. More... | |
Remote.Address.Set address | |
Sets the remote address for the HTTP requests. More... | |
Remote.Port.Get | |
Returns the remote port. More... | |
Remote.Port.Set portNumber | |
Sets the remote port for the HTTP requests. More... | |
Result.Get | |
Returns the current result counters. More... | |
Result.History.Get | |
Returns the result history. More... | |
Sampling.BufferLength.Get | |
Returns the snapshot buffer length. More... | |
Sampling.BufferLength.Set | |
Configure the snapshot buffer size. More... | |
Sampling.Interval.Duration.Get intervalDuration | |
Returns the duration for the result snapshots. More... | |
Sampling.Interval.Duration.Set | |
Sets the duration of the result snapshots. More... | |
Session.Duration.Get | |
Returns the session duration expressed in nanoseconds. More... | |
Session.Duration.Set requestDuration | |
Sets the duration for the individual HTTP requests. More... | |
Session.RateLimit.Get | |
Returns the rate limit for the individual HTTP requests. More... | |
Session.RateLimit.Set | |
Sets a rate limit for the individual HTTP requests. More... | |
Session.Size.Get | |
Returns the session size. More... | |
Session.Size.Set requestSize | |
Sets the size for the individual HTTP requests. More... | |
Size.Get | |
Returns the size limit. More... | |
Size.Set requestSize | |
Puts a size limit on the total number of bytes that can be sent. More... | |
SlowStartThreshold.Get | |
Returns the initial slow-start threshold value used by TCP. More... | |
SlowStartThreshold.Set ssthresh | |
Set the initial slow-start threshold value used by TCP. More... | |
Start | |
Starts the flow. More... | |
Status.Get | |
Returns the status of the flow. More... | |
Stop | |
Stops the flow. More... | |
Tcp.CongestionAvoidance.Algorithm.Get | |
Returns the preferred TCP Congestion Avoidance Algorithm. More... | |
Tcp.CongestionAvoidance.Algorithm.Set congestionAvoidanceAlgorithm | |
Configure the preferred TCP Congestion Avoidance Algorithm. More... | |
Tcp.Prague.Enable | |
Enables TCP Prague congestion control for L4S. | |
Tcp.Prague.IsEnabled | |
Returns if TCP Prague congestion control is enabled or not. | |
TypeOfService.Get | |
Returns the 'Type Of Service' or 'Traffic Class' value. | |
TypeOfService.Set | |
Sets the 'Type Of Service' or 'Traffic Class' used at the IP layer. More... | |
Layer5.Http.MultiClient can be used in combination with Layer5.Http.MultiServer to start multiple concurrent HTTP requests.
When starting the flow, the configured number of HTTP requests will be started. Each time a request is finished (succesfully or unsuccesfully) it will be replaced by a new request. This is repeated until one of the configured stop conditions is reached. Possible stop conditions are: total duration, total size or number of connections created. If no stop conditions are configured then the flow continues indefinitely.
Main parameters:
Layer5.Http.MultiClient::CumulativeConnectionLimit.Get |
Layer5.Http.MultiClient::CumulativeConnectionLimit.Set |
Sets a limit on the total number of connections that may be created.
Once the total number of connection attempts has reached the configured limit no new connections will be created. If there are no active connections at that time then flow immediately enters Finished state. Otherwise the flow remains in Running state until all remaining requests have finished.
A value of zero indicates no limit (infinite number of connections may be created).
Allow 100 connection attempts in total
Layer5.Http.MultiClient::Duration.Get |
Layer5.Http.MultiClient::Duration.Set | requestDuration | ||
Layer5.Http.MultiClient::Finished.Get |
Layer5.Http.MultiClient::FlowLabel.Get |
Layer5.Http.MultiClient::FlowLabel.Set |
Layer5.Http.MultiClient::Http.Method.Get |
Layer5.Http.MultiClient::Http.Method.Set |
Sets the HTTP request method.
There are 2 possible values:
Layer5.Http.MultiClient::InitialTimeToWait.Get |
Layer5.Http.MultiClient::InitialTimeToWait.Set | timeToWait | ||
Sets the initial time to wait before really starting the flow.
This can be used if you want to different flows to start at different times.
timeToWait | Time to wait before the flow will start. |
Initial Time to wait of 60 seconds
Initial Time to wait of 60 seconds expressed in nanoseconds
Initial Time to wait of 60 seconds expressed in minutes
Layer5.Http.MultiClient::Local.PortRange.Get |
Layer5.Http.MultiClient::Local.PortRange.Set | min max | ||
Layer5.Http.MultiClient::MaximumConcurrentConnectionAttempts.Set |
Sets the maximum number of concurrent connection attempts.
This method limits maximum number of requests that can be in the TCP SYN-SENT state.
Allow 100 concurrent connection attempts:
Layer5.Http.MultiClient::MaximumConcurrentRequests.Get |
Layer5.Http.MultiClient::MaximumConcurrentRequests.Set | numberOfRequests | ||
Sets the maximum number of concurrent requests.
The flow will start the requested number of HTTP requests and then maintain this number by starting a new request every time a request has finished or failed.
numberOfRequests | Maximum number of concurrent requests. |
Allow 100 concurrent HTTP requests:
Layer5.Http.MultiClient::MaximumSegmentSize.Get |
Layer5.Http.MultiClient::MaximumSegmentSize.Set | size | ||
Layer5.Http.MultiClient::ReceiveWindow.InitialSize.Get |
Layer5.Http.MultiClient::ReceiveWindow.InitialSize.Set | windowsize | ||
Layer5.Http.MultiClient::ReceiveWindow.Scaling.Enable |
Enables of disables the TCP window scale option.
Window scaling window sizes that are larger than 65535 bytes.
ByteBlower.Exception.InvalidValue | when the value is not an integer or true or false |
To enable window scaling
Layer5.Http.MultiClient::ReceiveWindow.Scaling.IsEnabled |
Layer5.Http.MultiClient::ReceiveWindow.Scaling.Value.Get |
Returns the TCP window scale value.
The TCP window scale option is an option to increase the receive window size allowed in Transmission Control Protocol above its former maximum value of 65,535 bytes. This TCP option, along with several others, is defined in IETF RFC 1323.
Returns:
3
Layer5.Http.MultiClient::ReceiveWindow.Scaling.Value.Set | scale | ||
Sets the TCP window scale value.
The TCP window scale option is an option to increase the receive window size allowed in Transmission Control Protocol above its former maximum value of 65,535 bytes. This TCP option, along with several others, is defined in IETF RFC 1323.
scale | Integer (0-8), which is used for bitwise shifting. |
ByteBlower.Exception.InvalidValue.Integer | when the value is not an integer |
Layer5.Http.MultiClient::Remote.Address.Get |
Layer5.Http.MultiClient::Remote.Address.Set | address | ||
Sets the remote address for the HTTP requests.
address | The destination address for the HTTP requests. |
This should be the address of the Layer5.Http.MultiServer.
Layer5.Http.MultiClient::Remote.Port.Get |
Layer5.Http.MultiClient::Remote.Port.Set | portNumber | ||
Sets the remote port for the HTTP requests.
portNumber | The destination port for the HTTP requests. |
This should be the port that the Layer5.Http.MultiServer is listening to.
Layer5.Http.MultiClient::Result.Get |
Returns the current result counters.
Returns:
<Layer5.Http.MultiResultSnapshot object>
Layer5.Http.MultiClient::Result.History.Get |
Returns the result history.
This method returns a Layer5.Http.MultiResultHistory Object. This will contain the Cumulative and the Interval counters over time.
Returns:
<Layer5.Http.MultiResultHistory object>
Layer5.Http.MultiClient::Sampling.BufferLength.Get |
Layer5.Http.MultiClient::Sampling.BufferLength.Set |
Configure the snapshot buffer size.
ByteBlower server stores the snapshots in a circular buffer before they are transferred to the client. If the buffer overflows then the oldest snapshot is overwritten. This method configures the maximum size of the buffer.
Layer5.Http.MultiClient::Sampling.Interval.Duration.Get | intervalDuration | ||
Layer5.Http.MultiClient::Sampling.Interval.Duration.Set |
Layer5.Http.MultiClient::Session.Duration.Get |
Layer5.Http.MultiClient::Session.Duration.Set | requestDuration | ||
Sets the duration for the individual HTTP requests.
Each request will run for the configured duration. This duration will automatically be reduced near the end of the flow so that the global time limit (see Layer5.Http.MultiClient::Duration.Set) is not exceeded.
A value of zero indicates unlimited duration.
requestDuration | The duration of each HTTP request. |
Configure each request to run for 10 seconds
Layer5.Http.MultiClient::Session.RateLimit.Get |
Layer5.Http.MultiClient::Session.RateLimit.Set |
Layer5.Http.MultiClient::Session.Size.Get |
Layer5.Http.MultiClient::Session.Size.Set | requestSize | ||
Sets the size for the individual HTTP requests.
Each new started request will send or receive the configured size in bytes.
A value of zero indicates unlimited size.
requestSize | The payload size in bytes of each HTTP request. |
Configure each request to send 15000 bytes:
Layer5.Http.MultiClient::Size.Get |
Layer5.Http.MultiClient::Size.Set | requestSize | ||
Puts a size limit on the total number of bytes that can be sent.
A value of zero indicates unlimited size.
requestSize | The maximum cumulative payload size of all flows. |
Allow a global payload of 1 GB
Layer5.Http.MultiClient::SlowStartThreshold.Get |
Returns the initial slow-start threshold value used by TCP.
The slow-start threshold indicates when the slow-start phase ends and the congestion avoidance phase starts. Consider increasing this value if you find that TCP takes a long time to reach peak throughput. See RFC 5681 "TCP Congestion Control" for more information on this topic.
Returns:
65535
Layer5.Http.MultiClient::SlowStartThreshold.Set | ssthresh | ||
Set the initial slow-start threshold value used by TCP.
The slow-start threshold indicates when the slow-start phase ends and the congestion avoidance phase starts. Consider increasing this value if you find that TCP takes a long time to reach peak throughput. See RFC 5681 "TCP Congestion Control" for more information on this topic.
ssthresh | New value for the slow-start threshold |
ByteBlower.Exception.InvalidValue | when the value is not a positive integer |
To set slow-start threshold to 1000000
Layer5.Http.MultiClient::Start |
Layer5.Http.MultiClient::Status.Get |
Returns the status of the flow.
Returns:
configuration
Layer5.Http.MultiClient::Stop |
Layer5.Http.MultiClient::Tcp.CongestionAvoidance.Algorithm.Get |
Layer5.Http.MultiClient::Tcp.CongestionAvoidance.Algorithm.Set | congestionAvoidanceAlgorithm | ||
Configure the preferred TCP Congestion Avoidance Algorithm.
congestionAvoidanceAlgorithm | Congestion Avoidance Algorithm to configure.
|
<tcl_error> | Failed to parse enumerator: When the value could not be interpreted as a valid TCAA |
Configure NewReno as congestionAvoidance Algorithm
Configure Sack as congestionAvoidance Algorithm
Configure None as congestionAvoidance Algorithm
Layer5.Http.MultiClient::TypeOfService.Set |
Sets the 'Type Of Service' or 'Traffic Class' used at the IP layer.
Both IP headers reserve space to specify the expected quality of service(QOS). IPv4 calls this field the 'Type Of Service'. In IPv6 one uses the term 'Traffic Class'. Despite naming, they are both 8 bits wide. For ease of use, the method is generic, it is used for both IPv4 and IPv6 layers. The implementaion will configure the proper header.
The input accepts integers from 0 up to 255. This value will be directly used in byte-sized field at the IP layer. No additional coding is performed.
This method can be called solely during the configuration phase,thus before the parent ByteBlower port is started. Invoking the method at other moments will result in error.