An Efficient Fault-Tolerant Distributed Channel ... - IEEE Xplore

3 downloads 11286 Views 771KB Size Report
Abstract—A channel allocation algorithm in a cellular network consists of two parts: a channel ... there is one Mobile Service Station (MSS) [1] as well as a.
578

IEEE TRANSACTIONS ON MOBILE COMPUTING,

VOL. 4,

NO. 6,

NOVEMBER/DECEMBER 2005

An Efficient Fault-Tolerant Distributed Channel Allocation Algorithm for Cellular Networks Jianchang Yang and D. Manivannan, Member, IEEE Abstract—A channel allocation algorithm in a cellular network consists of two parts: a channel acquisition algorithm and a channel selection algorithm. Some of the previous works in this field focused on centralized approaches to allocating channels. But, centralized approaches are neither scalable nor reliable. Recently, distributed dynamic channel allocation algorithms have been proposed, and they have gained a lot of attention due to their high reliability and scalability. But, in most of the algorithms, the cell that wants to borrow a channel has to wait for replies from all its interference neighbors and, hence, is not fault-tolerant. In this paper, we propose a new algorithm that is fault-tolerant and makes full use of the available channels. It can tolerate the failure of mobile nodes as well as static nodes without any significant degradation in service. Index Terms—Distributed channel allocation, resource planning, fault tolerance, cellular networks.

æ 1

I

INTRODUCTION N cellular

communication networks, the geographical area is divided into smaller regions, called cells. In each cell, there is one Mobile Service Station (MSS) [1] as well as a number of Mobile Hosts (MH) [1]. The communication between MSSs is, in general, through wired links, while the links between an MH and MSS is wireless. A Mobile Host can communicate with other Mobile Hosts in the system only through the Mobile Service Station in its cell. This kind of architecture is shown in Fig. 1. There are two kinds of channels available to an MH: communication channel and control channel. The former is used to support communication between an MH and the MSS in its cell, while the latter is set aside to be used exclusively to send control messages that are generated by the channel allocation algorithm. In this paper, henceforth, unless specified otherwise, the term channel or wireless channel refers to a communication channel. When an MH wants to communicate with another MH, it sends a request message to the MSS in its own cell. The request can be granted only if a wireless channel can be allocated for communication between MSS and MH. Since channels are limited, they should be reused as much as possible. But, a channel cannot be used at the same time by two cells if they are within a threshold distance called the minimum channel reuse distance (Dmin ) [2], because it will cause interference. Such an interference is called cochannel interference [1]. A cell, say Ci , is said to be an interference neighbor of another cell, say Cj , if the distance between them is less than Dmin . So, if a channel r is used by a cell Ci , then none of the interference neighbors of Ci can use r concurrently. . The authors are with the Computer Science Department, University of Kentucky, Lexington, KY 40506. E-mail: {jyang2, mani}@cs.uky.edu. Manuscript received 3 Dec. 2003; revised 8 June 2004; accepted 19 July 2004; published online 28 Sept. 2005. For information on obtaining reprints of this article, please send e-mail to: [email protected], and reference IEEECS Log Number TMC-0206-1203. 1536-1233/05/$20.00 ß 2005 IEEE

If using a channel in a cell causes no interference, then we say that this channel is available for the cell. When an MH needs a channel to support a call, it sends a request message to the MSS in its cell through a control channel. When the MSS receives such a message, it tries to assign a channel using a channel allocation algorithm. A channel allocation algorithm is usually divided into two parts: a channel acquisition algorithm and a channel selection algorithm. The task of the former is to compute the set of channels that are not being used by cells within distance Dmin . The goal of the latter is to choose a channel from the computed set of channels smartly so that good channel reuse pattern can be achieved. If the MSS cannot assign a channel to support the call initiated by the MH, then we say that the call has failed. Two basic approaches to channel allocation are as follows: Centralized approach: In centralized approaches [3], [4], request for channel 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 and ensures no cochannel interference occurs. But, this approach is neither scalable nor robust because the MSC could become a bottle-neck when the traffic load is heavy and the failure of the MSC will bring down the entire system. 2. Distributed approach: In distributed channel allocation algorithms [5], [6], [1], [7], [8], [9], [10], there is no central controller such as MSC. The MSSs share the responsibility to allocate channels. Each MSS makes decision independently based on its local information. They exchange information if necessary, in order to compute the set of available channels such that using them causes no cochannel interference. In a distributed channel acquisition algorithm, one of the following two approaches is usually adopted: On demand/ reactive approach and Proactive approach. 1.

Published by the IEEE CS, CASS, ComSoc, IES, & SPS

YANG AND MANIVANNAN: AN EFFICIENT FAULT-TOLERANT DISTRIBUTED CHANNEL ALLOCATION ALGORITHM FOR CELLULAR...

579

Fig. 2. A partition of the cellular network. Fig. 1. A model of cellular network.

On demand/reactive approach [8], [5], [9], [1], [7], [10]: When a cell needs a channel to support a call, it first checks whether there are available channels in the set of channels allocated to it. If such channels exist, then it picks one such channel to support the call. Otherwise, it sends messages to its interference neighbors, asking for their channel usage information. Based on the information received in the replies, it computes the set of available channels. It picks an available channel r using channel selection algorithm in such a way that using r achieves a good channel reuse pattern, 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. Proactive approach [6]: A cell notifies its interference neighbors about the channel usage information whenever it acquires or releases a channel. So, each cell is always aware of the set of available channels. When it needs a channel, it just picks one of the available channels using the underlying channel selection strategy and uses it to support a communication after ensuring that none of its neighbors are using that channel. Most algorithms using On demand/reactive approach require that a cell that wants to borrow a channel (we call it borrower hereafter) needs to get reply from each interference neighbor before using a channel. Under this approach, even if one of the neighboring cells has failed, a channel cannot be borrowed and, hence, this is not faulttolerant. The main contribution of this paper is that we propose a distributed and fault-tolerant channel allocation algorithm which reuses channels efficiently. The rest of the paper is organized as follows: The system model is given in Section 2. Some of the previous related works are reviewed in Section 3. Section 4 presents the details of the distributed channel allocation algorithm. The performance analysis of the proposed algorithm and the simulation results are given in Section 5 and Section 6, respectively. Section 7 concludes the paper.

2

SYSTEM MODEL

In cellular communication networks, the whole area served by the system is divided into hexagonal cells. In each cell,

