Lecture 7 Routing Congestion Control Algorithms
Lecture 7 Routing Congestion Control Algorithms
2
Compare with the following slide
3
What are the options?
4
Introduction
• Routing algorithms and congestion control algorithms play
pivotal roles in optimizing the flow of data in network
communications, much like the systems used to manage the
flow of vehicles in a road transport network.
• Routing algorithms determine the best paths for data packets
to travel from a source to a destination, ensuring efficient
delivery and resource utilization.
• Meanwhile, congestion control algorithms monitor and
manage traffic within the network to prevent bottlenecks and
maintain performance.
5
Introduction
• This relationship can be analogized to road transport, where
routing algorithms correspond to navigation systems that
identify the most efficient routes for vehicles, while congestion
control algorithms function similarly to traffic management
systems that regulate the flow of vehicles, minimizing delays
and enhancing safety.
6
Relationship to Road Transport Network
• In a road transport network, routing algorithms can be
likened to GPS navigation systems that analyze real-time
traffic conditions to determine the best routes for drivers.
• Just as these systems take into account factors such as
road conditions, distance, and travel time, routing
algorithms assess network topologies, bandwidth
availability, and data packet paths to optimize data
transmission.
7
Relationship to Road Transport Network
• On the other hand, congestion control algorithms parallel
traffic management techniques employed in urban
settings, where authorities implement measures to
alleviate congestion during peak hours.
• These algorithms adjust data transmission rates based on
current network conditions, much like traffic signals and
road signs that regulate the flow of vehicles, helping to
prevent gridlock and ensuring a smoother travel
experience.
8
Relationship to Road Transport Network
• Together, these algorithms contribute to the overall
efficiency and effectiveness of both data networks and
road transport systems, highlighting the importance of
intelligent management in facilitating seamless
movement, whether of data packets or vehicles.
9
Routing Algorithms
• Routing algorithms are responsible for determining the
optimal paths that data packets should take to reach their
destinations.
• These algorithms analyze various factors, such as network
topology, traffic conditions, and link costs, to make intelligent
decisions.
1
0
Routing Algorithms Analogy
• Imagine a GPS navigation system.
• It uses maps, algorithms, and real-time traffic data to
calculate the best route between your starting point and
your destination.
• Routing algorithms perform a similar function in networks.
They are the underlying mechanisms that determine the
optimal path for data packets to travel from one network
node to another.
1
1
Routing Algorithms Analogy
• How routing algorithms work, using the GPS analogy:
1. Map data: Just like a GPS uses a digital map, routing
algorithms rely on information about the network topology,
including the location of routers, links, and their
characteristics (e.g., bandwidth, latency).
2. Starting point and destination: Similar to a GPS setting
your starting point and destination, routing algorithms are
provided with the source and destination addresses of the
data packet.
1
2
Routing Algorithms Analogy
3. Algorithm: The GPS uses algorithms like Dijkstra's
algorithm to calculate the shortest or most efficient route.
• Routing algorithms also employ various algorithms, such as
Dijkstra's, Bellman-Ford, or OSPF, to determine the best path
based on factors like distance, cost, or hop count.
4. Real-time Updates: If traffic conditions change, a GPS
updates its route recommendations. Similarly, routing
algorithms can adapt to changes in network conditions, such
as link failures or increased traffic.
1
3
Key Routing Algorithm Concepts
1.Shortest Path Algorithm: These algorithms aim to find the
path with the lowest cost between the source and destination.
Costs can be based on hop count, latency, bandwidth, or
other metrics.
• Examples:
i. Dijkstra’s Algorithm: Computes the shortest path based
on link costs, used in link-state routing protocols like OSPF.
ii. Bellman-Ford Algorithm: Computes the shortest path
based on the distance (number of hops), used in distance-
vector protocols like RIP.
1
4
Key Routing Algorithm Concepts
2. Convergence
• Convergence refers to the process by which all routers in
the network agree on the best paths to all destinations.
• Faster convergence is critical in dynamic networks where
changes occur frequently.
• Slow convergence can lead to network issues like routing
loops or black holes (where packets get lost).
1
5
Key Routing Algorithm Concepts
3. Routing Loops:
• A routing loop occurs when data packets circulate
between routers without reaching the destination, wasting
resources and causing delays.
• Some routing algorithms (like RIP) are prone to loops,
while others (like OSPF) use mechanisms to prevent them
(e.g., Dijkstra’s loop-free algorithm).
1
6
Key Routing Algorithm Concepts
4. Load Balancing
• Load balancing is the practice of distributing data traffic
across multiple routes to avoid overloading any single
path.
• Some routing algorithms incorporate load balancing by
choosing multiple paths for data transmission, improving
overall network performance and reliability.
1
7
Types of Routing Algorithms
1. Distance-Vector Routing Algorithm:
• Each router shares its routing table with its neighbouring
routers, and the algorithm calculates the best path based on
the distance (usually the number of hops). Each router knows
only its direct neighbours, and the updates spread gradually
throughout the network.
• Advantages: Simple to implement.
• Disadvantages: Slower convergence and risk of routing
loops.
• Example: Bellman-Ford Algorithm used in Routing
Information Protocol (RIP).
18
Types of Routing Algorithms
2. Link-State Routing Algorithm: Each router has a complete
map of the network and calculates the shortest path from
itself to all other nodes using the state of the network links
(e.g., bandwidth, delay). Routers periodically share link-state
information to maintain an updated view of the network.
• Advantages: Faster convergence and loop-free.
• Disadvantages: More complex and requires more
computational power and memory.
• Example: Dijkstra’s Algorithm used in Open Shortest Path
First (OSPF).
19
Types of Routing Algorithms
3. Hybrid Routing Algorithm: Combines features of both
distance-vector and link-state algorithms, using distance
vectors to calculate the best path but also employing
advanced techniques to avoid loops and optimize routing
decisions.
• Advantages: Balances the simplicity of distance-vector with
the efficiency of link-state.
• Disadvantages: More complex than pure distance-vector.
• Example: Diffusing Update Algorithm (DUAL) used in
Enhanced Interior Gateway Routing Protocol (EIGRP).
20
Types of Routing Algorithms
• Apart from classifying routing algorithms based on the type of
routing protocol, we can also classify them based how the
routes were configured.
4. Static vs. Dynamic Routing Algorithms:
i. Static Routing Algorithms: These algorithms involve
manually configured routes that remain unchanged unless
manually updated by the network administrator. Static routes
are simple but lack adaptability to network changes (e.g.,
device failures or traffic changes).
• Example: A predefined path from a router to a destination,
manually set by the network admin.
21
Types of Routing Algorithms
ii. Dynamic Routing Algorithms:
• These algorithms automatically adjust routes based on real-
time network conditions, such as changes in network
topology, failures, or congestion.
• They use routing protocols to exchange network information
and update routing tables dynamically.
• Example: RIP, OSPF, EIGRP, which constantly update
routes to find the best path.
22
Types of Routing Algorithms
5. Deterministic vs. Adaptive Routing Algorithms
i. Deterministic Routing Algorithms: These algorithms
always compute the same path for a given source and
destination, regardless of network conditions.
• The routing decision is based on fixed criteria, like
shortest distance or lowest cost.
• Example: A shortest path algorithm that always sends
data along the same route.
23
Types of Routing Algorithms
ii. Adaptive Routing Algorithms:
• These algorithms change their routing decisions based on
real-time network conditions, such as traffic load, latency,
and link failure.
• They help optimize performance by dynamically adjusting
routes.
• Example: Dynamic routing algorithms in OSPF or EIGRP
that adapt to network changes.
24
Types of Routing Algorithms
• Note the difference:
• Static vs. Dynamic Routing is about how routes are
configured: Static routes are set manually and do not
change, while dynamic routes adjust automatically to
changes in the network.
• Deterministic vs. Adaptive Routing is about how routes
are calculated: Deterministic algorithms always use the
same route, while adaptive algorithms change routes
based on real-time conditions.
25
Types of Routing Algorithms
• Therefore, static/dynamic relates to route setup and
updating, while deterministic/adaptive relates to how
flexible the route selection is in response to network changes.
26
Factors Considered by Routing Algorithms
• Hop Count: The number of routers a packet must traverse to
reach its destination.
• Delay: The time it takes for a packet to travel from source to
destination.
• Bandwidth: The maximum data transfer rate of a link.
• Load: The amount of traffic currently on a link.
• Reliability: The probability of a link remaining operational.
• Cost: A metric assigned to a link based on factors like
distance, bandwidth, or administrative preferences.
27
Routing Protocols vs Algorithms
• Routing Protocols: Define the rules and methods for
communicating and sharing information between routers (like
the GPS or traffic app drivers use to get updates).
• Routing Algorithms: Perform the actual calculations to
determine the best route (like the algorithm inside the GPS
that chooses the best path to take).
• Routing protocols tell routers how to talk to each other,
while routing algorithms figure out the best way to get data
to its destination.
2
8
Routing Protocols & Algorithms Relation
• Routing protocols and routing algorithms are closely related
in computer networks, working together to determine the best
paths for data packets to travel across a network.
• Routing Protocols: These are the rules or standards used
by routers to exchange information about network topology.
They define how routers communicate with each other, share
information about the networks they are connected to, and
make decisions about where to forward packets.
2
9
Routing Protocols & Algorithms Relation
• Routing Algorithms: These are the mathematical formulas
or methods used by routers to calculate the best path for data
packets based on the information provided by routing
protocols. The algorithm evaluates multiple routes and
chooses the optimal one based on certain criteria, like
distance, cost, or time.
3
0
Routing Protocols & Algorithms Relation
1. Routing Protocols Use Routing Algorithms
• Protocols provide data: Routing protocols gather
information about the network, such as the state of
connections, distance between nodes, and link costs, and
share this information between routers.
• Algorithms make decisions: Once the routing protocol
has collected network information, the routing algorithm
uses this data to calculate the best route to forward
packets.
3
1
Routing Protocols & Algorithms Relation
• Routing protocol examples and their Algorithms:
i. Distance-Vector Routing Protocols: E.g., RIP
• Algorithm: Bellman-Ford Algorithm - This algorithm
calculates the shortest path based on the distance (number
of hops). Each router periodically shares its routing table with
neighbours, and the Bellman-Ford algorithm updates the path
based on the shortest number of hops.
3
2
Routing Protocols & Algorithms Relation
ii. Link-State Routing Protocols: E.g., OSPF
• Algorithm: Dijkstra’s Algorithm - OSPF uses Dijkstra’s
algorithm to calculate the shortest path based on the state of
the links (bandwidth, delay, etc.). Routers share information
about all the links in the network, and Dijkstra’s algorithm
finds the shortest path from source to destination by
considering multiple factors, not just hops.
3
3
Routing Protocols & Algorithms Relation
iii. Hybrid Routing Protocols: E.g., EIGRP
• Algorithm: DUAL (Diffusing Update Algorithm) - EIGRP is
a hybrid protocol that combines features of both
distance-vector and link-state protocols. DUAL ensures loop-
free and efficient routes by dynamically calculating the best
path based on the shortest path and network load.
3
4
Routing Protocols & Algorithms Relation
3. Routing Protocols Define Metrics for Routing
Algorithms: Routing protocols define metrics, or criteria, that
routing algorithms use to make decisions. Common metrics
include:
i. Hop count: The number of routers a packet must pass
through.
ii. Bandwidth: The capacity of the links.
iii. Latency: The time it takes for a packet to travel across a
link.
iv. Load: The amount of traffic currently using the network.
v. Reliability: The stability of a connection, based on error
rates and outages.
3
5
Routing Protocols & Algorithms Relation
• For example, in RIP, the routing algorithm uses hop count
as the metric, while in OSPF, the algorithm can use various
metrics like bandwidth and delay.
4. Routing Tables: Routing protocols use routing
algorithms to create and update routing tables. These
tables store the information about which path to take for
each possible destination. The routing table entries are
based on the results of routing algorithms calculating the
best possible paths using metrics shared by routing
protocols.
3
6
Routing Protocols & Algorithms Relation
5. Interaction: Dynamic and Static Routing
i. Dynamic Routing: In dynamic routing, routing protocols and
algorithms work continuously to update routes in response to
changes in the network, such as new devices or link failures.
Protocols like RIP, OSPF, and EIGRP are dynamic, as they share
network information and allow algorithms to calculate the best
path automatically.
ii. Static Routing: In static routing, network administrators
manually configure routes, and no dynamic algorithms are
involved. However, even in static routing, the principles of routing
algorithms (like the shortest path or priority-based routing) are
still applied when configuring the paths.
3
7
Protocols & Algorithms Relationship Summary
• Routing protocols handle the communication and sharing of
network topology information between routers.
• Routing algorithms use this information to calculate the best
path for data transmission.
• Routing protocols provide the "what" and "how" of data
collection, while routing algorithms are the "brain" that decides
the best routes based on the collected information.
3
8
Congestion Algorithms
• Network congestion occurs when the demand for network
resources (bandwidth, processing power, etc.) exceeds the
available capacity.
• This leads to a degradation in network performance,
characterized by increased latency, packet loss, and reduced
throughput.
• When the amount of data being transmitted through a network
exceeds its capacity, packets get delayed, dropped, or even lost,
which negatively impacts the quality of communication.
• Congestion affects the overall flow of traffic and can happen in
different parts of the network, such as routers, switches, or
transmission lines.
3
9
Congestion Algorithms
• Network congestion occurs when a network node or link is
carrying more data than it can handle, leading to a
degradation in network performance.
• When the amount of data being transmitted through a network
exceeds its capacity, packets get delayed, dropped, or even
lost, which negatively impacts the quality of communication.
• Congestion affects the overall flow of traffic and can happen
in different parts of the network, such as routers, switches, or
transmission lines.
4
0
Congestion Algorithms Analogy
• Imagine a busy highway like Thika superhighway during rush
hour @ 9 am and 6 pm.
• Vehicles (i.e., data packets) are trying to move from one point
to another.
• If too many cars enter the highway at once, it becomes
congested, leading to slower speeds and even traffic jams.
• Congestion control algorithms in networking are similar to
traffic control systems on highways.
• They aim to regulate the flow of data packets to prevent
network congestion.
4
1
Goals of Congestion Control
1. Efficient Bandwidth Utilization: Maximize the use of
available bandwidth while avoiding bottlenecks.
2. Fairness: Ensure fair distribution of network resources
among users, preventing one connection from dominating.
3. High Throughput: Maintain a high rate of successful data
transmission over the network.
4. Low Latency: Minimize delays in data transmission to
improve responsiveness, especially in real-time applications.
5. Stability: Maintain a stable network with minimal fluctuations
in speed or performance during periods of congestion.
4
2
Goals of Congestion Control
6. Scalability: Adapt to varying network sizes and conditions,
handling both small and large networks effectively.
7. Reliability: Ensure data packets reach their destination even
under congested conditions, maintaining data integrity.
8. Adaptability: Respond to changing network conditions
quickly, scaling back or increasing data flow as required.
4
3
Causes of Network Congestion
• Before we discuss how to control traffic congestion, we first
need to understand the causes of congestion. They include:
1. High Network Traffic Load: When many devices try to send
large volumes of data simultaneously, the network’s capacity
may be insufficient to handle it, leading to congestion. For
example, during graduation ceremony, or when the results are
released.
2. Insufficient Bandwidth: If the bandwidth of a network link is
too low relative to the amount of data being transmitted,
packets pile up, causing delays and packet drops. If the
university didn’t invest in enough bandwidth, access to virtual
campus resources /WiFi would be challenging. 4
4
Causes of Network Congestion
3. Network Failures:
i. Hardware Malfunctions: Faulty routers, switches, or servers can
disrupt network connectivity and lead to congestion.
ii. Cable Damage: Physical damage to cables, whether due to
accidental cuts, natural disasters, or rodent infestation, can impair
network performance.
iii. Power Outages: Loss of power supply can shut down network
devices, causing service interruptions and congestion.
4. Malicious Attacks:
i. Distributed Denial of Service (DDoS) Attacks: Overwhelming a
network with a flood of traffic from multiple sources, rendering it
inaccessible to legitimate users.
4
5
Causes of Network Congestion
i. Port Scans and Intrusion Attempts: Unauthorized access
attempts can consume network resources and degrade
performance.
ii. Malware Infections: Malicious software can compromise network
devices, slowing down operations and potentially spreading to
other systems.
iii. Man-in-the-Middle Attacks: Interception and manipulation of
network traffic, leading to data theft or unauthorized access.
iv. Zero-Day Exploits: Exploiting vulnerabilities in software before
patches are available, allowing attackers to gain unauthorized
access.
4
6
Causes of Network Congestion
5. Inefficient Network Design: Poor network topology, where
the data paths are not optimally designed, can lead to
bottlenecks that result in congestion.
6. Burst Traffic: Some applications, like video streaming or file
transfers, send data in large bursts, overwhelming the
network with sudden spikes of traffic, contributing to
congestion.
7. Network Device Limitations: Routers, switches, and other
networking devices have limits on how much data they can
process or store. When these limits are exceeded, congestion
occurs.
4
7
Causes of Network Congestion
8. Protocol Overhead: Some network protocols, especially
those like TCP/IP that involve multiple rounds of
communication to ensure data integrity, can add overhead
and exacerbate congestion if not managed properly.
9. Resource Contention: In shared networks (e.g., Wi-Fi or a
LAN), multiple users or devices may compete for the same
resources, leading to network congestion.
10.Background Processes: Background applications, such as
software updates or file backups, that consume bandwidth
without user awareness can overload the network, especially
at campuses, offices or home.
4
8
Congestion Impact on Network Performance
1. Increased Latency (Delay): Congestion causes data packets
to queue up, resulting in significant delays. This affects real-
time applications like voice and video calls, which rely on low-
latency transmission.
2. Packet Loss: When a network is congested, routers and
switches may drop packets because their buffer spaces are
full. This results in data retransmission, further utilization of
resources, and hence worsening network congestion.
4
9
Congestion Impact on Network Performance
1. Reduced Throughput: Due to dropped packets and
retransmissions, the effective throughput (the rate at which
data is successfully delivered) is reduced. The network
carries less useful data as it spends time recovering from
packet losses.
2. Jitter: Congestion can cause variability in the time it takes for
packets to reach their destination (jitter). This impacts time-
sensitive services such as streaming, video conferencing, and
online gaming. Causes of jitter include routing changes,
hardware issues, software bugs, etc.
5
0
Congestion Impact on Network Performance
3. Network Timeouts: In cases of extreme congestion, network
services might time out, leading to interrupted communication.
Applications may also terminate or malfunction due to
constant delays.
4. Degraded User Experience: For end-users, congestion
results in slow loading times, interrupted connections, and
poor quality of services, especially for applications like
streaming, online gaming, or VoIP (Voice over IP).
5
1
Congestion Impact on Network Performance
5. Application Performance Degradation: Congestion leads to
slower performance of applications that depend on fast data
transmission. For example, cloud-based services may
become unresponsive or lag significantly.
6. Inefficient Use of Network Resources: When packet loss
and retransmission occur due to congestion, the network
ends up wasting resources to recover from errors, further
straining its capacity.
5
2
Congestion Control Challenges
1. Network Heterogeneity: Different devices, link speeds, and
network types make it challenging to implement a one-size-
fits-all solution.
2. Dynamic Traffic Patterns: Traffic on networks is
unpredictable, and sudden bursts can quickly cause
congestion.
3. Latency and Packet Loss: Congestion control algorithms
must handle delays and dropped packets without significantly
reducing performance.
4. Scalability: Managing congestion across large and complex
networks, such as the internet, requires robust algorithms that
scale well. 5
3
Congestion Control Challenges
5. Lack of Centralized Control: In decentralized networks,
such as the internet, it's challenging to monitor and control
congestion across different networks.
6. Trade-offs between Throughput and Fairness: Balancing
high throughput with fairness across users can be difficult,
especially when resources are limited.
7. Adaptive Behaviour: Algorithms must quickly adjust to avoid
or recover from congestion, which is challenging in rapidly
changing network conditions.
5
4
Congestion Control Challenges
8. Interference with Existing Protocols: New congestion
control mechanisms can conflict with established protocols,
making deployment challenging.
9. Security and Robustness: Congestion control mechanisms
need to be resilient to security threats, such as denial-of-
service attacks that artificially create congestion.
10.Energy Efficiency: In mobile or IoT networks, energy-
efficient congestion control is essential to prolong battery life
while maintaining performance.
5
5
Congestion Metrics
• Congestion metrics are measurements that help assess the
level of congestion in a network.
• These metrics provide insights into network performance,
allowing administrators to identify and address congestion
issues effectively.
• These metrics provide crucial information about network
health and are used by congestion control algorithms to
adjust data transmission rates, helping to maintain optimal
performance even under heavy network load.
5
6
Congestion Metrics
5
7
Congestion Metrics
4. Queue Length: The number of packets waiting to be
processed at a network node, with long queues indicating
potential congestion as packets stack up waiting to be sent.
5. Jitter: The variation in packet arrival times, which can disrupt
time-sensitive applications like video calls when congestion
causes inconsistent delivery.
6. Round-Trip Time (RTT): The time for a packet to travel to its
destination and back, with increased RTT typically pointing to
network congestion or inefficient routes.
5
8
Congestion Metrics
7. Bandwidth Utilization: The percentage of the network's total
bandwidth currently in use, where high utilization often means
the network is approaching or at its capacity.
8. Retransmission Rate: The frequency of resending packets
due to initial transmission failures, often a sign of congestion
or poor network quality.
9. Congestion Window Size: A TCP parameter that adjusts the
number of packets a sender can transmit before
acknowledgment, with a reduced window size indicating
detected congestion.
5
9
Congestion Metrics
10.Link Utilization: The degree to which a specific network
link's capacity is being used, with high link utilization implying
the risk of congestion on that link.
6
0
Congestion Control Algorithms
• Congestion control algorithms are essential for maintaining
network stability and optimal performance.
• By understanding these algorithms and their underlying
principles, network administrators can effectively manage
network congestion and ensure optimal performance.
6
1
Congestion Control Algorithms
1. TCP Congestion Control (e.g., TCP Tahoe):
• This algorithm gradually increases the data rate until
congestion is detected.
• When congestion occurs, it cuts the rate drastically and
then gradually increases again, helping prevent further
congestion while maximizing efficiency. It is also called
packet loss-based control algorithm.
6
2
TCP Congestion Control Analogy
• TCP congestion control is like a careful driver on a busy road,
starting slow, adjusting speed based on traffic, slowing down
when there's congestion, and cautiously resuming speed when
the road clears.
6
3
Congestion Control Algorithms
2. Queue Length Management (e.g., Random Early
Detection - RED):
• These algorithms monitor the queue length and start dropping
packets randomly as queues get full, signalling senders to
slow down before congestion becomes severe.
• RED is a popular AQM scheme that proactively detects
congestion before it becomes severe. It's widely used in
routers and switches to prevent congestion collapse.
6
4
Congestion Control Algorithms
3. Explicit Congestion Notification (ECN):
• ECN allows routers to signal congestion to senders without
dropping packets. This early warning enables senders to
adjust their transmission rate proactively, reducing congestion
without packet loss.
• ECN is used in conjunction with TCP to provide explicit
feedback about congestion. It's a more efficient way to signal
congestion than packet loss.
6
5
Congestion Control Algorithms
4. Leaky Bucket Algorithm:
• This algorithm "leaks" packets out at a steady rate,
controlling the data flow regardless of how fast packets
arrive. If the incoming data rate is too high, the excess
packets are dropped, preventing congestion by allowing
only a fixed rate of outgoing traffic.
• Widely used in traffic shaping and rate limiting, it's less
commonly used for direct congestion control. It's often
used in conjunction with other algorithms to provide
additional control.
6
6
Leaky Bucket Algorithm Analogy
• Imagine a bucket with a small hole at the bottom.
• Water (representing data packets) is poured into the bucket at
varying rates, but it only leaks out through the hole at a
constant rate.
• If too much water is poured in, the bucket overflows.
6
7
Congestion Control Algorithms
5. Additive Increase Multiplicative Decrease (AIMD):
• AIMD increases the sending rate gradually when no
congestion is detected, and reduces it significantly
upon detecting congestion.
• This ensures a balance, allowing efficient usage of
network resources without overwhelming the network.
• This is a core principle used in many congestion control
algorithms, including TCP.
• AIMD is not a standalone algorithm but rather a
technique used within other algorithms.
6
8
AIMD Analogy
• Imagine driving on a busy road.
• You gradually increase your speed when traffic is light
(additive increase).
• But when the road gets crowded, you slow down quickly
(multiplicative decrease) to avoid collisions.
6
9
Congestion Control Algorithms
6. Bottleneck Bandwidth and Round-Trip Time (BBR):
• BBR adjusts the sending rate based on the available
bandwidth and round-trip time, aiming to make the
most efficient use of the network's capacity without
causing congestion.
• BBR is a relatively newer algorithm that aims to
maximize throughput while minimizing latency. It's
gaining popularity but is not as widely deployed as
TCP-based algorithms.
7
0
BBR Analogy
• Picture a bus route optimized to carry passengers as
quickly and efficiently as possible.
• The bus adjusts its speed based on how crowded each
stop is and the total travel time needed for a full loop,
ensuring it meets demand without overwhelming stops.
7
1
Choosing the Right Algorithm
• The choice of congestion control algorithm depends on
various factors, including:
1. Network Topology
• Network topology refers to the arrangement and
interconnection of devices within a network, which affects
how they communicate. The size and complexity of the
network dictate the need for simple algorithms in smaller
networks and more sophisticated ones in larger, complex
networks to effectively manage data flows.
7
2
Choosing the Right Algorithm
2. Traffic Patterns
• Traffic patterns describe the characteristics of data flow,
including the volume and types of data being transmitted.
• Different traffic types, such as real-time communications or
bulk transfers, have distinct requirements, necessitating
algorithms that cater specifically to their needs for latency
and throughput.
7
3
Choosing the Right Algorithm
3. Network Performance Requirements
• Network performance requirements encompass metrics
like throughput, latency, and packet loss, which define the
desired operational standards for the network. Selecting an
algorithm should align with these goals, as some
algorithms may prioritize throughput while others focus on
maintaining low latency or minimizing packet loss.
7
4
Choosing the Right Algorithm
4. Computational Resources: Assess the available hardware
resources, including processing power (CPU/GPU) and
memory, to determine if the algorithm can run efficiently within
those constraints.
5. Scalability: Ensure that the algorithm can handle increasing
amounts of data without a significant drop in performance,
especially if you expect your dataset to grow over time.
6. Robustness: Choose an algorithm that maintains strong
performance even when the data is messy, contains noise, or
has outliers, as this will lead to more reliable results.
7
5
Choosing the Right Algorithm
7. Ease of Use and Implementation: Look for an algorithm that
is straightforward to implement and has existing libraries or
frameworks to simplify the coding process, making it easier
for your team to work with.
8. Cross-Validation and Testing: Validate the algorithm's
effectiveness by testing it on different subsets of your data
through techniques like cross-validation to ensure it
generalizes well to unseen data.
9. Flexibility and Adaptability: Opt for an algorithm that can
easily adapt to new data or changing conditions, as this
flexibility can be crucial in dynamic environments where
information evolves. 7
6
Further Reading
• Look for YouTube tutorials and explore how the various
congestion control algorithms work.
7
7