Congestion control algorithm for message routing in structured peer-To-peer networks

We presented a new solution for congestion avoidance in structured peer-to-peer networks. The proposed solution brings better query success rates and limits the amount of traffic within the system. It thereby demonstrates the ability to resolve local congestion and increase the throughput in the network. The advantage of our proposed solution is its simplicity in controlling congestion in Chord networks. Changing routing avoids bottlenecks, therefore increases the likelihood of success in query execution. Those changes affect only a small number of nodes (the congested nodes and the source nodes), therefore the number of packets and the secondary information needed to perform the changes and recovery processes is not large. Furthermore, selecting a node to replace a congested node as described above does not increase the number of nodes that each query must go through. Our proposed method was evaluated by simulations of a P2P network that is similar to real-world networks where the capacities of nodes are not identical, the queries set in nodes are uneven and the lifetime of nodes are not similar. The evaluation results show that our proposed solution performs better than the conventional Chord algorithm. However, our method still limits the replacement nodes to the adjacencies of a congested node without considering the node’s responsive capacity when selecting the replacement node. In addition, the changes may continue if the new destination node is congested as well. Therefore, if there is no mechanism to limit the number of changed routing table, the number of message packets may increase considerably when all the nodes of the network are in the congestion status. Moreover, changing the routing of packets cannot solve the congestion problem if the nodes of the network continue to push the query too quickly comparing to the network’s responsiveness. Despite some drawbacks, our approach can solve the problem of light congestion, especially in the case of local congestion, thereby increasing the responsive capacity of the network. Moreover, our approach can be combined with other congestion control methods using existing traffic control mechanisms to eliminate the possibility of network collapse when higher levels of congestion occur.

