GOSSIP BASED RANDOM ROUTING IN AD HOC NETWORKS full report
seminar presentation Active In SP Posts: 582 Joined: Apr 2010 
06062010, 10:40 PM
GOSSIP BASED RANDOM ROUTING IN AD HOC NETWORKS.docx (Size: 170.69 KB / Downloads: 59) GOSSIP BASED RANDOM ROUTING IN AD HOC NETWORKS Presented By: R.Saravanan 1 Naresh Sammeta 2 H.O.D Dept of CSE, P.S.N.A. College of Engg and Tech., Tamilnadu, India Dept of CSE, P.S.N.A. College of Engg and Tech., Tamilnadu, India ABSTRACT Many ad hoc routing protocols are based on some variant of flooding. Despite various optimizations of flooding, manyrouting messages are propagated unnecessarily. We propose a gossipingbased approach, where each node forwards amessage with some probability, to reduce the overhead of therouting protocols. Gossiping exhibits bimodal behavior in sufficiently large networks: in some executions, the gossip diesout quickly and hardly any node gets the message; in theremaining executions, a substantial fraction of the nodes getsthe message. The fraction of executions in which most nodes getthe message depends on the gossiping probability and the topology of the network. In the networks we have considered,using gossiping probability between 0.6 and 0.8 suffices to ensure that almost every node gets the message in almost everyexecution. For large networks, this simple gossiping protocol uses up to 35% fewer messages than flooding, with improved performance. Gossiping can also be combined with various optimizations of flooding to yield further benefits. Simulations show that adding gossiping to AODV results in significant performance improvement, even in networks as small as 150 nodes. Our results suggest that the improvement should be even more significant in larger networks. Keywordscomponent: Ad hoc networks, gossiping, percolation theory, phase transition, routing. 1. INTRODUCTION An ad hoc network is a multihop wireless network with no fixed infrastructure. MIT Rooftop networks and sensor networks are two examples of networks that might be implemented using the ad hoc networking technology. Ad hoc networks can be usefully deployed for communication in applications such as disaster relief and battlefield situations. In ad hoc networks, the power supply of individual nodes is limited, wireless andwidth is limited, and the channel condition can vary greatly. Moreover, since nodes can be mobile, routes may constantly change, requiring frequent route discovery among communicating parties. Thus, to enable efficient communication, robust routing protocols must be developed. Many ad hoc routing protocols have been proposed. Some, such as LAR , GPSR, and DREAM assume that nodes are equipped with GPS hardware and thus know their locations; others, such as DSR, AODV, ZRP, and TORA, do not make this assumption. Essentially all protocols that do not use GPS (and some that do, such as LAR and DREAM) make use of flooding, usually with some optimizations. Despite the optimizations, in routing protocols that use flooding, many routing messages are propagated unnecessarily. In this paper, we show that gossipingâ€essentially, tossing a coin to randomly decide whether or not to forward messageâ€ can be used to significantly reduce the number of routing messages sent It follows from results in percolation theory[5], that gossiping exhibits a certain type of bimodal behavior. Let the gossip probability be ?S(P) . Let be the fraction of executions where gossiping with probability dies out, and let ?R (P) bethe fraction of nodes getting the message when gossiping does not die out. Then, in sufficiently large nice graphs (where nice graphs include regular graphs and random graphs) the gossip quickly dies out in 1 ?S(P) of the executions and, in almost all of the fraction ?S(P) of the executions where the gossip does not die out, a fraction ?R (P) of the nodes get the message. Moreover, in many cases of interest, ?R(P) is close to 1. Thus, in almost all executions of the algorithm, either hardly any nodes receive the message, or most of them do. Ideally, we could make the fraction of executions where the gossip dies out relatively low while also keeping the gossip probability low, to reduce the message overhead. The goal of this paper is to investigate the extent to which this can be done. Our results show that, by using appropriate heuristics , we can save up to 35% message overhead compared to flooding. Furthermore, adding gossiping to a protocol such as AODV not only reduces the number of messages sent, but also results in improved network performance in terms of endtoend latency and throughput. We expect that the various optimizations applied to flooding by other protocols (for example, the clusterbased scheme) can also be usefullycombined with gossiping to get further performance improvements. We are certainly not the first to use gossiping in networking applications. For example, it has been applied in networked databases to spread updates among nodes [5] and to multicasting [3]. Gossiping proceeds by choosing some set of nodes at random to which to gossip. Our problem is to find routes to different nodes.We show by simulation that even n networks with 150 nodes only, adding gossiping to AODV can result in significant performance improvements on all standard metrics. We expect that this improvement will be even more significant in larger networks. Section 7 concludes our paper. talks about the probability that a node receives and forwards the message in a given execution of the algorithm. The intuition behind the equality of ?S 0(p) and ?F 0 (p) is easy to explain. A gossip initiated by a source n0 dies out if there is a set N of nodes that disconnects from the rest of the graph; that is, there is a set of N nodes such that, for infinitely many n nodes, every path from n0 to n goes through a node in N . Thus, ?S 0(p) is the probability that there is no disconnecting set N such that none of the nodes in N forwards the message. (Note that N could consist of the singleton node n0 itself.) Similarly, the probability ?F 0(p) that a random node receives and forwards the message is precisely the probability that there is no set N1 such that N1 disconnects n from n0 and none of the nodes in N1 forwards the message. Therefore, ?S 0(p) = ?F 0 (p) = ?0(p) . It follows from these results that, in an execution where the message does not die out, the probability that a random node receives the message is ?0(p)/p, since receiving the message is independent of forwarding it. Thus, in terms of the notation used in the 2. THE BIMODAL GOSSIPING BEHAVIOR introduction, ?S(p) = ?0(p) and ?R 0 (p) ?0(p)/p. 3. GOSSIPING IN FINITE NETWORKS Since flooding is a basic element in many of the ad hocrouting protocols, as mentioned in Section 1, we start by comparing gossiping to flooding. Our basic gossiping protocol is simple. A source sends the route request with probability 1. When a node first receives a route request, with probability it broadcasts the request to its neighbors and with probability p it discards the request; if the node receives the same route request again, it is discarded. Thus, a node broadcasts a given route request at most once. This simple protocol is called GOSSIP1( ).GOSSIP1 has a slight problem with initial conditions. If the source has relatively few neighbors, there is a fair chance that none of them will gossip and that the gossip will die. To make sure this does not happen, we gossip with probability 1 for the first k hops before continuing to gossip with probability .We call this modified protocol GOSSIP1(p,k). Theorem2.1: For all p? 0 , for all infinite regular graphs , and for almost all (i.e., a measure 1 subset) of the infinite random graphs constructed as above, if GOSSIP1(p,0) is used by every node to spread a message, then there is a wellde fined probability ?S 0(p)<1 that the message reaches infinitely many nodes. Moreover, in an execution where the message reaches infinitely many nodes, the probability ?F 0(p) that a node receives the message and forwards it is equal to ?S0 (p). Note that the probability of a message dying out (i.e., not spreading to infinitely many nodes) is averaged over the executions of the algorithm. That is, the theorem says that if we execute the algorithm repeatedly, the probability that a message does not die out in any given execution is ?S 0(p). On the other hand, ?F We performed a large number of experiments to investigate the behavior of gossiping. We summarize some of the more interesting results here. We assumed an ideal MAC layer for these experiments because we wanted to decouple the effect of the MAC layer from the effect of gossiping; using IEEE 802.11 MAC leads to similar results. An ideal MAC layer is one that is not subject to packet loss. When we consider more realistic scenarios in Section 5, we use the IEEE 802.11 MAC layer. In this section, we focus on regular graphs and the random graphs discussed in the previous section. We focus here on phasetransition phenomena in medium sized networks of roughly 1000 nodes and larger networks of 1 000 000 nodes. Of course, with larger networks, the phasetransition phenomenon is even more marked. Although networks of more than 1000 nodes are not currently practical, given that hardware costs keep decreasing, we believe that they may well exist in the near future; for example, some researchers have envisioned large networks involving smart dust. Our first set of experiments involves mediumsized networks with 1000 nodes. We start by considering a 20row by 50column grid (i.e., a regular graph of degree 4.For example, the average erformance of GOSSIP1(0.65,4) is shown in Fig. 1©. As the graph shows, at distance 40, on average 58% of the nodes got the message. However, in this case, the graph is somewhat misleading. The averaging is hiding the true behavior. As we would expect from Theorem II.1, there is bimodal behavior. This is illustrated in Fig. 1(d). If we consider nodes at distance 15â€œ45 (so as to ignore initial effects and boundary effects), in 14% of the executions, fewer than 10% of the nodes get the message; in 19% of the executions, fewer than 20% of the nodes get the message; in 59% of the executions, more than 80% of the nodes get the message; and in 41% of the executions, more than 90% of the nodes get the message. If we lower the gossip probability further, we get the same bimodal behavior; all that changes is the fraction of rectangular region; this results in a network with average degree 10. In this network, it suffices to gossip with probability 0.65 to ensure that almost all nodes get the message in almost all executions. All the graphs above show a marked drop off in probability for nodes that are close to the boundary. This is not just an effect of averaging; this drop off occurs in almost all executions of the algorithm. The dropoff is due to two related boundary effects executions in which all nodes and no nodes get the message. The drop off is fairly rapid. For example, Fig. 1(e) and (f) describe the situation. 4. HEURISTIC TO IMPROVE PERFORMANCE OF GOSSIPING The results of the previous section suggest an obvious way that gossiping can be applied in ad hoc routing. Rather than flooding, we use GOSSIP1 (p,k) with p sufficiently high to guarantee that almost all nodes will receive the message in almost all executions. We can practically guarantee that the destination node receives the message, while saving a faction of 1p messages. In cases of interest, where the threshold probability is in the range 0.65â€œ 0.75, this means we can ensure that all nodes get the message using 25%â€œ35% fewer messages than flooding. Notice that, if the network is congested and every node has a congestion dropping probability , then to obtain the same results, the broadcast probability needs to be min(p/(1  f),1) . If congestion is very localized, then we can simply use because it is not likely to change the outcome of a given run of gossiping. However, the general interaction between gossiping and congestion is a topic that deserves further study. 4.1 TwoThreshold Scheme In many cases of interest, a gossip protocol is run in conjunction with other protocols. If the other protocols maintain fairly accurate information regarding a nodeâ„¢s neighbors, we can make use of this information to further improve the performance of GOSSIP1 by a simple optimization. In a random network, unlike the grid, a node may have very few neighbors. In this case, the probability that none of the nodeâ„¢s neighbors will propagate the gossip is high. In general, we may want the gossip probability at a node to be a function of its degree, where nodes with lower degree gossip with higher probability. To show the effect of this improvement, we consider a special case here: a protocol with four parameters, p1, k, p2 , and n . As in GOSSIP1, p1 is the typical gossip probability, but gossiping happens with probability 1 for the first k hops. The new features are p2 and n ; the idea is that the neighbors of a node with fewer than n neighbors gossip with probability p2 > p1 . That is, if a node has fewer than neighbors, it instructs its immediate neighbors to broadcast with probability p2 rather than p1. Call this modified protocol GOSSIP2(p1,k,p1,n). probability, the probability that at least one of them will gossip is high. This is not the case if it has few neighbors. GOSSIP2 is not of interest in regular networks. However, in random networks which typically have some sparse regions, it can have a significant impact.1000node random network with average degree 8, first considered in Fig. 2, GOSSIP2(0.6,4,1,6) has better performance than GOSSIP1(0.75,4), as shown in Fig. 5, while using 4% less messages than GOSSIP1(0.75,4). Only when p ? 0.8does GOSSIP1(p,4) begin to have the same performance as GOSSIP2(0.6,4,1,6); however, GOSSIP1(0.8,4) uses 13% more messages than GOSSIP2(0.6,4,1,6). There may be other combinations of parameters for GOSSIP2 that give even better performance; we have not checked exhaustively. The key point is that using a higher threshold for successors of nodes with low degree seems to significantly improve performance. 4.2 Preventing Premature Gossip Death As we have seen, the real problem with gossiping is that, if we gossip with too low a probability, the message may die out in a certain fraction of the executions. Measures can be taken to prevent this (for example, having successors of nodes with low degree gossip with a higher probability), but, unfortunately, there is no way for a node to know if a message is dying out.Nevertheless, a node may get some clues. If a node with n neighbors receives a message and does not broadcast it, but then does not receive the message from at least m neighbors within a reasonable timeout period, it broadcasts the message to all its neighbors. The obvious question here is what m should be. If m is chosen too large, then we may end up with too many messages. Our experiments show that we actually get the most significant performance improvement by taking m=1 . Let GOSSIP3(p,k,m) be just like GOSSIP1(p,k) , except for the following modification. A node that originally did not broadcast a received message (because its coin landed tails), but then did not get the message from at least m other nodes within some imeout period, broadcasts message immediately after the timeout period. (The choice of timeout period can be taken quite small. We discuss this issue in details in Section 6.) It may seem that such rebroad casting can significantly effect the latency of the message. However, as the experiments discussed below show, if the parameters are chosen correctly, latency is not a problem at all. As Fig. 6 shows, the performance of GOSSIP3(0.65,4,1) is even better than that of GOSSIP1(0.75,4). However, GOSSIP3(0.65,4,1) sends only 67% of the messages sent by flooding. By way of contrast, GOSSIP1(0.75,4) sends 75% of the messages sent by flooding. Thus, we get better performance using GOSSIP3 while sending 8% fewer messages. To examine the effect of GOSSIP3 on latency, we recorded the number of timeout intervals a message experienced, using a variable L , which was augmented every time a message was forwarded after a timeout. Among all the messages sent by GOSSIP3(0.65,4,1), only 2% have L >= 1 . Among these messages with L>= 1 , 95% of them have L <= 2 . Thus, it seems that latency is not significantly affected by this modification. 4.3. Retries However, when using a gossiping protocol, there is always a possibility that a route will not be found even if it exists. Of course, there is a simple solution to this problem: simply retry the protocol. Thus, for example, the probability of finding a route within two attempts to a node at distance 25 using GOSSIP1(0.65,4) in the random network with average the out degree 8 is 0.95: the probability of a node not receiving a message in any given execution of the protocol is 0.23, and executions are independent. With retries, the bimodal message distribution works significantly to our advantage. As we observed, with GOSSIP1(0.65,4), in 72% of the executions, almost all nodes get the message. If we pick a destination at random, in those executions where almost all nodes get the message, the destination is likely to get the message and a retry will not be necessary. On the other hand, in tho se executions where hardly any nodes got the message, a retry will probably be necessary. However, such failing gossip attempts do not involve too many transmissions, since most nodes do not get the message in the first place. Of course, retries increase latency, even if they do not significantly increase the number of messages sent. This is especially true in large networks, where Note that parameters , Pr, and can be set adaptively as follows so as to minimize the number of messages. Let Ns denote the mean number of acknowledgments received if a route reply is successfully received, and let Nf denote the average number of acknowledgments received if a route reply is not received. Â¢ If both Nf < c and Ns <c , this suggests that is set too high, so we decrement by 1. Â¢ If both Nf >= c and Ns >=c this suggests that gossiping does not die out after hops whether or not it is ltimately successful, so we increment by 1.Â¢ If Nf >= c and Ns>= c, this suggests that c and h are set appropriately. We can try decrementing Pr slightly, say by 0.05, to see if we can still obtain this behavior while reducing the number of acknowledgments that need to be sent. 4.3. Zones One of the bestknown optimizations to flooding is the zone routing protocol (ZRP) [12]. In ZRP, each node u maintains a socalled zone, which consists of all the nodes that are at most p hops away from , for some appropriately chosen zone radius . A node that is exactly hops away from is called a peripheral node of . A node proactively tries to maintain complete routing tables for all nodes in its zone. Initially, a node discovers who its neighbors are and then broadcasts the identity of its neighbors to its zone (by using flooding up to hop count ). Then each time it discovers a change (i.e., that it has lost or gained a neighbor), it broadcasts an update. This procedure ensures that a node has an accurate picture of its zone. If a source wants to send to a destination in its zone, it simply routes the message directly there, since it already knows the route. Otherwise, it sends a route request query to the peripheral nodes in its zone. If the destination is in a peripheral nodeâ„¢s zone, the peripheral node replies with the route to the query originator. Otherwise, it forwards the query to its peripheral nodes, which in turn forward it to their peripheral nodes, and so on. In the context of ZRP, there are two advantages of maintaining a zone. First, if a node is in the zone, looding is unnecessary; a message can be sent directly to the intended recipient, saving much control traffic. This brings about a significant improvement in overall performance if a substantial fraction of nodes are in the zone (which is likely to be true in a small network, but far less likely in a large one). Second, if we want to send a message outside the zone, we can multicast to the boundary of the zone (or a subset of the nodes on the boundary), which can be a significant saving over flooding. However, there is a tradeoff in choosing the size of the zone: a larger zone benefits more Comparing Fig. 7(b) to Fig. 7(a), we see that using a zone radius of 4 with gossiping probability 0.65 in the random network with the average degree 8 improves the performance by only a few percent over most of the distances. However, it does ameliorate the backpropagation effect. As shown in Fig. 7©, increasing the zone radius to 8 does not significantly improve the limiting performance, but it has an even more beneficial effect on the backpropagation problem. The situation is much different for smaller networks. Here zones can have a significant impact. For example, if we use gossip probability 0.65 in a random network with 100 nodes and average degree 13, the network is too small for the bimodal effect to show up. However, the backpropagation problem is significant. INCORPORATING GOSSIPING IN AODV How much does gossiping really help in practice? That depends, of course, on issues like the network topology, mobility, and how frequently messages are generated. We believe that in larger networks with high mobility many of the optimizations discussed in the literature will be much less effective. (We discuss this point in more detail below in the context of AODV.) In this case, flooding will occur more frequently, so gossiping will be particularly advantageous. However, as our results show, gossiping can provide significant advantages even in small networks. To test the impact of gossiping, we considered AODV, one of the moststudied ad hoc routing protocols in the literature. We compared pure AODV to a variant of AODV that uses gossiping instead of flooding whenever AODV would use flooding. We do not have the resources to simulate the protocols in very large networks. However, our results do verify the intuition that, with high mobility (when flooding will be needed more often in pure AODV), gossiping can provide a significant advantage. 5.1. A Brief Overview of AODV Using AODV, the first time a node requests a route to node v , it uses an expandingring search to find the route. That is, it first tries to find the route in a neighborhood of small radius, by flooding. It then tries to progressively find the route in neighborhoods of larger and larger radius. If all these attempts fail, it resorts to flooding the message through the whole network. The exact choice of the neighborhood radii to try is a parameter of AODV. Typically, not too many radii are considered before resorting to flooding throughout the network. AODV also maintains routing tables in the network nodes where it stores the routes after they have been found. If AODV running at node gets any packet with source and destination, the route in the routing table will be tried first. If any node w on the route from u to detects that the link to the next hop is down, then w generates a route error (RERR) message, which is propagated back to . When u receives the RERR message, it deletes the route to from its routing table. 5.2. GOSSIP3 in AODV Our application traffic is CBR (constant bit rate). The source destination pairs (connections) are chosen randomly. The application packets are all 512 bytes. We assumed a sending rate of 2 packets/s and 30 connections. For mobility, we use the randomwaypoint model [5] in a rectangular field, as modified by Yoon [30]; to prevent mobility from going asymptotically to zero, the minimal speed is set to 1. In the simulations, 150 nodes are randomly placed in a grid of 3300 mÃƒâ€” 600 m; we chose this layout because in some sense it provides a worstcase estimate of the performance of gossiping. For this layout the gossip threshold is approximately 0.65.With other more square layouts, such as 1650Ãƒâ€”1200, it is possible to gossip with lower probability (closer to 0.5).In the ns2 implementation of AODV, first a neighborhood radius of 5 hops is tried; if no route is found, networkwide flooding is used. We study the performance of the following four metrics, of which the first three were also studied in [8]. The packet delivery fraction is t he ratio of the number of data packets successfully delivered to the number of data packets generated by the CBR sources. Â¢ The average endtoend delay of data packets includes all possible delays caused by buffering during routing discovery, queuing at the interface queue, retransmission at the MAC layer, propagation, and transfer time. Â¢ The normalized routing load represents the number of routing packets transmitted per data packet delivered at the destination. Each hopwise packet transmission is counted as one transmission. Â¢ The route length ratio compares the shortest route length found to the actual shortest route length. First, we investigate the impact of mobility and network congestion on gossiping CONCLUSION Despite the various optimizations, with floodingbased routing many routing messages are propagated unnecessarily. We show that gossiping can reduce control traffic up to 35% when compared to flooding. Since the routes found by gossiping may be up to 10%â€œ15% longer than those found by flooding (depending on the gossip probability), how much gossiping can save in terms of overall traffic depends on the gossip probability used, node mobility, and the type of messages sent. With high mobility, new routes will have to be found more frequently, and the savings will be relatively larger. In addition, if messages are mainly networkwide broadcasts, rather than pointtopoint, gossiping may result in significant savings over flooding. (Note that with gossiping, in general, a small fraction of the nodes will not get the broadcast. However, in certain applications, such as route discovery, for example, it may suffice that almost everyone gets the message, or the contents of broadcast k can be piggybacked with broadcast k+1 , so that the probability of missing a message altogether becomes very low.) Our protocol is simple and easy to incorporate into existing routing protocols. When we add gossiping to AODV,simulations show significant performance improvements in all the performance metrics, even in networks as small as 150 nodes. Gossiping has a number of advantages over other approaches considered in the literature. While there are fundamental limits to the amount of non local traffic that can be sent in large networks, due to problems of scaling, gossiping should still be useful in large networks when non local messages need to be sent. It is far less clear how well other optimizations considered in the literature will perform in large networks. it can be embedded into the route request packet. Each intermediate node receiving the packet will gossip with the probability carried in the route request packet. Our preliminary experiments have shown that this approach does produce good results, although we have not had enough experience to determine the best way of making these adjustments to the gossip probability; we leave this for future work. . Moreover, as our simulations with AODV have shown, gossiping can provide significant advantages even in small networks. Experience in other contexts has shown that gossiping is also quite robust and able to tolerate faults; we expect that this will be the case in ad hoc routing as well. All this suggests that gossiping can be a very useful adjunct to the arsenal of techniques in mobile computing. Of course, work needs to be done in finding good techniques to learn the appropriate gossip parameters. 7. ACKNOWLEDGEMENT The authors would like to thank Jon Kleinberg for suggesting the relevance of percolation theory, Harry Kesten for explaining the relevant results of percolation theory, and Alan Demers for many useful comments. AUTHOR PROFILE R.Saravana received the B.E. degree in Electrical and Electronics Engineering from Madurai kamaraj University, India, in 1994, the M.E. degree in Computer Science and Engineering from Madurai Kamaraj University, India, in 2000, and currently pursing his Ph.D. in the area of Mobile Computing from Anna University, India. His research interests are in wireless networking and mobile computing. He has 7 years of teaching experience and presently he is HOD in CSE dept, P.S.N.A.C.E.T, Dindigul. He has published 6 papers in conferences both in National and International. He has been a member of IEEE since 2000. REFERNCES [1] S. Basagni, I. Chlamtac, V. R. Syrotiuk, and B. A. Woodward, A distancerouting effect algorithm for mobility (DREAM), in Proc. ACMMobiCom, 1998, pp. 76â€œ84. [2] J. Broch, D. A. Maltz, D. B. Johnson, Y. C. Hu, and J. Jetcheva, A performance comparison of multihop wireless ad hoc network routing protocols, in Proc. ACM MobiCom, Oct. 1998, pp. 85â€œ97. [3] S. R. Das, C. E. Perkins, and E. M. Royer, Performance comparison of two ondemand routing protocols for ad hoc networks, in Proc. IEEE INFOCOM, Mar. 2000, pp. 3â€œ12. [4] Z. Haas and M. Pearlman, The performance of query Naresh Sammeta received the B.E. degree in Computer Science and Engineering from Madras University, India, in 2004, currently doing M.E final year in Computer Science and Engineering in P.S.N.A.C.E.T ,Dindigul from Anna University, India, (20052007). His research interests are in networking with a focus on wireless networking and mobile computing. control schemes for the zone routing protocol, in Proc. ACM SIGCOMM, 1998, pp. 167â€œ177. [5] X.Y. Li, K. Moaveninejad, and O. Frieder, Regional gossip routing for wireless ad hoc networks, Mobile Networks and Applications (MONET), vol. 10, no. 1â€œ2, pp. 61â€œ77, 2005. [6] C. E. Perkins and E. M. Royer, Adhoc ondemand distance vector routing, in Proc. 2nd IEEE Workshop on Mobile Computing Systems and Applications, 1999, pp. 90â€œ100 . [7] The UCB/LBNL/VINT Network Simulatorns (Version 2).VINT proj. [Online]. Available: isi.edu /nsnam/ns B. Tuch, Development of WaveLAN, an ISM band wireless LAN, AT&T Tech. J., vol. 72, no. 4, pp. 27â€œ33, 1993. Use Search at http://topicideas.net/search.php wisely To Get Information About Project Topic and Seminar ideas with report/source code along pdf and ppt presenaion



