PEDRIVER, or the port emulator driver, is a piece of software that implements the NISCA protocol and establishes and controls channels for communication between local and remote LAN ports.
PEDRIVER implements a packet delivery service (at the TR or TRansport level of the NISCA protocol) that guarantees the sequential delivery of messages. The messages carried by a particular virtual circuit can be sent over any of the channels connecting two nodes. The choice of channel is determined by the sender (PEDRIVER) of the message. Because a node sending a message can choose any channel, PEDRIVER, as a receiver, must be prepared to receive messages over any channel.
At any point in time, the TR level selects the channel (the network path between a local NIC and a remote NIC) to carry the packet. Prior to OpenVMS version 7.3, PEDRIVER used a single "preferred channel" at a time to transmit packet traffic for a particular virtual circuit. At OpenVMS version 7.3 and above, PEDRIVER maintains an Equivalent Channel Set (ECS) of channels that are considered equally usable, and transmits on these channels on a round-robin basis. Channels may be removed from the ECS due to high latency, high packet loss rate, or inferior maximum packet payload size (e.g. a channel supporting Jumbo Packets will be preferred over one using ordinary 1500-byte Ethernet packets), or due to a difference of at least 2 in management priorities as set by SCACP.
Starting with OpenVMS Version 8.3, the PEDRIVER also supports the following features:
- Data compression
Data compression can be used to reduce the time to transfer data between two OpenVMS nodes when the LAN speed between them is limiting the data transfer rate, and there is idle CPU capacity available. For example, it may be used to reduce shadow copy times, or improve MSCP serving performance between Disaster Tolerant cluster sites connected by relatively low-speed links, such as E3 or DS3, FDDI, or 100Mb Ethernet. PEdriver data compression can be enabled by using SCACP, Availability Manager, or the NISCS_PORT_SERV parameter.
- Multi-gigabit line speed and long distance performance scaling
The number of packets in flight between nodes needs to increase proportionally to both the speed of LAN links and the inter-node distance. Historically, PEdriver had fixed transmit and receive windows (buffering capacity) of 31 outstanding packets. Beginning with OpenVMS Version 8.3, PEdriver now automatically selects transmit and receive window sizes (sometimes called pipe quota by other network protocols) based on the speed of the current set of local and remote LAN adapters being used for cluster communications between nodes. Additionally, SCACP and Availability Manager now provide management override of the automatically-selected window sizes.