A Fault-Tolerant Dynamic Channel Allocation Scheme for ... - CiteSeerX

7 downloads 0 Views 180KB Size Report
In cellular networks, it is vital to allocate communica- tion channels efficiently because the bandwidth allocated for cellular communication is limited.
Proceedings of the 36th Hawaii International Conference on System Sciences - 2003

A Fault-Tolerant Dynamic Channel Allocation Scheme for Enhancing QoS in Cellular Networks∗ Jianchang Yang, D. Manivannan and Mukesh Singhal Computer Science Department University of Kentucky Lexington, KY 40506. email: {jyang2, mani, singhal}@cs.uky.edu 1 Introduction

Abstract In cellular networks, it is vital to allocate communication channels efficiently because the bandwidth allocated for cellular communication is limited. When mobile hosts move from one cell to another cell, to provide uninterrupted service, the new cell should have enough channels to support the ongoing communication of the mobile hosts that moved into the cell. If channels are statically allocated, as is the case in current cellular networks, a cell may run out of channels when large number of mobile hosts move to a cell, thus degrading the quality of service. To overcome this problem, dynamic channel allocation approaches have been proposed. Under dynamic channel allocation, channels are allocated to cells on demand, thus increasing channel utilization and hence improving the quality of service. Such channel allocation approaches fall under two categories, namely, centralized and distributed. Centralized approaches are neither scalable nor reliable, while distributed approaches have the potential to be both reliable and scalable. In this paper, we present a distributed dynamic channel allocation scheme for cellular networks that is fault tolerant. Our approach can tolerate the failure of mobile nodes as well as static nodes and enhance the quality of service by making efficient reuse of channels.

Key words: distributed channel allocation, cellular networks, fault tolerance, cellular communication

∗ This research was supported in part by UK LAN NSF/EPSCoR Grant and the National Science Foundation CAREER Award # CCR -9983584

In cellular communication networks, the geographical area is divided into smaller regions, called cells [8]. In each cell, there is one Mobile Service Station (MSS) [13, 14] which serves the Mobile Hosts (MHs) present in the cell. A Mobile Host can communicate with other Mobile Hosts in the system only through the Mobile Service Station in its cell, even if the Mobile Hosts are in the same cell. This kind of architecture was first proposed in [9], and is shown in Figure 1. CELL

MH

MH MH

CELL

MH

CELL

MSS

MH

MH MH

MH

MH

MH

MSS

MSS

FIXED NETWORK CELL CELL

MH

MH MSS

MH

MSS

MH MH MH

MH MH MH

MSS MH

MH

CELL

Figure 1. A model of wireless communication network Before a mobile host can communicate with another mobile host, the MSS in the cell should allocate a channel to support the communication. We assume that there are two types of channels available in the system, namely, communication channels and control channels. A Communication channel is used to support communication between MH and MSS; while control channels are set aside to be used exclusively to send control message generated by the channel allocation algorithm. In this paper, henceforth, unless

0-7695-1874-5/03 $17.00 (C) 2003 IEEE

1

Proceedings of the 36th Hawaii International Conference on System Sciences - 2003

specified otherwise, the term channel or wireless channel refers to a communication channel. When an MH wants to establish a communication session, it sends a request message to the MSS in its cell through a control channel. The request can be granted only if a wireless channel can be allocated for communication between MH and MSS. For example, in Figure 1, a Mobile Host, say M Hi , wants to communicate with another Mobile Host, say M Hj . To support this communication, two wireless channels are needed: one for M Hi and its MSS; the other for M Hj and its MSS. Note that these two Mobile Hosts, M Hi and M Hj , could be either in the same cell or in different cells. The case that a MH communicates with a static host is similar. Wireless channels are limited system resource, so they should be reused as much as possible. But a channel can not be used by two cells concurrently if the geographic distance between them is less than a threshold distance, called minimum channel reuse distance (Dmin) [1, 12], because they will interfere with each other. Such an interference is called co-channel interference [13, 14] (it is assumed that the wireless channels are orthogonal to one another, so the only interference we need to consider is co-channel interference). A cell, say Ci , is said to be an interference neighbor of another cell, say Cj , if the geographic distance between them is less than Dmin. So if a channel r is used by cell Ci , then none of Ci ’s interference neighbors can use r concurrently. Otherwise, co-channel interference arises. If using a channel causes no interference in a cell, then we say that this channel is available for the cell. When a MH in a cell needs a channel to support a call (this call can be a new call or an ongoing call of an MH that moved from a neighboring cell into this cell), it sends a request message to the MSS in its cell. When the MSS in this cell receives such a request message, it tries to allocate a channel to support the call by using the channel allocation algorithm. If there exist some available channels for this cell, then the MSS will pick one in such a way that using the selected channel to support the call will achieve a good channel reuse pattern. No co-channel interference can arise since the MSS only picks a channel that is available for the cell. If the MSS can not find such an available channel to grant the request from the MH, it will drop the call, then we say the call has failed. Generally, there are two basic approaches for channel allocation: • Centralized approach: In centralized approach [5, 7, 10, 11, 15, 16], request for channel allocation is sent to and processed by a central controller, called Mobile Switching Center (MSC). MSC is the only one that has access to system wide channel usage information. It allocates channels to a cell, in such a way that no co-channel interference arises. Obviously this approach is neither scalable nor robust since the MSC could become a bottle-neck when the traffic load is heavy and a single failure of it will bring down the whole system. • Distributed approach: In distributed channel allocation algorithms [2, 3, 4, 6, 13, 14], there is no central controller such as MSC. Instead, a MSS exists in each cell. MSSs shoulder the responsibility to allocate channels. Each MSS makes decision independently, based on its local information. They exchange information when necessary. The MSS in the cell that wants to borrow a channel and the MSS in the cell that

