IBM PC local area network software that divides data into packets which it routes to the network. It also handles incoming data, reassembling the packets so that application programs can read the data as a continuous stream.
Packet drivers provide a simple, common programming interface that allows multiple applications to share a network interface at the data link layer. Packet drivers demultiplex incoming packets among the applications by using the network media's standard packet type or service access point field(s).
The packet driver provides calls to initiate access to a specific packet type, to end access to it, to send a packet, to get statistics on the network interface and to get information about the interface.
Protocol implementations that use the packet driver can coexist and can make use of one another's services, whereas multiple applications which do not use the driver do not coexist on one machine properly. Through use of the packet driver, a user could run TCP/IP, XNS and a proprietary protocol implementation such as DECnet, Banyan's, LifeNet's, Novell's or 3Com's without the difficulties associated with pre-empting the network interface.
There are several levels of packet driver. The first is the basic packet driver, which provides minimal functionality but should be simple to implement and which uses very few host resources. The basic driver provides operations to broadcast and receive packets. The second driver is the extended packet driver, which is a superset of the basic driver. The extended driver supports less commonly used functions of the network interface such as multicast, and also gathers statistics on use of the interface and makes these available to the application. The third level, the high-performance functions, support performance improvements and tuning.