process block-level data, the data needs to be encapsulated inside a TCP/IP packet before it can be transmitted over an IP network. By using iSCSI drivers that must be made available on a host or server, a NIC can be made to transmit packets of block-level data over an IP network. In that case, the server will handle the packetization process of the block-level data. It will obviously be responsible for the correct execution of all computational steps taken to process the TCP/IP protocol. This entire computation-intensive scheme is extremely taxing on the server or host central pro- cessing unit (CPU). It can almost bring it down to its knees. This problem has been one of the main motivators behind the pursuit of powerful TCP termination engines. We discuss the functionality and requirements of TCP termination engines in a separate section. A TCP termination or offloading engine allows the completion of both TCP/IP processing and packetization on the HBA. Therefore, Downloaded from Digital Engineering Library @ McGraw-Hill (www.digitalengineeringlibrary.com) Copyright © 2004 The McGraw-Hill Companies. All rights reserved. Any use is subject to the Terms of Use as given at the website. STORAGE NETWORK PROCESSORS (SNPS) 200 NETWORK PROCESSORS this SNP NIC, which is equipped with a TCP Offload Engine (TOE), operates like a storage network HBA rather than a traditional Ethernet NIC. Storage HBAs Unlike Ethernet NICs, storage HBAs are designed to transmit block-level data to and from storage applications. When an entire block is transferred from the software application to the adapter, the server or host CPU does not need to spend time trying to fragment the block into smaller frames for subsequent transmission. The HBA has the local intelligence to segment the block into frames. This process is usually handled by specialized segmentation and reassembly (SAR) chips, which are sim- ilar to the ones in ATM line cards. These chips are situated on the HBA. iSCSI Adapters A hybrid of the previous two categories is the clas