Reliable Delivery of Multi-Cast Conferencing Data
Abstract
Conferencing data is reliably delivered to computer systems participating in a hierarchically arranged multi-cast conferencing session. When a child computer system does not receive a multi-cast packet (e.g., an IP multi-cast packet), the child computer system sends a negative acknowledgment to a parent computer system. In response, the parent computer system re-transmits conferencing data that was contained in the multi-cast packet to the child computer system. Conferencing data can be re-transmitted to the child computer system via uni-cast (e.g., TCP). Accordingly, conferencing data that is not received or that is damaged via multi-cast can be repaired via uni-cast. Computer systems can join an existing multi-cast conference session without having to communicate with the root computer system. The root computer system adjusts a multi-cast send rate to compensate for changed network conditions.
Claims
exact text as granted — not AI-modified1 . In a hierarchically arranged multi-cast conferencing session including at least a root computer system that is network connectable to one or more immediate child computer systems, the root computer system configured to transmit packets with sequence numbers that can be used to order the packets, the root computer system being further configured to adjust the sequence number after a packet is transmitted such that a subsequent packet can be distinguished from a prior packet, a method for the root computer system to control congestion on links used by the computer systems participating in the multi-cast conferencing session, the method comprising:
an act of identifying a current send rate, the current send rate being a send rate the root computer system will multi-cast conferencing data to other computer systems participating in the multi-cast conferencing session; an act of identifying a next packet sequence number that is to be associated with the next transmitted multi-cast packet; an act of selecting a rate change packet sequence number, the rate change packet sequence number being a specified threshold of sequence numbers greater than the next packet sequence number, the rate change packet sequence number indicating a sequence number when the root computer system can potentially adjust the current send rate; an act of transmitting at least a next multi-cast packet having the next current packet sequence number, the at least a next multi-cast packet being transmitted in accordance with the current send rate; and an act of adjusting the current send rate based at least on whether the one or more immediate child computer systems indicated reception of the next multi-cast cast packet.
2 . The method as recited in claim 1 , wherein the act of selecting a rate change packet sequence number comprises an act of selecting the specified threshold such that each of the one or more immediate child computer systems has an opportunity to send an acknowledgment message before the rate change packet sequence number is reached.
3 . The method as recited in claim 1 , wherein the act of transmitting at least a next multi-cast packet having the next packet sequence number comprises an act of transmitting a sequence of multi-cast packets, the sequence of multi-cast packets including the next multi-cast packet and a multi-cast packet having the rate change packet sequence number.
4 . The method as recited in claim 1 , wherein the act of adjusting the current send rate comprises an act of decreasing the current send rate in response to receiving a negative acknowledgement message from an immediate child computer system, the negative acknowledgment message indicating that the immediate child computer system did not receive one or more multi-cast packets having packet sequence numbers between the next packet sequence number and the rate change packet sequence number.
5 . The method as recited in claim 4 , wherein the act of decreasing the current send rate in response to receiving a negative acknowledgement message from an immediate child computer system comprises an act of determining the size of the decrease based on the number of multi-cast packets that were not received.
6 . The method as recited in claim 4 , wherein the act of decreasing the current send rate in response to receiving a negative acknowledgement message from an immediate child computer system comprises an act of determining the size of the decrease based on the adjustment that was applied to a previous send rate to generate the current send rate.
7 . The method as recited in claim 1 , wherein the act of adjusting the current send rate comprises an act of increasing the current send rate in response to receiving acknowledgment messages from each of the one or more immediate child computer systems, each acknowledgment message indicating that a corresponding immediate child computer system received all the multi-cast packets having packet sequence numbers between the next packet sequence number and the rate change packet sequence number.
8 . The method as recited in claim 7 , wherein the act of increasing the current send rate in response to receiving acknowledgment messages from each of the one or more immediate child computer systems comprises an act of determining the size of the increase based on the previously recorded highest send rate.
9 . The method as recited in claim 7 , wherein the act of increasing the current send rate in response to receiving acknowledgment messages from each of the one or more immediate child computer systems comprises an act of determining the size of the increase based on the on the adjustment that was applied to a previous send rate to generate the current send rate.
10 . A computer program product for use in a hierarchically arranged multi-cast conferencing session including at least a root computer system that is network connectable to one or more immediate child computer systems, the root computer system configured to transmit packets with sequence numbers that can be used to order the packets, the root computer system being further configured to adjust the sequence number after a packet is transmitted such that a subsequent packet can be distinguished from a prior packet, the computer program product for implementing a method for the root computer system to control congestion on links used by the computer systems of the multi-cast conferencing session, the computer program product comprising one or more computer-readable media having stored thereon computer executable instructions that, when executed by a processor, cause the root computer system to perform the following:
identify a current send rate, the current send rate being a send rate the root computer system will multi-cast conferencing data to other computer systems participating in the multi-cast conferencing session; identify a next packet sequence number that is to be associated with the next transmitted multi-cast packet; selecting a rate change packet sequence number, the rate change packet sequence number being a specified threshold of sequence numbers greater than the next packet sequence number, the rate change packet sequence number indicating a sequence number when the root computer system can potentially adjust the current send rate; transmit at least a next multi-cast packet having the next packet sequence number, the at least a next multi-cast packet being transmitted in accordance with the current send rate; and adjust the current send rate based at least on whether the one or more immediate child computer systems indicated reception of the next multi-cast cast packet.
11 . The method as recited in claim 10 , wherein the one or more computer-readable media comprise physical storage media.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.