Setting up TCP for evaluation


Cronologico Percorso di conversazione 
  • From: Michael Welzl < >
  • To:
  • Subject: Setting up TCP for evaluation
  • Date: Mon, 9 Oct 2017 18:51:11 +0200

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



Attachment: michaelstcp.cc
Description: Binary data

Attachment: wscript
Description: Binary data




Archivio con motore MhonArc 2.6.16.

§