Congestion Control in Computer Networks with a New Hybrid Intelligent Algorithm

With invention of computer networks, transferring data from one computer to another became possible, but as the number of computers that transfer data to each other increased and common communication channel bandwidth among them in a network limited, has led to a phenomenon called congestion, so that some of data packets would be dropped and never arrive to destination. Different algorithms have been proposed for overcoming congestion. These are divided into two general groups: 1-flow based algorithms and 2-class based algorithms. In present study, using class based algorithm with optimization of its control by fuzzy logic and new Cuckoo algorithm, we increased the number of packets that reach to destination and reduced the number of dropped packets considerably during congestion. Simulation results indicate a great improvement of efficiency.


Introduction
Various algorithms have been proposed for addressing congestion phenomenon. Queuing algorithm is grouped into two classes: flow-based (Cisco, 2008) and class-based (Cisco, 2008). Flow-based algorithms are able to supply high quality services to one or more flow, because they reserve any resource requires in advance. However, these methods have one major problem and that is the necessity to do required adjustments in advance for each flow. Thus, in large scale, (i.e. when there are thousands or millions of flows) they lose their functionality. Therefore, another simple solution called classbased method is used for presenting high quality services without the need to do prior adjustments or determination of the whole path that can be implemented locally and distinctively in each router. In this part, we use class-based distribution queue that guarantees packets dispatch based on warranted guidance method and decisions concerning packets direction are made by fuzzy logic. In present study, we use classbased algorithm and improve its control through a new combination of fuzzy logic and Cuckoo algorithm that leads to substantial increase in the numbers of dispatched packets arrived to destination, so that the number of dropped packets are considerably reduced during a congestion period. We continue this discussion in following sections: in part two, performed studies concerning addressing congestion are investigated. In part three, we propose our theory and in part four we conduct simulation in order to analyze the results and conclude. Finally, in part 5 we propose future fields for further studies.

)
How a router can prevent global synchronization? This pattern known as early identification or early interruption or early disposal is usually referred to early identification. Each router maintains its mean queue length; whenever average length of queue for some of links exceeds a certain limit, that queue is faced with congestion and starts dropping by a special policy.
Randomness of early identification means that instead of waiting until overflow of queue and then stimulating several TCP links toward slow forwarding, a router slowly and randomly disposes datagrams with congestion increase. Early identification algorithm is used for calculating mean queue length and it uses two parameters, Minth 2 threshold of queue length and Maxth 3 length of queue. Performance of early identification may be determined by three rules that determine the location of each input datagram as follows: 1-If number of datagrams of current queue is less than Minth , add new datagram to the queue; 2-If the number of datagrams of current queue is more than Maxth, drop new datagram; 3-If number of datagrams of current queue is between the two Minth and Maxth limits, drop the datagram randomly according to P probability.

Estimation of the average queue length
Short term increase in the length of queue due to burst traffic and or transient congestion has no effect on effective increase of mean length of queue. A parameter called avg that indicates mean length of queue is calculated by equation (1). In this relation, q represents length of queue once a packet enters and Wq, weight of each queue that is a number between zero and one usually being equal to 0.002. Avg. = (1-Wq) avg + Wq q (1)

