• Home
  • InfoBase
  • Dictionaries
  • Member
  • News
  • 中文网站
     Advanced Search
    Read the latest Blogs from IT professionals in the field. Read and write community created documents. Need IT help? Ask our staff. Connect with your peers. Check our Tech Shop for posters, books and software tools. Home

    iSCSI: Internet Small Computer System Interface


    Internet Small Computer System Interface (iSCSI) is a TCP/IP-based protocol for establishing and managing connections between IP-based storage devices, hosts and clients, which is called Storage Area Network (SAN). The SAN makes possible to use the SCSI protocol in network infrastructures for high-speed data transfer at the block level between multiple elements of data storage networks.

    The architecture of the SCSI is based on the client/server model, which is mostly implemented in an environment where devices are very close to each other and connected with SCSI buses. Encapsulation and reliable delivery of bulk data transactions between initiators and targets through the TCP/IP network is the main function of the iSCSI. iSCSI provides mechanism for encapsulating SCSI commands on an IP network and operates on top of TCP.

    For today's SAN (Storage Area Network), the key requirements of data communication are: 1) Consolidation of data storage systems, 2) Data backup, 3) Server clusterization, 4) Replication, 5) Data recovery in emergency conditions. In addition, SAN is likely geographic distribution over multiple LANs and WANs with various technologies. All operations must be conducted in a secure environment and with QoS. iSCSI is designed to perform the above functions in the TCP/IP network safely and with proper QoS.

    The iSCSI has four components:

    iSCSI Address and Naming Conventions: An iSCSI node is an identifier of SCSI devices (in a network entity) available through the network. Each iSCSI node has a unique iSCSI name (up to 255 bytes) which is formed according to the rules adopted for Internet nodes.

    iSCSI Session Management: The iSCSI session consists of a Login Phase and a Full Feature Phase which is completed with a special command.

    iSCSI Error Handling: Because of a high probability of errors in data delivery in some IP networks, especially WAN, where the iSCSI can work, the protocol provides a great deal of measures for handling errors.

    iSCSI Security: As the iSCSI can be used in networks where data can be accessed illegally, the protocol allows different security methods.

    Protocol Structure - iSCSI: Internet Small Computer System Interface

    iSCSI PDU structure:

    8 bits 16 bits 24 bits 32 bits
    Basic Header Structure (BHS)
    Additional Header Structure 1 (AHS) (optional)
    ......
    Additional Header Structure n (AHS) (optional)
    Header Digest (optional)
    Data Segment (optional)
    Data Digest (optional)

    iSCSI BHS Format:

    8 bits 16 bits 24 bits 32 bits
    . I Opcode F Opcode-specific fields
    Total AHS Length Data Segment length
    Opcode-specific fields or Logic Unit Number (LUN) (8 bytes)
    Initiator Task Tag (4 bytes)
    Opcode-specific fields (28 bytes)

    • I - For request PDUs, the I bit set to 1 is an immediate delivery marker.
    • Opcode - The Opcode indicates the type of iSCSI PDU the header encapsulates. The Opcodes are divided into two categories: initiator opcodes and target opcodes. Initiator opcodes are in PDUs sent by the initiator (request PDUs). Target opcodes are in PDUs sent by the target (response PDUs).
    • Final (F) bit - When set to 1 it indicates the final (or only) PDU of a sequence.
    • Opcode-specific Fields - These fields have different meanings for different opcode types.
    • TotalAHSLength - Total length of all AHS header segments in units of four byte words including padding, if any.
    • DataSegmentLength - This is the data segment payload length in bytes (excluding padding). The DataSegmentLength MUST be 0 whenever the PDU has no data segment.
    • LUN - Some opcodes operate on a specific Logical Unit. The Logical Unit Number (LUN) field identifies which Logical Unit. If the opcode does not relate to a Logical Unit, this field is either ignored or may be used in an opcode specific way.
    • Initiator Task Tag - The initiator assigns a Task Tag to each iSCSI task it issues. While a task exists, this tag MUST uniquely identify the task session-wide.

    Related protocols:SCSI, iFCP, FCP, FCIP, TCP, iSNS

    Sponsor:iSCSI standards are defined by IETF (http://www.ietf.org)

    Reference:http://www.javvin.com/protocol/rfc3347.pdf: Small Computer Systems Interface protocol over the Internet (iSCSI) Requirements and Design Considerations
    http://www.javvin.com/protocol/draft-ietf-ips-iscsi-20.pdf: iSCSI (iSCSI protocol specification draft