there is an MSS that serves the MHs in that cell (as shown in Fig. 1). The MSSs are connected with one another in general via a fixed wired network, while the communication between an MH and its MSS is through wireless channels. An MH can only communicate with the MSS in its cell directly. When an MH wants to set up a call, it sends a request to the MSS in its cell via a control channel. The call can be set up only if a channel is assigned to support the communication between the MH and the MSS. No two cells can use the same channel concurrently if they are arises. For within Dmin distance. Otherwise, interference pffiffiffi example, in Fig. 2, we take Dmin ¼ 3 3 R, where R is the cell radius. The interference neighbors of cell A4 , for example, are the cells: B1 , B3 , B4 , B6 , C1 , C3 , C4 , C6 , D1 , D2 , D3 , D4 , E1 , E3 , E4 , F0 , F1 , F3 , F4 , G1 , G2 , G3 , G4 , H0 , H1 , H3 , H4 , I0 , I1 , and I3 , a total of 30 interference neighbors. If a channel r is being used in cell A4 , then none of its interference neighbors can use r concurrently. But, r can be reused in cells which are at a distance greater than or equal to Dmin from A4 . In order to achieve better channel reuse pattern, most channel selection algorithms require that the status of channels should be known beforehand. The process of assigning status to channels beforehand is known as Resource Planning [11], [6]. In Resource Planning Model: The set of all cells is divided into K disjoint subsets S0 , S1 , . . . , Sk1 , such that in the same subset, the distance between any two cells is at least Dmin . . The set of all channels is divided into K disjoint subsets correspondingly: P C0 , P C1 , . . . , P Ck1 . . Channels in P Ci are called primary channels of cells in Si and secondary channels of cells in Sj (i 6¼ j). . Cells in Si are called primary cells of channels in P Ci and secondary cells of channels in P Cj (i 6¼ j). . Primary channels of a cell, say Ci , have higher priority than secondary channels to be assigned to support a call in Ci . A secondary channel of a cell is used to support a call only if there is no primary channel available. Some definitions about Resource Planning follow: .

Definition 2.1. For a given cell Ci , its interference neighbors, denoted by INbi , is the set of cells Cj that are at a distance less than Dmin from Ci . That is, INbi ¼ fCj j distðCi ; Cj Þ < Dmin g. = Sj and a channel r 2 P Cj , the set Definition 2.2. For a cell Ci2 of interference primary cells of channel r relative to Ci , denoted

580

IEEE TRANSACTIONS ON MOBILE COMPUTING,

by IP Ci ðrÞ, is the intersection of the set of cells that are primary cells of r and the set of cells T that are interference INbi . neighbors of Ci . That is, IP Ci ðrÞ ¼ Sj For example, in Fig. 2, all the 81 cells are divided into nine disjoint subsets: A, B, C, D, E, F , G, H, and I. All the channels are divided into nine disjoint subsets correspondingly: P CA , P CB , P CC , P CD , P CE , P CF , P CG , P CH , and P CI . For each cell Ck in subset i and for each channel r in P Cj (i; j 2 fA; B; . . . ; Ig ^ i 6¼ j), there are at most four cells in IP Ck ðrÞ. For example, if channel r is assigned to subset B, then B1 , B3 , B4 , and B6 are in IP CA4 ðrÞ. For any cell Ck , all its interference neighbors fall into several subgroups, with neighbors in the same subset falling into one subgroup, we call it a complete subgroup of Ck . The complete subgroup of Ck containing neighbors in subset Si is denoted by subk ðSi Þ. Cells in the same complete subgroup of Ck have the same set of primary channels. For example, in Fig. 2, cell A4 ’s 30 interference neighbors fall into eight subgroups, with neighbors in the same subset in one subgroup, i.e., there are eight complete subgroups of A4 : subA4 ðBÞ, subA4 ðCÞ, subA4 ðDÞ, subA4 ðEÞ, subA4 ðF Þ, subA4 ðGÞ, subA4 ðHÞ, subA4 ðIÞ. Some properties of Resource Planning Model [5], [6] are as follows: Property 2.1. 8Cx ; Cy 2 Si ðx 6¼ yÞ; distðCx ; Cy Þ  Dmin . Property 2.2. For any two cells Cx (Cx 2 Si ) and Cy (Cy 2 Sj ), such that they are in each other’s interference neighborhood,1 and = P Cj ), then are requesting for the same channel r (r= 2P Ci ^ r 2 they have at least one interference neighbor in common, which is a primary cell of r. That is: 8Cx 2 Si ; Cy 2 Sj : = P Ci ^ r 2 = P Cj ; IP Cx ðrÞ Cx 2 INby ¼)8r : r 2

\

IP Cy ðrÞ 6¼ ;:

Fig. 2 illustrates the model that uses Resource Planning. There are nine disjoint subsets from A through I, each having nine cells. A cell has at most 30 interference neighbors. C4 and A4 are in each other’s interference neighborhood. If they are requesting for the same channel r which is a primary channel of cells in subset B, then they have at least one common interference neighbor, which is a primary cell of r. B4 is such a common neighbor in this case. If we take C3 and A4 as an example, then B1 , B3 , B4 , and B6 are the common interference neighbors of both C3 and A4 .

3

EXISTING RELATED WORK

In [10], [12], [13], the authors discussed the channel allocation issues in cellular networks where the Base Stations (also known as Mobile Service Stations) are mobile. This imposes more challenges since the neighborhood information changes dynamically. In this paper, we restrict our discussion to channel allocation in cellular networks where mobile service stations are static. In [4], the authors proposed a dynamic load balancing strategy for the channel assignment problem in cellular mobile environment. The proposed algorithm: load balancing with selective borrowing (LBSB) is a centralized approach. In this algorithm, a cell can be classified either as a hot or a cold 1. Si 6¼ Sj because Cx and Cy are interference neighbors to each other.

VOL. 4,

NO. 6,

NOVEMBER/DECEMBER 2005