Decision making about packets disposal
Second step in the algorithm of early identification is disposing input packets. The main point in correct performance of early identification is selecting Minth and Maxth limits and probability of P disposal. The limit must be big enough to insure that output link leads to upper output. Moreover, since early identification acts similar to tail disruption, when length of queue is more than Maxth, this value must be bigger than increase value in the length of queue during sweep time of TCP, i.e. more than Minth (for example, adjusting Maxth with a value at least two times bigger than Minth). Otherwise, early identification may induce fluctuations of global synchronization as tail interruption. This algorithm is implemented using two above mentioned thresholds as follows (Jacobson & Floyd, 1993): For each packet arrival Calculate the average queue size avg.
If minth <= avg. <maxth calculate probability Pa With probability Pa: Mark the arriving packet Else if maxth <= avg. mark the arriving packet In this algorithm Pa is probability of each input packet that is a function of avg. mean of queue length. Calculation of probability of disposal of packets is the most complicated aspect of early identification. Instead of using a fixed number, a new value of Pa is calculated for each datagram. This value depends on the relationship between the current size of queue and threshold limit. When the length of queue is less than Minth, early identification does not led to disposal of any datagram, so that probability of disposal becomes zero (P =0). When the length of queue is larger, early identification does not lead to disposal of all datagrams, so that probability of disposal becomes 1 (P =1). For values being between the length of queue, probability may be from zero to one in the form of a variable line. Probability is calculated with relation (2); in which Pb represents probability of each packet from zero to Maxth and Count Parameter (relation (3)) is the number of entering new packets when average length of queue is between two values of threshold. Pa value is directly proportional to Count (Jacobson & Floyd, 1993): Although linear pattern is the main principle for calculation of early identification probability but a change must be made for preventing sever reaction. In fact, the change is required considering a burst network traffic; because it may induce sever changes in router's queue. If early identification follows a simple linear pattern, datagrams of the end of queue face with high probability of being disposed in each burst (because when they will arrive, the queue of router will have more entrees). However, a router should not drop datagrams when not required; because with this action a negative effect is suffered by operational throughput of TCP. Therefore, as data bursts are short term lived, it is not wise to dispose datagrams; because the queue never overflows. Of course, early identification could not delay disposal endlessly; because a long term burst would overflow the queue that would lead to tail interruption policy. Some of the problems of early identification are as follows (Safaeezadeh, 2008):  Threshold limits can hardly be specified;  Probability of disposal of packets is in the form of a curve;  RED algorithm is suitable when mean length of queue is in steady state. 4 RED expanded algorithm exists in distinct services based nodes and is presented by a set of routers located at a single managerial field. If a transmitter request for entering into network for receiving a type of distinct service, it's sent packets carry the field of services when entering the field, so that some of them receive better services (Tanenbaum, 2008).

Early identification of congestion in distinct services based nodes (dsRED)
Architecture of distinct services provides traffic division for different groups. In this algorithm, there are physically four RED queues as shown in figure (1) in which each RED queue is divided virtually into three queues with different priority and each virtual queue has packets with the same priorities. The method used for addressing congestion is as follows: 2.2 Differentiated Services Fuzzy Assured Forward Queuing (dsFAFQ) 5 In this method, class-based distributed queuing is used based on fuzzy logic. In distributed queuing based on guaranteed guidance in nodes with distinct services, firstly, four guaranteed guidance classes are defined and each class receives its special resources and produced packets are categorized in any desired order in one of the four classes. Based on guaranteed guidance method, the packets are marked after being located in one of the four classes. In this step, three possibilities for packet elimination due to congestion is defined for marking the packets and the packets are marked with three types of packet elimination probability including low, average and high probability. Therefore, with four guaranteed guidance classes and three packet elimination probabilities, 12 classes of distinct services are developed. Then, buffer of a router is divided to two parts: edge and core. These two parts could be considered in two separate routers as well. In the edge, the router is grouped into 4 classes in order to separate output flows, so that if data sent faster by a flow, it would not be able to occupy the whole space of buffer and consequently, other flows would not be faced with resource shortage 6 . As can be seen in figure (2), each guaranteed guidance class is assigned with a physical queue and since three types of elimination probabilities are entered into each queue, for each elimination probability, one virtual queue 7 is assigned. In other words, each physical queue is assigned with three virtual queues. The edge and core communicate with each other by fuzzy controller indicated in figure (3); namely, fuzzy controller checks conditions of existing queues in the core of router in certain times and specifies the percent of packets that must be transferred from the edge to the core of router and the packets are placed in the core of router inside physical and virtual queues; then the packets are sent from the core of router in a guaranteed manner. Arrival of packets into physical queues with respect to determined class and probability of elimination are determined in the edge of router. After determination of packets transfer percentage by fuzzy controller, the packets are transferred from the edge to the core router and timing is performed for servicing of packets exit. Service provision for different queues is also conducted in a cyclic manner; because if the packets are processed in the order they entered in a queue, an aggressive transmitter may occupy most of the capacity of router and so the quality of services to others will be reduced. When a network is not under congestion, any type of packet with any type of priority may enter the queues in the edge of router and receive services after being transferred to the core, but under congestion period, entering to queues in the core is reduced by fuzzy logic and the packets with high elimination priority are not allowed to enter to the edge of router (Yousefzadeh, 2011).

