×

System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability

  • US 8,478,890 B2
  • Filed: 07/15/2011
  • Issued: 07/02/2013
  • Est. Priority Date: 07/15/2011
  • Status: Active Grant
First Claim
Patent Images

1. A method for streaming data using a virtual bi-directional data stream between a first communication device and a second communication device comprising:

  • creating, by the first device, a streaming data packet D1;

    inserting, by the first device, a data segment and D1 into a payload section of a connection-less transport layer packet, wherein at least one of D1 and the connection-less transport layer packet includes a send field identifying a starting location in the data stream of the data segment to be sent with D1, an acknowledgement (ACK) field identifying a location in the data stream up to which all data has been received by the first device, a unique identifier (UID) identifying a connection used by the first device for the data stream, a window field identifying an amount of space available in a receive buffer of the first device, a packet type field, a pad field identifying an amount of padding used to ensure D1 has a predefined length, a network address of the first device, a network address of the second device, and a length of the connection-less transport layer packet;

    sending, by the first device, the connection-less transport layer packet to the second device;

    obtaining, by the first device, a current round trip time (RTT) that is based on first and second RTTs of packets previously sent from the first device to the second device and a configurable RTT variation factor, wherein the obtaining includes calculating, by the first device, the current RTT as the RTT for a streaming data packet D2 previously sent from the first device to the second device as RTT=RTT+((CurrRTT−

    OldRTT)*1/M), wherein CurrRTT represents the first RTT of a streaming data packet D3 that was sent prior to D2 from the first device to the second device, OldRTT represents the second RTT of a streaming data packet D4 that was sent prior to D3 from the first device to the second device, and M represents the configurable RTT variation factor;

    obtaining, by the first device, a current RTT variance that is based on a previous RTT variance, the first and second RTTs, and a configurable RTT variance variation factor, wherein the obtaining includes calculating, by the first device, the current RTT variance (RTTvar) as the RTTvar that was calculated for D2 as RTTvar=RTTvar+((CurrRTTVar−

    Abs(CurrRTT−

    OldRTT))*1/N), wherein CurrRTTVar represents an RTTvar of D3 and is the previous RTT variance, and N represents the configurable RTT variance variation factor;

    calculating, by the first device, a timeout for D1 based on the current RTT and the current RTT variance; and

    resending, by the first device, D1 if the timeout does not exceed a predefined timeout limit and if an ACK for D1 has not been received from the second device.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×