cell according to the value of its degree of coldness. The degree of coldness of a cell is defined as the ratio of number of available channels in this cell and the number of channels which have been allocated to this cell beforehand. The goal of the algorithm is to migrate unused channels from cold cells to hot cells. In [14], the authors proposed a structured channel borrowing scheme for dynamic load balancing in cellular networks. This algorithm solves the teletraffic hot spot problem in cellular networks. A hot spot is defined as a stack of hexagonal rings of cells and is termed complete if all the cells within it are hot. Load balancing is achieved by using a structured channel borrowing scheme, in which a hot cell can borrow channels only from adjacent cells in the next outer ring. Thus, unused channels are migrated into a hot spot from its peripheral rings. In [1], the authors proposed a distributed dynamic channel allocation strategy. They adopt a 3-cell cluster model in their algorithm. In the 3-cell cluster model, at most one communication session can be supported by a channel in a cluster of 3 mutually adjacent cells at any given time. The algorithm can dynamically adjust to spatial and temporal fluctuations in channel demand. Therefore, heavily loaded regions have more channels to use, while their lightly loaded neighbors have fewer channels assigned. A drawback of this algorithm is that when a cell needs to borrow a channel, it has to wait until it gets reply messages from all its interference neighbors. This makes the algorithm not fault tolerant since real-life cellular networks may encounter network congestion and/or failures, including link failure and mobile service station failures. In [7], the authors proposed a fault-tolerant distributed dynamic channel allocation algorithm for cellular networks under the 3-cell cluster model. In [8], [9], the Resource Planning Model is adopted. In this model, each cell is preallocated a set of primary channels. When a channel is needed to support a call in a cell, if there are available primary channels, then one such channel is used to support the call without consulting its neighbors. Otherwise, the MSS in this cell sends request messages to its interference neighbors to borrow a secondary channel. The MSS can borrow a channel from its neighbors as long as using this channel causes no cochannel interference. To ensure this, this MSS consults its neighbors before it uses the borrowed channel. When the call terminates, the borrowed channel is returned to the cell from which it was borrowed. In these algorithms, if one MSS wants to borrow a channel, it has to wait until it receives replies from all its interference neighbors. In [6], the authors proposed a fault-tolerant channel allocation algorithm for cellular networks. The proposed algorithm assumes the Resource Planning Model is used and adopts a proactive approach. In each cell, the primary channels have higher priority to be allocated. When a cell Ci needs a channel, it selects an available channel r. If r is a primary channel, then it marks r as a used channel, and informs all of its interference neighbors about this. If r is a secondary channel, then it sends a request message to each interference neighbor which has r as a primary channel. If all these neighbors agree to lend channel r to Ci , then Ci can

YANG AND MANIVANNAN: AN EFFICIENT FAULT-TOLERANT DISTRIBUTED CHANNEL ALLOCATION ALGORITHM FOR CELLULAR...

Fig. 3. Illustration of the algorithm proposed in [5].

use the borrowed channel r. Otherwise, Ci needs to find another secondary channel to borrow. Whenever a cell acquires or releases a channel, it informs all its interference neighbors about this. Due to this proactive approach, the algorithm achieves short channel acquisition delay at the expense of higher message overhead. The algorithm is fault tolerant because the number of Ci ’s interference neighbors which have r as a primary channel is small, compared to the total number of Ci ’s interference neighbors. In order for cell Ci to borrow a secondary channel from neighbors, Ci does not need to receive reply message from all of its interference neighbors. Even when most of Ci ’s interference neighbors fail, Ci may still be able to borrow channel r as long as its neighbors which have r as a primary channel do not fail and r is not being used by these neighbors. In [5], a fault-tolerant channel allocation algorithm was proposed. Like [6], [8], [9], the Resource Planning Model is adopted in [5]. Unlike [6], the algorithm proposed in [5] adopts an on demand/reactive approach. We illustrate how the algorithm proposed in [5] works with an example using Fig. 3. Fig. 3 contains cell A4 and all of its 30 interference neighbors from Fig. 2. All of A4 ’s 30 neighbors belong to eight subsets. In Fig. 3, we only highlight the neighbors in subset B and neighbor G1 for the purpose of illustration of the algorithm. Neighbors in the same subset have the same set of primary channels. Suppose cell A4 needs to borrow a channel from its neighbors. Then, it sends request messages to all its neighbors. In order to borrow a channel, cell A4 need not wait until it receives reply messages from all interference neighbors, making the algorithm fault tolerant. Upon receiving a request message from cell A4 , each neighbor of A4 will send back to A4 a reply message, including the set of primary channels that may be lent to A4 . Assuming that cell A4 only gets reply messages from neighbors B1 , B3 , B4 , and B6 , cell A4 begins to compute the set of channels that it may borrow. If there is a primary channel r that is not being used by all the cells in the set

581

fB1 ; B3 ; B4 ; B6 g, then A4 can borrow the channel r by sending a transfer(r) message to these four neighbors. Cell A4 borrows channel r successfully if all these four neighbors agree to grant channel r for A4 to use. After cell A4 finishes using the borrowed channel r, it returns channel r to these four neighbors. If cell A4 is not successful in borrowing channel r, it will notify these four neighbors about its failure to borrow channel r. For each primary channel r, cell B1 (or B3 , B4 , B6 ) maintains a set IB1 ðrÞ (or IB3 ðrÞ, IB4 ðrÞ, IB6 ðrÞ, respectively). IB1 ðrÞ records all the neighbors to which B1 grants channel r. Assuming that IB1 ðrÞ is empty and r is an available channel when B1 receives A4 ’s transfer(r) message, then B1 will grant channel r for A4 to borrow. B1 adds A4 into set IB1 ðrÞ. Suppose G1 also needs to borrow a channel from neighbors and sends request messages to all its interference neighbors, including cell B1 . When B1 receives the request message from G1 , it computes the set of available primary channels and attaches this set of channels to its reply to G1 . A primary channel r can be included in the set of channels if the following two conditions are satisfied: 1) r is not being used by B1 and 2) for each cell Ck 2 IB1 ðrÞ, G1 and Ck are not interference neighbors. Since G1 and A4 are interference neighbors, and A4 2 IB1 ðrÞ, B1 will not include channel r in its reply message to cell G1 . A disadvantage of this algorithm is that the whole pool of available channels is not reused efficiently. Cell B1 could include channel r in the set of channels attached to its reply to cell G1 even though G1 and A4 are neighbors, because B1 ’s permission for A4 to use channel r does not mean that A4 has already acquired channel r. To acquire a secondary channel r, A4 needs to get permission from all its neighbors to which channel r is allocated as a primary channel (i.e., B1 , B3 , B4 , and B6 ). Because A4 may not acquire channel r, G1 should be given at least a chance to borrow channel r. Excluding r from the set of channels attached to its reply to G1 makes the size of the set of available channels smaller than it should be. Thus, the available channels are not reused efficiently. In this paper, we address this issue and propose a better algorithm which makes use of the available pool of channels efficiently.

4

