Note that device problems frequently are misinterpreted as network problems. Therefore, ignoring device requirements can compromise the network architecture and design. As we will see in the design process, identifying any issues with devices that will be supported by the network can make the design process easier, with more deterministic results. A simple, general diagram of a device is presented in Figure 2.10. The performance of each of these components impacts the overall performance of the device. As examples, diskdrive seek times, memory access times, and the effectiveness of driver, OS, or API software will all affect the ability of the device to process information to and from the network. Computer Bus(es) Processors Memory Buffers Network Interface Card Drives Other Peripherals FIGURE 2.10 Device Components Device Requirements 81 By looking at each of these components as integral to the overall performance of the device (and of the system), we are applying the endtoend perspective within the device-the host in effect becomes a microcosm of the system. What we are looking for in performance characteristics includes • Storage performance, that is, flash, diskdrive, or tape performance • Processor (CPU) performance • Memory performance (access times) • Bus performance (bus capacity and arbitration efficiency) • OS performance (effectiveness of the protocol stack and APIs, e.g., the number of memory copies in the protocol stack, or the cost of execution of a given OS on a particular processor) • Device driver performance Information about any of these components can be helpful in estimating the overall performance of a device, or in identifying any limiting factors in device performance. For example, testing representative devices may reveal that their network interfaces need to be upgraded (e.g., from 10 Mb Ethernet to 10100 Mb Ethernet), or that disk drives need to be replaced, or that an OS upgrade needs to be performed. While it can be time consuming to understand the performance implications of each component of each device type, even a simple and quick attempt at developing device performance requirements can help to ensure that there are no obvious dramatic performance bottlenecks at the device. Understanding at the device component level can help you recognize such bottlenecks early in the analysis process. 2.5.3 Device Locations Knowing the locations of existing or expected generic computing devices, servers, and specialized devices can be helpful in determining the relationships among users, applications, and networks, as well as the start toward determining traffic flow characteristics for the system. Location information helps to determine the relationships among components of the system. Coupled with the types and performance requirements of devices, servers, and specialized devices, this information gives us insight on what the relative concentrations of users and devices should be, their placement, and the level of networking needed.