• 沒有找到結果。

CHAPTER 2 BACKGROUND

2.2 R ELATED W ORK

2.2.5 Enhancement of Resilience

Probabilistic Resilient Multicast (PRM) [11] uses a proactive forwarding approach to increase the data delivery ratio. The method is to use randomized forwarding. Every node randomly chooses a constant number of other nodes and forwards data to them with low probability. The randomized forwarding is simultaneous with the usual data forwarding mechanism. Hence, some nodes may receive the same data. But this approach will make the nodes can receive the data even when their parents fail. And then, it proposes an extension called Ephemeral Guaranteed Forwarding (EGF). When some nodes are repairing their transmission paths (finding new parents), they can request other nodes to temporarily increase the probability of forwarding data to them. Therefore, they still can receive the data in the repairing process.

A proactive approach to reconstruct multicast trees is proposed in [12]. When some interior nodes leave trees or fail, it will minimize the disruption of service for those affected nodes. The approach is every interior node should compute a parent-to-be for each of its children. In the computation process, it will consider the degree constraints of each node. And it also deals with the situation of multiple leaves. After that, if an interior node leaves the tree or fails, all its children will find their new parent (parent-to-be) immediately. By this approach, when some edges of the tree broken, every node can find a new parent quickly and also recover the transmission path.

Chapter 3 Principle

3.1 Overall System

The three approaches we use are information dispersal algorithm, multiple stripes, and helper. Base on these three approaches, we can establish the scheme of application layer multicast system presented in Figure 3.

Figure 3: Application Layer Multicast System

The whole graph is an ALM system with many independent ALM services inside. Each service provides different streaming data. The circle nodes are the users who join the system and generally called peer. Each peer has different name based on what they do in the system.

Peers who provide streaming data are called source peers. Peers who subscribe the service are called subscribers. Peers who don’t subscribe the service are called helpers of the service.

Peers who don’t subscribe any service are called idle peers and they can be helpers for all services. Now, we point out the place our three approaches performed.

Information dispersal algorithm The dark circle node is the source peer. Before it sends out the streaming data, the data will be processed by IDA.

Multiple stripes In Figure 3, there are two different lines inside the ALM service in left side. The two kinds of line represent two different trees and source peer transmit different

stripes which are generated from IDA through different trees.

Helper The ALM service in left side shows there are two helpers contribute their bandwidth to the service. They help to retransmit stripes to the subscribers of the service.

We have several hypotheses for the ALM system. One, most peers of the ALM system are using asymmetric connectivity. It means they have poor upstream bandwidth. Two, all peers have degree constraint which is determined by the upstream bandwidth offered by individual peers. Three, the data rate of the streaming data provided in ALM system is too high for general ALM mechanism. Four, the number of peers in the ALM system is very large.

In other words, the lack of helper is not a problem. Five, the streaming data transmitted in ALM service might have security requirement.

In the following sections, we will introduce the principle detail of the three approaches.

3.2 Information Dispersal Algorithm (IDA)

(n, m) information dispersal algorithm (IDA) [8] is a method that disperses data for security, fault tolerance and etc. It can disperse the original data into n pieces and we must have m pieces or more, , to be able to restore to the original data. For security, peers can’t know any content of data if they have less than m pieces. For fault tolerance, it means that it could tolerate some of pieces missing and still can restore to the original data. Moreover, it has a special characteristic that the m pieces we mention before is any m pieces without any order, needn’t to be continues, and no any piece is must have. On the contrary, using IDA will cause the data size much bigger. If the size of data F is

mn

F , we disperse it into n pieces, the

size of each piece will beF m/ . Therefore, the total size of n pieces will be F ⋅( /n m). Following we will brief describe how to use IDA in transmission process.

3.2.1 Split

First, we must decide (n, m) and then we use IDA on the transmitted data F. Let the

content of F be , F is divided into N units. We use the content of F to generate a matrix B and the blank places are filled in 0. The size of matrix B is .

1, 2, , N of m different vectors must be linearly independent. And then we use to compose matrix A that the size of matrix A is .

It is the initialization step from (1) to (4). Then we will use IDA in the transmission process. First, we will divide F into n pieces. Base on the matrix A and B we calculate before,

A B⋅ =C, C is a n× ⎡⎢N m/ ⎤⎥ matrix. We can divide C into n vectors called ci, 1≤ ≤i n, the length of a vector is . These n vectors are the pieces we want. And then these n pieces will be transmitted through different transmission paths to all peers (based on multiple stripes approach).

1 ( 1) 1

ik i k m im km

c =ab + + +ab (7)

3.2.2 Restoration

After splitting F into n pieces in previous section, we will show we can restore F from any m pieces. When peer receives m pieces or more, the peer can restore the original F. We choose any m pieces and choose the corresponding m vectors

in A. Through the expression below, we can restore the matrix B and also we obtain the original data F.

, 1

Therefore, as long as all peers generate the same matrix A as source peer, they could restore the original data from any m pieces of the data.

3.2.3 Efficiency

