 |
OpenVMS Cluster Systems
G.2.1.1 OpenVMS VAX Version 6.0 or OpenVMS AXP Version 1.5, or Later
This section pertains to PEDRIVER running on OpenVMS VAX Version 6.0 or
OpenVMS AXP Version 1.5, or later.
The retransmission mechanism is an adaptation of the algorithms
developed for the Internet TCP protocol by Van Jacobson and improves on
the old mechanism by making both the window size and the retransmission
timeout interval adapt to network conditions.
- When a timeout occurs because of a lost packet, the window size is
decreased immediately to reduce the load on the network. The window
size is allowed to grow only after congestion subsides. More
specifically, when a packet loss occurs, the window size is decreased
to 1 and remains there, allowing the transmitter to send only one
packet at a time until all the original outstanding packets have been
acknowledged.
After this occurs, the window is allowed to grow
quickly until it reaches half its previous size. Once reaching the
halfway point, the window size is allowed to increase relatively slowly
to take advantage of available network capacity until it reaches a
maximum value determined by the configuration variables (for example, a
minumum of the number of adapter buffers and the remote node's
resequencing cache).
- The retransmission timeout interval is set based on measurements of
actual round-trip times, and the average varience from this average,
for packets that are transmitted over the virtual circuit. This allows
PEDRIVER to be more responsive to packet loss in most networks but
avoids premature timeouts for networks in which the actual round-trip
delay is consistently long. The algorithm can accomodate average delays
of up to a few seconds.
G.2.1.2 VMS Version 5.5 or Earlier
This section pertains to PEDRIVER running on VMS Version 5.5 or earlier.
- The window size is relatively static---usually 8, 16 or 31 and the
retransmission policy assumes that all outstanding packets are lost and
thus retransmits them all at once. Retransmission of an entire window
of packets under congestion conditions tends to exacerbate the
condition significantly.
- The timeout interval for determining that a packet is lost is fixed
(3 seconds). This means that the loss of a single packet can interrupt
communication between cluster nodes for as long as 3 seconds.
G.2.2 HELLO Multicast Datagrams
PEDRIVER periodically multicasts a HELLO datagram over each network
adapter attached to the node. The HELLO datagram serves two purposes:
- It informs other nodes of the existence of the sender so that they
can form channels and virtual circuits.
- It helps to keep communications open once they are established.
HELLO datagram congestion and loss of HELLO datagrams can prevent
connections from forming or cause connections to be lost. Table G-1
describes conditions causing HELLO datagram congestion and how PEDRIVER
helps avoid the problems. The result is a substantial decrease in the
probability of HELLO datagram synchronization and thus a decrease in
HELLO datagram congestion.
Table G-1 Conditions that Create HELLO Datagram Congestion
Conditions that cause congestion |
How PEDRIVER avoids congestion |
If all nodes receiving a HELLO datagram from a new node responded
immediately, the receiving network adapter on the new node could be
overrun with HELLO datagrams and be forced to drop some, resulting in
connections not being formed. This is especially likely in large
clusters.
|
To avoid this problem on nodes running:
- On VMS Version 5.5--2 or earlier, nodes that receive HELLO
datagrams delay for a random time interval of up to 1 second before
responding.
- On OpenVMS VAX Version 6.0 or later, or OpenVMS AXP Version 1.5 or
later, this random delay is a maximum of 2 seconds to support large
OpenVMS Cluster systems.
|
If a large number of nodes in a network became synchronized and
transmitted their HELLO datagrams at or near the same time, receiving
nodes could drop some datagrams and time out channels.
|
On nodes running VMS Version 5.5--2 or earlier, PEDRIVER multicasts
HELLO datagrams over each adapter every 3 seconds, making HELLO
datagram congestion more likely.
On nodes running OpenVMS VAX Version 6.0 or later, or OpenVMS AXP
Version 1.5 or later, PEDRIVER prevents this form of HELLO datagram
congestion by distributing its HELLO datagram multicasts randomly over
time. A HELLO datagram is still multicast over each adapter
approximately every 3 seconds but not over all adapters at once.
Instead, if a node has multiple network adapters, PEDRIVER attempts to
distribute its HELLO datagram multicasts so that it sends a HELLO
datagram over some of its adapters during each second of the 3-second
interval.
In addition, rather than multicasting precisely every 3 seconds,
PEDRIVER varies the time between HELLO datagram multicasts between
approximately 1.6 to 3 seconds, changing the average from 3 seconds to
approximately 2.3 seconds.
|
|