WO2007044562A1 - Media data processing using distinct elements for streaming and control processes - Google Patents
Media data processing using distinct elements for streaming and control processes Download PDFInfo
- Publication number
- WO2007044562A1 WO2007044562A1 PCT/US2006/039223 US2006039223W WO2007044562A1 WO 2007044562 A1 WO2007044562 A1 WO 2007044562A1 US 2006039223 W US2006039223 W US 2006039223W WO 2007044562 A1 WO2007044562 A1 WO 2007044562A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- packets
- data
- content
- packet
- streaming
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 30
- 238000000034 method Methods 0.000 title claims description 56
- 230000008569 process Effects 0.000 title claims description 28
- 230000006870 function Effects 0.000 claims description 51
- 238000004891 communication Methods 0.000 claims description 18
- 230000002853 ongoing effect Effects 0.000 claims description 5
- 230000037361 pathway Effects 0.000 claims description 4
- 230000008867 communication pathway Effects 0.000 claims description 3
- 238000010025 steaming Methods 0.000 claims 1
- 230000000153 supplemental effect Effects 0.000 claims 1
- 230000001131 transforming effect Effects 0.000 claims 1
- 230000003252 repetitive effect Effects 0.000 abstract description 11
- 239000013589 supplement Substances 0.000 abstract 1
- 238000012546 transfer Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 7
- 230000011664 signaling Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001668 ameliorated effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
-
- 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/10—Architectures or entities
- H04L65/102—Gateways
- H04L65/1023—Media gateways
- H04L65/103—Media gateways in the network
-
- 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/10—Architectures or entities
- H04L65/102—Gateways
- H04L65/1033—Signalling gateways
- H04L65/104—Signalling gateways in the network
-
- 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/1066—Session management
- H04L65/1101—Session protocols
-
- 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
-
- 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/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- 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/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/613—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
-
- 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/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- 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/752—Media network packet handling adapting media to network capabilities
-
- 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/80—Responding to QoS
-
- 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/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- 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/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2383—Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/4104—Peripherals receiving signals from specially adapted client devices
- H04N21/4135—Peripherals receiving signals from specially adapted client devices external recorder
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
- H04N21/4381—Recovering the multiplex stream from a specific network, e.g. recovering MPEG packets from ATM cells
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
- H04N21/4382—Demodulation or channel decoding, e.g. QPSK demodulation
-
- 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/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
Definitions
- the invention concerns real time data transport apparatus and methods, for example in a digital video processing center or an entertainment system, conferencing system or other application using RTP streaming.
- the invention also is generally applicable to packet data transport applications wherein transport couplings between sources and destinations are started, stopped and changed from time to time according to the programming of a control processor.
- the inventive apparatus and methods serve various recording, playback and processing functions wherein content and control information is directed to and from functional elements that store, present or process data.
- repetitive data processing transport functions that are particularly demanding with respect to data rate but are not computationally complex, for example repetitive routing of data packets to and from network attached storage elements, are handled separately from functions, such as control processing and addressing steps, that are computationally complex but also are relatively infrequent.
- accelerators that comprise hardware devices are provided in data communication with control processors and network attached data storage devices. The accelerators are substantially devoted to transport functions, thereby achieving high data throughput rates while freeing processors to handle control functions according to programming that can respond in versatile and optimized ways to changing demands.
- Standards govern the formatting of certain data types. Standards affect addressing and signaling techniques, data storage and retrieval, communications, etc. Standards typically apply at multiple levels. For example, a packet signaling standard or protocol may apply when transporting video data that is encoded according to a video encoding standard, and so forth.
- Packet data transported between a source and destination may advantageously be subjected to intermediate processing steps such as data format conversions, computations, buffering, and similar processing and/or storage steps.
- intermediate processing steps such as data format conversions, computations, buffering, and similar processing and/or storage steps.
- part of the computational load is directed to activities associated with data formatting and reformatting.
- Part of the load is addressing and switching between data sources and destinations, potentially changing arrangements in response to conditions such as user selections.
- Some of the data processing and communications functions that are applicable are repetitive operations in which sequential data packets are processed in much the same way for transport from a source to a destination. These functions can benefit from streamlining and simplifying a data pipeline configuration, to maximize speed.
- the objects of streamlining and simplifying for speed, versus providing computational complexity, of course are inconsistent design objectives. It would be advantageous to optimize the concurrent need for speed and data capacity, versus the need for computational power, so as to provide arrangements that are both fast and versatile.
- the present invention subdivides certain functions needed for data transport, into groupings. Relatively simple high speed and typically repetitive functions are assigned to an accelerator element that can be embodied wholly or partly in hardware, i.e., a hardware network accelerator. Relatively complex and adaptive computational functions are assigned to a control processor and are substantially embodied by software. Among its functions, the control processor sets up and stores conditions and factors into the hardware network accelerator, such addressing information that is to be used repetitively during a particular operation involving transport of successive packets.
- the invention is demonstrated with respect to real time protocol (RTP) packet streaming.
- RTP real time protocol
- An exemplary group of packet source and destination types are discussed, applicable to video data processing for entertainment or teleconferencing, but potentially including security monitoring, gaming systems, and other uses.
- the transport paths may be wired or wireless, and may involve enterprise or public networks.
- the terminals for playback may comprise audio and video entertainment systems, computer workstations, fixed or portable devices.
- the data may be stored and processed using network servers.
- Exemplary communications systems include local and wide area networks, cable and telecommunications company networks, etc.
- the Real Time Protocol (RTP,” also known as the "Real Time Transport Protocol”) is a standard protocol that is apt for moving packetized audio and/or image and moving image data over data communication networks, at a real time data rate. Playback of audio and video data at a real time or live rate is desirable to minimize the need for storage buffers, while avoiding stopping and starting of the content.
- RTP Real Time Protocol
- the collection, processing, transport and readout of packetized data advantageously should occur with barely perceptible delays and no gaps, consistent with face-to-face real time conferences and conversations.
- the RTP Real Time Protocol is a known protocol intended to facilitate handling of real-time data, including audio and video, in a streamlined way. It can be used for media-on-demand as well as interactive services such as Internet telephony. It can be used to direct audio and video to and from multiple sources and destinations, to enable presentation and/or recording together with concurrent processing.
- RTP contains a data content part for transport of content, and a control part for varying the manner of data handling, including starting, stopping and addressing.
- the control part of RTP is called "RTCP" for Real Time Control Protocol.
- the data part of RTP is a thin or streamlined protocol that provides support for applications with real-time properties such as the transport of continuous media (e.g., audio and video).
- This support includes timing reconstruction, loss detection or recovery, security, content identification and similar functions that are repetitive and occur substantially continuously with transport of the media content.
- RTCP provides support for real-time conferencing of groups of any size within a communication network such as the Internet.
- This support includes source identification and support for gateways like audio and video bridges as well as multicast-to-unicast translators. It offers quality-of-service feedback from receivers to the multicast group as well as support for the synchronization of different media streams.
- RTP and RTCP are data protocols that are particularly arranged to facilitate transport of data of the type discussed above, but in a given network configuration the RTP and RTCP protocols might be associated with higher or lower protocols and standards. On a higher level, for example, the RTP and RTCP protocols might be used to serve a video conferencing system or a view-and-store or other technique for dealing with data. On a lower or more basic level, the packets that are used in the RTP and RTCP data transport might actually be transmitted according to different packet transmission message protocols. Examples are Transmission Control Protocol (TCP or on the Internet, TCP/IP) and User Datagram Protocol (UDP).
- TCP Transmission Control Protocol
- TCP/IP Transmission Control Protocol
- UDP User Datagram Protocol
- TCP and UDP protocols both are for packet transmission but they have substantially different characteristics regarding packet integrity and error checking, sensitivity to lost packets and other aspects.
- TCP generally uses aspects of the protocol to help ensure that a two way connection is maintained during a transmission and that the connection remains until all the associated packets are transmitted and assembled at the receiving end, possibly including re-tries to obtain packets that are missing or damaged.
- UDP generally handles packet transmission attempts, but it is up to the applications that send and receive the packets to ensure that all the necessary packets are sent and received. Some applications, such as streaming of teleconferencing images, are not highly sensitive to packets being intermittently dropped. But it is advantageous if packets should be dropped, that the streaming continue as seamlessly as possible.
- a method and apparatus are provided for facilitating and accelerating the processes conducted by a media server by partitioning subsets of certain resource-intensive processes associated with the real time protocol (RTP), for handling by processors and switching devices that are optimized for their assigned subsets. Partitioning of functions based on speed are assigned to devices that have the characteristics of data pipelines.
- the computational load is assigned to one or more central processors that govern the RTP sessions and handle the computational side with less processor attention paid to moving the streaming data in the data communication pipeline.
- the method concerns using a hardware interface element repetitively to replace header data found in selected packets that are sent or received under control of a central processor.
- the central processor may establish criteria, such as arranging for packets having certain identifying attributes to handled in a certain way, such as routed to a particular address. This criteria is stored by the central processor so as to control the hardware interface element.
- the hardware element imposes the results on the transport data, including by substituting header data values found each successive packet header with received date read our from or generated as a result of data originating from the controlling processor.
- the hardware interface element can operate at high data rates without substantial supervision, controlling the streaming of RTP packets to or from destinations and sources such as audiovisual presentation devices and network attached storage devices. In this way the hardware interface element accelerates handling of the data, while freeing the controlling processor for attention to functions that are more computationally intensive than IF/THEN replacement of certain header values with defined substitute values, now accomplished by the hardware accelerator.
- a content addressable memory (CAM) file is maintained by which a hardware accelerator associates multiple presently- maintained packet queues with certain addresses.
- a hardware accelerator associates multiple presently- maintained packet queues with certain addresses.
- the header values associated with the new endpoint are known to the control processor but the processor need only establish the routing to the new endpoint by setting up a new packet queue in the content addressable memory (CAM).
- the hardware accelerator can then operate as an automaton that finds the packet queue entries for an incoming packet, substitutes the necessary values, and passes the packet on toward its destination.
- RTP control functions such as RTP termination routines for example, may be somewhat complex an not optimally handled in hardware, for example because there are plural packets involved and not a one for one exchange, or perhaps because conditional steps are involved that are more complex than IF/THEN replacements based on stored values.
- streaming throughput demands may be strict.
- a very fast and capable central processor may be needed to discharge both computation loads and also header value substitutions on the fly. It is an inventive aspect to employ the hardware accelerator to handle the header value substitutions after the central processor provides the substitution values and criteria.
- each packet on the stream is applied initially to the network accelerator, i.e., the high speed unit implemented substantially in hardware.
- the accelerator matches the packet to information in the content addressable memory CAM connection table, strips the layer three and four headers (for example), and inserts a new local header.
- the packet that now contains a potentially altered local header, RTP header and RTP payload is sent through the traffic manager to its destination, e.g., to be written to an addressed disk in a RECORD operation, to be sent to a presentation device or to some other address in a PLAY operation, to do two or more such operations at once, etc.
- An advantage of the inventive method is that incoming RTP traffic can be ft handled, and can ultimately be controlled by software. If new and different RTP payload types should become popular or if the definitions of know payload types should change, support for them can be maintained by the streamer. In addition, the highly desirable function in personal video recording (PVR) of delayed-view-while- recording can be supported very efficiently.
- PVR personal video recording
- a disadvantage of the inventive technique is that storing the object in the RTP local-header format may make the object inaccessible for HTTP transfers or in some situations may require operations to undo the effects.
- appropriate software routines on the host processor can be used to reassemble the original media object, either promptly in order to make the object available immediately to non-RTP clients, or at some future time when resources are available and/or a demand for the object arises.
- Fig. 1 is a block diagram illustrating a source-to-destination data transport relationship (e.g., server to client), according to the invention, wherein the RTP data content component is routed around a control point, such as a central processor that handles RTSP and/or RTCP control signaling.
- a control point such as a central processor that handles RTSP and/or RTCP control signaling.
- FIG. 2 is a block diagram showing a streaming controller according to the invention.
- Fig. 3 is a table showing the component values in an RTP header.
- Fig. 4 is a data table diagram illustrating pre-appending an RTP header with a local address header.
- FIG. 5 is a block diagram showing the data flow and data components involved in using a content addressable memory to repetitively apply values obtained initially from a central processor.
- Fig. 6 is a logical flow chart showing the functions carried out in setting up and carrying on a data streaming connection.
- Fig. 7 is a block diagram showing the components of an entertainment system "HNAS" that is advantageously configured to include the packet data handling provisions of the invention.
- Fig. 8 is a diagram showing the adding of header offsets that can apply when protocols having distinct offsets are concatenated, and the manner in which a packet address is determined in view of the offsets.
- Fig. 9 is a logic diagram showing the cascading of content addressable memory elements according to a preferred arrangement.
- Fig. 10 is a data table diagram showing the layout of a local header that is applied to a data packet by operation of the invention. Detailed Description of Preferred Embodiments
- Real Time Protocol provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network services.
- RTP does not address resource reservation and does not guarantee quality-of-service for real-time services, such as ensuring at the RTP protocol level that connections are maintained and packets are not lost, etc.
- the data transport protocol namely RTP
- RTCP control protocol
- RTSP overall presentation control protocol
- the RTCP and RTSP control protocols involve signaling packets that are transmitted, for example, when setting up or tearing down a transfer pathway, when initiating a transfer in one direction (PLAY) or the other direction (RECORD), when pausing and so forth.
- the content data packets need to stream insofar as possible continuously in real time with some synchronizing reference.
- the content packets are transmitted at the same time as the RTCP and RTSP packets but the packets of the three respective protocols use different addressed logical connections or sockets.
- RTCP/RTSP control and RTP data streaming protocols together provide tools that are scalable to large multicast networks.
- RTP and RTCP are designed to be independent of the underlying transport and network layers, and thus can be used with various alternative such layers.
- the protocol also supports the use of RTP-level translators and mixers, where desired.
- the RTP control protocol has the capability to monitor the quality of service and to convey information about the participants in an on-going session.
- the participant information is sufficient for "loosely controlled" sessions, for example, where there is no explicit membership control and set-up, but a given application may have more demanding authorization or communication requirements, which is generally the ambit of the RTSP session control protocol.
- RTP data content packets that are streamed between a source and destination are substantially simply passed along toward the destination address in real time. Whereas the packets are passing in real time, there is little need for buffering storage at the receiving apparatus. For the same reasons, the sending apparatus typically does not need to create temporary files.
- the RTP receiver is configured to recover from packet loss rather than having retry signaling capabilities.
- the RTP transfers can employ a TCP/IP connection-less protocol.
- RTP transfers are done with user datagram protocol (UDP) packet transfers of RTP data, typically but not necessarily with each UDP packet constituting one RTP packet.
- UDP user datagram protocol
- An RTP packet has a fixed header identifying the packet as RTP, a packet sequence number, a timestamp, a synchronization source identification, a possibly empty list of contributing source identifiers, and payload data.
- the payload data contains a given count of data values, such as audio samples or compressed video data.
- An aspect of a system that uses distinct real time data content packets (RTP) versus control (RTCP) and/or session control (RTSP) packets is that all the three types or packets are sent and received over the same data pathway but are rather different in frequency and function. It is possible to provide a processor in a receiver, such as a network connected entertainment system, a video conferencing system, a network attached storage device or the like, and to program the processor to discriminate appropriately between RTP packets and RTCP or RTSP control packets. The data packets are passed toward their destination and the control packets are used by the processor to effect other programmed functions and transfers of information.
- RTP real time data content packets
- RTCP control
- RTSP session control
- the central processor must operate at a high data rate so as to pass the RTP data packets in real time.
- the processor also must have the computational complexity and programming needed to handle potentially involved control processes.
- the processor must be fast and capable, but the computational complexity of the processor is not used when simply passing RTP packets and the high data rate capacity of the processor is not necessary to handle control computations, which are infrequent by comparison.
- An aspect of the present invention is to provide distinct data paths for the RTP data and the signaling data so that the computing power of the central processor (or processors) is not from handling routine passing of RTP data are free for special-case session processing, but generally are disassociated from the steady-state handling of RTP sessions.
- This partitioning is advantageous due to performance advantages that can be achieved by using hardware switching devices for data streaming and the central processor to deal with the complexity of multiple supported protocols at higher and/or lower application layers, such as different input and output protocols, devices, addresses and functions.
- Fig. 1 shows a simple network environment with a control point disposed between a server (namely the source of the streaming data) and a client (the destination). Each interconnection is labeled with the various supported packet types for RTP streaming.
- the subject invention is broadly applicable to configurations involving a control point, and at least partly bypasses the need for processing at the control point, by providing a technique whereby fields in message headers are replaced using a hardware accelerator as described.
- Fig. 2 shows an exemplary situation wherein the control point is represented by a central processor that is coupled to a packet source (shown as a server) over a network.
- the central processor would conventionally be required to pass packets to one or more destinations, e.g., via a traffic manager/arbiter, by directing the packets identified in a stream of packets from the packet source to one or more addressable destinations, such as a network attached storage element, represented in this embodiment by disk memory and its controller, or to a readout device, etc.
- the packet data is handled in the first instance by an interface device in the form of network accelerator.
- the network accelerator can be embodied as a high throughput device with minimal if any computational sophistication, configured to replaced header values in the incoming streamed RTP packets so as to control their handling.
- values are set into the content addressable memory of the network accelerator by the controller.
- the values for example, can be a direct replacement of header values with local address values that route the packets to a storage device or readout or other local destination.
- the hardware accelerator can be directed by the controller to route the packets in some other way, such as directing two or more copies of the same content to two destinations, effectively splitting the signal path.
- the content addressable memory of the hardware accelerator comprises a table that is loaded with a series of addresses, header values, flags or the like, which correspond to a particular stream when processing of the stream is initiated.
- the hardware accelerator accesses the corresponding information in the content addressable memory by locating the table entries for the associated stream and replace the header values in the packets with header values found in or generated from the values loaded in the content addressable memory.
- At least a subset of the values in the content addressable memory are values that originate in the control processor, for example to carry out user commands.
- a subset of the values in the content addressable memory optionally can be generated by operation of the hardware processor independent of the control processor.
- the hardware processor can include a counter or adder that increments a sequence number or adjusts timestamp information under certain conditions, such as to recover from loss of a UDP packet or to effect smooth transitions during switching functions, etc.
- the particular source and destination entities in this example are representative examples.
- the invention is applicable to situations involving a variety of potential sources and potential destinations that might be more or less proximal or distal and are coupled in data communication as shown, so as to function at a given time as the source or destination of packets passing in one or another or both directions between two such entities.
- This particular example might be arranged for the passage of packets in the situation where a content signal was to be shown on the playback device and recorded at the same time.
- a data flow arrangement might be set up wherein data was recorded but not played back or played back but not recorded.
- Other particular source and destination elements could be involved. The same incoming packets could be routed from one source to two or more destinations.
- RTSP packets for overall presentation control
- RTCP packets for individual session control
- RTP packets for data content transfer.
- RTSP is an application-layer protocol that is used to control one or many concurrent presentations or transfers of data.
- a single RTSP connection may control several RTP object transfers concurrently and/or consecutively.
- bidirectional transfers may be arranged between each pair of locations.
- the syntax of RTSP is similar to that of HTTP/1.1 , but it provides conventions specific to media transfer.
- the major RTSP commands defining a session are:
- SETUP causes the server to allocate resources for a stream and start an RTSP session.
- PLAY and RECORD starts data transmission on a stream allocated via SETUP from a source to destination.
- PAUSE temporarily halts the stream without freeing server resources.
- TEARDOWN frees resources associated with the stream.
- the RTSP session ceases to exist on the server.
- control point When the control point requests an object transfer using an RTSP SETUP request, it sends a request to the server and the client that includes the details of the object transfer, including the object identification, source and destination IP addresses and protocol ports, and the transport-level protocols (generally RTP, and either TCP or UDP) to be used.
- the RTSP requests describe the session to the client and server.
- the request can be specifically for a subset of an available object, such as an audio or video component of the object.
- the control point may issue a PLAY or RECORD request, depending on the direction of the transfer.
- the request may optionally designate a certain range of the object that is to be delivered, the normal play time of the object, and the local time at which the playback should begin.
- the presentation is automatically paused, as though a PAUSE command had been issued.
- a PAUSE command specifies the timestamp at which the stream should be paused, and the server (client) stops delivering data until a subsequent PLAY (RECORD) request is issued.
- An RTSP command might specify an out-of-band transfer session wherein RTP/UDP or RTP/TCP is to be used for transport.
- An "out-of-band" transfer denotes two or more distinct transfer or connection paths.
- the RTSP traffic in that case can be over one connection, and a different connection can be specified by RTSP to carry the actual transport of RTP data.
- RTP packets can be transported over TCP. This is generally inefficient because UDP transport does not require a maintained connection, is not sensitive to lost packets and/or does not try to detect and recover from lost packets, as does TCP.
- the UDP transport protocol is apt for transfer in real time of packets such as audio or video data sample values. Such values are not individually crucial but need to be moved in a high data volume.
- TCP is different from UDP in that connections are established, the protocol emphasizes reliability, e.g., seeking to recover from packet loss by obtaining retransmission, etc. These aspects are less consistent than UDP with the needs of RTP.
- This disclosure generally assumes that UDP will be used for RTP transmission. However the disclosure should not be considered as limited to the preferred UDP transport and instead encompasses TCP an other protocols as well.
- a server When a server receives a request for an object to be delivered using RTP, the object typically is transcoded from its native format to a packetizable format.
- RRC Request for Comment
- a number of "Request for Comment” (RFC) message threads have been developed in the industry to resolve issues associated with packetizing data as described and are maintained for online access, for example, by the Internet Engineering Task Force (ietf.org), including an associated RFC for various given media types.
- FIG. 3 shows the format of the common RTP header, for example as set forth in RFC 3550/3551.
- the header field abbreviations are as follows.
- V represents the version number.
- the current version is version two. Although there is nothing inherent in the header that uniquely identifies the packet as being in RTP format, the appearance of the version number "2" at this header position is one indicator.
- P is a value that indicates whether any padding exists at the end of the payload that should be ignored, and if so, the extent of padding. The last byte of the padding value gives the total number of padding bytes.
- X is a value showing whether or not an extension header is present.
- CC is a count of the number of contributing sources identified in this header.
- M is a marker bit. The implementation of this bit is specific to the payload type.
- PT identifies the payload type, namely the type of object being transported.
- the payload type identifier allows the receiver to determine how to terminate the RTP stream.
- Sequence Number is a count of the number of transferred RTP packets. It may be noted that this is unlike TCP, which uses a sequence number to indicate the number of transferred bytes.
- the RTP sequence number is the number of transferred RTP packets, i.e., a packet index.
- Timestamp is a field value that depends on the payload type. Typically, the timestamp provides a time index for the packet being sent and in some instances provides a reference that allows the receiver to adapt to timing conditions in recording or playing back packet content.
- SSRC ID identifies the source of the data being transferred.
- CSRC ID identifies any contributing source or sources that have processed the data being transferred, such as mixers, translators, etc. There can be a plurality of contributing sources, or there may be none except the original source identified in SSRC ID. As noted above, the value CC in the header provides a count of contributing sources. The count allows the indefinite number of contributing source identifications to be treated as such, and to index forward to the content that follows the header.
- extension header that follows the RTP header.
- the use and nature of the extension header is payload-type-dependent.
- the payload-specific subheaders are generally specified in a way that allows packet loss to be ameliorated so as to be tolerable up to some frequency of occurrence.
- numerous complex subheaders with video and audio encoding information may follow the main RTP header.
- the payload follows the last subheader in the packet shown in Fig. 3.
- the payload's relation to the native media object is also determined by the standard that describes the corresponding payload type. There is often not a one-to-one correspondence between the native object and the concatenation of RTP packet payloads. Although there are various factors that might contribute to this, some examples of situations underlying differences between the RTP packet payload sequences and the sequence of bytes contain in the native object might be due to:
- RTCP Periodically while a given RTP session is active, control information regarding the session is exchanged on a separate connection using RTCP (for UDP, the RTP session uses an even-numbered destination port and the RTCP information is transferred over the next higher odd-numbered destination port).
- RTCP performs various functions including providing feedback on the quality of the data distribution, which may be useful for a server to determine if network problems are local or global, especially in the case of IP multicast transfers.
- RTCP also functions to carry a persistent transport-level identifier for an RTP source, the CNAME. Since conflicts or program restarts may cause the migration of SSRC IDS, receivers require the CNAME to keep track of each participant.
- the CNAME may also be used to synchronize multiple related streams from various RTP sessions (e.g., to synchronize audio and video).
- All participants in a transfer are required to send RTCP packets.
- the number of packets sent by each advantageously is scaled down when the number of participants in a session increases. By having each participant send its RTCP packets to all others, each participant can keep track of the number of participants. This number is in turn used to calculate the rate at which the control packets are sent.
- RTCP can be used to convey minimal session control information, such as participant information to be displayed in the user interface.
- RTCP packets may fall into one of the following categories and formats:
- RR - receiver report, for reception statistics from participants that are not active senders and in combination with SR for active senders reporting on more than 31 sources;
- each form of RTCP packet begins with a common header, followed by variable-length subheaders. Multiple RTCP packets can be concatenated to form a compound RTCP packet that may be sent together in a single packet of the lower-layer protocol.
- a hybrid solution is provided wherein the control process is largely set up and arranged by a controller operating a potentially complex and capable software program.
- specialized hardware is used to accelerate transfers using the media object and supporting files generated by software.
- RTSP and RTCP functions which are largely related to control steps, can be implemented in software on the central processor without overburdening it.
- RTP requires processing of each incoming and outgoing packet in a media stream in sequence or near sequence with a real time data rate, and benefit according to the invention from hardware acceleration.
- An example of operation is described herein for implementing a particular subset of streaming functionality, namely employing RTSP/RTP with hardware offloading of RTP content.
- This functionality is commonly found in Personal Video Recorders (PVR), and can be described as accepting an input stream of RTP- encapsulated data from an endpoint and either immediately or after an arbitrary period of time sending the same RTP-encapsulated data to either the same or a different endpoint. It is an attribute of such a function that the endpoints may be temporary and may change or be switched, e.g., according to user selections. The particular nature of the endpoints is not crucial to operation of the invention as described.
- the endpoints can be an originating or ultimate display device such as a video camera and a playback receiver, or an intermediate element such as a compression/decompression or format changing device, or any combination of these and other elements from which or to which a packet data signal may be directed in a stream.
- an originating or ultimate display device such as a video camera and a playback receiver
- an intermediate element such as a compression/decompression or format changing device, or any combination of these and other elements from which or to which a packet data signal may be directed in a stream.
- the media streamer comprises three main architectural entities, namely a central processor, a traffic manager/arbiter, and a network protocol or hardware accelerator. These structures may vary in their physical embodiment and may be more or less complex in terms of circuitry versus control processes. Inasmuch as the circuitry can be embodied in ways wherein the specific operational elements are more or less hard wired, certain functions of such elements are defined herein as they pertain to the handling of RTSP/RTP traffic according to the invention.
- the central processor governs system processes.
- the network protocol accelerator or "hardware accelerator” handles resource-intensive but perhaps repetitive or iterative processing tasks. In this way, the hardware accelerator relieves the central processor of high-frequency low-complexity operations.
- a local header as shown in Fig. 4 can be pre-pended on the RTP header of a packet 22 (shown in Fig. 4). In this way the data flow proceeds as shown in the block diagram of Fig. 5, with the program-affected locally addressed header fields replaced using the content addressable memory, without the need to pass each packet through the controller 39.
- the network hardware accelerator comprises a content-addressable memory (CAM) or table of values that are cross referenced in the memory, at least to those streams that are currently in progress.
- the content addressable memory stores connection parameters for hardware-accelerated connections, which include at least a subset of the connections that are possible using the apparatus as a whole.
- the hardware accelerator includes circuitry sufficient to determine whether an incoming packet is associated with a stream already established in the message queue information stored in the content addressable memory. If a message queue entry exists, the hardware accelerator handles the incoming packet in the manner already determined by the message queue entry. If packet does not have an existing entry, the hardware accelerator defers to the central processor to establish a new message queue entry if the packet is to become part of an accelerated stream.
- the manner of handling the packet can include replacing packet header values with local addresses, revising header values to cope with a particular situation, changing values associated with a different level of protocol, etc.
- the traffic manager/arbiter is used to provide memory and disk access arbitration, as well as manage incoming and outgoing network traffic. It manages a number of queues that can be assigned for input and output of the various hardware accelerated connections and the central processor.
- the method of the invention is illustrated in a data flow block diagram in Fig. 4 and in a flowchart in Fig. 6.
- the media streamer apparatus receives a stream of RTP packets from an endpoint, and must be implemented so as process the data with sufficient efficiency and speed to keep pace with the real time packet, and sufficient adaptive flexibility to be compatible with changes in requirements for data handling, such as invoking or shutting down new source/destination relationships with endpoints or with intermediate elements that may involve a wide array of dynamically varying RTP payload types, sources and destinations.
- RTSP and RTCP operations are infrequent enough that they can be operatively implement in software running on the central processor, and the program executed can be complex, without typically causing problems with keeping pace with data content. Therefore, these functions preferably are implemented in the software running on the central processor.
- RTP steady-state streaming involves repetitive handling of packets, for example directing all the packets in a stream to a particular destination that can be temporarily assigned while a stream is active.
- the function is handled in the dedicated hardware of the network accelerator and the traffic manager/arbiter.
- the content addressable memory contains a set of values applicable to the stream, such as the destination address, last packet sequence number, etc.
- the hardware processor can contain a register that holds stream identification information referenced by way of the content addressable memory to the associated packet data values.
- the hardware accelerator matches the identification information on an incoming packet to an entry in the content addressable memory, and gates the information for the matched packet to an output. This process is used, for example, to replace data values in a packet header, such as the header address information, with local address information read out of the content addressable memory for the stream with which the packet is associated.
- the replacement of values is a simple and repetitive process, shown generally by the flow chart of Fig. 6. If the next packet encountered in part of a current stream, it has a queue entry. The stream identification information (e.g., address information) is matched to an entry in the queue, namely in the content addressable memory. If not entry is found, the processor is signaled and an entry may be established by the processor, which is programmed for determining the appropriate queue entry values and storing them in the content addressable memory of the hardware accelerator (the processor functions are shown within a broken line box).
- the stream identification information e.g., address information
- the processor is signaled and an entry may be established by the processor, which is programmed for determining the appropriate queue entry values and storing them in the content addressable memory of the hardware accelerator (the processor functions are shown within a broken line box).
- the hardware accelerator determines the entries for the next packet received, replaces the original header values with values from the content addressable memory, and continues until an end of the stream, whereupon the queue entry in the content addressable memory for that stream is retired.
- the streaming apparatus is ready to support a new connection using the resources thereby freed.
- the software processes carried on by the central processor include interfacing with the hardware elements through an Applications Program Interface (API) that can initiate, end and switch between particular operations, for example to handle user input choices.
- API Applications Program Interface
- the API obscures the direct interface between the central processor and the hardware units (such as reading and writing registers, accessing hardware queues).
- PVR personal video recording
- RTSP functions running in the programming of the central processor monitor for a SETUP command to be received from and endpoint that may be a source or destination of packet data.
- the packet(s) comprising an RTSP - SETUP request is (are) received by the network accelerator, and the stream identified therein does not match an entry in the CAM lookup table.
- the network accelerator assigns them to the appropriate traffic manager queue (which is the queue that is associated with incoming traffic for the central processor).
- the CAM lookup parameters source and destination IP addresses and ports, and transport protocol
- a connection table entry in the CAM table is established for the RTP session.
- RTSP then waits for a subsequent RECORD request from the associated endpoint. If (or when) an RTSP - RECORD message is received, it is passed from the network accelerator to the traffic manager to the central processor via the same path as the SETUP message.
- the RECORD message may contain a (time) range of the stream to record. At this point the session can be considered established and the network accelerator is ready to receive data.
- the central processor sends an object size based on the range (if range is not specified, the maximum value is sent) and an available queue identification QID is submitted to the traffic manager for scheduling. This enables the hardware accelerator to process the packets by a simple replacement of header values for so long as the stream lasts without changes.
- Changes can be made by terminating or modifying the CAM table entry, for example if a local storage device is to commence recording of an incoming stream, and entry directing that stream to a playback device can be modified so that packets also are directed to the disk controller. Alternatively, another entry can be added that associates the stream with an endpoint at the local storage device.
- the RTP termination routines, switching operations that may vary according to conditions and similar computationally intensive functions may be too complex to be performed in relatively simple hardware.
- the time pressure of streaming data packets in real time likewise are too strict to allow a central processor with an extensive program efficiently to handle the incoming traffic in a timely manner at all time (i.e., on-the-fly).
- the invention implements an alternate method wherein each packet on the stream is received by the network accelerator, which matches the packet in the connection table, strips the layer three and four headers, applies a local header, and sends each packet with local header, RTP header, and RTP payload to the traffic manager for writing to the destination, such as the local disk.
- the format of the incoming packet is such that the Local Header comprises a 32-bit quantity that included a value for the total length of the packet and any required flags. These fields define the boundaries of each RTP packet and remain useful after the packet has been stored to the disk. While the object is stored in this format, the stored packets can be scheduled for delivery back to the originating endpoint in an acknowledgement, or can be routed to another endpoint on the network.
- the traffic manager must have the ability to read the object, packet- by-packet, such that it can extract the Length field for each packet from the Local Header to use as the transfer size. The traffic manager sends Length bytes of data to the network accelerator and advances the queue to the start of the next packet.
- the network accelerator strips off the local header, and adds an offset.
- the offset is determined initially by the central processor, and is stored as a field in the content addressable memory (CAM) table for the associated transfer, to contribute to determining the Sequence Number field to be placed in the outgoing packet RTP header by the hardware accelerator. This enables the provision of a random ISS, as specified in RFC 3550.
- the outgoing timestamp is adjusted in a comparable way. This enables provision of a random ITS, as specified in RFC 3550.
- the layer three and layer four headers are similarly constructed and placed in the header of the outgoing packet.
- the outgoing packet is sent to the MAC/PHY block.
- One advantage of this method is that incoming RTP traffic can be managed by software. As various different RTP payload types come into use or perhaps change in definition, support for them can be maintained by the inventive streaming apparatus. In addition, PVR functionality of delayed-view-while-recording can be supported.
- a disadvantage is that while the object is stored in the RTP-header format, it is not accessible for HTTP transfers.
- Software on the host central processor can be used to reassemble the original media object in order to make the object available, immediately to non-RTP clients, or to any clients by reassembly deferred until the necessary resources are available.
- the invention is incorporated into a data manipulating system including a disk array controller device.
- This device can performs storage management and serving for consumer electronics digital media applications, or other applications with similar characteristics, such as communications and teleconferencing.
- the device provides an interface between a home network and an array of data storage devices, generally exemplified by hard disk drives (HDDs) for storing digital media (audio, video, images).
- HDDs hard disk drives
- the device preferably provides an integrated 10/100/1000 Ethernet MAC port for interfacing toward a home network or other local area network (LAN).
- a USB 2.0 peripheral attachment port is advantageously provided for connectivity of media input devices (such as flash cards) or connectivity to a wireless home network through the addition of an external wireless LAN adapter.
- the preferred data manipulating system employs a number of layers and functions for high-performance shared access to the media archive, through an uppe.r layer protocol acceleration engine (for IP/TCP, IP/UDP processing) and a session-aware traffic manager.
- the session aware traffic manager operates as the central processor that in addition to managing RTP streaming as discussed herein, enables allocation of shared resources such as network bandwidth, memory bandwidth, and disk-array bandwidth according to the type of active media session. For example, a video session receives more resources than an image browsing session.
- the bandwidth is allocated as guaranteed bandwidth for time- sensitive media sessions or as best-effort bandwidth for non time sensitive applications, such as media archive bulk upload or multi-PC backup applications.
- the data manipulating system includes high-performance streaming with an associated redundant array of independent disks (RAID).
- the streaming-RAID block can be arranged for error-protective redundancy and protects the media stored on the archive against the failure of any single HDD.
- the HDDs can be serial ATA (SATA) disks, with the system, for example including eight SATA disks and a capacity to handle up to 64 simultaneous bidirectional streams through a traffic manager/arbiter block.
- SATA serial ATA
- the overall data manipulating system is shown in Fig. 7 and described only generally.
- the "receive” path is considered the direction by which traffic flows from other external devices to the system, and the “transmit” path is the opposite direction of data flow, which paths lead at some point from a source and toward a destination, respectively, in the context of a given stream.
- the Upper Layer Processor is coupled in data communication to/from either a Gigabit Ethernet Controller (GEC) or the Peripheral Trafffic Controller (PTC).
- GEC gigabit Ethernet Controller
- PTC Peripheral Trafffic Controller
- TMA Traffic Manager/Arbiter
- either the GEC or PTC block typically receives Ethernet packets from a physical interface, e.g., a to/from a larger network.
- the GEC performs various Ethernet protocol related checking, including packet integrity, multicast address filtering etc.
- the packets are passed to the ULP block for further processing.
- the ULP parses the Layer 2, 3 and 4 header fields that are extracted to form an address. A connection lookup is then performed based on the address. Using the lookup result the ULP makes a decision as to where to send the received packet.
- An arrival packet from an already established connection is tagged with a pre-defined Queue ID (QID) for traffic queuing purpose used by TMA.
- QID Queue ID
- AAP application processor
- the packet is tagged with a special QID and routed to AAP.
- the final destination of an arrival packet after AAP will be either the hard disks for storage when it carries media content or the AAP for further investigation when it carries a control message or the packet can not be recognized by AAP, potentially leading to the establishment of a new Queue ID.
- the packet is sent to TMA block.
- TMA stores the arriving traffic in the shared memory.
- the incoming object data is stored in memory, and transferred to a RAID Decoder and Encoder (RDE) block for disk storage.
- RDE RAID Decoder and Encoder
- TMA manages the storage process by providing the appropriate control information to the RDE.
- the control traffic destined for AAP inspection are stored in the shared memory as well, and the AAP is given access to read the packets in memory.
- the AAP also uses this mechanism to re-order any of the packets received in out-of-order.
- a part of the shared memory and disk contains program instructions and data for the AAP.
- the TMA manages the access to the memory and disk by transferring control information from the disk to memory and memory to disk.
- the TMA also enables the AAP to insert data and extract data to and from an existing packet stream.
- TMA manages the object retrieval requests from the disk that are destined to be processed as necessary to send via the Application Processor or the network interface.
- the TMA Upon receiving a media playback request from the Application Processor, the TMA receives the data transferred from the disks through MDC and RDE blocks and stores it in memory.
- the TMA then schedules the data to ULP block according to required bandwidth and media type.
- the ULP encapsulates the data with the Ethernet and L3/L4 headers for each outgoing packet. The packets are then sent to either GEC or PTC block based on the destination port specified.
- a connection lookup functional part of the network accelerator can include address forming, CAM table lookup, and connection table lookup functional blocks.
- the CAM lookup address is formed in part as a result of information extracted from the incoming packet header. The particulars of the header field to be extracted depend on the traffic protocol in use.
- the to-be-formed address has to represent a unique connection. For most popular internet traffic, for example carried in IP V4 and TCP/UDP protocol, the source IP address, destination IP address, TCP/UDP source port number, TCP/UDP destination port number and protocol type (the so called "five tuple" from packet header) define a unique connection.
- Other fields may be used to determine a connection if a packet is of different traffic protocol (such as IP V6).
- Appropriate controls such as flags and identifying codes can be referenced where multiple protocols are served, so as to make the system a "protocol aware" hierarchical one.
- the process can be divided into three stages, with each stage corresponding to a level of protocol supported.
- a first stage can check the version number of L3 protocol from a field extracted during the header parsing process and stored in an information buffer entry for an arriving packet as a step in the address forming process.
- a composite hardware table is provided for second and third stages in the address forming process. The table entry number at each stage depends on the stage the table is in and the number of different protocols to be supported at each stage.
- Each table entry always consists of a content addressable memory (CAM) entry and a position number register.
- Each position register is always composed of a pair of offset-size fields.
- Each CAM entry stores the specific protocol values for the corresponding position register.
- the offset specifies the number of bytes to be skipped from the beginning of packet header to the field to be extracted.
- the size field specifies the number of nibbles to be extracted. The same address is used to access both the CAM field and the position register.
- header length at a particular protocol level is not fixed.
- TCP and IP header lengths may change due to "option" fields.
- a potentially variable header length from the outer level protocol would relatively displace field positions at the inner level protocol, including the inner level header length itself.
- a protocol header length field can be extracted as part of the address lookup process for those levels that include a length field.
- some protocols such as IP V6 and UDP
- no header length can be extracted, but it is possible by other techniques can be employed, such as setting and keeping a fixed header length during a given connection.
- the address forming process is shown graphically in Fig. 8.
- a packet is buffered and the first level of protocol (e. g. version number for IP protocol) is identified and stored in a packet information table.
- the header length (e.g., the IP header length) is extracted from the packet information table if the length entry exists.
- the protocol type code extracted from the first stage affects where to find second stage protocol values.
- the CAM supports any possible combination of protocols and offsets.
- the first offset-size value determined leads the extraction of the second level of protocol (e.g., the protocol field for IP protocol in this example).
- the position number register entries correspond one for one with the number of CAM entries at each stage. There are two pairs of position registers for each entry in the second stage.
- the header length field (e.g., the IP header length), if it exists, is extracted from the packet header according to the offset specified in the second pair of position registers.
- the field extracting process at third stage is similar to that of second stage. However, the CAM access at the third stage must reflect the concatenation of protocol types extracted from both first and second stages, etc. There are now eight pairs of offset-size fields for extracting values from eight fields. The multiple fields extracted from each entry, in view of the protocol type value, are used to identify the entry such that values are concatenated together to form a final address.
- the fields accessed in the buffer or address forming registers and the content addressable memory are handled by the network accelerator.
- the control processor at the ULP only reads the value necessary to construct a lookup address for determining the address of required valued in the CAM. If there is a CAM lookup miss during the address forming process, the process can be aborted and the incoming packet is tagged with an error flag.
- the dimensions of the address forming register can be summarized.
- the second stage has two register entries, two CAM entries, and one pair of position registers for each message queue entry.
- the third stage has eight register entries, eight CAM entries and eight pairs of position registers.
- Each position register comprises 16 bits, with 10 bits to represent offset (to cover 512 bytes), 6 bits for size (to represent 64 nibbles).
- the value formed in address forming section is used together with the information previously stored by the control processor (namely the application processor) when a connection was established, namely upon arrival of packets that signaled the initiation of a connection for transport of particular data between particular source and destination points.
- the control processor populates the content addressable memory (CAM) with entries. Each entry in the CAM uniquely determines a connection.
- CAM content addressable memory
- the AAP may determine a need to setup a connection upon analyzing the arrival packet.
- a free entry is found in the CAM (e.g., one of 64 possible streams that the system can support simultaneously).
- the free entry address is used to set up the connection table for the new stream.
- the AAP writes the connection address into the free entry of the CAM so that later arrival packets with the same address will match the entry in the CAM. This permits the later arriving packets to be handled without requiring the attention of the AAP, because the packets are handled by the network accelerator function discussed.
- Both the occupied CAM entries and the free CAM entries can be accessible to the control processor AAP.
- the control processor AAP is responsible for setting up, tearing down and recycling CAM entries.
- the CAM device itself can be embodied in various ways that generally comprise registers and gating arrangements that enable at least a subset of potential input data values to be used as addressing inputs to extract from the memory a corresponding output data value.
- Random access memory devices typically store and retrieve data by addressing specific memory locations, each possible input value corresponding to a memory location.
- a large number of addressing bits correspond to a large number of memory locations, and where the number of memory entries is not large, the time required to find a given entry in memory can be reduced by hardware gating arrangements enabling a digital comparison with a portion of the stored data content in the memory, itself rather than by specifying a memory address.
- Memory that is accessed in this way is called content-addressable memory (CAM) and has an advantage in an application of the type discussed.
- CAM content-addressable memory
- the CAM can vary in the width of stored values from 4 to 144 bits, and has a depth from 6 to 1024 entries.
- two concatenated CAM devices are provided, each comprising a 64 entry by 129 bits device, for supporting up to 64 bidirectional streams.
- 128 bits are used for data storage, 1 bit is used as an entry-valid bit.
- This arrangement, forming a 64 by 256 CAM, is represented in Fig. 9 as a simplified CAM lookup logic diagram, where a 256 bit word is split into two 128 bits sub words, and each sub word is compared against the content of a separate CAM device.
- the CAM address of the entry which matches the arrival address is used to access various information values concerning the connection. These are outlined in the following Table I.
- a local header is generated and pre-pended to each incoming packet.
- Such local header generation is configurable by the AAP.
- a ULP local header is created when a packet arrives from network.
- the local header has a fixed size of 32 bits with a format specified in Fig. 10.
- the ULP pre-pends the packet length derived by counting each receiving packet byte.
- it also embed the flags created by the Gigabit Ethernet Controller and by itself from lookup into the local header.
- the ULP adds the local header with the same format as long as local header is enabled regardless of packet destination.
- the inventive streaming apparatus directs data packets 22 having fields 24 representing at least one of a control value, a source address, a destination address and a payload type, between a source 27 and a destination 29.
- a communication pathway 32 receives the data packets from a server 27 or the like, and at least a content portion 33 of the data packets 22 is passed to at least one client 35, according to rules determined from said fields of the data packets 22.
- the rules include alternatives by which the data packets might be passed to one or more clients in distinct ways, such as being addressed to different specific devices, processed through different protocol handling specifics, etc.
- a control processor 39 is coupled to the communications pathway.
- the functions of the control processor can be provided wholly or partly in one or more of an upper layer processor (ULP) and application processor (AAP) or in an additional controller.
- ULP upper layer processor
- AAP application processor
- the control processor at least partly determines procedures applicable to the at least two alternatives for processing the packets when establishing a connection or stream.
- a network accelerator 42 having a memory 43 is coupled to the control processor 39, which loads the memory 43 of the network accelerator with data representing the at least two alternative procedures by which the data packets are passed in distinct ways.
- the procedures include (but are not limited to) directing the packets to distinct local or remote addresses.
- the network accelerator 42 thereafter is operable substantially independently of the controller 39 to pass the data packets 22 to the client 35.
- the data packets 22 have headers 24 (Fig. 3) containing the fields and the network accelerator 42 is operable responsive to the fields for at least one of replacing and appending said fields to select between the at least two alternatives.
- the apparatus is apt for handling RTP real time protocol streaming.
- the data packets further comprise control information according to one of RTSP and RTCP streaming control protocols.
- the network accelerator contains a content addressable memory having data values that are used, for example, for local addressing, of each ongoing stream while active.
- the controller sets up the data values that are to be used for a given stream.
- the content addressable memory at least some of the same data values are used for subsequent packets of the same stream, without tapping substantially into the computational resources of the controller, while exploiting the high data rate that is possible using the hardware accelerator containing or at least coupled to the content addressable memory.
- the respective components are operated to effect a method comprising the steps of packetizing content with associated header information representing at least one variable by which packetized content is selectably handled between one or more sources and one or more destinations therefor as a function of said variable; including control information in the streaming content, whereby a manner of selectably handling the packetized content is variable according to the control information; establishing or redirecting, pausing or otherwise altering a stream of the packetized content between a source and destination, and when so doing, determining a value the variable at least partly from the control information and storing said value in the network accelerator in association with an identification of the stream. Thereafter, when receiving packetized content for the stream, the value stored in the network accelerator in association with the identification of the stream, is used in handling the received packetized content.
- the packetized content of the ongoing stream is selectably handled in large part by the network accelerator, with minimal ongoing action from the control processor.
- the invention has been disclosed in connection with a exemplary embodiments but reference should be made to the appended claims rather than the discussion of examples to determine the scope of the invention in which exclusive rights are claimed.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Multi Processors (AREA)
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0805654A GB2448799A (en) | 2005-10-07 | 2006-10-06 | Media data processing using distinct elements for streaming and control processes |
DE112006002644T DE112006002644T5 (en) | 2005-10-07 | 2006-10-06 | Media data processing using characteristic elements for streaming and control processes |
US12/089,509 US20080285571A1 (en) | 2005-10-07 | 2006-10-06 | Media Data Processing Using Distinct Elements for Streaming and Control Processes |
JP2008534731A JP2009512279A (en) | 2005-10-07 | 2006-10-06 | Media data processing using different elements for streaming and control processing |
Applications Claiming Priority (12)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US72446405P | 2005-10-07 | 2005-10-07 | |
US72457305P | 2005-10-07 | 2005-10-07 | |
US72506005P | 2005-10-07 | 2005-10-07 | |
US72472205P | 2005-10-07 | 2005-10-07 | |
US72446205P | 2005-10-07 | 2005-10-07 | |
US72446305P | 2005-10-07 | 2005-10-07 | |
US60/724,462 | 2005-10-07 | ||
US60/725,060 | 2005-10-07 | ||
US60/724,722 | 2005-10-07 | ||
US60/724,463 | 2005-10-07 | ||
US60/724,573 | 2005-10-07 | ||
US60/724,464 | 2005-10-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2007044562A1 true WO2007044562A1 (en) | 2007-04-19 |
Family
ID=37719120
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2006/039223 WO2007044562A1 (en) | 2005-10-07 | 2006-10-06 | Media data processing using distinct elements for streaming and control processes |
PCT/US2006/039224 WO2007044563A1 (en) | 2005-10-07 | 2006-10-06 | Method and apparatus for rtp egress streaming using complementary directing file |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2006/039224 WO2007044563A1 (en) | 2005-10-07 | 2006-10-06 | Method and apparatus for rtp egress streaming using complementary directing file |
Country Status (6)
Country | Link |
---|---|
US (2) | US20080285571A1 (en) |
JP (2) | JP2009512279A (en) |
KR (2) | KR20080068690A (en) |
DE (2) | DE112006002644T5 (en) |
GB (2) | GB2448799A (en) |
WO (2) | WO2007044562A1 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010017464A2 (en) * | 2008-08-08 | 2010-02-11 | Cisco Technologies, Inc. | Systems and methods of reducing media stream delay |
US8015310B2 (en) | 2008-08-08 | 2011-09-06 | Cisco Technology, Inc. | Systems and methods of adaptive playout of delayed media streams |
US8239739B2 (en) | 2009-02-03 | 2012-08-07 | Cisco Technology, Inc. | Systems and methods of deferred error recovery |
CN102968422A (en) * | 2011-08-31 | 2013-03-13 | 中国航天科工集团第二研究院七○六所 | System and method for controlling streaming data storage |
US9582690B2 (en) | 2011-05-31 | 2017-02-28 | Smartrac Ip B.V. | Method and arrangement for providing and managing information linked to RFID data storage media in a network |
CN106940673A (en) * | 2017-03-15 | 2017-07-11 | 郑州云海信息技术有限公司 | One kind monitoring item interval adjustment method and system |
US10067809B2 (en) | 2016-04-20 | 2018-09-04 | International Business Machines Corporation | System and method for batch transport using hardware accelerators |
US10970133B2 (en) | 2016-04-20 | 2021-04-06 | International Business Machines Corporation | System and method for hardware acceleration for operator parallelization with streams |
WO2022197446A1 (en) * | 2021-03-16 | 2022-09-22 | Zoom Video Communications, Inc. | Systems and methods for video conference acceleration |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026616B (en) * | 2006-02-18 | 2013-01-09 | 华为技术有限公司 | Multimedia subsystem based interactive media session establishing system and method |
US8539065B2 (en) * | 2006-07-26 | 2013-09-17 | Cisco Technology, Inc. | Method and apparatus for providing access to real time control protocol information for improved media quality control |
US8014322B2 (en) * | 2007-02-26 | 2011-09-06 | Cisco, Technology, Inc. | Diagnostic tool for troubleshooting multimedia streaming applications |
US20090135724A1 (en) * | 2007-11-27 | 2009-05-28 | Tellabs Operations, Inc. | Method and apparatus of RTP control protocol (RTCP) processing in real-time transport protocol (RTP) intermediate systems |
US20090135735A1 (en) * | 2007-11-27 | 2009-05-28 | Tellabs Operations, Inc. | Method and apparatus of RTP control protocol (RTCP) processing in real-time transport protocol (RTP) intermediate systems |
US8904031B2 (en) * | 2007-12-31 | 2014-12-02 | Genesys Telecommunications Laboratories, Inc. | Federated uptake throttling |
US8949470B2 (en) * | 2007-12-31 | 2015-02-03 | Genesys Telecommunications Laboratories, Inc. | Federated access |
US9003051B2 (en) * | 2008-04-11 | 2015-04-07 | Mobitv, Inc. | Content server media stream management |
US7969974B2 (en) * | 2008-10-15 | 2011-06-28 | Cisco Technology, Inc. | System and method for providing a multipath switchover between redundant streams |
US8711771B2 (en) * | 2009-03-03 | 2014-04-29 | Qualcomm Incorporated | Scalable header extension |
KR101439709B1 (en) * | 2009-08-12 | 2014-09-15 | 코닌클리즈케 케이피엔 엔.브이. | Dynamic rtcp relay |
US20110110382A1 (en) * | 2009-11-10 | 2011-05-12 | Cisco Technology, Inc., A Corporation Of California | Distribution of Packets Among PortChannel Groups of PortChannel Links |
FR2961651B1 (en) * | 2010-06-22 | 2012-07-20 | Alcatel Lucent | METHOD AND DEVICE FOR PROCESSING MEDIA FLOW BETWEEN A PLURALITY OF MEDIA TERMINALS AND A PROCESSING UNIT THROUGH A COMMUNICATION NETWORK |
US8706889B2 (en) * | 2010-09-10 | 2014-04-22 | International Business Machines Corporation | Mitigating connection identifier collisions in a communication network |
CN102624752B (en) * | 2011-01-26 | 2014-06-18 | 天脉聚源(北京)传媒科技有限公司 | Anti-hotlinking method and system for M3U8 live streaming |
US9769231B1 (en) * | 2011-04-01 | 2017-09-19 | Arris Enterprises Llc | QoS for adaptable HTTP video |
US9176912B2 (en) * | 2011-09-07 | 2015-11-03 | Altera Corporation | Processor to message-based network interface using speculative techniques |
JP2015507407A (en) * | 2011-12-28 | 2015-03-05 | インテル コーポレイション | Integrated metadata insertion system and method in video encoding system |
US20140112636A1 (en) * | 2012-10-19 | 2014-04-24 | Arcsoft Hangzhou Co., Ltd. | Video Playback System and Related Method of Sharing Video from a Source Device on a Wireless Display |
US9148379B1 (en) * | 2013-01-09 | 2015-09-29 | “Intermind” société à responsabilité limitée | Method and system for prioritizing audio traffic in IP networks |
US9952276B2 (en) | 2013-02-21 | 2018-04-24 | Advantest Corporation | Tester with mixed protocol engine in a FPGA block |
US11009550B2 (en) | 2013-02-21 | 2021-05-18 | Advantest Corporation | Test architecture with an FPGA based test board to simulate a DUT or end-point |
US10162007B2 (en) * | 2013-02-21 | 2018-12-25 | Advantest Corporation | Test architecture having multiple FPGA based hardware accelerator blocks for testing multiple DUTs independently |
US10161993B2 (en) | 2013-02-21 | 2018-12-25 | Advantest Corporation | Tester with acceleration on memory and acceleration for automatic pattern generation within a FPGA block |
CN103354522B (en) * | 2013-06-28 | 2016-08-10 | 华为技术有限公司 | A kind of multilevel flow table lookup method and device |
US9275168B2 (en) | 2013-07-19 | 2016-03-01 | International Business Machines Corporation | Hardware projection of fixed and variable length columns of database tables |
US9235564B2 (en) | 2013-07-19 | 2016-01-12 | International Business Machines Corporation | Offloading projection of fixed and variable length database columns |
JP6268066B2 (en) * | 2013-09-20 | 2018-01-24 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | Transmission method, reception method, transmission device, and reception device |
RU2661762C2 (en) | 2013-11-27 | 2018-07-19 | Телефонактиеболагет Л М Эрикссон (Пабл) | Hybrid payload format of rtp |
US10523730B2 (en) * | 2014-03-12 | 2019-12-31 | Infinesse Corporation | Real-time transport protocol (RTP) media conference server routing engine |
US10015048B2 (en) | 2014-12-27 | 2018-07-03 | Intel Corporation | Programmable protocol parser for NIC classification and queue assignments |
US9825862B2 (en) | 2015-08-26 | 2017-11-21 | Barefoot Networks, Inc. | Packet header field extraction |
US9912774B2 (en) | 2015-12-22 | 2018-03-06 | Intel Corporation | Accelerated network packet processing |
US10735438B2 (en) * | 2016-01-06 | 2020-08-04 | New York University | System, method and computer-accessible medium for network intrusion detection |
KR102610480B1 (en) * | 2016-09-26 | 2023-12-06 | 삼성전자 주식회사 | Apparatus and method for providing streaming service |
US11223520B1 (en) | 2017-01-31 | 2022-01-11 | Intel Corporation | Remote control plane directing data plane configurator |
US10694006B1 (en) | 2017-04-23 | 2020-06-23 | Barefoot Networks, Inc. | Generation of descriptive data for packet fields |
US10826840B1 (en) | 2017-07-23 | 2020-11-03 | Barefoot Networks, Inc. | Multiple copies of stateful tables |
US10594630B1 (en) | 2017-09-28 | 2020-03-17 | Barefoot Networks, Inc. | Expansion of packet data within processing pipeline |
WO2020242443A1 (en) | 2018-05-24 | 2020-12-03 | SmartHome Ventures, LLC | Protocol conversion of a video stream |
US10976361B2 (en) | 2018-12-20 | 2021-04-13 | Advantest Corporation | Automated test equipment (ATE) support framework for solid state device (SSD) odd sector sizes and protection modes |
CN111510394B (en) | 2019-01-31 | 2022-04-12 | 华为技术有限公司 | Message scheduling method, related equipment and computer storage medium |
US11137910B2 (en) | 2019-03-04 | 2021-10-05 | Advantest Corporation | Fast address to sector number/offset translation to support odd sector size testing |
US11237202B2 (en) | 2019-03-12 | 2022-02-01 | Advantest Corporation | Non-standard sector size system support for SSD testing |
US10884847B1 (en) | 2019-08-20 | 2021-01-05 | Advantest Corporation | Fast parallel CRC determination to support SSD testing |
US11706163B2 (en) * | 2019-12-20 | 2023-07-18 | The Board Of Trustees Of The University Of Illinois | Accelerating distributed reinforcement learning with in-switch computing |
US11601355B2 (en) * | 2021-03-16 | 2023-03-07 | Dell Products L.P. | Contextual bandwidth management of audio/video conference |
KR20240065966A (en) * | 2022-11-07 | 2024-05-14 | 엑사비스 주식회사 | Method for network inspection storing data efficiently and system performing the same |
CN116016471A (en) * | 2023-01-06 | 2023-04-25 | 济南浪潮数据技术有限公司 | Control method of video platform and related components |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173333B1 (en) * | 1997-07-18 | 2001-01-09 | Interprophet Corporation | TCP/IP network accelerator system and method which identifies classes of packet traffic for predictable protocols |
WO2002043320A2 (en) * | 2000-11-07 | 2002-05-30 | Surgient Networks, Inc. | Network transport accelerator |
US20020176418A1 (en) * | 2001-04-19 | 2002-11-28 | Russell Hunt | Systems and methods for producing files for streaming from a content file |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6543053B1 (en) * | 1996-11-27 | 2003-04-01 | University Of Hong Kong | Interactive video-on-demand system |
US6977930B1 (en) * | 2000-02-14 | 2005-12-20 | Cisco Technology, Inc. | Pipelined packet switching and queuing architecture |
US7032031B2 (en) * | 2000-06-23 | 2006-04-18 | Cloudshield Technologies, Inc. | Edge adapter apparatus and method |
US20040128342A1 (en) * | 2002-12-31 | 2004-07-01 | International Business Machines Corporation | System and method for providing multi-modal interactive streaming media applications |
US7701884B2 (en) * | 2004-04-19 | 2010-04-20 | Insors Integrated Communications | Network communications bandwidth control |
-
2006
- 2006-10-06 DE DE112006002644T patent/DE112006002644T5/en not_active Withdrawn
- 2006-10-06 GB GB0805654A patent/GB2448799A/en not_active Withdrawn
- 2006-10-06 WO PCT/US2006/039223 patent/WO2007044562A1/en active Search and Examination
- 2006-10-06 DE DE112006002677T patent/DE112006002677T5/en not_active Withdrawn
- 2006-10-06 WO PCT/US2006/039224 patent/WO2007044563A1/en active Search and Examination
- 2006-10-06 US US12/089,509 patent/US20080285571A1/en not_active Abandoned
- 2006-10-06 US US12/089,485 patent/US20090147787A1/en not_active Abandoned
- 2006-10-06 JP JP2008534731A patent/JP2009512279A/en active Pending
- 2006-10-06 GB GB0805653A patent/GB2444675A/en not_active Withdrawn
- 2006-10-06 KR KR1020087010945A patent/KR20080068690A/en not_active Application Discontinuation
- 2006-10-06 KR KR1020087010946A patent/KR100926007B1/en not_active IP Right Cessation
- 2006-10-06 JP JP2008534732A patent/JP2009512280A/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173333B1 (en) * | 1997-07-18 | 2001-01-09 | Interprophet Corporation | TCP/IP network accelerator system and method which identifies classes of packet traffic for predictable protocols |
WO2002043320A2 (en) * | 2000-11-07 | 2002-05-30 | Surgient Networks, Inc. | Network transport accelerator |
US20020176418A1 (en) * | 2001-04-19 | 2002-11-28 | Russell Hunt | Systems and methods for producing files for streaming from a content file |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010017464A2 (en) * | 2008-08-08 | 2010-02-11 | Cisco Technologies, Inc. | Systems and methods of reducing media stream delay |
WO2010017464A3 (en) * | 2008-08-08 | 2010-04-08 | Cisco Technologies, Inc. | Systems and methods of reducing media stream delay |
US7886073B2 (en) | 2008-08-08 | 2011-02-08 | Cisco Technology, Inc. | Systems and methods of reducing media stream delay |
US8015310B2 (en) | 2008-08-08 | 2011-09-06 | Cisco Technology, Inc. | Systems and methods of adaptive playout of delayed media streams |
US8239739B2 (en) | 2009-02-03 | 2012-08-07 | Cisco Technology, Inc. | Systems and methods of deferred error recovery |
US9582690B2 (en) | 2011-05-31 | 2017-02-28 | Smartrac Ip B.V. | Method and arrangement for providing and managing information linked to RFID data storage media in a network |
CN102968422A (en) * | 2011-08-31 | 2013-03-13 | 中国航天科工集团第二研究院七○六所 | System and method for controlling streaming data storage |
US10067809B2 (en) | 2016-04-20 | 2018-09-04 | International Business Machines Corporation | System and method for batch transport using hardware accelerators |
US10067811B2 (en) | 2016-04-20 | 2018-09-04 | International Business Machines Corporation | System and method for batch transport using hardware accelerators |
US10970133B2 (en) | 2016-04-20 | 2021-04-06 | International Business Machines Corporation | System and method for hardware acceleration for operator parallelization with streams |
CN106940673A (en) * | 2017-03-15 | 2017-07-11 | 郑州云海信息技术有限公司 | One kind monitoring item interval adjustment method and system |
WO2022197446A1 (en) * | 2021-03-16 | 2022-09-22 | Zoom Video Communications, Inc. | Systems and methods for video conference acceleration |
Also Published As
Publication number | Publication date |
---|---|
DE112006002677T5 (en) | 2008-11-13 |
KR100926007B1 (en) | 2009-11-11 |
US20090147787A1 (en) | 2009-06-11 |
US20080285571A1 (en) | 2008-11-20 |
GB2448799A (en) | 2008-10-29 |
WO2007044563A1 (en) | 2007-04-19 |
JP2009512279A (en) | 2009-03-19 |
DE112006002644T5 (en) | 2008-09-18 |
GB0805653D0 (en) | 2008-04-30 |
KR20080068690A (en) | 2008-07-23 |
JP2009512280A (en) | 2009-03-19 |
GB0805654D0 (en) | 2008-04-30 |
GB2444675A (en) | 2008-06-11 |
KR20080068691A (en) | 2008-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080285571A1 (en) | Media Data Processing Using Distinct Elements for Streaming and Control Processes | |
US7483421B2 (en) | Routing data | |
EP2365449B1 (en) | Embedding a session description message in a real-time control protocol (RTCP) message | |
CN101352012A (en) | Media data processing using distinct elements for streaming and control processes | |
US10645131B2 (en) | Seamless switching between multicast video streams | |
US7831603B2 (en) | System and method for transmitting media based files | |
US9191191B2 (en) | Device and methodology for virtual audio/video circuit switching in a packet-based network | |
US20040255329A1 (en) | Video processing | |
US10477282B2 (en) | Method and system for monitoring video with single path of video and multiple paths of audio | |
WO2012094916A1 (en) | Method for encapsulating and transmitting streaming media packet, and device for processing streaming media | |
EP3096524B1 (en) | Communication apparatus, communication data generation method, and communication data processing method | |
JP2002529966A (en) | Data transmission | |
EP1676216B1 (en) | Embedding a session description (SDP) message in a real-time control protocol (RTCP) message | |
CN105900437B (en) | Communication apparatus, communication data generating method, and communication data processing method | |
US20080068993A1 (en) | Method and an apparatus for data streaming | |
WO2008028835A2 (en) | A method and an apparatus for data streaming | |
US20080062869A1 (en) | Method and an apparatus for data streaming | |
KR20150035857A (en) | Apparatus and method for delivering multimedia data in hybrid network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200680045732.6 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DPE1 | Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101) | ||
ENP | Entry into the national phase |
Ref document number: 0805654 Country of ref document: GB Kind code of ref document: A Free format text: PCT FILING DATE = 20061006 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 805654 Country of ref document: GB Ref document number: 0805654.1 Country of ref document: GB |
|
ENP | Entry into the national phase |
Ref document number: 2008534731 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 12089509 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1120060026445 Country of ref document: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020087010946 Country of ref document: KR |
|
RET | De translation (de og part 6b) |
Ref document number: 112006002644 Country of ref document: DE Date of ref document: 20080918 Kind code of ref document: P |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 06825589 Country of ref document: EP Kind code of ref document: A1 |
|
DPE1 | Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101) |