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.
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 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 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.
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.
Computer Networking Michaelmas/Lent Term M/W/F 11:00-12:00 LT1 in Gates Buil...moaminmarey2001
ย
understand principles behind network layer services:
network layer service models
forwarding versus routing (versus switching)
how a router works
routing (path selection)
IPv6
For the most part, the Internet is our example โ again.
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 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.
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.
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.
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.
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.
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.
The document summarizes routing protocols and algorithms used in computer networks. It discusses how routing protocols define how routers exchange network information, including the type of information exchanged and timing. Examples of routing protocols include RIP, EIGRP, OSPF and BGP. Routing algorithms find the least cost path between routers using a graph representation of the network. Dijkstra's algorithm is a link-state routing algorithm that computes the shortest paths from one router to all others using an iterative approach where it progressively updates the costs of reachable nodes.
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
The document describes routing algorithms and protocols at the network layer. It discusses global routing algorithms that use complete network knowledge versus decentralized algorithms that do not. It also covers the distance vector routing algorithm and how it works iteratively to share routing information between neighbors. Specific distance vector protocols discussed include RIP, which uses hop count as its metric. The document also introduces the concepts of hierarchical routing and autonomous systems to allow scaling of routing in a decentralized manner across large networks.
This document summarizes a talk on algorithms that use locality to solve network problems efficiently. It discusses how limitations on network visibility require local algorithms that make sequential decisions using limited information. It presents local algorithms for preferential attachment networks and general graphs that solve problems like finding high-degree nodes and computing minimum dominating sets. It also describes how locality can enable sublinear-time algorithms for estimating PageRank values and solving influence maximization problems in viral marketing models. The talk outlines techniques like multiscale analysis and sparse matrix methods that allow computing PageRank summaries and influential nodes faster than previous methods.
This document discusses social network analysis in Python. It begins with an introduction and outline. It then covers topics like data representation using graphs, network properties measured at the network, group, and node level, and visualization. Network properties include characteristic path length, clustering coefficient, degree distribution, and more. Representations include adjacency matrices, incidence matrices, adjacency lists, and incidence lists. NetworkX is highlighted as a tool for working with graphs in Python.
IRJET- Survey on Adaptive Routing AlgorithmsIRJET Journal
ย
This document discusses several adaptive routing algorithms for wireless networks and optical networks. It provides 3 key points:
1) Adaptive routing algorithms dynamically change their routing decisions based on changes in network topology and traffic levels. They aim to optimize parameters like distance, number of hops, and estimated transmission time.
2) Several adaptive routing algorithms are described, including centralized and distributed algorithms, algorithms using the A-star and Dijkstra's algorithms, and fault-aware algorithms to route around failed nodes or links.
3) Improved dynamic routing algorithms for elastic optical networks are proposed that select paths based on the number of links or weights accounting for link usage and available spectrum. The algorithms aim to efficiently route requests while
Enabling SDN in old school networks with Software-Controlled Routing ProtocolsOpen Networking Summits
ย
Laurent Vanbever
Princeton University
Research Track Session Part 3
ONS2015: http://bit.ly/ons2015sd
ONS Inspire! Webinars: http://bit.ly/oiw-sd
Watch the talk (video) on ONS Content Archives: http://bit.ly/ons-archives-sd
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.
The healthcare landscape is evolving at a rapid pace, driven by advancements in technology, changing patient expectations, and increasing regulatory pressures. Today, hospitals face a growing list of complex challenges, from rising patient demands to increasing administrative overhead and the need to comply with stringent government regulations.
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 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.
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.
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.
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.
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.
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.
The document summarizes routing protocols and algorithms used in computer networks. It discusses how routing protocols define how routers exchange network information, including the type of information exchanged and timing. Examples of routing protocols include RIP, EIGRP, OSPF and BGP. Routing algorithms find the least cost path between routers using a graph representation of the network. Dijkstra's algorithm is a link-state routing algorithm that computes the shortest paths from one router to all others using an iterative approach where it progressively updates the costs of reachable nodes.
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
The document describes routing algorithms and protocols at the network layer. It discusses global routing algorithms that use complete network knowledge versus decentralized algorithms that do not. It also covers the distance vector routing algorithm and how it works iteratively to share routing information between neighbors. Specific distance vector protocols discussed include RIP, which uses hop count as its metric. The document also introduces the concepts of hierarchical routing and autonomous systems to allow scaling of routing in a decentralized manner across large networks.
This document summarizes a talk on algorithms that use locality to solve network problems efficiently. It discusses how limitations on network visibility require local algorithms that make sequential decisions using limited information. It presents local algorithms for preferential attachment networks and general graphs that solve problems like finding high-degree nodes and computing minimum dominating sets. It also describes how locality can enable sublinear-time algorithms for estimating PageRank values and solving influence maximization problems in viral marketing models. The talk outlines techniques like multiscale analysis and sparse matrix methods that allow computing PageRank summaries and influential nodes faster than previous methods.
This document discusses social network analysis in Python. It begins with an introduction and outline. It then covers topics like data representation using graphs, network properties measured at the network, group, and node level, and visualization. Network properties include characteristic path length, clustering coefficient, degree distribution, and more. Representations include adjacency matrices, incidence matrices, adjacency lists, and incidence lists. NetworkX is highlighted as a tool for working with graphs in Python.
IRJET- Survey on Adaptive Routing AlgorithmsIRJET Journal
ย
This document discusses several adaptive routing algorithms for wireless networks and optical networks. It provides 3 key points:
1) Adaptive routing algorithms dynamically change their routing decisions based on changes in network topology and traffic levels. They aim to optimize parameters like distance, number of hops, and estimated transmission time.
2) Several adaptive routing algorithms are described, including centralized and distributed algorithms, algorithms using the A-star and Dijkstra's algorithms, and fault-aware algorithms to route around failed nodes or links.
3) Improved dynamic routing algorithms for elastic optical networks are proposed that select paths based on the number of links or weights accounting for link usage and available spectrum. The algorithms aim to efficiently route requests while
Enabling SDN in old school networks with Software-Controlled Routing ProtocolsOpen Networking Summits
ย
Laurent Vanbever
Princeton University
Research Track Session Part 3
ONS2015: http://bit.ly/ons2015sd
ONS Inspire! Webinars: http://bit.ly/oiw-sd
Watch the talk (video) on ONS Content Archives: http://bit.ly/ons-archives-sd
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.
The healthcare landscape is evolving at a rapid pace, driven by advancements in technology, changing patient expectations, and increasing regulatory pressures. Today, hospitals face a growing list of complex challenges, from rising patient demands to increasing administrative overhead and the need to comply with stringent government regulations.
Antibiofilm Technology Dressings Driving the Future of Pressure Ulcer and Bur...ganeshdukare428
ย
Pressure ulcers (also known as bedsores) and burns are two of the most common and serious types of injuries affecting millions of people globally. Pressure ulcers, typically caused by prolonged pressure on the skin, often develop in patients with limited mobility, such as the elderly or those with spinal cord injuries. Burns, whether from thermal, chemical, or electrical sources, can result in severe skin damage and lead to long-term complications if not properly treated.
Newly-released Anti-biofilm Wound Dressing industry analysis report by Persistence Market Research shows that the global revenue of the Anti-biofilm Wound Dressing Market in 2025 was held at US$ 1,001.6 Million. With a CAGR of 11.4% from 2025 to 2032, the market is projected to reach a US$ 2,132.5 Million valuation by 2032.
NDIS Housing: Unlocking Independence Through Tailored Solutionsfoundationaccess20
ย
: Explore the range of NDIS housing solutions designed to empower individuals with disabilities. This infographic covers key housing options like SDA, SIL, and Independent Living, highlighting their role in enhancing accessibility, fostering independence, and providing personalized support. Learn how these housing models, combined with assistive technology and community engagement, pave the way for greater independence and social inclusion.
The landscape of gastroenterology is evolving and smart software is leading the charge! ๐
From AI-powered diagnostics to automated billing, todayโs technology is helping gastroenterologists deliver faster, safer, and more personalized care. ๐กโจ
โ ๐บ๐๐๐๐๐๐๐๐๐๐ ๐๐๐๐๐๐๐๐๐
โ ๐น๐๐๐-๐๐๐๐ ๐ ๐๐๐ & ๐๐๐๐๐๐๐๐๐
โ ๐บ๐๐๐๐ ๐๐๐๐๐๐๐๐๐ & ๐๐๐๐๐๐๐
โ ๐ป๐๐๐๐๐๐๐๐๐-๐๐๐๐ ๐ ๐๐๐๐๐๐๐๐๐
โ ๐บ๐๐๐๐๐๐๐ ๐ฌ๐ด๐น/๐ฌ๐ฏ๐น ๐๐๐๐๐๐๐๐๐๐๐
Whether you're a solo practitioner or a multi-specialty hospital, the future is digital and it's already here. ๐ฅ๏ธ๐
1.๐น ๐ญ๐๐๐๐๐ & ๐จ๐๐๐๐๐๐๐ ๐ซ๐๐๐๐๐๐๐๐:
Leverage AI and data-driven tools for early detection of GI disorders.
2.๐น ๐บ๐๐๐๐๐๐๐๐๐๐ ๐พ๐๐๐๐๐๐๐:
Automate routine tasks like scheduling, reporting, and documentation.
3.๐น ๐ฌ๐๐๐๐๐๐๐ ๐ท๐๐๐๐๐๐ ๐ฌ๐๐๐๐๐๐๐๐๐:
Offer seamless appointment booking, reminders, and digital consultations.
4.๐น ๐บ๐๐๐๐ ๐ฐ๐๐๐๐๐๐๐๐ & ๐ฉ๐๐๐๐๐๐:
Track stock, automate reorders, and ensure transparent, error-free billing.
5.๐น ๐น๐๐๐-๐ป๐๐๐ ๐ซ๐๐๐ ๐จ๐๐๐๐๐:
Instant access to patient histories, lab results, and imaging for quick decisions.
6.๐น ๐ฐ๐๐๐๐๐๐๐ ๐ท๐๐๐๐๐๐๐ ๐ฌ๐๐๐๐๐๐๐๐๐:
Reduce paperwork, save time, and increase productivity across departments.
7.๐น ๐ป๐๐๐๐๐๐๐๐๐ ๐ฐ๐๐๐๐๐๐๐๐๐๐:
Expand care beyond the clinic with secure virtual consultations.
8.๐น ๐ซ๐๐๐ ๐บ๐๐๐๐๐๐๐ & ๐ช๐๐๐๐๐๐๐๐๐:
Ensure patient data is protected and systems are ABDM/PMJAY compliant.
MEDICOTECH LLC is a trusted provider of comprehensive medical billing, coding, and insurance credentialing services. We help healthcare providers streamline their revenue cycle, reduce claim denials, and ensure accurate reimbursements. Our expert team stays up to date with the latest regulations to deliver efficient, compliant solutions tailored to your practice's needs. Partner with us for reliable and professional healthcare support.
Beyond The Stethoscope- A Journey to Patient-Centered ExcellenceJasper Colin
ย
Discover how a leading hospital chain transformed patient care, achieving a 15% reduction in hospital-acquired infections and boosting brand loyalty through patient-centered research. Read the full case study.
HEREDITARY AND METABOLIC DISEASE OF BONE OSTEOMYELITISSneha Thakur
ย
Hereditary and metabolic bone diseases are conditions that affect bone development and strength due to genetic defects or metabolic imbalances. Common hereditary disorders include Osteogenesis Imperfecta, characterized by brittle bones due to collagen defects, and Achondroplasia, leading to short stature from abnormal cartilage growth. Metabolic disorders like Rickets and Osteomalacia result from vitamin D deficiency, affecting bone mineralization, while Osteoporosis involves decreased bone mass and increased fracture risk. Pagetโs disease causes abnormal bone remodeling, leading to enlarged, deformed bones. Osteomyelitis is a serious bone infection, often caused by Staphylococcus aureus, presenting with pain, swelling, fever, and may lead to chronic bone damage if untreated. Early diagnosis and a multidisciplinary approach, including physiotherapy, are essential for managing these conditions.
Basic Cardiopulmonary Life Support (BCLS) is a set of procedures designed to help individuals experiencing cardiac arrest or respiratory distress, primarily in non-hospital settings. It focuses on basic skills like CPR, AED use, and airway management, providing immediate life-saving measures until advanced medical help arrives.
Here's a more detailed breakdown:
Key Elements of BCLS:
Recognition of Cardiac Arrest/Respiratory Distress: Identifying signs of a heart emergency or difficulty breathing.
Calling for Help: Activating emergency medical services.
CPR (Cardiopulmonary Resuscitation): Performing chest compressions and rescue breaths to circulate blood and oxygen.
AED (Automated External Defibrillator): Using the AED to deliver an electrical shock to restore a normal heart rhythm if necessary.
Airway Management: Ensuring the victim has a clear airway to facilitate breathing.
Who is BCLS for?
BCLS is typically taught to individuals who are not healthcare professionals but may be in positions where they need to respond to emergencies, such as: Teachers, Daycare providers, Workplace safety officers, Public safety personnel, and Trained bystanders.
Importance of BCLS:
BCLS plays a crucial role in improving survival rates for individuals experiencing cardiac arrest or respiratory failure. Early and effective intervention can significantly increase the chances of a positive outcome.
Transform Your Revenue Cycle Management Attain Financial Stability.pptxUnify Healthcare
ย
Discover financial outcomes, efficient operations, and happier patients through revenue-cycle management optimization. Explore the expertise of Unify Healthcare in creating solutions for your revenue-cycle management and achieve efficiency and financial growth.
Aba Speech Therapy in Mississauga | Bright Steps dfBrightsteps
ย
Bright Steps Learning Center is a leading provider of speech therapy, occupational therapy, Aba therapy and family services in Mississauga and Oakville. We provide programs and services for people of all ages with a variety of physical, sensory, or cognitive challenges.
Formulation and evaluation of Antidiebatic chocolate by using jamun seeds and karela powder and cocoa powder.various test to be check their desired results
Say goodbye to painful venous ulcers with expert care from Siragusa Vein and Laser. Our team focuses on both immediate relief and long-term prevention, ensuring a healthier future for your legs.
Network Layer: Control Plane (Computer Network Course)
1. Computer Networking: A
Top-Down Approach
8th
edition
Jim Kurose, Keith Ross
Pearson, 2020
Chapter 5
Network Layer:
Control Plane
A note on the use of these PowerPoint slides:
Weโre making these slides freely available to all (faculty, students,
readers). Theyโre in PowerPoint form so you see the animations; and
can add, modify, and delete slides (including this one) and slide content
to suit your needs. They obviously represent a lot of work on our part.
In return for use, we only ask the following:
๏ง If you use these slides (e.g., in a class) that you mention their source
(after all, weโd like people to use our book!)
๏ง If you post any slides on a www site, that you note that they are
adapted from (or perhaps identical to) our slides, and note our
copyright of this material.
For a revision history, see the slide note for this page.
Thanks and enjoy! JFK/KWR
All material copyright 1996-2023
J.F Kurose and K.W. Ross, All Rights Reserved
2. Network layer control plane: our goals
๏งunderstand principles
behind network control
plane:
โข traditional routing algorithms
โข SDN controllers
โข network management,
configuration
๏ง instantiation, implementation
in the Internet:
โข OSPF, BGP
โข OpenFlow, ODL and ONOS
controllers
โข Internet Control Message
Protocol: ICMP
โข SNMP, YANG/NETCONF
Network Layer: 5-2
3. Network layer: โcontrol planeโ roadmap
๏ง network management,
configuration
โข SNMP
โข NETCONF/YANG
๏งintroduction
๏ง routing protocols
๏ง link state
๏ง distance vector
๏ง intra-ISP routing: OSPF
๏ง routing among ISPs: BGP
๏ง SDN control plane
๏ง Internet Control Message
Protocol
Network Layer: 5-3
4. Two approaches to structuring network control plane:
๏ง per-router control (traditional)
๏ง logically centralized control (software defined networking)
Network-layer functions
Network Layer: 5-4
๏ง forwarding: move packets from routerโs
input to appropriate router output data plane
control plane
๏ง routing: determine route taken by
packets from source to destination
5. Per-router control plane
Individual routing algorithm components in each and every
router interact in the control plane
Routing
Algorithm
data
plane
control
plane
1
2
0111
values in arriving
packet header
3
Network Layer: 5-5
6. Software-Defined Networking (SDN) control plane
Remote controller computes, installs forwarding tables in routers
data
plane
control
plane
Remote Controller
CA
CA CA CA CA
1
2
0111
3
values in arriving
packet header
Network Layer: 5-6
8. Network layer: โcontrol planeโ roadmap
๏ง network management,
configuration
โข SNMP
โข NETCONF/YANG
๏ง introduction
๏งrouting protocols
๏ง link state
๏ง distance vector
๏ง intra-ISP routing: OSPF
๏ง routing among ISPs: BGP
๏ง SDN control plane
๏ง Internet Control Message
Protocol
Network Layer: 5-8
9. 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-9
10. Graph abstraction: link costs
Network Layer: 5-10
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) }
11. Routing algorithm classification
Network Layer: 5-11
global or decentralized information?
global: all routers have complete
topology, link cost info
โข โlink stateโ algorithms
decentralized: iterative process of
computation, exchange of info with neighbors
โข routers initially only know link costs to
attached neighbors
โข โdistance vectorโ algorithms
How fast
do routes
change?
dynamic: routes change
more quickly
โข periodic updates or in
response to link cost
changes
static: routes change
slowly over time
12. Network layer: โcontrol planeโ roadmap
๏ง network management,
configuration
โข SNMP
โข NETCONF/YANG
๏ง introduction
๏งrouting protocols
๏ง link state
๏ง distance vector
๏ง intra-ISP routing: OSPF
๏ง routing among ISPs: BGP
๏ง SDN control plane
๏ง Internet Control Message
Protocol
Network Layer: 5-12
13. Dijkstraโs link-state routing algorithm
Network Layer: 5-13
๏ง 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
14. Dijkstraโs link-state routing algorithm
Network Layer: 5-14
1 Initialization:
2 N' = {u} /* compute least cost path from u to all other nodes */
3 for all nodes v
4 if v adjacent to u /* u initially knows direct-path-cost only to direct neighbors */
5 then D(v) = cu,v /* but may not be minimum cost! */
6 else D(v) = โ
7
8 Loop
9
10
11
12
13
14
15 until all nodes in N'
find w not in N' such that D(w) is a minimum
add w to N'
update D(v) for all v adjacent to w and not in N' :
D(v) = min ( D(v), D(w) + cw,v )
/* new least-path-cost to v is either old least-cost-path to v or known
least-cost-path to w plus direct-cost from w to v */
15. Dijkstraโs algorithm: an example
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
D(w),p(w)
5,u โ
โ
1,u
2,u
u
v w x y z
Initialization (step 0):
For all a: if a adjacent to u then D(a) = cu,a
16. Dijkstraโs algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โ
โ
1,u
2,u
u
8 Loop
9
10
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
17. Dijkstraโs algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โ
โ
1,u
2,u
u
8 Loop
9
10
11
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
update D(b) for all b adjacent to a and not in N' :
D(b) = min ( D(b), D(a) + ca,b )
โ
2,x
4,x
2,u
D(v) = min ( D(v), D(x) + cx,v ) = min(2, 1+2) = 2
D(w) = min ( D(w), D(x) + cx,w ) = min (5, 1+3) = 4
D(y) = min ( D(y), D(x) + cx,y ) = min(inf,1+1) = 2
18. Dijkstraโs algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โ
โ
1,u
2,u
u
8 Loop
9
10
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โ
2,x
4,x
2,u
uxy
19. Dijkstraโs algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โ
โ
1,u
2,u
u
8 Loop
9
10
11
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โ
2,x
4,x
2,u
uxy
update D(b) for all b adjacent to a and not in N' :
D(b) = min ( D(b), D(a) + ca,b )
4,y
3,y
2,u
D(w) = min ( D(w), D(y) + cy,w ) = min (4, 2+1) = 3
D(z) = min ( D(z), D(y) + cy,z ) = min(inf,2+2) = 4
20. Dijkstraโs algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โ
โ
1,u
2,u
u
8 Loop
9
10
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โ
2,x
4,x
2,u
uxy 4,y
3,y
2,u
uxyv
21. update D(b) for all b adjacent to a and not in N' :
D(b) = min ( D(b), D(a) + ca,b )
D(w) = min ( D(w), D(v) + cv,w ) = min (3, 2+3) = 3
Dijkstraโs algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โ
โ
1,u
2,u
u
8 Loop
9
10
11
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โ
2,x
4,x
2,u
uxy 4,y
3,y
2,u
uxyv 4,y
3,y
22. Dijkstraโs algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โ
โ
1,u
2,u
u
8 Loop
9
10
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โ
2,x
4,x
2,u
uxy 4,y
3,y
2,u
uxyv 4,y
3,y
uxyvw
23. update D(b) for all b adjacent to a and not in N' :
D(b) = min ( D(b), D(a) + ca,b )
D(z) = min ( D(z), D(w) + cw,z ) = min (4, 3+5) = 4
Dijkstraโs algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โ
โ
1,u
2,u
u
8 Loop
9
10
11
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โ
2,x
4,x
2,u
uxy 4,y
3,y
2,u
uxyv 4,y
3,y
uxyvw 4,y
24. Dijkstraโs algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โ
โ
1,u
2,u
u
8 Loop
9
10
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โ
2,x
4,x
2,u
uxy 4,y
3,y
2,u
uxyv 4,y
3,y
uxyvw 4,y
uxyvwz
25. Dijkstraโs algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โ
โ
1,u
2,u
u
8 Loop
9
10
11
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โ
2,x
4,x
2,u
uxy 4,y
3,y
2,u
uxyv 4,y
3,y
uxyvw 4,y
uxyvwz
update D(b) for all b adjacent to a and not in N' :
D(b) = min ( D(b), D(a) + ca,b )
26. Dijkstraโs algorithm: an example
Network Layer: 5-27
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
27. Dijkstraโs algorithm: another example
Network Layer: 5-28
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
28. Dijkstraโs algorithm: discussion
Network Layer: 5-29
algorithm complexity: n nodes
๏ง each of n iteration: need to check all nodes, w, not in N
๏ง n(n+1)/2 comparisons: O(n2
) complexity
๏ง more efficient implementations possible: O(nlogn)
message complexity:
๏ง each router must broadcast its link state information to other n routers
๏ง efficient (and interesting!) broadcast algorithms: O(n) link crossings to disseminate a
broadcast message from one source
๏ง each routerโs message crosses O(n) links: overall message complexity: O(n2
)
29. Dijkstraโs algorithm: oscillations possible
Network Layer: 5-30
๏ง when link costs depend on traffic volume, route oscillations possible
a
d
c
b
1 1+e
e
0
e
1
1
0 0
initially
a
d
c
b
given these costs,
find new routingโฆ.
resulting in new costs
2+e 0
0
0
1+e 1
a
d
c
b
given these costs,
find new routingโฆ.
resulting in new costs
0 2+e
1+e
1
0 0
a
d
c
b
given these costs,
find new routingโฆ.
resulting in new costs
2+e 0
0
0
1+e 1
๏ง sample scenario:
โข routing to destination a, traffic entering at d, c, e with rates 1, e (<1), 1
โข link costs are directional, and volume-dependent
e
1 1
e
1 1
e
1 1
30. Network layer: โcontrol planeโ roadmap
๏ง network management,
configuration
โข SNMP
โข NETCONF/YANG
๏ง introduction
๏งrouting protocols
๏ง link state
๏ง distance vector
๏ง intra-ISP routing: OSPF
๏ง routing among ISPs: BGP
๏ง SDN control plane
๏ง Internet Control Message
Protocol
Network Layer: 5-31
31. Based on Bellman-Ford (BF) equation (dynamic programming):
Distance vector algorithm
Network Layer: 5-32
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
32. Bellman-Ford Example
Network Layer: 5-33
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)
33. Distance vector algorithm
Network Layer: 5-34
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:
34. Distance vector algorithm:
Network Layer: 5-35
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
35. 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-36
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
36. Distance vector example: iteration
Network Layer: 5-37
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
37. Distance vector example: iteration
Network Layer: 5-38
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
38. Distance vector example: iteration
Network Layer: 5-39
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
39. Distance vector example: iteration
Network Layer: 5-40
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
40. Distance vector example: iteration
Network Layer: 5-41
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
41. Distance vector example: iteration
Network Layer: 5-42
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
42. Distance vector example: iteration
Network Layer: 5-43
โฆ. and so on
Letโs next take a look at the iterative computations at nodes
43. 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-44
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) = โ
45. 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-46
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) = โ
46. Distance vector example: computation
Network Layer: 5-47
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/
47. Distance vector example: computation
Network Layer: 5-48
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
48. 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 d, f, h
t=3
cโs state at t=0 may influence distance vector
computations up to 4 hops away, i.e., at g, i
t=4
Iterative communication, computation steps diffuses information through network:
t=1
t=2
t=3
t=4
49. Distance vector: link cost changes
โgood news
travels fastโ
t0 : y detects link-cost change, updates its DV, informs its neighbors.
t1 : z receives update from y, updates its DV, computes new least cost
to x , sends its neighbors its DV.
t2 : y receives zโs update, updates its DV. 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
50. Distance vector: link cost changes
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!
51. Comparison of LS and DV algorithms
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 DV is used by others:
error propagate thru network
52. Network layer: โcontrol planeโ roadmap
๏ง network management,
configuration
โข SNMP
โข NETCONF/YANG
๏ง introduction
๏ง routing protocols
๏ง intra-ISP routing: OSPF
๏ง routing among ISPs: BGP
๏ง SDN control plane
๏ง Internet Control Message
Protocol
Network Layer: 5-53
53. our routing study thus far - idealized
๏ง all routers identical
๏ง network โflatโ
โฆ not true in practice
Making routing scalable
Network Layer: 5-54
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
54. aggregate routers into regions known as โautonomous
systemsโ (AS) (a.k.a. โdomainsโ)
Internet approach to scalable routing
Network Layer: 5-55
intra-AS (aka โintra-domainโ):
routing among routers 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)
55. Interconnected ASes
Network Layer: 5-56
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
56. Inter-AS routing: a role in intradomain forwarding
Network Layer: 5-57
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?
57. Intra-AS routing: routing within an AS
Network Layer: 5-58
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
58. OSPF (Open Shortest Path First) routing
Network Layer: 5-59
๏ง โ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)
59. Hierarchical OSPF
Network Layer: 5-60
๏ง 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
60. Network layer: โcontrol planeโ roadmap
๏ง network management,
configuration
โข SNMP
โข NETCONF/YANG
๏ง introduction
๏ง routing protocols
๏ง intra-ISP routing: OSPF
๏ง routing among ISPs: BGP
๏ง SDN control plane
๏ง Internet Control Message
Protocol
Network Layer: 5-61
62. ๏ง 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:
โข obtain destination network reachability info from neighboring ASes
(eBGP)
โข determine routes to other networks based on reachability information
and policy
โข propagate reachability information to all AS-internal routers (iBGP)
โข advertise (to neighboring networks) destination reachability info
Internet inter-AS routing: BGP
Network Layer Control Plane: 5-63
63. eBGP, iBGP connections
Network Layer: 5-64
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
64. BGP basics
Network Layer: 5-65
๏ง 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
65. BGP protocol messages
๏ง BGP messages exchanged between peers over TCP connection
๏ง BGP messages [RFC 4371]:
โข 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
66. Path attributes and BGP routes
Network Layer: 5-67
๏ง 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
67. 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-68
๏ง 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
68. Network Layer: 5-69
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
BGP path advertisement: multiple paths
69. 2b
2d
2c
2a
AS 2
3b
3d
3c
3a
AS 3
1b
1d
1c
1a
AS 1
X
BGP: populating forwarding tables
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
70. 2b
2d
2c
2a
AS 2
3b
3d
3c
3a
AS 3
1b
1d
1c
1a
AS 1
X
BGP: populating forwarding tables
๏ง 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
71. 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-72
๏ง 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
72. BGP: achieving policy via advertisements
Network Layer: 5-73
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
73. BGP: achieving policy via advertisements (more)
Network Layer: 5-74
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
74. ๏ง 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-75
75. Why different Intra-, Inter-AS routing ?
Network Layer: 5-76
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
76. Network layer: โcontrol planeโ roadmap
๏ง network management,
configuration
โข SNMP
โข NETCONF/YANG
๏ง introduction
๏ง routing protocols
๏ง intra-ISP routing: OSPF
๏ง routing among ISPs: BGP
๏ง SDN control plane
๏ง Internet Control Message
Protocol
Network Layer: 5-77
77. ๏ง Internet network layer: historically implemented via
distributed, per-router control approach:
โข monolithic router contains switching hardware, runs proprietary
implementation of Internet standard protocols (IP, RIP, IS-IS, OSPF,
BGP) in proprietary router OS (e.g., Cisco IOS)
โข different โmiddleboxesโ for different network layer functions:
firewalls, load balancers, NAT boxes, ..
๏ง ~2005: renewed interest in rethinking network control plane
Software defined networking (SDN)
Network Layer: 5-78
78. Per-router control plane
Individual routing algorithm components in each and every router
interact in the control plane to computer forwarding tables
Routing
Algorithm
data
plane
control
plane
1
2
0111
values in arriving
packet header
3
Network Layer: 4-79
79. Software-Defined Networking (SDN) control plane
Remote controller computes, installs forwarding tables in routers
data
plane
control
plane
Remote Controller
CA
CA CA CA CA
1
2
0111
3
values in arriving
packet header
Network Layer: 4-80
80. Why a logically centralized control plane?
๏ง easier network management: avoid router misconfigurations,
greater flexibility of traffic flows
๏ง table-based forwarding (recall OpenFlow API) allows
โprogrammingโ routers
โข centralized โprogrammingโ easier: compute tables centrally and distribute
โข distributed โprogrammingโ more difficult: compute tables as result of
distributed algorithm (protocol) implemented in each-and-every router
๏ง open (non-proprietary) implementation of control plane
โข foster innovation: let 1000 flowers bloom
Software defined networking (SDN)
Network Layer: 5-81
81. SDN analogy: mainframe to PC revolution
Network Layer: 5-82
Vertically integrated
Closed, proprietary
Slow innovation
Small industry
Specialized
Operating
System
Specialized
Hardware
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
App
Specialized
Applications
Horizontal
Open interfaces
Rapid innovation
Huge industry
Microprocessor
Open Interface
* Slide courtesy: N. McKeown
or or
Open Interface
Windows Linux MAC OS
82. 2
2
1
3
1
1
2
5
3
5
v w
u z
y
x
Traffic engineering: difficult with traditional routing
Network Layer: 5-83
Q: what if network operator wants u-to-z traffic to flow along
uvwz, rather than uxyz?
A: need to re-define link weights so traffic routing algorithm
computes routes accordingly (or need a new routing algorithm)!
link weights are only control โknobsโ: not much control!
83. 2
2
1
3
1
1
2
5
3
5
v w
u z
y
x
Traffic engineering: difficult with traditional routing
Network Layer: 5-84
Q: what if network operator wants to split u-to-z
traffic along uvwz and uxyz (load balancing)?
A: canโt do it (or need a new routing algorithm)
84. Traffic engineering: difficult with traditional routing
Network Layer: 5-85
Q: what if w wants to route blue and red traffic differently from w to z?
A: canโt do it (with destination-based forwarding, and LS, DV routing)
2
2
1
3
1
1
2
5
3
5
v w
u z
y
x
We learned in Chapter 4 that generalized forwarding and SDN can
be used to achieve any routing desired
85. Software defined networking (SDN)
Network Layer: 5-86
data
plane
control
plane
Remote Controller
CA
CA CA CA CA
1: generalized โflow-basedโ
forwarding (e.g., OpenFlow)
2. control, data plane
separation
3. control plane functions
external to data-plane
switches
โฆ
routing
access
control
load
balance
4. programmable
control
applications
86. Software defined networking (SDN)
Network Layer: 5-87
Data-plane switches:
๏ง fast, simple, commodity switches
implementing generalized data-plane
forwarding (Section 4.4) in hardware
๏ง flow (forwarding) table computed,
installed under controller supervision
๏ง API for table-based switch control
(e.g., OpenFlow)
โข defines what is controllable, what is not
๏ง protocol for communicating with
controller (e.g., OpenFlow)
data
plane
control
plane
SDN Controller
(network operating system)
โฆ
routing
access
control
load
balance
southbound API
northbound API
SDN-controlled switches
network-control
applications
87. Software defined networking (SDN)
Network Layer: 5-88
SDN controller (network OS):
๏ง maintain network state
information
๏ง interacts with network control
applications โaboveโ via
northbound API
๏ง interacts with network switches
โbelowโ via southbound API
๏ง implemented as distributed system
for performance, scalability, fault-
tolerance, robustness
data
plane
control
plane
SDN Controller
(network operating system)
โฆ
routing
access
control
load
balance
southbound API
northbound API
SDN-controlled switches
network-control
applications
88. Software defined networking (SDN)
Network Layer: 5-89
network-control apps:
๏ง โbrainsโ of control: implement
control functions using lower-
level services, API provided by
SDN controller
๏ง unbundled: can be provided by
3rd
party: distinct from routing
vendor, or SDN controller
data
plane
control
plane
SDN Controller
(network operating system)
โฆ
routing
access
control
load
balance
southbound API
northbound API
SDN-controlled switches
network-control
applications
89. Components of SDN controller
Network Layer: 5-90
Network-wide distributed, robust state management
Communication to/from controlled devices
Link-state info switch info
host info
statistics flow tables
โฆ
โฆ
OpenFlow SNMP
โฆ
network
graph intent
RESTful
API
โฆ
Interface, abstractions for network control apps
SDN
controller
routing access
control
load
balance
communication: communicate
between SDN controller and
controlled switches
network-wide state
management : state of
networks links, switches,
services: a distributed database
interface layer to network
control apps: abstractions API
90. OpenFlow protocol
Network Layer: 5-91
๏ง operates between controller, switch
๏ง TCP used to exchange messages
โข optional encryption
๏ง three classes of OpenFlow messages:
โข controller-to-switch
โข asynchronous (switch to controller)
โข symmetric (misc.)
๏ง distinct from OpenFlow API
โข API used to specify generalized
forwarding actions
OpenFlow Controller
91. OpenFlow: controller-to-switch messages
Network Layer: 5-92
Key controller-to-switch messages
๏ง features: controller queries switch
features, switch replies
๏ง configure: controller queries/sets
switch configuration parameters
๏ง modify-state: add, delete, modify flow
entries in the OpenFlow tables
๏ง packet-out: controller can send this
packet out of specific switch port
OpenFlow Controller
92. OpenFlow: switch-to-controller messages
Network Layer: 5-93
Key switch-to-controller messages
๏ง packet-in: transfer packet (and its
control) to controller. See packet-out
message from controller
๏ง flow-removed: flow table entry deleted
at switch
๏ง port status: inform controller of a
change on a port.
Fortunately, network operators donโt โprogramโ switches by creating/sending
OpenFlow messages directly. Instead use higher-level abstraction at controller
OpenFlow Controller
93. SDN: control/data plane interaction example
Network Layer: 5-94
Link-state info switch info
host info
statistics flow tables
โฆ
โฆ
OpenFlow SNMP
โฆ
network
graph intent
RESTful
API
โฆ
Dijkstraโs link-state
routing
s1
s2
s3
s4
S1, experiencing link failure uses
OpenFlow port status message to
notify controller
1
SDN controller receives OpenFlow
message, updates link status info
2
Dijkstraโs routing algorithm
application has previously registered
to be called when ever link status
changes. It is called.
3
Dijkstraโs routing algorithm access
network graph info, link state info
in controller, computes new
routes
4
1
2
3
4
94. SDN: control/data plane interaction example
Network Layer: 5-95
Link-state info switch info
host info
statistics flow tables
โฆ
โฆ
OpenFlow SNMP
โฆ
network
graph intent
RESTful
API
โฆ
Dijkstraโs link-state
routing
s1
s2
s3
s4
link state routing app interacts
with flow-table-computation
component in SDN controller,
which computes new flow tables
needed
5
controller uses OpenFlow to
install new tables in switches
that need updating
6
5
6
1
2
3
4
95. Google ORION SDN control plane
ORION: Googleโs SDN control plane (NSDIโ21): control plane for
Googleโs datacenter (Jupiter) and wide area (B4) networks
Orion SDN architecture and core apps
๏ง routing (intradomain, iBGP), traffic
engineering: implemented in applications
on top of ORION core
๏ง edge-edge flow-based controls (e.g.,
CoFlow scheduling) to meet contract SLAs
๏ง management: pub-sub distributed
microservices in Orion core, OpenFlow for
switch signaling/monitoring
Note: ORION provides intradomain services within Googleโs network
96. OpenDaylight (ODL) controller
Network Layer: 5-97
Network Orchestrations and Applications
Southbound API
Service Abstraction
Layer (SAL)
config. and
operational data
store
REST/RESTCONF/NETCONF APIs
messaging
OpenFlow NETCONF SNMP OVSDB โฆ
Northbound API
Traffic
Engineering โฆ
Firewalling Load Balancing
Basic Network Functions
Enhanced
Services
โฆ
โฆ
Forwarding
rules mgr.
AAA
Host
Tracker
Stats
mgr.
Switch
mgr.
Topology
processing
Service Abstraction Layer:
๏ง interconnects internal,
external applications
and services
97. ONOS controller
Network Layer: 5-98
Network Applications
Southbound API
Northbound API
Traffic
Engineering โฆ
Firewalling Load Balancing
southbound
abstractions,
protocols
OpenFlow Netconf OVSDB
device link host flow packet
northbound
abstractions,
protocols
REST API Intent
ONOS
distributed
core
statistics
devices
hosts
links
paths flow rules topology
๏ง control apps separate
from controller
๏ง intent framework: high-
level specification of
service: what rather
than how
๏ง considerable emphasis
on distributed core:
service reliability,
replication performance
scaling
98. ๏ง hardening the control plane: dependable, reliable, performance-
scalable, secure distributed system
โข robustness to failures: leverage strong theory of reliable distributed
system for control plane
โข dependability, security: โbaked inโ from day one?
๏ง networks, protocols meeting mission-specific requirements
โข e.g., real-time, ultra-reliable, ultra-secure
๏ง Internet-scaling: beyond a single AS
๏ง SDN critical in 5G cellular networks
SDN: selected challenges
Network Layer: 5-99
99. ๏ง SDN-computed versus router-computer forwarding tables:
โข just one example of logically-centralized-computed versus protocol
computed
๏ง one could imagine SDN-computed congestion control:
โข controller sets sender rates based on router-reported (to
controller) congestion levels
SDN and the future of traditional network protocols
Network Layer: 5-100
How will implementation of
network functionality (SDN
versus protocols) evolve?
100. Network layer: โcontrol planeโ roadmap
๏ง network management,
configuration
โข SNMP
โข NETCONF/YANG
๏ง introduction
๏ง routing protocols
๏ง intra-ISP routing: OSPF
๏ง routing among ISPs: BGP
๏ง SDN control plane
๏ง Internet Control Message
Protocol
Network Layer: 5-101
101. ICMP: internet control message protocol
Network Layer: 4-102
๏ง used by hosts and routers to
communicate network-level
information
โข error reporting: unreachable host,
network, port, protocol
โข echo request/reply (used by ping)
๏ง network-layer โaboveโ IP:
โข ICMP messages carried in IP
datagrams
๏ง ICMP message: type, code plus first
8 bytes of IP datagram causing
error
Type Code description
0 0 echo reply (ping)
3 0 dest. network unreachable
3 1 dest host unreachable
3 2 dest protocol unreachable
3 3 dest port unreachable
3 6 dest network unknown
3 7 dest host unknown
4 0 source quench (congestion
control - not used)
8 0 echo request (ping)
9 0 route advertisement
10 0 router discovery
11 0 TTL expired
12 0 bad IP header
102. Traceroute and ICMP
Network Layer: 4-103
๏ง when ICMP message arrives at source: record RTTs
stopping criteria:
๏ง UDP segment eventually
arrives at destination host
๏ง destination returns ICMP
โport unreachableโ
message (type 3, code 3)
๏ง source stops
3 probes
3 probes
3 probes
๏ง source sends sets of UDP segments to
destination
โข 1st
set has TTL =1, 2nd
set has TTL=2, etc.
๏ง datagram in nth set arrives to nth router:
โข router discards datagram and sends source
ICMP message (type 11, code 0)
โข ICMP message possibly includes name of
router & IP address
103. Network layer: โcontrol planeโ roadmap
๏ง network management,
configuration
โข SNMP
โข NETCONF/YANG
๏ง introduction
๏ง routing protocols
๏ง intra-ISP routing: OSPF
๏ง routing among ISPs: BGP
๏ง SDN control plane
๏ง Internet Control Message
Protocol
Network Layer: 5-104
104. ๏ง autonomous systems (aka โnetworkโ): 1000s of interacting
hardware/software components
๏ง other complex systems requiring monitoring, configuration,
control:
โข jet airplane, nuclear power plant, others?
What is network management?
Network Layer: 5-105
"Network management includes the deployment, integration
and coordination of the hardware, software, and human
elements to monitor, test, poll, configure, analyze, evaluate,
and control the network and element resources to meet the
real-time, operational performance, and Quality of Service
requirements at a reasonable cost."
105. Components of network management
Network Layer: 5-106
managed device
managed device
managed device
managed device
managed device
agent data
agent data
agent data
agent data
agent data
managing
server/controller
data
Managing server:
application, typically
with network
managers (humans) in
the loop
Managed device:
equipment with manageable,
configurable hardware,
software components
Data: device โstateโ
configuration data,
operational data,
device statistics
Network
management
protocol: used by
managing server to query,
configure, manage device;
used by devices to inform
managing server of data,
events.
106. Network operator approaches to management
Network Layer: 5-107
managed device
managed device
managed device
managed device
managed device
agent data
agent data
agent data
agent data
agent data
managing
server/controller
data
CLI (Command Line Interface)
โข operator issues (types, scripts) direct to
individual devices (e.g., vis ssh)
SNMP/MIB
โข operator queries/sets devices data
(MIB) using Simple Network
Management Protocol (SNMP)
NETCONF/YANG
โข more abstract, network-wide, holistic
โข emphasis on multi-device configuration
management.
โข YANG: data modeling language
โข NETCONF: communicate YANG-compatible
actions/data to/from/among remote devices
107. SNMP protocol
Network Layer: 5-108
managed device
agent data
managing
server/controller
data
request
response trap message
Two ways to convey MIB info, commands:
request/response mode
managed device
agent data
managing
server/controller
data
trap mode
108. SNMP protocol: message types
Network Layer: 5-109
GetRequest
GetNextRequest
GetBulkRequest
manager-to-agent: โget me dataโ
(data instance, next data in list,
block of data).
Message type Function
SetRequest manager-to-agent: set MIB value
Response Agent-to-manager: value, response
to Request
Trap Agent-to-manager: inform manager
of exceptional event
109. SNMP protocol: message formats
Network Layer: 5-110
โฆ.
PDU
type
(0-3)
Request
ID
Error
Status
(0-5)
Error
Index
Name Value Name Value
Get/set header Variables to get/set
SNMP PDU
message types 0-3
โฆ.
PDU
type
4
Enterprise Agent
Addr
Trap
Type
(0-7)
Specific
code
Time
stamp
Name Value
Trap header Trap info
message type 4
110. ๏ง managed deviceโs operational (and some configuration) data
๏ง gathered into device MIB module
โข 400 MIB modules defined in RFCโs; many more vendor-specific MIBs
SNMP: Management Information Base (MIB)
Network Layer: 5-111
Object ID Name Type Comments
1.3.6.1.2.1.7.1 UDPInDatagrams 32-bit counter total # datagrams delivered
1.3.6.1.2.1.7.2 UDPNoPorts 32-bit counter # undeliverable datagrams (no application at port)
1.3.6.1.2.1.7.3 UDInErrors 32-bit counter # undeliverable datagrams (all other reasons)
1.3.6.1.2.1.7.4 UDPOutDatagrams 32-bit counter total # datagrams sent
1.3.6.1.2.1.7.5 udpTable SEQUENCE one entry for each port currently in use
agent data
๏ง Structure of Management Information (SMI): data definition language
๏ง example MIB variables for UDP protocol:
111. ๏ง goal: actively manage/configure devices network-wide
๏ง operates between managing server and managed network devices
โข actions: retrieve, set, modify, activate configurations
โข atomic-commit actions over multiple devices
โข query operational data and statistics
โข subscribe to notifications from devices
๏ง remote procedure call (RPC) paradigm
โข NETCONF protocol messages encoded in XML
โข exchanged over secure, reliable transport (e.g., TLS) protocol
NETCONF overview
Network Layer: 5-112
113. Selected NETCONF Operations
Network Layer: 5-114
NETCONF Operation Description
<get-config> Retrieve all or part of a given configuration. A device may have multiple
configurations.
<get> Retrieve all or part of both configuration state and operational state data.
<edit-config> Change specified (possibly running) configuration at managed device.
Managed device <rpc-reply> contains <ok> or <rpcerror> with rollback.
<lock>, <unlock> Lock (unlock) configuration datastore at managed device (to lock out
NETCONF, SNMP, or CLIs commands from other sources).
<create-subscription>, Enable event notification subscription from managed device
<notification>
114. Sample NETCONF RPC message
Network Layer: 5-115
note message id
change the running configuration
change MTU of Ethernet 0/0 interface to 1500
change a configuration
115. ๏ง data modeling language used to specify
structure, syntax, semantics of
NETCONF network management data
โข built-in data types, like SMI
๏ง XML document describing device,
capabilities can be generated from
YANG description
๏ง can express constraints among data that
must be satisfied by a valid NETCONF
configuration
โข ensure NETCONF configurations satisfy
correctness, consistency constraints
YANG
Network Layer: 5-116
agent data
managing
server/controller
data
NETCONF RPC message
<edit-config>
YANG-generated XML
</edit-config> YANG
generated
116. Network layer: Summary
Network Layer: 5-117
weโve learned a lot!
๏ง approaches to network control plane
โข per-router control (traditional)
โข logically centralized control (software defined networking)
๏ง traditional routing algorithms
โข implementation in Internet: OSPF , BGP
๏ง SDN controllers
โข implementation in practice: ODL, ONOS
๏ง Internet Control Message Protocol
๏ง network management
next stop: link layer!
117. Network layer, control plane: Done!
๏ง network management,
configuration
โข SNMP
โข NETCONF/YANG
๏งintroduction
๏ง routing protocols
๏ง link state
๏ง distance vector
๏ง intra-ISP routing: OSPF
๏ง routing among ISPs: BGP
๏ง SDN control plane
๏ง Internet Control Message
Protocol
Network Layer: 5-118
119. Distance vector: another example
Network Layer: 5-120
x y z
x
y
z
0 2 7
โ โ โ
โ โ โ
from
cost to
from
from x y z
x
y
z
0
x y z
x
y
z
โ โ
โ โ โ
cost to
x y z
x
y
z
โ โ โ
7 1 0
cost to
โ
2 0 1
โ โ โ
2 0 1
7 1 0
time
x z
1
2
7
y
Dx()
Dx(y) = min{cx,y + Dy(y), cx,z+ Dz(y)}
= min{2+0 , 7+1} = 2
Dx(z) = min{cx,y+ Dy(z), cx,z+ Dz(z)}
= min{2+1 , 7+0} = 3
3
2
Dy()
Dz()
cost to
from
120. Distance vector: another example
Network Layer: 5-121
x y z
x
y
z
0 2 7
โ โ โ
โ โ โ
cost to
from
from
x y z
x
y
z
โ โ
โ โ โ
cost to
x y z
x
y
z
โ โ โ
7 1 0
cost to
โ
2 0 1
โ โ โ
x z
1
2
7
y
Dx()
Dy()
Dz()
from x y z
x
y
z
0 2 3
from
cost to
x y z
x
y
z
0 2 7
from
cost to
x y z
x
y
z
0 2 3
from
cost to
x y z
x
y
z
0 2 3
from
cost to
x y z
x
y
z
0 2 7
from
cost to
2 0 1
7 1 0
2 0 1
3 1 0
2 0 1
3 1 0
2 0 1
3 1 0
2 0 1
3 1 0
from
x y z
x
y
z
0
2 0 1
7 1 0
3
2
cost to
time
Editor's Notes
#1: Version History
8.0 (May 2020)
All slides reformatted for 16:9 aspect ratio
All slides updated to 8th edition material
Use of Calibri font, rather that Gill Sans MT
Add LOTS more animation throughout
lighter header font
Re-do of network management slides; redo of Bellman-Ford slides
8.2 (changes over 8.0)
improved animations of Dijkstraโs algorithm and Bellman Ford
various improvements to BGP
SDN: added Google Orion (2021 Google network SDN control plane)
#62: Each router then locally runs Dijkstraโs shortest-path algorithm to determine a shortest-path tree to all subnets, with itself as the root node.
#63: Since an inter-AS routing protocol involves coordination among multiple ASs, communicating ASs must run the same inter-AS routing protocol. In fact, in the Internet, all ASs run the same inter-AS routing protocol, called the Border Gateway Protocol, more commonly known as BGP
#96: and so in this sense a migration away from โprotocolsโ is indeed underway!
Explain structure of Orion in figure
Repeat after each reveal: no protocol
Coflows: โa collection of flows between two groups of machines with associated semantics and a collective objectiveโ; [Sigcommโ13, Sigcommโ15, Sigcommโ18]. Not unlike multiprocessor scheduling in the 1980โs