BUFFER TRANSFER SERVICE
First Claim
1. A method for transferring data between a first device and a second device, the method comprising:
- establishing, by the first device, a point-to-point communication link with the second device;
receiving, at the first device, an instruction to send a first data object to the second device;
locating, by the first device, the first data object;
assigning;
by the first device, a first unique identifier for a first transfer session;
sending, by the first device to the second device via the point-to-point communication link, a first send-ready message including the first unique identifier;
receiving, by the first device from the second device via the point-to-point communication link, a first receive-ready message responsive to the first send-ready message; and
in response to the first receive-ready message, sending, by the first device to the second device via the point-to-point communication link, a first plurality of packets, each packet in the first plurality of packets including the first unique identifier and a different portion of the first data object, wherein the first plurality of packets includes a number of packets sufficient to transfer the entirety of the first data object.
1 Assignment
0 Petitions
Accused Products
Abstract
A buffer transfer session can be used to send a data object from one device to another using a low-overhead, reliable point-to-point data transfer protocol. In response to a request to transfer a data object to the receiving device, the sending device can locate the requested data object and establish a first buffer transfer session to transfer the data object to the receiving device. The buffer transfer session can be assigned a unique session identifier. The sending device can send the data object as a sequence of packets, each including the session identifier and a portion of the data object. Multiple buffer transfer sessions can be established concurrently between the two devices. In some instances, transfers can be paused and resumed, canceled, switched to a different transport, or persisted across disconnection/reconnection events.
-
Citations
25 Claims
-
1. A method for transferring data between a first device and a second device, the method comprising:
-
establishing, by the first device, a point-to-point communication link with the second device; receiving, at the first device, an instruction to send a first data object to the second device; locating, by the first device, the first data object; assigning;
by the first device, a first unique identifier for a first transfer session;sending, by the first device to the second device via the point-to-point communication link, a first send-ready message including the first unique identifier; receiving, by the first device from the second device via the point-to-point communication link, a first receive-ready message responsive to the first send-ready message; and in response to the first receive-ready message, sending, by the first device to the second device via the point-to-point communication link, a first plurality of packets, each packet in the first plurality of packets including the first unique identifier and a different portion of the first data object, wherein the first plurality of packets includes a number of packets sufficient to transfer the entirety of the first data object. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for transferring data from a first device to a second device, the method comprising:
-
establishing, by the second device, a point-to-point communication link with the first device; receiving, at the second device, a send-ready message from the first device, the send-ready message indicating that the first device is ready to transfer a data object to the second device, the send-ready message including a session identifier for the transfer of the data object; sending, by the second device, a receive-ready message to the first device, the receive-ready message indicating that the second device is ready to receive the data object; subsequently to sending the receive-ready message, receiving, by the second device, a plurality of packets from the first device, each of the plurality of packets including a header and a payload, the header including the session identifier and a sequence number, wherein each of the plurality of packets has a different sequence number; determining, by the second device, based on the session identifier, that the payload of each of the plurality of packets contains a portion of the data object; and storing, by the second device, the payload of each of the plurality of packets in a storage medium, wherein a location for storing the payload of each of the plurality of packets is determined based at least in part on the sequence number of the packet. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. An electronic device comprising:
-
an interface configured to establish a point-to-point communication link with a recipient device; and a processing subsystem coupled to the interface, the processing subsystem configured to; initiate a plurality of sessions, the plurality of sessions including a buffer transfer session configured to transfer a data object to the recipient device over the point-to-point communication link, each of the plurality of sessions having a unique identifier assigned thereto; load at least a portion of the data object into a buffer; send, to the recipient device via the point-to-point communication link, a send-ready message, the send-ready message including the unique identifier assigned to the buffer transfer session; receive, from the recipient device via the point-to-point communication link, a receive-ready message responsive to the send-ready message; and to send a sequence of packets to the recipient device via the point-to-point communication link, in response to the receive-ready message, wherein each of the packets in the sequence includes the unique identifier assigned to the buffer transfer session, a sequence number, and a portion of the data object read from the buffer, wherein the sequence of packets includes a packet corresponding to each portion of the data object. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. An electronic device comprising:
-
an interface configured to establish a point-to-point communication link with a sender device; a storage medium configured to store data; and a processing subsystem coupled to the interface and the storage medium, the processing subsystem configured to; send a request for a data object to the sender device via the point-to-point communication link; receive, from the sender device via the point-to-point communication link, a send-ready message indicating that the sender device is ready to send the data object the send-ready message including a session identifier associated with transfer of the data object; send, to the sender device via the point-to-point communication link, a receive-ready message indicating that the electronic device is ready to receive the data object; receive, from the sender device via the point-to-point communication link, the data object as a sequence of packets generated by the sender device, each packet in the sequence of packets being labeled with the session identifier associated with the transfer of the data object and including a portion of the data object as a payload; and store the payload of each of the received packets in the storage medium as a portion of the data object. - View Dependent Claims (19, 20)
-
-
21. A computer-readable storage medium having program code stored therein, the program code comprising instructions that, when executed by a processing subsystem in an electronic device, cause the processing subsystem to perform a method, the method comprising:
-
establishing a point-to-point communication link with a recipient device; determining that a first data object is to be transferred to the recipient device; initiating a first buffer transfer session to manage the transfer of the first data object to the recipient device, wherein initiating the first buffer transfer session includes assigning a first unique identifier to the first buffer transfer session; communicating from the first buffer transfer session to the recipient device, via the point-to-point communication link, a message indicating that the first unique identifier is associated with the transfer of the first data object; and sending to the recipient device, via the point-to-point communication link, a first plurality of packets, each packet in the first plurality of packets including the first unique identifier and a different portion of the first data object, wherein the first plurality of packets includes a number of packets sufficient to transfer the entirety of the first data object. - View Dependent Claims (22, 23, 24, 25)
-
Specification