WO2005117345A1 - Methods and apparatus for hybrid multicast and unicast transmissions in a data network - Google Patents

Methods and apparatus for hybrid multicast and unicast transmissions in a data network Download PDF

Info

Publication number
WO2005117345A1
WO2005117345A1 PCT/US2005/014849 US2005014849W WO2005117345A1 WO 2005117345 A1 WO2005117345 A1 WO 2005117345A1 US 2005014849 W US2005014849 W US 2005014849W WO 2005117345 A1 WO2005117345 A1 WO 2005117345A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
multicast
unicast
transmission schedule
cost indicator
Prior art date
Application number
PCT/US2005/014849
Other languages
French (fr)
Inventor
An Mei Chen
Ravinder Paul Chandhok
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Priority to CA002566807A priority Critical patent/CA2566807A1/en
Priority to EP05744033A priority patent/EP1747643A1/en
Priority to MXPA06013436A priority patent/MXPA06013436A/en
Priority to JP2007527255A priority patent/JP2007538463A/en
Priority to BRPI0511277-0A priority patent/BRPI0511277A/en
Priority to AU2005330575A priority patent/AU2005330575A1/en
Publication of WO2005117345A1 publication Critical patent/WO2005117345A1/en
Priority to IL179200A priority patent/IL179200A0/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1868Measures taken after transmission, e.g. acknowledgments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/189Arrangements for providing special services to substations for broadcast or conference, e.g. multicast in combination with wireless systems

