An effective I/O protocol for taking advantage of system area network
functionality, whether or not a particular application is written to do
so, is provided. Transparently to the application, the I/O protocol
routes application I/O commands via legacy transmission protocols or via
remote direct memory access protocols as appropriate. When communicating
via remote direct memory access protocols, the I/O protocol can take
advantage of multiple data exchange commands implemented by these
protocols to perform the required data exchange. Once an I/O operation
has completed, the I/O protocol passes a completion notification to the
application using a polling or interrupt construct.