IP Library Granted Patent US 7,289,500
Granted Patent B1
US 7,289,500 · App. 10/621,699 · Granted Oct 30, 2007

Method and system for reliable multicast data transmission

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,289,500
App. No.
10/621,699
Granted
Oct 30, 2007
Kind
B1
Abstract

Provided is a method and system for reliably multicasting a data transmission from a server to one or more clients, which may be connected via a control channel and a multicast data channel. In one example, the method includes sending a first data transmission to the clients over the multicast data channel. A response is received over the control channel from at least some of the clients. The response identifies data not received by the responding client. In some examples, the response may indicate that all the data was received. The server determines a minimum retransmission data set based on the responses. The minimum retransmission data set includes at least some of the data not received by the client during the first data transmission. The minimum retransmission data set is sent over the multicast data channel and received by the clients that did not receive it during the first data transmission.

Claims (52)

1. A method for reliably multicasting data from a server to one or more clients, wherein the server and clients are connected via a control channel and a multicast data channel, the method comprising:

sending a first data transmission to the clients over the multicast data channel;

receiving a response over the control channel from at least one of the clients identifying data not received by the client during the first data transmission;

determining a minimum retransmission data set based on the response, wherein the minimum retransmission data set includes at least a portion of the data not received by the client during the first data transmission; and

sending the minimum retransmission data set over the multicast data channel.

2. The method of claim 1 further comprising aggregating the identified data from the at least one client to determine the minimum retransmission data set.

3. The method of claim 1 further comprising announcing a first announcement over the control channel, wherein the first announcement includes descriptive information about the first data transmission.

4. The method of claim 3 wherein the descriptive information includes a file name and one or more byte ranges to be transmitted in the first data transmission.

5. The method of claim 4 wherein determining the minimum retransmission data set further includes comparing the one or more byte ranges of the first announcement with the identified data not received by the client during the first data transmission.

6. The method of claim 3 further comprising announcing a second announcement over the control channel, wherein the second announcement includes descriptive information about the minimum retransmission data set.

7. The method of claim 6 further comprising:

connecting the one or more clients to the server on the control channel;

connecting the one or more clients to the multicast data channel for receiving the first data transmission; and

responsive to the second announcement, selectively connecting a subset of the one or more clients to the multicast data channel for receiving the minimum retransmission data set.

8. The method of claim 6 wherein the control channel is connected between the first and second announcements, and wherein the multicast data channel is disconnected after sending the first data transmission.

9. The method of claim 1 further comprising:

disconnecting the multicast data channel after the first data transmission; and

selectively re-connecting the multicast data channel in response to an election by the one or more clients to receive the minimum retransmission data set.

10. The method of claim 1 wherein the first data transmission includes a music file.

11. The method of claim 1 wherein each response includes an internet protocol (IP) address of the one or more clients and a set of byte ranges corresponding to the identified data not received.

12. The method of claim 1 wherein the one or more clients are each connected to the server via the control channel for exchanging meta-data describing the first data transmission and minimum retransmission data set.

13. The method of claim 1 wherein the multicast data channel utilizes a multicast transport protocol.

14. The method of claim 13 further comprising using the multicast transport protocol to detect and record information about unrecoverable data loss.

15. A method for multicasting data from a server to one or more clients over a network, the method comprising,

announcing from the server a first announcement over a control channel;

receiving from the server a first data transmission over a multicast data channel;

sending a notification over the control channel from each of the one or more clients to the server identifying at least a portion of the data not received by the client during the first data transmission; and

receiving a second data transmission over the multicast data channel from the server, wherein the second data transmission includes a minimum retransmission of data from the first data session determined by the notifications from the one or more clients.

16. The method of claim 15 further comprising aggregating the notification from each of the one or more clients to determine the minimum retransmission for the second data transmission.

17. The method of claim 15 wherein the first announcement includes a file name and one or more byte ranges to be transmitted in the first data transmission, and

wherein identifying at least a portion of the data not received by the client includes comparing the one or more byte ranges included in the first announcement with the received first data transmission.

18. The method of claim 17 further comprising maintaining a scorecard having a permanent transmission group and a current transmission group.

19. The method of claim 18 wherein the maintaining a scorecard includes:

enrolling the one or more clients connected to the server via the control channel in the permanent transmission group,

enrolling the at least one of the clients identifying data not received during the first data transmission in the current transmission group, and

removing the at least one of the clients from the current transmission group after the one or more byte ranges are received.

20. The method of claim 15 further comprising selecting from the received second data transmission, by each of the one or more clients, at least the identified portion of the data not received by the client during the first data transmission.

21. A system for reliably multicasting data over a network, the system comprising,

a server accessible to one or more client computers;

a control channel connecting the server and client computers;

a multicast data channel connecting the server and client computers; and

a plurality of instructions for execution by at least one of the server and client computers, the instructions including:

an instruction for transferring a first data transmission by the server to the one or more client computers via the control channel;

an instruction for transferring a notification from each of the one or more client computers to the server identifying information about missing data from the first data transmission via the control channel;

an instruction for transferring the first data transmission from the server to the one or more client computers via the multicast data channel; and

an instruction for transferring a second data transmission from the server to the one or more client computers via the multicast data channel, wherein the second data transmission includes a minimum superset of the missing data identified by each of the one or more client computers.

22. The system of claim 21 further comprising one or more multicast enabled routers adapted for operating the multicast data channel between the server and the one or more client computers.

23. The system of claim 21 further comprising one or more multicast enabled switches adapted for operating the multicast data channel between the server and the one or more client computers.

24. The system of claim 21 further comprising:

an instruction for maintaining the control channel between the sending of the first data transmission and the sending of the second data transmission; and

an instruction for closing the data channel between the first data transmission and the second data transmission.

25. The system of claim 21 further comprising an instruction for using the control channel to exchange meta-data between the server and the one or more client computers.

Assignments (16)
RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.)
Reel/Frame 062623/0009 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Recorded Jul 26, 2018
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 048793/0832 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042388/0386 →
CHANGE OF NAME Recorded Sep 13, 2016
From: NOVELL, INC.
To: MICRO FOCUS SOFTWARE INC.
Reel/Frame 040020/0703 →
SECURITY INTEREST Recorded May 13, 2015
From: MICRO FOCUS (US), INC.; BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; NOVELL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035656/0251 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0316 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034469/0057 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0216 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034470/0680 →
GRANT OF PATENT SECURITY INTEREST FIRST LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0216 →
GRANT OF PATENT SECURITY INTEREST SECOND LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0316 →
RELEASE OF SECURITY IN PATENTS SECOND LIEN (RELEASES RF 026275/0018 AND 027290/0983) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0154 →
RELEASE OF SECURITY INTEREST IN PATENTS FIRST LIEN (RELEASES RF 026270/0001 AND 027289/0727) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0077 →
GRANT OF PATENT SECURITY INTEREST (SECOND LIEN) Recorded May 13, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026275/0018 →
GRANT OF PATENT SECURITY INTEREST Recorded May 12, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2003
From: AMLEKAR, SHEKHAR
To: NOVELL, INC.
Reel/Frame 014310/0811 →