System and method for data transfer in a peer-to-peer hybrid communication network
First Claim
Patent Images
1. A method for transferring data from a first endpoint to a second endpoint in a peer-to-peer network, the method comprising:
- establishing, by the first endpoint, a data transfer link directly with the second endpoint in order to transfer a file from the first endpoint to the second endpoint;
sending, by the first endpoint, a plurality of packets corresponding to the file to the second endpoint via the data transfer link, wherein the sending includes, for each packet,placing, by the first endpoint, the packet on an unacknowledged (UNACK) list upon sending the packet to the second endpoint;
removing the packet from the UNACK list only if an acknowledgment (ACK) response from the second endpoint indicates that the packet was correctly received by the second endpoint; and
resending the packet without waiting for each of the plurality of packets to be sent if an UNACK response from the second endpoint indicates that the packet was not correctly received by the second endpoint;
and wherein the sending includes, for each packet on the UNACK list after each of the plurality of packets is sent a first time, resending all packets that appear on the UNACK list after sending each of the plurality of packets a first time, wherein the packets that appear on the UNACK list are resent even if no response is received for each of the packets that appear on the UNACK list from the second endpoint, and wherein a packet is removed from the UNACK list only if an ACK response is received for that packet, and wherein the step of resending packets all packets that appear on the UNACK list is repeated by the first endpoint until either the UNACK list is empty or a timeout occurs;
receiving, by the first endpoint, at least one notification that a packet was received out of sequence by the second endpoint; and
recalculating, by the first endpoint, an inter-packet delay based on the at least one out of sequence notification.
1 Assignment
0 Petitions
Accused Products
Abstract
An improved system and method are disclosed for peer-to-peer communications. In one example, the method enables an endpoint to transfer data directly to another endpoint.
160 Citations
23 Claims
-
1. A method for transferring data from a first endpoint to a second endpoint in a peer-to-peer network, the method comprising:
-
establishing, by the first endpoint, a data transfer link directly with the second endpoint in order to transfer a file from the first endpoint to the second endpoint; sending, by the first endpoint, a plurality of packets corresponding to the file to the second endpoint via the data transfer link, wherein the sending includes, for each packet, placing, by the first endpoint, the packet on an unacknowledged (UNACK) list upon sending the packet to the second endpoint; removing the packet from the UNACK list only if an acknowledgment (ACK) response from the second endpoint indicates that the packet was correctly received by the second endpoint; and resending the packet without waiting for each of the plurality of packets to be sent if an UNACK response from the second endpoint indicates that the packet was not correctly received by the second endpoint; and wherein the sending includes, for each packet on the UNACK list after each of the plurality of packets is sent a first time, resending all packets that appear on the UNACK list after sending each of the plurality of packets a first time, wherein the packets that appear on the UNACK list are resent even if no response is received for each of the packets that appear on the UNACK list from the second endpoint, and wherein a packet is removed from the UNACK list only if an ACK response is received for that packet, and wherein the step of resending packets all packets that appear on the UNACK list is repeated by the first endpoint until either the UNACK list is empty or a timeout occurs; receiving, by the first endpoint, at least one notification that a packet was received out of sequence by the second endpoint; and recalculating, by the first endpoint, an inter-packet delay based on the at least one out of sequence notification. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for transferring data from a first endpoint to a second endpoint, the method comprising:
-
sending, by the first endpoint, a plurality of packets representing a file directly to the second endpoint, wherein the sending includes, for each packet, placing the packet on an unacknowledged (UNACK) list upon sending the packet to the second endpoint; removing the packet from the UNACK list only if an acknowledgment (ACK) response from the second endpoint indicates that the packet was correctly received by the second endpoint; and resending the packet without waiting for each of the plurality of packets to be sent if an UNACK response from the second endpoint indicates that the packet was not correctly received by the second endpoint; and wherein the sending includes, for each packet on the UNACK list after each of the plurality of packets is sent a first time, resending all packets that appear on the UNACK list after sending each of the plurality of packets a first time, wherein the packets that appear on the UNACK list are resent even if no response is received for each of the packets that appear on the UNACK list from the second endpoint, and wherein a packet is removed from the UNACK list only if an ACK response is received for that packet, wherein the step of resending packets all packets that appear on the UNACK list is repeated by the first endpoint until either the UNACK list is empty or a timeout occurs; and recalculating, by the first endpoint, an inter-packet delay if a determination is made that the inter-packet delay is to be recalculated based on at least one out of sequence notification received from the second endpoint, wherein the determination that the inter-packet delay is to be recalculated is based on whether the out of sequence notification was received within a certain period of time of sending the packet for which the out of sequence notification was received. - View Dependent Claims (11, 12, 13)
-
-
14. A method for transferring data from a first endpoint to a second endpoint, the method comprising:
-
sending, by the first endpoint, a plurality of packets corresponding to a file to the second endpoint, wherein the sending includes, for each packet, placing the packet on an unacknowledged (UNACK) list upon sending the packet to the second endpoint; removing the packet from the UNACK list only if an acknowledgment (ACK) response from the second endpoint indicates that the packet was correctly received by the second endpoint; and resending the packet without waiting for each of the plurality of packets to be sent if an UNACK response from the second endpoint indicates that the packet was not correctly received by the second endpoint; and wherein the sending includes, for each packet on the UNACK list after each of the plurality of packets is sent a first time, resending all packets that appear on the UNACK list after sending each of the plurality of packets a first time, wherein the packets that appear on the UNACK list are resent even if no response is received for each of the packets that appear on the UNACK list from the second endpoint, and wherein a packet is removed from the UNACK list only if an ACK response is received for that packet, and wherein the step of resending packets all packets that appear on the UNACK list is repeated by the first endpoint until either the UNACK list is empty or a timeout occurs; and determining, by the first endpoint, whether to recalculate an inter-packet delay based on at least one out of sequence notification received from the second endpoint, wherein the step of determining is based on whether the out of sequence notification was received within a certain period of time of sending the packet for which the out of sequence notification was received. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A method for transferring data from a first endpoint to a second endpoint, the method comprising:
-
retrieving, by the first endpoint, a profile and a routing table from an access server following an authentication process, wherein the profile indicates that the second endpoint is not available; receiving, by the first endpoint, an online notification message directly from the second endpoint that the second endpoint is available, wherein the online notification message includes address information of the second endpoint needed by first endpoint to communicate directly with the second endpoint; sending, by the first endpoint, a plurality of packets corresponding to a file to the second endpoint, wherein the sending includes, for each packet, placing the packet on an unacknowledged (UNACK) list upon sending the packet to the second endpoint; removing the packet from the UNACK list only if an acknowledgment (ACK) response from the second endpoint indicates that the packet was correctly received by the second endpoint; and resending the packet without waiting for each of the plurality of packets to be sent if an UNACK response from the second endpoint indicates that the packet was not correctly received by the second endpoint; and wherein the sending includes, for each packet on the UNACK list after each of the plurality of packets is sent a first time, resending all packets that appear on the UNACK list after sending each of the plurality of packets a first time, wherein the packets that appear on the UNACK list are resent even if no response is received for each of the packets that appear on the UNACK list from the second endpoint, and wherein a packet is removed from the UNACK list only if an ACK response is received for that packet, and wherein the step of resending packets all packets that appear on the UNACK list is repeated by the first endpoint until either the UNACK list is empty or a timeout occurs; and determining, by the first endpoint, whether to recalculate an inter-packet delay based on at least one out of sequence notification received from the second endpoint. - View Dependent Claims (20, 21, 22, 23)
-
Specification