A Method for Routing Packets Across Multiple Paths in NoCs ...
Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large...
Transcript of Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large...
![Page 1: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/1.jpg)
Network Layer (Routing)
![Page 2: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/2.jpg)
Where we are in the Course
• Moving on up to the Network Layer!
CSE 461 University of Washington 2
Physical
Link
Network
Transport
Application
![Page 3: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/3.jpg)
Topics
• Network service models• Datagrams (packets), virtual circuits
• IP (Internet Protocol)• Internetworking• Forwarding (Longest Matching Prefix)• Helpers: ARP and DHCP• Fragmentation and MTU discovery• Errors: ICMP (traceroute!)• IPv6, scaling IP to the world• NAT, and “middleboxs”
• Routing Algorithms
CSE 461 University of Washington 3
![Page 4: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/4.jpg)
Routing versus Forwarding
• Forwarding is the process of sending a packet on its way
• Routing is the process of deciding in which direction to send traffic
CSE 461 University of Washington 4
Forward!packet
Which way?
Which way?
Which way?
![Page 5: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/5.jpg)
Improving on the Spanning Tree
• Spanning tree provides basic connectivity
• e.g., some path BC
• Routing uses all links to find “best” paths
• e.g., use BC, BE, and CE
CSE 461 University of Washington 5
A B C
D E F
A B C
D E F
Unused
![Page 6: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/6.jpg)
Perspective on Bandwidth Allocation
• Routing allocates network bandwidth adapting to failures; other mechanisms used at other timescales
CSE 461 University of Washington 6
Mechanism Timescale / Adaptation
Load-sensitive routing Seconds / Traffic hotspots
Routing Minutes / Equipment failures
Traffic Engineering Hours / Network load
Provisioning Months / Network customers
![Page 7: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/7.jpg)
Delivery Models
• Different routing used for different delivery models
CSE 461 University of Washington 7
Unicast(§5.2)
Multicast(§5.2.8)
Anycast(§5.2.9)
Broadcast(§5.2.7)
![Page 8: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/8.jpg)
Goals of Routing Algorithms
• We want several properties of any routing scheme:
CSE 461 University of Washington 8
Property Meaning
Correctness Finds paths that work
Efficient paths Uses network bandwidth well
Fair paths Doesn’t starve any nodes
Fast convergence Recovers quickly after changes
Scalability Works well as network grows large
![Page 9: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/9.jpg)
Rules of Routing Algorithms
• Decentralized, distributed setting• All nodes are alike; no controller• Nodes only know what they learn by exchanging messages
with neighbors • Nodes operate concurrently • May be node/link/message failures
CSE 461 University of Washington 9
Who’s there?
![Page 10: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/10.jpg)
Recap: Classless Inter-Domain Routing (CIDR)
• In the Internet:• Hosts on same network have IPs in the same IP prefix• Hosts send off-network traffic to nearest router to handle• Routers discover the routes to use• Routers use longest prefix matching to send packets to
the right next hop
CSE 461 University of Washington 10
![Page 11: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/11.jpg)
Longest Matching Prefix
CSE 461 University of Washington 11
Prefix Next Hop
192.24.0.0/19 D
192.24.12.0/22 B
192.24.0.0
192.24.63.255
/19
/22
192.24.12.0
192.24.15.255
IP address
More specific
![Page 12: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/12.jpg)
Host/Router Combination
• Hosts attach to routers as IP prefixes• Router needs table to reach all hosts
CSE 461 University of Washington 12
Rest ofnetwork
IP router“A”
Single network(One IP prefix “P”)
LAN switch
![Page 13: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/13.jpg)
Network Topology for Routing
• Group hosts under IP prefix connected to router• One entry for all hosts
CSE 461 University of Washington 13
PA
B
E10
4
0
![Page 14: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/14.jpg)
Network Topology for Routing (2)
• Routing now works!• Routers advertise IP prefixes for hosts• Router addresses are “/32” prefixes• Lets all routers find a path to hosts• Hosts find by sending to their router
CSE 461 University of Washington 14
![Page 15: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/15.jpg)
Hierarchical Routing
![Page 16: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/16.jpg)
CSE 461 University of Washington 16
Internet Growth
• At least a billion Internet hosts and growing …
![Page 17: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/17.jpg)
CSE 461 University of Washington 17
Internet Routing Growth
• Internet growth translates into routing table growth (even using prefixes) …
Source: By Mro (Own work), CC-BY-SA-3.0 , via Wikimedia Commons
Year
Nu
mb
er o
f IP
Pre
fixe
s
Ouch!
![Page 18: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/18.jpg)
Impact of Routing Growth
1. Forwarding tables grow• Larger router memories, may increase lookup time
2. Routing messages grow• Need to keeps all nodes informed of larger topology
3. Routing computation grows• Shortest path calculations grow faster than the network
CSE 461 University of Washington 18
![Page 19: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/19.jpg)
Techniques to Scale Routing
• First: Network hierarchy• Route to network regions
• Next: IP prefix aggregation• Combine, and split, prefixes
CSE 461 University of Washington 19
![Page 20: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/20.jpg)
Idea
• Scale routing using hierarchy with regions• Route to regions, not individual nodes
CSE 461 University of Washington 20
To the West!
West East
Destination
![Page 21: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/21.jpg)
Hierarchical Routing
• Introduce a larger routing unit• IP prefix (hosts) from one host• Region, e.g., ISP network
• Route first to the region, then to the IP prefix within the region
• Hide details within a region from outside of the region
CSE 461 University of Washington 21
![Page 22: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/22.jpg)
Hierarchical Routing (2)
CSE 461 University of Washington 22
![Page 23: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/23.jpg)
Hierarchical Routing (3)
CSE 461 University of Washington 23
![Page 24: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/24.jpg)
Hierarchical Routing (4)
• Penalty is longer paths
CSE 461 University of Washington 24
1C is best route to region 5, except for destination 5C
![Page 25: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/25.jpg)
Observations
• Outside a region, nodes have one route to all hosts within the region
• This gives savings in table size, messages and computation
• However, each node may have a different route to an outside region
• Routing decisions are still made by individual nodes; there is no single decision made by a region
CSE 461 University of Washington 25
![Page 26: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/26.jpg)
IP Prefix Aggregation and Subnets
![Page 27: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/27.jpg)
Idea
• Scale routing by adjusting the size of IP prefixes• Split (subnets) and join (aggregation)
CSE 461 University of Washington 27
I’m the whole region
Region1
2
3
IP /16IP1 /18
IP2 /18
IP3 /18
![Page 28: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/28.jpg)
Recall
• IP addresses are allocated in blocks called IP prefixes, e.g., 18.31.0.0/16
• Hosts on one network in same prefix
• “/N” prefix has the first N bits fixed and contains 232-N addresses
• E.g., a “/24” has 256 addresses
• Routers keep track of prefix lengths• Use it as part of longest prefix matching
28
Routers can change prefix lengths without affecting hosts
![Page 29: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/29.jpg)
Prefixes and Hierarchy
• IP prefixes help to scale routing, but can go further• Use a less specific (larger) IP prefix as a name for a region
CSE 461 University of Washington 29
I’m the whole region
Region
1
2
3
IP /16
IP1 /18
IP2 /18
IP3 /18
![Page 30: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/30.jpg)
Subnets and Aggregation
• Two use cases for adjusting the size of IP prefixes; both reduce routing table
1. Subnets• Internally split one large prefix into multiple smaller ones
2. Aggregation• Join multiple smaller prefixes into one large prefix
CSE 461 University of Washington 30
![Page 31: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/31.jpg)
Subnets
• Internally split up one IP prefix
32K addresses
One prefix sent to rest of Internet16K
8K
4K Company Rest of Internet
![Page 32: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/32.jpg)
Aggregation
• Externally join multiple separate IP prefixes
One prefix sent to rest of Internet
\
ISPRest of Internet
![Page 33: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/33.jpg)
Best Path Routing
![Page 34: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/34.jpg)
CSE 461 University of Washington 34
What are “Best” paths anyhow?• Many possibilities:
• Latency, avoid circuitous paths• Bandwidth, avoid slow links• Money, avoid expensive links• Hops, to reduce switching
• But only consider topology• Ignore workload, e.g., hotspots
A B
C
D
E
F
G
H
![Page 35: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/35.jpg)
Shortest Paths
We’ll approximate “best” by a cost function that captures the factors
• Often call lowest “shortest”
1. Assign each link a cost (distance)
2. Define best path between each pair of nodes as the path that has the lowest total cost (or is shortest)
3. Pick randomly to any break ties
CSE 461 University of Washington 35
![Page 36: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/36.jpg)
CSE 461 University of Washington 36
Shortest Paths (2)
• Find the shortest path A E
• All links are bidirectional, with equal costs in each direction
• Can extend model to unequal costs if needed A B
C
D
E
F
G
H
2
1
10
2
2
4
24
4
3
3
3
![Page 37: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/37.jpg)
CSE 461 University of Washington 37
Shortest Paths (3)
• ABCE is a shortest path
• dist(ABCE) = 4 + 2 + 1 = 7
• This is less than:• dist(ABE) = 8• dist(ABFE) = 9• dist(AE) = 10• dist(ABCDE) = 10
A B
C
D
E
F
G
H
2
1
10
2
2
4
24
4
3
3
3
![Page 38: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/38.jpg)
CSE 461 University of Washington 38
Shortest Paths (4)
• Optimality property:• Subpaths of shortest paths are
also shortest paths
• ABCE is a shortest pathSo are ABC, AB, BCE, BC, CE
A B
C
D
E
F
G
H
2
1
10
2
2
4
24
4
3
3
3
![Page 39: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/39.jpg)
CSE 461 University of Washington 39
Sink Trees
• Sink tree for a destination is the union of all shortest paths towards the destination
• Similarly source tree
• Find the sink tree for E A B
C
D
E
F
G
H
2
1
10
2
2
4
24
4
3
3
3
![Page 40: Network Layer (Routing) · both reduce routing table 1. Subnets •Internally split one large prefix into multiple smaller ones 2. Aggregation •Join multiple smaller prefixes into](https://reader034.fdocuments.us/reader034/viewer/2022051815/603ec42a19edb942e54403ac/html5/thumbnails/40.jpg)
CSE 461 University of Washington 40
Sink Trees (2)
• Implications:• Only need to use destination to
follow shortest paths• Each node only need to send to
the next hop
• Forwarding table at a node• Lists next hop for each
destination• Routing table may know more
A B
C
D
E
F
G
H
2
1
10
2
2
4
24
4
3
3
3