Definitions

  • the present invention relates generally to content delivery in a network environment, and more particularly, to methods and apparatus for hybrid multicast and unicast transmissions in a data network.
  • Data networks such as wireless communication networks, have to trade off between services customized for a single terminal and services broadcasted/multicasted to all terminals.
  • the distribution of content (data) to a large number of terminals (subscribers) is a complicated problem.
  • Network systems that implement multicast technology can deliver data over a wide area, however, because it is difficult for the sender to know about the success or failure of such deliveries, the costs and resource utilization may be excessive and wasteful.
  • the sender maintains state information for each receiver of a multicast transmission by keeping track of an acknowledgement response (ACK) that it expects to receive from each receiver of the transmission. If the acknowledgement response is not received before expiration of a selected timeout interval, the sender retransmits the information to the multicast group.
  • ACK acknowledgement response
  • This approach does not scale well when the receiving population is very large, and is susceptible to the well known "ACK implosion" problem, where the sender is inundated with an overwhelming number of acknowledgement responses.
  • the sender often does not know who the members (receivers) of the multicast group are, which makes it difficult for the sender to maintain state information for the receivers.
  • NACK negative acknowledgement signal
  • redundancy In the third approach, transmission reliability is achieved via redundancy.
  • the simplest form of redundancy is repetition. Using repetition in the third approach, the same information is retransmitted several times.
  • Another form or redundancy is to perform forward error correction (FEC) on the information to be transmitted.
  • FEC forward error correction
  • smart coding mechanisms the same reliability factor is achieved using less redundancy information.
  • the last hop in a wireless network is the most expensive resource. This is the over-the-air resource between a Base Station Transceiver and a plurality of mobile terminals.
  • a broadcast transmission in a wireless network is not subject to transmission power control since it is engineered to obtain a specific cell coverage and frame error rate.
  • broadcasted transmissions in a wireless network utilize more power than a unicast transmission because of the larger coverage range that the broadcasted transmission is targeted to reach.
  • a broadcast transmission is generally more expensive than a unicast transmission.
  • the acknowledgment response from the receiving terminals is limited. Reliability is achieved by FEC or by repeat broadcasts.
  • a delivery system for use in network environments that operates to determine the most resource efficient and cost effective way to transmit data to a large number of receiving terminals.
  • the system should operate in a wireless network environment to determine if it is more efficient and/or cost effective to use unicast or multicast transmission techniques to transmit data to a large number of receiving terminals.
  • a data delivery system comprising methods and apparatus, that operates to efficiently deliver data to a plurality of terminals in a data network.
  • the system employs a hybrid of multicast and unicast transmissions to delivery data (or content) to the terminals.
  • the system is especially well suited for use in wireless networks where wireless transmission of data from a base station to multiple mobile terminals utilizes expensive over-the-air resources.
  • a sender in the system uses various parameters to determine the cost of sending data using either multicast or unicast transmissions to a plurality of terminals in a network. Based on which transmission technique is less expensive, the sender generates a transmission schedule which identifies how and when the data will be transmitted. If the data is to be multicasted, the sender multicasts the data according to the transmission schedule. If a terminal is not able to receive the data when it is transmitted, the terminal may request to establish a unicast session with the sender to retrieve the data. In one embodiment, after the sender multicasts data to the terminals, the sender may again use a transmission cost analysis to determine how any re-transmissions are performed.
  • the system avoids costly re-broadcasts of the data to all the terminals if less expensive unicast sessions would deliver the data to enough terminals to satisfy the desired quality of service requirements.
  • precious air-link resources are efficiently utilized because wasteful re-broadcasts of the data are avoided.
  • a method for operating a server on a data network.
  • the method comprises computing a multicast cost indicator and a unicast cost indicator that are associated with multicast and unicast transmission of dat.
  • the method also comprises determining that the multicast cost indicator is less than the unicast cost indicator, and generating a transmission schedule that describes when the data will be multicasted on the data network.
  • the method also comprises transmitting the transmission schedule, and multicasting the data according to the transmission schedule.
  • apparatus is provided for use in a server on a data network.
  • the apparatus comprises a cost estimator that operates to compute a multicast cost indicator and a unicast cost indicator that are associated with multicast and unicast transmission of data.
  • the apparatus also comprises processing logic that operates to determine that the multicast cost indicator is less than the unicast cost indicator, and generate a transmission schedule that describes when the data will be multicast on the data network.
  • the apparatus also comprises transmitting logic that operates to transmit the transmission schedule, and multicasts the data according to the transmission schedule.
  • apparatus for use in a server on a data network.
  • the apparatus comprises means for computing a multicast cost indicator and a unicast cost indicator that are associated with multicast and unicast transmission of data, and means for determining that the multicast cost indicator is less than the unicast cost indicator.
  • the apparatus also comprises means for generating a transmission schedule that describes when the data will be multicasted on the data network, and means for transmitting the transmission schedule.
  • the apparatus also comprises means for multicasting the data according to the transmission schedule.
  • a computer-readable media comprising instructions, which when executed by processing logic in a server, operate to transmit data on a data network.
  • the computer-readable media comprises instructions for computing a multicast cost indicator and a unicast cost indicator that are associated with multicast and unicast transmission of data, and instructions for determining that the multicast cost indicator is less than the unicast cost indicator.
  • the computer-readable media also comprises instructions for generating a transmission schedule that describes when the data will be multicasted on the data network, and instructions for transmitting the transmission schedule.
  • the computer readable media also comprises instructions for multicasting the data according to the transmission schedule.
  • a method for operating a receiving terminal on a data network.
  • the method comprises receiving a transmission schedule that describes how data will be transmitted.
  • the method also comprises determining that the data is to be multicasted on the data network in one or more multicast cycles, and receiving the multicasted data during the one or more multicast cycles.
  • apparatus is provided for use in a receiving terminal on a data network.
  • the apparatus comprises logic to receive a transmission schedule that describes how data will be transmitted.
  • the apparatus also comprises logic to determine that the data is to be multicasted on the data network in one or more multicast cycles, and logic to receive the multicasted data during the one or more multicast cycles.
  • FIG. 1 shows a data network that comprises one embodiment of a data delivery system
  • FIG. 2 shows a detailed diagram of one embodiment of a transmitting server suitable for use in one embodiment of a data delivery system
  • FIG. 3 shows one embodiment of a method for operating a server in one embodiment of a data delivery system
  • FIG. 4 shows a detailed diagram of one embodiment of a terminal suitable for use in one embodiment of a data delivery system
  • FIG. 5 shows one embodiment of a method for operating a terminal in one embodiment of a data delivery system
  • FIG. 6 shows a graph that illustrates the cost and resource efficiency achieved utilizing one or more embodiments of the described data delivery system.
  • a data delivery system that operate to efficiently deliver data from a transmitting server to a plurality of terminals in a wireless network.
  • the system utilizes a hybrid transmission technique that combines multicast and unicast transmissions to efficiently delivery data to the terminals.
  • the system is especially well suited for use in wireless networks environments, but may be used in any type of network environment, including but not limited to, communication networks, public networks, such as the Internet, private networks, such as virtual private networks (VPN), local area networks, wide area networks, long haul network, or any other type of data network.
  • VPN virtual private networks
  • a multicast transmission is defined to cover transmissions in one or more of the following categories.
  • FIG. 1 shows a data network 100 that comprises one embodiment of a data delivery system.
  • the network 100 comprises a server 102, a data network 104, and terminals (1 thru N), as shown at 106.
  • the data network 104 may be any type and/or combination of wired and wireless networks that allow data to be transmitted between the server 102 and the terminals 106.
  • the network 104 includes a base station 108 that is coupled to the network 104 via the communication channel 110.
  • the communication channel 110 may be any type of wired or wireless communication channel that allows the base station 108 to communicate over the data network 104.
  • the base station is in communication with the terminals 106 via wireless communication links 112 that allow data to be wirelessly transmitted between the base station 108 and the terminals 106.
  • the wireless communication links 112 comprise forward communication channels, reverse communication channels, control channels, and any other type of communication channel that may be used to communicate information between the base station 108 and the terminals 106.
  • the server 102 communicates with the data network 104 via communication link 114, which may be a wired and/or wireless communication link.
  • the server 102 includes three data files 116 (or "content files") CI, C2, C3, which may be of any type or format.
  • the data files 116 are efficiently transmitted by the server 102 to the terminals 106 via the network 104.
  • the server 102 includes a cost estimator 118 that calculates transmission cost estimates related to the cost of transmitting the data 116 in both multicast and unicast transmissions from the server 102.
  • the cost estimator 118 operates to calculate a multicast cost indicator and a unicast cost indicator, which can be compared to determine the lower cost transmission technique.
  • the cost estimator uses various network and system parameters to determine the transmission cost estimates.
  • the costs estimates output from the cost estimator 118 are input to selection logic 120, which selects between multicast 122 and unicast 124 transmission logic to transmit the data to the terminals 106.
  • the selection logic 120 selects the least expensive transmission technique based on the cost estimates.
  • the server 102 operates to determine a reliability factor that indicates the reliability with which it desires to deliver the data. Based on the reliability factor, a selected level of FEC is applied to the data 116, and the resulting encoded data is interleaved to produce a data stream 126 that is transmitted to the terminals 106 using the selected transmission technique.
  • the server 102 Prior to transmission, the server 102 operates to generate a transmission schedule that describes how and when the data will be transmitted to the terminals 106.
  • the server 102 transmits the transmission schedule to the terminals 106 so that they will know in advance how the data is to be transmitted.
  • the delivery of the transmission schedule may be performed using any type of transmission channel, including but not limited to, any control channel, out-of-band channel, or any other type of transmission channel between the server 102 and the terminals 106.
  • the transmission schedule provides a time window when the terminals 106 may establish unicast sessions with the server to retrieve the data 116.
  • the transmission schedule identifies when the data 116 will be multicasted, so that the terminals can listen at the appropriate time to receive the data.
  • any terminal not receiving the data may request to receive the data via a unicast transmission.
  • a terminal may be out of a selected transmission range, be experiencing transmission interference, or be providing another service that prevents reception of the multicasted data.
  • requests (Reql and Req2, respectively) to the server 102 as shown at paths 130, 132, and 134.
  • the requests are requests to establish a unicast session with the server 102, so that the data may be retrieved by the terminals 1 and N using unicast transmissions.
  • the server 102 receives a number of requests to establish unicast sessions with the terminals 106.
  • the cost estimator 118 again calculates whether it is more cost effective to retransmit the data using a multicast transmission or establish the required number of unicast sessions to satisfy all the requests.
  • the data is then re-transmitted using the most cost efficient method. For example, if a re-broadcast using a multicast transmission is the most cost effective, a new transmission schedule is generated and sent to the terminals prior to the re-broadcast.
  • the server 102 operates to establish the required number of unicast sessions necessary to satisfy the requests it has received.
  • the data delivery system operates to determine the most cost efficient method for transmitted data to terminals on a data network. The determination may also be made with regards to any re-transmissions of the data until the data is provided to enough terminals that a selected level of service has been achieved.
  • embodiments of the data delivery system provide a hybrid transmission system since the same data may be both multicast and unicast based on the most efficient method of transmission given any particular network environment.
  • FIG. 2 shows a detailed diagram of one embodiment of a transmitting server 200 suitable for use in one embodiment of a data delivery system.
  • the server 200 may be the server 102 in FIG. 1.
  • the server 200 comprises processing logic 202, device resources 204, data memory 206, transmitting logic 208, and receiving logic 210, all coupled to an internal data bus 212.
  • the server 200 also comprises cost estimator 214 and FEC/interleaver logic 216, which are also coupled to the data bus 212.
  • the processing logic 202 comprises a CPU, processor, gate array, hardware logic, memory elements, virtual machine, software, and/or any combination of hardware and software.
  • the processing logic 202 generally comprises logic to execute machine-readable instructions and to control one or more other functional elements of the server 200 via the internal data bus 212.
  • the device resources and interfaces 204 comprise hardware and/or software that allow the server 200 to communicate with internal and external systems.
  • internal systems may include mass storage systems, memory, display driver, modem, or other internal device resources.
  • the external systems may include user interface devices, printers, disk drives, or other local devices or systems.
  • the data memory 206 comprises any type of memory device and includes data (or content) to be transmitted to one or more terminals on a data network.
  • the content may comprise multimedia content or any other type of content.
  • the transmitting logic 208 comprises hardware and/or software that operates to allow the server 200 to transmit data or other information to remote devices or systems.
  • the transmitting logic 208 comprises multicast logic that operates to multicast data and/or other information over a multicast channel 218 to remote devices, such as mobile terminals.
  • the multicast logic allows the server 200 to transmit a multicast transmission over a data network to a plurality of remote terminals.
  • the transmitting logic 208 also comprises unicast logic that operates to unicast data and/or other information over a unicast channel 220 to remote devices, such as remote terminals.
  • the unicast logic allows the server 200 to establish one or more unicast sessions to transmit data over the unicast channel 220 to one or more remote terminals.
  • the transmitting logic 208 also comprises control channel logic to transmit control information over a control channel 222 to remote devices.
  • the control channel logic may comprise any suitable hardware and/or software and implement any type of control channel suitable for transmitting information from the server 200 to one or more remote terminals.
  • the receiving logic 210 comprises hardware and/or software that operates to allow the server 200 to receive data and other information from remote devices via a receiving channel 224.
  • the receiving logic 210 interfaces to a data network via the receiving channel 224 to allow the server 200 to receive data requests that have been transmitted from remote terminal devices.
  • the cost estimator logic 214 comprises a CPU, processor, gate array, hardware logic, memory elements, virtual machine, software, and/or any combination of hardware and software.
  • the cost estimator 214 operates to calculate the costs of multicast and unicast transmissions of content over a data network to a plurality of remote terminals.
  • the cost estimator uses a variety of parameters to calculate cost indicators that include a multicast cost indicator and a unicast cost indicator that indicate the cost for multicast and unicast transmissions.
  • the cost parameters include, but are not limited to, actual cost, bandwidth utilization, network utilization, location, delay, power, and any other resource usage or cost parameter. In one embodiment, the cost parameters may vary from application to application, however, any cost calculating function may be utilized.
  • the cost indicators output from the cost estimator 214 can be used to determine whether a multicast or unicast of data provides the least expensive method of transmitting the data to the remote terminals.
  • the FEC/interleaver logic 216 comprises a CPU, processor, gate array, hardware logic, memory elements, virtual machine, software, and/or any combination of hardware and software. The FEC/interleaver 216 operates to provide FEC to the content to be transmitted so that the content may be delivered with a selected quality of service (QoS) level.
  • QoS quality of service
  • the FEC/interleaver 216 may provide any type of FEC to the content to be transmitted. Additionally, the FEC/interleaver 216 also operates to interleave multiple content files to provide diversity and prevent head of the line (HOL) blocking. Thus, the FEC/interlieaver 216 may provide any suitable interleaving technique to provide transmission diversity.
  • HOL head of the line
  • the server 200 is suitable for use in one or more embodiments of a data delivery system to efficiently deliver data over a data network to a plurality of terminals.
  • the server 200 has content (1, 2, 3) stored in the data memory 206 to be delivered to the receiving terminals.
  • the cost estimator logic 214 is used to estimate cost indicators that indicate the costs associated with transmitting the content using multicast and unicast transmissions.
  • the processing logic 202 receives the cost indicators from the cost estimator 214, and selects the least expensive transmission technique for transmitting the content to the remote terminals. In one embodiment, the processing logic 202 generates a transmission schedule that described how and when the content is be transmitted to the remote terminals.
  • the transmission schedule describes when one or more multicasts of the content will be transmitted by the server for reception by the remote terminals.
  • the transmission schedule describes a window when terminals are allowed to establish a unicast session with the server for the purpose of retrieving the content.
  • the data delivery system comprises program instructions stored on a computer-readable media, which when executed by the processing logic 202, provides the functions of the server 200 described herein.
  • instructions may be loaded into the server 200 from a computer-readable media, such as a floppy disk, CDROM, memory card, FLASH memory device, RAM, ROM, or any other type of memory device or computer-readable media that interfaces to the server 200 via the device resources 204.
  • the instructions may be downloaded into the server 200 from a network resource that interfaces to the sever 200 via the receiving logic 210.
  • the instructions when executed by the processing logic 202, provide one or more embodiments of a data delivery system as described herein. [0049] FIG.
  • FIG. 3 shows one embodiment of a method 300 for operating a server in one embodiment of a data delivery system.
  • the method 300 will be described with reference to the server 200 shown in FIG. 2.
  • the processing logic 202 executes program instructions to perform the functions described below.
  • a multicast cycle indicator is initialized.
  • the multicast cycle indicator (N) is initialized to zero.
  • the cycle indicator N is stored and initialized by the processing logic 202 and indicates the number of multicast transmission cycles to be used to transmit the data to remote terminals.
  • the server computes the cost of unicast (U) and multicast (M) transmissions of content to be transmitted to a plurality of remote terminals.
  • the cost of multicast transmissions is computed at block 306, and the cost of unicast transmissions is computed at block 308.
  • the computations for each transmission type require inputs such as usage data, receiver's outage probability, frame error rate, number of subscribers, FEC, protocol overhead, and etc.
  • the cost estimator 214 operates to compute a multicast cost indicator and a unicast cost indicator.
  • a test is performed to compare the cost of multicast (M) and unicast (U) transmissions. For example, the test is performed by the processing logic 202 based on cost indicators received from the cost estimator 214. If the test determines that it is more cost effective to send the content using umcast transmissions, the method proceeds to block 312. If the test determines that it is more cost effective to send the content using a multicast transmission, the method proceeds to block 314. [0053] At block 312, a test is performed to determine whether the method is at the initial multicast cycle, such that no multicasts have been scheduled.
  • the test is performed by the processing logic 202. If the multicast cycle is set to its initial value of zero, then no multicasts have been scheduled and the method proceeds to block 316. If the multicast cycle is set to a number other than zero, then one or more multicast transmissions have already been scheduled and the method proceeds to block 318. [0054] At block 316, a unicast transmission schedule is generated so that the content may be transmitted to the remote terminals using unicast transmission. For example, the cost analysis done by the processing logic 202 has determined that it is more cost effective to transmit the content using unicast transmissions. In one embodiment, the processing logic 202 generates a transmission schedule that includes a contact window for remote terminals to retrieve the content using unicast transmissions.
  • the contact window specifies the time interval that a remote terminal can set up a unicast session with the server to retrieve the content.
  • the processing logic 202 operates to establish unicast sessions with the remote terminals and the content is transmitted to those terminals using the transmitting logic 208 and the unicast channel 220.
  • the method then proceeds to block 320 where the transmission schedule is transmitted to the terminals using the control channel 222 and the data is transmitted accordingly.
  • one or more multicast cycles have been scheduled since the cycle indicator N is not equal to zero.
  • the processing logic 202 has computed the number of multicast cycles needed to transmit the content to the majority of terminals, but has determined that unicast transmissions would be more cost effective to transmit the content to enough additional terminals to achieve a desired level of service.
  • the processing logic 202 generates a transmission schedule describing when each multicast cycle will take place.
  • the transmission schedule will be transmitted to the remote terminals so that they may listen for the multicasts at the appropriate time.
  • FEC may be applied to the content and if there are multiple content files to be transmitted, interleaving of multicast cycles from one content file with multicast cycles from other content files is performed by the FEC/interleaving logic 216 to improve the performance of the system.
  • the data delivery system operates to allow one or more multicasts to efficiently transmit data to remote terminals. Those terminals not receiving the multicasts may then request unicast session to retrieve the data from the server. As a result, the system operates to provide the most cost effective way to transmit data using a hybrid of multicast and unicast transmissions.
  • the multicast cycle N is incremented by 1. For example, the processing logic 202 increments the multicast cycle N and stores the value. At this point, one or more multicasts will be used to transmit content to the remote receivers.
  • the method then proceeds back to block 304 where new cost indicators are computed to determine if additional multicasts will be scheduled. However, in a parallel process, a new computation of the cost of unicast transmissions is performed starting at block 322.
  • the number of remote terminals for which the network will not be able to reach during the previously calculated multicast cycle are computed. For example, the processing logic 202 performs the functions at blocks 322 through 330 to determine the number of unserved remote terminals that will not have received the content after any scheduled multicasts. After the number of unserved terminals is computed, the method returns to block 304 to repeat the process of calculating the cost of multicast and unicast transmissions.
  • the method 300 illustrates just one embodiment and that changes, additions, or rea ⁇ angements of the flow elements may be made without deviating from the scope of the described embodiments.
  • FIG. 4 shows a detailed diagram of one embodiment of a terminal 400 suitable for use in one embodiment of a data delivery system.
  • the terminal 400 comprises processing logic 402, data memory 404, device resources and interfaces 406, transmitting logic 408 and receiving logic 410, all coupled to a data bus 412.
  • the terminal 400 also comprises scheduling logic 414, which is also coupled to the data bus 412.
  • the processing logic 402 comprises a CPU, processor, gate array, hardware logic, memory elements, virtual machine, software, and/or any combination of hardware and software.
  • the processing logic 402 generally comprises logic to execute machine-readable instructions and to control one or more other functional elements of the terminal 400 via the internal data bus 412.
  • the device resources and interfaces 406 comprise hardware and/or software that allow the terminal 400 to communication with internal and external systems.
  • internal systems may include mass storage systems, memory, display driver, modem, or other internal device resources.
  • the external systems may include user interface devices, printers, disk drives, or other local devices or systems.
  • the transmitting logic 408 comprises hardware and/or software that operates to allow the terminal 400 to transmit data and other information to external devices or systems.
  • the transmitting logic 408 may comprise logic to transmit data and/or other information over a data network to other devices, such as server.
  • the processing logic 402 may use the transmitting logic 408 to transmit a request to a server to establish a unicast session in a data network.
  • the receiving logic 410 comprises hardware and/or software that operates to allow the terminal 400 to receive data and other information from remote devices or systems.
  • the receiving logic 410 comprises multicast receiving logic that operates to receive data and/or other information multicasted over a multicast channel 418 from remote devices, such as a network server.
  • the multicast receiving logic allows the terminal 400 to receive a multicast transmission over a data network from a network server.
  • the receiving logic 410 also comprises unicast logic that operates to receive unicast data and/or other information over a unicast channel 220 from a remote server.
  • the unicast logic allows the terminal 400 to establish one or more unicast sessions to receive data over the unicast channel 220 from a remote server.
  • the receiving logic 408 also comprises control channel logic to receive control information from a remote server over a control channel 422.
  • the control channel logic may comprise any suitable hardware and/or software and implement any type of control channel suitable for receiving information from a remote server.
  • the data memory 404 comprises any type of memory suitable for storing information at the terminal 400.
  • the terminal 400 may receive content that was transmitted in a multicast transmission from a server.
  • the processing logic 402 operates to store the content in the memory 404 for further processing.
  • the scheduling logic 414 operates to schedule the reception of data from a remote server.
  • the scheduling logic 414 may receive a transmission schedule from a remote server via the control channel 422.
  • the transmission schedule describes how and when data will be transmitted from a server for reception by the terminal 400. If the transmission schedule identifies a time window that the data may be retrieved in a unicast session, the scheduling logic 414 alerts the processing logic 402 to establish a unicast session with the server to retrieve the data within the time window. If the transmission schedule indicates that the data will be multicasted in one or more multicast cycles, the scheduling logic 414 alerts the processing logic 402 to listen for the data multicasts at the appropriate time.
  • the terminal 400 operates according to one or more embodiments of a data delivery system to receive data that is efficiently transmitted from a transmitting server on a data network.
  • the terminal 400 receives a transmission schedule from the server via the control channel 422.
  • the processing logic 402 processes the transmission schedule and determines if the data is to be multicast or unicast to the terminal. If the data is to be unicast, the transmission schedule indicates a time window when the terminal 400 should establish a unicast session to retrieve the data. If the data is to be multicasted, the transmission schedule indicates when one or more multicasts of the data will occur.
  • the scheduling logic 414 operates to process the received transmission schedule so that the terminal 400 will be able to obtain the data based on the identified transmission technique.
  • the processing logic 402 requests a unicast session with the server to retrieve the data.
  • the data delivery system allows the transmitting server to transmit the data in the most resource efficient and cost effective manner and the terminal 400 operates to receive those transmissions.
  • the data delivery system comprises program instructions stored on a computer-readable media, which when executed by the processing logic 402, provides the functions of the terminal 400 described herein.
  • instructions may be loaded into the terminal 400 from a computer-readable media, such as a floppy disk, CDROM, memory card, FLASH memory device, RAM, ROM, or any other type of memory device or computer-readable media that interfaces to the terminal 400 via the device resources 406.
  • the instructions may be downloaded into the terminal 400 from a network resource that interfaces to the terminal 400 via the receiving logic 410.
  • the instructions when executed by the processing logic 402, provide one or more embodiments of a data delivery system as described herein.
  • FIG. 5 shows one embodiment of a method 500 for operating a terminal in one embodiment of a data delivery system.
  • the method 500 will be described with reference to the terminal 400 shown in FIG. 4.
  • the processing logic 402 executes program instructions to perform the functions described below.
  • a transmission schedule is received at the terminal from a server in a data network.
  • the processing logic 402 receives the transmission schedule via the control channel 422 of the receiving logic 410.
  • the transmission schedule describes when and how many times content will be multicast from the server so that it may be received by the terminal. If the content is to be unicast to the terminal, the transmission schedule describes a time window when the terminal may establish a unicast session to retrieve the data from the server.
  • a test is performed to determine if the content will be multicast to the terminal. For example, the processing logic 402 performs this test using information received in the transmission schedule.
  • a multicast cycle indicator N will be greater then zero, and the method proceeds to block 508. If the multicast cycle indicator N is equal to zero, the content is to be transmitted via a unicast session, and the method proceeds to block 506.
  • a unicast session is established between the terminal and the transmitting server so that the data may be transmitted to the terminal.
  • the scheduling logic 414 schedules a time when the unicast session may be established based on time window contained in the received transmission schedule.
  • the scheduling logic 414 notifies the processing logic 402 about the scheduled unicast time and the processing logic 402 uses the transmitting logic 416 to request a unicast session with the server.
  • the receiving logic 410 then establishes the unicast session with the server via the unicast channel 420.
  • the terminal retrieves the data via the umcast session.
  • the processing logic 402 retrieves the data via the unicast channel 420 and stores the retrieved data in the data memory 404. After the data is received, the method ends at block 514.
  • the terminal attempts to receive the data during a multicast cycle.
  • the scheduling logic 414 indicates to the processing logic 402 when the data will be multicasted from the server.
  • the processing logic 402 controls the receiving logic 410 to receive the multicast via the multicast channel 418.
  • a test is performed to determine if the terminal was able to receive the data during the previous multicast cycle.
  • the processing logic 402 determines if the data was accurately received.
  • the data is encoded with FEC and/or interleaved.
  • the processing logic 402 operates to reverse these operations to determine if the data was received without errors. If the data was received without errors, the method ends at block 514.
  • the method proceeds to block 516.
  • the multicast cycle indicator N is decremented.
  • the processing logic 402 decrements the cycle indicator so that it indicates the next multicast cycle to be received.
  • a test is performed to determine if any more multicast cycles remain. For example, the if the multicast cycle indicator N is zero, no more multicast cycles exist and the method proceeds to block 506 where the terminal establishes a unicast session with the transmitting server to retrieve the data. If the cycle indicator N is no zero, more multicast cycles will be performed and the method proceeds to block 508 where the terminal 400 attempts to accurately receive the multicasted data in the next multicast cycle.
  • FIG. 6 shows a graph 600 that illustrates the cost and resource efficiency achieved utilizing one or more embodiments of the data delivery system. For example, the graph 600 illustrates that there is a diminishing return with continued multicast transmissions after a certain number of multicast cycles.
  • the graph 600 illustrates that during initial multicast transmission cycles the number of terminals not receiving the data decreases until point 602 is reached.
  • the costs associated with additional multicast transmissions exceed the cost associated with unicast transmission after point 602 is reached.
  • continued multicast transmissions will be very inefficient because the network's significant multicast resources will be used to reach only a few terminals, as shown by the graph at 604.
  • the data delivery system provides for hybrid transmission of data that results in extremely efficient data distribution.

