Home
Papers
Download
|
Probabilistic Congestion Control Protocol
To include the PCC protocol in an existing ns-2 installation
- copy pcc.cc, pcc.h, pcc-sink.cc, and pcc-sink.h to the main ns
directory
- add the default values to tcl/lib/ns-default.tcl
Agent/PCC set AppRate_ 60000 ; # Constant Bitrate Application
Agent/PCC set overhead_ 0.5 ; # If > 0, dither outgoing packets
Agent/PCC set packetSize_ 1000
Agent/PCC set ndatapack_ 0 ; # Number of packets sent
Agent/PCC set printStatus_ 0
Agent/PCCSink set packetSize_ 40
Agent/PCCSink set InitHistorySize_ 100000
Agent/PCCSink set NumFeedback_ 1
Agent/PCCSink set printLoss_ 0
Agent/PCCSink set df_ 0.8 ; # decay factor for accurate RTT estimate
Agent/PCCSink set bval_ 1 ; # Value of B for TCP formula
Agent/PCCSink set NumSamples_ -1
Agent/PCCSink set discount_ 1; # History Discounting
Agent/PCCSink set smooth_ 1 ; # smoother Average Loss Interval
Agent/PCCSink set totalReceived_ 0
Agent/PCCSink set protLossEvents_ 3
Agent/PCCSink set protRTTs_ 5
Agent/PCCSink set protMaxTime_ 30
Agent/PCCSink set Toff_ 60
Agent/PCCSink set Texp_ 2
#Agent/PCCSink set rateDiscount_ 0.8
Agent/PCCSink set adjustRate_ 0
Agent/PCCSink set runtime_ 600
Agent/PCCSink set pcc_recv_nr_ 0
Agent/PCCSink set always_on_ 0
- add the object files to Makefile.in
pcc.o pcc-sink.o \
- include the packet types in packet_t in packet.h
PT_PCC,
PT_PCC_ACK,
and add the packet names to p_info
name_[PT_PCC]= "probabCC";
name_[PT_PCC_ACK]= "probabCCCtl";
- add the PCC packet types to prot in tcl/lib/ns-packet.tcl
PCC
PCC_ACK
For older versions of ns (before Aug. 2000) it may be necessary
to add the PCC packet types to pair in
tcl/lib/ns-packet.tcl instead
{ PCC off_pcc_}
{ PCC_ACK off_pcc_ack_}
- recompile ns (make clean; ./configure; make)
A simple example how to set up PCC flows can be found here. For installation problems and bug reports
please contact Jörg Widmer.
|