Received throughput issue with saturated traffic

794 views
Skip to first unread message

ns3 user

unread,
Oct 2, 2013, 3:43:03 PM10/2/13
to ns-3-...@googlegroups.com
Hello,

I am trying to simulate a Wi-Fi topology where I have a single AP (Constant Mobility) with four stations all at equal distance from the AP (so basically it is arranged in a circle topology). The thrupt for one of the station is okay but for other stations it drops significantly. After tracing the traffic through wireshark traces, I have found that the nodes (with low thrupt) do not receive any traffic after 0.2 seconds. Please help and advise about this. 

This is the output on the interface and the code file is attached

Flux 1 (192.168.1.1 -> 192.168.1.2)
  Tx Bytes :   18984240
  Rx Bytes :   3965220
  Bitrate  :   10.5933 Mbps

Flux 2 (192.168.1.1 -> 192.168.1.3)
  Tx Bytes :   18984240
  Rx Bytes :   59940
  Bitrate  :   3.09311 Mbps

Flux 3 (192.168.1.1 -> 192.168.1.4)
  Tx Bytes :   18984240
  Rx Bytes :   52920
  Bitrate  :   2.93331 Mbps

Flux 4 (192.168.1.1 -> 192.168.1.5)
  Tx Bytes :   18984240
  Rx Bytes :   46440
  Bitrate  :   2.85153 Mbps

test123.cc

Konstantinos

unread,
Oct 2, 2013, 4:03:40 PM10/2/13
to ns-3-...@googlegroups.com
Hi,

This has been addressed in the mailing list and also filed a bug report with some potential solution.
See how it is explained in the example examples/wireless/wifi-hidden-terminal.cc

Basically, it is a bug in the ARP. Just give a small diff in the starting time of the sending applications.

Regards,
K.

ns3 user

unread,
Oct 2, 2013, 5:27:24 PM10/2/13
to ns-3-...@googlegroups.com
Hi,

Thanks for the reply.

Could you please direct where it was posted on the mailing list? I have just joined this forum.

Also, could you please specify the small diff in start time? I have tried that before but the problem still exists. 

Also, I tried to run the posted solution but I get this message error:
RandomVariable deserialization not implemented for ns3", file=../src/core/model/random-variable.cc, line=2042
terminate called without an active exception

Thanks for your help,
A.

Konstantinos

unread,
Oct 2, 2013, 5:41:56 PM10/2/13
to ns-3-...@googlegroups.com
You have all your sending applications starting at the same time:

       source.Start(Seconds(1.0));

You should have a small 'jitter', it does not have to be random.
For example the first application starts at 1.0, the second at 1.01, the third at 1.02 etc.

ns3 user

unread,
Oct 3, 2013, 1:16:21 PM10/3/13
to ns-3-...@googlegroups.com
Hi Konstantinos,

I changed the start time for all the four stations - attached is the modified  code. However, the thrupt is still stalling. I played around with start and stop time for source and sink nodes but the results are same as before.

I would truly appreciate your help on resolving this problem.

Thanks,
A.
test123.cc

Konstantinos

unread,
Oct 3, 2013, 1:26:43 PM10/3/13
to ns-3-...@googlegroups.com
Hi,

There is a logical error in your code.
You have declared the list of sources as follows:

ApplicationContainer source;

Then you do some unnecessary loops for only 1 node
and in each loop you set the starting and stopping time of the application.

Since every time you use the same variable, 'source', the logic of the program will be that only the last value will be executed.

You have to create DIFFERENT application containers or set the StartTime of individual onoff application using the attribute system, then there will be no reason to use the source.Start().

ns3 user

unread,
Oct 4, 2013, 7:39:01 PM10/4/13
to ns-3-...@googlegroups.com
Hi Konstantinos,

Thanks for the reply. You're right about the error. I made the changes (I defined "source" and source2 as  two differenent Application Container and changed their respective start times. However, the thrupt is still stalling. I know I have redundant loops but at this stage I just want to see if there is any improvement with the thrupt. Attached is my code.

Thanks again for the help. I really appreciate it.
testdev.cc

Konstantinos

unread,
Oct 6, 2013, 7:30:20 PM10/6/13
to ns-3-...@googlegroups.com
How much throughput do you expect to achieve? 
I see that you have disabled the RTS/CTS, so you should expect a lot of collisions from 4 contending nodes in saturated traffic.
You have the on/off application, always ON with data rate 48Mbps per node and the channel is 54(?). 

Also, other logical errors are the double configuration of the application data rate and RTS/CTS threshold that are defined twice in the code.
The first two are overwritten by the second definition later in the code.

    Config::SetDefault ("ns3::OnOffApplication::DataRate", StringValue ("54000000kb/s"));
    Config::SetDefault ("ns3::WifiRemoteStationManager::RtsCtsThreshold", StringValue ("2200"));

    onoff.SetAttribute("DataRate", StringValue("48Mbps"));
    Config::SetDefault("ns3::WifiRemoteStationManager::RtsCtsThreshold", StringValue("2346"));

So, I would suggest to study the examples and the code you write before you use it. Do not just copy/paste code snippets from other scenarios without knowing what you are doing.

ns3 user

unread,
Oct 9, 2013, 7:15:24 PM10/9/13
to ns-3-...@googlegroups.com
Hi Kinstantinos,

Thanks for the reply. I have simplified the topology with only station. Since I am using 802.11g I am expecting that the thrupt should be more than 20Mbps considering there are no clients. 

I doubt if there is an error with the On/Off time. My version is 3.14 and I assume that the syntax I am using for the On/Off setattribute is correct?

I have traced a pcap file (also attached) as well which shows that the data rate is consistent throughout (i.e 54 Mb/s). But still the thrupt on the receiver side is low (I am getting 12 Mb/s for one station).

Thanks for your help,

-A 
testdev.cc

ns3 user

unread,
Oct 9, 2013, 7:16:42 PM10/9/13
to ns-3-...@googlegroups.com
Here's the code attachment.

Thanks,
-A

On Sunday, October 6, 2013 4:30:20 PM UTC-7, Konstantinos wrote:
testdev.cc
Reply all
Reply to author
Forward
0 new messages