A method of transmitting data between a first computer and a second computer , the method comprising: obtaining , by the first computer , data for transmission to the second computer , the data comprising at least first data and second data, the first data being of a first type of data and the second data being of a second type of data, each type of data having an associated transmission priority, and the first type of data having a receipt requirement whereby the data is required to be received by the second computer and the second type of data not having a receipt requirement; buffering the obtained data in one or more buffers ; reading the data from the one or more buffers and transmitting the data to the second computer according to the transmission priorities; and for only transmitted data having a receipt requirement whereby the data is required to be received by the second computer, determining , by the first computer by reference to an expected acknowledgement message from the second computer, whether the transmitted data has been received by the second computer and, if it is determined not to have been received, retransmitting the data to the second computer, wherein the method comprises: obtaining, by the first computer, third data, the third data being of the first type of data; buffering the third data in the one or more buffers; and in response to determining that the first data was not received by the second computer: updating the transmission priority of the first data to a level that is higher than that of the third data; and retransmitting the first data to the second computer before transmitting the third data to the second computer. obtaining , by the first computer , data for transmission to the second computer , the data comprising at least first data and second data, the first data being of a first type of data and the second data being of a second type of data, each type of data having an associated transmission priority, and the first type of data having a receipt requirement whereby the data is required to be received by the second computer and the second type of data not having a receipt requirement; buffering the obtained data in one or more buffers ; reading the data from the one or more buffers and transmitting the data to the second computer according to the transmission priorities; and for only transmitted data having a receipt requirement whereby the data is required to be received by the second computer, determining , by the first computer by reference to an expected acknowledgement message from the second computer, whether the transmitted data has been received by the second computer and, if it is determined not to have been received, retransmitting the data to the second computer, wherein the method comprises: obtaining, by the first computer, third data, the third data being of the first type of data; buffering the third data in the one or more buffers; and in response to determining that the first data was not received by the second computer: updating the transmission priority of the first data to a level that is higher than that of the third data; and retransmitting the first data to the second computer before transmitting the third data to the second computer. obtaining, by the first computer, third data, the third data being of the first type of data; buffering the third data in the one or more buffers; and in response to determining that the first data was not received by the second computer: updating the transmission priority of the first data to a level that is higher than that of the third data; and retransmitting the first data to the second computer before transmitting the third data to the second computer. updating the transmission priority of the first data to a level that is higher than that of the third data; and retransmitting the first data to the second computer before transmitting the third data to the second computer. <EOS>