CS 552 Computer Networks
description
Transcript of CS 552 Computer Networks
![Page 1: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/1.jpg)
CS 552 Computer Networks
IP forwarding Fall 2005
Rich Martin(Slides from D. Culler and N. McKeown)
![Page 2: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/2.jpg)
Outline
• Where IP routers sit in the network• What IP routers look like• What do IP routers do?• Some details:
– The internals of a “best-effort” router• Lookup, buffering and switching
– The internals of a “QoS” router
![Page 3: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/3.jpg)
Outline (next time)
• The way routers are really built.• Evolution of their internal workings.• What limits their performance.• The way the network is built today
![Page 4: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/4.jpg)
Outline
• Where IP routers sit in the network• What IP routers look like• What do IP routers do?• Some details:
– The internals of a “best-effort” router• Lookup, buffering and switching
– The internals of a “QoS” router• Can optics help?
![Page 5: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/5.jpg)
The Internet is a mesh of routers (in theory)
The Internet Core
IP Core router
IP Edge Router
![Page 6: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/6.jpg)
What do they look like?
Access routerse.g. ISDN, ADSL
Core routere.g. OC48c POS
Core ATM switch
![Page 7: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/7.jpg)
Basic Architectural Componentsof an IP Router
Control Plane
Datapath”per-packet processingSwitchingForwarding
Table
Routing Table
Routing Protocols
![Page 8: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/8.jpg)
Per-packet processing in an IP Router
1. Accept packet arriving on an incoming link.2. Lookup packet destination address in the forwarding
table, to identify outgoing port(s).3. Manipulate packet header: e.g., decrement TTL,
update header checksum.4. Send packet to the outgoing port(s).5. Buffer packet in the queue.6. Transmit packet onto outgoing link.
![Page 9: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/9.jpg)
A General Switch Model
Cross-bar
InputBuffer
Control
OutputPorts
Input Receiver Transmiter
Ports
Routing, Scheduling
OutputBuffer
Interconnect
![Page 10: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/10.jpg)
IP Switch Model
2. Interconnect 3. EgressForwardin
gTable
ForwardingDecision
1. Ingress
Forwarding
Table
ForwardingDecision
Forwarding
Table
ForwardingDecision
![Page 11: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/11.jpg)
Forwarding Engine
header
payloadPacket
Router
Destination Address
Outgoing Port
Dest-network PortForwarding Table
Routing Lookup Data Structure
65.0.0.0/8128.9.0.0/16
149.12.0.0/19
31
7
![Page 12: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/12.jpg)
The Search Operation is not a Direct Lookup
(Incoming port, label)
Address MemoryDat a
(Outgoing port, label)
IP addresses: 32 bits long 4G entries
![Page 13: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/13.jpg)
The Search Operation is also not an Exact Match Search
• Hashing • Balanced binary search trees
Exact match search: search for a key in a collection of keys of the same length.
Relatively well studied data structures:
![Page 14: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/14.jpg)
0 224 232-1
128.9.0.0/16
65.0.0.0
142.12.0.0/1965.0.0.0/8
65.255.255.255
Example Forwarding Table
Destination IP Prefix Outgoing Port65.0.0.0/8 3
128.9.0.0/16 1
142.12.0.0/19 7
IP prefix: 0-32 bits
Prefix length
128.9.16.14
![Page 15: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/15.jpg)
Prefixes can Overlap
128.9.16.0/21 128.9.172.0/21
128.9.176.0/24
Routing lookup: Find the longest matching prefix (the most specific route) among all prefixes that match the destination address.
0 232-1
128.9.0.0/16142.12.0.0/1965.0.0.0/8
128.9.16.14
Longest matching prefix
![Page 16: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/16.jpg)
8
32
24
Prefixes
Prefi
x Le
ngth
128.9.0.0/16142.12.0.0/19
65.0.0.0/8
Difficulty of Longest Prefix Match
128.9.16.14
128.9.172.0/21
128.9.176.0/24
128.9.16.0/21
![Page 17: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/17.jpg)
Lookup Rate Required
12540.0OC768c2002-03
31.2510.0OC192c2000-01
7.812.5OC48c1999-00
1.940.622OC12c1998-99
40B packets (Mpps)
Line-rate (Gbps)
LineYear
DRAM: 50-80 ns, SRAM: 5-10 ns
31.25 Mpps 33 ns
![Page 18: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/18.jpg)
0100002000030000400005000060000700008000090000
100000
Size of the Forwarding Table
Source: http://www.telstra.net/ops/bgptable.html
95 96 97 98 99 00Year
Num
ber o
f Pre
fixes
10,000/year
![Page 19: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/19.jpg)
Types of Internal Interconnects
Io
I1
I2
I3
Io I1 I2 I3
O0
Oi
O2
O3
RAMphase
O0
Oi
O2
O3
DoutDin
Io
I1I2
I3
addr
1. Multiplexers 2. Tri-State Devices
3. Shared Memory
![Page 20: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/20.jpg)
Where do packets go post output port selection? Two basic techniques
Input Queueing Output Queueing
Usually a non-blockingswitch fabric (e.g. crossbar)
Usually a fast bus
![Page 21: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/21.jpg)
Shared Memory Bandwidth
SharedMemory
200 byte bus
5ns SRAM
1
2
N
• 5ns per memory operation• Two memory operations per packet• Therefore, up to 160Gb/s• In practice, closer to 80Gb/s
![Page 22: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/22.jpg)
Input buffered swtich
• Independent routing logic per input– FSM
• Scheduler logic arbitrates each output– priority, FIFO, random
• Head-of-line blocking problem
Cross-bar
OutputPorts
Input Ports
Scheduling
R0
R1
R2
R3
Internconnect
![Page 23: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/23.jpg)
Input QueueingHead of Line Blocking
Del
ay
Load58.6% 100%
![Page 24: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/24.jpg)
Head of Line Blocking
![Page 25: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/25.jpg)
(Virtual) Output Buffered Switch
• How would you build a shared pool?
Control
OutputPorts
Input Ports
OutputPorts
OutputPorts
OutputPorts
R0
R1
R2
R3
N buffers per input
![Page 26: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/26.jpg)
Solving HOL with Input QueueingVirtual output queues
![Page 27: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/27.jpg)
Input QueueingVirtual Output Queues
Del
ay
Load 100%
![Page 28: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/28.jpg)
Output scheduling
• n independent arbitration problems?– static priority, random, round-robin
• simplifications due to routing algorithm?• general case is max bipartite matching
Cross-bar
OutputPorts
R0
R1
R2
R3
O0
O1
O2
InputBuffers
![Page 29: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/29.jpg)
Finding a maximum size match
• How do we find the maximum size (weight) match?
ABCDEF
123456
Inputs Outputs
Requests
![Page 30: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/30.jpg)
Network flows and bipartite matching
Finding a maximum size bipartite matching is equivalent to solving a network flow problem with capacities and flows
of size 1.
A 1
Sources
Sinkt
BCDEF
23456
![Page 31: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/31.jpg)
Network flows and bipartite matching
A 1BCDEF
23456
Maximum Size Matching:
![Page 32: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/32.jpg)
Complexity of Maximum Matchings
• Maximum Size Matchings:– Algorithm by Dinic O(N5/2)
• Maximum Weight Matchings– Algorithm by Kuhn O(N3)
• In general:– Hard to implement in hardware– Too Slow in Practice
• But gives nice theory and upper bound
![Page 33: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/33.jpg)
Arbitration
– Maximal Matches– Wavefront Arbiter (WFA)– Parallel Iterative Matching (PIM)– iSLIP
![Page 34: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/34.jpg)
Maximal Matching
• A maximal matching is one in which each edge is added one at a time, and is not later removed from the matching.
• i.e. no augmenting paths allowed (they remove edges added earlier).
• No input and output are left unnecessarily idle.
![Page 35: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/35.jpg)
Example of Maximal Size Matching
A 1BCDEF
23456
A 1BCDEF
23456
Maximal Size Matching
Maximum Size Matching
ABCDEF
123456
![Page 36: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/36.jpg)
Maximal Matchings
• In general, maximal matching is simpler to implement, and has a faster running time.
• A maximal size matching is at least half the size of a maximum size matching.
• A maximal weight matching is defined in the obvious way.
• A maximal weight matching is at least half the weight of a maximum weight matching.
![Page 37: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/37.jpg)
Routing Strategies?
• Architecture of the middle of the switch? – Wavefront– Slip/PIM– Butterfly/Benes networks
• Goal in each case is a conflict-free schedule of inputs to outputs given the output is already determined
![Page 38: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/38.jpg)
Wave Front Arbiter(Tamir)
Requests Match123
4
123
4
123
4
123
4
![Page 39: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/39.jpg)
Wave Front Arbiter
Requests Match
![Page 40: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/40.jpg)
Wavefront ArbitersProperties
• Feed-forward (i.e. non-iterative) design lends itself to pipelining.
• Always finds maximal match.• Usually requires mechanism to prevent inputs
from getting preferential service.– What the 50Gbs router does:
• Scramble (permute) inputs each cycle
![Page 41: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/41.jpg)
Parallel Iterative Matching
1234
1234
1: Requests
1234
1234
2: Grant
1234
1234
3: Accept/Match
selection
1234
1234
selection
1234
1234
#1
#2
Iteration:
1234
1234
![Page 42: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/42.jpg)
PIM Properties
• Guaranteed to find a maximal match in at most N iterations.
• In each phase, each input and output arbiter can make decisions independently.
• In general, will converge to a maximal match in < N iterations.
![Page 43: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/43.jpg)
Parallel Iterative Matching
PIM with a single iteration
![Page 44: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/44.jpg)
Parallel Iterative Matching
PIM with 4 iterations
Output Queuing
![Page 45: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/45.jpg)
iSLIP
1234
1234
1: Requests
1234
1234
3: Accept/Match
1234
1234
#1
#2
1234
1234
1234
1234
1234
1234
2: Grant
12
3
4
![Page 46: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/46.jpg)
iSLIP Operation
• Grant phase: Each output selects the requesting input at the pointer, or the next input in round-robin order. It only updates its pointer if the grant is accepted.
• Accept phase: Each input selects the granting output at the pointer, or the next output in round-robin order.
• Consequence: Under high load, grant pointers tend to move to unique values.
![Page 47: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/47.jpg)
iSLIPProperties
• Random under low load• TDM under high load• Lowest priority to MRU• 1 iteration: fair to outputs• Converges in at most N iterations. (On average, simulations
suggest < log2N)• Implementation: N priority encoders• 100% throughput for uniform i.i.d. traffic.• But…some pathological patterns can lead to low throughput.
![Page 48: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/48.jpg)
iSLIP
iSLIP with 4 iterations
FIFO
Output Buffering
![Page 49: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/49.jpg)
iSLIPImplementation
Grant
Grant
Grant
Accept
Accept
Accept
1
2
N
1
2
N
State
N
N
N
Decision
log2N
log2N
log2N
![Page 50: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/50.jpg)
Alternative Switching
• Crossbars are expensive• Alternative networks can match inputs to
outputs:– Ring– Tree– K-ary N-cubes – Multi-stage logarithmic networks
• Each cell has constant number of inputs and outputs
![Page 51: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/51.jpg)
Example: Butterfly
000001
010011
100101
110111
000001
010011
100101
110111
Butter fly Network
split on MSB
split on LSB
![Page 52: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/52.jpg)
Butterfly
Inputs
Outputs
A “Butterfly”
![Page 53: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/53.jpg)
Benes Network
Butterfly #1 Butterfly #2
![Page 54: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/54.jpg)
Benes networks
• Any permutation has a conflict free route– Useful property– Offline computation is difficult
• Can route to random node in middle, then to destination – Conflicts are unlikely under uniform traffic– What about conflicts?
![Page 55: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/55.jpg)
Sorting Networks
• Bitonic sorter recursively merges sorted sublists.• Can switch by sorting on destination.
– additional components needed for conflict resolution
1256
150934
1381
1172
1410
5156124093811113142107
56
1215943018
1113141072
5946312015141108117132
35049
126
15141113107182
034569
12151413
11108721
0143
134
115
1068792
121
15
063724158
149
1311121015
0213465781191012141315
0123456789
101112131415
minmaxmaxmin
5121560943813111271410
![Page 56: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/56.jpg)
Flow Control
• What do you do when push comes to shove?– ethernet: collision detection and retry after delay– FDDI, token ring: arbitration token– TCP/WAN: buffer, drop, adjust rate– any solution must adjust to output rate
• Link-level flow control
Data
Ready
![Page 57: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/57.jpg)
Link Flow Control Examples
• Short Links
• long links– several flits on the wire
Source
Destination
Data
Req
Ready/AckF/E F/E
![Page 58: CS 552 Computer Networks](https://reader036.fdocuments.net/reader036/viewer/2022062305/568167ad550346895ddcfcf2/html5/thumbnails/58.jpg)
Smoothing the flow
• How much slack do you need to maximize bandwidth?
LowMark
HighMark
Empty
Full
Stop
Go
Incoming Phits
Outgoing Phits
Flow-control Symbols