grants the channel work together to ensure that no co-channel interference arises. In a distributed channel allocation algorithm, two approaches, namely, search and update are usually adopted: Update [6]: A cell notifies its interference neighbors about its channel usage information whenever it acquires or releases a channel. So each cell is aware of the set of available channels. When a cell needs a channel, it just picks one and consults its interference neighbors whether it can use this channel. Search [2, 3, 4, 13, 14]: When a cell needs a channel to support a call, it sends a request message to its interference neighbors. Based on the information received in the replies, it computes the set of channels that can be borrowed. It picks one such channel and sends messages to its interference neighbors to borrow that channel. If all the neighbors to whom that channel has been allocated agree to lend that channel, the channel borrowing process is complete. The following two models are usually used in the search Search approach: Resource planning model [2, 3, 4] : The set of all cells is partitioned into k disjoint subsets: S0 , S1 , . . . , Sk−1 in such a way that the geographic distance between any two cells in the same subset is at least Dmin. If the distance between any two cells in the same subset is exactly Dmin , then the partition is called an optimal partition. The set of all channels available in the system is divided into k disjoint subsets correspondingly: P C0 , P C1 , . . . , P Ck−1 . Channels in P Ci are pre-allocated to cells in Si and are called primary channels of cells in Si , and secondary channels of cells in Sj (j = i). In cell Ci , a primary channel has higher priority than a secondary channel to be assigned to support a communication session. A secondary channel is required only if no primary channel is available. After a call served using a secondary channel terminates, the secondary channel must be returned to the cell to which it was pre-allocated. Non-Resource planning model [13, 14] : In this model, all the channels are kept in a set which is known to each cell. Channels are not pre-allocated to any cell. Initially no cell has any allocated channels. Whenever a cell needs a channel to support a call, it first checks whether there is any channel allocated to it. It picks one if such a channel exists; otherwise, it sends request messages to each of its neighbor to borrow a channel. After a call served using a borrowed channel terminates, the borrowed channel is not returned. Most algorithms proposed in literature in the Search approach [2, 13, 14] require that a cell that wants to borrow a channel has to receive a reply message from each interference neighbor. This is not fault tolerant, because in real life networks, a cell may experience intermittent node failure and/or network congestion under heavy traffic load. In [3], a fault tolerant channel allocation algorithm was proposed under Resource planning model. In this paper, we propose a fault tolerant, distributed channel allocation algorithm under Non-Resource planning model. In this model, all the channels used in the system are kept in a set, which is known to each cell. Channels are not pre-allocated to

0-7695-1874-5/03 $17.00 (C) 2003 IEEE

2

Proceedings of the 36th Hawaii International Conference on System Sciences - 2003

any cell. Each cell has a fixed number of neighbors, which are divided into groups. In our approach, a cell that wants to borrow a channel does not need to get a reply message from each neighbor. It may borrow a channel as long as it receives reply message from all members in one of the groups (we will explain this in detail later). Moreover a channel can be lent to multiple cells and two neighbors can borrow channels concurrently. The rest of the paper is organized as follows: The system model is given in Section 2. Related works are reviewed in Section 3. The proposed algorithm and its correctness proof are presented in Section 4. The performance of the algorithm is compared with existing work in Section 5. Section 6 concludes the paper.

2

System Model

In the proposed distributed dynamic channel allocation algorithm, we assume that a 3-cell cluster model1 is used. Channels are not pre-allocated to any cells. We also assume that the cells shown in Figure 2 are wrapped around, thus each cell has 6 neighbors.

42

35

14

7

0

22

15

8

1

36

29

28

21

30

16

3

38

31

17

4

32

40

26

48

41

34

27

20

13

12

5

47

33

19

18

11

46

39

25

24

10

45

44

37

23

9

2

43

6

Figure 2. system model of the cellular network

links (both the wireline and wireless links) could fail. The mobile hosts could fail as well. In this paper we use the terms cell and the MSS in the cell interchangeably.

3

Related Works

In [3], the authors proposed a fault tolerant channel allocation algorithm. In their algorithm, Resource planning model was used. The set of all cells is divided into several disjoint subsets, so is the set of all channels. Channels are pre-allocated to cells. When a cell needs a channel to support a call, it first checks whether there is any channel which is pre-allocated to it that is not being used. If such a channel exists, then it uses this channel to support the call. Otherwise, it sends request messages to its neighbors to borrow a channel. A cell requesting to borrow a channel may borrow a channel as long as the following two conditions are satisfied: • it receives reply message from all members of any of the subsets in its neighborhood • there exists at least one common available channel allocated to these members2 So the proposed algorithm in [3] is fault tolerant under resource planning model. In [14], the authors proposed a distributed dynamic channel allocation algorithm, under 3-cell cluster model using non-resource planning approach. In their approach, when a cell needs a channel to support a call, it first checks whether there exists an available channel allocated to it. If such a channel exists, then it picks that channel to support the call. Otherwise, it sends a request message to each of its interference neighbors. Based on the information received from the neighbors, it computes the set of available channels that can be borrowed. It picks one such channel and consults the lenders whether it can use this channel. If all lenders grant its request, then it uses this channel to support the call. After a lender grants a borrower’s request for some channel r, it marks this channel for transfer. It will not use this channel since the channel has been marked for transfer. In addition, it will not grant any other borrower’s request for the same channel. Following are some of the drawbacks of the algorithm in [14]:

For example, in Figure 2, cell 0’s neighbors are: cell 1, 6, 7, 13, 42 and 43. If a channel is used by a cell, then none of its 6 neighbors can use the same channel concurrently. Otherwise cochannel interference arises. For example, in Figure 2, if cell 24 is using a channel r, then none of its 6 neighbors: cell 17, 18, 23, 25, 30 and 31 can use the same channel r concurrently. When a call is to be supported in a cell Ci , Ci assigns a channel to support this call if there is an unused channel allocated to it. If Ci uses up all the channels allocated to it, and a new call originates in it, then Ci has to borrow a channel from its neighbors to support the new originating call. To borrow a channel a cell sends messages to each of its neighbors. In this case we say that Ci is in Search Mode and it is called a borrower. When a cell grants a borrower’s request, we call this cell a lender. If a borrower gets permission to use a channel from all neighbors to whom the channel has been allocated, then it can use this channel to support the call. It keeps this channel even after the call served using this channel terminates. In our models the MSSs could fail and the communication

low concurrency Each request message is assigned a timestamp. The smaller the timestamp, the higher the priority. Although several interference neighbors may be in their Search Mode, only the one whose request has the highest priority can be active in the channel-borrowing process, while others have to wait, because of the following two reasons:

1 For a 3-cell cluster model, at any given time, at most one call can be supported by a channel in a cluster of 3 mutually adjacent cells.

2 A common available channel refers to a channel which is pre-allocated to all of these members and is not being used by any of them.

not fault-tolerant In order to borrow a channel, a borrower has to get a reply message from each of its neighbors. This is not fault tolerant because in real life network, under heavy traffic load, a node may experience network congestion and some nodes and/or links may fail. For example, in Figure 3(a), suppose cell i only gets reply messages from nb 3, nb 4, nb 5 and nb 6 (nb 1 and nb 2 either fail or their reply messages do not arrive at cell i due to link failure.), then cell i will drop the call, even though it may be able to borrow a channel based on the partial information.

0-7695-1874-5/03 $17.00 (C) 2003 IEEE

3

Proceedings of the 36th Hawaii International Conference on System Sciences - 2003

1. A cell Ci defers sending reply to another cell Cj ’s request, if the priority of Ci ’s request is higher than that of Cj ’s. 2. A borrower has to get replies from all of its neighbors (as mentioned above) to successfully borrow a channel. So this approach is not fault-tolerant. For example, in Figure 3-(a), cell i and its neighbors nb 1, nb 2 are in Search Mode. Suppose cell i’s request has the highest priority, then cell i will defer sending reply to the request messages from nb 1 and nb 2. It will not send reply message to them until it finishes its channel-borrowing process. So nb 1 and nb 2 have to wait (note that getting reply from each neighbor is a necessary condition to borrow a channel in [14]). not efficient in channel reuse When a cell grants a borrower’s request for some channel, it can not grant a second borrower’s request for the same channel even if these two borrowers are not interference neighbors. For example, in Figure 3-(b), cell 7 and 3 ask cell 1 for channel r, suppose cell 1 grants cell 7’s request first, r will be marked for transfer, then cell 1 will not grant cell 3’s request for the same channel r, since r has already been marked for transfer. But using r by cell 7 and 3 concurrently does not cause co-channel interference (note that they are not interference neighbors). Thus, the algorithm proposed in [14] does not make efficient reuse of channels.

of them can be active borrowers. Moreover a channel can be lent to multiple borrowers as long as no two of them are interference neighbors. Thus our proposed algorithm does not have any of the drawbacks of the algorithm proposed in [14] mentioned above.

4

Distributed Channel Allocation Algorithm

In this section, we present our algorithm. First, we present the basic idea behind our algorithm and then give the formal description of the algorithm.

4.1

Basic Idea

In the proposed algorithm, a 3-cell cluster model is assumed. Each cell has 6 neighbors and each neighbor is given a unique neighbor id, ordered from 1 to 6, i.e., nb 1, nb 2, . . . , nb 6 (see Figure 4). These neighbors are divided into 5 Groups (note that these groups are not disjoint): 1. Group 1: {nb 1, nb 4}; 2. Group 2: {nb 2, nb 5}; 3. Group 3: {nb 3, nb 6}; 4. Group 4: {nb 1, nb 3, nb 5}; 5. Group 5: {nb 2, nb 4, nb 6}; Channels are not pre-allocated to any cell. They are uniquely ordered3 .

12

8 7

11

9

13 3

1

10

6

2

i

11

5

3

1 5

7

6

6

8 9

4

: request message

(a)

1

4

2 10

i

: reply message : request message

(b)

Figure 3. Several borrowers searching for channels concurrently. (a) Neighboring cells searching for channels (here cell i’s request has the highest priority). (b) Multiple borrowers asking for the same channel.

In our proposed algorithm, in order to borrow a channel, a borrower does not need to get reply from each neighbor. It may borrow a channel based on partial information about channel usage that it collects. It does not need to wait for other borrowers to finish their channel-borrowing process. Also a cell never defers sending a reply to a request message and hence hold and wait situation does not arise. A cell sends a reply to the borrower immediately if it is not in Search Mode, otherwise, it does not send a reply. If several interference neighbors are in Search Mode concurrently, all

2

3

5 4

