- 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
- Setting up TCP for evaluation, Michael Welzl
Archivio con motore MhonArc 2.6.16.