A computing device comprising: one or more processing units; a network interface card; and one or more computer-readable media comprising computer-executable instructions, which, when executed by the processing units or the network interface card, cause the computing device to: register a first portion of memory that comprises a first data; generate a slice of the first data by reading some of the first data into a previously registered send buffer that is smaller than the first data; copy the slice from the send buffer into a receive buffer on a receiving computing device, the receive buffer having been previously registered on the receiving computing device; repeat the generating and copying with subsequent slices of the first data until a token is received from the receiving computing device, the token providing access to a second portion of memory on the receiving computing device that can accommodate all of the first data and the token being received in response to a completion of the registering the second portion of memory on the receiving computing device; and copy a rest of the first data, that has not already been sliced and copied into the receive buffer on the receiving computing device, from the first portion of memory into the second portion of memory on the receiving computing device using the token after the token is received and after the first portion of memory is registered. one or more processing units; a network interface card; and one or more computer-readable media comprising computer-executable instructions, which, when executed by the processing units or the network interface card, cause the computing device to: register a first portion of memory that comprises a first data; generate a slice of the first data by reading some of the first data into a previously registered send buffer that is smaller than the first data; copy the slice from the send buffer into a receive buffer on a receiving computing device, the receive buffer having been previously registered on the receiving computing device; repeat the generating and copying with subsequent slices of the first data until a token is received from the receiving computing device, the token providing access to a second portion of memory on the receiving computing device that can accommodate all of the first data and the token being received in response to a completion of the registering the second portion of memory on the receiving computing device; and copy a rest of the first data, that has not already been sliced and copied into the receive buffer on the receiving computing device, from the first portion of memory into the second portion of memory on the receiving computing device using the token after the token is received and after the first portion of memory is registered. register a first portion of memory that comprises a first data; generate a slice of the first data by reading some of the first data into a previously registered send buffer that is smaller than the first data; copy the slice from the send buffer into a receive buffer on a receiving computing device, the receive buffer having been previously registered on the receiving computing device; repeat the generating and copying with subsequent slices of the first data until a token is received from the receiving computing device, the token providing access to a second portion of memory on the receiving computing device that can accommodate all of the first data and the token being received in response to a completion of the registering the second portion of memory on the receiving computing device; and copy a rest of the first data, that has not already been sliced and copied into the receive buffer on the receiving computing device, from the first portion of memory into the second portion of memory on the receiving computing device using the token after the token is received and after the first portion of memory is registered.