Homework 4: IEEE 802.11 Greedy Sender
Assigned: March 25, 2009
Due: April 1, 2009
1) Suppose your local ns directory is foobar. First, "rm -fr foobar/ns-2.29/mac" (foobar/ns-2.29/mac is a soft link), and similarly, "rm -fr foobar/ns-2.29/hw4" Then "cp -r /v/filer4b/v27q001/cs378-spring/ns-allinone-2.29/ns-2.29/mac foobar/ns-2.29/mac" and "cp -r /v/filer4b/v27q001/cs378-spring/ns-allinone-2.29/ns-2.29/hw4 foobar/ns-2.29/hw4".
2) Use the sample tcl file in "hw4/gs-cbr.tcl".
3) You need to implement the following misbehaviors in mac/mac-802.11.h and mac/mac-802.11.cc (Your modifications are less than 10 lines of code). Recompile ns by running "make" under "ns-2.29" directory. Run ns simulation by "ns hw4/gs-cbr.tcl".
Increase NAV in RTS packets to a factor of "RTSNAVFactor_" (specified in gs-cbr.tcl) of the normal value. For example, if RTSNAVFactor_= 4, we set NAV in RTS packet to 4 times the normal value.
Increase NAV in data packets to a factor of "DataNAVFactor_" (specified in gs-cbr.tcl) of the normal value. For example, if DataNAVFactor_= 4, we set NAV in Data packet to 4 times the normal value.
Skip binary backoff when SkipBinBackoff_ is set to 1.
4) Run ns simulation with the following greedy sender misbehaviors (Each misbehavior is used alone, e.g., when you modify RTSNAVFactor_, leave the other parameters the same as the normal sender):
Vary RTSNAVFactor_ = 1, 2, 3, 4, 5, and record the normal and greedy senders' goodput
Vary DataNAVFactor_ = 1, 2, 3, 4, 5, and record the normal and greedy senders' goodput
Use CWMin_ = 2, 3, 7, 15, 31, and record the normal and greedy senders' goodput
Enable SkipBinBackoff_, and record the normal and greedy senders' goodput
5) Turn in the following files to TA before class on April 1 using "turnin" command: "turnin --submit hanmi2 CS378_HW4 file1 file2 file3", where "hanmi2" is the grader id, "CS378_HW4" is the homework id, and "file1 file2 file3" are the files to be submitted.
Your modified mac/mac-802.11.h and mac/mac-802.11.cc
Normal and greedy senders' goodput in one ASCII file using the following format:
Increase NAV in RTS: increased factor, normal sender's goodput, greedy sender's goodput
Increase NAV in data: increased factor, normal sender's goodput, greedy sender's goodput
Lower CWMin_: CWMin_ at greedy sender, normal sender's goodput, greedy sender's goodput
Disable binary backoff: normal sender's goodput, greedy sender's goodput
Hints: Example output using RTSNAVFactor_=6: Goodput 0: 0.00136192 Mbps, Goodput 1: 3.35390144 Mbps Example output using DataNAVFactor_=6: Goodput 0: 0.0015321600000000001 Mbps, Goodput 1: 3.3577407999999997 Mbps