1. The document discusses routing protocols and the distance vector routing algorithm.
2. The distance vector algorithm is a decentralized routing algorithm where each router maintains a distance vector with the estimated distance to every destination and periodically shares this information with neighboring routers.
3. Over multiple iterations, each router will update its distance vector using the Bellman-Ford equation based on information received from neighbors until the estimates converge to the actual least cost paths.
routing1 1X3 Router (capable of routing the data packets.pptJANARTHANANS22
A 1X3 Router (capable of routing the data packets to three different clients form a single source network) was designed, including a register module that can hold data packets momentarily, to pass onto three different FIFO memories along with a Finite State Machine and a Synchronizer that can manipulate the internal
This document discusses routing algorithms at the network layer. It introduces link state and distance vector routing algorithms, which use either global or decentralized network topology information. Dijkstra's link-state algorithm is then explained in detail, showing how it uses global link cost information to iteratively find the least-cost path from a source node to all other nodes. The example demonstrates how Dijkstra's algorithm builds a shortest path tree with complexity O(n2). Routing oscillations are also discussed when link costs depend on traffic volume.
The document describes routing algorithms used in computer networks. It discusses two main types of routing algorithms: link-state algorithms and distance-vector algorithms. Link-state algorithms use a complete map of the entire network topology to calculate the shortest paths between all nodes, while distance-vector algorithms use an iterative process where each router shares routing information with neighbors to determine the shortest paths. The document then provides examples of how Dijkstra's algorithm, a link-state algorithm, and the Bellman-Ford distance-vector algorithm work to calculate the optimal paths through a sample network.
This document provides an overview of key concepts in the network layer, including the architecture of routers, IPv6, routing algorithms like link state and distance vector, and routing protocols like RIP, OSPF, and BGP. It discusses router functions such as routing algorithms/protocols and packet forwarding. It also covers topics like switching fabrics, queuing, and hierarchical routing between autonomous systems.
The document discusses hierarchical routing in computer networks. It describes how routing is divided into intra-autonomous system (intra-AS) routing within an AS and inter-autonomous system (inter-AS) routing between ASes. Special routers called gateways perform both intra-AS routing with other routers in their AS and inter-AS routing with gateways in other ASes. This hierarchical structure allows scaling to large networks with many destinations by aggregating routers into regions.
Bellman Ford Routing Algorithm-Computer NetworksSimranJain63
The Bellman-Ford routing algorithm computes the shortest paths from a single source vertex to all other vertices in a weighted digraph. It is also known as the distance vector algorithm. The algorithm uses the principle of relaxation to iteratively update the cost of the shortest paths by relaxing edges until it either finds the shortest paths or detects a negative cost cycle. It runs in O(|V||E|) time in the worst case. Each node maintains a distance vector with the estimated cost to all other nodes and shares this information with neighbors to iteratively update the costs until reaching an optimal solution.
The network layer is responsible for transporting data segments from source to destination hosts. It encapsulates segments into datagrams and delivers them to the transport layer. Network layer protocols run on every host and router. Routers examine header fields to forward datagrams appropriately based on destination addresses. The network layer handles addressing, routing, and intermediate forwarding of datagrams between source and destination hosts.
Video Conferencing
❏ IPTV
❏ Online Gaming
❏ Software Distribution
❏ Stock Quote Distribution
❏ News Feeds
Broadcasting:
● One source and all destinations on the subnet.
● The relationship is one to all.
● The destination address is a special broadcast address.
Dijkstra's algorithm finds the shortest paths between vertices in a graph with non-negative edge weights. It works by maintaining distances from the source vertex to all other vertices, initially setting all distances to infinity except the source which is 0. It then iteratively selects the unvisited vertex with the lowest distance, marks it as visited, and updates the distances to its neighbors if a shorter path is found through the selected vertex. This continues until all vertices are visited, at which point the distances will be the shortest paths from the source vertex.
This document contains slides summarizing key concepts about network layer control planes from the textbook "Computer Networking: A Top Down Approach". The slides cover traditional routing algorithms like link state (e.g. Dijkstra's algorithm) and distance vector (e.g. Bellman-Ford), as well as software defined networking control planes. Specific routing protocols discussed include OSPF, BGP, OpenFlow and SDN controllers. The document also mentions ICMP and network management using SNMP.
This document provides an overview of internet architecture and routing protocols. It discusses the key concepts of routing protocols including how they communicate between source and destination but do not move data, and how they each have their own algorithm to determine the best path. It then covers different types of routing protocols including static, default, distance vector and link state protocols. For each it provides examples (e.g. RIP, OSPF, EIGRP) and discusses their characteristics and advantages/disadvantages. Finally, it dives deeper into the algorithms and processes used for link state routing protocols.
DSDV is a proactive routing protocol that uses destination sequence numbers to ensure loop-free routing in mobile ad hoc networks. Each node maintains a routing table with destination addresses, next hops, metrics, and sequence numbers. Nodes periodically broadcast their full routing tables, and also broadcast updates immediately after changes to avoid counting to infinity problems. DSDV aims to limit unnecessary route advertisements through a mechanism to dampen fluctuations in routing tables.
DSDV is a proactive routing protocol that uses destination sequence numbers to ensure loop-free routing in mobile ad hoc networks. Each node maintains a routing table with destination addresses, next hops, metrics, and sequence numbers. Nodes periodically broadcast their full routing tables, and also broadcast updates immediately after changes to avoid loops and converge quickly. DSDV addresses issues with traditional distance vector routing through the use of sequence numbers and by damping route fluctuations.
The document provides an overview of networking concepts including the 7-layer OSI model, network layer protocols like IP, and transport layer protocols like TCP and UDP. It discusses key topics such as packet structure, IP addressing, forwarding and routing, and transport layer functions including connection establishment, reliability, and congestion/flow control.
1) Testing digital circuits involves detecting faults that could lead to failures or errors. Common faults include stuck-at faults where a line is stuck at logic 0 or 1.
2) Test patterns are generated to detect faults by sensitizing a path from the fault to an output and justifying input values. Boolean difference and D-algorithms are used.
3) Faults in PLA circuits include growth, disappearance, shrinkage and appearance faults affecting the AND and OR planes. Their effect is modeled and tests generated.
4) Fault tolerance techniques include avoidance, detection using redundancy, masking using voting, and dynamic reconfiguration to replace faulty components. Error detecting and correcting codes are also used.
The document discusses and compares different routing algorithms:
1. It classifies routing protocols as either link state or distance vector, and describes how each type works. Link state algorithms use flooding to share link information, while distance vector algorithms iteratively calculate the best paths.
2. It explains that distance vector algorithms can have issues with counting to infinity and routing loops. Techniques like poison reverse are used to address this.
3. It notes that link state algorithms have faster convergence but require more overhead, while distance vector algorithms are simpler but can be slower to converge.
4. Hierarchical routing is introduced as a way to scale routing by organizing routers into autonomous systems (AS) with inter and intra-
This document discusses graph neural networks and their applications. It describes how graph neural networks work by having each node aggregate information from its neighbors using neural networks. This allows each node to learn representations that are informed by its local graph structure. The document also discusses some key properties of graph neural networks, such as their ability to learn different computation graphs for different nodes, their failure cases when nodes are isomorphic, and how adding position information like anchors can help distinguish nodes.
The document discusses classless addressing and subnetting in computer networks. It explains that classless addressing allocates address blocks in variable sizes based on need rather than fixed classes, and addresses are denoted using CIDR notation with a mask length. The document also provides an example of how to design subnets for an organization granted a block of IP addresses.
This document provides an overview of routing protocols. It defines routing protocols as the set of rules used by routers to communicate between source and destination networks. Routing protocols are then categorized as either static or dynamic. Static routing requires manual configuration while dynamic routing allows routers to automatically share information and update routes. Specific examples of routing protocols discussed include OSPF (Open Shortest Path First) as a link state protocol, BGP (Border Gateway Protocol) as an exterior gateway protocol, and EIGRP (Enhanced Interior Gateway Routing Protocol) as a hybrid protocol.
Dear SICPA Team,
Please find attached a document outlining my professional background and experience.
I remain at your disposal should you have any questions or require further information.
Best regards,
Fabien Keller
The main purpose of the current study was to formulate an empirical expression for predicting the axial compression capacity and axial strain of concrete-filled plastic tubular specimens (CFPT) using the artificial neural network (ANN). A total of seventy-two experimental test data of CFPT and unconfined concrete were used for training, testing, and validating the ANN models. The ANN axial strength and strain predictions were compared with the experimental data and predictions from several existing strength models for fiber-reinforced polymer (FRP)-confined concrete. Five statistical indices were used to determine the performance of all models considered in the present study. The statistical evaluation showed that the ANN model was more effective and precise than the other models in predicting the compressive strength, with 2.8% AA error, and strain at peak stress, with 6.58% AA error, of concrete-filled plastic tube tested under axial compression load. Similar lower values were obtained for the NRMSE index.
Ad
More Related Content
Similar to Chapter_5_v8.0Routing Protocol for Computer network from kurose and ross (20)
The document discusses hierarchical routing in computer networks. It describes how routing is divided into intra-autonomous system (intra-AS) routing within an AS and inter-autonomous system (inter-AS) routing between ASes. Special routers called gateways perform both intra-AS routing with other routers in their AS and inter-AS routing with gateways in other ASes. This hierarchical structure allows scaling to large networks with many destinations by aggregating routers into regions.
Bellman Ford Routing Algorithm-Computer NetworksSimranJain63
The Bellman-Ford routing algorithm computes the shortest paths from a single source vertex to all other vertices in a weighted digraph. It is also known as the distance vector algorithm. The algorithm uses the principle of relaxation to iteratively update the cost of the shortest paths by relaxing edges until it either finds the shortest paths or detects a negative cost cycle. It runs in O(|V||E|) time in the worst case. Each node maintains a distance vector with the estimated cost to all other nodes and shares this information with neighbors to iteratively update the costs until reaching an optimal solution.
The network layer is responsible for transporting data segments from source to destination hosts. It encapsulates segments into datagrams and delivers them to the transport layer. Network layer protocols run on every host and router. Routers examine header fields to forward datagrams appropriately based on destination addresses. The network layer handles addressing, routing, and intermediate forwarding of datagrams between source and destination hosts.
Video Conferencing
❏ IPTV
❏ Online Gaming
❏ Software Distribution
❏ Stock Quote Distribution
❏ News Feeds
Broadcasting:
● One source and all destinations on the subnet.
● The relationship is one to all.
● The destination address is a special broadcast address.
Dijkstra's algorithm finds the shortest paths between vertices in a graph with non-negative edge weights. It works by maintaining distances from the source vertex to all other vertices, initially setting all distances to infinity except the source which is 0. It then iteratively selects the unvisited vertex with the lowest distance, marks it as visited, and updates the distances to its neighbors if a shorter path is found through the selected vertex. This continues until all vertices are visited, at which point the distances will be the shortest paths from the source vertex.
This document contains slides summarizing key concepts about network layer control planes from the textbook "Computer Networking: A Top Down Approach". The slides cover traditional routing algorithms like link state (e.g. Dijkstra's algorithm) and distance vector (e.g. Bellman-Ford), as well as software defined networking control planes. Specific routing protocols discussed include OSPF, BGP, OpenFlow and SDN controllers. The document also mentions ICMP and network management using SNMP.
This document provides an overview of internet architecture and routing protocols. It discusses the key concepts of routing protocols including how they communicate between source and destination but do not move data, and how they each have their own algorithm to determine the best path. It then covers different types of routing protocols including static, default, distance vector and link state protocols. For each it provides examples (e.g. RIP, OSPF, EIGRP) and discusses their characteristics and advantages/disadvantages. Finally, it dives deeper into the algorithms and processes used for link state routing protocols.
DSDV is a proactive routing protocol that uses destination sequence numbers to ensure loop-free routing in mobile ad hoc networks. Each node maintains a routing table with destination addresses, next hops, metrics, and sequence numbers. Nodes periodically broadcast their full routing tables, and also broadcast updates immediately after changes to avoid counting to infinity problems. DSDV aims to limit unnecessary route advertisements through a mechanism to dampen fluctuations in routing tables.
DSDV is a proactive routing protocol that uses destination sequence numbers to ensure loop-free routing in mobile ad hoc networks. Each node maintains a routing table with destination addresses, next hops, metrics, and sequence numbers. Nodes periodically broadcast their full routing tables, and also broadcast updates immediately after changes to avoid loops and converge quickly. DSDV addresses issues with traditional distance vector routing through the use of sequence numbers and by damping route fluctuations.
The document provides an overview of networking concepts including the 7-layer OSI model, network layer protocols like IP, and transport layer protocols like TCP and UDP. It discusses key topics such as packet structure, IP addressing, forwarding and routing, and transport layer functions including connection establishment, reliability, and congestion/flow control.
1) Testing digital circuits involves detecting faults that could lead to failures or errors. Common faults include stuck-at faults where a line is stuck at logic 0 or 1.
2) Test patterns are generated to detect faults by sensitizing a path from the fault to an output and justifying input values. Boolean difference and D-algorithms are used.
3) Faults in PLA circuits include growth, disappearance, shrinkage and appearance faults affecting the AND and OR planes. Their effect is modeled and tests generated.
4) Fault tolerance techniques include avoidance, detection using redundancy, masking using voting, and dynamic reconfiguration to replace faulty components. Error detecting and correcting codes are also used.
The document discusses and compares different routing algorithms:
1. It classifies routing protocols as either link state or distance vector, and describes how each type works. Link state algorithms use flooding to share link information, while distance vector algorithms iteratively calculate the best paths.
2. It explains that distance vector algorithms can have issues with counting to infinity and routing loops. Techniques like poison reverse are used to address this.
3. It notes that link state algorithms have faster convergence but require more overhead, while distance vector algorithms are simpler but can be slower to converge.
4. Hierarchical routing is introduced as a way to scale routing by organizing routers into autonomous systems (AS) with inter and intra-
This document discusses graph neural networks and their applications. It describes how graph neural networks work by having each node aggregate information from its neighbors using neural networks. This allows each node to learn representations that are informed by its local graph structure. The document also discusses some key properties of graph neural networks, such as their ability to learn different computation graphs for different nodes, their failure cases when nodes are isomorphic, and how adding position information like anchors can help distinguish nodes.
The document discusses classless addressing and subnetting in computer networks. It explains that classless addressing allocates address blocks in variable sizes based on need rather than fixed classes, and addresses are denoted using CIDR notation with a mask length. The document also provides an example of how to design subnets for an organization granted a block of IP addresses.
This document provides an overview of routing protocols. It defines routing protocols as the set of rules used by routers to communicate between source and destination networks. Routing protocols are then categorized as either static or dynamic. Static routing requires manual configuration while dynamic routing allows routers to automatically share information and update routes. Specific examples of routing protocols discussed include OSPF (Open Shortest Path First) as a link state protocol, BGP (Border Gateway Protocol) as an exterior gateway protocol, and EIGRP (Enhanced Interior Gateway Routing Protocol) as a hybrid protocol.
Dear SICPA Team,
Please find attached a document outlining my professional background and experience.
I remain at your disposal should you have any questions or require further information.
Best regards,
Fabien Keller
The main purpose of the current study was to formulate an empirical expression for predicting the axial compression capacity and axial strain of concrete-filled plastic tubular specimens (CFPT) using the artificial neural network (ANN). A total of seventy-two experimental test data of CFPT and unconfined concrete were used for training, testing, and validating the ANN models. The ANN axial strength and strain predictions were compared with the experimental data and predictions from several existing strength models for fiber-reinforced polymer (FRP)-confined concrete. Five statistical indices were used to determine the performance of all models considered in the present study. The statistical evaluation showed that the ANN model was more effective and precise than the other models in predicting the compressive strength, with 2.8% AA error, and strain at peak stress, with 6.58% AA error, of concrete-filled plastic tube tested under axial compression load. Similar lower values were obtained for the NRMSE index.
Welcome to the May 2025 edition of WIPAC Monthly celebrating the 14th anniversary of the WIPAC Group and WIPAC monthly.
In this edition along with the usual news from around the industry we have three great articles for your contemplation
Firstly from Michael Dooley we have a feature article about ammonia ion selective electrodes and their online applications
Secondly we have an article from myself which highlights the increasing amount of wastewater monitoring and asks "what is the overall" strategy or are we installing monitoring for the sake of monitoring
Lastly we have an article on data as a service for resilient utility operations and how it can be used effectively.
Optimization techniques can be divided to two groups: Traditional or numerical methods and methods based on stochastic. The essential problem of the traditional methods, that by searching the ideal variables are found for the point that differential reaches zero, is staying in local optimum points, can not solving the non-linear non-convex problems with lots of constraints and variables, and needs other complex mathematical operations such as derivative. In order to satisfy the aforementioned problems, the scientists become interested on meta-heuristic optimization techniques, those are classified into two essential kinds, which are single and population-based solutions. The method does not require unique knowledge to the problem. By general knowledge the optimal solution can be achieved. The optimization methods based on population can be divided into 4 classes from inspiration point of view and physical based optimization methods is one of them. Physical based optimization algorithm: that the physical rules are used for updating the solutions are:, Lighting Attachment Procedure Optimization (LAPO), Gravitational Search Algorithm (GSA) Water Evaporation Optimization Algorithm, Multi-Verse Optimizer (MVO), Galaxy-based Search Algorithm (GbSA), Small-World Optimization Algorithm (SWOA), Black Hole (BH) algorithm, Ray Optimization (RO) algorithm, Artificial Chemical Reaction Optimization Algorithm (ACROA), Central Force Optimization (CFO) and Charged System Search (CSS) are some of physical methods. In this paper physical and physic-chemical phenomena based optimization methods are discuss and compare with other optimization methods. Some examples of these methods are shown and results compared with other well known methods. The physical phenomena based methods are shown reasonable results.
Welcome to MIND UP: a special presentation for Cloudvirga, a Stewart Title company. In this session, we’ll explore how you can “mind up” and unlock your potential by using generative AI chatbot tools at work.
Curious about the rise of AI chatbots? Unsure how to use them-or how to use them safely and effectively in your workplace? You’re not alone. This presentation will walk you through the practical benefits of generative AI chatbots, highlight best practices for safe and responsible use, and show how these tools can help boost your productivity, streamline tasks, and enhance your workday.
Whether you’re new to AI or looking to take your skills to the next level, you’ll find actionable insights to help you and your team make the most of these powerful tools-while keeping security, compliance, and employee well-being front and center.
この資料は、Roy FieldingのREST論文(第5章)を振り返り、現代Webで誤解されがちなRESTの本質を解説しています。特に、ハイパーメディア制御やアプリケーション状態の管理に関する重要なポイントをわかりやすく紹介しています。
This presentation revisits Chapter 5 of Roy Fielding's PhD dissertation on REST, clarifying concepts that are often misunderstood in modern web design—such as hypermedia controls within representations and the role of hypermedia in managing application state.
OPTIMIZING DATA INTEROPERABILITY IN AGILE ORGANIZATIONS: INTEGRATING NONAKA’S...ijdmsjournal
Agile methodologies have transformed organizational management by prioritizing team autonomy and
iterative learning cycles. However, these approaches often lack structured mechanisms for knowledge
retention and interoperability, leading to fragmented decision-making, information silos, and strategic
misalignment. This study proposes an alternative approach to knowledge management in Agile
environments by integrating Ikujiro Nonaka and Hirotaka Takeuchi’s theory of knowledge creation—
specifically the concept of Ba, a shared space where knowledge is created and validated—with Jürgen
Habermas’s Theory of Communicative Action, which emphasizes deliberation as the foundation for trust
and legitimacy in organizational decision-making. To operationalize this integration, we propose the
Deliberative Permeability Metric (DPM), a diagnostic tool that evaluates knowledge flow and the
deliberative foundation of organizational decisions, and the Communicative Rationality Cycle (CRC), a
structured feedback model that extends the DPM, ensuring long-term adaptability and data governance.
This model was applied at Livelo, a Brazilian loyalty program company, demonstrating that structured
deliberation improves operational efficiency and reduces knowledge fragmentation. The findings indicate
that institutionalizing deliberative processes strengthens knowledge interoperability, fostering a more
resilient and adaptive approach to data governance in complex organizations.
This research presents the optimization techniques for reinforced concrete waffle slab design because the EC2 code cannot provide an efficient and optimum design. Waffle slab is mostly used where there is necessity to avoid column interfering the spaces or for a slab with large span or as an aesthetic purpose. Design optimization has been carried out here with MATLAB, using genetic algorithm. The objective function include the overall cost of reinforcement, concrete and formwork while the variables comprise of the depth of the rib including the topping thickness, rib width, and ribs spacing. The optimization constraints are the minimum and maximum areas of steel, flexural moment capacity, shear capacity and the geometry. The optimized cost and slab dimensions are obtained through genetic algorithm in MATLAB. The optimum steel ratio is 2.2% with minimum slab dimensions. The outcomes indicate that the design of reinforced concrete waffle slabs can be effectively carried out using the optimization process of genetic algorithm.
Newly poured concrete opposing hot and windy conditions is considerably susceptible to plastic shrinkage cracking. Crack-free concrete structures are essential in ensuring high level of durability and functionality as cracks allow harmful instances or water to penetrate in the concrete resulting in structural damages, e.g. reinforcement corrosion or pressure application on the crack sides due to water freezing effect. Among other factors influencing plastic shrinkage, an important one is the concrete surface humidity evaporation rate. The evaporation rate is currently calculated in practice by using a quite complex Nomograph, a process rather tedious, time consuming and prone to inaccuracies. In response to such limitations, three analytical models for estimating the evaporation rate are developed and evaluated in this paper on the basis of the ACI 305R-10 Nomograph for “Hot Weather Concreting”. In this direction, several methods and techniques are employed including curve fitting via Genetic Algorithm optimization and Artificial Neural Networks techniques. The models are developed and tested upon datasets from two different countries and compared to the results of a previous similar study. The outcomes of this study indicate that such models can effectively re-develop the Nomograph output and estimate the concrete evaporation rate with high accuracy compared to typical curve-fitting statistical models or models from the literature. Among the proposed methods, the optimization via Genetic Algorithms, individually applied at each estimation process step, provides the best fitting result.
Citizen Observatories (COs) are innovative mechanisms to engage citizens in monitoring and addressing environmental and societal challenges. However, their effectiveness hinges on seamless data crowdsourcing, high-quality data analysis, and impactful data-driven decision-making. This paper validates how the GREENGAGE project enables and encourages the accomplishment of the Citizen Science Loop within COs, showcasing how its digital infrastructure and knowledge assets facilitate the co-production of thematic co-explorations. By systematically structuring the Citizen Science Loop—from problem identification to impact assessment—we demonstrate how GREENGAGE enhances data collection, analysis, and evidence exposition. For that, this paper illustrates how the GREENGAGE approach and associated technologies have been successfully applied at a university campus to conduct an air quality and public space suitability thematic co-exploration.
Chapter_5_v8.0Routing Protocol for Computer network from kurose and ross
1. Routing protocol goal: determine “good”
paths (equivalently, routes), from sending
hosts to receiving host, through network of
routers
path: sequence of routers packets
traverse from given initial source host to
final destination host
“good”: least “cost”, “fastest”, “least
congested”
routing: a “top-10” networking challenge!
Routing protocols mobile network
enterprise
network
national or global ISP
datacenter
network
application
transport
network
link
physical
application
transport
network
link
physical
network
link
physical
network
link
physical
network
link
physical
network
link
physical network
link
physical
Network Layer: 5-1
2. Graph abstraction: link costs
Network Layer: 5-2
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
graph: G = (N,E)
ca,b: cost of direct link connecting a and b
e.g., cw,z = 5, cu,z = ∞
cost defined by network operator:
could always be 1, or inversely related
to bandwidth, or inversely related to
congestion
N: set of routers = { u, v, w, x, y, z }
E: set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
3. Dijkstra’s link-state routing algorithm
Network Layer: 5-3
centralized: network topology, link
costs known to all nodes
• accomplished via “link state
broadcast”
• all nodes have same info
computes least cost paths from one
node (“source”) to all other nodes
• gives forwarding table for that node
iterative: after k iterations, know
least cost path to k destinations
cx,y: direct link cost from node
x to y; = ∞ if not direct
neighbors
D(v): current estimate of cost
of least-cost-path from source
to destination v
p(v): predecessor node along
path from source to v
N': set of nodes whose least-
cost-path definitively known
notation
4. Dijkstra’s algorithm: an example
Network Layer: 5-4
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
4,y
D(w),p(w)
4,y
3,y
5,u ∞
∞
1,u
2,u
∞
2,x
4,x
2,u
4,y
3,y
2,u
uxyvwz
uxyvw
uxyv
uxy
ux
u
v w x y z
find a not in N' such that D(a) is a minimum
add a to N'
update D(b) for all b adjacent to a and not in N' :
D(b) = min ( D(b), D(a) + ca,b )
Initialization (step 0): For all a: if a adjacent to then D(a) = cu,a
5. Dijkstra’s algorithm: an example
Network Layer: 5-5
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
u
y
x
w
v
z
resulting least-cost-path tree from u: resulting forwarding table in u:
v
x
y
w
x
(u,v)
(u,x)
(u,x)
(u,x)
(u,x)
destination outgoing link
route from u to v directly
route from u to all
other destinations
via x
6. Dijkstra’s algorithm: another example
Network Layer: 5-6
w
3
4
v
x
u
5
3
7 4
y
8
z
2
7
9
Step N'
D(v),
p(v)
0
1
2
3
4
5
D(w),
p(w)
D(x),
p(x)
D(y),
p(y)
D(z),
p(z)
u ∞
∞
7,u 3,u 5,u
uw ∞
11,w
6,w 5,u
14,x
11,w
6,w
uwx
uwxv 14,x
10,v
uwxvy 12,y
notes:
construct least-cost-path tree by tracing predecessor nodes
ties can exist (can be broken arbitrarily)
uwxvyz
v w x y z
7. Based on Bellman-Ford (BF) equation (dynamic programming):
Distance vector algorithm
Network Layer: 5-7
Let Dx(y): cost of least-cost path from x to y.
Then:
Dx(y) = minv { cx,v + Dv(y) }
Bellman-Ford equation
min taken over all neighbors v of x
v’s estimated least-cost-path cost to y
direct cost of link from x to v
8. Bellman-Ford Example
Network Layer: 5-8
u
y
z
2
2
1
3
1
1
2
5
3
5
Suppose that u’s neighboring nodes, x,v,w, know that for destination z:
Du(z) = min { cu,v + Dv(z),
cu,x + Dx(z),
cu,w + Dw(z) }
Bellman-Ford equation says:
Dv(z) = 5
v
Dw(z) = 3
w
Dx(z) = 3
x
= min {2 + 5,
1 + 3,
5 + 3} = 4
node achieving minimum (x) is
next hop on estimated least-
cost path to destination (z)
9. Distance vector algorithm
Network Layer: 5-9
key idea:
from time-to-time, each node sends its own distance vector estimate to
neighbors
under minor, natural conditions, the estimate Dx
(y) converge to the
actual least cost dx(y)
Dx
(y) ← minv
{cx,v + Dv
(y)} for each node y ∊ N
when x receives new DV estimate from any neighbor, it updates its
own DV using B-F equation:
10. Distance vector algorithm:
Network Layer: 5-10
iterative, asynchronous: each local
iteration caused by:
local link cost change
DV update message from neighbor
wait for (change in local link
cost or msg from neighbor)
each node:
distributed, self-stopping: each
node notifies neighbors only when
its DV changes
neighbors then notify their
neighbors – only if necessary
no notification received, no
actions taken!
recompute DV estimates using
DV received from neighbor
if DV to any destination has
changed, notify neighbors
11. DV in a:
Da(a)=0
Da(b) = 8
Da(c) = ∞
Da(d) = 1
Da(e) = ∞
Da(f) = ∞
Da(g) = ∞
Da(h) = ∞
Da(i) = ∞
Distance vector: example
Network Layer: 5-11
g h i
1 1
1 1 1
1 1
1 1
8 1
t=0
All nodes have
distance estimates
to nearest
neighbors (only)
A few asymmetries:
missing link
larger cost
d e f
a b c
All nodes send
their local
distance vector to
their neighbors
12. Distance vector example: iteration
Network Layer: 5-12
All nodes:
receive distance
vectors from
neighbors
compute their new
local distance
vector
send their new
local distance
vector to neighbors
t=1
g h i
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
13. Distance vector example: iteration
Network Layer: 5-13
g h i
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
All nodes:
receive distance
vectors from
neighbors
compute their new
local distance
vector
send their new
local distance
vector to neighbors
t=1
compute compute compute
compute compute compute
compute compute compute
14. Distance vector example: iteration
Network Layer: 5-14
g h i
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
All nodes:
receive distance
vectors from
neighbors
compute their new
local distance
vector
send their new
local distance
vector to neighbors
t=1
15. Distance vector example: iteration
Network Layer: 5-15
g h i
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
All nodes:
receive distance
vectors from
neighbors
compute their new
local distance
vector
send their new
local distance
vector to neighbors
t=2
16. Distance vector example: iteration
Network Layer: 5-16
g h i
1 1
1 1 1
1 1
8 1
2 1
d e f
a b c
All nodes:
receive distance
vectors from
neighbors
compute their new
local distance
vector
send their new
local distance
vector to neighbors
t=2
compute compute compute
compute compute compute
compute compute compute
17. Distance vector example: iteration
Network Layer: 5-17
g h i
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
All nodes:
receive distance
vectors from
neighbors
compute their new
local distance
vector
send their new
local distance
vector to neighbors
t=2
18. Distance vector example: iteration
Network Layer: 5-18
…. and so on
Let’s next take a look at the iterative computations at nodes
19. DV in a:
Da(a)=0
Da(b) = 8
Da(c) = ∞
Da(d) = 1
Da(e) = ∞
Da(f) = ∞
Da(g) = ∞
Da(h) = ∞
Da(i) = ∞
Distance vector example: computation
Network Layer: 5-19
g h i
1 1
1 1 1
1 1
1 1
8 1
t=1
DV in b:
Db(f) = ∞
Db(g) = ∞
Db(h) = ∞
Db(i) = ∞
Db(a) = 8
Db(c) = 1
Db(d) = ∞
Db(e) = 1
b receives DVs
from a, c, e
a b c
d e f
DV in c:
Dc(a) = ∞
Dc(b) = 1
Dc(c) = 0
Dc(d) = ∞
Dc(e) = ∞
Dc(f) = ∞
Dc(g) = ∞
Dc(h) = ∞
Dc(i) = ∞
DV in e:
De(a) = ∞
De(b) = 1
De(c) = ∞
De(d) = 1
De(e) = 0
De(f) = 1
De(g) = ∞
De(h) = 1
De(i) = ∞
21. DV in a:
Da(a)=0
Da(b) = 8
Da(c) = ∞
Da(d) = 1
Da(e) = ∞
Da(f) = ∞
Da(g) = ∞
Da(h) = ∞
Da(i) = ∞
Distance vector example: computation
Network Layer: 5-21
g h i
1 1
1 1 1
1 1
1 1
8 1
t=1
DV in b:
Db(f) = ∞
Db(g) = ∞
Db(h) = ∞
Db(i) = ∞
Db(a) = 8
Db(c) = 1
Db(d) = ∞
Db(e) = 1
c receives DVs
from b
a b c
d e f
DV in c:
Dc(a) = ∞
Dc(b) = 1
Dc(c) = 0
Dc(d) = ∞
Dc(e) = ∞
Dc(f) = ∞
Dc(g) = ∞
Dc(h) = ∞
Dc(i) = ∞
DV in e:
De(a) = ∞
De(b) = 1
De(c) = ∞
De(d) = 1
De(e) = 0
De(f) = 1
De(g) = ∞
De(h) = 1
De(i) = ∞
22. Distance vector example: computation
Network Layer: 5-22
g h i
1 1
8 1
t=1
DV in b:
Db(f) = ∞
Db(g) = ∞
Db(h) = ∞
Db(i) = ∞
Db(a) = 8
Db(c) = 1
Db(d) = ∞
Db(e) = 1
c receives DVs
from b computes:
a b c
d e f
DV in c:
Dc(a) = ∞
Dc(b) = 1
Dc(c) = 0
Dc(d) = ∞
Dc(e) = ∞
Dc(f) = ∞
Dc(g) = ∞
Dc(h) = ∞
Dc(i) = ∞
Dc(a) = min{cc,b+Db(a}} = 1 + 8 = 9
Dc(b) = min{cc,b+Db(b)} = 1 + 0 = 1
Dc(d) = min{cc,b+Db(d)} = 1+ ∞ = ∞
Dc(e) = min{cc,b+Db(e)} = 1 + 1 = 2
Dc(f) = min{cc,b+Db(f)} = 1+ ∞ = ∞
Dc(g) = min{cc,b+Db(g)} = 1+ ∞ = ∞
Dc(i) = min{cc,b+Db(i)} = 1+ ∞ = ∞
Dc(h) = min{cbc,b+Db(h)} = 1+ ∞ = ∞
DV in c:
Dc(a) = 9
Dc(b) = 1
Dc(c) = 0
Dc(d) = 2
Dc(e) = ∞
Dc(f) = ∞
Dc(g) = ∞
Dc(h) = ∞
Dc(i) = ∞
compute
* Check out the online interactive
exercises for more examples:
http://gaia.cs.umass.edu/kurose_ross/interactive/
23. Distance vector example: computation
Network Layer: 5-23
1 1
1 1 1
1 1
1 1
8 1
t=1
DV in b:
Db(f) = ∞
Db(g) = ∞
Db(h) = ∞
Db(i) = ∞
Db(a) = 8
Db(c) = 1
Db(d) = ∞
Db(e) = 1
e receives DVs
from b, d, f, h
a b c
DV in f:
Dc(a) = ∞
Dc(b) = ∞
Dc(c) = ∞
Dc(d) = ∞
Dc(e) = 1
Dc(f) = 0
Dc(g) = ∞
Dc(h) = ∞
Dc(i) = 1
DV in e:
De(a) = ∞
De(b) = 1
De(c) = ∞
De(d) = 1
De(e) = 0
De(f) = 1
De(g) = ∞
De(h) = 1
De(i) = ∞
DV in h:
Dc(a) = ∞
Dc(b) = ∞
Dc(c) = ∞
Dc(d) = ∞
Dc(e) = 1
Dc(f) = ∞
Dc(g) = 1
Dc(h) = 0
DV in d:
Dc(a) = 1
Dc(b) = ∞
Dc(c) = ∞
Dc(d) = 0
Dc(e) = 1
Dc(f) = ∞
Dc(g) = 1
Dc(h) = ∞
Dc(i) = ∞ d e f
g h i
Q: what is new DV computed in e at
t=1?
compute
24. Distance vector: state information diffusion
t=0 c’s state at t=0 is at c only
g h i
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
c’s state at t=0 has propagated to b, and
may influence distance vector computations
up to 1 hop away, i.e., at b
t=1
c’s state at t=0 may now influence distance
vector computations up to 2 hops away, i.e.,
at b and now at a, e as well
t=2
c’s state at t=0 may influence distance vector
computations up to 3 hops away, i.e., at b,a,e
and now at c,f,h as well
t=3
c’s state at t=0 may influence distance vector
computations up to 4 hops away, i.e., at b,a,e,
c, f, h and now at g,i as well
t=4
Iterative communication, computation steps diffuses information through network:
t=1
t=2
t=3
t=4
25. Distance vector: link cost changes
Network Layer: 5-25
“good news
travels fast”
t0 : y detects link-cost change, updates its DV, informs its neighbors.
t1 : z receives update from y, updates its table, computes new least
cost to x , sends its neighbors its DV.
t2 : y receives z’s update, updates its distance table. y’s least costs
do not change, so y does not send a message to z.
link cost changes:
node detects local link cost change
updates routing info, recalculates local DV
if DV changes, notify neighbors
x z
1
4
50
y
1
26. Distance vector: link cost changes
Network Layer: 5-26
link cost changes:
node detects local link cost change
“bad news travels slow” – count-to-infinity problem:
x z
1
4
50
y
60
• y sees direct link to x has new cost 60, but z has said it has a path at cost of 5. So
y computes “my new cost to x will be 6, via z); notifies z of new cost of 6 to x.
• z learns that path to x via y has new cost 6, so z computes “my new cost to
x will be 7 via y), notifies y of new cost of 7 to x.
• y learns that path to x via z has new cost 7, so y computes “my new cost to
x will be 8 via y), notifies z of new cost of 8 to x.
• z learns that path to x via y has new cost 8, so z computes “my new cost to
x will be 9 via y), notifies y of new cost of 9 to x.
…
see text for solutions. Distributed algorithms are tricky!
27. Comparison of LS and DV algorithms
Network Layer: 5-27
message complexity
LS: n routers, O(n2
) messages sent
DV: exchange between neighbors;
convergence time varies
speed of convergence
LS: O(n2
) algorithm, O(n2
) messages
• may have oscillations
DV: convergence time varies
• may have routing loops
• count-to-infinity problem
robustness: what happens if router
malfunctions, or is compromised?
LS:
• router can advertise incorrect link cost
• each router computes only its own
table
DV:
• DV router can advertise incorrect path
cost (“I have a really low cost path to
everywhere”): black-holing
• each router’s table used by others:
error propagate thru network
28. our routing study thus far - idealized
all routers identical
network “flat”
… not true in practice
Making routing scalable
Network Layer: 5-28
scale: billions of destinations:
can’t store all destinations in
routing tables!
routing table exchange would
swamp links!
administrative autonomy:
Internet: a network of networks
each network admin may want to
control routing in its own network
29. aggregate routers into regions known as “autonomous
systems” (AS) (a.k.a. “domains”)
Internet approach to scalable routing
Network Layer: 5-29
intra-AS (aka “intra-domain”):
routing among within same AS
(“network”)
all routers in AS must run same intra-
domain protocol
routers in different AS can run different
intra-domain routing protocols
gateway router: at “edge” of its own AS,
has link(s) to router(s) in other AS’es
inter-AS (aka “inter-domain”):
routing among AS’es
gateways perform inter-domain
routing (as well as intra-domain
routing)
30. Interconnected ASes
Network Layer: 5-30
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
intra-AS
routing
intra-AS
routing
intra-AS
routing
inter-AS routing
forwarding
table
forwarding table configured by intra-
and inter-AS routing algorithms
Intra-AS
Routing
Inter-AS
Routing intra-AS routing determine entries for
destinations within AS
inter-AS & intra-AS determine entries
for external destinations
31. Inter-AS routing: a role in intradomain forwarding
Network Layer: 5-31
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
other
networks
other
networks
suppose router in AS1 receives
datagram destined outside of AS1:
AS1 inter-domain routing must:
1. learn which destinations reachable
through AS2, which through AS3
2. propagate this reachability info to all
routers in AS1
• router should forward packet to
gateway router in AS1, but which
one?
32. Inter-AS routing: routing within an AS
Network Layer: 5-32
most common intra-AS routing protocols:
RIP: Routing Information Protocol [RFC 1723]
• classic DV: DVs exchanged every 30 secs
• no longer widely used
EIGRP: Enhanced Interior Gateway Routing Protocol
• DV based
• formerly Cisco-proprietary for decades (became open in 2013 [RFC 7868])
OSPF: Open Shortest Path First [RFC 2328]
• link-state routing
• IS-IS protocol (ISO standard, not RFC standard) essentially same as OSPF
33. OSPF (Open Shortest Path First) routing
Network Layer: 5-33
“open”: publicly available
classic link-state
• each router floods OSPF link-state advertisements (directly over IP
rather than using TCP/UDP) to all other routers in entire AS
• multiple link costs metrics possible: bandwidth, delay
• each router has full topology, uses Dijkstra’s algorithm to compute
forwarding table
security: all OSPF messages authenticated (to prevent malicious
intrusion)
34. Hierarchical OSPF
Network Layer: 5-34
two-level hierarchy: local area, backbone.
• link-state advertisements flooded only in area, or backbone
• each node has detailed area topology; only knows direction to reach
other destinations
area border routers:
“summarize” distances to
destinations in own area,
advertise in backbone
area 1
area 2
area 3
backbone
internal
routers
backbone router:
runs OSPF limited
to backbone
boundary router:
connects to other ASes
local routers:
• flood LS in area only
• compute routing within
area
• forward packets to outside
via area border router
35. BGP (Border Gateway Protocol): the de facto inter-domain routing
protocol
• “glue that holds the Internet together”
allows subnet to advertise its existence, and the destinations it can
reach, to rest of Internet: “I am here, here is who I can reach, and how”
BGP provides each AS a means to:
• eBGP: obtain subnet reachability information from neighboring ASes
• iBGP: propagate reachability information to all AS-internal routers.
• determine “good” routes to other networks based on reachability information
and policy
Internet inter-AS routing: BGP
Network Layer: 5-35
36. eBGP, iBGP connections
Network Layer: 5-36
eBGP connectivity
logical iBGP connectivity
1b
1d
1c
1a
2b
2d
2c
2a
3b
3d
3c
3a
AS 2
AS 3
AS 1
1c
∂
∂
gateway routers run both eBGP and iBGP protocols
37. BGP basics
Network Layer: 5-37
when AS3 gateway 3a advertises path AS3,X to AS2 gateway 2c:
• AS3 promises to AS2 it will forward datagrams towards X
BGP session: two BGP routers (“peers”) exchange BGP messages over
semi-permanent TCP connection:
• advertising paths to different destination network prefixes (BGP is a “path
vector” protocol)
2b
2d
2c
2a
AS 2
3b
3d
3c
3a
AS 3
1b
1d
1c
1a
AS 1
X
BGP advertisement:
AS3, X
38. Path attributes and BGP routes
Network Layer: 5-38
BGP advertised route: prefix + attributes
• prefix: destination being advertised
• two important attributes:
• AS-PATH: list of ASes through which prefix advertisement has passed
• NEXT-HOP: indicates specific internal-AS router to next-hop AS
policy-based routing:
• gateway receiving route advertisement uses import policy to
accept/decline path (e.g., never route through AS Y).
• AS policy also determines whether to advertise path to other other
neighboring ASes
39. 2b
2d
2c
2a
AS 2
3b
3d
3c
3a
AS 3
1b
1d
1c
1a
AS 1
X
BGP path advertisement
Network Layer: 5-39
based on AS2 policy, AS2 router 2c accepts path AS3,X, propagates (via iBGP) to all
AS2 routers
AS2,AS3,X
AS2 router 2c receives path advertisement AS3,X (via eBGP) from AS3 router 3a
based on AS2 policy, AS2 router 2a advertises (via eBGP) path AS2, AS3, X to
AS1 router 1c
AS3, X
40. BGP path advertisement (more)
Network Layer: 5-40
AS2,AS3,X
AS1 gateway router 1c learns path AS2,AS3,X from 2a
gateway router may learn about multiple paths to destination:
AS3,X
AS1 gateway router 1c learns path AS3,X from 3a
based on policy, AS1 gateway router 1c chooses path AS3,X and advertises path
within AS1 via iBGP
AS3, X
2b
2d
2c
2a
AS 2
3b
3d
3c
3a
AS 3
1b
1d
1c
1a
AS 1
X
AS3,X
AS3,X
AS3,X
41. BGP messages
Network Layer: 5-41
BGP messages exchanged between peers over TCP connection
BGP messages:
• OPEN: opens TCP connection to remote BGP peer and authenticates
sending BGP peer
• UPDATE: advertises new path (or withdraws old)
• KEEPALIVE: keeps connection alive in absence of UPDATES; also ACKs
OPEN request
• NOTIFICATION: reports errors in previous msg; also used to close
connection
42. 2b
2d
2c
2a
AS 2
3b
3d
3c
3a
AS 3
1b
1d
1c
1a
AS 1
X
BGP path advertisement
Network Layer: 5-42
AS2,AS3,X
AS3,X
AS3, X
recall: 1a, 1b, 1d learn via iBGP from 1c: “path to X goes through 1c”
at 1d: OSPF intra-domain routing: to get to 1c, use interface 1
1
2
1
2
dest interface
…
…
…
…
local link
interfaces
at 1a, 1d
at 1d: to get to X, use interface 1
1c 1
X 1
AS3,X
AS3,X
AS3,X
43. 2b
2d
2c
2a
AS 2
3b
3d
3c
3a
AS 3
1b
1d
1c
1a
AS 1
X
BGP path advertisement
Network Layer: 5-43
recall: 1a, 1b, 1d learn via iBGP from 1c: “path to X goes through 1c”
at 1d: OSPF intra-domain routing: to get to 1c, use interface 1
1
2
at 1d: to get to X, use interface 1
dest interface
…
…
…
…
1c 2
X 2
at 1a: OSPF intra-domain routing: to get to 1c, use interface 2
at 1a: to get to X, use interface 2
44. Why different Intra-, Inter-AS routing ?
Network Layer: 5-44
policy:
inter-AS: admin wants control over how its traffic routed, who
routes through its network
intra-AS: single admin, so policy less of an issue
scale:
hierarchical routing saves table size, reduced update traffic
performance:
intra-AS: can focus on performance
inter-AS: policy dominates over performance
45. 2b
2d
2c
2a
AS 2
3b
3d
3c
3a
AS 3
1b
1d
1c
1a
AS 1
X
Hot potato routing
Network Layer: 5-45
2d learns (via iBGP) it can route to X via 2a or 2c
hot potato routing: choose local gateway that has least intra-domain
cost (e.g., 2d chooses 2a, even though more AS hops to X): don’t worry
about inter-domain cost!
AS3,X
AS1,AS3,X
OSPF link weights
201
112
263
46. BGP: achieving policy via advertisements
Network Layer: 5-46
B
legend:
customer
network:
provider
network
A advertises path Aw to B and to C
B chooses not to advertise BAw to C!
B gets no “revenue” for routing CBAw, since none of C, A, w are B’s customers
C does not learn about CBAw path
C will route CAw (not using B) to get to w
ISP only wants to route traffic to/from its customer networks (does not want
to carry transit traffic between other ISPs – a typical “real world” policy)
w A
y
C
x
A,w
A,w
47. BGP: achieving policy via advertisements (more)
Network Layer: 5-47
B
ISP only wants to route traffic to/from its customer networks (does not want
to carry transit traffic between other ISPs – a typical “real world” policy)
w A
y
C
x
A,B,C are provider networks
x,w,y are customer (of provider networks)
x is dual-homed: attached to two networks
policy to enforce: x does not want to route from B to C via x
.. so x will not advertise to B a route to C
legend:
customer
network:
provider
network
48. router may learn about more than one route to destination
AS, selects route based on:
1. local preference value attribute: policy decision
2. shortest AS-PATH
3. closest NEXT-HOP router: hot potato routing
4. additional criteria
BGP route selection
Network Layer: 5-48