RFC 2143 EXPERIMENTAL SCSI · IP · NETWORKING

IP over SCSI: Encapsulating IP with the Small Computer System Interface

Carrying IP datagrams over SCSI cables to create high-speed local networks.

On rfc-editor.org ↗
PUBLISHED
May 1997
AUTHORS
B. Elliston
STREAM
Legacy
DATA TRANSFER SPEED
~360 megabits per second
MAXIMUM DISTANCE
Less than 10 meters
DEVICES PER BUS
8 (SCSI) or 16 (Wide SCSI)
SCSI COMMAND USED
SEND_MESSAGE(10)
DOI
10.17487/RFC2143

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                        B. Elliston
Request for Comments: 2143                             Compucat Research
Category: Experimental                                          May 1997


       Encapsulating IP with the Small Computer System Interface

Status of this Memo

   This memo defines an Experimental Protocol for the Internet
   community.  This memo does not specify an Internet standard of any
   kind.  Discussion and suggestions for improvement are requested.
   Distribution of this memo is unlimited.

Table of Contents

   1.   Introduction . . . . . . . . . . . . . . . . . . . . . . .  1
   2.   Brief background to the Small Computer System Interface  .  2
   3.   Link Encapsulation . . . . . . . . . . . . . . . . . . . .  3
   4.   An Address Resolution Protocol . . . . . . . . . . . . . .  4
   5.   Scalability  . . . . . . . . . . . . . . . . . . . . . . .  4
   6.   Possible applications  . . . . . . . . . . . . . . . . . .  5
   7.   Security considerations  . . . . . . . . . . . . . . . . .  5
   8.   References . . . . . . . . . . . . . . . . . . . . . . . .  5
   9.   Author's Address . . . . . . . . . . . . . . . . . . . . .  5

1.  Introduction

   As the capacity of local area networks increases to meet the demands
   of high volume application data, there is a class of network
   intensive problems which may be applied to small clusters of
   workstations with high bandwidth interconnection.

   A general observation of networks is that the bit rate of the data
   path typically decreases as the distance between hosts increases.  It
   is common to see regional networks connected at a rate of 64Kbps and
   office networks connected at 100Mbps, but the inverse is far less
   common.

   The same is true of peripheral and memory interconnection.  Memory
   close to a CPU's core may run at speeds equivalent to a gigabit
   network.  More importantly, devices such as disks may connect a
   number of metres away from its host at speeds well in excess of
   current local area network capacity.

   This document outlines a protocol for connecting hosts running the
   TCP/IP protocol suite over a Small Computer System Interface (SCSI)
   bus.  Despite the limitation in the furthest distance between hosts,
   SCSI permits close clusters of workstations to communicate between
   each other at speeds approaching 360 megabits per second.

   The proposed introduction of newer SCSI implementations such as
   serial SCSI will bring much faster communication at greater
   distances.

2.  Background to the Small Computer System Interface (SCSI)

   SCSI defines a physical and data link protocol for connecting
   peripherals to hosts.  Devices connect autonomously to a bus and send
   synchronous or asynchronous messages to other devices.

   Devices are identified by a numeric identifier (ID).  For the
   original SCSI protocol, devices are given a user-selectable SCSI ID
   between 0 and 7.  Wide SCSI specifies a range of SCSI IDs between 0
   and 15.  The most typical SCSI configuration comprises of a host
   adapter and one or more SCSI- capable peripherals responding to
   asynchronous messages from the host adapter.

   The most critical aspect of the protocol with respect to its use as a
   data link for the Internet protocols is that a SCSI device must act
   as an "initiator" (generator of SCSI commands/requests) or a "target"
   (a device which responds to SCSI commands from the initiator).  This
   model is correct for a master/slave relationship between host adapter
   and devices.  The only time an initiator receives a message addressed
   to it is in response to a command issued by it in the past and a
   target device always generates a response to every command it
   receives.

   Clearly this is unsuitable for the peer-to-peer model required for
   multiple host adapters to asynchronously send SCSI commands to one
   another without surplus bus traffic.  Furthermore, some host adapters
   may refuse to accept a message from another adapter as it expects to
   only initiate SCSI commands.  This restriction to the protocol
   requires that SCSI adapters used for IP encapsulation support what is
   known as "target mode", with software device driver support to pass
   these messages up to higher layer modules for processing.

