Research Article

A QoS-Oriented Congestion Control Mechanism for Satellite Networks

Algorithm 1

Main loops for intermediate nodes under PMDB.
//pre-computed thresholds in buffers, s.t.
THaverage  THstdeva  THcounter//pre-computed thresholds
//LIs maintained by nodes
 //state matrix for all buffers in a node
(1)while true do
(2)  if average(S) > THaverage  then //Line 2–11 decide according to all buffer states
(3)   ;//increase the weight of leisure degrees under large mean
(4)  else if 0 < average(S)  <=  THaverage  then//small but positive mean
(5)    if stdeva(S)  >  THstdeva  then  ;
(6)    end if
(7)  else if stdeva(S)  >  THstdeva  then//negative mean
(8)     ;
(9)  else ;  //increase the weight of priorities under large deviation
(10)    end if
(11)   end if
(12)   if   >=  THcounter  then  ; //PLR alarm counter exceeds threshold
(13)   else  ;
(14)   end if
(15)   if state == inbuffer(arrive_packet(i)) then  ; //regular receiving
(16)   else if state == drop(arrive_packet(i)) then //when packet-loss detected
(17)     if ()/   then   ; //increase counter value
(18)     else ; //else  reduce counter value
(19)     end if
(20)     ; //updating real-time packet-loss state in buffer
(21)       ; //space of flow is selected with a probability as in equation
(22)     while  >  then//Line 22–30 processes practical space transfer
(23)       if    then//occupying spaces from lower level flows
(24)        for to   do  ;
(25)        end for
(26)       else  if     then //occupying spaces from higher level flows
(27)        for    to    do;
(28)        end for
(29)       end if
(30)     end while
(31)     for   to  1  do  ; //Line 31–33 update LIs in buffers of flow
(32)     end for
(33)     ;
(34)   end if
(35) end while