Abstract

Methods and apparatus for hybrid multicast and unicast transmissions in a data network. A method is provided for operating a server on a data network. The method includes computing a multicast cost indicator and a unicast cost indicator that are associated with multicast and unicast transmission of data. The method also includes determining that the multicast cost indicator is less than the unicast cost indicator, and generating a transmission schedule that describes when the data will be multicasted on the data network. The method also includes transmitting the transmission schedule, and multicasting the data according to the transmission schedule.

Description

METHODS AND APPARATUS FOR HYBRID MULTICAST AND UNICAST TRANSMISSIONS IN A DATA NETWORK
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present application claims the benefit of priority from a co-pending U.S. Provisional Patent Application entitled, "METHOD AND APPARATUS FOR HYBRID MULΉCAST AND UNICAST TRANSMISSION" having serial number 60/572,453 and filed on May 18, 2004, the disclosure of which is incorporated by reference herein in its entirety for all purposes.
BACKGROUND
I. FIELD
[0002] The present invention relates generally to content delivery in a network environment, and more particularly, to methods and apparatus for hybrid multicast and unicast transmissions in a data network.
II. DESCRIPTION OF THE RELATED ART
[0003] Data networks, such as wireless communication networks, have to trade off between services customized for a single terminal and services broadcasted/multicasted to all terminals. The distribution of content (data) to a large number of terminals (subscribers) is a complicated problem. Network systems that implement multicast technology can deliver data over a wide area, however, because it is difficult for the sender to know about the success or failure of such deliveries, the costs and resource utilization may be excessive and wasteful.
[0004] In one type of multicast transmission, one copy of the information is simultaneously transmitted to hundreds or thousands of receivers. To achieve transmission reliability, several techniques have been proposed that can be generally categorized into three approaches described as follows.
[0005] In the first approach, the sender maintains state information for each receiver of a multicast transmission by keeping track of an acknowledgement response (ACK) that it expects to receive from each receiver of the transmission. If the acknowledgement response is not received before expiration of a selected timeout interval, the sender retransmits the information to the multicast group. This approach does not scale well when the receiving population is very large, and is susceptible to the well known "ACK implosion" problem, where the sender is inundated with an overwhelming number of acknowledgement responses. In addition, the sender often does not know who the members (receivers) of the multicast group are, which makes it difficult for the sender to maintain state information for the receivers. [0006] In the second approach, the scalability problem of the first approach is addressed by having each receiver transmit a negative acknowledgement signal (NACK) if the receiver does not obtain the information without error. A variation of this approach is to have an intermediate node aggregate NACK signals from the downstream nodes and forward only one NACK to the upstream node. The upstream node may then retransmit the information.
[0007] In the third approach, transmission reliability is achieved via redundancy. The simplest form of redundancy is repetition. Using repetition in the third approach, the same information is retransmitted several times. Another form or redundancy is to perform forward error correction (FEC) on the information to be transmitted. Using smart coding mechanisms the same reliability factor is achieved using less redundancy information.
[0008] However, in all the above approaches, a retransmission of data is sent to the entire set of receivers. This retransmission mechanism may work satisfactorily in a wire line network environment since only one copy of the information needs to be sent. The routing protocol within the network handles duplication of data packets to deliver the data to the branches of the distribution tree. In addition, the transmission of information to the leaves (last hop) of the tree is relatively inexpensive given the high bandwidth of the wire line network.
[0009] Unfortunately, unlike the wire line network, the last hop in a wireless network is the most expensive resource. This is the over-the-air resource between a Base Station Transceiver and a plurality of mobile terminals. A broadcast transmission in a wireless network is not subject to transmission power control since it is engineered to obtain a specific cell coverage and frame error rate. Thus, broadcasted transmissions in a wireless network utilize more power than a unicast transmission because of the larger coverage range that the broadcasted transmission is targeted to reach. As a result, a broadcast transmission is generally more expensive than a unicast transmission. [0010] Furthermore, in wireless broadcast transmission the acknowledgment response from the receiving terminals is limited. Reliability is achieved by FEC or by repeat broadcasts. Unfortunately, even with high FEC or repeat broadcasts, some users may not be able to receive the data. For example, mobiles terminals that did not receive the data may be outside the broadcast zone, or their reception of the broadcast may be interrupted because of voice service handling. Thus, re-broadcasting the information would be wasteful because these terminals will not be able to receive the information. It would also be wasteful to re-broadcast information when the number of terminals not receiving the information is very small. For example, if high FEC is use to achieve reliability, the number of mobile terminals that are unable to accurately receive the information in a given sector may be very small. Thus, it would be wasteful to use the entire broadcast channel to re-broadcast the information to a small subset of mobile terminals.
[0011] Therefore, what is needed is a delivery system for use in network environments that operates to determine the most resource efficient and cost effective way to transmit data to a large number of receiving terminals. For example, the system should operate in a wireless network environment to determine if it is more efficient and/or cost effective to use unicast or multicast transmission techniques to transmit data to a large number of receiving terminals.
SUMMARY
[0012] In one or more embodiments, a data delivery system, comprising methods and apparatus, is provided that operates to efficiently deliver data to a plurality of terminals in a data network. In one embodiment, the system employs a hybrid of multicast and unicast transmissions to delivery data (or content) to the terminals. The system is especially well suited for use in wireless networks where wireless transmission of data from a base station to multiple mobile terminals utilizes expensive over-the-air resources.
[0013] In one embodiment, a sender in the system uses various parameters to determine the cost of sending data using either multicast or unicast transmissions to a plurality of terminals in a network. Based on which transmission technique is less expensive, the sender generates a transmission schedule which identifies how and when the data will be transmitted. If the data is to be multicasted, the sender multicasts the data according to the transmission schedule. If a terminal is not able to receive the data when it is transmitted, the terminal may request to establish a unicast session with the sender to retrieve the data. In one embodiment, after the sender multicasts data to the terminals, the sender may again use a transmission cost analysis to determine how any re-transmissions are performed. Thus, the system avoids costly re-broadcasts of the data to all the terminals if less expensive unicast sessions would deliver the data to enough terminals to satisfy the desired quality of service requirements. As a result, precious air-link resources are efficiently utilized because wasteful re-broadcasts of the data are avoided.
[0014] In one embodiment, a method is provided for operating a server on a data network. The method comprises computing a multicast cost indicator and a unicast cost indicator that are associated with multicast and unicast transmission of dat. The method also comprises determining that the multicast cost indicator is less than the unicast cost indicator, and generating a transmission schedule that describes when the data will be multicasted on the data network. The method also comprises transmitting the transmission schedule, and multicasting the data according to the transmission schedule. [0015] In one embodiment, apparatus is provided for use in a server on a data network. The apparatus comprises a cost estimator that operates to compute a multicast cost indicator and a unicast cost indicator that are associated with multicast and unicast transmission of data. The apparatus also comprises processing logic that operates to determine that the multicast cost indicator is less than the unicast cost indicator, and generate a transmission schedule that describes when the data will be multicast on the data network. The apparatus also comprises transmitting logic that operates to transmit the transmission schedule, and multicasts the data according to the transmission schedule.
[0016] In one embodiment, apparatus is provided for use in a server on a data network. The apparatus comprises means for computing a multicast cost indicator and a unicast cost indicator that are associated with multicast and unicast transmission of data, and means for determining that the multicast cost indicator is less than the unicast cost indicator. The apparatus also comprises means for generating a transmission schedule that describes when the data will be multicasted on the data network, and means for transmitting the transmission schedule. The apparatus also comprises means for multicasting the data according to the transmission schedule. [0017] In one embodiment, a computer-readable media comprising instructions, which when executed by processing logic in a server, operate to transmit data on a data network. The computer-readable media comprises instructions for computing a multicast cost indicator and a unicast cost indicator that are associated with multicast and unicast transmission of data, and instructions for determining that the multicast cost indicator is less than the unicast cost indicator. The computer-readable media also comprises instructions for generating a transmission schedule that describes when the data will be multicasted on the data network, and instructions for transmitting the transmission schedule. The computer readable media also comprises instructions for multicasting the data according to the transmission schedule.
[0018] In one embodiment, a method is provided for operating a receiving terminal on a data network. The method comprises receiving a transmission schedule that describes how data will be transmitted. The method also comprises determining that the data is to be multicasted on the data network in one or more multicast cycles, and receiving the multicasted data during the one or more multicast cycles. [0019] In one embodiment, apparatus is provided for use in a receiving terminal on a data network. The apparatus comprises logic to receive a transmission schedule that describes how data will be transmitted. The apparatus also comprises logic to determine that the data is to be multicasted on the data network in one or more multicast cycles, and logic to receive the multicasted data during the one or more multicast cycles. [0020] Other aspects, advantages, and features of the present invention will become apparent after review of the hereinafter set forth Brief Description of the Drawings, Detailed Description, and the Claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0021] The foregoing aspects and the attendant advantages of the embodiments described herein will become more readily apparent by reference to the following detailed description when taken in conjunction with the accompanying drawings wherein:
[0022] FIG. 1 shows a data network that comprises one embodiment of a data delivery system;
[0023] FIG. 2 shows a detailed diagram of one embodiment of a transmitting server suitable for use in one embodiment of a data delivery system;
[0024] FIG. 3 shows one embodiment of a method for operating a server in one embodiment of a data delivery system; [0025] FIG. 4 shows a detailed diagram of one embodiment of a terminal suitable for use in one embodiment of a data delivery system;
[0026] FIG. 5 shows one embodiment of a method for operating a terminal in one embodiment of a data delivery system; and
[0027] FIG. 6 shows a graph that illustrates the cost and resource efficiency achieved utilizing one or more embodiments of the described data delivery system.
DETAILED DESCRIPTION
[0028] The following detailed description describes one or more embodiments of a data delivery system that operate to efficiently deliver data from a transmitting server to a plurality of terminals in a wireless network. In one embodiment, the system utilizes a hybrid transmission technique that combines multicast and unicast transmissions to efficiently delivery data to the terminals. The system is especially well suited for use in wireless networks environments, but may be used in any type of network environment, including but not limited to, communication networks, public networks, such as the Internet, private networks, such as virtual private networks (VPN), local area networks, wide area networks, long haul network, or any other type of data network. [0029] In the following description, a multicast transmission is defined to cover transmissions in one or more of the following categories.
1. One-to-Many (one sender and many receivers)
2. Many-to-Many (many senders and many receivers)
3. Many-to-One (many senders and one receiver)
Thus, a "broadcast" transmission is generally defined as the first type of multicast transmission. However, the term "broadcast" is also used within this document to mean a transmission within any of the identified multicast categories. [0030] FIG. 1 shows a data network 100 that comprises one embodiment of a data delivery system. The network 100 comprises a server 102, a data network 104, and terminals (1 thru N), as shown at 106. The data network 104 may be any type and/or combination of wired and wireless networks that allow data to be transmitted between the server 102 and the terminals 106. The network 104 includes a base station 108 that is coupled to the network 104 via the communication channel 110. The communication channel 110 may be any type of wired or wireless communication channel that allows the base station 108 to communicate over the data network 104. The base station is in communication with the terminals 106 via wireless communication links 112 that allow data to be wirelessly transmitted between the base station 108 and the terminals 106. In one embodiment, the wireless communication links 112 comprise forward communication channels, reverse communication channels, control channels, and any other type of communication channel that may be used to communicate information between the base station 108 and the terminals 106.
[0031] The server 102 communicates with the data network 104 via communication link 114, which may be a wired and/or wireless communication link. For the purpose of this description, it will be assumed that the server 102 includes three data files 116 (or "content files") CI, C2, C3, which may be of any type or format. In one or more embodiments of the data delivery system, the data files 116 are efficiently transmitted by the server 102 to the terminals 106 via the network 104. [0032] In one embodiment, the server 102 includes a cost estimator 118 that calculates transmission cost estimates related to the cost of transmitting the data 116 in both multicast and unicast transmissions from the server 102. For example, the cost estimator 118 operates to calculate a multicast cost indicator and a unicast cost indicator, which can be compared to determine the lower cost transmission technique. The cost estimator uses various network and system parameters to determine the transmission cost estimates.
[0033] The costs estimates output from the cost estimator 118 are input to selection logic 120, which selects between multicast 122 and unicast 124 transmission logic to transmit the data to the terminals 106. In one embodiment, the selection logic 120 selects the least expensive transmission technique based on the cost estimates. [0034] To provide a selected level of service, the server 102 operates to determine a reliability factor that indicates the reliability with which it desires to deliver the data. Based on the reliability factor, a selected level of FEC is applied to the data 116, and the resulting encoded data is interleaved to produce a data stream 126 that is transmitted to the terminals 106 using the selected transmission technique. [0035] Prior to transmission, the server 102 operates to generate a transmission schedule that describes how and when the data will be transmitted to the terminals 106. The server 102 transmits the transmission schedule to the terminals 106 so that they will know in advance how the data is to be transmitted. The delivery of the transmission schedule may be performed using any type of transmission channel, including but not limited to, any control channel, out-of-band channel, or any other type of transmission channel between the server 102 and the terminals 106. If the data is to be unicasted to the terminals, the transmission schedule provides a time window when the terminals 106 may establish unicast sessions with the server to retrieve the data 116. If the data is to be multicasted to the terminals, the transmission schedule identifies when the data 116 will be multicasted, so that the terminals can listen at the appropriate time to receive the data.
[0036] If the data is multicasted, any terminal not receiving the data may request to receive the data via a unicast transmission. For example, a terminal may be out of a selected transmission range, be experiencing transmission interference, or be providing another service that prevents reception of the multicasted data. For example, in FIG. 1, it will be assumed that terminals 1 and N did not receive the multicasted data, and so these terminals send requests (Reql and Req2, respectively) to the server 102 as shown at paths 130, 132, and 134. The requests are requests to establish a unicast session with the server 102, so that the data may be retrieved by the terminals 1 and N using unicast transmissions.
[0037] In one embodiment, after the data is multicasted, the server 102 receives a number of requests to establish unicast sessions with the terminals 106. After the server 102 receives the requests, the cost estimator 118 again calculates whether it is more cost effective to retransmit the data using a multicast transmission or establish the required number of unicast sessions to satisfy all the requests. After the determination is made, the data is then re-transmitted using the most cost efficient method. For example, if a re-broadcast using a multicast transmission is the most cost effective, a new transmission schedule is generated and sent to the terminals prior to the re-broadcast. If unicast sessions are the most cost effective, the server 102 operates to establish the required number of unicast sessions necessary to satisfy the requests it has received. [0038] Thus, in one or more embodiments, the data delivery system operates to determine the most cost efficient method for transmitted data to terminals on a data network. The determination may also be made with regards to any re-transmissions of the data until the data is provided to enough terminals that a selected level of service has been achieved. As a result, embodiments of the data delivery system provide a hybrid transmission system since the same data may be both multicast and unicast based on the most efficient method of transmission given any particular network environment. [0039] FIG. 2 shows a detailed diagram of one embodiment of a transmitting server 200 suitable for use in one embodiment of a data delivery system. For example, the server 200 may be the server 102 in FIG. 1. The server 200 comprises processing logic 202, device resources 204, data memory 206, transmitting logic 208, and receiving logic 210, all coupled to an internal data bus 212. The server 200 also comprises cost estimator 214 and FEC/interleaver logic 216, which are also coupled to the data bus 212.
[0040] In one or more embodiments, the processing logic 202 comprises a CPU, processor, gate array, hardware logic, memory elements, virtual machine, software, and/or any combination of hardware and software. Thus, the processing logic 202 generally comprises logic to execute machine-readable instructions and to control one or more other functional elements of the server 200 via the internal data bus 212. [0041] The device resources and interfaces 204 comprise hardware and/or software that allow the server 200 to communicate with internal and external systems. For example, internal systems may include mass storage systems, memory, display driver, modem, or other internal device resources. The external systems may include user interface devices, printers, disk drives, or other local devices or systems. [0042] The data memory 206 comprises any type of memory device and includes data (or content) to be transmitted to one or more terminals on a data network. For example, the content may comprise multimedia content or any other type of content. [0043] The transmitting logic 208 comprises hardware and/or software that operates to allow the server 200 to transmit data or other information to remote devices or systems. For example, in one embodiment, the transmitting logic 208 comprises multicast logic that operates to multicast data and/or other information over a multicast channel 218 to remote devices, such as mobile terminals. For example, the multicast logic allows the server 200 to transmit a multicast transmission over a data network to a plurality of remote terminals. The transmitting logic 208 also comprises unicast logic that operates to unicast data and/or other information over a unicast channel 220 to remote devices, such as remote terminals. For example, the unicast logic allows the server 200 to establish one or more unicast sessions to transmit data over the unicast channel 220 to one or more remote terminals. The transmitting logic 208 also comprises control channel logic to transmit control information over a control channel 222 to remote devices. The control channel logic may comprise any suitable hardware and/or software and implement any type of control channel suitable for transmitting information from the server 200 to one or more remote terminals. [0044] The receiving logic 210 comprises hardware and/or software that operates to allow the server 200 to receive data and other information from remote devices via a receiving channel 224. For example, the receiving logic 210 interfaces to a data network via the receiving channel 224 to allow the server 200 to receive data requests that have been transmitted from remote terminal devices. [0045] The cost estimator logic 214 comprises a CPU, processor, gate array, hardware logic, memory elements, virtual machine, software, and/or any combination of hardware and software. The cost estimator 214 operates to calculate the costs of multicast and unicast transmissions of content over a data network to a plurality of remote terminals. For example, the cost estimator uses a variety of parameters to calculate cost indicators that include a multicast cost indicator and a unicast cost indicator that indicate the cost for multicast and unicast transmissions. The cost parameters include, but are not limited to, actual cost, bandwidth utilization, network utilization, location, delay, power, and any other resource usage or cost parameter. In one embodiment, the cost parameters may vary from application to application, however, any cost calculating function may be utilized. The cost indicators output from the cost estimator 214 can be used to determine whether a multicast or unicast of data provides the least expensive method of transmitting the data to the remote terminals. [0046] The FEC/interleaver logic 216 comprises a CPU, processor, gate array, hardware logic, memory elements, virtual machine, software, and/or any combination of hardware and software. The FEC/interleaver 216 operates to provide FEC to the content to be transmitted so that the content may be delivered with a selected quality of service (QoS) level. In one or more embodiments, the FEC/interleaver 216 may provide any type of FEC to the content to be transmitted. Additionally, the FEC/interleaver 216 also operates to interleave multiple content files to provide diversity and prevent head of the line (HOL) blocking. Thus, the FEC/interlieaver 216 may provide any suitable interleaving technique to provide transmission diversity.
[0047] The server 200 is suitable for use in one or more embodiments of a data delivery system to efficiently deliver data over a data network to a plurality of terminals. During operation, the server 200 has content (1, 2, 3) stored in the data memory 206 to be delivered to the receiving terminals. The cost estimator logic 214 is used to estimate cost indicators that indicate the costs associated with transmitting the content using multicast and unicast transmissions. The processing logic 202 receives the cost indicators from the cost estimator 214, and selects the least expensive transmission technique for transmitting the content to the remote terminals. In one embodiment, the processing logic 202 generates a transmission schedule that described how and when the content is be transmitted to the remote terminals. For example, in one embodiment, the transmission schedule describes when one or more multicasts of the content will be transmitted by the server for reception by the remote terminals. In another embodiment, the transmission schedule describes a window when terminals are allowed to establish a unicast session with the server for the purpose of retrieving the content. A more detailed description of the operation of the data delivery system and the operation of the server 200 is provided in another section of this document.
[0048] In one embodiment, the data delivery system comprises program instructions stored on a computer-readable media, which when executed by the processing logic 202, provides the functions of the server 200 described herein. For example, instructions may be loaded into the server 200 from a computer-readable media, such as a floppy disk, CDROM, memory card, FLASH memory device, RAM, ROM, or any other type of memory device or computer-readable media that interfaces to the server 200 via the device resources 204. In another embodiment, the instructions may be downloaded into the server 200 from a network resource that interfaces to the sever 200 via the receiving logic 210. The instructions, when executed by the processing logic 202, provide one or more embodiments of a data delivery system as described herein. [0049] FIG. 3 shows one embodiment of a method 300 for operating a server in one embodiment of a data delivery system. For clarity, the method 300 will be described with reference to the server 200 shown in FIG. 2. In one or more embodiments, the processing logic 202 executes program instructions to perform the functions described below.
[0050] At block 302, a multicast cycle indicator (N) is initialized. For example, the multicast cycle indicator (N) is initialized to zero. In one embodiment, the cycle indicator N is stored and initialized by the processing logic 202 and indicates the number of multicast transmission cycles to be used to transmit the data to remote terminals. [0051] At block 304, the server computes the cost of unicast (U) and multicast (M) transmissions of content to be transmitted to a plurality of remote terminals. The cost of multicast transmissions is computed at block 306, and the cost of unicast transmissions is computed at block 308. The computations for each transmission type require inputs such as usage data, receiver's outage probability, frame error rate, number of subscribers, FEC, protocol overhead, and etc. For example, the cost estimator 214 operates to compute a multicast cost indicator and a unicast cost indicator. [0052] At block 310, a test is performed to compare the cost of multicast (M) and unicast (U) transmissions. For example, the test is performed by the processing logic 202 based on cost indicators received from the cost estimator 214. If the test determines that it is more cost effective to send the content using umcast transmissions, the method proceeds to block 312. If the test determines that it is more cost effective to send the content using a multicast transmission, the method proceeds to block 314. [0053] At block 312, a test is performed to determine whether the method is at the initial multicast cycle, such that no multicasts have been scheduled. For example, the test is performed by the processing logic 202. If the multicast cycle is set to its initial value of zero, then no multicasts have been scheduled and the method proceeds to block 316. If the multicast cycle is set to a number other than zero, then one or more multicast transmissions have already been scheduled and the method proceeds to block 318. [0054] At block 316, a unicast transmission schedule is generated so that the content may be transmitted to the remote terminals using unicast transmission. For example, the cost analysis done by the processing logic 202 has determined that it is more cost effective to transmit the content using unicast transmissions. In one embodiment, the processing logic 202 generates a transmission schedule that includes a contact window for remote terminals to retrieve the content using unicast transmissions. The contact window specifies the time interval that a remote terminal can set up a unicast session with the server to retrieve the content. The processing logic 202 operates to establish unicast sessions with the remote terminals and the content is transmitted to those terminals using the transmitting logic 208 and the unicast channel 220. The method then proceeds to block 320 where the transmission schedule is transmitted to the terminals using the control channel 222 and the data is transmitted accordingly. [0055] At block 318, one or more multicast cycles have been scheduled since the cycle indicator N is not equal to zero. Thus, the processing logic 202 has computed the number of multicast cycles needed to transmit the content to the majority of terminals, but has determined that unicast transmissions would be more cost effective to transmit the content to enough additional terminals to achieve a desired level of service. The processing logic 202 generates a transmission schedule describing when each multicast cycle will take place. The transmission schedule will be transmitted to the remote terminals so that they may listen for the multicasts at the appropriate time. Prior to the actual multicast, FEC may be applied to the content and if there are multiple content files to be transmitted, interleaving of multicast cycles from one content file with multicast cycles from other content files is performed by the FEC/interleaving logic 216 to improve the performance of the system.
[0056] If one or more remote terminals do not receive the content after all the multicasts have completed, then those terminals may request unicast sessions to retrieve the content from the server. Thus, the data delivery system operates to allow one or more multicasts to efficiently transmit data to remote terminals. Those terminals not receiving the multicasts may then request unicast session to retrieve the data from the server. As a result, the system operates to provide the most cost effective way to transmit data using a hybrid of multicast and unicast transmissions. [0057] At block 314, the multicast cycle N is incremented by 1. For example, the processing logic 202 increments the multicast cycle N and stores the value. At this point, one or more multicasts will be used to transmit content to the remote receivers. The method then proceeds back to block 304 where new cost indicators are computed to determine if additional multicasts will be scheduled. However, in a parallel process, a new computation of the cost of unicast transmissions is performed starting at block 322. [0058] At block 322, the number of remote terminals for which the network will not be able to reach during the previously calculated multicast cycle are computed. For example, the processing logic 202 performs the functions at blocks 322 through 330 to determine the number of unserved remote terminals that will not have received the content after any scheduled multicasts. After the number of unserved terminals is computed, the method returns to block 304 to repeat the process of calculating the cost of multicast and unicast transmissions. For example, after three multicast cycles, there may still be unserved terminals that have not received the data. During the next cost calculations at block 304, it may be determined that another multicast of the content would be more expensive than establishing unicast sessions with the unserved terminals. In such a case, the method would proceed to block 318 where the multicast schedule is generated and the multicasts are thereafter performed. Any remaining unserved terminal would be able to establish a unicast session to retrieve the data. [0059] It should be noted that the method 300 illustrates just one embodiment and that changes, additions, or reaπangements of the flow elements may be made without deviating from the scope of the described embodiments.
[0060] FIG. 4 shows a detailed diagram of one embodiment of a terminal 400 suitable for use in one embodiment of a data delivery system. The terminal 400 comprises processing logic 402, data memory 404, device resources and interfaces 406, transmitting logic 408 and receiving logic 410, all coupled to a data bus 412. The terminal 400 also comprises scheduling logic 414, which is also coupled to the data bus 412.
[0061] In one or more embodiments, the processing logic 402 comprises a CPU, processor, gate array, hardware logic, memory elements, virtual machine, software, and/or any combination of hardware and software. Thus, the processing logic 402 generally comprises logic to execute machine-readable instructions and to control one or more other functional elements of the terminal 400 via the internal data bus 412. [0062] The device resources and interfaces 406 comprise hardware and/or software that allow the terminal 400 to communication with internal and external systems. For example, internal systems may include mass storage systems, memory, display driver, modem, or other internal device resources. The external systems may include user interface devices, printers, disk drives, or other local devices or systems. [0063] The transmitting logic 408 comprises hardware and/or software that operates to allow the terminal 400 to transmit data and other information to external devices or systems. For example, the transmitting logic 408 may comprise logic to transmit data and/or other information over a data network to other devices, such as server. For example, the processing logic 402 may use the transmitting logic 408 to transmit a request to a server to establish a unicast session in a data network. [0064] The receiving logic 410 comprises hardware and/or software that operates to allow the terminal 400 to receive data and other information from remote devices or systems. For example, in one embodiment, the receiving logic 410 comprises multicast receiving logic that operates to receive data and/or other information multicasted over a multicast channel 418 from remote devices, such as a network server. For example, the multicast receiving logic allows the terminal 400 to receive a multicast transmission over a data network from a network server. The receiving logic 410 also comprises unicast logic that operates to receive unicast data and/or other information over a unicast channel 220 from a remote server. For example, the unicast logic allows the terminal 400 to establish one or more unicast sessions to receive data over the unicast channel 220 from a remote server. The receiving logic 408 also comprises control channel logic to receive control information from a remote server over a control channel 422. The control channel logic may comprise any suitable hardware and/or software and implement any type of control channel suitable for receiving information from a remote server.
[0065] The data memory 404 comprises any type of memory suitable for storing information at the terminal 400. For example, the terminal 400 may receive content that was transmitted in a multicast transmission from a server. In one embodiment, the processing logic 402 operates to store the content in the memory 404 for further processing.
[0066] The scheduling logic 414 operates to schedule the reception of data from a remote server. For example, the scheduling logic 414 may receive a transmission schedule from a remote server via the control channel 422. The transmission schedule describes how and when data will be transmitted from a server for reception by the terminal 400. If the transmission schedule identifies a time window that the data may be retrieved in a unicast session, the scheduling logic 414 alerts the processing logic 402 to establish a unicast session with the server to retrieve the data within the time window. If the transmission schedule indicates that the data will be multicasted in one or more multicast cycles, the scheduling logic 414 alerts the processing logic 402 to listen for the data multicasts at the appropriate time.
[0067] During operation, the terminal 400 operates according to one or more embodiments of a data delivery system to receive data that is efficiently transmitted from a transmitting server on a data network. The terminal 400 receives a transmission schedule from the server via the control channel 422. The processing logic 402 processes the transmission schedule and determines if the data is to be multicast or unicast to the terminal. If the data is to be unicast, the transmission schedule indicates a time window when the terminal 400 should establish a unicast session to retrieve the data. If the data is to be multicasted, the transmission schedule indicates when one or more multicasts of the data will occur. In one embodiment, the scheduling logic 414 operates to process the received transmission schedule so that the terminal 400 will be able to obtain the data based on the identified transmission technique. [0068] If the data is multicasted and not received at the terminal 400 by the end of the multicast schedule, the processing logic 402 requests a unicast session with the server to retrieve the data. Thus, embodiments of the data delivery system allow the transmitting server to transmit the data in the most resource efficient and cost effective manner and the terminal 400 operates to receive those transmissions. [0069] In one embodiment, the data delivery system comprises program instructions stored on a computer-readable media, which when executed by the processing logic 402, provides the functions of the terminal 400 described herein. For example, instructions may be loaded into the terminal 400 from a computer-readable media, such as a floppy disk, CDROM, memory card, FLASH memory device, RAM, ROM, or any other type of memory device or computer-readable media that interfaces to the terminal 400 via the device resources 406. In another embodiment, the instructions may be downloaded into the terminal 400 from a network resource that interfaces to the terminal 400 via the receiving logic 410. The instructions, when executed by the processing logic 402, provide one or more embodiments of a data delivery system as described herein.
[0070] FIG. 5 shows one embodiment of a method 500 for operating a terminal in one embodiment of a data delivery system. For clarity, the method 500 will be described with reference to the terminal 400 shown in FIG. 4. In one or more embodiments, the processing logic 402 executes program instructions to perform the functions described below.
[0071] At block 502, a transmission schedule is received at the terminal from a server in a data network. For example, the processing logic 402 receives the transmission schedule via the control channel 422 of the receiving logic 410. In one embodiment, the transmission schedule describes when and how many times content will be multicast from the server so that it may be received by the terminal. If the content is to be unicast to the terminal, the transmission schedule describes a time window when the terminal may establish a unicast session to retrieve the data from the server. [0072] At block 504, a test is performed to determine if the content will be multicast to the terminal. For example, the processing logic 402 performs this test using information received in the transmission schedule. If the content is to be multicast, a multicast cycle indicator N will be greater then zero, and the method proceeds to block 508. If the multicast cycle indicator N is equal to zero, the content is to be transmitted via a unicast session, and the method proceeds to block 506.
[0073] At block 506, a unicast session is established between the terminal and the transmitting server so that the data may be transmitted to the terminal. For example, the scheduling logic 414 schedules a time when the unicast session may be established based on time window contained in the received transmission schedule. The scheduling logic 414 notifies the processing logic 402 about the scheduled unicast time and the processing logic 402 uses the transmitting logic 416 to request a unicast session with the server. The receiving logic 410 then establishes the unicast session with the server via the unicast channel 420.
[0074] At block 508, the terminal retrieves the data via the umcast session. For example, the processing logic 402 retrieves the data via the unicast channel 420 and stores the retrieved data in the data memory 404. After the data is received, the method ends at block 514.
[0075] At block 504, if it is determined that the data is to be multicasted to the terminal such that the multicast cycle indicator N is not equal to zero, the method proceeds to block 508.
[0076] At block 508, the terminal attempts to receive the data during a multicast cycle. For example, the scheduling logic 414 indicates to the processing logic 402 when the data will be multicasted from the server. The processing logic 402 controls the receiving logic 410 to receive the multicast via the multicast channel 418. [0077] At block 512, a test is performed to determine if the terminal was able to receive the data during the previous multicast cycle. For example, the processing logic 402 determines if the data was accurately received. In one embodiment, the data is encoded with FEC and/or interleaved. The processing logic 402 operates to reverse these operations to determine if the data was received without errors. If the data was received without errors, the method ends at block 514. If the data was not accurately received during the previous multicast cycle, the method proceeds to block 516. [0078] At block 516, the multicast cycle indicator N is decremented. For example, the processing logic 402 decrements the cycle indicator so that it indicates the next multicast cycle to be received.
[0079] At block 518, a test is performed to determine if any more multicast cycles remain. For example, the if the multicast cycle indicator N is zero, no more multicast cycles exist and the method proceeds to block 506 where the terminal establishes a unicast session with the transmitting server to retrieve the data. If the cycle indicator N is no zero, more multicast cycles will be performed and the method proceeds to block 508 where the terminal 400 attempts to accurately receive the multicasted data in the next multicast cycle.
[0080] The method proceeds until the data is either received via a multicast transmission or received via a unicast transmission. Thus, the method 500 operates to allow a terminal to receive data that has been efficiently transmitted in one embodiment of a data delivery system. It should be noted that the method 500 illustrates just one embodiment and that changes, additions, or rearrangements of the flow elements may be made without deviating from the scope of the described embodiments. [0081] FIG. 6 shows a graph 600 that illustrates the cost and resource efficiency achieved utilizing one or more embodiments of the data delivery system. For example, the graph 600 illustrates that there is a diminishing return with continued multicast transmissions after a certain number of multicast cycles. The graph 600 illustrates that during initial multicast transmission cycles the number of terminals not receiving the data decreases until point 602 is reached. In accordance with one or more embodiments of the data delivery system, the costs associated with additional multicast transmissions exceed the cost associated with unicast transmission after point 602 is reached. Thus, continued multicast transmissions will be very inefficient because the network's significant multicast resources will be used to reach only a few terminals, as shown by the graph at 604.
[0082] However, by providing a system that allows the unserved terminals to establish unicast sessions to retrieve the data, the system achieve near 100% reliability, as shown at point 602. Thus, in one or more embodiments, the data delivery system provides for hybrid transmission of data that results in extremely efficient data distribution. [0083] Accordingly, while one or more embodiments of a data delivery system have been illustrated and described herein, it will be appreciated that various changes can be made to the embodiments without departing from their spirit or essential characteristics. Therefore, the disclosures and descriptions herein are intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.