3.  Link Encapsulation

   The ANSI SCSI standard defines classes of peripherals which may be
   interconnected with the SCSI protocol.  One of these is the class of
   "communication devices" [1].

   The standard defines three message types capable of carrying a
   general-purpose payload across communication devices.  Each of these
   are known as the "SEND MESSAGE" message type, but the size and and
   structure of the message header differs amongst them.  The three
   forms of message header are six (6), ten (10) and twelve (12) bytes
   long.

   It was decided that the ten byte header offers the greatest
   flexibility for encapsulating version 4 IP datagrams for the
   following reasons:

      a. The transfer length field is 16 bits in size which is perfectly
         matched to the datagram length field in IP version 4.
         Implementations of IP will run efficiently as datagrams will
         never be fragmented over SCSI networks.

      b. The SCSI "stream select" field, which was designed to permit
         a device to specify the stream of data to which a block
         belongs, may be used to encode the payload type (in a similar
         manner to the Ethernet frame type field).  For consistency, the
         lowest four bits of the "stream select" field should match the
         set of values assigned by the IEEE for Ethernet protocol types.

   Encapsulating an IP datagram within a SCSI message is
   straightforward:

      +------------------+-----------------------------------+
      | SCSI header      | IP datagram                       |
      +------------------+-----------------------------------+

   The fields of the SCSI header should be completed as follows:

        Byte  0:    0x2A (SEND_MESSAGE(10) opcode)
        Byte  1:    Logical unit number encoded into top 3 bits | 0x00
        Byte  2:    0x00
        Byte  3:    0x00
        Byte  4:    0x00
        Byte  5:    Protocol type encoded into lowest 4 bits | 0x00
        Byte  6:    0x00
        Bytes 7/8:  IP datagram length, big endian representation
        Byte  9:    0x00

4.  An Address Resolution Protocol

   When IP decides that the next hop for a datagram will be onto a SCSI
   network supported by a SCSI IP network interface implementation, it
   is necessary to acquire a data link address to deliver the datagram.

   Network interfaces such as Ethernet have well-known methods for
   acquiring the media address for an Internet protocol address, the
   most common being the Address Resolution Protocol (ARP).  In existing
   implementations, the forwarding host "yells" using a broadcast media
   address and expects the named host to respond.

   The SCSI protocol does not provide a broadcast data link address.  An
   acceptable solution to the address resolution problem for a SCSI
   network is to simulate a broadcast by performing a series of round-
   robin transmissions to each target.  Depending on the SCSI protocol
   being used, this would require upward of seven independent bus
   accesses.  This is not grossly inefficient, however, if combined with
   an effective ARP caching policy.  A further possible optimisation is
   negative ARP caching, whereby incomplete ARP bindings are not queried
   for some period in the future.

5.  Scalability

   While the utility of a network architecture based around a bus
   network which can span less than ten metres and support only eight
   hosts may be questionable, the flexibility of IP and in particular,
   IP routing, improves the scalability of this architecture.

   Consider a network of eight hosts connected to a SCSI bus in which
   each host acts as a multi-homed host with a second host adapter
   connecting another seven hosts to it.  When configured with IP packet
   routing capability, each of the 64 total hosts may communicate with
   one another at high speed in a packet switched manner.

   Depending on the I/O bus capabilities of certain workstations, it may
   also be possible to configure a multi-homed host with a greater
   number of SCSI host adapters, permitting centralised star
   configurations to be constructed.

   It should be apparent that for little expense, massively parallel
   virtual machines can be built based upon the IP protocol running over
   the high-bandwidth SCSI protocol.

6.  Possible Applications

   Research has been made into the capability of "networks of
   workstations", and their performance compared to supercomputers.  An
   observation that has been made thus far is that bottlenecks exist in
   the channels by which executable code is transported between hosts
   for execution.  A very high-speed network architecture based around
   the Internet protocol would permit a seamless transition of existing
   application software to a high-bandwidth environment.

   Other applications that have been considered are server clusters for
   fault-tolerant NFS, World-Wide Web and database services.

7.  Security Considerations

   Transmitting IP datagrams across a SCSI bus raises similar security
   issues to other local area networking architectures.  The scale of
   security problems relating to protocols above the data link layer
   should be obvious to a reader current in Internet security.

8.  References

   [1]  ANSI X3T9 Technical Committee, "Small Computer System
        Interface - 2", X3T9.2, Project 375D, Revision 10L, September
        1993.

9.  Author's Address

   Ben Elliston
   Compucat Research Pty Limited
   Box 7305 Canberra Mail Centre
   Canberra ACT 2610
   Australia

   Phone: +61 6 295 1331
   Fax:   +61 6 295 1855
   Email: ben.elliston@compucat.com.au

AI ELI5

On this page
PROBLEMHigh-speed data transfers within clusters of workstations face a gap between local memory/disk speeds (gigabit speeds) and typical local area network speeds (100 Mbps in 1997).
MECHANISMRFC 2143 defines how to encapsulate IP datagrams into SCSI messages using the SCSI 10-byte command header, reusing existing SCSI cables and host adapters for network communication.
A CLEVER BUT LIMITED HACKThis allows clusters of closely-spaced machines to communicate at SCSI speeds (around 360 Mbps) using existing hardware, useful for parallel computing and high-speed file services.

§1Introduction

RFC 2143 proposes an unusual solution to a real problem: how to create very high-speed networks within small clusters of workstations. The idea is to use the Small Computer System Interface (SCSI), the standard bus normally used to connect hard drives and other peripherals to computers, as a network medium for IP traffic.

SCSI buses can transfer data at speeds approaching 360 megabits per second—much faster than the 100 Mbps local area networks available in 1997—but are limited to short distances (less than 10 meters) and a small number of devices (typically 8 or 16).

Hard drives connect to computers with cables that can handle lots of data very quickly. This memo says we can use those same cables to make a super-fast network for a small group of computers.

§2Encapsulation in SCSI Messages

The RFC defines how to wrap an IP datagram inside a SCSI command message. It uses the SCSI 10-byte SEND_MESSAGE command, which contains a 10-byte header followed by a payload. The header specifies the operation code (0x2A), the logical unit number, the protocol type (using the same values as Ethernet), and the datagram length as a 16-bit number in big-endian format.

This design choice is elegant because the IP datagram length field matches the SCSI transfer length field, and the protocol type field reuses standard Ethernet protocol numbers.

We take an IP message, put it inside a special SCSI wrapper that labels what kind of data it is and how big it is, then send it down the SCSI cable.

§3Addressing and Scaling

SCSI buses do not support broadcasting, so an Address Resolution Protocol implementation must send queries to each device on the bus in sequence to discover which device has a particular IP address. This is less efficient than Ethernet broadcasting but workable with good ARP caching.

A single SCSI bus supports only a handful of devices, but RFC 2143 shows how to scale by using multiple SCSI host adapters in each machine, creating a mesh or tree topology connected by IP routing. For example, eight machines connected to a single SCSI bus can be linked via another SCSI bus, eventually creating a network of 64 or more machines.

SCSI buses are small, so you connect multiple SCSI buses together using routers. Each group of computers talks on its own SCSI bus, and the routers pass messages between the buses.

§4References

[1]ANSI X3T9 Technical Committee, "Small Computer System Interface - 2", X3T9.2, Project 375D, Revision 10L, September 1993.