Fuzzy logic and its application for congestion control
Fundamental idea of fuzzy control is to make use of expert knowledge. In fuzzy science, any event relating to an object is defined as a fuzzy state. Fuzzy control has a deterministic behavior and can be applied to vague and indeterministic problems (Rajasekaran & Vijayalksmi, 2003).
Fuzzy systems are based on rules. The heart of a fuzzy system is a knowledge base consisted of IF-Then rules. A fuzzy If-Then rule is an If-Then statement that the If part is determined by the help of continuous membership functions. In summary, starting point of developing a fuzzy system is obtaining a set of fuzzy If-Then rules from the knowledge of expert people or the knowledge relating to a problem under investigation field. The next step is combining these rules in a unit system. Different fuzzy systems follow different methods and principles for combining these rules.
Fuzzy rules base indicates a set of fuzzy rules and fuzzy inference motor called Mamdani combines these rules into a mapping of fuzzy sets in entrance space of fuzzy sets in output space based on fuzzy logic principles (Rajasekaran & Vijayalksmi, 2003).
A fuzzy maker 8 in entrance converts the variables with real values to a fuzzy set and a fuzzy remover 9 converts a fuzzy set to a variable with real values in output by centroid method. Centroid method performs center of gravity and mean of maxima (MoM) performance on defuzzification by two ways the most known of which is center of gravity method (COG) 10 . In this method, fuzzy output is obtained for discrete values considering occupied space by fuzzy set in the form of equation (4), where x* represents defuzzified output, n is for the number of members, xi represents members of a fuzzy input member and (xi) represents membership function of each member (Rajasekaran & Vijayalksmi, 2003). Fuzzy controller in the router controls entrance of packets into the core of router with certain elimination priority such that the router and finally the network are not faced with congestion. It means that if the percentage of input packets entering available queues inside the core of router exceed specified threshold of queue, since corresponding queue is filled rapidly, the controller reduces the number of packets forwarded to that queue until the queue reaches an equilibrium state. In other words, the percentage of packets forwarded to the queue is proportional to current load of queue and mean time waiting in the queue. Controlling entrance of queues to classes with specified priority in the core of router is conducted by fuzzy controller indicated in figure (5). In fuzzy controller, two input variables and one output variable are considered.
Input and output variables are as follows:

-Queue load
It is the number of packets waiting in the queue inside router core to receive services that has seven fuzzy subsets: Indicating Small, Bigger than Small, Smaller than Medium, Medium, Bigger than Medium, Large and Very Large respectively.

-Number of directed packets (Forwarded Packets)
This is the average number of packets sent to the queues of each class. Number of packets forwarded by fuzzy controller is an output variable for which seven fuzzy subsets is considered:

Proposed applied method (Fuzzy COA Related Random Early Drop (FCRred))
The new method used for addressing the congestion in network in a combinational and optimized manner is implemented by defining random early elimination (prediction of congestion) by fuzzy logic related to Cuckoo algorithm. As said before, defining fuzzy rules for controlling the congestion of distributed queues based on class is very complicated and it is achieved empirically by experts. Also neural networks applied widely in expert and fuzzy systems may be used for adjusting membership functions and fuzzy rules in knowledge base.
Indeed, we can say that defining fuzzy rules constitutes the heart of distributed queuing system so that if we wish distributed queues show good performance we must enhance their heart; it means that we must define and optimize fuzzy rules such that system output is highly matched to system input. By matching between output and input systems we mean that output accuracy in terms of inputs is in the best possible state; therefore, it is obvious that in the case of nonoptimization of fuzzy control system, its performance may have good condition but this good performance is not necessarily the best response. How could we optimize a fuzzy control system, such as controller system of distributed queues congestion? In order to answer this question, we must continue our discussion specifically about congestion controller fuzzy system in distributed queues.
As explained before, congestion controller fuzzy system has two input parameters and one output parameter that specifies the value of output parameters based on input parameters value considering the table1 and similar number of packets are forwarded from the queue of edge router to the router of core. Two input parameters include: 1) length of queue at the time of control; 2) average waiting time during which the packets are waiting in queue and output parameter includes the number of packets that must be forwarded from edge router to core router. For example, if queue length during control is LHalf and average waiting time is Med, then output value is LNormal (table 1). One question emerges: is LNormal the best output for these two inputs? At first glance, it can be said that according to fuzzy rules database that the table 1 is its output, this answer is correct, but concerning being the best or optimized, we cannot claim anything without valid J u n e 1 1 , 2 0 1 4 documents. In fact, this table is the heart of fuzzy system in this system and if its parameters are adjusted well, obtained results would be excellent and if it is adjusted badly, the result would be catastrophic. Suppose that VHigh replaces LNormal. Obviously, the result is increased congestion and loss of packets in queue of central router. Each rule in a fuzzy system has an assigned weight to it and it is a presumed weight value of 1. So, the main purpose of present study could be specified here by adjustment of the values of table of fuzzy rules database in an optimized manner (table 1) in distributed queues system so that the question could be answered as: system output is the best response. Now this question is presented: how could we optimize the values of rules table?
In order to answer this question, we must say that experiences of knowledgeable persons and/or using optimization algorithms are the only way for this purpose. Since all people don't have the skill for adjustment of the values of this table, application of optimization algorithms may be the only way. There are different optimization algorithms for this purpose: genetic algorithm and Simulated Annealing algorithm. A new method proposed for optimization of fuzzy logic is Cuckoo optimization algorithm (Rajabioun, 2011). This algorithm has currently the highest speed in maximizing or minimizing target function (considered output: number of forwarded packets) from fuzzy controller in network router. For this purpose, we must become familiar with the performance of Cuckoo algorithm.