Claims

CLAIMSWhat is claimed is:
1. A method for operating a server on a data network, the method comprising: computing a multicast cost indicator and a unicast cost indicator that are associated with multicast and unicast transmission of data; determining that the multicast cost indicator is less than the unicast cost indicator; generating a transmission schedule that describes when the data will be multicasted on the data network; transmitting the transmission schedule; and multicasting the data according to the transmission schedule.
2. The method of claim 1, wherein the step of transmitting the transmission schedule comprises a step of transmitting the transmission schedule via a control channel.
3. The method of claim 1 , further comprising receiving a request to establish a unicast session.
4. The method of claim 1, wherein the step of generating the transmission schedule comprises generating the transmission schedule to describe that the data will be multicasted on the data network in a plurality of multicast cycles.
5. The method of claim 1, wherein the step of generating the transmission schedule comprises: repeating the steps of computing and determining for a plurality of multicast cycles until the unicast cost indicator is less than the multicast cost indicator; generating the transmission schedule to describe that the data will be multicasted on the data network in the plurality of multicast cycles.
6. The method of claim 1, wherein the step of multicasting further comprises performing any combination of encoding the data with FEC and interleaving the data.
7. The method of claim 1 , further comprising: determining that the unicast cost indicator is less than the multicast cost indicator; generating the transmission schedule to describe a time window when a unicast session may be established to retrieve the data.
8. The method of claim 1, wherein the data network is a wireless network.
9. Apparatus for use in a server on a data network, the apparatus comprising: a cost estimator that operates to compute a multicast cost indicator and a unicast cost indicator that are associated with multicast and unicast transmission of data; processing logic that operates to determine that the multicast cost indicator is less than the unicast cost indicator, and generate a transmission schedule that describes when the data will be multicasted on the data network; transmitting logic that operates to transmit the transmission schedule, and multicast the data according to the transmission schedule.
10. The apparatus of claim 9, wherein the transmitting logic comprises a control channel that is used to transmit the transmission schedule.
11. The apparatus of claim 9, further comprising receiving logic that operates to receive a request to establish a unicast session.
12. The apparatus of claim 9, wherein the processing logic operates to generate the transmission schedule to describe that the data will be multicasted on the data network in a plurality of multicast cycles.
13. The apparatus of claim 9, wherein the processing logic operates to determine that the multicast cost indicator is less than the unicast cost indicator for a plurality of multicast cycles, and generates the transmission schedule to describe that the data will be multicasted on the data network in the plurality of multicast cycles.
14. The apparatus of claim 9, wherein the transmitter further comprises logic to perform any combination of encoding the data with FEC and interleaving the data.
15. The apparatus of claim 9, wherein the processing logic operates to determine that the unicast cost indicator is less than the multicast cost indicator, and generate the fransmission schedule to describe a time window when a unicast session may be established to retrieve the data.
16. The apparatus of claim 9, wherein the data network is a wireless network.
17. Apparatus for use in a server on a data network, the apparatus comprising: means for computing a multicast cost indicator and a unicast cost indicator that are associated with multicast and unicast fransmission of data; means for determining that the multicast cost indicator is less than the unicast cost indicator; means for generating a transmission schedule that describes when the data will be multicasted on the data network; means for fransmitting the transmission schedule; and means for multicasting the data according to the transmission schedule.
18. The apparatus of claim 17, wherein the means for transmitting the transmission schedule comprises means for transmitting the transmission schedule via a control channel.
19. The apparatus of claim 17, further comprising means for receiving a request to establish a unicast session.
20. The apparatus of claim 17, wherein the means for generating the transmission schedule comprises means for generating the fransmission schedule to describe that the data will be multicasted on the data network in a plurality of multicast cycles.
21. The apparatus of claim 17, wherein the means for generating the transmission schedule comprises: means for repeating the steps of computing and determining for a plurality of multicast cycles until the unicast cost indicator is less than the multicast cost indicator; and means for generating the transmission schedule to describe that the data will be multicasted on the data network in the plurality of multicast cycles.
22. The apparatus of claim 17, wherein the means for multicasting further comprises means for performing any combination of encoding the data with FEC and interleaving the data.
23. The apparatus of claim 17, further comprising: means for determining that the umcast cost indicator is less than the multicast cost indicator; and means for generating the transmission schedule to describe a time window when a unicast session may be established to retrieve the data.
24. The apparatus of claim 17, wherein the data network is a wireless network.
25. A computer-readable media comprising instructions, which when executed by processing logic in a server, operate to transmit data on a data network, the computer-readable media comprising: instructions for computing a multicast cost indicator and a unicast cost indicator that are associated with multicast and unicast fransmission of data; instructions for determining that the multicast cost indicator is less than the unicast cost indicator; instructions for generating a transmission schedule that describes when the data will be multicasted on the data network; instructions for transmitting the transmission schedule; and instructions for multicasting the data according to the transmission schedule.
26. The computer-readable media of claim 25, wherein the instructions for transmitting the transmission schedule comprise instructions for fransmitting the transmission schedule via a control channel.
27. The computer-readable media of claim 25, further comprising instructions for receiving a request to establish a unicast session.
28. The computer-readable media of claim 25, wherein the instructions for generating the fransmission schedule comprise instructions for generating the transmission schedule to describe that the data will be multicasted on the data network in a plurality of multicast cycles.
29. The computer-readable media of claim 25, wherein the instructions for generating the fransmission schedule comprises: instructions for repeating the steps of computing and determining for a plurality of multicast cycles until the unicast cost indicator is less than the multicast cost indicator; and instructions for generating the transmission schedule to describe that the data will be multicasted on the data network in the plurality of multicast cycles.
30. The computer-readable media of claim 25, wherein the instructions for multicasting further comprise instructions for performing any combination of encoding the data with FEC and interleaving the data.
31. The computer-readable media of claim 25, further comprising: instructions for determining that the unicast cost indicator is less than the multicast cost indicator; and instructions for generating the transmission schedule to describe a time window when a unicast session may be established to retrieve the data.
32. The computer-readable media of claim 25, wherein the data network is a wireless network.
33. A method for operating a receiving terminal on a data network, the method comprising: receiving a transmission schedule that describes how data will be transmitted; determining that the data is to be multicasted on the data network in one or more multicast cycles; and receiving the multicasted data during the one or more multicast cycles.
34. The method of claim 33, wherein the step of receiving comprises receiving the transmission schedule via a confrol channel.
35. The method of claim 33 , further comprising : failing to receive the data during the one or more multicast cycles; and transmitting a request to establish a unicast session to retrieve the data.
36. The method of claim 33, further comprising: determining that the data is be transmitted to the terminal via a unicast transmission; and establishing a unicast session to retrieve the data.
37. Apparatus for use in a receiving terminal on a data network, the apparatus comprising: logic to receive a fransmission schedule that describes how data will be transmitted; logic to determine that the data is to be multicasted on the data network in one or more multicast cycles; and logic to receive the multicasted data during the one or more multicast cycles.
38. The apparatus of claim 37, wherein the logic to receive the transmission schedule comprises logic to receive the transmission schedule via a confrol channel.
39. The apparatus of claim 37, further comprising: logic to determine that the data has not been received during the one or more multicast cycles; and logic to fransmit a request to establish a unicast session to retrieve the data.
40. The apparatus of claim 37, further comprising: logic to determine that the data is be transmitted to the terminal via a unicast transmission; and logic to establish a unicast session to retrieve the data.
PCT/US2005/014849 2004-05-18 2005-04-29 Methods and apparatus for hybrid multicast and unicast transmissions in a data network WO2005117345A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CA002566807A CA2566807A1 (en) 2004-05-18 2005-04-29 Methods and apparatus for hybrid multicast and unicast transmissions in a data network
EP05744033A EP1747643A1 (en) 2004-05-18 2005-04-29 Methods and apparatus for hybrid multicast and unicast transmissions in a data network
MXPA06013436A MXPA06013436A (en) 2004-05-18 2005-04-29 Methods and apparatus for hybrid multicast and unicast transmissions in a data network.
JP2007527255A JP2007538463A (en) 2004-05-18 2005-04-29 Method and apparatus for hybrid transmission of multicast and unicast in a data network
BRPI0511277-0A BRPI0511277A (en) 2004-05-18 2005-04-29 methods and equipment for multicast and unicast transmissions hybrid to a data network
AU2005330575A AU2005330575A1 (en) 2004-05-18 2005-04-29 Methods and apparatus for hybrid multicast and unicast transmissions in a data network
IL179200A IL179200A0 (en) 2004-05-18 2006-11-12 Methods and apparatus for hybrid multicast and unicast transmissions in a data network

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US57245304P 2004-05-18 2004-05-18
US60/572,453 2004-05-18
US10/951,927 2004-09-27
US10/951,927 US7423973B2 (en) 2004-05-18 2004-09-27 Methods and apparatus for hybrid multicast and unicast transmissions in a data network

