1. A method of communication over a data network, comprising the steps of: performing a transaction across a data network between an initiator host and a remote target, the initiator host having an initiator network interface controller, and the remote target having a target network interface controller and a memory location that is accessible by a first process and a second process, the transaction comprising a plurality of input-output (IO) operations between the initiator network interface controller and the target network interface controller, respectively and controlling the IO operations with the initiator network interface controller and the target network interface controller to cause the first process to perform accesses to the memory location atomically with respect to the second process.