Inside Cisco IOS Software Architecture (CCIE Professional Development)

Inside Cisco IOS Software Architecture (CCIE Professional Development)

Pub. Date:
Cisco Press


Current price is , Original price is $55.0. You
Select a Purchase Option
  • purchase options


Inside Cisco IOS Software Architecture (CCIE Professional Development)

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.

Product Details

ISBN-13: 9781578701810
Publisher: Cisco Press
Publication date: 07/28/2000
Series: CCIE Professional Development Series
Pages: 222
Product dimensions: 7.56(w) x 9.48(h) x 0.87(d)

About the Author

Curtis Murphy, CCIE #1521, is an engineer in Cisco's Serviceability Design Department in Research Triangle Park, specializing in IOS software products. He has worked in the networking industry since 1989 and at Cisco since 1994. While at Cisco, he has worked both as an IBM protocols specialist in the Technical Assistance Center and as a software engineer in IOS Software Development for mid-range and high-end routers.

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 Architecture

If 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 1Fundamental IOS Software Architecture2
Operating Systems Basics4
CPU Resource Management and Multitasking4
Memory Resource Management6
IOS Architecture Overview7
Memory Organization9
Memory Pools12
IOS Processes13
Process Life Cycle14
IOS Process Priorities16
Process Examples17
IOS Kernel20
The Scheduler20
The Memory Manager24
Packet Buffer Management31
System Buffers32
Device Drivers38
Chapter 2Packet Switching Architecture40
Routing 101: Process Switching42
Traffic Load Sharing with Process Switching44
Disadvantages of Process Switching46
Fast Switching: Caching to the Rescue47
Fast Cache Organization49
Maintaining the Cache53
Traffic Load Sharing Considerations with Fast Switching55
Optimum Switching56
Cisco Express Forwarding58
How CEF Works59
Traffic Load Sharing with CEF63
Chapter 3Shared Memory Routers68
Hardware Architecture for Shared Memory Routers69
Interface Controllers74
Packet Buffers for Shared Memory Routers75
Private Buffer Pools75
Receive Rings and Transmit Rings77
Packet Switching on a Shared Memory Router79
Receiving the Packet79
Switching the Packet81
Transmitting the Packet83
Chapter 4Early Cbus Routers86
AGS+ Hardware Architecture87
Packet Switching with the Cbus90
Autonomous Switching90
Cbus Fast Packet Memory91
The Cisco 7000 Series Router92
Chapter 5Particle-Based Systems94
Buffer Management Using Particles95
Particle Pools98
Particle Coalescing99
The Cisco 7200 Series Routers99
Hardware Architecture101
Packet Switching on the Cisco 7200 Series Routers106
Packet Receive Stage106
Packet Switching Stage108
Packet Transmit Stage109
Chapter 6Cisco 7500 Routers112
Hardware Architecture of the Cisco 7500 Router113
The Data Bus114
Route Switch Processor115
Packet Switching on the Cisco 7500 Router123
RSP Switching: Receiving the Packet124
RSP Switching: Switching the Packet126
RSP Switching: Transmitting the Packet129
VIP Architecture131
VIP Components132
VIP Models134
VIP Packet Operations: Distributed Switching135
VIP Receive Side Buffering141
Troubleshooting Tips for the Cisco 7500 Router142
High CPU Utilization142
Input Drops144
Output Drops145
Chapter 7The Cisco Gigabit Switch Router: 12000146
Hardware Architecture147
Switching Fabric148
Maintenance Bus154
Gigabit Route Processor154
Line Card155
Packet Switching161
Packet Switching: Engine 0 and Engine 1162
Packet Switching: Engine 2 LC164
Packet Switching: Switching Cells across Fabric165
Packet Switching: Transmitting Packets165
Chapter 8Quality of Service168
QoS Overview169
Congestion Management171
Congestion Avoidance172
Priority Queuing172
Configuring and Monitoring Priority Queuing173
Custom Queuing175
Weighted Fair Queuing178
Platform-Independent WFQ179
Configuring and Monitoring WFQ182
Distributed Weighted Fair Queuing188
Modified Deficit Round Robin191
Configuration of MDRR194
Weighted Random Early Detection195
Configuration and Monitoring of WRED197
Selective Packet Discard198
Other QoS Features199
Appendix ANetFlow Switching200
Flow Cache Maintenance202
Flow Export204
Router-Based Flow Aggregation Export (RBA)205


Venture into any bookstore today and you can find numerous books on internetworking covering a wide range of topics from protocols to network design techniques. There's no question that internetworking has become a popular field with the enormous growth of the Internet and the increasing convergence of voice, video, and data. Cisco has built a very successful business selling the equipment that forms the network infrastructure-by some accounts, Cisco has more than 85 percent of the market-and at the same time has seen its Cisco IOS Software become a de facto industry standard. Yet, although plenty of material is written about network design and the protocols lOS supports, very little information is available from sources other than Cisco.This lack of information is understandable-IOS is proprietary, after all-but it nevertheless leaves network implementers at a disadvantage. During our experience helping design and troubleshoot IOS-based networks, we've seen many cases where lijnited IOS architectural knowledge either contributed to a problem or made it more difficult to solve. In addition, we collectively have answered countless numbers of questions (and dispelled some myths) from bewildered Cisco customers about the workings of various IOS features.

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.

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews