A network interface is disclosed for enabling remote programmed I/O to be
carried out in a "lossy" network (one in which packets may be dropped).
The network interface: (1) receives a plurality of memory transaction
messages (MTM's); (2) determines that they are destined for a particular
remote node; (3) determines a transaction type for each MTM; (4)
composes, for each MTM, a network packet to encapsulate at least a
portion of that MTM; (5) assigns a priority to each network packet based
upon the transaction type of the MTM that it is encapsulating; (6) sends
the network packets into a lossy network destined for the remote node;
and (7) ensures that at least a subset of the network packets are
received by the remote node in a proper sequence. By doing this, the
network interface makes it possible to carry out remote programmed I/O,
even across a lossy network.