Congestion control is intends to keep a fast sender from sending data into a network.Main reason behind congestion control is because of lack of resources.We assist research scholars in implementing NS2 Congestion Control Projects with source code.
Techniques involved in congestion control:
- Warning bit.
- Load shedding.
- Random early discard.
- Choke packets.
- Traffic shaping.
Types of congestion control in manet:
- Instantaneous congestion.
- Baseline congestion.
- Flash congestion.
- Spiky congestion.
Congestion control techniques in manet:
- CA-AODV.
- CFR.
- LSRP.
- CBCC.
- AODV
- ADCC.
- CERRT.
- CARP.
Architecture of congestion control:
Sample NS2 Code for Congestion Control
This code is contain the information of methods used in network flow
global nssim freelist reslist ftp tcp_s tcp_d rng nof_tcps mfsize
mean_intarrtime simend
#you have to create the variables tcp_s (tcp source) and tcp_d (tcp destination)
set tt [$nssim now]
set freeflows [llength $freelist($class)]
set resflows [llength $reslist($class)]
lappend nlist($class) [list $tt $resflows]
if {$freeflows == 0} {
puts "Class $class: At $tt, nof of free TCP sources == 0!!!"
puts "freelist($class)=$freelist($class)"
puts "reslist($class)=$reslist($class)"
exit
}
#take the first index from the list of free flows
set ind [lindex $freelist($class) 0]
set cur_fsize [expr ceil([$rng exponential $mfsize])]
$tcp_s($class,$ind) reset
$tcp_d($class,$ind) reset
$ftp($class,$ind) produce $cur_fsize
set freelist($class) [lreplace $freelist($class) 0 0]
lappend reslist($class) [list $ind $tt $cur_fsize]
set newarrtime [expr $tt+[$rng exponential $mean_intarrtime]]
$nssim at $newarrtime "start_flow $class"
if {$tt > $simend} {
$nssim at $tt "$nssim halt"
}
}
Journal Support for NS2 Projects:(Implementing NS2 Congestion Control)


