cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
533
Views
5
Helpful
1
Replies

Fast-Switching vs Processing Switching

paulawong
Level 1
Level 1

Hi there,

I read about fast-switching and processing switching that processing uses

buffer vs fast-switching, which uses memory.

Could someone explain which is more efficient?

Thanks,

1 Reply 1

jasyoung
Level 7
Level 7

This is a very complex issue. A large section of the Cisco Press book "Inside Cisco IOS Software Architecture" book is dedicated to this very topic. The ISBN is 1-57870-181-3 if you're interested in picking up a copy.

Process switching is the "low-end" switching method in a Cisco router, the least common denominator. With a few exceptions, almost all features are supported in process switching. Cisco routers punt traffic to the process switching path if they need complex treatments that aren't supported in other switching paths.

Fast switching is a Cisco route caching implementation. It's been around for a while. When an interface has fast switching enabled, the fast switching cache is consulted to see if there's a "quick answer" to how to handle the packet. The first packet to any given destination is process switched, and the router takes that opportunity to populate the fast switching cache for that destination. Subsequent packets to that destination will find an entry in the cache and be "fast switched". Some features are not implemented by the fast switching code; in this case, the process switching code will not make a fast switching cache entry and the traffic will continue to be process switched. Fast switching is the most efficient switching method to use on low end platforms.

There is another switching method called CEF, or Cisco Express Forwarding. It uses a different data structure in memory to hold the entire route table - not just a cached portion. For this reason it's memory-hungry, but it's very fast and it's implemented in dedicated hardware on some high-end platforms. Process and fast switching don't consume nearly the amount of memory for large route tables that CEF does, but caching algorithms like fast switching do poorly when you have traffic heading to a great many destinations, like a service provider or enterprise network core has. CEF is much more effective in this situation. CEF is also required to implement some newer QoS and security features.

There exist other switching methods (NetFlow, autonomous and friends on 7500, distributed variants of fast and CEF, etc), but these are the common ones. I'm leaving out a lot of detail here; I recommend the IOS Architectures book if you have an interest.