Re: Setting up TCP for evaluation


Cronologico Percorso di conversazione 
  • From: Michael Welzl < >
  • To:
  • Subject: Re: Setting up TCP for evaluation
  • Date: Tue, 10 Oct 2017 17:24:23 +0200

[ Francesco - a quiz for you! ]

Hi again,

A follow-up: now I started this small homepage. There’s no public link to it, but it’s also not protected, so if you have the URL you can always access it to see updates:

The file there is updated: first, my queue setting method didn’t work with the newer ns-3.27(rc2), which we must use in order to get SACK. So I had to update it again.
Actually the whole TCP module seems to have improved, as with or without SACK the cwnd looks more reasonable now.

One thing I can’t solve, and that’s annoying me - maybe someone knows the answer: why does cwnd in CA grow up to 19 packets?
I can understand 18 + 1, as at 19, the drop would happen… but the value doesn’t seem right:

- my OWD is 1ms + 8ms + 1ms = 10ms, so the RTT is 20ms
- my bottleneck capacity is 1Mbps

With a packet size of 1500 bytes, this gives me a BDP of 16.66 packets. That’s below 19 … but that would be the reachable BDP without the queue.
Using a queue of 0 or 1 gives me no output at all in the cwnd file (strange right??). A queue of 2 lets cwnd go between 2 and 7, a queue of 3 packets from 3 to 9. This is odd… the graph looks reasonable but the numbers don’t quite match what I’d expect. Try it: vary the QLEN at the top of my script and do a gnuplot of the 1st and 3rd column of cwnd.txt.

Does anyone know what’s wrong? A queue somewhere that I didn’t think of?  Am I setting the queue lengths wrong?

Cheers,
Michael



On Oct 9, 2017, at 6:51 PM, Michael Welzl < " class=""> > wrote:

Hi,

ns-3 is killing me !

After days of work, I finally have a reasonable (I think) starting point to evaluate TCP in ns-3 - attached. Did you folks also stumble over the same weird things?
E.g., the Ipv4AddressHelper installs a traffic control layer module, which, in my script, I’m uninstalling after this helper installs it  :-)
Also, I played endlessly with setting the queue length - it seems that, when I don’t do it specifically with:
   Config::SetDefault ("ns3::PfifoFastQueueDisc::Limit", UintegerValue (QLEN) );
… and install this particular queue, then I get a wrong queue length (some strange default) - the TCP sawtooth didn’t look right. Now it seems okay - but strangely, it seems that also the other configuration methods need to be there - if I remove them, stuff goes wrong again. I don’t know what that is?!?!?!

Anyway, this script finally seems to produce a useful TCP run:
- it creates a dumbbell topology, of which one node is a TCP sender and another a TCP receiver - so we can add multiple TCPs or use bg traffic at some point, if we want.
- it produces a pcap file at the TCP sender node
- it uses a greedy application on top, which I think could be used to simulate app-limited senders too (taken from “fifth.cc”)
- it produces an animation file too (the “wscript” file needs to be put in the same dir for that), and creates trace files for cwnd, in bytes and packets (col. 2 and 3), the bottleneck qlen (in packets) and sequence numbers (which is our main target, I think - to “zoom into” the behavior with a time-sequence-plot).

Maybe this file is useful for some of you too?

I guess if you (someone) can manage to get something similar to the output of this script, but running the FSM, then we’re pretty far in terms of getting comparable results and common diagrams!

Next, I’ll add something to drop specifically chosen packets, and …. THEN I DISCOVERED THAT SACK ONLY EXISTS IN THE TO-BE-RELEASED NS-3.27, NOT NS-3.26 !
Sorry for shouting, but this was annoying, as the documentation partially already talks about SACK, but in fact it just isn't there. So I’ll need to install the newer ns-3…
… and THEN I can get started implementing the timer idea!

This is all using “internal” TCP, FreeBSD-like, not yet Linux with DCE.

I think I’ll soon create an “internal” webpage where I’ll collect files such as the attached ones, so we (or at least I) can share these things more easily.

See (some of) you tomorrow!
Michael



<michaelstcp.cc><wscript>




Archivio con motore MhonArc 2.6.16.

§