Cuckoo optimization algorithm and cuckoo's laying method (COA)
All the birds in the world have similar method for becoming a mother. All of them lay eggs. No bird gives birth to its offspring, but it lays egg and nurtures its chick outside its body. The bigger the eggs, the lower the possibility that female bird carries more than one egg inside its body, because bigger eggs make flying difficult. On the other hand, since the eggs are full of protein for other hunters, the birds need to find a safe place for laying. Finding a safe place for laying and nurturing them until they gain independence is an important issue that all birds have resolved it smartly. They use a sophisticated and complex engineering for this purpose. Most of birds build their nests in unknown place hidden under plants, so that prevent being identified by hunters. Some birds have freed themselves from parenthood and related duties and use a smart way. They are called brood parasites; they never build nest for themselves and instead put their eggs in the nests of other birds and wait to see those birds protect their eggs like theirs. Cuckoo is the most famous brood parasite who is specialized in deceiving. Mother cuckoo destroys one of the eggs of a host mother and puts her egg among other eggs in the nest of host and flies away rapidly. Cuckoos put their eggs inside the nests of different birds and in doing this they consider the color and pattern of eggs existing in each nest to ensure the similarity between her eggs to the eggs in host's nest. Any female cuckoo is specialized for a certain type of bird species. How female cuckoos mimic the eggs of a certain species with high precision is the secret of nature. In this regard, there are birds that recognize cuckoos' eggs in their nest and some of them even throw her egg out of their nest. Some birds even leave their nest and build a new one. In fact, cuckoos constantly improve their imitation method and host birds learn the ways by which they can identify alien eggs.
Most of cuckoo species are non-migrant, but there are various species that do seasonal migration. Some other species migrate periodically across domain of their habitat. For cuckoos living in elevated places, access to food requires them to migrate to warm areas in winter. Cuckoo chicks come out of egg sooner than that of host bird's chicks and grow faster. In most of cases, cuckoo chicks throw the host eggs and /or the chicks of host bird out of the nest. This is purely instinctive and cuckoo chicks have no opportunity to learn such behavior. Cuckoo chick enforces host bird to provide food for it in proportional to its growth and it demands food more often. Cuckoo chick shows its need for food by opening its peak, because open peak means for mother a stimulator for hunger of chicks. Female cuckoos are very skilled in producing eggs similar to the eggs of host bird.

Details of Cuckoo optimization algorithm
COA is a new method for thorough informed search inspired by a bird called cuckoo. Like other evolutionary algorithms, COA begins its operation with a primary population consisted of cuckoos. This population of cuckoos has a few eggs that would be placed in the nests of some host birds. Some of these eggs that are more similar to the eggs of host bird have higher chance for growing. Other eggs are identified by host bird and are destroyed. The number of grown eggs indicates suitability of the nests of that region.The more the viability of eggs in an area, the more the tendency for choosing that region by cuckoos. Therefore, the situation in which the highest number of eggs is saved is a parameter that COA intends to optimize it. Cuckoos seek for the best region for maximizing the number of eggs saved. As indicated in figure (6) each cuckoo randomly puts a few eggs in the nest of host bird located in their laying territory or ELR 11 (Rajabioun, 2011).