A DISTRIBUTED CHANNEL ALLOCATION ALGORITHM

4.1 Basic Idea In our proposed algorithm, we use the Resource Planning Model (shown in Fig. 2). Each message is timestamped with Lamport’s timestamp [15]. Outdated messages can be detected by comparing timestamps and discarded. For each primary channel r of cell Ci , Ci keeps track of the set of cells which borrowed the channel r successfully from Ci and have not released it yet. Let’s denote this set as Lenti ðrÞ (a formal definition of Lenti ðrÞ will be given later). When cell Ci needs a channel to set up a call, it assigns a primary channel to support the call if there exists such a primary channel. Otherwise, it sends request message to all its interference neighbors. When such a request message is received, each cell Cj (j 6¼ i) will check whether a certain primary channel r can be included in its reply message.

582

IEEE TRANSACTIONS ON MOBILE COMPUTING,

Cell Cj includes a primary channel r in its reply message if T Cj is not using r and INbi Lentj ðrÞ ¼ ;. The basic idea behind this is that as long as Cj is not using a primary channel r, and none of the cells in Lentj ðrÞ is an interference neighbor of Ci , Cj can lend r to Ci . For example, suppose that r is a primary channel of cell C4 in Fig. 2 and LentC4 ðrÞ ¼ ;. Assuming that C4 first lends the channel r to D5 , thus, LentC4 ðrÞ ¼ fD5 g. Also, suppose C4 granted cell H1 to borrow channel r, but has not received any response from H1 yet (note that H1 is not included in set LentC4 ðrÞ). Then, suppose C4 receives a request message from A4 . Because C4 is not using r, and cell D5 which is using r is not in A4 ’s interference neighborhood, C4 can include channel r in its reply to A4 . In our model (shown in Fig. 2), a cell Ci has at most 30 interference neighbors. These neighbors fall into eight complete subgroups of Ci . In order to borrow a channel, Ci does not have to wait until it receives replies from all its interference neighbors. For example, in Fig. 3, suppose cell A4 needs to borrow a channel and it only receives reply messages from neighbor B1 , B3 , B4 , and B6 . These four neighbors form a complete subgroup of cell A4 . If there is a common available channel in this complete subgroup of A4 ,2 then A4 can borrow it. If two interference neighbors, Ci and Cj , want to borrow the same secondary channel r at the same time, then based on Property 2.2 of Resource Planning, they have at least one common interference neighbor which is a primary cell of channel r. Let Ck be such a cell. Only one borrower, Ci or Cj , can get a grant3 message from Ck . When two cells Ci and Cj such that Ci 2 INbj request for the same channel r from Ck , Ck sends a grant message to at most one of them.

4.2 The Channel Selection Strategy When a cell Ci , which wants to borrow a channel from its neighbors, receives replies from neighbors, it begins to compute the set of channels which it can borrow. The goal of the channel selection strategy is to select a channel in such a way that selecting this channel will cause least interference to neighbors, thus maximizing the channel utilization [11]. We adopt a priority-based strategy to assign each channel a priority. The cell Ci always selects the channel with the highest priority to borrow. Next, we explain how to compute the priority for each channel. For each primary channel r of cell Cj , Cj keeps track of the set of cells which borrowed r successfully from it and have not released r yet. When Cj receives a request message from Ci (i.e., Cj and Ci are interference neighbors), it computes the set of primary channels which can be included in the reply message to Ci . If it is using a primary channel r, or it has lent r to a neighbor Ck such that Ci and Ck are neighbors, then r will not be included in the reply message to Ci , thus, Ci will not be able to borrow r. Otherwise, Cj assigns a priority to primary channel r and includes r in the reply message to Ci . The priority of a primary channel r is assigned by Cj in the following way: 2. A common available channel of cells in a complete subgroup is a common primary channel of these cells which is not being used by any of them. 3. grant message means that the cell agrees that the borrower can use the channel.

VOL. 4,

NO. 6,

NOVEMBER/DECEMBER 2005

If Cj has lent r to some neighbors, and none of them is a neighbor of Ci , then it assigns a high priority H to r, i.e., pr ðjÞ ¼ H. 2. If Cj has granted some neighbors’ request for the same primary channel r, and at least one such neighbor is a neighbor of Ci , then it assigns a low priority L to r, i.e., pr ðjÞ ¼ L. Otherwise, (i.e., for each cell Ck to which Cj has granted channel r for Ck to borrow, Ck is not an interference neighbor of Ci ) pr ðjÞ ¼ H. (Note that if the priority of r has already been assigned in step 1, it will be reassigned in this step.) 3. If primary channel r is an available channel in Cj (i.e., Cj neither lent nor granted r to any of its neighbors), then Cj assigns medium priority M to r, i.e., pr ðjÞ ¼ M (where H  M > L). By following the rules mentioned above, a cell Cj always encourages a neighbor Ci to borrow a primary channel r which it has already lent to a noninterference neighbor of Ci , because Cj cannot use r anyway. If Ci borrows r from Cj , then this borrowing does not cause more interference to Cj . At the same time, Cj discourages Ci to borrow a primary channel r which it has already granted to a neighbor Ck ’s request for the same channel r, where Ck and Ci are neighbors. The goal is to minimize the degree of contention. When multiple cells try to borrow the same channel r, at most one of them can succeed, others will fail in this try. Thus, such a channel r should be given a low priority to be borrowed. But, our algorithm still allows such a channel r to be borrowed when no other channels are available. If such a channel r is not allowed to be borrowed, then even if cell Ck fails to borrow channel r, all the other cells are denied the opportunity to borrow r during the period after Cj grants Ck ’s request for r and before Ck notifies Cj about its failure to borrow r. After assigning priority to primary channels, Cj includes the information of the primary channels with their priorities in the reply message and sends the reply message to Ci . When Ci receives reply messages from neighbors, for each channel r in the set of channels which it can borrow, it begins to compute the priority of r. Let us assume that there are a total of k  n channels, which are numbered by 0; 1; . . . ; k  n  1. The k  n channels are divided evenly into k subsets: P C0 ; P C1 ; . . . ; P Ck1 . The channels belonging to subset P Cx (x 2 f0; 1; . . . ; k  1g) are: x  n; x  n þ 1; . . . ; x  n þ ðn  1Þ. Let us assume that channel r is numbered with x  n þ yðy 2 f0; 1; . . . ; n  1gÞ. We have H  n. Ci computes the priority of channel r in the following way: 1.

