WO2002088885A2 - A duplicating switch for streaming data units to a terminal - Google Patents
A duplicating switch for streaming data units to a terminal Download PDFInfo
- Publication number
- WO2002088885A2 WO2002088885A2 PCT/US2002/013362 US0213362W WO02088885A2 WO 2002088885 A2 WO2002088885 A2 WO 2002088885A2 US 0213362 W US0213362 W US 0213362W WO 02088885 A2 WO02088885 A2 WO 02088885A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- stream
- switch
- content
- data units
- duplicating
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1881—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/222—Secondary servers, e.g. proxy server, cable television Head-end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/64—Addressing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1854—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Definitions
- This application relates generally to streaming media.
- multimedia streaming describes a process for allowing access to multimedia content from one or more sources. Increased usage of the Internet has -l o resulted in an increased demand for multimedia streaming.
- data units may be streamed to a terminal by using a duplicating switch to receive a first stream of data units, store content from the first stream, generate second streams that incorporate the stored content, and make the 15 second streams available to the terminals.
- Implementations may include one or more of the following features.
- using the duplicating switch to store content may include storing content that is temporally related to the data units that are being generated.
- a location identifier may be used to indicate which portion of content is being generated into the 2o second streams. Location identifiers may be used to access the content time-shifted as two different streams.
- Using the duplicating switch to store content also may include storing more than one instance of the same portion of content, and storing additional instances of the stream as demand for the content increases.
- Using the duplicating switch to store content may include storing content and 25 associated header information. Using the duplicating switch to store content also may include storing a checksum describing the content.
- a second stream may be transmitted in response to receiving a request from a terminal or a service provider.
- Storing the content may include using location identifiers to track simultaneous transmissions of a single stored instance of a stream, and making streams available may include transmitting the different data units within the single stored instance to several requestors who have terminals receiving the stream that overlap but differ by a time differential.
- the duplicating switch may be a specialized device including hardware configured to perform one or more of receiving a first stream of data units, storing content from the first stream, generating second streams, and making the second streams available.
- performance of a network system may be improved by a switch that includes a communications interface to receive a stream of data units that each include a payload portion and an attribute portion, a buffer structured and arranged to store at least payload portions of the data units, a replicator structured and arranged to duplicate at least the payload portion of one or more of the data units, and a second communications interface structured and arranged to enable access to the stream of data units by two or more terminals.
- Implementations may include one or more of the following features.
- the attribute portions of the data units may include IP packet information and/or one or more pieces of layer three information.
- the switch may include a processor that generates and associates an attribute portion with a payload portion that has been duplicated by the replicator.
- the replicator may be structured and arranged to duplicate the payload portion of the attribute portion, and the processor may be structured and arranged to change an IP header on one or more of the attribute portions duplicated by the replicator.
- the processor may be structured and arranged to change an IP destination address, which may be, for example, the IP address corresponding to the terminal to which access to the payload portion is enabled using a second communications interface.
- the processor may be structured and arranged to specify destination information that differs among duplicated payload portions.
- the data unit may include, for example, audio, video, and streamed media content.
- the switch may be structured and arranged to receive a request to receive a stream of data units from a terminal. The switch then may transmit the stream of data units to the requesting terminal. Implementations may include receiving the request from a device other than the terminals that will receive a stream of data units, and the switch may transmit a stream of data units to the requesting terminals or devices. The switch may enable access to the same stream of data units at two different temporal offsets.
- the switch may include a buffer with more than one pointer to enable access to the stream of data units at two different points and times. The buffer may store more than one instance of the stream of data units.
- a source system may interface with the switch.
- the source system may be capable of duplicating data units and may transmit a stream of data units to the switch.
- one or more terminals may interface with the switch and may receive duplicated data units from the switch.
- Implementations may include a system capable of achieving the above features, including, for instance, a source system, a switch, a terminal, and a network between these components. Implementations also may include a sequence of steps performed on the switch, the source system and/or the terminal to achieve these features.
- Fig. 1 is a block diagram of a communications system capable of using a duplicating switch to generate a stream of data units.
- Fig. 2A is a diagram of an exemplary data unit that may be transmitted in a communications system, such as that shown in Fig. 1.
- Fig. 2B is a diagram illustrating one example of the structure of an attribute portion of the data unit of Fig. 2 A.
- Fig. 3 is an exemplary component diagram of a duplicating switch suitable for use in the communications system of Fig. 1.
- Fig. 4A is an exemplary block diagram of a duplicating switch that uses memory (e.g., RAM ("Random Access Memory”)) to store a media stream for subsequent playback.
- Fig. 4B is an exemplary block diagram of a duplicating switch that uses storage to store a media stream for subsequent playback.
- Fig. 5 is a block diagram of a precoder for use in a duplicating switch.
- Fig. 6 is a flowchart illustrating a method of transmitting data units in a communications system, such the communications system of Fig. 1.
- Fig. 7 is a flowchart illustrating movement of an IP packet through the communications system of Fig. 1.
- Fig. 8 is a flow chart of a procedure for processing a received data unit using a duplicating switch in a communications system, such as the communications system of Fig. 1.
- Fig. 9 is a flow chart of a procedure for providing a stream of data units in a communications system, such as the communications system of in Fig. 1.
- Fig. 10A illustrates a duplicating switch structured and arranged to store multiple instances of a stream of data units.
- Fig. 10B illustrates a duplicating switch structured and arranged to store multiple location identifiers.
- Fig. 11 is a flow chart of a procedure for time-shifting content in a communications system, such as the communications system of Fig. 1.
- a duplicating switch receives a source stream of data units and stores content of the stream to enable subsequent generation of one or more streams that incorporate the content. Storing the content permits time sliifting of the content for subsequent transmission.
- an on-demand system can be created to transmit stored content from a source stream in response to a user's request.
- the duplicating switch may use one or more pointers to enable simultaneous access to different portions of content from the same source stream and thus simultaneous generation of several different and offset streams from a single source stream. The generation of several different and offset streams from a single source stream.
- the duplicating switch may store multiple instances of content from a source stream to manage increased demand. The duplicating switch also may reduce overall storage requirements by storing only certain portions of the content from within a source stream.
- FIGs. 1-11 describe a communications system for using a duplicating switch to stream data units to a terminal.
- FIGs. 1-11 describe a communications system for using a duplicating switch to stream data units to a terminal.
- FIGs. 1-11 describe a communications system for using a duplicating switch to stream data units to a terminal.
- FIG. 1-11 describe a communications system for using a duplicating switch to stream data units to a terminal.
- FIG. 1-11 describe a communications system for using a duplicating switch to stream data units to a terminal.
- FIG. 1-11 describe a communications system for using a duplicating switch to stream data units to a terminal.
- Fig. 1 depicts a communications system 100 that implements techniques using a duplicating switch to stream data units to two or more terminals.
- Communications system 100 may be structured and arranged to include a source system 110, one or more terminals 150, and communication software and hardware enabling communications between source system 110 and terminals 150. More particularly, the communications system 100 typically includes the source system 110, a network 120, a duplicating switch 130, a network 140, and terminals 150.
- the source system 110 generally transmits one or more data units in a stream of data units across network 120 to one or more duplicating switches 130, where content from the data units is stored, duplicated and transmitted to one or more terminals 150 through network 140 in an on-demand manner.
- the source system 110 provides a stream of one or more data units across the network 120 to the duplicating switch 130.
- the source system 110 is structured and arranged to convert a media source (e.g., a video or audio feed) into data units for transmission across the network 120.
- the source system 110 may include a general-purpose computer having a central processor unit (CPU), and memory/storage devices that store data and various programs such as an operating system and one or more application programs.
- Other implementations of the source system 110 include a workstation, a server, a device, a special purpose device or component, other equipment or some combination thereof capable of responding to and executing instructions in a defined manner.
- the source system 110 also typically includes an input/output (I/O) device (e.g., video and audio input and conversion capability), and peripheral equipment such as a display communications card or device (e.g., a modem or a network adapter) for exchanging data with the network 120.
- I/O input/output
- peripheral equipment such as a display communications card or device (e.g., a modem or a network adapter) for exchanging data with the network 120.
- Implementations of the source system 110 also may include a media system that transmits one of more pieces of media content across a network 120.
- a source system 110 may transmit signals formatted according to European Telecommunications Standards Institute (ETSI), Digital Video Broadcasting (DVB), Advanced Television Systems Committee (ATSC), or European Cable Communications Association (ECCA) standards across a network to a cable head end.
- ETSI European Telecommunications Standards Institute
- DVD Digital Video Broadcasting
- ATSC Advanced Television Systems Committee
- ECCA European Cable Communications Association
- a cable provider may transmit or direct video signals to a cable head end for distribution in a cable network.
- a communications link 115 is used to communicate data between source system 110 and network 120.
- Communications link 115 may include wired or wireless modes of communication, such as a telephone line, a wireless network link, a cable network, or a direct connection.
- the network 120 typically includes hardware and/or software capable of enabling direct or indirect communications between the source system 110 and the duplicating switch 130.
- the network 120 may include a direct link between the source system 110 and the duplicating switch 130, or it may include one or more networks or subnetworks between them (not explicitly shown). Each network or subnetwork may include, for example, a wired or wireless data pathway capable of carrying and receiving data.
- Examples of network 120 include the Internet, the World Wide Web, WANs ("Wide Area Network"), LANs ("Local Area Networks”), analog or digital wired and wireless telephone networks (e.g., PSTN ("Public Switched Telephone Network”), ISDN (“Integrated Services Digital Network”), or xDSL (“any form of Digital Subscriber Loop”)), radio, television, cable, satellite, and/or other delivery mechanisms for carrying data.
- WANs Wide Area Network
- LANs Local Area Networks
- analog or digital wired and wireless telephone networks e.g., PSTN (“Public Switched Telephone Network”), ISDN (“Integrated Services Digital Network”), or xDSL (“any form of Digital Subscriber Loop”)
- PSTN Public Switched Telephone Network
- ISDN Integrated Services Digital Network
- xDSL any form of Digital Subscriber Loop
- the duplicating switch 130 is structured and arranged to store a received stream of data units for time-shifted transmission to more than one terminal. Implementations of the duplicating switch 130 may store one or more streams of data units.
- the duplicating switch 130 may be capable of receiving a stream of IP ("Internet Protocol") video and storing that video for subsequent transmission.
- Implementations of duplicating switch 130 also may include hardware or software capable of transmitting or receiving media feeds not resembling a stream of data units.
- the duplicating switch may include a cable head end system that is capable of receiving or transmitting European Telecommunications Standards Institute (ETSI), Digital Video Broadcasting (DVB), Advanced Television Systems Committee (ATSC), or European Cable Communications Association (ECCA) for transmission on a cable distribution system.
- ETSI European Telecommunications Standards Institute
- DVD Digital Video Broadcasting
- ATSC Advanced Television Systems Committee
- ECCA European Cable Communications Association
- the cable head end system may receive a satellite broadcast feed, convert the feed into a format suitable for storage, and thereafter convert
- the network 140 generally includes one or more of links between the duplicating switch 130 and the terminals 150.
- the network 140 may include a direct physical link or a series of links connected by various pieces of network equipment.
- aspects of network 140 may resemble aspects of network 120.
- network 120 and network 140 may share one or more hardware or software devices.
- networks 120 and 140 may use the same type of circuits and/or equipment.
- the terminal 150 may include one or more devices capable of receiving the stream of data units transmitted by duplicating switch 130 through network 140.
- the terminal 150 may include a controller (not shown) that processes instructions received from or generated by a software application, a program, a piece of code, a device, a computer, a computer system, or a combination thereof, which independently or collectively direct operations of the terminal 150.
- the instructions may be embodied permanently or temporarily in any type of machine, component, equipment, storage medium, or propagated signal that is capable of being delivered to the terminal 150 or that may reside with the controller at the terminal 150.
- the terminal 150 may include a general-purpose computer (e.g., a personal computer) capable of responding to and executing instructions in a defined manner, a workstation, a laptop, a PDA ("Personal Digital Assistant"), a wireless phone, a component, other equipment, or some combination of these items that is capable of responding to and executing instructions.
- a general-purpose computer e.g., a personal computer
- PDA Personal Digital Assistant
- wireless phone a component, other equipment, or some combination of these items that is capable of responding to and executing instructions.
- the terminal 150 includes one or more information retrieval software applications (e.g., a browser, a mail application, an instant messaging client, an Internet service provider client, or an AOL TV ("America Online Television") or other integrated client) capable of receiving one or more data units.
- the information retrieval applications may run on a general purpose operating system and a hardware platform that includes a general purpose processor and specialized hardware for graphics, communications and/or other capabilities.
- terminal 150 may include a wireless telephone running a micro-browser application on a reduced operating system with general purpose and specialized hardware capable of operating in mobile environments.
- the terminal 150 may include a simplified device capable of receiving a video signal not encapsulated in a traditional data unit.
- the duplicating switch 130 may transmit a raw video feed formatted in accordance with specifications set forth by, e.g., European Telecommunications
- ETSI Standards Institute
- DVD Digital Video Broadcasting
- ATSC Advanced Television Systems Committee
- ECCA European Cable Communications Association
- an example of a data unit 200A includes an attribute portion 210A and a payload 220A.
- the attribute portion 210A typically includes parameters that are modified as the data unit 200A moves through the communications system 100.
- an JP data unit may change the layer two addressing information as the data unit moves through the network (e.g., network 140).
- the payload 220A typically includes information including content and/or parameters that are intended for communication from the source system and tend to change infrequently during transmission to preserve integrity of the data being transmitted.
- the payload 220A may include audio or video content being transmitted to a personal computer (e.g., terminal 150).
- the attribute portion 21 OB of the data unit 200B may include several distinct or intermingled fields, such as, for example, fields of an IP ("Internet Protocol") packet. More particularly, for example, attribute portion 210B may include a destination address 213B, a source address 215B, a port number 217B indicating the type of IP traffic (e.g., UDP ("User Data Protocol"), TCP ("Transmission Control Protocol”), ICMP ("Internet Control Message Protocol”)), and other parameters at various portions as represented by 211 B and 219B . These fields may be arranged as shown or otherwise to accommodate various protocols.
- the payload in the LP data unit 200B is represented by 220B.
- Fig. 3 illustrates a duplicating switch 300 structured and arranged to receive a stream, store content from the stream, generate data units from the stream, and transmit the generated data units as a stream.
- the duplicating switch 300 generally corresponds to the duplicating switch 130 in Fig. 1.
- the duplicating switch 300 generally includes a storage system 310 for storing the stream of data units, a high speed interconnect 320 between the various subsystems in the duplicating switch 300, a switching engine 330 for modifying and transmitting the stream of data units to two or more clients, a first communications interface 340 for receiving a stream of data units from a source system, and a second communications interface 350 for transmitting a stream of data units to two or more clients.
- the storage system 310 enables the duplicating switch 300 to store at least the content portion of the data unit.
- the storage system 310 may be volatile or nonvolatile and may include memory (e.g., RAM) and/or storage (e.g., HDDS). Implementations of storage system 310 may include a hard disk drive or a more portable media, e.g., a compact disk, a tape drive, or an optical memory device. Implementations also may include combinations of memory and storage.
- the high speed interconnect 320 generally refers to a device that connects a component of the duplicating switch 300 with other elements of the duplicating switch 300.
- Examples of the high speed interconnect 320 may include, but are not limited to, SCSI ("Small Computer Serial Interface"), Fibre Channel, UTOPIA ("Universal Test and Operations PHY interface for ATM (“Asynchronous Transfer Mode”)), Infiniband, and other protocols and connection methods.
- the high speed interconnect may include physical, logical, timing and electrical connections and standards as well as protocols that enable these high speed interconnects to exchange data.
- a switching engine 330 includes a device that performs network operations in hardware (e.g., a chip or part of chip).
- the switching engine 330 may include an ASIC ("Application Specific Integrated
- an ASIC chip may include a logical gate structure implemented in silicon and configured to receive a packet and filter based on examining an IP address.
- Implementations of the switching engine 330 may include using a FPGA
- An FPGA generally is defined as a chip fabricated to allow third parties to implement a variety of logical designs (e.g., group of gates) on the chip. For example, one designer may load a design that replaces the IP address of received IP packets with a different IP address. Another example may include a design that performs segmentation and reassembly of IP packets as they are modified during transmission of the IP packet through different networks.
- Implementations of the switching engine 330 may include using a network processor.
- a network processor generally is defined as a chip that, among other features, allows software to specify which network operations should be performed.
- One example of a network processor may include several interconnected RISC
- the switching engine 330 may include a precoder (not shown) that is structured and arranged to receive a data unit, extract a content piece from the payload portion of the data unit, determine where the content piece will be stored, and store the content piece in a structured manner so that retrieval (e.g., playback) involves retrieving neighboring content pieces, packaging data units around the content pieces, and transmitting the data units to one or more requestors. This process will be described further with respect to Fig. 5.
- the first communications interface 340 generally is structured and arranged to receive a stream of data units from a device such as the source system 110. Implementations of the communications interface may include a LAN or WAN interface with the ability to direct the data units to one or more locations in the duplicating switch 300, using, for example, the high speed interconnect 320. Implementations also may include other forms of transmitting a media signal, including ETSI, DVB, ATSC, or ECCA.
- the second communications interface 350 generally is structured and arranged to transmit a stream of data units from the memory system 310 to one or more devices that generally correspond with recipients, such as terminal 150 described with respect to Fig. 1.
- Implementations of the second communications interface 350 may include a LAN or WAN interface with the ability to direct the data units to one or more locations in the duplicating switch 300 using, for example, the high speed interconnect 320. Implementations also may include other forms or transmitting a media signal other than by IP networking.
- the second communications interface 350 is not limited to the same type of format as the first communications interface 340, though they may include the same format and even the same physical interface.
- the first communications interface 340 may include a POS ("Packet-over-SONET") interface while the second communications interface 350 may include some form of Ethernet (e.g., 100-Base-T, Gigabit Ethernet).
- Fig. 4A provides an exemplary block diagram of a duplicating switch (e.g., duplicating switch 130 in Fig. 1) with a memory implementation.
- the duplicating switch 400A includes a RAM array 420 A, a switching engine 43 OA and a network interface 440A.
- the RAM array 420A may include one or more RAM memory banks structured and arranged to store one or more pieces of content.
- the RAM array 420A may store just a portion of the stream of data units. For example, a provider streaming out a movie may store one portion of the movie for several users to watch at one time.
- the RAM array 420A may store a window (e.g., a ten-minute window) of the movie that a user may use to time-shift the movie (e.g., pause, stop playing, or rewind) while staying current with the movie being broadcast.
- an OSP Online Service Provider
- the duplicating switch loads a portion of the stream of content pieces indicated by the location identifier to the RAM array 420 A.
- the duplicating switch may use one or more pointers to indicate which content pieces (e.g., frames) should be transmitted to which user.
- an on-demand system may load a larger portion of the content pieces to memory and may use a first pointer to transmit one stream of data units and a second pointer to transmit a second stream of data units simultaneously or otherwise.
- the switching engine 430 A is structured and arranged to manage the content being stored in and retrieved from the RAM array 420A. Aspects of the switching engine 430A generally correspond to aspects of the switching engine 330 in Fig. 3.
- the switching engine 430A generally loads and retrieves content to/from the RAM array 420A. Examples of content that may be loaded and retrieved by switching engine 430A include content pieces without wrappers (e.g., OSI wrappers), such as datagrams having MPEG ("Motion Picture Experts Group") I, P, and B frames removed, video frames and differential checksum values that describe frame-to-frame changes and frames with one or more added wrappers (e.g., a layer 4 datagram).
- OSI wrappers such as datagrams having MPEG ("Motion Picture Experts Group") I, P, and B frames removed, video frames and differential checksum values that describe frame-to-frame changes and frames with one or more added wrappers (e.g., a layer 4 datagram).
- the switching engine 430A may implement a system of pointers designed to keep track of where in time or sequence number the terminals are with respect to the available stored content.
- the switching engine 43 OA may include a device, a program, a software controller, or another system or device in combination with the above.
- the switching engine 43 OA may manage overall system utilization and refuse subsequent requests for services or attempt to serve more than one terminal from one stream of data units.
- the network interface 440A is designed to transmit and receive a stream of data units and generally corresponds to the first communications interface 440 and second communications interface 350 described in Fig. 3.
- Fig. 4B provides another exemplary block diagram of a duplicating switch
- the duplicating switch 400B includes a stream platform 410B, a switching engine 430B, and a network interface 440B.
- the stream platform 41 OB is structured and arranged to store content from within a stream of data units.
- the stream platform 41 OB includes a hard disk drive 412B (or a tape drive or other magnetic memory) and optical memory 416B .
- the stream platform 41 OB includes memory components with low bandwidth performance but high capacities.
- storage may include solid- state-memory (not shown) that is slower than solid-state memory used in other applications.
- the stream platform 410B will store a larger portion of a stream (e.g., a movie), but will limit access to fewer simultaneous streams absent RAM or other cache interfaces.
- Implementations of the storage platform 410B may include the disk storage 412B having a RAM interface to the switching engine 430B.
- the duplicating switch may include a RAM bank and disk storage. Content pieces may be loaded to the disk storage such that the content pieces are retrieved in the order that they are transmitted. As the content pieces are being retrieved, they are loaded to the RAM bank. The higher throughput performance of the RAM banks may enable more terminals to access the same content piece. Terminals accessing the stream of data units may use a pointer to the content pieces in the RAM bank to keep track and load the data units they need in the stream of data units.
- the switching engine 43 OB is structured and arranged to manage the content being stored and retrieved in the stream platform 410B.
- the switching engine 430B generally corresponds to the switching engine 43 OA described with respect to Fig. 4A.
- the network interface 440B is designed to transmit and receive a stream of data units and generally corresponds to the first communications interface 340 and second communications interface 350 described with respect to Fig. 3.
- Figs. 4A and 4B illustrate implementations that are designed to account for common limitations of the existing memory and storage systems (e.g., solid-state RAM offers high throughput but less storage while hard drives and optical memory offer higher storage but less throughput).
- implementations are not limited to those shown, nor are memory or storage devices necessarily subject to these constraints.
- a disk drive may be used to implement a system managing multiple pointers and may offer higher bandwidth
- solid-state memory may offer higher density storage than the disk drive storage.
- Fig. 5 shows an example of a duplicating switch 500 with precoder functionality.
- the duplicating switch 500 generally corresponds to the duplicating switch 130 of Fig. 1.
- the duplicating switch 500 includes a data unit interface 510, a content extraction system 520, a content arrangement system 540, and a content store 550.
- the data unit interface 510 generally is structured and arranged to interface with a network to transmit and receive a data unit from the content store 540.
- the functionality of the data unit interface 510 corresponds to the functionality of the first communications interface 340 and the second communications interface 350 of Fig. 3.
- Data unit interface 510 also may be configured to segment and reassemble a data unit that has been separated during transmission, or to handle unconventional data units.
- the data unit interface 510 may be configured to transmit/receive one or more media frames (e.g., frames formatted according to one of ETSI, DVB, ATSC, or ECCA).
- the duplicating switch 500 receives an analog signal, the data unit interface 510 may convert the signal to a recognized format that the frame or content piece may store.
- the content extraction system 520 is structured and arranged to remove a data unit wrapper that is added around content for transmission.
- the content extraction system 520 may remove one or more bits associated with OSI ("Open Systems Interconnect") information encapsulated along with the content for transmission.
- the content extraction system 520 also is capable of adding the wrapper when the data is retrieved from the content store 550 for subsequent transmission.
- the content extraction system 520 may remove wrapper information when storing a stream of data units in the content store 550 and may add a different wrapper when transmitting the stream of data units from the content store 550.
- the content arranger 540 is structured and arranged to direct storage and retrieval of the content information such that the content information may be retrieved in a determinate manner.
- the content may be arranged so that the addressing information may be updated in predictable increments.
- the content may be arranged such that the difference between frames of content may be calculated by analyzing an associated checksum that then may be stored. Determining where a content piece may be stored and storing the content piece may include using hard disk drive constraints to store the content piece.
- the content store 550 may store the content pieces such that the same "read” or data retrieval will retrieve related content pieces that are frequently transmitted in close proximity to one another (e.g., adjacent frames in a movie or adjacent I, P, and B MPEG frames).
- Determining where a content piece may be stored and storing the content piece may include using solid-state storage (e.g., various forms of RAM) to store the content piece.
- the solid-state storage may store all or a portion of the stream in an array of RAM memory. If a portion of the RAM memory is used to store the content piece, the RAM may load a certain window of content for transmission to one or more terminals.
- the duplicating switch may store more than one instance of the stream of data units in the array of RAM.
- the content store 550 is structured and arranged to store content pieces or frames. As described above with respect to the content arranger 540, the content is generally structured and arranged to be retrieved in a manner enabling transmission of related content pieces to one or more terminals.
- the content store 550 generally corresponds to the memory system 310 of Fig. 3, the RAM array 420A of Fig. 4A, and the storage platform 410B of Fig. 4B.
- Fig. 6 illustrates a method of transmitting a flow of data units in a communications system 600.
- Communications system 600 generally includes a source system 610, a switch 620, and terminals 650 and 670.
- source system 610 corresponds to the source system 110 in Fig. 1
- switch 620 corresponds to the switch 130 in Fig. 1
- terminals 650 and 670 correspond to components of the terminal 150 in Fig. 1.
- source system 610 generates or enables access to a stream of data units in response to a request or otherwise (step 613).
- an analog input e.g., analog audio or analog video
- this may include converting the input into a stream of data units.
- the source system 610 transmits the generated stream of data units to one or more switches 620 (e.g., across network 120) (step 616). When the switch 620 receives the data units from the source system 610 (step 616),
- switch 620 may remove the IP header information and store only the payload and/or information represented by the payload.
- switch 620 modifies the existing header or adds a new IP header to the payload.
- the switch may use destination information corresponding to the IP address of the destination terminals (e.g., terminals 650 and 670) or an intermediary between switch 620 and the destination terminals as the destination information. With the newly acquired destination information, the switch 620 transmits the JP packets across the network (e.g., network 140 in Fig. 1) to the appropriate terminal, for example, terminal 670 in Fig. 6 (step 626).
- the terminal 670 receives the stream of data units sent by the switch 620 across the network (step 672) and converts the data units into a perceivable output, manipulates the data units, or forwards the data units to another device.
- a terminal 670 may receive a stream of IP data units containing video content and display or otherwise manipulate the video content on a personal computer or other device.
- terminals may be capable of requesting a stream.
- terminal 650 may be capable of generating a request to receive the stream of data units (step 652).
- the switch 620 may transmit one or more streams of data units to terminal 650 (step 630).
- Terminal 650 then receives the transmitted streams of data units (step 654).
- the switch 620 and the terminals 650 and 660 may be required to communicate periodically to maintain streaming. For example, a terminal 650 may send a "keep stream alive" message every 10 seconds to indicate that the terminal 650 wishes to receive a stream during its transmission.
- the terminal 650 While receiving a stream (step 654), the terminal 650 may request another stream (step 652) or may request termination of transmission by transmitting a request to stop sending the stream of data units (step 656).
- the switch 620 Upon receipt of a termination request or upon detection of the conclusion of the stream (step 632), the switch 620 stops transmitting the stream of data units (step 634).
- Terminal 650 may elect to resume transmission of the stream of data units and may communicate this election to switch 620 (step 658).
- switch 620 receives a resume instruction (step 636)
- the switch resumes transmission of the stream (step 638) for receipt by the terminal 650 (step 660).
- the switch 620 may duplicate the payload portion of the data unit, and may modify or replace the IP destination address of the IP data units to specify the IP addresses of one or more conference terminals.
- the switch 620 may duplicate any particular payload or all payloads more than once such that the payload of a received data unit is transmitted as the payload in several or all data units generated by the switch 620. Moreover, the switch 620 may receive a data unit and transmit the payload as two or more data units.
- the switch 620 may receive and combine more than one data unit and transmit the combined payloads of the multiple data units in a single data unit, or the switch 620 may divide the payload of a received data unit and combine the divided portions with the payloads of two or more other received data units.
- the switch 620 may produce several instantiations of the buffered payload, simultaneously, with or without offset, and may transmit those different instantiations to the same or different terminals as needed. These instantiations may be streamed to different time offsets so that terminal 650 may be listening to a stream of data units at a different point than terminal 670.
- terminal 650 may be receiving the same song on an Internet radio station as terminal 670, but terminal 650 may be receiving data units that correspond to the song thirty (30) seconds later in time.
- Fig. 7 illustrates one example of the flow of IP data units from a source system 710 to terminals 770, 780 and 790.
- the source system 710 with an IP address of X.1.1.1 transmits an IP packet 720 to the switch 730 with a destination address of Y 1.1.1.
- the IP packet 720 includes the switch address as a destination address 724 and the source system address as a source address 726.
- the IP packet 720 also may include other header information 722 and a payload 728.
- the switch 730 duplicates at least the payload 728 of the JP packet 720 and transmits an IP data unit 740 to terminal 770 with an address of Z.1.1.1.
- the IP data unit 740 includes the source IP address 746 of the switch 730 with a destination address 744 of terminal 770.
- the IP data unit 740 may include additional header information 742 and a payload 748. Similar activities take place to generate IP data units 750 and 760 for terminals 780 and 790.
- Fig. 8 illustrates a procedure 800 for storing and transmitting a data unit using a duplicating switch.
- the procedure 800 may be performed using one of the duplicating switches described with respect to Figs. 1-7.
- the duplicating switch receives a data unit (step 805) and selects the content piece from the data unit (step 810).
- selecting the content piece of the data unit involves identifying fields or portions of the data unit that correspond to the content, and removing some or all aspects not related to the content.
- a duplicating switch may remove one or more layers of an OSI ("Open Systems Interconnection") header and store the remainder of the data unit as the content piece.
- selecting the content may include creating or modifying location identifiers to identify which portion of the data unit should be stored when the data unit is loaded to memory.
- Selecting the content may include enabling one or more portions of other aspects of the data unit to be retained with the content. For example, one or more fields of the OSI header may be preserved and stored as content.
- Implementations may include using a pre-coder to modify or adjust the content for storage.
- the pre-coder may compress the content so that less bandwidth is consumed during transmission.
- the pre-coder may calculate a checksum or shortcut describing intra-content differences. This checksum or shortcut may be stored in place of storing some of the content pieces.
- the duplicating switch determines the location in the memory system in which to store the content piece (step 820). Typically, the location for storage of the content piece is selected so that related content pieces may be retrieved in related operations. Examples of related content may include sequential frames in a video and/or content in a time slice.
- the duplicating switch then stores the content piece in the determined location (step 830).
- the duplicating switch receives a request for a content piece (step 840).
- Receiving a request for a content piece may include having a user (e.g., terminal 150 in Fig. 1) request a video stream for display on the user's home computer. Implementations also may include having other devices request the content piece. For example, a cable modem acting as a set top box may request a content piece for display to a television.
- Implementations also may include having a request originate from a source other than the intended destination. For example, a cable system administrator may generate a request for the content piece on behalf of one or more subscribers. The duplicating switch 130 determines which content piece has been requested
- the requestor may designate a content piece to send.
- a terminal may keep track of which content has been received, and may generate a request for one or more pieces of content (e.g., frame number 100 is missing).
- Implementations also may include having the duplicating switch track which content piece is required. For example, a duplicating switch may attempt to transmit the same content piece to several users.
- the duplicating switch 130 determines where the content piece is located (step 860). To do so, the duplicating switch may use the location identifiers described with respect to Figs. 3 and 4. Other implementations may employ a file and/or an archiving system maintained to manage access to content pieces.
- the duplicating switch 130 retrieves the content piece (step 870).
- the duplicating switch may do so by reading a memory location specified by a location identifier.
- Other implementations may include retrieving multiple pieces of content information (e.g., reading a sector on a disk).
- the duplicating switch 130 packages the content piece in a data unit (step 870).
- the duplicating switch may add one or more layers of OSI information (e.g., addressing information). Implementations where one or more aspects of the data unit other than content are stored with the content piece may include modifying one or more parameters in those fields. For example, if an Internet Protocol packet is stored, the destination address may be modified to the addresses of requesting users.
- OSI information e.g., addressing information
- the duplicating switch transmits the data unit to one or more terminals (step 890).
- the data unit may be transmitted in formats other than IP addressing.
- transmitting the data unit may include transmitting an on-demand channel over a network.
- Communications system 900 generally includes a source system 902, a manager 904, a duplicating switch 906, and terminals 908 and 910.
- the source system 902 corresponds to the source system 110 of Fig. 1
- duplicating switch 906 corresponds to duplicating switch 130 in Fig. 1
- terminals 908 and 910 correspond to terminals 150 of Fig. 1.
- the manager 904 may include a cable system operator, an OSP, a content provider, or an entity capable of providing instructions or direction to the duplicating switch 906.
- the source system 902 generates a stream of data units (step 913).
- the source system 902 transmits the stream of data units to the duplicating switch 906 (step 916).
- the duplicating switch 906 receives the stream of data units (step 925). The duplicating switch 906 then stores at least the content pieces from the stream of data units (step 927).
- the stream may be transmitted in a variety of ways.
- the manager 904 waits for a condition to occur (step 918).
- the manager may be a scheduler that is programmed to direct a duplicating switch "broadcast.”
- the manager 904 transmits a request to the duplicating switch 906 to transmit the stream of data units (step 923).
- a terminal 908 may generate a request for a stream (step 933).
- the terminal 908 may generate a request to view a particular video stream.
- the duplicating switch 906 receives the request (step 930).
- the duplicating switch 906 may load one or more content pieces into fast memory (e.g., RAM) (step 931).
- the duplicating switch 906 may determine that there is inadequate bandwidth to the existing storage of the content and may load frequently-accessed content pieces to the faster memory to increase capacity.
- the duplicating switch 906 may transmit the stream of data units to two or more terminals 908, 910 (step 936).
- a terminal receives a stream that has been broadcast or otherwise automatically transmitted to the stream recipient without requesting the stream of data units.
- terminals 908 and 910 receive the stream of data units (step 940 and 940 A).
- a different "stack" of content pieces may be loaded into memory to support terminal 910.
- the terminal 908 may generate and transmit a pause message (step 945). For example, a terminal may wish to "pause" a video on-demand stream and return to the stream at a later point.
- the duplicating switch 906 When the duplicating switch 906 receives the pause message (step 950), the duplicating switch 906 pauses transmitting to the terminal 908 (step 955).
- the duplicating switch 906 may still transmit a stream of data units to terminal 910 (not shown).
- the pause message may be implemented in a variety of ways. For example, terminal 908 may keep track of which data units have been received and resume where it left off by generating and transmitting a resume message (step 960). Another example may include having the terminal 908 transmit a stop message and the duplicating switch 906 keep track of where to resume when the transmit resume message is received (step 960).
- the duplicating switch 906 transmits the stream of data units 970 to the terminal (step 970).
- the terminal 908 then receives the stream of data units (step 975).
- Fig. 10A depicts a duplicating switch 1000A structured and arranged to store multiple instances of the stream of data units.
- the duplicating switch 1000 A transmits two streams of data units, stream A and stream A 1 .
- Stream A occupies memory storage 1010A in the memory bank
- stream A 1 occupies memory storage 1020A in the memory bank.
- a first pointer 1015 A to the memory storage 1010A indicates which content piece, relative to other content pieces, should be encapsulated as a data unit and transmitted to a terminal requesting Stream A.
- implementations may include storing a portion of the content pieces in the memory bank. For example, if problematic network conditions prevent a terminal from receiving some of the stream of data units, the terminal may not receive some of the content pieces and may experience gaps in receiving the stream of data units (e.g., missing time in a movie).
- a second pointer 1025 A to the memory storage 1020A indicates which portions of content pieces encapsulated in a stream of data units are being transmitted to several terminals.
- One or more terminals wishing to receive one or more data units in the stream of data units receive the content piece corresponding to the second pointer 1025 A, which is continuously advanced to the next content piece.
- the second pointer 1025 A may advance several content pieces and encapsulate more than one content piece in a data unit.
- Fig. 10B depicts a duplicating switch 1000B structured and arranged to store multiple location identifiers.
- duplicating switch 1000B includes five content pieces in stream A: Al 1010, A2 1020, A3 1030, A4 1040, and A5 1050.
- Duplicating switch 1000B also includes an area of memory allocated for an expected content piece A6 1060.
- the duplicating switch 1000B enables each of terminals T, U and V to receive its own stream of data units.
- Each of the terminals manages a location identifier (e.g., pointer) to direct the duplicating switch to select the appropriate content piece to be transmitted.
- a location identifier e.g., pointer
- terminals T, U, and V may begin by requesting content piece Al 1010 simultaneously.
- the location identifier 1025 for terminal T may be referencing content piece A2 1020, while the location identifier 1042 and the location identifier 1044 for terminals U and V are referencing content piece A4 1040 that corresponds to a different time-shift than content piece A2.
- This offset may have occurred because, for example, terminal T paused receipt of the stream of data units, and is now receiving content pieces that are delayed relative to those received by terminals U and V.
- duplicating switch 1000B includes five content pieces in stream B: Bl 1070, B2 1071, B3 1072, B4 1073, and B5 1080.
- Duplicating switch 1000B also includes an area of memory allocated for an expected content piece B6 1090.
- stream B may be part of the same stream of data units as stream A, but may correspond to a different portion of the stream of data units.
- stream A may be a "video" stream 40 minutes into a video stream while stream B is five minutes into the same video stream.
- stream B may be identical to stream A but was added to implement better system performance.
- stream A and stream B may represent completely different video streams (e.g., two different television channels). 5 Fig.
- the duplicating switch receives a stream of data units (step 1110) and stores content pieces from the stream of data units (step 1120). With the content stored and ready for transmission, the duplicating switch waits to receive a request to 0 play the stream of data units (step 1130). Though the duplicating switch may wait for a request-to-play message, in some implementations, the duplicating switch may begin to transmit (e.g., play) upon receipt of the stream. In this configuration, the content might only be stored when a user requests pausing of the stream.
- the duplicating switch may load the stream 5 (content pieces) to fast memory (step 1140). This generally corresponds to loading the stream to fast memory as described with respect to Fig. 6.
- the duplicating switch transmits the stream of data units (step 1150). While transmitting the stream, the duplicating switch 130 may receive a pause request (step 1160). If the duplicating switch 130 receives a pause request, the duplicating switch 0 stops transmitting the stream of data units to the terminal (step 1165). With the stream of data units paused, the duplicating switch 130 may wait to receive a play request (step 1170).
- the duplicating switch 130 continues to transmit the stream of data units where the terminal left off (step 1180). If not, the duplicating switch 130 waits for the resume request. When the terminal resumes receiving the stream of data units, the duplicating switch checks for a new pause request (step 1160).
- the duplicating switch 130 may receive a stop request or reach the end of the stream (step 1185). If the stop request is received or the end of the stream of data units is reached, the duplicating switch ceases transmitting (step 1190). If not, the duplicating switch 130 continues transmitting and returns to waiting for a pause request (step 1160).
- Ceasing transmitting may include automatically selecting another stream of data units to be transmitted.
- the duplicating switch 130 may select another video to transmit when one video ends.
- An "instant replay” or rewind feature may be created using a similar process, except instead of resuming transmission of a stream where the stream was produced, the stream is retransmitted time-shifted to an earlier moment in the stream (e.g., 30 seconds for a commercial, 15 seconds for a sporting event).
- the duplicating switch may load content from memory representing the stream 30 seconds earlier, and may transmit that content beginning at the earlier location (continuing on from that point).
- the terminal includes a set top tuner set to receive an analog signal.
- the location identifiers described in Fig. 11 may be maintained on the client, or on a separate server or device to indicate which content piece the terminals may be receiving.
- Implementations may include a manager requesting transmission of the stream to the terminals.
- the manager may include a network operator, a managing server, a workstation, or a scheduling agent.
- a managing workstation may request transmission of the stream of data units to terminals beginning at a certain time.
- Implementations also may include storing more than one instance in the stream of data units in the buffer.
- the switch may store more than one copy of the stream to accommodate large numbers of requests.
- the stream may buffer the same stream of data units at two different spots.
- Implementations also may include having the switch maintain state information on one or more requesting users.
- the switch may establish or assist other devices in establishing a profile for the terminal that receives the stream of data units. In this manner, the switch leverages information available to network processors and devices, which may not ordinarily be accessible to servers, in establishing profiles.
- implementations may include monitoring switch access and usage levels. For example, the switch may determine that the switch is operating at 85% of maximum performance in a given metric (e.g., processor use, memory use, number of users, bandwidth).
- a given metric e.g., processor use, memory use, number of users, bandwidth.
- Implementations may include translating or transcoding content between different formats.
- the switch may adjust transmission of packets to minimize the bandwidth consumed.
- the switch may convert a proprietary video-encoding format to a standards-based encoding format.
- Implementations also may include inserting one or more pieces of content in an existing stream of data units.
- the switch may insert video stream advertisements in a transmission of other video content.
- the inserted video content may reside on the switch, or it may be accessed from another device distinct from the switch that is transmitting the stream of data units.
- Implementations of inserting content may include creating tags associate with certain pieces of content being replicated.
- the switch may be replicating a television show with commercials tagged in the video content periodically. Upon receiving the tag, the switch may stop transmitting the television show and access a series of advertisements.
- Implementations may include having the tag designate which advertisement to access.
- the tag may indicate the device on which the advertisement is located.
- Implementations of tags also may enable accessing more than one selection of advertisements. The selection of advertisements may depend on one or more variables including, but not limited to, terminal information and profiling, the state of the network and other factors.
- implementations may include inserting content based on information maintained about the user profile and user state. For example, the switch may determine that a terminal is at a suitable point in a content piece to receive an inserted advertisement for users with a particular profile.
- the source, network, on-demand-system, and terminal also may be distributed across different entities in the communication system, and may make use of one or more agents and/or proxies to perform certain functions.
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA002445798A CA2445798A1 (en) | 2001-04-30 | 2002-04-30 | A duplicating switch for streaming data units to a terminal |
EP02734066A EP1384129A4 (en) | 2001-04-30 | 2002-04-30 | A duplicating switch for streaming data units to a terminal |
JP2002586120A JP2004533755A (en) | 2001-04-30 | 2002-04-30 | Duplicate switch for streaming data units to terminals |
AU2002305256A AU2002305256B2 (en) | 2001-04-30 | 2002-04-30 | A duplicating switch for streaming data units to a terminal |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US28696401P | 2001-04-30 | 2001-04-30 | |
US60/286,964 | 2001-04-30 | ||
US09/893,692 | 2001-06-29 | ||
US09/893,692 US7266609B2 (en) | 2001-04-30 | 2001-06-29 | Generating multiple data streams from a single data source |
US34318301P | 2001-12-31 | 2001-12-31 | |
US60/343,183 | 2001-12-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2002088885A2 true WO2002088885A2 (en) | 2002-11-07 |
WO2002088885A3 WO2002088885A3 (en) | 2002-12-19 |
Family
ID=27403667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2002/013362 WO2002088885A2 (en) | 2001-04-30 | 2002-04-30 | A duplicating switch for streaming data units to a terminal |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1384129A4 (en) |
JP (1) | JP2004533755A (en) |
CN (1) | CN100449509C (en) |
AU (1) | AU2002305256B2 (en) |
CA (1) | CA2445798A1 (en) |
WO (1) | WO2002088885A2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005064848A1 (en) * | 2003-12-24 | 2005-07-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Distributing a data stream in a telecommunications network |
FR2906954A1 (en) * | 2006-10-10 | 2008-04-11 | Tdf Sa | METHOD FOR TIME DELAYING DIGITAL CONTENT STREAMS, DEVICE, AND CORRESPONDING COMPUTER PROGRAM PRODUCT. |
EP1890460A3 (en) * | 2006-08-18 | 2009-07-22 | Avaya Technology Llc | Intelligent media stream recovery |
US8352540B2 (en) | 2008-03-06 | 2013-01-08 | International Business Machines Corporation | Distinguishing data streams to enhance data storage efficiency |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4821843B2 (en) * | 2008-12-16 | 2011-11-24 | コニカミノルタビジネステクノロジーズ株式会社 | DATA DISTRIBUTION SYSTEM, DATA DISTRIBUTION DEVICE, DATA DISTRIBUTION METHOD, AND DATA DISTRIBUTION PROGRAM |
US10484487B2 (en) | 2015-04-01 | 2019-11-19 | At&T Mobility Ii Llc | System and method for predictive delivery of prioritized content |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5867502A (en) * | 1996-02-15 | 1999-02-02 | Bellsouth Corporation | Method and system for interfacing an ATM switch and an optical network wherein bandwidth is maximized and non-local data streams are grouped into destination groups |
US6195680B1 (en) * | 1998-07-23 | 2001-02-27 | International Business Machines Corporation | Client-based dynamic switching of streaming servers for fault-tolerance and load balancing |
US6363429B1 (en) * | 1999-04-20 | 2002-03-26 | 3Com Corporation | Method and system for automatic determination of priority data streams on computer networks |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583561A (en) * | 1994-06-07 | 1996-12-10 | Unisys Corporation | Multi-cast digital video data server using synchronization groups |
US5815662A (en) * | 1995-08-15 | 1998-09-29 | Ong; Lance | Predictive memory caching for media-on-demand systems |
US5883891A (en) * | 1996-04-30 | 1999-03-16 | Williams; Wyatt | Method and apparatus for increased quality of voice transmission over the internet |
US5838912A (en) * | 1996-09-04 | 1998-11-17 | International Business Machines Corporation | Distribution of digitally encoded presentations |
US6381746B1 (en) * | 1999-05-26 | 2002-04-30 | Unisys Corporation | Scaleable video system having shared control circuits for sending multiple video streams to respective sets of viewers |
-
2002
- 2002-04-30 WO PCT/US2002/013362 patent/WO2002088885A2/en active Application Filing
- 2002-04-30 CN CNB028107284A patent/CN100449509C/en not_active Expired - Fee Related
- 2002-04-30 JP JP2002586120A patent/JP2004533755A/en active Pending
- 2002-04-30 CA CA002445798A patent/CA2445798A1/en not_active Abandoned
- 2002-04-30 EP EP02734066A patent/EP1384129A4/en not_active Withdrawn
- 2002-04-30 AU AU2002305256A patent/AU2002305256B2/en not_active Ceased
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5867502A (en) * | 1996-02-15 | 1999-02-02 | Bellsouth Corporation | Method and system for interfacing an ATM switch and an optical network wherein bandwidth is maximized and non-local data streams are grouped into destination groups |
US6195680B1 (en) * | 1998-07-23 | 2001-02-27 | International Business Machines Corporation | Client-based dynamic switching of streaming servers for fault-tolerance and load balancing |
US6363429B1 (en) * | 1999-04-20 | 2002-03-26 | 3Com Corporation | Method and system for automatic determination of priority data streams on computer networks |
Non-Patent Citations (1)
Title |
---|
See also references of EP1384129A2 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005064848A1 (en) * | 2003-12-24 | 2005-07-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Distributing a data stream in a telecommunications network |
EP1890460A3 (en) * | 2006-08-18 | 2009-07-22 | Avaya Technology Llc | Intelligent media stream recovery |
US8005199B2 (en) | 2006-08-18 | 2011-08-23 | Avaya Inc. | Intelligent media stream recovery |
FR2906954A1 (en) * | 2006-10-10 | 2008-04-11 | Tdf Sa | METHOD FOR TIME DELAYING DIGITAL CONTENT STREAMS, DEVICE, AND CORRESPONDING COMPUTER PROGRAM PRODUCT. |
WO2008043738A1 (en) * | 2006-10-10 | 2008-04-17 | Tdf | Method for time-delaying a flow of digital contents, and related device and computer software product |
US8352540B2 (en) | 2008-03-06 | 2013-01-08 | International Business Machines Corporation | Distinguishing data streams to enhance data storage efficiency |
Also Published As
Publication number | Publication date |
---|---|
CN1559037A (en) | 2004-12-29 |
JP2004533755A (en) | 2004-11-04 |
WO2002088885A3 (en) | 2002-12-19 |
CN100449509C (en) | 2009-01-07 |
EP1384129A2 (en) | 2004-01-28 |
AU2002305256B2 (en) | 2008-11-06 |
EP1384129A4 (en) | 2006-08-30 |
CA2445798A1 (en) | 2002-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7694013B2 (en) | Duplicating switch for streaming data units to a terminal | |
US10771834B2 (en) | Personalized content | |
US20130010794A1 (en) | Generating Multiple Data Steams From a Single Data Source | |
US8762575B2 (en) | Inserting advertising content | |
EP1866788B1 (en) | Stream control failover | |
US8572278B2 (en) | Generating multiple data streams from a single data source | |
KR100209834B1 (en) | Data communication network data communication system, multimedia contents distributing method and system, multimedia contents transmission method | |
US20060005224A1 (en) | Technique for cooperative distribution of video content | |
AU2002305256B2 (en) | A duplicating switch for streaming data units to a terminal | |
CN105900437B (en) | Communication apparatus, communication data generating method, and communication data processing method | |
AU2002305256A1 (en) | A duplicating switch for streaming data units to a terminal | |
Fernández et al. | Video forwarding techniques for mixed wired and wireless networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US US US UZ VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
AK | Designated states |
Kind code of ref document: A3 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US US US UZ VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE 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 | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2002305256 Country of ref document: AU |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2445798 Country of ref document: CA Ref document number: 1764/DELNP/2003 Country of ref document: IN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2002586120 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2002734066 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 028107284 Country of ref document: CN |
|
WWP | Wipo information: published in national office |
Ref document number: 2002734066 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |