A 50-Gb/s IP Router
Download
Report
Transcript A 50-Gb/s IP Router
A 50-Gb/s IP Router
참고논문: Craig Partridge et al.
[ IEEE/ACM ToN, June 1998 ]
MGR --- multi-gigabit router
Performance
32 MPPS forwarding rates (1000b/packet)
50 Gb/s of full-duplex backplane capacity
rate and bandwidth
2~10 times faster than high-performance
routers available at that time
Why and How?
Outline
Router Architecture
Major Innovations
Architectures
Line Card Design
Forwarding Engines
Switched BUS
Network Processor
Routing/Forwarding Tables
Summary
Why MGR is needed
Several multi-gigabit networking
technologies have emerged:
Thus requires
ATM/SONET, Optical WDM, Fiber Channel…
Multi-gigabit IP routers
Multi-Gigabit Router is especially useful
for integrating ATM into the Internet
Router Architecture
Routing Engines
Packets In
Packet Forwarding
Engines
Packets Out
Router Architecture
Any problems if we design MGR ?
Routing Engines
Bus speed?
Packets In
bottleneck?
Packet Forwarding
Engines
Packets Out
MGR architecture
Innovations
Five major innovations
I.
each forwarding engine has a complete set of
routing tables (100KB for 50K routes)
II.
mis-hit causes 1000 times slow
crossbar switched backplane
parallelism of a switch
III. separate forwarding engines and line cards
instead of one board
not sure one board is enough to fit two functions
flexibility
Innovations
Five major innovations
IV. placing forwarding engines on separate
cards
V.
link-layers/abstract link-layer header format
share forwarding engines/robust
QoS processing in the router
line-speed QoS
classify packets
scheduling in outbound line card
MGR Outline
What’s Following
Line Card Design
Forwarding Engines
Crossbar Switch BUS
Network Processor
Managing Routing and Forwarding
Tables
Line Card Design
One Line Card (total cards: 15)
16 interfaces (total < 2.5Gb/s)
Disjoint inbound/outbound Processing
Inbound Packet Processing
Outbound Packet Processing
Line Card Design --- inbound
Inbound Packet Processing
Simple, 64-Byte pages
1st page (Header) to forwarding engine
Updated page replaces 1st page
Two situations
Multicasts
ATM
Line Card Design --- outbound
Outbound Packet Processing
Assemble pages to packet
Pass to line card’s QoS processor
VLIW programmable state machine
Event-driven
Arrival of packet event
Transmission interface’s ready event
Allocation of bandwidth changes event
Timer event
Forwarding Engines - processor
Alpha 21164 Processor
64-bit 32-Register Super-scalar RISC
First level cache (Instruction & Data) (8kB)
On-chip secondary cache (96kB)
2048 Instructions
Enough to do key routing function
12,000 entry cache (64bit), hit-rate >=95%
Tertiary cache (up to 16M)
Two banks, complete forwarding table
Forwarding Engines - hardware
Read from FIFO
Writes to inbound/outbound line card.
Forwarding Engines - software
Performance
85 instructions in common case
No less than 42 cycles
Peak forwarding speed of 9.8 MPPS per
forwarding engines
Forwarding Engines - software
Three stages for fast path through
Check header/length/option/load route
No checksum here ( Why? )
May lookup the route if not match, may update
TTL/checksum
Write back the TTL/checksum/routing
information
Link-layer information
Flow classifier
21% increasing cycles to pay to check for a rare error
Forwarding Engines - software
Special cases
Header whose destination misses in the route cache
Headers with errors
Header with IP options
Datagrams that must be fragmented
Multicast datagrams
Goal
Frequent and easy-handled packets are done in the Alpha
Otherwise, are pushed of to network processor
Forwarding Engines - software
Instruction Mix
Forwarding Engines – Abstract
link layer header
Summary link-layer information for forwarding engine and line
cards
Advantages: keep forwarding engine and its code simple.
Switched BUS
Switched BUS / Shared BUS
Point-to-Point switch, crossbar
Point-to-Multicast ???
Input-queued switch
Allocation Algorithm
Maximize throughput at the expense of
predictable latency
Switched BUS
Allocator
The heart of the high-speed switch in MGR
Network Processor
Routing Processing/Complicated
processing on packet
Commercial PC motherboard with PCI
interface
1.1 NetBSD release of UNIX
Public source code
Customize IP code
More free software on UNIX
Routing/Forwarding Tables
Routing tables
Forwarding Tables
Network processor
Forwarding engines
Routing Tables Forwarding Tables
Small forwarding tables for forwarding engine
Two banks of memory in Forwarding Engines
Decouple two operations
Processing routing updates
Actual updating of forwarding tables
Summary
More than fast enough
Keep up with the latest transmission
technologies at that time
Two important contributions
It is feasible for MGR
Examine every datagram header
Eliminate doubts
router technology could not keep up with the
high-speed networks
Questions?
Thank You