Figure 4. Neighborhood relationship of the cellular network When a cell Ci needs a channel to support a call, first it checks whether there is any available channel allocated to it. It picks the one with the highest order to support the call if there is at least one available channel . Otherwise (i.e., all channels allocated to Ci are being used), it sends request message to each neighbor, asking for their channel usage information. In this case, it is in Search Mode 3 The channel with the lowest frequency has the minimum order, while the channel with the highest frequency has the maximum order [14].

0-7695-1874-5/03 $17.00 (C) 2003 IEEE

4

Proceedings of the 36th Hawaii International Conference on System Sciences - 2003

and it is a borrower. A cell in its Search Mode (i.e., a borrower) does not send reply to requests of other borrowers (If a cell is in Search Mode, it need not send a reply to other borrowers’ requests, because it will not help the other borrowers in any way, thus reducing the unnecessary message overhead). When a borrower sends a request message to its neighbors, it sets a timer4 and waits for the replies. A lender is allowed to grant several borrowers’ requests for the same channel concurrently, as long as no two of them are neighbors. This increases the channel reuse and hence improves quality of service. After the timer expires or it receives replies from all its neighbors the borrower computes the set of channels it can borrow from its neighbors. It may borrow a channel if it gets reply from each member of any one of the Groups. For example, in Figure 4, suppose cell i is a borrower. Suppose it only gets reply from nb 1 and nb 4 and times out. If there exists a channel r which is allocated to both nb 1 and nb 4 and is not being used by any of them, then cell i can borrow it. Since r is allocated to nb 1, it could not have been allocated to nb 2 or nb 6, because they are neighbors of nb 1. Similarly, r could not have been allocated to nb 3 or nb 5 because they are neighbors of nb 4. So cell i can use r safely if both nb 1 and nb 4 agree to lend the channel. A cell does not grant two borrowers’ requests for the same channel concurrently if the two borrowers are neighbors. If two neighboring borrowers5 , Ci and Cj , get replies from each member of one of the five Groups of their neighbors respectively, and each of them finds a channel to borrow, then they are not allowed to borrow the same channel. There are two cases. • case 1: Among the cells which send reply to Ci or Cj , there is no common neighbor of both Ci and Cj . • case 2: Among the cells which send reply to Ci or Cj , there is at least one common neighbor of Ci and Cj . We illustrate by an example how our algorithm handles the two cases and prevents the same channel being allocated to two neighbors at the same time. Example for case 1: in Figure 5-(a), cell 1 and 3 send request messages to each neighbor. They do not reply to each other, since they are in Search Mode. Suppose Cell 1 only receives replies from cell 4 and 7, while cell 3 only receives replies from cell 2 and 8. The intersection of the two sets: the set of common available channels of cell 2 and 8, and the set of common available channels of cell 4 and 7, must be empty, since cell 2 and 7 are neighbors, cell 8 and 4 are neighbors and no channel is allocated to neighboring cells. So we can conclude that if cell 1 and 3 find some channel to borrow, the channels can not be same. Example for case 2: in Figure 5-(b), cell 1 and 3 send requests to their neighbors to borrow a channel concurrently. Cell 1 only receives replies from cell 4 and 7; while cell 3 only receives replies from cell 4 and 9. In this case, cell 4 is a common neighbor of the two borrowers: cell 1 and 3. Cell 4 does not grant cell 1 and 3’s requests concurrently, since they are neighbors. The case in Figure 5-(c) and Figure 5-(d) are similar. Cell 4 is a common neighbor of cells 1 and 3 in Figure 5-(c), while cell 2 4 A timer specifies an upper bound on the time interval during which a borrower waits for receiving replies. 5 Two neighboring borrowers refers to two neighboring cells which are in their Search Mode concurrently.

10

9

2

8

3

7

1

2

1

4

6

5

5

: reply message : request message

: reply message : request message

(a)

(b) 10

9

2

4

2

8

3

7

4

1

6

10

9

8

3

7

8

3

7

4

6

10

9

1

5

: reply message : request message

(c)

6

5

: reply message : request message

(d)

Figure 5. Two neighboring cells can not borrow the same channel concurrently. (a) No common neighbor for the two neighboring cells among the cells which sends reply message. (b) and (c) One common neighbor for the two neighboring cells. (d) Two common neighbors for the two neighboring cells.

and 4 are common neighbors of cell 1 and 3 in Figure 5-(d). So in case 2, if two neighboring cells request to borrow the same channel, they have at least one common neighbor which does not grant their request for the same channel concurrently and hence they can not use the same channel concurrently. Thus, when two neighboring cells enter search mode concurrently they are not allowed to borrow the same channel. To summarize, when a cell Cj receives Ci ’s request message, if it is not in Search Mode, it sends a reply to Ci including its channel usage information. When Ci receives reply from each neighbor or the timer expires, it computes the set of available channels and picks one (if there is any) to borrow. If it gets replies from all its neighbors and the selected channel has not been allocated to any of its neighbors as well as itself, then it can use this channel immediately and hence adds this channel to the set of channels allocated to it. Otherwise it has to consult the lender before it uses this channel since a lender may assign this channel to support a call just after sending a reply. If each lender grants Ci ’s request, then Ci can use the selected channel to support a call. Otherwise, it picks another available channel if possible and repeats the procedure mentioned above. If there is no available channel left, it drops the call. After a lender grants a borrower’s request for a selected channel, it is not allowed to use this channel. After a call served

0-7695-1874-5/03 $17.00 (C) 2003 IEEE

5

Proceedings of the 36th Hawaii International Conference on System Sciences - 2003