priorityr ¼ ( L; if 9j : j 2 IP Ci ðrÞ ^ pr ðjÞ ¼ L; P y þ j2IP Ci ðrÞ pr ðjÞ; otherwise: Ci selects a channel r with the highest priority from the set of channels which it can borrow, and sends messages to cells Cj (Cj 2 IP Ci ðrÞ) to transfer channel r. If Ci borrows a channel r successfully, then the channel r cannot be used in its primary cells Cj 2 IP Ci ðrÞ. Let IP Ci ðrÞ BEF ORE denote the set of cells in IP Ci ðrÞ which cannot use channel r before Ci borrows r, and IP Ci ðrÞ AF T ER denote the set of cells in

YANG AND MANIVANNAN: AN EFFICIENT FAULT-TOLERANT DISTRIBUTED CHANNEL ALLOCATION ALGORITHM FOR CELLULAR...

IP Ci ðrÞ which cannot use channel r after Ci borrows r. The goal of the channel selection strategy is to select a channel r in such a way that borrowing r causes minimum number of cells in IP Ci ðrÞ which are newly added to IP Ci ðrÞ AF T ER, (compared with IP Ci ðrÞ BEF OER) and become unable to use r. We illustrate the channel selection strategy by an example. In Fig. 2, suppose that cell A4 needs to borrow a channel. After computing the set of channels which it can borrow, it finds out that it can borrow channels r1 and r2. r1 is a primary channel in cells B1 , B3 , B4 , and B6 . r2 is a primary channel in cells C1 , C3 , C4 , and C6 . Suppose that r1 is an available channel in cells B1 , B3 , B4 , and B6 , while C1 , C3 , and C4 have either lent r2 or granted r2 to some other cells which are not interference neighbors of A4 , and C6 has r2 available. According to this channel selection strategy, cells B1 , B3 , B4 , and B6 will assign M to pr1 ðB1 Þ, pr1 ðB3 Þ, pr1 ðB4 Þ, and pr1 ðB6 Þ, respectively. And, C1 , C3 , and C4 will assign H to pr2 ðC1 Þ, pr2 ðC3 Þ, and pr2 ðC4 Þ, respectively, and C6 will assign M to pr2 ðC6 Þ. Since H  n and H  M, the value of priorityr is dominated by the value of H. r2 has a higher priority than r1. Thus, A4 will select r2 to borrow. IP Ci ðr1Þ BEF ORE ¼ ; and IP Ci ðr1Þ AF T ER ¼ fB1 ; B3 ; B4 ; B6 g, the number of newly added cells is 4, compared with IP Ci ðr1Þ BEF ORE. Thus, four new cells are caused to be unable to use r1 if A4 borrows r1. But, if A4 borrows r2, IP Ci ðr2Þ BEF ORE ¼ fC1 ; C3 ; C4 g and IP Ci ðr2Þ AF T ER ¼ fC1 ; C3 ; C4 ; C6 g, the number of newly added cells is 1, compared with IP Ci ðr2Þ BEF ORE. Thus, only one cell, namely, C6 , is newly added and caused to become unable to use r2 if A4 borrows r2, the other cells C1 , C3 , and C4 cannot use r2 even before A4 borrows r2. Thus, the channel selection strategy always selects a channel in such a way that borrowing such a channel causes minimum interference to neighbors, therefore the channel utilization is maximized.

4.3 Data Structures The data structures used in the algorithm are given in Table 1. 4.4 The Algorithm (A) When Ci needs a channel to set up a call: It computes F reei . If F reei ¼ ;, then Ci sets a timer and sends a request to each cell Cj 2 INbi . Else, a channel r 2 F reei is picked to support the call and added to Ui . When the call terminates, r is deleted from Ui . (B) When Ci receives a request from Cj : It computes Ri . If Ri 6¼ ;, then sends replyðRi Þ to Cj ; else discards the request. (C) After Ci gets reply from all its interference neighbors or times out: It sets a new timer,4 sets Availi ¼ ;, and does the following: S (C.1) 8 r 2 Spectrum, Availi ¼ Availi frg if the following two conditions are satisfied: 1. r 2 = Ui (i.e., r is not being used by Ci ); 2. 8Cj 2 IP Ci ðrÞ, Ci got replyðRj Þ and r 2 Rj . (C.2) If Availi 6¼ ;, then a channel r 2 Availi is picked as per the channel selection strategy and Ci sends a transfer(r) to all cells in IP Ci ðrÞ. Otherwise, the call is dropped. 4. The purpose of the new timer is to handle link and/or node failure. If the borrower cannot borrow a channel when the new timer expires, it will drop this call.

583

TABLE 1 Data Structures Used in Our Channel Allocation Algorithm at Each Cell (MSS) Ci

(D) When Ci receives a transfer(r) message from cell Cj : (D.1) It computes F reei . If r 2 F reei , then Ci sends Granti ðrÞ to Cj and adds Cj to Grant T i ðrÞ. INbj 6¼ ;, then Ci sends (D.2) Else if r 2 Ui or Lenti ðrÞ a refuse(r) to Cj . T (D.3) Else let S ¼ Granti ðrÞ INbj . If S ¼ ;, then Ci sends a grant(r) to Cj and adds Cj to Granti ðrÞ. (D.4) Else if 8Ck 2 S, Cj ’s request timestamp is less than that of Ck ’s request, then Ci sends a conditional_grant(S,r) to Cj and adds Cj to set Granti ðrÞ. Otherwise, Ci sends a refuse(r) to Cj . (E) If Ci receives responses to its transfer(r) message from each cell in IP Ci ðrÞ before the timer expires, it checks for the following three conditions: (E.1) Each response is either a grant(r) message or a conditional_grant(S,r) message. (E.2) There is at least one grant(r) message. (E.3) 8 conditional grantðS; rÞ and 8 Cj 2 S, a grant(r) from some Ck has been received by Ci , where Ck 2 ðIP Ci ðrÞ T IP Cj ðrÞÞ. If E.1, E.2, and E.3 are met, then Ci sends use(r) to each Cj 2 IP Ci ðrÞ and uses channel r to support the call. r is added to Ui . When the call finishes, Ci removes r from Ui and sends release(r) to each Cj 2 IP Ci ðrÞ. Otherwise (either E.1, E.2, and E.3 are not all met or the timer expires), it sends an abort(r) to each cell in IP Ci ðrÞ from which a grant(r) or a conditional_ grant(S,r) is received. r is deleted from Availi . If the timer does not expire, then executes step (C.2); else drops the call. (F) When Ci receives a release(r) from Cj , it deletes Cj from Lenti ðrÞ. When a cell Ci receives a use(r) from Cj , it

584

IEEE TRANSACTIONS ON MOBILE COMPUTING,

deletes Cj from Granti ðrÞ and adds Cj to Lenti ðrÞ. When a cell Ci receives an abort(r) from Cj , it deletes Cj from Granti ðrÞ.

VOL. 4,

NO. 6,

NOVEMBER/DECEMBER 2005

TABLE 2 Data Structures Used in the Algorithm Given in [5]

4.5 Proof of Correctness of the Algorithm Theorem 4.1. Under the algorithm proposed in this paper, no two interference neighbors can be using the same channel concurrently. Proof. Suppose that two cells Ci and Cj are in each other’s interference neighborhood, and they are using the same channel r concurrently. They cannot both be the primary cells of channel r since they are in each other’s interference neighborhood. So, at most, one of them is a primary cell of r. There are three possibilities: 1.

Both Ci and Cj are not primary cells of channel r. Without loss of generality, assume that Ci ’s request has a smaller timestamp than that of Cj ’s request. T ðrÞ IP C IP C j ðrÞ 6¼ ; (Property 2.2). Let Ck 2 IP Ci Ti ðrÞ IP Cj ðrÞ. There are two cases: Ck sends a grant(r) message to Ci first. In this case, when Ck receives Cj ’s transfer(r) message, a refuse(r) message is sent to Cj , since Cj ’s request has a higher timestamp than Ci ’s. So, Cj would not have been able to borrow channel r, which is a contradiction to our assumption that Ci and Cj use r concurrently. b. Ck sends a grant(r) message to Cj first. In this case, when Ck receives Ci ’s request, it will send a conditional_grant message to Ci , according to step (D.4) in the proposed algorithm. If Cj gets all grant messages from each cell in IP Cj ðrÞ, then Ci cannot acquire r because it cannot get a grant message from any cell in IP Ci ðrÞ T IP Cj ðrÞ, which causes it to fail to meet condition (E.3). If Ci gets T a grant message from any cell Cm 2 IP Ci ðrÞ IP Cj ðrÞ, then Cm will send a refuse(r) message to Cj , so Cj could not have acquired r, which is a contradiction to our assumption. So, Ci and Cj will not use the same channel r concurrently. Ci is a primary cell of r, Cj is a secondary cell of r. In this case, Ci must have acquired r to support a call in its own cell and also must have lent it to Cj . This is not possible because a cell lends a primary channel to a neighbor only if it is not using this channel (see Algorithm (D.2)). Moreover, a cell does not use a primary channel to support a call if this channel has been lent to an interference neighbor (see Algorithm (A)). Cj is a primary cell of r, Ci is a secondary cell of r. This case is similar to (2). u t a.

2.

3.

Theorem 4.2. The algorithm is deadlock-free.5 5. A deadlock occurs when a set of processes in a system is blocked waiting on requirements that can never be satisfied [16].

Proof. In the channel allocation algorithm, a timer is used. An MSS (a cell) sets a timer when it sends a request message. Either after it receives reply messages from all interference neighbors or the timer expires, the MSS proceeds to compute the available channels. An MSS responds with a grant, conditional_grant, or refuse message immediately after it receives a transfer(r) message. So, hold and wait situation does not occur. So, the algorithm is deadlock-free. u t

5

PERFORMANCE

OF THE

ALGORITHM

In this section, we compare the performance of our algorithm with that of Cao and Singhal [5]. We choose the algorithm proposed in [5] for comparison because both our algorithm and the algorithm in [5] are fault tolerant. Moreover, both of them adopt a Resource Planning Model and an on demand/ reactive approach. Some of the data structures used in [5] are shown in Table 2. The agree and conditional_agree messages in [5] are equivalent to the grant and conditional_grant messages in our algorithm, respectively. There are six main differences between our algorithm and the algorithm proposed in [5]. Let r be a primary channel of cell Ci . 1.

2.

3.

In [5], no effort is made to distinguish the set of cells which have borrowed channel r successfully from the set of cells which are attempting to borrow r in cell Ci . All potential borrowers are maintained in one set, namely, Ii ðrÞ, including both the cells which have already acquired channel r successfully and the cells which are trying to borrowing channel r. In our algorithm, we maintain two sets Granti ðrÞ and Lenti ðrÞ. Granti ðrÞ refers to the set of borrowers which try to borrow channel r, but have not succeeded yet, while Lenti ðrÞ is the set of borrowers which have already acquired channel r successfully. In [5], after a neighbor Cj borrows channel r from Ci successfully, Cj does not notify Ci about this, while Cj explicitly notifies Ci about this in our algorithm. A different way of computing set Ri which is a primary attached to Ci ’s reply message to Cj . In [5],T channel r is not included into Ri if Ii ðrÞ INj 6¼ ;. This happens even when no cell in Ii ðrÞ has really

YANG AND MANIVANNAN: AN EFFICIENT FAULT-TOLERANT DISTRIBUTED CHANNEL ALLOCATION ALGORITHM FOR CELLULAR...

acquired r at the time when Ri is computed. Doing so makes the size of Ri smaller than it should be. The cells in Ii ðrÞ may not acquire r successfully in the end, so Cj should be given a chance to borrow r. In our algorithm, channel r can be included into Ri as long as Ci is not using r and r has not been lent to any interference neighbors of cell Cj . 4. A different way of handling a request message from cell Cj . In [5], Ci always sends reply to Cj upon receiving Cj ’s request; while no reply is sent if Ri ¼ ; in our algorithm. 5. A different way of handling a transfer(r) message from cell Cj . In [5], T Ci sends conditional_agree to Cj if ðIi ðrÞ  CIi ðr; jÞÞ INj 6¼ ; and Cj ’s request has the smallest timestamp. In our algorithm, a refuse T message will be sent to Cj if Lenti ðrÞ INbj 6¼ ;. 6. A different channel selection strategy. In [5], a cell Ci always borrows a channel from its richest neighbor. The richness of a neighbor Cj (Cj 2 Sx T INbi ; Ci 2 = Sx ) is defined as the minimum number of primary channels which are available in the interference primary cells of P Cx . The goal of borrowing channel from richest neighbor is to reduce the chance that the lender might have no available channel to use and has to borrow a channel. The interference caused by borrowing a channel is not taken into account in this algorithm. In our algorithm, when a cell Ci tries to select a channel to borrow, for each secondary channel r that it may borrow, it computes the set of cells in IP Ci ðrÞ which cannot use channel r before it borrows r, this set is denoted by IP Ci ðrÞ BEF ORE. Also, it computes the difference between IP Ci ðrÞ and IP Ci ðrÞ BEF ORE, i.e., IP Ci ðrÞ IP Ci ðrÞ BEF ORE, which contains all the cells that Ci ’s borrowing channel r is the only reason for them to be unable to use channel r (i.e., this set does not include the cells in IP Ci ðrÞ BEF ORE). The goal is to minimize the size of this set, that is, minimizing jIP Ci ðrÞ  IP Ci ðrÞ BEF OREj. The basic idea behind this is to minimize the number of neighbors that Ci ’s borrowing channel r is their only reason to be unable to use channel r. By minimizing the size of this set, channel utilization is maximized. The first three differences make the set of channels which are included in the reply message larger in our algorithm than in [5] because jLenti ðrÞj  jIi ðrÞj. This motivates our algorithm to make better use of the set of available channels. The fourth difference makes our algorithm reduce message complexity and save some bandwidth. It is of no use for Ci to send a reply message with an empty set of available channels to a neighbor Cj . Doing this only increases the message complexity and wastes bandwidth. The fifth difference helps in acquiring a channel faster in our algorithm. The last difference enables our algorithm to minimize the interference caused by borrowing channel, so maximizing the channel utilization. To help understand the differences between our algorithm and the algorithm proposed in [5], suppose r is a

585

primary channel of A4 in Fig. 2. IA4 ðrÞ ¼ ; in [5] and GrantA4 ðrÞ ¼ ; ^ LentA4 ðrÞ ¼ ; in our algorithm. .

.

.

6

Suppose that A4 first sends a grant(r) (agree(r) in [5]) to E3 and adds E3 to GrantA4 ðrÞ (IA4 ðrÞ in [5]). Then, it receives a transfer(r) from I3 . In [5], r will not be included into Ri to cell I3 since E3 (E3 2 IA4 ðrÞ) is an interference neighbor of I3 . In our algorithm, r will be included into Ri since r is not being used by either A4 or any cell which is an interference neighbor of cell I3 . Thus, our algorithm makes use of the set of channels which can be borrowed more efficiently by including more channels in set Ri . Suppose that A4 receives a request message from both E3 and I3 , r is included in the reply message to both of them. E3 first acquires r and A4 adds E3 to LentA4 ðrÞ (IA4 ðrÞ in [5]). Then, A4 receives I3 ’s transfer(r) message. If I3 ’s request has a smaller timestamp than that of E3 s, then a conditional_agree message will be sent to I3 in [5]. I3 can never acquire channel r because r is being used by E3 which is an interference neighbor of I3 .6 But, I3 will still try to check (E.3) if it meets (E.1) and (E.2). This makes both A4 and I3 waste time to compute. In our algorithm, A4 will send a refuse message to I3 because A4 knows that E3 is now using r and E3 is an interference neighbor of I3 . I3 will not try to check (E.3) because it receives a refuse message. Thus, both A4 and I3 make decision faster in our algorithm than in [5] in this case. Now, suppose that A4 wants to borrow a channel from neighbors, and cells B1 , B3 , B4 , and B6 are its richest neighbors. Suppose r is a common available primary channel in B1 , B3 , B4 , and B6 . Suppose that r is borrowed by A4 according to the channel selection algorithm in [5]. Then, all these lenders of channel r cannot use r. The number of neighbors that A4 ’s borrowing channel r is their only reason to be unable to use r is 4. In our algorithm, suppose that r is a primary channel of cells I0 , I1 , and I3 and I0 has lent r to C0 , I1 has lent r to B2 , and I3 has lent r to E6 . Suppose that according to our channel selection strategy, r has the highest priority to borrow, then A4 borrows r. The number of neighbors that A4 ’s borrowing channel r is their only reason to be unable to use r is 0. Thus, the channel interference is minimized by our channel selection strategy. This will maximize the channel utilization.

SIMULATION RESULTS

In this section, we compare the performance of our algorithm with that of the algorithm proposed in [5] in terms of call failure rate under nonuniform traffic in which the call arrival rate is moderate to high. The failure rate is defined as the ratio of total number of calls dropped (including the dropped new calls originating in the cell and the dropped interhandoff calls) to the total number of calls processed. The call arrival rate is defined as the number of call arrivals per hour per cell. 6. I3 cannot meet condition (E.3).

586

IEEE TRANSACTIONS ON MOBILE COMPUTING,

VOL. 4,

NO. 6,

NOVEMBER/DECEMBER 2005

TABLE 3 Parameters for Nonuniform Traffic

6.1 Simulation Parameters The simulated cellular network consists of 9  9 cells (see Fig. 2). Each cell has 30 neighbors (by wrapping around the cells). In total, there are 44  9 channels available, with each cell having 44 primary channels. We assume that the average one-way communication delay between two cells is 2 milliseconds when network congestion is not present. This average delay covers the transmission delay, the propagation delay, and the message processing time, which is the same as that in [5]. We assume that the maximum delay an interhandoff call can tolerate is 10.0 milliseconds which is the same as in [5]. In the simulation, a large number of MHs are generated. After the generation of MHs, an MH sends call request to the MSS in its cell. It may move from one cell to an adjacent neighbor while involved in a communication. We assume that the average service time per communication is 3 minutes, which is the same as used in [5]. In each simulation run, a large number of samples are collected and most of the measured data satisfies a relative error of less than 0:01. Under nonuniform traffic, a cell can be in one of the two states, namely, normal or hot. When a cell is in normal state, the arrival rate is low, and the handoff rate is high; when a cell is in hot state, it has high call arrival rate and low handoff rate. The parameters used for nonuniform traffic are given in Table 3.

Fig. 5. The comparison with one cell failure.

algorithms in the absence of cell failures. Fig. 4 shows that under the nonuniform traffic mode, when the call arrival rate is from 700 (which is moderate) to 1; 000 (which is very high), the failure rate of our algorithm is smaller than that of the algorithm proposed in [5]. The reason is that in our algorithm, the size of the set of channels in the reply message is larger than that in [5], and the channel selection strategy in our algorithm minimizes the channel interference, thus channels are reused in a more efficient way, making less new calls or interhandoff calls to be dropped. Figs. 5 and 6 show the performance of our algorithm with that in [5] under nonuniform traffic in presence of one and two cell failures. Thus, our simulation results show that the call failure rate under our algorithm is lower than that of [5] under nonuniform traffic with moderate to high arrival rate (with or without cell failures).

7

CONCLUSION

6.2 Simulation Results All the comparisons between our algorithm and the algorithm proposed in [5] are made under nonuniform traffic. The range of call arrival rate is from moderate to high. First, we compare the performance of the two

Distributed dynamic channel allocation algorithms have gained more attention because of their high reliability and scalability. However, some of them did not address fault tolerance issues very well. Most of them did not make full use of the available channels. In this paper, we proposed an efficient fault-tolerant channel allocation algorithm which makes efficient reuse of channels. Under our algorithm, a cell

Fig. 4. The comparison without cell failure.

Fig. 6. The comparison with two cell failures.

YANG AND MANIVANNAN: AN EFFICIENT FAULT-TOLERANT DISTRIBUTED CHANNEL ALLOCATION ALGORITHM FOR CELLULAR...

that tries to borrow a channel does not have to wait until it receives a reply message from each of its interference neighbors. A cell can borrow a channel as long as it receives reply messages from each cell in a subgroup in its interference neighborhood and there is at least one common primary channel which is not being used by any cell in this subgroup. Moreover, the channels are reused more efficiently.

ACKNOWLEDGMENTS The authors thank the anonymous referees for their valuable comments which helped in improving the content and presentation of the paper. The authors also thank Guohong Cao and Mukesh Singhal for sharing their simulator. This research was supported in part by the US National Science Foundation, CAREER Award # CCR9983584 and a matching grant from the Department of Computer Science at University of Kentucky.

REFERENCES [1]

[2] [3] [4]

[5] [6]

[7]

[8]

[9] [10]

[11] [12] [13] [14]

R. Prakash, N.G. Shivaratri, and M. Singhal, “Distributed Dynamic Fault-Tolerant Channel Allocation for Cellular Networks,” IEEE Trans. Vehicular Technology, vol. 48, no. 6, pp. 18741888, Nov. 1999. S. Nanda and D.J. Goodman, “Dynamic Resource Acquisition: Distributed Carrier Allocation for TDMA Cellular Systems,” Proc. IEEE GLOBECOM, pp. 883-889, Dec. 1991. J.C.-I. Chuang, “Performance Issues and Algorithms for Dynamic Channel Assignment,” IEEE J. Selected Areas in Comm., vol. 11, no. 6, pp. 955-963, Aug. 1993. S.K. Das, S.K. Sen, and R. Jayaram, “A Dynamic Load Balancing Strategy for Channel Assignment Using Selective Borrowing in Cellular Mobile Environment,” Wireless Networks, vol. 3, pp. 333347, 1997. G. Cao and M. Singhal, “Distributed Fault-Tolerant Channel Allocation for Cellular Networks,” IEEE J. Selected Areas in Comm., vol. 18, no. 7, pp. 1326-1337, July 2000. X. Dong and T.H. Lai, “Distributed Dynamic Carrier Allocation in Mobile Cellular Networks: Search vs. Update,” Proc. 17th Int’l Conf. Distributed Computing Systems (ICDCS ’97), pp. 108-115, May 1997. J. Yang, D. Manivannan, and M. Singhal, “A Fault-Tolerant Dynamic Channel Allocation Scheme for Enhancing QoS in Cellular Networks,” IEEE Proc. 36th Hawaii Int’l Conf. System Sciences (HICSS-36), pp. 306-315, Jan. 2003. G. Cao and M. Singhal, “An Adaptive Distributed Channel Allocation Strategy for Mobile Cellular Networks,” J. Parallel and Distributed Computing, special issue on mobile computing, vol. 60, no. 4, pp. 451-473, Apr. 2000. G. Cao and M. Singhal, “Efficient Distributed Channel Allocation for Mobile Cellular Networks,” Computer Comm., vol. 23, no. 10, pp. 950-961, May 2000. J. Yang and D. Manivannan, “A Fault-Tolerant Channel Allocation Algorithm for Cellular Networks with Mobile Base Stations,” Proc. 2003 Int’l Conf. Wireless Networks (ICWN ’03), pp. 146-152, June 2003. X. Dong and T.H. Lai, “An Efficient Priority-Based Dynamic Channel Allocation for Mobile Cellular Networks,” Proc. IEEE INFOCOM, 1997. R. Prakash, “Distributed Wireless Channel Allocation in Cellular Systems with Mobile Base Stations,” Proc. Workshop Nomadic Computing, Apr. 1997. S. Nesargi and R. Prakash, “Distributed Wireless Channel Allocation in Networks with Mobile Base Stations,” Proc. INFOCOM, vol. 2, pp. 592-600, 1999. S.K. Das, S.K. Sen, and R. Jayaram, “A Structured Channel Borrowing Scheme for Dynamic Load Balancing in Cellular Networks,” Proc. 17th Int’l Conf. Distributed Computing Systems (ICDCS ’97), pp. 116-123, 1997.

587

[15] L. Lamport, “Time, Clocks and the Ordering of Events in a Distributed System,” Comm. ACM, vol. 21, no. 7, pp. 558-565, July 1978. [16] M. Singhal and N.G. Shivaratri, Advanced Concepts in Operating Systems. McGraw-Hill, Inc. 1994. Jianchang Yang received the BS degree from Capital University of Medical Science, Beijing, P.R. China, in 1996. He is currently a PhD student in the Department of Computer Science at the University of Kentucky. His current research interests include channel allocation in cellular networks, routing in mobile ad hoc networks and fault tolerance in distributed systems.

D. Manivanann received the PhD degree in computer and information science from The Ohio State University, Columbus, Ohio, in 1997. He is an associate professor in the Department of Computer Science at the University of Kentucky, Lexington. He has published his research in the areas of fault tolerance and synchronization in distributed systems, routing in wormhole networks, channel allocation in cellular networks, security in wireless personal area networks, and security of mobile agents. He has served as a program committee member for several international conferences and also served as a reviewer for several international journals published by the ACM, IEEE, Elsevier, Springer Verlag, Oxford University Press, and others. Dr. Manivannan is a recipient of the CAREER Award from the US National Science Foundation. He is a member of the ACM, IEEE, and IEEE Computer Society.

. For more information on this or any other computing topic, please visit our Digital Library at www.computer.org/publications/dlib.

Suggest Documents