Only produce matrix C and restore matrix B in IDA will influence on the efficiency of Trickle. It is because the production of matrix A and A-1 is only once, we don’t need to reproduce. Now, we consider the number of operations split and restoration need.

For split, it needs n m× × ⎡⎢N m/ multiplication operations and n×(m− × ⎡1) ⎢N m/ ⎤⎥ addition operations. The complexity of operation is also associated with the size of b which is

/

F N. Therefore, split is affected by the parameter n and the size of data. The complexity of split is O n( ×F). For restoration, it needs m m× × ⎡⎢N m/ ⎤⎥ multiplication operations and addition operations. Therefore, restoration is affected by the parameter m and the size of data. The complexity of restoration is

( 1) /

m× m− × ⎡⎢N m⎤⎥

( )

O m× F .

3.2.4 Advantage

Using the combination of IDA and multiple stripes in transmission process has several advantages. First, security and fault tolerance, these are the design purposes of IDA. These two characteristics quite match our requirement. Because we join the concept of helper into Trickle, security of data transmission is necessary when the data is sensitive. And further, because the whole ALM service is composed by peers (end hosts), the service can’t promise peers can receive all data. By the fault tolerance of IDA, the transmission process is more resilient. Second, we only need to receive m of n pieces to restore original data, so we do not need to wait the remand n-m pieces. Because every piece is transmitted through different path, some paths are congested and some are not. Therefore, the thing that influences on our delay of receiving data is the most quick m paths, not all n paths. Even if the congestion of transmission paths will change, we still can prevent to be influenced by most congested n-m paths without changing our transmission paths. Hence, the receiving process is more efficient.

3.2.5 Influence of n and m

Because our IDA and multiple stripes approach will influence each other, the decision of n and m will cause some effect. First, n will influence on how many trees we will build in an

ALM service. Too many trees will lead to increase amount of control signal and the control overhead will consume our rare upstream bandwidth. Second, the ratio of n and m will influence on the transmission overhead. As we mention before, the size of data that using IDA will times bigger than the original one. It means that the data transmitted through network will increase times. However, we don’t really need to receive all n stripes.

We will explain the improvement in next chapter. In addition, the ratio of n and m will influence on the resilience of ALM service. The larger ratio of n and m is, the more resilient ALM service will be. In other words, we can tolerate more stripes lose. Hence, the decision of n and m is very important and must base on what application the service wants to provide.

( /n m)

( /n m)

3.3 Multiple Stripes/Trees

The concept of multiple stripes has been brought up in previous research [2], [3]. Each message transported from source peer will be divided into several stripes. In tree building step, we not only construct one tree, we construct as many different trees as the number of stripes that one message is divided into. And each tree transmits different stripe of the message to subscribers. Hence, the peer receives different stripes of the message through different transmission paths. Figure 4 present an example of multiple stripes. By this approach, we get a lot of advantages mentioned before. Moreover, we enhance multiple stripes by combining with IDA approach. The description is in following content.

Figure 4: An example that a message is divided into 2 stripes

3.3.1 Combine with IDA

The combination of multiple stripes and IDA mean that one message will be divided into several stripes by IDA approach. And each stripe will be transmitted through different trees.

The purpose of multiple stripes/trees is to prevent losing a whole message when one link broken. The purpose of IDA is to promise peers will restore the original message even some stripes lose.

When we use (n, m) IDA technology, every peer joining in the ALM service will have n different transmission paths (actually, it is mostly less than n, we will explain about it in next chapter) that the origination is source peer and destination is itself. Each transmission path of the peer transmits different stripe and peers only need to receive any m stripes of the total n

stripes, then those stripes can be restored to the original message. In other words, the transmission process can tolerate to loss at most n-m stripes.

Therefore, we must make sure that any peer leave the ALM service will not cause the remand peers who are still in the ALM service can not restore the original message. This situation happens only when the leaving peer is in more than n-m of n transmission paths of any peer. When such peer leaves the ALM service, it will cause more than n-m transmission paths of the peer break down and the peer can only receive less than m stripes. Hence, the peer can not restore the original message. This situation can be prevented by building disjoint transmission paths.

3.3.2 Building Disjoint Paths

Base on the description before, we know that we must prevent any peer is in more than n-m transmission path of other peers. The solution for building this kind of transmission paths

is to restrict that every peer become interior node in constant number of trees. And the number must not bigger than n-m. Therefore, there are two different choices to decide the number of being interior node for each peer. The first choice is every peer becomes interior node in more than one tree and the second choice is to restrict every peer can become interior node in only one tree. The advantage of first choice is that some peers with high upstream bandwidth will contribute their bandwidth averagely in multiple trees without contributing whole upstream bandwidth in only one tree. It is good for Trickle because in transmission process with IDA, the importance of all stripes is the same. However, there is a critical disadvantage to contribute bandwidth in multiple trees. It will cause the height of trees in ALM service much bigger and the end to end delay will be higher because the degree of nodes in each tree are smaller.

Therefore we decide to pick the second choice that every peer becomes interior node in only one tree. This method restrict that any peer at most in one of n transmission paths of other subscribers. And then, we have to use a method to decide peers become interior node in