using a borrowed channel terminates, the borrowed channel is not returned to the lender. This makes the proposed algorithm to be able to adapt to temporal and spatial fluctuations in load distribution. Next, we present the algorithm. The following data structures are used in the algorithm. In the following, we use cell Ci and the Mobile Service Station M SSi interchangeably.

4.2

Data Structures

Spectrum: the set of all the communication channels in the system. It is known to each cell. Allocatei : the set of channels which are currently allocated to cell Ci . Busyi : the set of channels which are being used by cell Ci , Busyi ⊆ Allocatei at any given time. Transferi : the set of channels which are marked for transfer from Ci to its neighbors. Note that this is only the set of channels which  Ci plans to transfer. At any given Busyi = ∅, and T ransf eri ⊆ time, T ransf eri Allocatei . Grantedi : a set of sets in cell Ci . ∀ r ∈ Allocatei , Grantedi (r) contains the set of cells to which Ci has sent agree(r) message. Ci lends channel r to Cj only when it is notified by Cj to release the channel. ∀ r ∈ Allocatei , Lenti : a set of sets in cell Ci . Lenti (r) contains the set of cells to which Ci has lent channel r. Initially, Allocatei , Busyi , T ransf eri , Grantedi (r) and Lenti (r) are all empty. When a cell Ci acquires a channel to support a call, if this channel is in Allocatei , then it adds this channel to Busyi ; else it adds this channel to both Allocatei and Busyi . When a call terminates in cell Ci , the channel serving that call is removed from Busyi . When a cell Ci sends agree(r)6 message to its neighboring cell Cj , it adds Cj to its Grantedi (r); if channel r is not in T ransf eri , then it adds r to T ransf eri . When a cell Ci receives release(r)7 message from Cj , it does the following: • removes Cj from Grantedi (r), and adds Cj to Lenti (r). • if r ∈ Allocatei , it removes r from Allocatei and T ransf eri . When a cell Ci receives keep(r)8 message from Cj , it does the following: • removes Cj from Grantedi (r). • if (r ∈ Allocatei ) ∧ (Grantedi (r) = ∅), it removes r from T ransf eri . 6 An agree(r) message from C to C means that C grants C ’s rei j i j quest to borrow r. 7 A release(r) message from C to C means that C borrows channel j i j r successfully and notifies Ci to release channel r. 8 A keep(r) message from C to C means that C fails to borrow chanj i j nel r because it could not get enough agree(r) messages and notifies Ci to keep channel r.

4.3

The Algorithm

• (A): when a cell Ci needs a channel to support a call, let F reei = Allocatei − Busyi − T ransf eri . If F reei = ∅, it picks a channel r ∈ F reei with  the highest {r}. When order to support the call. Busyi = Busyi the call terminates, Busyi = Busyi − {r}. Otherwise, it sets a timer and sends a request message to each of the six neighbors. • (B): When a cell Cj receives a request message from cell Ci , If it is not in Search Mode, then it sends reply message to Ci . The reply message includes three sets: Allocatej , Busyj and (Allocatej − Busyj ). Otherwise, it ignores the request message. • (C): After a cell Ci receives reply messages from all its neighbors or the timer expires, it sets a new timer and does the following: – 1: if the number of reply messages = 6, it computes the following: = Spectrum − Allocatei − Let F reei  Allocatenb k . k∈{1,2,3,4,5,6} If F reei = ∅, then a channel r ∈ F reei with the highest order is selected to support the call, and r is added to Allocatei and Busyi . Ci sets Grantedi (r) = ∅ and Lenti (r) = ∅.  Otherwise, let F reei = Spectrum − Busyi − Busynb k k∈{1,2,3,4,5,6} If F reei = ∅, then it drops the call. Else it picks a channel r ∈ F reei with the lowest order for transfer. Ci sends transfer(r) to neighbors to which r is allocated. – 2: if the number of reply messages is less than < 6, it checks whether it received a reply message from each member of any one  of the five Groups. If yes, F reei m = nb k∈Group m (Allocatenb k − Busynb k ), where m ∈ {1, 2, 3, 4, 5}. It picks a channel r ∈ F reei m (F reei m = ∅) with the lowest order for transfer and sends a transfer(r) message to all neighbors belonging to Group m. Else (i.e., Ci did not receive reply from all members of any Group or ∀ m Group m = ∅) it drops the call. • (D): When a cell Cj receives transfer(r) message from cell Ci , – if r ∈ Busyj , it sends refuse(r) message to Ci . – else if r ∈ Allocatej , if ∀ Cm ∈ Grantedj (r), Ci and Cm are not neighbors, then sends agree(r) messages to Ci , and adds Ci to Grantedj (r); if r is not in T ransf erj , then adds r to T ransf erj . else sends refuse(r) to Ci . – else (i.e., r ∈ / Allocatej ) if ∀ Cm ∈ Grantedj (r) and ∀ Cn ∈ Lentj (r), Ci is a neighbor of neither Cm

0-7695-1874-5/03 $17.00 (C) 2003 IEEE

6

Proceedings of the 36th Hawaii International Conference on System Sciences - 2003

nor Cn , then sends agree(r) message to Ci , adds it to Grantedj (r). – else sends refuse(r) message to Ci . • (E): When a cell Ci receives reply message corresponding to each of its transfer(r) message, if all of them are agree(r), then it does the following: – uses r to support the call, adds r to its Allocatei and Busyi , sets Grantedi (r) = ∅ and Lenti (r) = ∅, – sends release(r) message to the neighbors from which agree(r) was received. else (if not all of them are agree(r) messages) it sends keep(r) message to neighbors from which it received an agree(r) message, and tries to borrow another channel if possible (either selects another channel in the same Group or tries another Group). • (F): When a cell Cj receives release(r) from cell Ci , it does the following: – removes Ci from Grantedj (r), and adds Ci to Lentj (r).

