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, the method comprising:
- sending, by the first endpoint, a plurality of packets 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 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, a plurality of out of sequence notifications that at least some of the plurality of packets were received out of sequence by the second endpoint, wherein the out of sequence notifications are not an ACK or an UNACK;
determining, by the first endpoint, that each of the out of sequence notifications was received within a certain period of time after sending the respective packet for which the out of sequence notification was received; and
recalculating, by the first endpoint, an inter-packet delay based on the plurality of out of sequence notifications only if a certain number of out of sequence notifications have been received from the second endpoint.
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.
235 Citations
11 Claims
-
1. 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 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 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, a plurality of out of sequence notifications that at least some of the plurality of packets were received out of sequence by the second endpoint, wherein the out of sequence notifications are not an ACK or an UNACK; determining, by the first endpoint, that each of the out of sequence notifications was received within a certain period of time after sending the respective packet for which the out of sequence notification was received; and recalculating, by the first endpoint, an inter-packet delay based on the plurality of out of sequence notifications only if a certain number of out of sequence notifications have been received from the second endpoint. - View Dependent Claims (2, 3, 4)
-
-
5. A first endpoint device comprising:
-
a hardware platform; and an architecture having a graphical user interface (GUI) configured to provide user access to an endpoint engine, an operating system configured to provide access to the hardware platform, and the endpoint engine coupled to the GUI and the operating system, the endpoint engine having a plurality of functional components configured for; sending a plurality of packets to a second endpoint device, wherein the sending includes, for each packet, placing the packet on an unacknowledged (UNACK) list upon sending the packet to the second endpoint device; removing the packet from the UNACK list only if an acknowledgment (ACK) response from the second endpoint device indicates that the packet was correctly received by the second endpoint device; and resending the packet without waiting for each of the plurality of packets to be sent if an UNACK response from the second endpoint device indicates that the packet was not correctly received by the second endpoint device; 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 device, 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 all packets that appear on the UNACK list is repeated until either the UNACK list is empty or a timeout occurs; receiving a plurality of notifications that at least some of the plurality of packets were received out of sequence by the second endpoint device, wherein the out of sequence notifications are not an ACK or an UNACK; determining that each of the out of sequence notifications was received within a certain period of time after sending the respective packet for which the out of sequence notification was received; and recalculating an inter-packet delay based on the plurality of out of sequence notifications only if a certain number of out of sequence notifications have been received from the second endpoint device. - View Dependent Claims (6, 7, 8)
-
-
9. A method for transferring data from a first endpoint to a second endpoint in a peer-to-peer network, 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 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 a plurality of out of sequence notifications received from the second endpoint, wherein the first endpoint determines that each of the out of sequence notifications was received within a certain period of time after sending the respective packet for which the out of sequence notification was received; and
wherein the step of recalculating occurs only if a certain number of out of sequence notifications have been received from the second endpoint, and wherein the out of sequence notifications are not an ACK or an UNACK. - View Dependent Claims (10, 11)
-
Specification