Bug 1606 - strange behaviour of route error messages generated in large scale network
strange behaviour of route error messages generated in large scale network
Status: RESOLVED FIXED
Product: ns-3
Classification: Unclassified
Component: aodv
pre-release
All Linux
: P3 major
Assigned To: ns-bugs
:
Depends on: 1190 1522 1629
Blocks:
  Show dependency treegraph
 
Reported: 2013-03-20 15:57 EDT by tran the son
Modified: 2013-08-16 01:47 EDT (History)
3 users (show)

See Also:


Attachments
Simulation code (15.57 KB, text/x-c++src)
2013-03-26 06:56 EDT, tran the son
Details

Note You need to log in before you can comment on or make changes to this bug.
Description tran the son 2013-03-20 15:57:49 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.
Comment 1 tran the son 2013-03-21 14:32:38 EDT
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
.....
Comment 2 Daniel L. 2013-03-25 19:07:44 EDT
Could you post the simulation code? I will take a look.
Comment 3 tran the son 2013-03-26 06:56:25 EDT
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.
Comment 4 tran the son 2013-03-26 06:58:16 EDT
Thank you so much Daniel.
Comment 5 tran the son 2013-04-05 14:34:04 EDT
It seems to me packets are still forwarding when detected a link break.
Comment 6 tran the son 2013-04-12 06:31:39 EDT
Daniel,

Could you show me which code to drop packets when detected a link break?
Comment 7 Daniel L. 2013-04-12 08:59:45 EDT
Do you mean SendRerrWhenBreaksLinkToNextHop?
Comment 8 tran the son 2013-04-12 10:12:39 EDT
...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.
Comment 9 Daniel L. 2013-04-22 11:41:31 EDT
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?
Comment 10 tran the son 2013-06-26 06:13:48 EDT
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?
Comment 11 John Abraham 2013-08-16 01:47:23 EDT
Bug1522, 1190, 1629 are marked resolved. Please re-open this bug if the problem still exists and please attached code to reproduce it