which tree. In SplitStream [2], it provides a method that can establish interior-node-disjoint trees. Each tree root has different prefix of groupId. Due to the tree building method, groupId and nodeId of peers will cause which peers become interior node. Therefore, it will restrict that every peer will play the role of interior node in no more than one tree and being leaf node in the remand trees. This method is only fit for the tree building algorithms that base on DHT.

In out hypothesis, we hope Trickle can be applied to any tree building algorithm. Therefore, we use different method to decide peers become interior node in which tree.

3.3.3 Become Interior Node

Each peer decides it will become interior node in which tree by itself. When a new peer is in the process of joining service, there are two decision methods to decide which tree it should be interior node. One, in order to prevent violating the DHT concept, if the tree building algorithm is based on DHT, it decides to be interior node in the tree whose root has the same prefix hash id. It is approximately the same as SplitStream, but the only difference is the peer already decides the tree it wants to be interior node by itself in the beginning of joining service. The second method is the peer randomly decides which tree it should be interior node and be leaf node in other trees.

The advantage of random solution is that we don’t need a server to do resource (upstream bandwidth) management. However, it may probably cause large number of peer being interior node in the same tree and the resource distributed unfairness. It will cause that the upstream bandwidth of some trees is not enough. We solve this problem by using the concept of helper. Those trees with poor resource will ask helper for help. The helper will share their upstream bandwidth to those trees that need it. Therefore, when the number of helper is nearly infinite, the upstream bandwidth won’t be exhausted. And the concept of helper will be described in next section.

3.4 Helper

The peers are idle or the subscribers of other services can be the helper of the service.

For example, in one service, the peers are regarded as subscribers, but for other services in ALM system, they are not subscribers. Therefore, we call them helper when they are not regarded as subscribers of the service. We hope those peers that are idle or have ample upstream bandwidth can share their bandwidth with other ALM services. Hence, for those ALM services that can not provide smooth streaming data to the subscribers will request helper for help.

3.4.1 Demand of Helper

In order to make every peer receive streaming data smoothly, every peer will restrict the number of children it can support based on its upstream bandwidth. A peer will request to be some peer’s child in three cases: (1) the peer is a new subscriber and it chooses a peer in the service to be its parent by tree building algorithm, (2) the transmission path between the peer and source is broken, it wants to change transmission path, (3) the tree structure adaptation algorithm will cause peers to change their parents. When the peer already reaches its upper bound of child number, it receives the request from the other peer that wants to be its child. It is the time to request helper’s help in order to accept the request.

3.4.2 Find Helper

There are two issues need to be consider when peers need helper’s help.

How to find the helper Because we expect our infrastructure of ALM system is based on decentralized control, not centralized control by some peers, like source peer. Hence, every peer needs to have the capability of finding helper. When every peer joins the ALM system, they will establish a neighbor table to record peers that are close to them. The definition of neighbor is that the number of IP routing hops between its neighbor and itself is below a predefined number. When the peer joins one ALM service and the neighbors of the peer who

are not in this service can be helper candidates (because of the restriction in next section).

Hence, peers can request assistance of helper candidates in neighbor table when they need helper’s help.

Helper selection The second issue is that if there is more than one helper candidate, which one of candidates we should choose. Because the participation of helper will make the transmission path longer and it will increase the end to end delay of affected peers, we must choose the candidate that increases the transmission path length least. We explain it by an example presented in Figure 5. dAH means the number of IP routing hops from A to helper candidate (who are in the neighbor table of A), dHB means the number of IP routing hops from helper candidate to B. If we need the assistance of helper between A and B, we will choose the candidate that it makes the dAH+dHB to be smallest and then we request the helper candidate to join the ALM service and place it between A and B.

Figure 5: An illustration of helper selection

3.4.3 Restriction of Helper

The selection of helper has two restrictions. First, helper might be the subscriber of other ALM service. We can not request them to share too much bandwidth that will cause them can not smoothly receive the streaming data they want. Therefore, every peer will share the fix ratio of bandwidth for being helper. The ratio of bandwidth it will share is defined by ALM system. Second, for security consideration, we can’t allow helper to know the content they transmit. Base on the characteristic of (n, m) IDA, we restrict a helper can help only one tree in one ALM service. It means a helper can only join one tree of the service and become interior node in the tree. Hence, helper can’t know the content it transmits because it doesn’t have enough stripes. And also, every peer still can receive the whole message when it leaves.

3.4.4 Helper Join

After finding one helper, we need to explain how the helper joins the tree. We explain the process by an example presented in Figure 6. In Figure 6(a), peer A’s upper bound of child number is 3. It shows A is already reach its upper bound and new peer E send request to A that it wants to be A’s child. It is the situation that needs helper’s help. There are three steps to

After finding one helper, we need to explain how the helper joins the tree. We explain the process by an example presented in Figure 6. In Figure 6(a), peer A’s upper bound of child number is 3. It shows A is already reach its upper bound and new peer E send request to A that it wants to be A’s child. It is the situation that needs helper’s help. There are three steps to