Fig 6: Displaying way of ELR determination and laying eggs in that area
ELR relationship for each cuckoo is determined as follows: α is a variable that we'll define maximum ELR value with it.
varhi is upper limit of the variables and varlow is lower limit of the variables.
When all cuckoos laid their eggs, some of eggs less similar to host bird's eggs are identified and thrown out of the nest. Therefore, after laying P% of all eggs (usually 10%) having lesser profit function are destroyed; the rest of chicks are fed in host nest and develop.
Other interesting point concerning cuckoo chicks is that only one egg has the chance to grow in each nest, because when chicks come out of eggs, throw out the eggs of host bird and if the chicks of host bird come out of egg sooner, cuckoo chick eats the largest portion of food brought by host bird (with its large body that is 3 times bigger than host bird chicks, it is dominant) and after several days host bird chicks die of hunger and only cuckoo chick survives.
When cuckoo chicks grow and get mature, they live for a period in their environments and groups, but when laying time arrives they migrate to better habitats where eggs have higher chance to survive. After forming some groups in different general habitats (searching space of problem) the group having the best situation is selected as target point for other cuckoos for the purpose of migration. When mature cuckoos live in nearly most of regions of the world, it is hard to specify each cuckoo belongs to which group. For solving this problem, the cuckoos are grouped through K-means method (one k between 3 to 5 suffices). When cuckoo groups are formed, mean profit of group is calculated so that relative optimality of habitat of that group is obtained. Then the group with highest average profit (optimality) is selected as target group and other groups move toward it. During migration toward target point, the cuckoos don't go through all paths toward target location; they only travel part of path and they deviate at that way. This type of traveling is evident in figure (7).
As it is indicated in figure (7), each cuckoo travels just λ% of the whole way toward ideal target location and there is a deviation with φ radiant. These two parameters help them to search larger area. λ is a random number between 0 and 1 and φ is a number between and . When all cuckoos migrated toward target destination and new habitats were specified, each cuckoo lays a few eggs. J u n e 1 1 , 2 0 1 4 Given the number of eggs of each cuckoo, an ELR is determined for it and then laying begins. Given this fact that there is always a balance between bird populations in nature, a number like Nmax controls and limits the number of cuckoos may live in an environment. This balance is due to food limitation, being hunted by hunters and difficulty in finding suitable nests for eggs. After several repetitions all populations reach to an optimum point with maximum similarity between eggs and the eggs of host birds and also achieve the location of highest food resource. This location has highest total profit and in which minimum number of eggs would be destroyed. Convergence of more than 95% of all cuckoos to one point leads COA to its end.
Relation (6) indicates practical migration formula in COA (Rajabioun, 2011): F is a parameter that induced deviation.
XGoalPoint is optimal point for the cuckoo to migrate and XCurrentHabitat is current status of the cuckoo birds.
In order to better understand COA stages, in figure (8) semi-code of cuckoo algorithm is presented.

Optimization of fuzzy rules using cuckoo algorithm
In order to optimize the rules of table (1) that includes 49 rules, we used MATLAB tool and cuckoo algorithm. For this purpose, we conducted coding in MATLAB such that current values of rules of table (1) accepted as input and we optimized all its 49 values using cuckoo algorithm; in order that this table is usable in simulation, it is adjusted in the form of a three column file where first column indicates average percent of waiting time of packets in queue and second column represents percent of queue length at the time of control and third column indicates the percent of packets that must be forwarded from edge of router queue to central router. This file is adjusted in 10 steps and number of its inputs (rule lines) is 121. This number of mapping of 49 optimized values by cuckoo algorithm was obtained in interval 0 to 100 through MATLAB instructions. For example, two lines of this file are as follows: J u n e 1 1 , 2 0 1 4 Table2. An example of a three-column file output for use with MATLAB simulation First line indicates that if average value of waiting time for packet in the queue of central router is 20% of total time and 0% of the queue of central queue is full (the queue is empty), 75% of packets in the queue of edge router must be transferred to the queue of central router. For example, the highest waiting time of a packet in central queue is 10 milliseconds and average waiting time at the time of control is 2 milliseconds and there are 20 packets in edge queue, 15 of its packets would be transferred to central queue in order to be sent to their destination. We expect the performance of optimized rules is better than primary rules indicated in table (1). It means that number of forwarded packets is more and number of dropped packets is less in the edge. For this purpose, we simulated performance of queue and its results confirm this.