pdf15 trang | Chia sẻ: huongthu9 | Lượt xem: 431 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Congestion control algorithm for message routing in structured peer-To-peer networks, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Journal of Computer Science and Cybernetics, V.34, N.2 (2018), 145–159 DOI 10.15625/1813-9663/34/2/12723 CONGESTION CONTROL ALGORITHM FOR MESSAGE ROUTING IN STRUCTURED PEER-TO-PEER NETWORKS NGUYEN DINH NGHIA1, NGUYEN HOAI SON2 1People’s Security Academy 2VNU-University of Engineering and Technology 1nghiahvan@gmail.com  Abstract. In structured peer-to-peer (P2P) networks, every node must perform message routing to deliver query messages to destination nodes. Therefore, they often have to process a large number of query messages quickly and efficiently. When the number of query messages sending to a node exceeds its routing capacity, a local congestion on the node occurs and reduces the information pro- cessing of the other nodes in the network. This paper proposes a congestion control algorithm for message routing in structured P2P networks by changing the routing table of nodes in the network to route the packet to the destination without going through congested nodes. The performance of the proposed the method has been evaluated and compared with the conventional Chord protocol. The result shows that our proposed method improves the query success rate significantly while minimizing the number of packets generated during congestion control process. Keywords. Peer-to-peer, distributed hash, DHash, Chord. 1. INTRODUCTION Distributed hash tables (DHTs) are efficient routing algorithms for storing and searching data in structured peer-to-peer networks. DHT algorithms determine data location through an identifier (i.e. a key) in the identifier space. Each node is responsible for managing a subset of identifiers. The basic operation of a DHT is to search for an identifier and return the address (i.e. IP address and port number) of the node responsible for the identifier. Each node maintains a routing table to forward queries that it does not manage. DHTs, such as P-Grid [1], Chord [2] or Pastry [3] create routing tables to move the packet to the destination node. In recent years, DHT is used not only for file sharing applications but also to build peer-to-peer information Retrievals (P2P-IR) [4]. In P2P-IR systems, a DHT must handle concurrently a large number of messages in a short time, which significantly increases system load. Optimizing routing method in the DHT networks is an important requirement for P2P-IR systems. Furthermore, when a node receives a number of query messages that exceeds its routing capacity, a congestion occurs. If there is no proper congestion control mechanism, the next queries arriving or going through this node will create a congestion on the network that can make it collapse. DHT congestion control belongs to an upper layer and is independent of TCP congestion control mechanism. DHTs often choose greedy algorithms to route packets in the network where a node c© 2018 Vietnam Academy of Science & Technology 146 NGUYEN DINH NGHIA, NGUYEN HOAI SON always selects the nearest neighbor to forward the message to the destination node. The P2P networks are heterogeneous where the ability of the nodes to process packets is not the same, the stability of the nodes is not high and the nodes have to share the CPUs and the network resources for other processes that are running at the same time, etc. Therefore, selecting neighboring nodes to forward packets to the destination may not be responsive to the dynamical change of the system load in a DHT network. Researches in congestion control in P2P networks are either to limit the sending speed of the query sending nodes or to change the message route to avoid congestion. There are a number of studies on congestion control in P2P such as the CSCC [5], the BPCC [5] and the CCLBR [6]. Those methods have a common characteristic: they use a fixed routing table and perform congestion control by reducing the sending speed of the query node or by using alternative message route in the routing table while ignoring the nodes that have high processing capacity in the network. Therefore, they might reduce the transmission speed of the network when a congestion occurs. In this paper, we propose a new congestion control method in a structured P2P network by adapting the routing table of each node based on congestion status of next nodes in each message route. Whenever a node receives a query message, it first checks its congestion status based on the node’s routing capacity and then sends the status information back to the sending node if it is congested. Each sending node monitors congestion feedback information sent from congested nodes and replaces any congested node by a non-congested node in the message route. Our method allows nodes to quickly adapt routing to avoid overloaded parts of the network. Therefore, the method can efficiently use the throughput and resources of the non-congested nodes without affecting the routing performance of the whole network. The contributions of this paper are in three folds. Firstly, we propose a congestion detection method which is capable of detecting the congestion status of a node based on node routing capacity before the node discards query messages due to congestion. Secondly, when the congestion status of a node is detected, a congestion avoidance solution, which changes the routing table of nodes to efficiently re-route query messages to non-congested nodes, is proposed. Lastly, a post-processing method is proposed to gradually turn the network back to normal routing when the query rate reduces and congested nodes turn back to congestion-free status. The approach was evaluated through a number of experimental simulations, which simulate a real P2P network. In our simulation, the routing capacity of the nodes to join the network is heterogeneous and node churn is based on Pareto distribution. The simulation results show that our proposed method can achieve higher successful query rate than the original Chord protocol. This paper is structured as follows: Section 2 summarizes the relevant studies. Section 3 describes our proposed algorithm. Section 4 presents the analysis and evaluation of the algorithm. Finally, we provide some discussions and the conclusion in Section 5. 2. BACKGROUND 2.1. Chord protocol Chord protocol is a representative structured P2P network protocol. Chord uses a logical identifier namespace to manage data and computers in the network. The identifier of a computer (i.e. node) in a Chord network is a n-bits integer, which can be the return value of the SHA-1 hash function [7] on CONGESTION CONTROL ALGORITHM FOR MESSAGE ROUTING 147 N8 N15 N18 N24 N57 N48 N43 N35 N29 N10 K5 K61 K26 K38 K43 K49 K51 Finger Table of N8 Id x Target ID Successor 0 N8+ 1 N10 1 N8+ 2 N10 2 N8+ 4 N15 3 N8+ 8 N18 4 N8+16 N24 5 N8+32 N43 Figure 1. 8-bits Chord identifier space. Dashed lines indicate that the key is stored at that node. The black lines represent the cursors in the routing table of a node with the identifier of N8. The table on the right is the finger table of a node with the identifier of N8 the IP address and the port address of the computer. Data identifiers are computed as the hash value of data name or data content. The Chord network identifiers namespace includes integers ranging from 0 to 2n - 1 and is organized in a circle, also known as the Chord circle. Data with identifier k is stored at the node with identifier k, or node with the identifier next to k in a clockwise order. The node that manages data identifier k is called the successor of k and is denoted as Successor(k ). The next node of the node with identifier n (Id = n) in the clockwise order of the Chord circle is called the successor of node n, denoted as Successor(n). The previous node of the node with identifier n in clockwise order in the Chord circle is called the predecessor of node n, denoted as Predecessor (n). When a node n joins the Chord network, it will be assigned to manage data with identifier n (k = n) or with identifier preceding n in the clockwise order of the Chord circle. When a node n leaves the network, all data nodes managed by node n will be assigned to Successor (n). Figure 1 shows the Chord circle drawn with 6 bits identifiers (64 identifiers), consisting of 10 nodes and 7 keys. Successors of K5 and K61 are N8, hence keys K5 and K61 are stored at node N8. Similarly, key K26 is stored at node N29, keys K38 and K43 are stored at node N43 and keys K49, K51 are stored at node N57. Each node maintains a routing table (i.e. finger table) of m rows. Here m is the number of bits in the Chord identifier. In the routing table of node n, row i (the finger ith) contains node s with the identifier Id = successor (n + 2i -1) where 1 ≤ i ≤ m. Node s is the ith finger of node n (n.finger [i ]). Figure 1 also shows the finger table of node N8. The first finger of this node is the pointer to node N10 (the first node after the node (8 + 20 = 9)). Similarly, the last finger in the table is the pointer to node N43. 2.2. Conventional congestion control methods Studies related to congestion control in structured P2P networks have focused primarily on two directions: speed control and routing tables. In speed control, query sending rate is limited at the query node when a node in the routing path is overloaded. Typical methods include credit system 148 NGUYEN DINH NGHIA, NGUYEN HOAI SON congestion control (CSCC) [5], back-pressure congestion control (BPCC) [5] and Marking method [8]. In CSCC method, when a destination node receives a packet, it responds to the query node with an ACK packet. At the intermediate packet forwarding node, a queue is maintained to store incoming queries. When the queue reaches the threshold, subsequent incoming queries are discarded without informing the query sending nodes. Each node in the network maintains a credit parameter that indicates the number of queries that have been sent but has not yet received the ACK packet. If the credit is less than the threshold, the credit value continues to increase. If the credit reaches the threshold, the credit value will be increased more slowly with each received ACK packet. If a packet loss occurs, the threshold value will be reduced. When an outgoing packet is lost, the sending node re-sends the packet. CSCC works similarly to TCP congestion control. However, in structured P2P network CSCC operates with relatively complicated connection process with many transition nodes and low node’s stability. In this environment, it is difficult to calculate the timeout value to determine the lost packets. In addition, a packet can be received multiple times, so each node needs to reserve resources to keep a list of packets received from each sending node. CSCC performs packets dropping, thus results in decreasing the throughput of the network. In BPCC method, each node maintains a queue for incoming queries. When it receives a packet, if the queue reaches a limit, it sends its queue state to the sender. The sending node will automatically adjust the sending speed to avoid congestion. When the queue at a node P is full, it will suspend reading the packet from the TCP socket of incoming connections instead of rejecting the packet. Then the flow control algorithm in TCP automatically slows down the sending of queries to P. This method is at risk of deadlock formation. Deadlock occurs when a sending node waits for a receiving node to process packets in the queue while that receiving node has to wait for another node. BPCC does not drop packets, thus increases the throughput of the system. However, this method may raises deadlocks and it is very difficult to detect and handle those deadlocks, especially in a peer-to-peer environment that involves many free, uncontrolled nodes. In addition, the wait on the nodes increases the response time of the queries. In Marking method, each node organizes a queue for incoming queries and returns congestion status by adding a h flag to the packet header. The goal is to keep the resource shared to bottlenecked nodes fairly without overloading the congestion node. By default, the h flag is off when the query packet is created. Flag h off indicates a non-congested network state and vice versa. Each node adds an x value into the packet to represent its current query speed. Every node stores the average number of packets xavg, which is calculated on the received values from some previously coming packets. The h flag is enabled or disabled with probability q determined by considering whether the packet arrives at a faster or slower rate than the mean xavg and the average value of the queue size. When the flag h is turned on, it will not be turned off along the way to the final destination. The destination node copies the value of h to the ACK packet and returns it to the query sending node. When a node receives an ACK packet with the h flag being off, i.e. the network has no congestion, it will speed up the query. If the h flag is on, it decreases the speed of the query. Query speed is incrementally increased and exponentially decremented. Each node also stores an estimated RTT (round trip time) value for the query. The RTT value is calculated based on the time it is sent and the time its response is received. RTT values used for the entire network are independent of the destinations of the queries and are often very large. CONGESTION CONTROL ALGORITHM FOR MESSAGE ROUTING 149 After the duration of RTT, if a node does not receive the response for a query, it decreases the query sending speed and resends the query. Because the Marking method does not eliminate packets as well as the lightweight mechanism of sending congestion status to the source node, it results in better throughput and better query response time than the two methods CSCC and BPCC. In another direction, the routing table method is based on the status of each node. This approach changes the path of the packet to the less congested nodes. In adaptive routing method [9], instead of selecting the closest node to the key, it selects k nodes near to the key and monitors the performance of those nodes to determine the best path. The query sending node uses the congestion flag h to determine the usability of each routing path via the k node near the selected key. From the received h value, each node calculates the probability (called op) of observing h on each path. Based on this probability value, each node will move routing traffic through different paths to increase throughput across the network. A node updates the op values every time a new query is made. When a node forwards queries to other nodes, it divides traffic in different directions based on the calculation of the capacity of each route. A disadvantage of the adaptive routing method is that, when we want to increase the number of routing paths, we must increase the size of the routing table, which will consume resources of the system. In addition, the abandonment of greedy routing methods will increase the number of packets transmitted over the network. Other approaches include the CCLBR [6], the methods in [8], [10] and [11]. The CCLBR [6] proposed a resource grouping and a rewiring method to spontaneously organize and cluster the peers having similar resources together. Then, a collaborative Q-learning method is proposed to balance the query loads among the intragroup peers in order to intelligently avoid queries being forwarded to the congested peers in the network. The work [8] can achieve high network throughput, but each node has to spend its resources to manage the increase in the size of the routing table. The work [10] proposed a DHT-based routing mechanism to improve the performance of the smart grid. In another direction, the work [11] proposed a P2P traffic optimization model with congestion distance and introduced an optimization scheme based on congestion distance and Distributed Hash Table (DHT). Those methods have a common limitation: they use a fixed routing table and perform congestion control by reducing the sending speed of the query node or by using alternative message route in the routing table. Therefore, they do not make full use of the capacity of nodes that have high processing capacity in the network for congestion avoidance. 3. THE CA-CHORD METHOD In this section, we propose a congestion control method called CA-Chord, which can avoid message routing via congested nodes in structured P2P. In our method, when a congested node receives a query, it will notify the sending node (i.e. the source node or the forwarding node) so that the sending node will change the routing table by replacing the congested node with a neighboring node that is not in the congestion status. When a congested node changes back to the normal status, it will inform the nodes that already change their routing tables due to its congestion status to change the routing tables back to original entries. Our proposed method can avoid local congestion by utilizing the capacity of non-congested nodes for message routing, but does not increase hop count of routing message as well as affect the Chord 150 NGUYEN DINH NGHIA, NGUYEN HOAI SON network’s model and the size of the routing table. The CA-Chord method works as follows: Step 1. Congestion detection Each node in the system has a routing capacity C, which corresponds to the maximum number of query messages that a node can route per unit time. The C value of a node can be estimated based on the size of query messages and the bandwidth that can be used for message routing. For example, if the size of query message is 200Byte and the bandwidth of a node is 100Mps but a user sets the bandwidth used for message routing to be 10Mbps, then the routing capacity of the node is 6250 messages per second. If the incoming message rate to a node, which is calculated by counting the number of incoming messages per second, is over the routing capacity of the node, it will not process any more packets and the incoming packets are discarded. This state is called “hard congestion state”. In other words, the hard congestion state of a node indicates that the node is completely congested. To avoid packet loss due to hard congestion state, each node monitors the incoming message rate for early congestion detection. We define a parameter T called soft congestion threshold of a node as an indicator of congested status of the node. The soft congestion threshold is calculated as follows T = p ∗ C, (1) where p is a system parameter and 0 < p < 1. When the incoming message rate of a node reaches the soft congestion threshold, we consider that the node is congested. In this case, the node will trigger the congestion avoidance process but the incoming packets are handled as usual. This state is called “soft congestion state”. The value of the soft congestion threshold T affects the “sensitivity” of the congestion detection. If T is too small, the nodes will easily be considered as congested even if they are still capable of serving. On the other hand, if T is too large, the congestion processing is performed too late, leading to hard congestion state of the node and the drop of query messages. Hence, the value of the soft congestion threshold must be determined carefully based on experiments. Each node maintains a list of successor nodes that are not in the congestion status. When a node changes its state from non-congested state to congestion status or vice versa, it will inform nodes in its predecessor node list (as in conventional Chord’s protocol) about its state. These nodes will update their list of non-congested successor nodes when they receive the notification. Step 2. Congestion avoidance When a node in the “soft congestion” state receives a new message, it will carry out the following tasks to avoid message routing via the congested node. - The congested node sends a congestion notification message to the node that sends the packet to notify its congestion status and the information of the alternative node. Here, the first node in the list of non-congested successor nodes is selected as the alternative node. This selection method reduces the number of nodes (i.e. hop count) that the packet must pass through. Whenever a packet is sent to a congested node, if the sending node does not received any congestion notification message, the congested node will send a congestion notification message to the sending node and store the information of the sending node into its database to eliminate the redundancy of sending notification messages. CONGESTION CONTROL ALGORITHM FOR MESSAGE ROUTING 151 Table 1. The initial routing table of node Pi Idx Target ID Active Route Origin Route 1 Ni + 1 Pa Pa 2 Ni + 2 Pb Pb . . . . . . . . . . . . k − 1 Ni + 2k−1 Pk−1 Pk−1 k Ni + 2 k Pk Pk . . . . . . . . . . . . m Ni + 2 m Px Px Table 2. The routing table of node Pi after being modified Idx Target ID Active Route Origin Route 1 Ni + 1 Pa Pa 2 Ni + 2 Pb Pb . . . . . . . . . . . . k − 1 Ni + 2k−1 Pk−1 Pk−1 k Ni + 2 k Pt Pk . . . . . . . . . . . . m Ni + 2 m Px Px - When the sending node receives the congestion notification message, it replaces the congested node in the entry of its finger table with the alternative node. - New packets originally routed to the congested node now will be passed through a non-congested node in the new route. To change the routing table while retaining the information of original destination nodes for post- congestion process, each node maintains a routing table which contains information of both active route and origin route. The active route is an alternative used for message routing in case the origin route, which is inititally designed route, is congested. An example of congestion avoidance process is given as follows. Suppose that node Pi has an identifier of Ni, the initial routing table of node Pi is as shown in Table 1. When the node Pk is congested, if node Pi forwards a packet to node Pk, node Pk will notify its congestion status to node Pi. The routing table of node Pi then will be modified as shown in Table 2. Here, node Pt is the alternative node of node Pk in the finger table of node Pi. If there is a packet arriving at node Pi and the message will be routed to node Pk according to the original finger table, the query message will be forwarded to (according to the original Chord protocol): - Pt if the query key is not in the range of Pk and Pt, - Pk−1 if the query key is in the range of Pk−1 and Pt. Step 3. Post-processing after dealing with congestion When the state of a node changes from a congestion status to a normal state (i.e. the number of 152 NGUYEN DINH NGHIA, NGUYEN HOAI SON p8 p14 p21 p32 p0 p56 p51 p48 p42 p38 Lookup(54) k54 p8 p14 p21 p32 p0 p56 p51 p48 p42 p38 Lookup(54) k54 (a) (b) p8 + 1 p14 p14 p8 + 2 p14 p14 p8 + 4 p14 p14 p8 + 8 p21 p21 p8 + 16 p32 p32 p8 + 32 p42 p42 p8 + 1 p14 p14 p8 + 2 p14 p14 p8 + 4 p14 p14 p8 + 8 p21 p21 p8 + 16 p32 p32 p8 + 32 p48 p42 Figure 2. A normal query in Chord network (m = 8) incoming messages in a time unit is smaller than soft congestion threshold), the following operations will be performed. - The node that has just left the congestion status will send a congestion-free notification to the nodes that already received its congestion notification. - The node that receives the congestion-free notification will change the corresponding active route in the routing table to the original route. For example, when Pt receives a congestion-free notification from Pk, it then switches the entry of active route in its routing table back to Pk. When a node, say Pk, leaves the congestion status, it only selects a certain number (say z ) of nodes that already received its congestion notification to send the congestion-free notification in one time interval. That number z of nodes will directly affect the level of load recovery of the node. If the number z is set too small, it will cause the receiving node to return to normal routing state slowly. If it is set too high, it can make the non-congested node congested again easily. Consider a Chord network with 8-bit key space (64 identifiers) as shown in Figure 2. Node P8 performs a query with the key k = 54. When the system is operating normally, the finger table of node P8 is as shown in Fig. 2 (a). When node P42 is congested, it will announce the congestion status to node P8. P8 will change its finger table as shown in Fig. 2(b). On node P8, all routing paths via node P42 will be changed to P48 (the successor of P42). The number of nodes that the query must pass through is still 3, that is the number needed in the initial case. Assuming node P48 is in the congestion status. In the routing table of P8, node P48 will be replaced by P51. On node P8, assume that we need to query the key 49. Since key 49 belongs to the range [42, 51], the query will have to go through node P42 and be processed as normal. During operation, we assume that some nodes with routing table passing through node P42 have to change to other nodes when nodeP42 is congested. When P42 gets out of congestion status, the nodes whose routing table have been changed will be restored to the original status one by one. CONGESTION CONTROL ALGORITHM FOR MESSAGE ROUTING 153 4. ALGORITHM EVALUATION To evaluate the effectiveness of the proposed algorithm, we have performed a number of expe- riments and compared the result with the Chord algorithm. The experiments were evaluated on a simulated network that is similar to the real-world network. The simulated network consists of 4096 physical nodes and operates in discrete time using the input parameters of J. Ledlie [12]. Each time step includes scenarios: node entering/leaving the system, updating the route table, routing query messages. The node in and out of the system: At each step, nodes arrive and depart with the lifetime of the nodes based on Pareto birth/death distributions. We generated several Pareto birth/death distributions with average lifetime of a node set to be 15 minutes, 30 minutes, 1 hours, 2 hours and 3 hours. The simulation time is set to be 3 hours but we recorded statistics only for the second half of a simulation to avoid instabilities of simulation results. The routing capacity of a node is generated randomly from 1 to 399,999 query messages per second. The average routing capacity of a node is 8,000 query messages per second and is fixed for all the experiments. Update path finding table: each node in the system uses the Chord mechanism [2] to carry out its path finding table update. Query data: we generate random sets of query keys according to Uniform distribution and Zipf distribution with the query speed being 0.01, 0.1, 1, 10, 20 or 100 queries per second accordingly and store them in different query key files. Set of query keys is generated based on the Zipf distribution, which reflects the popularity of a query key based on a parameter called a rank. The probability that a key appears in the set of query keys is in proportion to 1/rα. Here, r is the rank of the key and is a random number between 1 and the total number of query keys, α is a constant number. In each simulation, we set the value of α among 0.8, 1.2, 2.4, 4.8. In each simulation, query keys are selected from query key files and randomly assigned to a query node. A query node sends the query message through multiple intermediate nodes on the routing path to the destination node responsible for the query key. If an intermediate node is in hard congestion, the query message is discarded and the query is considered failed. A query is considered successful if the query message reaches the destination node. We present and discuss the experimental results in following subsections. 4.1. Evaluation of query success rate This section presents our evaluation on the success rate of queries when we vary different para- meters, including the average lifetime of nodes in a network, the average number of queries set in a node, the T, and the Zipf distribution parameter. In the first experiment, the query keys set in each node are initialized as Uniform and Zipf distributions with the parameter α = 0.8. For each round of a simulation, we perform 20 queries per node and count the number of routing queries successfully by query nodes. The average lifetimes of a node are 15 minutes, 30 minutes, 60 minutes, 120 minutes and 180 minutes, respectively. For each lifetime of a node, a data file is created to keep track of the node’s entering and leaving. The parameter T of a node is set to 50% of the node’s routing capacity. The result is depicted in Figure 3. It shows that the success rate of our CA-Chord algorithm is higher than that of conventional Chord routing algorithm by 42% for Uniform queries and 37% for 154 NGUYEN DINH NGHIA, NGUYEN HOAI SON Figure 3. Percentage of successfully queries for varying rates of churn Figure 4. Percentage of successfully queries with varying loads Zipf queries. The second experiment studies the success rate of data queries when we change the average number of queries set in a node. The average lifetimes of a node is kept constant for 1 hour in the experiment. The parameter T of a node is set to 50% of the node’s routing capacity. Query keys are generated according to the Uniform and Zipf probability distributions with α = 0.8. Experimental results are depicted in Figure 4. When the number of queries per node is low, the number of congested nodes in the network is small. Therefore, the success rate of both routing algorithms is near 100%. When the number of queries per node increases (i.e. there exists overloaded nodes in the network) the conventional Chord algorithm has no mechanism for balancing processing, therefore the success rate decreases substantially. Our algorithm chooses another route to forward the query to the destination, therefore it increases the success rate of the queries. With the average number of queries set in a node of 100, the success rate of our algorithm is 32% and 41% better than Chord algorithm for Zipf and Uniform queries, respectively. The third experiment was conducted to evaluate the effect of soft congestion thresholds on the success rate of queries. The number of queries set in a node being 20 queries per second, and the CONGESTION CONTROL ALGORITHM FOR MESSAGE ROUTING 155 Figure 5. Percentage of successful queries with a varying soft congestion threshold average lifetime of a node being one hour. The T parameter of a node was changed to handle bottlenecks in a node. Query execution takes two forms: Uniform and Zipf distributions with α = 0.8. The results of the experiment are shown in Figure 5. When the T parameter of a node is set at a low value (lower than 30% routing capacity of a node) and high value (greater than 70% routing capacity of a node), the success rate of the queries is lowered when the T parameter of a node is between 30% and 70% of the routing capacity of a node. When the T parameter is set to a low value, nodes will switch to early congestion processing state, affecting the performance of the system. If the T parameter is set to a high value, the node will be in the late congestion processing state. In this case, the number of deleted packets increases. The CA-Chord achieves the best performance when the value of T parameter is 50%. The fourth experiment was conducted to evaluate the responsive ability of algorithms to the Zipf queries. The number of queries set in a node being 20 queries per second, the T parameter of a node being 50% of a node’s routing capacity, the lifetime of a node being one hour, and changed the Zipf parameter of the query with the values α of 0.8, 1.2, 2.4 and 4.8 respectively. The results of the experiment are shown in Figure 6. The results show that our algorithm performs better than the regular Chord algorithm on Zipf queries, with an average response rate of about 20% higher. When the parameter α is low (α = 0.8 and α = 1.2), the keys are equally distributed. Therefore, the conventional Chord and the CAChord algorithms achieve a high success rate. However, when the parameter α is high, the popularity of some keys increases. In this case, there are some keys that are frequently queried, while other keys are less frequently queried. Therefore, there exists the bottleneck in the nodes where they cannot process the queries, leading to a low query success rate. 4.2. Evaluation of query hop count In this section presents our evaluation on the hop count needed to forward a query. The average lifetime of a node being one hour, the T parameter of a node being 50% of a node’s routing capacity, and changed the number of queries set in a node to 0.01, 01, 1, 10, 100 queries per second. Query execution takes two forms: Uniform and Zipf distributions with α = 0.8. The results are shown in 156 NGUYEN DINH NGHIA, NGUYEN HOAI SON Figure 6. The effect of Zipf parameters on the query success rate Figure 7. The effect of the number of queries on the number of steps for forwarding the query Figure 7. When the number of queries set in each node is low, nodes in the network are not congested and the CA-Chord processes the queries similarly to the conventional Chord algorithm. The average number of steps to forward a query of the two algorithms is the same. When the number of queries increases, some nodes in the network are in the congestion status. The CA-Chord algorithm replaces the congested nodes by the non-congested nodes close to the key management node in the query path, therefore decreasing the number of hops to forward the query to the destination. Our algorithm performs slightly better than the conventional Chord algorithm. Second, we fixed the number of queries set in a node being 20 queries per second, the T parameter of a node being 50% of a node’s routing capacity, and changed the node’s lifetime. Query execution takes two forms: Uniform and Zipf distributions with α = 0.8. The results of the experiment are shown in Figure 8. When the lifetime of a node increases, i.e. the stability of the network increases, the number of steps for forwarding a query decreases. In both Zipf and Uniform queries, the number of steps to forward the query in our algorithm is smaller than that of the standard Chord algorithm. CONGESTION CONTROL ALGORITHM FOR MESSAGE ROUTING 157 Figure 8. The effect of a node’s lifetime on the number of steps to forward the query Figure 9. The effect of the number of queries on the number of congestion notifications 4.3. Evaluation of congestion notification message number The next experiment was conducted to evaluate the number of messages sent by a node in case of congestion. We fixed the T parameter of a node being 50% of a node’s routing capacity, the node lifetime being one hour and the number of queries set in a node to 0.01, 01, 1, 10, 100 queries per second. Query execution takes two forms: Uniform and Zipf distributions with α = 0.8. The results of the experiment are shown in Figure 9. The experimental results show that when the number of query messages set in a node increases, the number of congested nodes in the network increases, therefore the number of congestion notifications increases as well. The number of congestion notifications of Zipf queries is higher than that number of Uniform queries. 158 NGUYEN DINH NGHIA, NGUYEN HOAI SON 5. CONCLUSIONS AND FUTURE RESEARCH We presented a new solution for congestion avoidance in structured peer-to-peer networks. The proposed solution brings better query success rates and limits the amount of traffic within the system. It thereby demonstrates the ability to resolve local congestion and increase the throughput in the network. The advantage of our proposed solution is its simplicity in controlling congestion in Chord net- works. Changing routing avoids bottlenecks, therefore increases the likelihood of success in query execution. Those changes affect only a small number of nodes (the congested nodes and the source nodes), therefore the number of packets and the secondary information needed to perform the changes and recovery processes is not large. Furthermore, selecting a node to replace a congested node as described above does not increase the number of nodes that each query must go through. Our proposed method was evaluated by simulations of a P2P network that is similar to real-world networks where the capacities of nodes are not identical, the queries set in nodes are uneven and the lifetime of nodes are not similar. The evaluation results show that our proposed solution performs better than the conventional Chord algorithm. However, our method still limits the replacement nodes to the adjacencies of a congested node without considering the node’s responsive capacity when selecting the replacement node. In addition, the changes may continue if the new destination node is congested as well. Therefore, if there is no mechanism to limit the number of changed routing table, the number of message packets may increase considerably when all the nodes of the network are in the congestion status. Moreover, changing the routing of packets cannot solve the congestion problem if the nodes of the network continue to push the query too quickly comparing to the network’s responsiveness. Despite some drawbacks, our approach can solve the problem of light congestion, especially in the case of local congestion, thereby increasing the responsive capacity of the network. Moreover, our approach can be combined with other congestion control methods using existing traffic control mechanisms to eliminate the possibility of network collapse when higher levels of congestion occur. REFERENCES [1] K. Aberer. P-Grid, “A self-organizing access structure for P2P information systems”, Sixth In- ternational Conference on Cooperative Information Systems, 2001. [2] Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, and Hari Balakrishnan. Chord, “A scalable peer-to-peer lookup service for internet applications”, Proceedings of the 2001 Confe- rence on Applications, Technologies, Architectures, and Protocols For Computer Commu- nications, San Diego, California, United States, SIGCOMM ‘01. ACM, New York, NY, 2001 (pp. 149–160). [3] A. Rowstron and P. Druschel. Pastry, “Scalable, distributed object location and routing for large- scale peer-to-peer systems”, In IFIP/ACM International Conference on Distributed Systems Platforms (Middleware), 2001. [4] C. Tang and S. Dwarkadas, “Hybrid global-local indexing for efficient peer-to-peer information retrieval”, In NSDI, 2004 (pages 211224). CONGESTION CONTROL ALGORITHM FOR MESSAGE ROUTING 159 [5] F. Klemm, J.-Y. Le Boudec, and K. Aberer, “Congestion control for distributed hash tables”, In The 5th IEEE International Symposium on Network Computing and Applications (IEEE NCA06), 2006. [6] X. Shen, Q. Chang, L.Liu J. Panneerselvam, and Z. Zha: CCLBR, “Congestion control-based load balanced routing in unstructured P2P systems”, IEEE Systems Journal, vol. 12, no. 1, 2018, 802–813. [7] “Securehashstandard,” NIST, U.S. Dept. of Commerce, National Technical Information Service FIPS 180-1, April 1995. [8] F. Klemm, Jean-Yves Le Boudec, Dejan Kostic, and Karl Aberer, “Handling very large numbers of messages in distributed hash tables”, Proceeding COMSNETS’09 of the First International Conference on COMmunication Systems And NETworks, 2009. [9] F. Klemm, J.-Y. Le Boudec, D. Kostic, and K. Aberer, “Improving the throughput of distributed hash tables using congestion-aware routing”, In International Workshop on Peer-to-Peer Sys- tems (IPTPS), Ecole Polytechnique Federale de Lausanne (EPFL), Lausanne, Switzerland, 2007. [10] Z. Rehman, N. Shah, H. Rehman, and S. Kashan, “Implementation of DHT-Based Routing in Smart Grid”, International Journal of Open Information Technologies, ISSN: 2307-8162, vol. 6, no.1, 2018. [11] Q. He, Q. Dong, B. Zhao, Y. Wang, and B. Qiang, “P2P traffic optimization based on congestion distance and DHT”, Journal of Internet Services and Information Security (JISIS), vol. 6, no. 2, pp. 53–69, May 2016. [12] J. Ledlie, and M. Seltzer, “Distributed, secure load balancing with skew, heterogeneity, and churn”, In Proceedings of 24th Annual Joint Conference of the IEEE Computer and Comu- nications Societies, INFOCOM 2005, vol. 2, pp 1419-1430, March 13-17, 2005. [13] F. Bustamante and Y. Qiao. Friendships that last, “Peer lifespan and its role in P2P protocols”, In Eighth International Workshop on Web Content Caching and Distribution, Hawthorne, NY, October 2003. Received on July 06, 2018 Revised on August 21, 2018

Các file đính kèm theo tài liệu này:

  • pdfcongestion_control_algorithm_for_message_routing_in_structur.pdf