Publications (1)

Publication Number Publication Date
WO2005117345A1 true WO2005117345A1 (en) 2005-12-08

Family

ID=34968318

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/014849 WO2005117345A1 (en) 2004-05-18 2005-04-29 Methods and apparatus for hybrid multicast and unicast transmissions in a data network

Country Status (12)

Country Link
US (1) US7423973B2 (en)
EP (1) EP1747643A1 (en)
JP (1) JP2007538463A (en)
AR (1) AR049426A1 (en)
AU (1) AU2005330575A1 (en)
BR (1) BRPI0511277A (en)
CA (1) CA2566807A1 (en)
IL (1) IL179200A0 (en)
MX (1) MXPA06013436A (en)
RU (1) RU2357379C2 (en)
TW (1) TW200620888A (en)
WO (1) WO2005117345A1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1742414A1 (en) * 2005-07-05 2007-01-10 Tellitec Engineering GmbH Peer-to-peer multicast gateway
WO2007149821A2 (en) * 2006-06-23 2007-12-27 Qualcomm Incorporated Methods and apparatus for efficient data distribution to a group of users
JP2008011259A (en) * 2006-06-29 2008-01-17 Kyocera Corp Radio communication system, radio base station apparatus, radio communication apparatus, and radio communication method
WO2007146755A3 (en) * 2006-06-08 2008-03-13 Qualcomm Inc Device retry mechanisms for content distribution
JP2008282294A (en) * 2007-05-14 2008-11-20 Hitachi Ltd Content distribution system and method thereof
JP2009033648A (en) * 2007-07-30 2009-02-12 Kyocera Corp Electronic device
EP2053825A1 (en) * 2007-10-25 2009-04-29 Alcatel Lucent Distribution of shared content streams in communications networks
WO2009088900A1 (en) * 2008-01-02 2009-07-16 Cisco Technology, Inc. Mechanism for wireless multicast
WO2010037945A1 (en) * 2008-09-30 2010-04-08 France Telecom Method of broadcasting data by a multicast source with broadcasting of an identifier of the broadcasting strategy in a multicast signalling channel
JP2011523470A (en) * 2008-03-14 2011-08-11 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Automatic content transmission technology to mobile devices based on feeds
US8488602B2 (en) 2004-08-16 2013-07-16 Qualcomm Incorporated Methods and apparatus for transmitting group communication signals
WO2014132821A1 (en) * 2013-02-27 2014-09-04 ソニー株式会社 Information processing device, method, and program, and content supply system

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1864366B (en) * 2003-10-07 2011-06-01 汤姆森特许公司 Method and device for multicast over unicast in a network
US8095228B2 (en) * 2004-05-27 2012-01-10 Canon Kabushiki Kaisha Data distribution apparatus, its control method, program, and storage medium
US20060007930A1 (en) * 2004-07-09 2006-01-12 Dorenbosch Jheroen P Downlink multicast method in wireless internet protocol system
US8009601B2 (en) * 2004-10-27 2011-08-30 Intel Corporation Power saving when using aggregated packets
US7710983B2 (en) * 2005-04-21 2010-05-04 Cisco Technology, Inc. Method and apparatus for determining information associated with a particular multicast channel in a multicast network
JP4481912B2 (en) * 2005-10-06 2010-06-16 キヤノン株式会社 Network device, network system, power saving control method and program for network device
US8175021B2 (en) 2005-11-04 2012-05-08 Texas Instruments Incorporated Method for transmission of unicast control in broadcast/multicast transmission time intervals
US7889732B2 (en) * 2005-12-22 2011-02-15 Alcatel-Lucent Usa, Inc. Method for converting between unicast sessions and a multicast session
US20070156807A1 (en) * 2005-12-29 2007-07-05 Jian Ma Data transmission method and arrangement for data transmission
US8514861B2 (en) * 2006-01-03 2013-08-20 Meshnetworks, Inc. Apparatus and method for multicasting data in a communication network
ATE482584T1 (en) * 2006-01-06 2010-10-15 Alcatel Lucent METHOD FOR PROVIDING DATA AND DATA TRANSMISSION SYSTEM
US20070168555A1 (en) * 2006-01-18 2007-07-19 Dorenbosch Jheroen P Efficient multicast call setup method and system
US8549558B2 (en) * 2006-02-24 2013-10-01 Steven Riedl System and method for targeted advertisement delivery
US20070244982A1 (en) * 2006-04-17 2007-10-18 Scott Iii Samuel T Hybrid Unicast and Multicast Data Delivery
WO2008003094A2 (en) 2006-06-29 2008-01-03 Digital Fountain, Inc. Efficient representation of symbol-based transformations with application to encoding and decoding of forward error correction codes
US8243693B2 (en) * 2006-08-01 2012-08-14 Samsung Electronics Co., Ltd. Apparatus and method for broadcast pilot transmission in a wireless communication network
US20080101317A1 (en) * 2006-10-30 2008-05-01 Nokia Corporation System and method for providing advanced session control of a unicast session
US8392593B1 (en) 2007-01-26 2013-03-05 Juniper Networks, Inc. Multiple control channels for multicast replication in a network
US7852795B2 (en) * 2007-04-20 2010-12-14 Research In Motion Limited Polling method and apparatus for long term evolution multimedia broadcast multicast services
US8780777B2 (en) * 2007-04-20 2014-07-15 Blackberry Limited Method and apparatus for user equipment for long term evolution multimedia broadcast multicast services
US7961641B1 (en) * 2007-04-27 2011-06-14 Marvell International Ltd. Initial ranging power control algorithm for WiMAX mobile stations
US7966540B1 (en) * 2007-05-02 2011-06-21 Sprint Communications Company L.P. Transmitting error correction information
JP5202989B2 (en) * 2008-02-27 2013-06-05 日本電気通信システム株式会社 Wireless communication network, wireless communication device, communication selection method, information distribution program, and recording medium
US8599733B2 (en) * 2008-07-08 2013-12-03 Intellectual Ventures Holding 81 Llc Method and apparatus for providing cell configuration information to a network element
CN104159317B (en) * 2008-12-24 2017-11-28 松下电器(美国)知识产权公司 Communicator and communication means
GB2474227B (en) 2009-09-08 2012-02-08 Nds Ltd Delivering an audio video asset
US8150993B2 (en) * 2009-10-29 2012-04-03 At&T Intellectual Property I, Lp Synchronization of clients to maximize multicast opportunities
KR20110055121A (en) * 2009-11-19 2011-05-25 삼성전자주식회사 Method and apparatus for providing multicast service in multicast network
US8542593B1 (en) * 2010-03-19 2013-09-24 Vucast Media, Inc. System and methods for error tolerant content delivery over multicast channels
US8539102B2 (en) * 2010-06-21 2013-09-17 Comcast Cable Communications, Llc Downloading a code image to remote devices
US9025436B2 (en) * 2010-09-16 2015-05-05 Panasonic Intellectual Property Corporation Of America Terminal device and retransmission control method
US8521860B2 (en) * 2011-03-29 2013-08-27 Microsoft Corporation Providing a witness service
US9883488B2 (en) 2011-07-07 2018-01-30 Qualcomm Incorporated Coexistence of priority broadcast and unicast in peer-to-peer networks
US9237553B2 (en) * 2011-07-07 2016-01-12 Qualcomm Incorporated Coexistence of priority broadcast and unicast in peer-to-peer networks
US8750179B2 (en) 2011-08-15 2014-06-10 Blackberry Limited Efficient multimedia broadcast multicast service continuity methods
US20130064164A1 (en) * 2011-09-09 2013-03-14 Electronics And Telecommunications Research Institute Method and apparatus for managing multicast service
FR2988946A1 (en) * 2012-03-27 2013-10-04 France Telecom METHOD FOR SELECTING A BROADCAST MODE
US8995307B2 (en) * 2012-06-18 2015-03-31 Cisco Technology, Inc. Multicast media notification for queued calls
GB2510137A (en) 2013-01-24 2014-07-30 Sony Corp Mobile communications network including reduced capability devices
CN104079389A (en) * 2013-03-25 2014-10-01 株式会社Ntt都科摩 Retransmission method of mobile broadcasting services
JP6551342B2 (en) * 2016-08-30 2019-07-31 京セラドキュメントソリューションズ株式会社 Image processing apparatus and image processing apparatus control method
JP7248600B2 (en) * 2020-01-21 2023-03-29 株式会社日立製作所 Computer system and data transfer control method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002044912A1 (en) * 2000-11-28 2002-06-06 Navic Systems, Inc. Generating schedules for synchronizing bulk data transfers to end node devices in a multimedia network
US20020101872A1 (en) * 2001-01-31 2002-08-01 International Business Machines Corporation Method and system for efficiently delivering content to multiple requesters

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000013432A (en) * 1998-06-24 2000-01-14 Nippon Telegr & Teleph Corp <Ntt> Data distribution schedule transmitter, data distribution schedule receiver, their method and recording medium recording data distribution schedule transmitting and receiving program
JP2000181836A (en) * 1998-12-11 2000-06-30 Nippon Telegr & Teleph Corp <Ntt> Information distributing method, and recording medium recorded with information distributing program
JP2001223732A (en) * 2000-02-14 2001-08-17 Casio Comput Co Ltd Method and device for information distribution and information reception device
US6917943B2 (en) * 2000-05-12 2005-07-12 Limit Point Systems, Inc. Sheaf data model
US20020065929A1 (en) * 2000-11-28 2002-05-30 Navic Systems Inc. Protocol extensions to increase reliability of bulk data transmissions
FI20011392A (en) * 2001-06-28 2002-12-29 Nokia Corp Procedure for multicast distribution in a telecommunications system
KR100561838B1 (en) * 2001-11-16 2006-03-16 삼성전자주식회사 Efficient transmission and receiving apparatus for multicast data and method thereof
JP2003224601A (en) * 2002-01-30 2003-08-08 Pfu Ltd Device, method, and system for broadcasting, program thereof, and program recording medium
JP2003273925A (en) * 2002-03-15 2003-09-26 Fujitsu Access Ltd Information transmission system and transmission control method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002044912A1 (en) * 2000-11-28 2002-06-06 Navic Systems, Inc. Generating schedules for synchronizing bulk data transfers to end node devices in a multimedia network
US20020101872A1 (en) * 2001-01-31 2002-08-01 International Business Machines Corporation Method and system for efficiently delivering content to multiple requesters

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BIRK Y ET AL: "A Multicast Schedule for Scalable Multi-Rate Distribution of Bulk Data using Non-Scalable Erasure-Correcting Codes", PROCEEDING OF INFOCOM 2003, 30 March 2003 (2003-03-30), TEL AVIV, XP002333702, Retrieved from the Internet <URL:http://www.ieee-infocom.org/2003/papers/25_04.PDF> [retrieved on 20050627] *
CLARK R J ET AL: "Providing scalable Web services using multicast communication", COMPUTER NETWORKS AND ISDN SYSTEMS, NORTH HOLLAND PUBLISHING. AMSTERDAM, NL, vol. 29, no. 7, August 1997 (1997-08-01), pages 841 - 858, XP004096541, ISSN: 0169-7552 *
POPPE F ET AL: "Guaranteeing quality of service to packetised voice over the UMTS air interface", QUALITY OF SERVICE, 2000. IWQOS. 2000 EIGHTH INTERNATIONAL WORKSHOP ON 5-7 JUNE 2000, PISCATAWAY, NJ, USA,IEEE, 5 June 2000 (2000-06-05), pages 84 - 91, XP010500885, ISBN: 0-7803-6266-7 *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8488602B2 (en) 2004-08-16 2013-07-16 Qualcomm Incorporated Methods and apparatus for transmitting group communication signals
EP1742414A1 (en) * 2005-07-05 2007-01-10 Tellitec Engineering GmbH Peer-to-peer multicast gateway
EP2088747A3 (en) * 2006-06-08 2009-08-19 Qualcomm Incorporated Device retry mechanisms for content distribution
WO2007146755A3 (en) * 2006-06-08 2008-03-13 Qualcomm Inc Device retry mechanisms for content distribution
US7757127B2 (en) 2006-06-08 2010-07-13 Qualcomm Incorporated Device retry mechanisms for content distribution
WO2007149821A2 (en) * 2006-06-23 2007-12-27 Qualcomm Incorporated Methods and apparatus for efficient data distribution to a group of users
WO2007149821A3 (en) * 2006-06-23 2008-02-21 Qualcomm Inc Methods and apparatus for efficient data distribution to a group of users
US8155580B2 (en) 2006-06-23 2012-04-10 Qualcomm Incorporated Methods and apparatus for efficient data distribution to a group of users
JP2008011259A (en) * 2006-06-29 2008-01-17 Kyocera Corp Radio communication system, radio base station apparatus, radio communication apparatus, and radio communication method
JP2008282294A (en) * 2007-05-14 2008-11-20 Hitachi Ltd Content distribution system and method thereof
JP2009033648A (en) * 2007-07-30 2009-02-12 Kyocera Corp Electronic device
WO2009053336A1 (en) * 2007-10-25 2009-04-30 Alcatel Lucent Distribution of shared content streams in communications networks
EP2053825A1 (en) * 2007-10-25 2009-04-29 Alcatel Lucent Distribution of shared content streams in communications networks
US8392583B2 (en) 2007-10-25 2013-03-05 Alcatel Lucent Distribution of shared content streams in communications networks
WO2009088900A1 (en) * 2008-01-02 2009-07-16 Cisco Technology, Inc. Mechanism for wireless multicast
US8295219B2 (en) 2008-01-02 2012-10-23 Cisco Technology, Inc. Mechanism for wireless multicast
JP2011523470A (en) * 2008-03-14 2011-08-11 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Automatic content transmission technology to mobile devices based on feeds
US8635321B2 (en) 2008-03-14 2014-01-21 Telefonaktiebolaget L M Ericsson (Publ) Techniques for feed-based automatic transmission of content to a mobile terminal
WO2010037945A1 (en) * 2008-09-30 2010-04-08 France Telecom Method of broadcasting data by a multicast source with broadcasting of an identifier of the broadcasting strategy in a multicast signalling channel
US8594089B2 (en) 2008-09-30 2013-11-26 France Telecom Method of broadcasting data by a multicast source with broadcasting of an identifier of the broadcasting strategy in a multicast signalling channel
WO2014132821A1 (en) * 2013-02-27 2014-09-04 ソニー株式会社 Information processing device, method, and program, and content supply system
US10085123B2 (en) 2013-02-27 2018-09-25 Saturn Licensing Llc Information processing apparatus and method, program, and content supply system