Simulation and analysis of results
Implementation of guaranteed forwarded queuing based on fuzzy: in figure (9), the way the packets are processed to be forwarded in guarantied manner is indicated. In first stage, data packets are produced based on a certain rate by the source, and then they are classified in one of four classes in terms of their priority. This stage may be performed in the host machine of transmitter or in the first router's entrance to the network. In second stage, after putting the packets in priority classes in terms of the type of packet elimination, they are marked.

Fig 9: Packets classes based on guaranteed forwarding mechanism for input flow
Considering four classes and three elimination probabilities for each packet, totally 12 classes of differentiated services (DS) are developed.
In figure (9), packet classes based on guaranteed forwarding mechanism for an input flow after dividing the packets transmitter's side output flow, we transit to third stage which is router machine. In this stage, the buffer of router that is divided into core and edge is classified to 4 classes and to each class one physical queue is allocated. As it is evident in figure (9), classified packets enter to the edge of router with determined rate and a fuzzy controller determines the percentage of transferred packets from corresponding queues in the edge to the core that checks conditions of existing queues in this part during sending each packet from core of router by using two parameters of waiting time and current load of queue based on relations (7) & (8) and then the packets are forwarded in the core into physical and virtual queues and packets would be sent from the core of router in guaranteed manner(relation 9).
Queue Load = PKts_Num (Precl+Prec2+Prec3 Waiting Time = PKts_FTC-PKts_AtE In relation (7), PKts_Num represents total packets in each physical queue of router and Prec is number of packets in each virtual queue of router.
In relation (8), PKts_FTC represents the number of packets transmitted from the corresponding queue in the core sector and PKts_AtE is the number of packets transmitted from the corresponding queue in the edge sector.
In relation (9), Forward is the number of forwarded packets and FLC is controller of fuzzy logic.
Packets processing and servicing to different classes in the core of router is conducted in Round Robin manner. It means that after locating the packets in queue using a timer that conducts packets exit order on Round Robin basis, servicing or sending the packets to destination is done. In this case, proposed queue formed in router has following characteristics: 1-The packets enter the system using two CBR 12 traffic generators; one with 4Mb/s and the other with 6Mb/s speed on UDP protocol and with Poisson distribution rate. 2-Capacity of physical queues in the edge of router is 10 packets and total capacity of system is 80 packets. 3-Output band width of router for sending the packets set as 7Mb/s and input packets enter router queues through two separate links each with 10Mb band width. 4-Size of all packets is fixed as 1000 bytes and number of total packets produced by source is nearly 100,000 packets. 5-Each queue in the edge of router has a maximum threshold that is equal to 20 packets. However two states are present in this system: A) If number of packets of a queue is less than maximum threshold, the packets enter related queue with any type of elimination priority.
B) If number of packets of a queue is more than maximum threshold, only LD 13 packets enter related queue until it exceeds capacity of queue 14 . In this case, congestion tail drop policy or Tail Drop.

Conclusion
Results of current and previous simulation are presented in tables (2) and (3). For better understanding, the statistics are presented in two tables, so that comparison in both states is very easy. Tables consist of four columns with following titles and descriptions: 1) Time (Sec): duration of stimulation in terms of seconds.
2) TotPkts: total number of packets produced in system in each time period.

Fig 11: Diagram of total number of sent packets
In figure (11) we see that the line of sent packets in optimized state (dsFCRred) is above the line of sent packets in normal state (dsFAFQ) and (dsRED) methods and this means that number of sent packets in optimized state increased. Given results obtained from simulation we conclude that with optimization of rules of fuzzy controller system, performance of system becomes better, so that fuzzy controller system compared to the system with primitive rules (dsFAFQ) in sending the packets showed 10.2% increase and it increased 20.1% compared to older method dsRED.

Fig 12: Diagram of total number of dropped packets
In figure (12) we see that the line of dropped packets in optimized state (dsFCRred) is lower than that of sent packets in normal state (dsFAFQ) and (dsRED) methods and this imply that number of dropped packets in optimized state compared to primitive rules (dsFAFQ) in dropping the packets are reduced by 9.8% and it reduced compared to older method (dsRED) by 18.2%.

Future propositions
Given significant improvement in system performance, studying the feasibility of practical implementation of this method may be conducted as a research work by other researchers and if it proves cost effective, it may be applied by producers of equipment. Also, by improving fuzzy rules by experts, efficacy of algorithm may be enhanced.
Applying neural networks for adjusting membership functions and fuzzy rules in knowledge base of fuzzy controller may be an alternative for congestion control.