set if there is any to borrow. If the number of reply messages is less than 6 when the timer expires, it checks whether it received reply messages from all the members of any of the five Groups of neighbors. If yes, it computes the set of common channels that are allocated to all the members of the Group that are not being used by any of them. If this set is not empty, it picks a channel r and sends transfer(r) message to these members. If all these members grant its request by sending agree(r) messages, it uses r, adds r to Allocatei and Busyi and sends release(r) to these members; if a refuse(r) message is received from some neighbor, it notifies those members from which it has received a agree(r) message to keep r, then it picks another channel in the same Group if there is any left or tries another Group to continue the channel-borrowing process. When a cell Ci borrows a channel r, it sets Grantedi (r) and Lenti (r) to be empty. The set of Grantedi (r) keeps track of the set of cells to which Ci has sent an agree(r) message; while Lenti (r) maintains the record of the set of cells from which a release(r) message has been received by Ci . We illustrate this by giving an example. In Figure 6, suppose r ∈ Allocate1 , Granted1 (r) = ∅ and Lent1 (r) = ∅.

– if r ∈ Allocatej , then removes r from Allocatej and T ransf erj . • (G): When a cell Cj receives keep(r) message from cell Ci , it does the following:

3

– removes Ci from Grantedj (r);

1

– if r ∈ Allocatej and Grantedj (r) = ∅, then removes r from T ransf erj .

6

An Explanation of the Algorithm

In this section, we briefly explain the working of the algorithm. When a cell Ci needs a channel to support a call, it first checks whether there is a channel which is allocated to it that is not being used. If there exists such a channel r, it uses r to support the call, and adds r to the set of Busyi . Otherwise (i.e., Ci runs out of channels), it sends request message to each of its six neighbors to borrow a channel and sets a timer. It starts computing the set of available channels which it can borrow either after it receives reply messages from all its neighbors or when the timer expires. In the case that it receives all reply messages, it first computes the set of channels which are not allocated to any of its six neighbors as well as itself. If the set is not empty, it picks a channel r to support the call and adds r to both the set of Allocatei and Busyi . If the set is empty, it computes another set of channels which are not being used by any of its neighbors as well as itself. If such a channel r is found, then it sends transfer(r) message to those cells to which r is allocated. If it gets permission to use r from all those cells to which it has sent a transfer(r) message, it uses r, adds r to both Allocatei and Busyi and notifies those cells which have granted its request to release r; else it picks another channel in this

5

7

• (H): Obsolete control messages can be detected by comparing its timestamp with the timestamp of the last message received from the same cell.

4.4

4

2

: agree(r) message : release(r) message : transfer(r) message Figure 6. An example illustrating multiple borrowing

Cells 2 and 4 send transfer(r) message to cell 1 concurrently. Cell 1 will grant both of their requests according to Step (D) in the algorithm. Cell 2 and 4 are added to Granted1 (r) and channel r is added to T ransf er1 . If cell 1 receives release(r) message from cell 2 first, then it removes cell 2 from Granted1 (r), and adds cell 2 to Lent1 (r). In addition, it removes r from Allocate1 and T ransf er1 according to Step (F) in the algorithm. Now the set of Granted1 (r) contains cell 4, while the set of Lent1 (r) contains cell 2. When cell 1 receives release(r) message from cell 4, it does the similar thing. When cell 2 borrows r, it sets the two sets: Granted2 (r) and Lent2 (r) to be empty. Suppose cell 1

0-7695-1874-5/03 $17.00 (C) 2003 IEEE

7

Proceedings of the 36th Hawaii International Conference on System Sciences - 2003

receives a transfer(r) message from cell 6 just before receiving the release(r) message from cell 4. Then cell 1 grants cell 6’s request since it is not using r, and cell 6 is a neighbor of neither cell 2 nor cell 4.

4.5

Correctness of the Algorithm

