The present invention relates to the technical field of video streaming, multicast, unicast and other video distribution techniques. More specifically, the present invention is related to a method, a system and devices for enabling High-bandwidth multicast support on robust Ethernet access network with fast failover.
Multicast offers the scalable point-to-multipoint content distribution over the network, which is very efficient for streaming applications where one or several senders can deliver information to tens of thousands of receivers. With the uprising of IPTV (Interactive Personalized Television) and other multimedia applications, multicast support becomes more vital for the success of operators to both attract new customers and new service providers.
Supporting multicast in large network is a complex process. Currently multicast can be supported by the following ways:
Many layer-2 protocols such as ATM (Asynchronous Transfer Mode) and FDDI (Fibre Distributed Data Interface) have specific mechanism to deliver multicast traffics. Ethernet technology with its broadcasting nature becomes very promising to offer good multicast support for a layer-2 access networks.
The both two abovementioned mechanisms have their limitations.
For application based multicast support, it is actually implying the multicast application is initiated and coordinated by end systems, which can be totally out of control of any network or service providers. This model can work well for some multicast applications such as peer to peer file sharing, etc, but for some streaming applications such as IPTV which is provided by service providers and needs to be charged based on usage, the model lacks necessary control over the multicast application itself. So it may not be suitable for multicast service deployment from network or service providers. Limitations of IP based multicast support can be categorized into two types: Internet domain limitations and local domain limitations. For Internet domain, IP multicast has not provided sufficient support for issues such as group management, AAA (Authorization, Authentication and Accounting), security, etc, see reference [7]. For local domain limitations, especially for tree-based multicast systems, the multicast load is carried by a small number of nodes in the network, see reference [1]. This may work well for applications that do not have a very high bandwidth demand, but for applications like IPTV or even HDTV in the future, this may pose a resource problem: the traffic load is not balanced among all network nodes, thus leading to resource waste on one hand and long delay for some applications due to resource shortage on the other hand.
One problem identified in the above described technical field is that the data traffic load is not distributed effectively over the available paths and nodes through a network. Data streams needing very high bandwidth capacity may be distributed to already highly loaded path while some nodes and corresponding paths are unused or very little loaded.
One object of the following invention is to suggest a way of distributing and transmitting data streams through an access network, wherein the data traffic load is balanced among all network nodes and paths.
One aspect of the present invention is a method for transmitting a data stream from a first node of a spanning tree structure network to a second node of said network, wherein the data information of the incoming data stream (M) is split into a number of data segments, wherein each data segment is a unique portion of the total amount of data information carried in the incoming original data stream during time periods tp. The next steps are to generate a number of data sub-streams by distributing said data segments to said data sub-streams, and to distribute the different data sub-streams to different spanning trees of the network and transmitting each sub-stream through its assigned spanning tree to the second node. When receiving all sub-streams in the second node, the data segments are re-assembled from the received sub-streams to regenerate the original data stream.
Another aspect of the present invention is a Service Agent (SA) system for transmitting a data stream from a first node of a spanning tree structure network to a second node of said network, said nodes having at least one external connection outside the network. The system comprises a transmitting system block situated in the first node and comprising splitting means for splitting data information of the incoming data stream into a number of data segments, wherein each data segment is a unique portion of the total amount of data information carried in the incoming original data stream during time periods tp. The block further comprises means for generating a number of data sub-streams by distributing said data segments to said data sub-streams, wherein the means for generating data sub-streams is electrically connected to means for distributing the different data sub-streams to different spanning trees of the network. Said means is connected to a transmitter interface to transmit each sub-stream through its assigned spanning tree to a receiving system block situated in the second node. Said receiving block system comprises receiving means for receiving all incoming data sub-streams, and for forwarding said sub-streams to means for re-assembling the data segments from the received sub-streams to regenerate the original data stream.
Further one aspect of the present invention is a transmitting device which is identical to the transmitting system block of the above presented Service Agent (SA) system for transmitting a data stream from a first node of a spanning tree structure network to a second node of said network.
Moreover, further one aspect of the present invention is a receiving device, which is identical to the receiving block system of the above presented Service Agent (SA) system. Said receiving device comprises means for receiving a data stream transmitted from a first node of a spanning tree structure.
Different embodiments of the present invention are defined in the appended claims and in the detailed description section hereafter.
One advantage by splitting the data stream into a number of segments and transferring them through different trees is that it overcomes the unbalanced resource usage faced by traditional single tree multicasting, thus improves the bandwidth efficiency of the network system and performance of the multicast application. In other words, it introduces the high resource efficiency of a peer-to-peer system into a network provider domain.
Different embodiments of the present invention will now be described and discussed in more detail hereinafter with reference to the submitted drawings.
In the following description, for purposes of explanation and not limitation, specific details are set forth, such as particular circuits, circuit components, techniques, etc. in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced and other embodiments that depart from these specific details. In other instances, detailed descriptions of well known methods, devices, and circuits are omitted so as not to obscure the description of the present invention with unnecessary detail.
This invention further extends the architectural advantage of what is known from reference [9] and applies it to a new area: the multicast.
In
As illustrated in
A method for configuration of spanning trees in networks is proposed in reference [9], which method can be applied in e.g. Ethernet segments consisting of standard Ethernet switches available on the market. The extra functionalities that are needed for providing resiliency can be implemented in edge nodes of the Ethernet network, which are typically IP routers. VLAN is assigned to each spanning tree, so traffic forwarding to a tree can be controlled with the help of VLAN IDs in the edge nodes. That is, in this example protection switching becomes VLAN switching in this network.
After configuring spanning trees ST1, ST2 and ST3 by the proposed method, failure detection and traffic redirection, which are the so-called additional functionalities, can be invoked in edge nodes.
The proposed method for the generation of static spanning trees determines a small number of spanning trees to solve fault handling. These trees have to be determined before the configuration of the network, so the proposed method is run off-line.
The construction of spanning trees is split up into two phases according to the two types of failures aimed to be handled. The first phase determines the spanning trees needed to protect against single link failures. The second phase determines the additional spanning trees needed for protecting against node failures after having the spanning trees for link failure. Each spanning tree for handling link failure connects all the nodes of a network.
The method generates spanning trees for a network and at least one of the spanning trees remains complete in case of the breakdown of any single network element. For this reason, the requirements for the spanning trees can be formulated in the following way for the two types of failures:
During a multi-cast service deployment, when the multicast stream arrives at the border of this multicast domain NW1, a service agent will split the multicast stream into a number of sub-streams mk, e.g. 3 sub-streams (based on the fact there are 3 trees generated in the example and k=1, 2, 3), and send them separately through 3 different spanning trees. The service agent is an interface at the border of an multicast or a unicast domain. When the three different multicast streams arrive at the end system, they will be grouped together by software in the end system to form the original stream. The receiving end system (140 in
The present invention is an extension to a robust Ethernet access network architecture and fast failover mechanism are defined, earlier presented in reference [8]. In Ref. [8], several overlay tree-structure networks are configured based on a given physical network topology, each distinct by a VLAN ID. Those tree structures have the following features:
Multicast and Unicast streams should be split in an intelligent way, taking use of the codec features. For H.264 and other very modern video codecs a lot of work has been put into splitting the video stream into fault tolerant parts that can recover from packet loss and reordering problems.
A source (not shown) feeds a data stream, e.g. a video multicast stream comprising video frames, to a first node on the edge of a spanning tree network, wherein said node comprises a service agent (SA) function for receiving said data stream, step S5. The spanning tree structure network has at least a first and second node, said nodes being edge nodes as they have at least one external connection outside the network. In the next step, step S10, the data information of the incoming data stream (M) is split into a number K of data segments mk(tp), wherein each data segment is a unique portion mk(tp) of the total amount of data information M(tp) carried in the incoming original data stream during time periods tp. The incoming multicast stream M is iteratively and continuously split, step S10, into K multicast data sub-streams mk comprising a unique portion mk(tp) of the total amount of data information M(tp) carried in the incoming original multicast stream during time periods tp. Hence, the total data information is divided into pre-determined time periods, and the total data information for each such time period is split and distributed according to a certain scheme or algorithm into different data segments mk(tp), which when re-assembled together in time order, time period for time period in correct consecutive order, according to a corresponding reversed algorithm or scheme will constitute the original multicast stream. The flow of data segments for a certain value of K is considered to constitute a sub-stream of the original multicast stream.
In the next step, step S15, a number (K) of data sub-streams mk are generated by distributing said data segments mk(tp) to said data sub-streams mk. Thereafter, the different data sub-streams mk are distributed, step S20, to different spanning trees of the network and transmitting each sub-stream through its assigned spanning tree to the second node. All sub-streams mk are received, step S25, in the second node. The data segments mk(tp) are re-assembled, step S30, from the received sub-streams mk to regenerate the original data stream M.
Thus, when the different data sub-streams are received at the end system, they will be grouped together by software in the end system to form the original stream. The original stream will be distributed and transmitted, step S35, to the different multicast groups to be used, e.g. viewed by the subscriber if the data information carried by the multicast stream is a television program, movie, etc.
The slices of one multicast stream are simultaneously transmitted as sub-streams and forwarded in different trees through the network, directed to the correct edge node by the switching nodes. In each end system of a receiving node, the sub-streams are correctly reassembled to the original multicast stream. The slices are received and organised by the SA to build up each original video frame of the multicast stream.
The invented Service Agent method and functionality is enabled by a Service Agent system 100, which now will be described in more details with reference to
A multicast stream 104 is transferred via a suitable connection from at least one source (not shown), e.g. an access network for a given multicast application, to an edge node EN1 on the border of a network domain 132. An edge node controlling unit 108 is arranged to control the different means (of which many is not shown), functions and signal processes of the edge node. The controller 108 is also arranged to handle control communication with external entities by means of a communication interface, which is adapted to handle different application and communication protocols, e.g. receive protocols, read protocols, generate, address and transmit protocols. Further, the edge node comprises a signal processing unit 110 that is arranged to include a lot of different means for performing required and necessary already known signal processing, e.g. encoding, decoding, etc, of incoming data streams, which mostly is received according to a standardized protocol. In accordance with an embodiment of the present invention, a Service Agent function is installed in the edge node EN1 and Service Agent transmitting node means 102 will enable an edge node to perform the Service Agent functionality of the transmitting node.
Different configurations are possible: an edge node may comprise only transmitting system block 102, or only a receiving system block, or both transmitting system block and receiving system block.
Said Service Agent means will be presented in more details in the following description.
According to one embodiment, the Service Agent transmitting node means in block 102 will comprise Service Agent software means adapted to be executed and run by the controller 108 for controlling other Service Agent means. The described communication interface of the controller is adapted to recognize and handle Service Agent control and information communication from external Service agent entities 106, e.g. located in other edge nodes. Further, the Service Agent means comprises slicing means 114 for slicing incoming data streams, buffering means 118 enabling data streams to be temporary stored as data packet slices and distributing means 120 for distributing said slices according to a predetermined distributing algorithm, or distribution scheme, as separated data streams 122.
The multicast stream 104 is fed to slicing means 114 which will slice each frame of the multicast stream 104 into slices 112 according to a selected video codec standard. The slicing means 114 may be a part of the signal processing unit 110 of the edge node.
The generated data streams, 122 are fed to a transmit interface 130 comprising a number of transmitter devices, in this example 124, 126 and 128, for addressing the data packets to at least one distribution group and/or associated edge node EN2 over a number of separate spanning trees (see
The Service Agent function and means of block 102 of a node EN1 is connected to other Service Agents 106 of other edge nodes to be able to communicate and exchange information, e.g. about the data packet traffic load in different spanning trees, link failure in the tree, etc.
The service agent function can be either one service provider per service agent, or several service providers can share the same service agent.
Further, a Service Agent receiving function is installed in at least one other edge node EN2. Service Agent receiving node means of one Service Agent receiving system block 140 will enable an edge node to perform the Service Agent functionality of the receiving node. Said Service Agent means will be presented in more details in the following description.
As obvious to a person skilled in the art, said receiving node EN2 is an edge node connected to a number of separated spanning trees.
Said Service Agent receiving system block 140 is considered as an end system that comprises a receiving interface 142, controlling unit 146 and a signal processing unit 144 including a receiving block buffer for re-assembling the incoming multicast sub-streams.
The edge node controlling unit 146 corresponds to the controlling unit 108. In the same way, controlling unit 146 is arranged to control the different means (of which many is not shown), functions and signal processes of an edge node. The controller 146 is also arranged to handle control communication with external entities by means of a communication interface, which is adapted to handle different application and communication protocols, e.g. receive protocols, read protocols, generate, address and transmit protocols. The controlling units 108, 146 of the transmitting block 102 and receiving block 140, respectively, will be able to communicate via a control protocol over any of the spanning trees.
Further, the receiving block 140 comprises a signal processing unit 144 that is arranged to include a lot of different means for performing required and necessary already known signal processing, e.g. encoding, decoding, etc, of incoming data streams, which mostly is received according to a standardized protocol. Said signal processing unit 144 includes a Service Agent receiving block buffer for re-assembling the incoming multicast sub-streams, in this example illustrated as three incoming multicast sub-streams. The buffer 145 is arranged to restore the original frames of the original multicast stream 104 by using the header information in the data packets carrying the slices of the original frame.
The node comprises an output interface 160 for transmitting copies of the restored multicast stream 148 to the different user equipments 150, 152, 158 in the destination group connected to the edge node 40.
An alternative embodiment of the present invention is presented in
In the multicast streaming case, each frame is divided into K slices in accordance with the used video codec. A slice is defined as a certain region or segment of the frame. A slice is preferably formed as a stripe. In
When the data stream is a video multicast stream or unicast stream, a number of typical features should be taken into consideration are among the following (features from the video codec H.264 specification):
Mixed scenarios where the some channels are split over different paths and others are transmitted in a classical way works too.
If there is a node or link failure in the network, the edge node that detects the failure based on mechanism in [9] will send an alarm to the service agent functions, with information about which tree is temporarily unavailable, reacting upon a failure, the service agent function can either re-split the multicast stream, or simply merge the segment originally transferred through the now-unavailable tree into another segment, and continue the transmission until the failure is fixed and the affecting tree recovered. In the example discussed with reference to
With the help of [10], the failure can be located and fixed with high efficiency.
When the present invented technique is used, a network failure can be planned for in advance, so the maximum use of codec capabilities can be used. A network failure will result in a more codec friendly packet loss, so minimal quality loss is achieved. In many cases, packet losses of this kind can be recovered without any visible artifacts at all.
The present invention is a hybrid of a centralized solution and totally distributed peer-to-peer solution. It uses the load distribution idea of the peer-to-peer world. By splitting the multicast stream into a number of segments and transferring them through different trees, it overcomes the unbalanced resource usage faced by traditional single tree multicasting, thus improves the bandwidth efficiency of the network system and performance of the multicast application. In other words, it introduces the high resource efficiency of a peer-to-peer system into a network provider domain. On the other hand, by introducing the concept of service agent, it does not rely on end systems to participate actively into the multicast splitting process as peer-to-peer systems do, which in turn gives operators a better control over the network and traffic running in it.
The invention may be implemented in digital electronically circuitry, or in computer hardware, firmware, software, or in combinations of them. Apparatus of the invention may be implemented in a computer program product tangibly embodied in a machine readable storage device for execution by a programmable processor; and method steps of the invention may be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output.
The invention may advantageously be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language may be a compiled or interpreted language.
Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing may be supplemented by, or incorporated in, specially-designed ASICs (Application Specific Integrated Circuits).
A number of embodiments of the present invention have been described. It will be understood that various modifications may be made without departing from the scope of the invention. Therefore, other implementations are within the scope of the following claims defining the invention.
| Filing Document | Filing Date | Country | Kind | 371c Date |
|---|---|---|---|---|
| PCT/SE07/50969 | 12/10/2007 | WO | 00 | 6/14/2010 |