Hang Cheng Tomislav Nad Mirtcho Spassov 1. TEST PROTOCOL 1.1 Analysis The protocol can be divided up into three separate phases, the session setup, the contract transmission, and the data transmission. They will each be analyzed and discussed in order. First, the goal of the session setup phase is to accurately determine the minimum power level necessary for the nodes in the (LCP) least-cost-path to forward the packets and what nodes make up the LCP. First, in order to for each node to determine the minimum necessary power level, it will begin transmission of test packets starting at the lowest power level and repeatedly transmit the same packet with increasing power level until it reaches the maximum power level. These test packets contain the power level they are transmitted at. As soon as another node receives the first packet for the particular session, it will begin doing the same thing. The resulting flood will eventually reach the destination. As each packet comes in, the destination node will record the power level they were transmitted at in a matrix. Next, after a set period of time, the destination node will run Dijistra’s Algorithm to determine the LCP based on the cost matrix. Finally, this is used to determine the payment to each node on the LCP based on the VCG algorithm. Therefore, the session setup phase is nothing more than a way of replacing the oracle in the original VCG algorithm. There are, however, several important disadvantages to this protocol. Because the destination node, which took the place of the oracle, must receive all the information from other nodes in the network, the traffic from each node to the destination must be encrypted to prevent the manipulation of the data. Otherwise, a node can conceivably pretend to be another node and make a route seem more expensive than it really is. More importantly, the free flooding of the network can lead to a few undesirable scenarios. First, the nodes that participate in the flooding do not get compensated for transmitting their packets and forwarding packets. Now, suppose that there are many increments in the power levels. Then each node must send as many packets as there as power levels. This can be very costly. The nodes can conceivably have only a few coarse-grain power levels but then they can end up transmitting at power levels higher than what is necessary. Next, a single malicious node can repeatedly request new sessions with new destinations nodes and thus be able to cause repeated flooding of the entire network. This can easily drain all the energy of the nodes and is of special concern because networks that use this protocol might be doing it to conserve energy. In general, there can be many instances of unnecessary flooding. For example, if two nodes are relatively close to each other, the entire network will still be flooded even when the destination already has the LCP. In addition, every new session results in the flooding of the network even if the two nodes communicate with each other frequently. Therefore, under some scenarios, this protocol can drain the energy of non-LCP nodes even without any malicious nodes. This can be especially damaging for networks that frequently send small amounts of information. In such cases, the overhead is much greater than the data itself. 1 Hang Cheng Tomislav Nad Mirtcho Spassov Furthermore, if there is any mobility or frequent changes in LCP, this overhead can be quite prohibitive since LCP discovery is costly to the network as a whole. Lastly, a somewhat far-fetched scenario can involve the source and destination colluding. The source can pick “r” such that it is actually a small section of the data it needs to send to the destination. It initiates the session setup and the packet eventually reaches the destination, which decrypts the packets and gets “r”. The destination will send out a contract the LCP. When the contract reaches the source, it will not sign it but simply regard it as an acknowledgement. This scenario is only really practical if there is only a very small amount of information to send each time. Since flooding the network is free, the colluding nodes will not incur any charge. Next, during the contract transmission phase, each node along the LCP is forwarded contracts from the destination. Each node along the LCP has an incentive to forward it until it reaches the source because otherwise transmission will not begin and they will not get paid. The purpose of these is to inform the nodes the lowest necessary power level they must use since the destination node is the only node that actually knows which power level succeed in transmitting the test packets. It also ensures that the source node can examine and agree on the proposed payment. This phase is very simple and there is only one apparent problem with this. Suppose that the destination is malicious and decides to use a path that is not the LCP. The source node has no way of knowing that there are cheaper paths. Furthermore, there is no incentive for the destination node to be honest because it does not have to bear the burden of paying for the traffic. In fact, there might be an incentive for it to be dishonest because it would cost less to use any path it finds instead of spending the necessary processor cycles to find the LCP. Therefore, this problem exists even when the destination node is not malicious but simply greedy. The last phase is data transmission, which addresses three issues. The first issue is obviously the actual transmission of the data and is easily addressed. The second issue is the fair compensation of the nodes involved the transmission. The last issue is the confirmation of successful transmission of the packets and preventing disagreements over this. The second issue is addressed by having the source include secret information in the last packet of each block of packets that only the destination can read. This information, the confirmation, can be used to easily generate a hash but cannot be easily derived from the resulting hash. When the destination node receives the hash with the last packet, it decrypts the confirmation and sends it back along the LCP. Each node sends it back along the LCP to other nodes. Unless the nodes receive the confirmation for the block they have just forwarded, it will not begin forwarding the next block. Therefore, each node has an incentive to send the confirmation back so more blocks can be forwarded in the future. Each node then verifies the confirmation and submits it to the system to receive payment from the source node if it is the last confirmation received. In regards to the last issue, suppose if some packets in the (k+1) block has been transmitted but the confirmation is never received, the nodes that did not receive the confirmation will submit the contract and the source will be charged as thought the block was successfully transmitted but the payment is never given to the intermediate nodes. This takes away 2 Hang Cheng Tomislav Nad Mirtcho Spassov any incentive for either party to lie about the receipt of confirmation. In order for this method to work correctly, it must be assumed that the system will periodically give money to nodes. Otherwise, a malicious destination node can refuse to send the confirmation. This will result in the intermediate nodes never receiving any payment and the source node being deducted money. The net result is money being drained from the network economy. If a group of malicious destination nodes does this repeatedly without money being given back to the nodes by the system, all the other nodes will eventually have a zero balance. This will prevent other nodes from transmitting their traffic and allow the malicious nodes to dominate the network. Even without malicious nodes, repeated lost of confirmations can also lead to the draining of the network economy. However, this assumption also creates a problem. If money is injected into the economy too quickly, then there is no incentive for the nodes to carry traffic for other nodes because the money it spent will be replenished anyways. If the money is slowly injected into the economy, then the above scenario can still happen because of repeated nonreceipts of confirmations or malicious nodes causing the economy to drain faster than it is replaced. 1.2 Utility If a node is following the protocol, its utility will vary depending on the number of control messages it sends, the amount it pays to network for propagation of its data, the amount of data it receives, and the amount it gets overpaid for forwarding data from other nodes. For each session, during session setup phase each node (except destination) will have to use MAXPOW ER i CONTROLPOW ER * r i 1 power, where r is number of ROUTEINFO messages node will have to forward. During contract transmission and data transmission phases, each node on LCP path will have to forward contract message, data messages, and confirmation messages. For intermediate nodes, total utility during these phases is overpayment * M MAXPOWER * ( k 1) where overpayment is overpayment node receives for each data packet that it forwards, M is total number of data packets, and k is number of data blocks. During each session in which a node is destination, it will have to send contract message through LCP and will have to send confirmations for each data black. Cost to destination node will be MAXPOWER*(k+1). If a node is sending data, cost to it will be M*p(S, D), where p(S, D) is payment it gives to network to transfer one data packet to destination D. Total utility of a node following the protocol is 3 Hang Cheng Tomislav Nad Mirtcho Spassov l * (overpayment * M MAXPOWER * ( k 1)) i * ( MAXPOW ER i CONTROLPOW ER * R ) i 1 d * MAXPOWER * ( k 1) s * M * p( S , D ) where l is number of sessions the node is on LCP, i is number of sessions the node is intermediate node, d is number of sessions the node is destination node, and s is number of sessions the node is source node. We believe this protocol will work best on sparse networks and when nodes send large bursts of data. On dense networks and when nodes send only a few packets at a time, cost of control messages will significantly lower utility of all nodes in network. 1.3 Computational overhead Computational overhead in this protocol comes from hashing, checking digital signatures, encrypting/decrypting and running Dijistra's Algorithm. Hashing and checking digital signatures are cheap compared to encryption so we ignore them in our analysis. During setup phase each node in network except S and D has to encrypt 1 message. However, destination, which has to decrypt n-2 messages, where n is number of nodes in network, which could be a bottleneck. During data transmission phase, S performs k encryptions, and D performs k decryptions, where k is number of data blocks. There are O(n+k) encryptions/decryptions in entire system. However, a cheap encryption algorithm could be used because data has to be protected only for a relatively short period of time. Possible bottleneck could be destination node, which has to perform total of n+k encryptions/decryptions. 1.4 Communication overhead During session setup phase, each node except destination broadcasts TESTSIGNAL messages, for total of ( n 1) * MAXPOW ER 1 i 1 TESTSIGNAL messages in the network, where n is number of nodes in the network. Total power used for sending these messages is ( n 1) * MAXPOW ER i i 1 Each link in network has a ROUTEINFO message associated with it, which propagates along control path from link to destination node. There will be total of l ( m, D ) m ROUTEINFO messages in the system, where m is number of links in network, and l(m, D) is length of control path from link m to destination node D. Total power used by sending ROUTEINFO messages is 4 Hang Cheng Tomislav Nad Mirtcho Spassov CONTROLPOWER * l (m, D) m In contract transmission phase, l(S, D) messages will be used to send contracts. MAXPOWER*l(S, D) power will be used to send these messages. During data transmission phase, total of k*l(S, D) confirmation messages will be sent, where k is number of data blocks. Network will use total of MAXPOWER*k*l(S, D) power to send confirmation messages. Total power used for control messages during entire session is ( n 1) MAXPOW ER i i 1 CONTROLPOW ER l ( m, D ) MAXPOWER * ( k 1) * l ( S , D ) m Assuming MAXPOWER << n, total number of control messages per session is O(k+n+m2). We used GloMoSim to measure communication overhead of test protocol. In our simulated environment, in a dense network of 20 nodes, total of 99.1% of power was used for communication messages. 2. NEW STIMULATION PROTOCOL Our proposed modification seeks to address the issue of network flooding, both malicious and non-malicious, during session setup. Each node will maintain a table of source and destination node pairs. This table will record the reputation of each pair and start out at a predetermined level. Every time a node receives a packet from the same pair, the reputation is decremented. However, each time a node receives a confirmation for carrying traffic from the source to the destination, it increases the reputation of the pair by some amount. The reputation is capped at some predetermined, perhaps twice of the starting level. If the reputation of the source destination pair ever reaches zero, the node will simply ignore new packets from the source destination pair. The reputation of the pair will be periodically reset to the beginning level so that if there is a new LCP it will be discovered. The key assumption here is that LCPs between two nodes are fairly stable over time with only periodic changes. Once the LCP has been established, it is generally unnecessary for other nodes to participate in the session setup flooding. Therefore, they will eventually stop participating in the session setup. However, the nodes along the LCPs will continue to receive and forward packets because they receive payments from the source. In situations without malicious nodes, this modification should decrease the amount of packets being flooded across the network during session setup. Consider the scenario when the network first come online and there is a source and a destination node. The source initiates a session setup by flooding its neighbors. The flood propagates and eventually reaches the destination. At this point, the reputation of the pair should be fairly low. Once the LCP is determined and the contracts signed, the source begins 5 Hang Cheng Tomislav Nad Mirtcho Spassov transmitting. When the first block reaches the destination, it sends back the confirmation and the reputation of the pair increases along the LCP. By the time everything has been transmitted, the reputation among the nodes along the LCP should be high. When the source has another series of blocks to send, it initiates session setup again. This time, however, the flooding is limited largely to the nodes along the previous LCP if the new session happens soon after. Otherwise, the reputation among the non-LCP nodes would be reset and the flood would propagate across the network. This is actually desirable because the chances of a new LCP should increase with time. Now suppose there is a malicious node using the session setup phase to flood the network. The node will randomly choose a destination node and initiate session setup. After the setup, the reputation will be very low. Since the malicious node is not actually paying any node, his neighbors will stop forwarding packets going to the destination. Therefore, it must choose a new destination and repeat the process until there is no destination left and the entire network stops communicating with it. Although the malicious node is still able to cause some flooding, this modification should result in a significant drop in the amount of flooding. The node is able to continuously flood the network without the modifications but can do so for only a limited amount of time after the modifications. The obvious problem with this is that the limit is proportional to number of nodes in the network. 3. Results and discussion We used GloMoSim to test the performance of our protocol versus the original protocol. The simulated environment consisted of a dense network of twenty nodes, but we expect our protocol would achieve similar performance increase on sparser or larger networks. As expected, as nodes learn reputation of other nodes, communication overhead significantly decreases. After two hours, our protocol needed almost five times less communication cost, which is control packets times power, than the original protocol. In the figure below, there was a 5% drop in the ratio of control messages to data messages, as it went from 11k data/1,216k control to 11k data/262k control. % of power used for communication messages 100 99 98 without reputation 97 with reputation 96 95 94 15 30 60 120 minutes 6 Hang Cheng Tomislav Nad Mirtcho Spassov While the modifications yielded significant results, there are areas that can be improved upon. First, instead of an array, the reputation can be recorded using a linked list or a heap that will slowly decay and restore the reputation. This should decrease the amount of space needed. More important, the variables such as how much reputation decrease and increase and how quickly they are restored can be more precisely calculated. These variables would probably be a function of the network size. In conclusion, the modifications resulted in a significant reduction in the amount of packets and power wasted during session setup. The results seem to improve over time. Therefore, for a network that is constrained by power, it would be worth implementing and further refining. 7