In this section, we prove the correctness of the algorithm. First, we prove that under our algorithm two neighboring cells are never granted permission to use the same channel and then we prove that our algorithm is deadlock-free. Lemma 4.1 Two neighboring cells are not allowed to use the same channel concurrently under our channel allocation algorithm. Proof: First we claim that if two neighboring cells, Ci and Cj , are in their Search Mode and get reply from all members of one of the five Groups of their neighbors respectively, and each of them finds a channel to borrow, then they will not be allowed to borrow the same channel. Let lenderi and lenderj be the set of cells from which Cj gets replies respectively. Let common nb = Ci and  lenderj be the set of cells which are common neighlenderi bors of Ci and Cj that have sent reply to Ci and Cj . There are two cases: • case 1: common nb = ∅. This is the case when the following conditions are satisfied: – lenderi = {Ck , Cl }, (k = l). – lenderj = {Cm , Cn }, (m = n). – one of the two members of lenderi is a neighbor of one of the two members of lenderj , while the remaining member of lenderi is a neighbor of the remaining member of lenderj . Neighboringcells have no allocated channels in common. Allocateu , u ∈ lenderi and ∀ r2 ∈ ∀  r1 ∈ Allocate , v ∈ lenderj , r1 = r2 since common nb = v  lenderj = ∅. lenderi • case 2: common nb = ∅, let Ck ∈ common nb. Suppose Ci and Cj select the same channel r to borrow concurrently. r must be allocated to Ck since Ck is a common neighbor of Ci and Cj . Ck will not grant their requests for the same channel concurrently because they are neighbors. Thus we proved that two neighboring cells can not borrow the same channel concurrently. Now we prove the lemma. Let nb k be the 6 neighbors of cell Ci , where k ∈ {1, 2, 3, 4, 5, 6}.  We claim that ∀ Cj ∈ {nb k : Busyj = ∅, at any given time. k = 1, 2, 3, 4, 5, 6}, Busyi Note that Busyi ⊆ Allocatei . Initially this is true since all the sets are empty. In the proposed algorithm, there are four cases in which Busyi is updated. 1. In step (A): F reei = Allocatei −Busyi −T ransf eri = ∅, so Ci picks a channel r ∈ F reei and uses it to support a call.  Assuming that before adding channel r to Busyi ,  Busy ∅ and Allocatei Allocatej = ∅, Busyi  j = {r}) Busyj = ∅. then (Busyi

2.  In step (C)-1: F reei = Spectrum − Allocatei − Allocatej = ∅, Ci picks a channel r ∈ j∈{1,2,3,4,5,6} F reei to support the call and adds r to both Allocatei and Assuming that before adding channel r to Busyi , Busyi .   Busy = ∅ and Allocate Allocate Busyi j i j = ∅,   {r}) Busyj = ∅, since r ∈ / Allocatej . then (Busyi 3.  In step (C)-1: F reei = Spectrum − Allocatei − Allocatej = ∅, but F reei = j∈{1,2,3,4,5,6}  Spectrum − Busyi − j∈{1,2,3,4,5,6} Busyj = ∅, Ci picks a channel r ∈ F reei and sends transfer(r) message to the neighbors to which channel r is allocated. If all of them (at most 3) grant Ci ’s request, then Ci can use this channel to support the call, Ci notifies the lenders to release this channel and adds it to Allocatei and r to Busyi , Busyi .Assuming that before adding channel  Busyj = ∅ and Allocatei Allocatej = ∅. Busyi The lenders can not use channel r since they grant Ci ’s request. Other neighbors can not use channel r since r is not allocated to them and the lenders do not grant any other borrower’s  request for r if it is a neighbor of Ci . So Busyj = ∅. (Busyi {r})



4. In step (C)-2: F reei m = (Allocatej − Busyj ) = ∅, where j ∈ Group m where m ∈ {1, 2, 3, 4, 5}. Ci picks a channel r ∈ F reei m and sends transfer(r) messages to the neighbors belonging to this Group. If all of them grant Ci ’s request, then Ci can use this channel. Ci sends release(r) message to the neighbors belonging to this Group that beand adds r to Allocatei and Busyi . Assuming  , Busy Busy fore adding channel r to Busy i i j = ∅  Allocatej = ∅. Since the lenders grant and Allocatei Ci ’s request for channel r, they can not use r, and other neighbors of Ci can not use r because r is not allocated to them, and the lenders do not grant any other borrower’s request for the same channel r if it is a neighbor of Ci . Thus {r}) Busyj = ∅, where j ∈ Group m. (Busyi So no two neighbors are granted permission to borrow and use the same channel concurrently. Lemma 4.2 The proposed channel allocation algorithm is deadlock-free. Proof: When a cell sends a request message, it sets a timer. A cell never defers sending a reply to a borrower’s request. A cell starts computing the set of available channels which can be borrowed whenever it gets reply from each neighbor, or the timer expires. So there is no hold and wait situation in the proposed algorithm. Thus the algorithm is deadlock-free.

5 Comparison to related work To our knowledge, Prakash et al.’s algorithm [14] is the only channel allocation algorithm that uses the Non-Resource planning model. So we compare our algorithm with their algorithm. The proposed channel allocation algorithm has the following advantages over the algorithm proposed in [14].

0-7695-1874-5/03 $17.00 (C) 2003 IEEE

8

Proceedings of the 36th Hawaii International Conference on System Sciences - 2003

fault tolerance Our algorithm is fault tolerant since a borrower does not need to get reply from each neighbor to borrow a channel. Thus, even if a borrower can not get reply from all the neighbors due to node failure or link failure, it is still possible for it to borrow a channel successfully. For example, in Figure 4, suppose cell Ci only receives reply messages from nb 1 and nb 4, which are all the members of Group 1. If there exists a common available channel r allocated to nb 1 and nb 4, then we can conclude that channel r is not allocated to any other neighbors of cell Ci . Since r is allocated to nb 1, it will not be allocated to nb 2 and nb 6 because they are neighbors of nb 1. Similarly, it will not be allocated to nb 3 and nb 5. In addition, nb 1 and nb 4 will not grant other borrower’s request for the same channel if it is a neighbor of cell Ci . Thus if nb 1 and nb 4 both grant cell Ci ’s request for channel r, then Ci can use r to support the call safely, The algorithm proposed in [14] requires a borrower to get reply from each neighbor. If it does not get reply from each neighbor, either due to link or node failure, it will drop the call. So the algorithm in [14] is not fault-tolerant. high concurrency In the proposed algorithm, if several neighboring cells are in Search Mode concurrently, all of them can be active in their channel-borrowing process, because a borrower does not need to get reply from each neighbor. For example, in Figure 5-(a), cell 1 and 3 are in Search Mode concurrently. Cell 3 can borrow a channel successfully if there is a common available channel allocated to cells 2 and 8; similarly, cell 1 can borrow a channel successfully if there is a common available channel allocated to and 7 for cell 4. While in [14], if several neighboring cells are in their Search Mode, only the one whose request has the highest priority can be active in its channel-borrowing process, since its replies to other borrowers’ requests are deferred. Other borrowers have to wait until it finishes its channel-borrowing process. So for any neighboring cells, their algorithm only serves one request at a time. This restricts concurrency. Our algorithm does not have this drawback. efficient in channel reuse A channel can be lent to multiple borrowers (at most three9 ) in our algorithm, which achieves a high efficiency in channel reuse. For example, in Figure 3(b), a channel r allocated to cell 1 can be lent to two borrowers: cell 7 and cell 3, since they are not neighbors. Similarly r can be lent to cell 3, 5 and 7 since no two of them are neighbors. In [14], if a cell grants a borrower’s request for a channel, it will mark that channel for transfer. It will not grant the channel to any other borrower even though the latter borrower may not be a neighbor to the former borrower (for detail see Section 3 and Figure 3-(b)).

6 Conclusion Distributed dynamic channel allocation algorithms have gained more attention because of their high reliability and scalability. 9 If a cell C sends agree(r) message to more than 3 neighbors concuri rently, then there must be 2 neighbors of Ci , say Cj and Ck , which are neighbors of each other, see Figure 4.

However, some of the previous algorithms didn’t address faulttolerance issue very well and didn’t achieve high channel utilization. In this paper, we proposed an efficient fault-tolerant channel allocation algorithm which achieves high channel utilization. Under our algorithm, a cell that tries to borrow a channel doesn’t have to wait until it receives reply message from each of its interference neighbors. A cell can borrow a channel as long as it receives reply message from each member of a Group of its neighbors and there is at least one common available channel allocated to that Group. Thus the proposed algorithm is fault tolerant. Moreover, a cell can lend a channel to multiple borrowers (at most 3 ) as long as any two of them are not neighbors. So, our approach achieves a high channel utilization.

References [1] A. Baiocchi, F. D. Priscoli, F. Grilli, and F. Sestini. “The Geometric Dynamic Channel Allocation as a Practical Strategy in Mobile Networks with Bursty User Mobility”. IEEE Trans. Veh. Technol., 44:14–23, Feb 1995. [2] G. Cao and M. Singhal. “An Adaptive Distributed Channel Allocation Strategy for Mobile Cellular Networks“. Journal of Parallel and Distributed Computing, special issue on Mobile Computing, 60(4):451–473, April 2000. [3] G. Cao and M. Singhal. “Distributed Fault-Tolerant Channel Allocation for Cellular Networks”. IEEE journal on selected areas in communications, 18(7):1326–1337, JULY 2000. [4] G. Cao and M. Singhal. “Efficient Distributed Channel Allocation for Mobile Cellular Networks“. Computer Communications, 23(10):950–961, May 2000. [5] J. C.-I. Chuang. “Performance Issues and Algorithms for Dynamic Channel Assignment“. IEEE Journal on Selected Areas in Communications, 11(6):955–963, August 1993. [6] X. Dong and T. H. Lai. “Distributed Dynamic Carrier Allocation in Mobile Cellular Networks: Search vs. Update”. In Proceedings of the 17th International Conference on Distributed Computing Systems(ICDCS’97), pages 108– 115, May 1997. [7] S. A. El-Dolil, W. C. Wong, and R. Steele. “Teletraffic Performance of Highway Microcells with Overlay Macrocell“. IEEE Journal on Selected Areas in Communications, 7:71– 78, January 1989. [8] D. Goodman. “Cellular Packet Communication”. IEEE Trans. Commun., 38:1272–1280, Aug 1990. [9] J. Ioannidis, D. Duchamp, and G. Q. Maguire. “IP-Based Protocols for Mobile Internetworking“. In Proceedings of the ACM SIGCOMM Symposium on Communication, Architectures and Protocols, pages 235–245, September 1991. [10] W. C. Y. Lee. “New Cellular Schemes for Spectral Efficiency“. IEEE Transactions on Vehicular Technology, VT36, November 1987. [11] R. Mathar and J. Mattfeldt. “Channel Assignment in Cellular Radio Networks“. IEEE Transactions on Vehicular Technology, 42(4):647–656, November 1993. [12] S. Nanda and D. J. Goodman. “Dynamic Resource Acquisition: Distributed Carrier Allocation for TDMA Cellular Systems”. In Proc. GOLBECOM’91, pages 883–889, Dec 1991. [13] R. Prakash, N. Shivaratri, and M. Singhal. “Distributed Dynamic Channel Allocation for Mobile Computing ”. In Proc. 14th ACM Symp. Principles Distributed Computing, pages 47–56, 1995.

0-7695-1874-5/03 $17.00 (C) 2003 IEEE

9

Proceedings of the 36th Hawaii International Conference on System Sciences - 2003

[14] R. Prakash, N. G. Shivaratri, and M. Singhal. “Distributed Dynamic Fault-Tolerant Channel Allocation for Cellular Networks“. IEEE Transactions on Vehicular Technology, 48(6):1874–1888, November 1999. [15] M. Zhang and T.-S. P. Yum. “Comparisons of ChannelAssignment Strategies in Cellular Mobile Telephones Systems“. IEEE Transactions on Vehicular Technology, 38(4):211–215, November 1989. [16] M. Zhang and T.-S. P. Yum. “The Nonuniform Compact Pattern Allocation Algorithm for Cellular Mobile Systems“. IEEE Transaction on Vehicular Technology, 40(2):387–391, May 1991.

0-7695-1874-5/03 $17.00 (C) 2003 IEEE

10