Also Published As

Publication number Publication date
TW200620888A (en) 2006-06-16
AR049426A1 (en) 2006-08-02
MXPA06013436A (en) 2007-03-01
AU2005330575A8 (en) 2008-08-14
IL179200A0 (en) 2007-03-08
RU2006144833A (en) 2008-06-27
EP1747643A1 (en) 2007-01-31
BRPI0511277A (en) 2007-12-04
RU2357379C2 (en) 2009-05-27
JP2007538463A (en) 2007-12-27
US7423973B2 (en) 2008-09-09
US20050259584A1 (en) 2005-11-24
AU2005330575A1 (en) 2006-12-07
CA2566807A1 (en) 2005-12-08

Similar Documents

Publication Publication Date Title
US7423973B2 (en) Methods and apparatus for hybrid multicast and unicast transmissions in a data network
US7536622B2 (en) Data repair enhancements for multicast/broadcast data distribution
EP1716658B1 (en) A method for data repair in a system capable of handling multicast and broadcast transmissions
CA2553069C (en) Identification and re-transmission of missing parts
EP1784946B1 (en) Method and device for acknowledging data in point-to-multipoint transmission systems
US7127655B2 (en) Methods and apparatus to optimize delivery of multicast content using probabilistic feedback
US20060026296A1 (en) Methods and apparatus for optimum file transfers in a time-varying network environment
CA2561712C (en) Data repair enhancements for multicast/broadcast data distribution
CN1985467A (en) Methods and apparatus for hybrid multicast and unicast transmissions in a data network
KR100890532B1 (en) Methods and apparatus for hybrid multicast and unicast transmissions in a data network
KR101821350B1 (en) Video streaming system, wireless communication apparatus in wireless lan environment and method thereof
MXPA06008198A (en) Methods and apparatus to optimize delivery of multicast content using probabilistic feedback

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 179200

Country of ref document: IL

WWE Wipo information: entry into national phase

Ref document number: 2566807

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: PA/a/2006/013436

Country of ref document: MX

Ref document number: 12006502304

Country of ref document: PH

Ref document number: 2005330575

Country of ref document: AU

Ref document number: 2007527255

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2005744033

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: DE

WWE Wipo information: entry into national phase

Ref document number: 6993/DELNP/2006

Country of ref document: IN

ENP Entry into the national phase

Ref document number: 2005330575

Country of ref document: AU

Date of ref document: 20050429

Kind code of ref document: A

WWP Wipo information: published in national office

Ref document number: 2005330575

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 1020067026348

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2006144833

Country of ref document: RU

Ref document number: 1200602070

Country of ref document: VN

WWE Wipo information: entry into national phase

Ref document number: 200580023960.9

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2005744033

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020067026348

Country of ref document: KR

ENP Entry into the national phase

Ref document number: PI0511277

Country of ref document: BR

DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)