Bugzilla – Bug 1606
strange behaviour of route error messages generated in large scale network
Last modified: 2013-08-16 01:47:23 EDT
I found that AODV in the large scale scenario, say 200 nodes, 10-20m/s, 10-20 connections, route error messages (if occured) kept increasing after stopped sending the traffic (say, CBR). My solution is similar to those suggested in Bug 388 and Bug 912, i.e. put a random variable in RouteErrorRateLimitTimer, something like that: Time = t = Time (0.01*MiliSeconds(m_uniformRandomVariable -> GetInteger(0,100))) m_rerrRateLimitTimer.Schedule(Seconds(1) - t)); Then the problem is fixed. does somewhere else in AODV have the same problem? my simulation still cannot work well in very large scale.
I found that route error messages (if existed) are still alive and keeps forwarding. This causes throughput decreasing gradually in dense network and never restore. .... Second 70, Send 380, Received 326, Route error 0, Throughput 26.7059Kbps Second 80, Send 770, Received 695, Route error 0, Throughput 30.2285Kbps Second 90, Send 1160, Received 1043, Route error 0, Throughput 28.5082Kbps Second 100, Send 1550, Received 1390, Route error 0, Throughput 28.4262Kbps Second 110, Send 1940, Received 1528, Route error 13, Throughput 11.305Kbps Second 120, Send 2330, Received 1641, Route error 180, Throughput 9.25696Kbps Second 130, Send 2723, Received 1725, Route error 348, Throughput 6.88128Kbps Second 140, Send 3114, Received 1753, Route error 832, Throughput 2.29376Kbps .....
Could you post the simulation code? I will take a look.
Created attachment 1540 [details] Simulation code If you run the cod bye: ./waf --run "scratch/myaodv --time=240 --velocity=30 --size=100 --seed=3". The result looks like: Creating 100 nodes the area of 1000x1000 m2. Clients are connecting to Servers Starting simulation for 240 s ... Second 0, Send 0, Received 0, No route 0, Route error 0, Throughput 0Kbps Second 10, Send 0, Received 0, No route 0, Route error 0, Throughput 0Kbps Second 20, Send 0, Received 0, No route 0, Route error 0, Throughput 0Kbps Second 30, Send 0, Received 0, No route 0, Route error 0, Throughput 0Kbps Second 40, Send 0, Received 0, No route 0, Route error 0, Throughput 0Kbps Second 50, Send 0, Received 0, No route 0, Route error 0, Throughput 0Kbps Second 60, Send 0, Received 0, No route 0, Route error 0, Throughput 0Kbps Second 70, Send 115, Received 71, No route 4, Route error 0, Throughput 5.81632Kbps Second 80, Send 310, Received 244, No route 4, Route error 0, Throughput 14.1722Kbps Second 90, Send 506, Received 439, No route 4, Route error 0, Throughput 15.9744Kbps Second 100, Send 701, Received 629, No route 4, Route error 0, Throughput 15.5648Kbps Second 110, Send 896, Received 796, No route 4, Route error 0, Throughput 13.6806Kbps Second 120, Send 1092, Received 950, No route 5, Route error 0, Throughput 12.6157Kbps Second 130, Send 1287, Received 1119, No route 5, Route error 0, Throughput 13.8445Kbps Second 140, Send 1482, Received 1224, No route 13, Route error 3, Throughput 8.6016Kbps Second 150, Send 1678, Received 1250, No route 25, Route error 267, Throughput 2.12992Kbps .......... If seed no. changed such that no route errors generated, it will be ok.
Thank you so much Daniel.
It seems to me packets are still forwarding when detected a link break.
Daniel, Could you show me which code to drop packets when detected a link break?
Do you mean SendRerrWhenBreaksLinkToNextHop?
...but I think data packets still forwarding when a link break detected. If you look at results above and double check my code: "No route" and "Route error" mean packets are dropped due to no routes found or route errors appear. Packets dropped because of route errors increase again and again cause throughput down to zero and never get back.
Could you provide an explicit example of the problem? I looked at how AODV works and it looks fine to me. My impression is that the RERR messages will be re-broadcast if they contain more than one destination, which result in the RERR explosion. But I think that is correct according to AODV specification?
Theoretically I agree. I mean the problem may come from the code implementation not the protocol, but I have no idea what and where it is. Look at the packets dropped due to route errors/link breaks in STATIC scenario below. Scenario: nodes= 100; traffic_connections=10; data rate=32Kbps; area=1500x300m2; simulation_time=200s; pause=200s; seed no.=7. Creating 100 nodes the area of 1500x300 m2. Clients are connecting to Servers Starting simulation for 200 s ... Second 0, Send 0, Received 0, No route 0, Route error 0, Throughput 0Kbps Second 10, Send 0, Received 0, No route 0, Route error 0, Throughput 0Kbps Second 20, Send 0, Received 0, No route 0, Route error 0, Throughput 0Kbps Second 30, Send 0, Received 0, No route 0, Route error 0, Throughput 0Kbps Second 40, Send 0, Received 0, No route 0, Route error 0, Throughput 0Kbps Second 50, Send 0, Received 0, No route 0, Route error 0, Throughput 0Kbps Second 60, Send 0, Received 0, No route 0, Route error 0, Throughput 0Kbps Second 70, Send 1461, Received 386, Packet dropped 201, Throughput 7.90528Kbps Second 80, Send 3028, Received 676, Packet dropped 531, Throughput 5.9392Kbps Second 90, Send 4592, Received 836, Packet dropped 1198, Throughput 3.2768Kbps Second 100, Send 6158, Received 1025, Packet dropped 1928, Throughput 3.87072Kbps Second 110, Send 7722, Received 1146, Packet dropped 2505, Throughput 2.47808Kbps Second 120, Send 9287, Received 1253, Packet dropped 3268, Throughput 2.19136Kbps Second 130, Send 10853, Received 1380, Packet dropped 4130, Throughput 2.60096Kbps Second 140, Send 12415, Received 1463, Packet dropped 4496, Throughput 1.69984Kbps Second 150, Send 13980, Received 1528, Packet dropped 5331, Throughput 1.3312Kbps Second 160, Send 15547, Received 1600, Packet dropped 6305, Throughput 1.47456Kbps Second 170, Send 17111, Received 1676, Packet dropped 7454, Throughput 1.55648Kbps Second 180, Send 18676, Received 1762, Packet dropped 8574, Throughput 1.76128Kbps .... Packets dropped above due to route errors while the network was static. Why?
Bug1522, 1190, 1629 are marked resolved. Please re-open this bug if the problem still exists and please attached code to reproduce it