Inside Cisco IOS Software Architecture (CCIE Professional Development) available in Hardcover
An essential guide to understanding the Cisco IOS architecture
In-depth coverage of Cisco's IOS Software architecture provides crucial information to:
- Prevent network problems and optimize performance through more efficient design and configuration
- Isolate and resolve network problems more quickly and easily
- Apply the appropriate packet switching method, such as process switching, fast switching, optimum switching, or Cisco Express Forwarding (CEF)
- Understand the hardware architecture, packet buffering, and packet switching processes for shared memory routers (Cisco 1600, 2500, 3600, 4000, 4500, and 4700 series)
- Understand the hardware architecture, packet buffering, and packet switching processes for the Cisco 7200 series routers
- Understand the hardware architecture, packet buffering, and packet switching processes for the Cisco 7500 series routers
- Understand the hardware architecture, packet buffering, and packet switching processes for the Cisco GSR 12000 series routers
- Further your knowledge of how IOS Software implements Quality of Service (QoS)
Inside Cisco IOS Software Architecture offers crucial and hard-to-find information on Cisco's Internetwork Operating System (IOS) Software. IOS Software provides the means by which networking professionals configure and manage Cisco networking devices. Beyond understanding the Cisco IOS command set, comprehending what happens inside Cisco routers will help you as a network designer or engineer to perform your job more effectively. By understanding the internal operations of IOS Software, you will be able to take architectural considerations into account when designing networksand isolate problems more easily when troubleshooting networks. Inside Cisco IOS Software Architecture provides essential information on the internal aspects of IOS Software at this level, and it is an invaluable resource for better understanding the intricacies of IOS Software and how it affects your network.
Inide Cisco IOS Software Architecture begins with an overview of operating system concepts and the IOS Software infrastructure, including processes, memory management, CPU scheduling, packet buffers, and device drivers, as well as a discussion of packet switching architecture with detailed coverage of the various platform-independent switching methods, including process switching, fast switching, optimum switching, and Cisco Express Forwarding (CEF). The book then delves into the intricate details of the design and operation of platform-specific features, including the 1600, 2500, 4x00, 3600, 7200, 7500, and GSR Cisco routers. Finally, an overview of IOS Quality of Service (QoS) is provided, including descriptions of several QoS methods, such as priority queuing, custom queuing, weighted fair queuing, and modified deficit round robin.
About the Author
Russ White, CCIE #2635, is a member of the IOS Network Protocols Deployment and Scalability Team at Cisco, where he is involved in the design and implementation of routing protocols and scalable network design.
Vijay Bollapragada, CCIE #1606, is currently a manager in the Solution Engineering team at Cisco, where he works on new world network solutions and resolves complex software and hardware problems with Cisco equipment. Vijay also teaches Cisco engineers and customers several courses, including Cisco Router Architecture, IP Multicast, Internet Quality of Service, and Internet Routing Architectures. He is also an adjunct professor in Duke University's electrical engineering department.
Read an Excerpt
Chapter 1: Fundamental IOS Software ArchitectureIf you were naming the most popular and widely used computer operating systems, which ones would you choose? Most likely, your list would contain names like UNIX, MS-DOS, Microsoft Windows, or even IBM's MVS for mainframes. These are all well-known operating systems-you might even be using one on a computer at home. Now, think for a minute; are there any others? Would your list contain Cisco IOS? No, it probably wouldn't, even though IOS is one of the most widely deployed operating systems in use today.
Unlike the general-purpose operating systems just mentioned, many people never encounter IOS directly. Most who use a computer to access the Internet aren't even aware IOS is behind the scenes. Even those who are aware of IOS, people who use it directly, often don't consider it to be an operating system but instead just the software that runs Cisco routers.
IOS might not run word processors or accounting applications like others on the list but it is still, in fact, an operating system-albeit, one specialized for switching data packets. As you will see, much of the JOS architecture is focused on switching packets as quickly and efficiently as possible.
Although IOS is constructed of many of the same fundamental components found in general-purpose operating systems, the components often contain key differences due to the design goals for IOS. This chapter covers these fundamental operating system components-the software infrastructure of IOS-and explores the rationale behind their design.
This chapter begins by introducing a few basic operating system concepts and terms that are useful in understandingthe IOS architecture. If you already have a thorough understanding of operating systems, you might want to skip this first section and continue with the section, "IOS Architecture Overview." The remainder of this chapter deals with the major elements of the IOS architecture.
Operating Systems Basics
Modern operating systems provide two primary functions: hardware abstraction and resource management. Hardware abstraction gives software developers a common interface between their application programs and the computer's hardware so each individual programmer doesn't need to deal with the hardware's intricacies. Instead, the hardwarespecific programming is developed once, in the operating system, and everyone shares.
The second function that operating systems provide is managing the computer's resources (CPU cycles, memory, and disk drive space, for example) so they can be shared efficiently among multiple applications. Like hardware abstraction, building resource management into the operating system keeps each application programmer from writing resource management code for every program.
CPU Resource Management and Multitasking
Although some operating systems only allow one program to run at a time (most versions of MS-DOS operate this way, for example), it's more common to find operating systems managing multiple programs concurrently. Running multiple programs at once is called multitasking and operating systems that support it are typically called multitasking operating systems.
Computer programs written for multitasking operating systems themselves often contain multiple independent tasks that run concurrently. These little subprograms are called threads because they form a single thread of instruction execution within the program. Threads each have their own set of CPU register values, called a context, but can share the same memory address space with other threads in the same program. A group of threads that share a common memory space, share a common purpose, and collectively control a set of operating system resources is called a process. On operating systems and CPUs that support virtual memory, each process might run in a separate address space that is protected from other processes.Because a processor can execute instructions for only one program at a time, the operating system must manage which set of program instructions (which thread) is allowed to run. Deciding which process should run is called scheduling and is usually performed by a core piece of the operating system called the kernel. An operating system can use one of several methods to schedule threads, depending on the type of applications the operating system has been optimized to support. Different types of applications (batch, interactive, transactional, real-time, and others) have different CPU utilization characteristics, and their overall performance is affected by the scheduling method used.
The simplest scheduling method is to assign each thread to the processor in the order its run request is received and let each thread run to completion. This method is called FIFO (firstin, first-out) run-to-completion scheduling...
Table of Contents
|Chapter 1||Fundamental IOS Software Architecture||2|
|Operating Systems Basics||4|
|CPU Resource Management and Multitasking||4|
|Memory Resource Management||6|
|IOS Architecture Overview||7|
|Process Life Cycle||14|
|IOS Process Priorities||16|
|The Memory Manager||24|
|Packet Buffer Management||31|
|Chapter 2||Packet Switching Architecture||40|
|Routing 101: Process Switching||42|
|Traffic Load Sharing with Process Switching||44|
|Disadvantages of Process Switching||46|
|Fast Switching: Caching to the Rescue||47|
|Fast Cache Organization||49|
|Maintaining the Cache||53|
|Traffic Load Sharing Considerations with Fast Switching||55|
|Cisco Express Forwarding||58|
|How CEF Works||59|
|Traffic Load Sharing with CEF||63|
|Chapter 3||Shared Memory Routers||68|
|Hardware Architecture for Shared Memory Routers||69|
|Packet Buffers for Shared Memory Routers||75|
|Private Buffer Pools||75|
|Receive Rings and Transmit Rings||77|
|Packet Switching on a Shared Memory Router||79|
|Receiving the Packet||79|
|Switching the Packet||81|
|Transmitting the Packet||83|
|Chapter 4||Early Cbus Routers||86|
|AGS+ Hardware Architecture||87|
|Packet Switching with the Cbus||90|
|Cbus Fast Packet Memory||91|
|The Cisco 7000 Series Router||92|
|Chapter 5||Particle-Based Systems||94|
|Buffer Management Using Particles||95|
|The Cisco 7200 Series Routers||99|
|Packet Switching on the Cisco 7200 Series Routers||106|
|Packet Receive Stage||106|
|Packet Switching Stage||108|
|Packet Transmit Stage||109|
|Chapter 6||Cisco 7500 Routers||112|
|Hardware Architecture of the Cisco 7500 Router||113|
|The Data Bus||114|
|Route Switch Processor||115|
|Packet Switching on the Cisco 7500 Router||123|
|RSP Switching: Receiving the Packet||124|
|RSP Switching: Switching the Packet||126|
|RSP Switching: Transmitting the Packet||129|
|VIP Packet Operations: Distributed Switching||135|
|VIP Receive Side Buffering||141|
|Troubleshooting Tips for the Cisco 7500 Router||142|
|High CPU Utilization||142|
|Chapter 7||The Cisco Gigabit Switch Router: 12000||146|
|Gigabit Route Processor||154|
|Packet Switching: Engine 0 and Engine 1||162|
|Packet Switching: Engine 2 LC||164|
|Packet Switching: Switching Cells across Fabric||165|
|Packet Switching: Transmitting Packets||165|
|Chapter 8||Quality of Service||168|
|Configuring and Monitoring Priority Queuing||173|
|Weighted Fair Queuing||178|
|Configuring and Monitoring WFQ||182|
|Distributed Weighted Fair Queuing||188|
|Modified Deficit Round Robin||191|
|Configuration of MDRR||194|
|Weighted Random Early Detection||195|
|Configuration and Monitoring of WRED||197|
|Selective Packet Discard||198|
|Other QoS Features||199|
|Appendix A||NetFlow Switching||200|
|Flow Cache Maintenance||202|
|Router-Based Flow Aggregation Export (RBA)||205|
This book is an attempt to bring together, in one place, the wealth of information about the architecture and the operation of IOS. Some of this information has been made public previously through forums, Cisco presentations, and the Cisco Technical Assistance Center. Most of the information you cannot find in the Cisco IOS documentation.