IBM Support

What is Dynamic Right Sizing for High Latency Networks?

Question & Answer


Question

What is Dynamic Right Sizing for High Latency Networks?

Answer

FAQ: What is Dynamic Right Sizing (DRS) for High Latency Networks?

The following is from IBM manual SG24-7798

High latency network

Streaming a workload over large bandwidth and high latency networks (such as satellite links)

is, in general, constrained by the TCP window size. The problem is that it takes time to send

data over such a network. At any given point in time, data filling the full window size is in

transit and cannot be acknowledged until it starts arriving at the receiver side. The sender can

send up to the window size and then must wait for an ACK to advance the window size before

the next chunk can be sent.

The left hand side of Figure 4-3 depicts a high-latency network where the TCP window size is

too small. The round trip time (RTT) is relatively long and the window size is relatively small.

Therefore, the sender fills the window before it receives an ACK for the data at the start of the

window. This forces the sender to delay sending additional data until it receives an ACK or a

window update. Over a long distance connection, this can cause transmission stalls and

suboptimal performance.

The right hand side demonstrates a situation where the window size is large enough for the

high-latency network. The sender has not yet sent the last bit of the window size before it

receives an ACK for the first bit of the current window. The z/OS TCP maximum windows size

is 512K (defined in the TCPMAXRCVBUFRSIZE in the TCPCONFIG section). However, a

window size of 512K may not always be enough to achieve this behavior.

The solution for high latency networks

z/OS Communications Server implements Dynamic Right Sizing (DRS) to address the

problem related to high latency networks. DRS is described in a paper published by the Los

Alamos National Laboratory (LANL), which can be found at the following address:

http://public.lanl.gov/radiant/software/drs.html </spa n>

The goal of the DRS function is to keep the pipe full for inbound streaming TCP connections

over networks with large capacity and high latency and prevent the sender from being

constrained by the receiver’s advertised window size.

If a TCP connection uses a receive buffer size larger then 64K, the stack detects a high

latency inbound streaming TCP connection and dynamically increases the receive buffer size

for the connection (in an attempt to not constrain the sender). This in turn adjusts the

advertised receive window and allows window size to grow as high as 2M. In other words, The

TCP receive buffer size can grow as high as 2M for certain TCP connections irrespective of

the TCPMAXRCVBUFRSIZE value. The stack disables the function for a connection if the

application is not keeping up with the pace.

DRS does not take effect for applications that set a value less then 64K on the SO_RCVBUF

socket option on SETSOCKOPT().

If TCPRCVBUFRSIZE is less then 64K, then DRS does not take effect.

Implementation

Implementation is dynamic as long as the following criteria are met:


· Inbound streaming workload
· High latency network
· Application that is using a receive buffer size of at least 64 KB

Please Note: TCP's Dynamic Right Sizing should be transparent to Connect:Direct for z/OS

[{"Product":{"code":"SSFGBN","label":"IBM Sterling Connect:Direct for z\/OS"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Not Applicable","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Historical Number

FAQ3749

Document Information

Modified date:
17 December 2019

UID

swg21518420