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 central processing unit including a first cache memory, a target network interface controller including a second cache memory, and a shared memory, wherein the shared memory 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; linking the first cache memory, the second cache memory and the shared memory by a coherent bus having bus lines; acquiring the coherent bus with the target network interface controller during the transaction and changing a status of the bus lines; 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 shared memory atomically with respect to the second process.