Small Computer System Interface (SCSI)
SCSI is a protocol used principally to talk to storage devices such as hard disks and tape drives. Since TCP/IP is replacing many transports in all areas, SCSI is now commonly transported on top of iSCSI.
SCSI was originally developed in the early to mid-80s as a new standardized bus and protocol to attach devices to a host. It was originally deviced to be used to attach many different types of devices such as hard-disks, tape drives, printers, scanners and even processor devices (so one could run for example IP or something similar ontop of SCSI between two hosts) but is mainly used to disk and tape access.
It was used in Macintosh computers for many years as the only external drive/scanner connection available.
It is still today a very popular protocol to use for high-end workstations and hosts since SCSI devices often have better reliability and performance than lower end ATA devices.
Originally SCSI defined the entire stack from the electrical layer all the way up to the application layer but has since been broken up into three layers: SCSI Command Sets, SCSI protocol and SCSI transport. The SCSI Architecture Model defines an abstract procedure call model. The various SCSI command sets, protocols and transport standards each define specific implementations of the layers of this architecture.
HyperSCSI: HyperSCSI is a protocol to transport SCSI directly on top of Ethernet frames
USB: SCSI uses USB as a transport for mass storage devices such as memory sticks, mp3 players and many digital cameras.
No. Time Source Destination Protocol Info 36 1.630854 10.1.1.2 10.1.1.101 iSCSI SCSI: Data In LUN: 0x00 (Get Configuraion Response Data) SCSI: Response LUN: 0x00 (Get Configuraion) (Good) Frame 36 (98 bytes on wire, 98 bytes captured) Ethernet II, Src: 00:04:e2:22:5a:03 (00:04:e2:22:5a:03), Dst: 00:30:bd:b2:54:09 (00:30:bd:b2:54:09) Internet Protocol, Src: 10.1.1.2 (10.1.1.2), Dst: 10.1.1.101 (10.1.1.101) Transmission Control Protocol, Src Port: 3260 (3260), Dst Port: 1086 (1086), Seq: 745, Ack: 757, Len: 44 Reassembled TCP Segments (92 bytes): #34(48), #36(44) iSCSI (SCSI Data In) SCSI Payload (Get Configuraion Response Data) LUN: 0x0000 Command Set:CD-ROM (0x05) MMC Opcode: Get Configuraion (0x46) Request in: 33 Response in: 36 Data Length: 40 Current Profile: DVD-R (0x0011) Feature: Profile List (0x0000) ..00 00.. = Version: 0 .... ..1. = Persistent: 0x01 .... ...1 = Current: 0x01 Additional Length: 32 Profile:CD-ROM Profile:CD-R Profile:CD-RW Profile:DVD-ROM Profile:DVD-R [CURRENT PROFILE] Profile:DVD-RW Sequential recording Profile:DVD+RW Profile:DVD+R SCSI Response (Get Configuraion) LUN: 0x0000 Command Set:CD-ROM (0x05) MMC Opcode: Get Configuraion (0x46) Request in: 33 Time from request: 0.201103000 seconds Status: Good (0x00)
From a capture burning a DVD on a iSCSI/MMS emulator I wrote a few years ago.
The SCSI dissector is partially functional, it implements a large set of the SCSI commands for SBC(hard disk), SSC (tape drive), OSD (object based storage) and MMC (cdrom/dvd) devices.
Wireshark can also calculate service response time statistics for SCSI :
Example capture file
SampleCaptures/iscsi-scsi-data-cdrom.zip contains a complete log of iSCSI traffic between MS iSCSI Initiator and Linux iSCSI Enterprise Target with a real SCSI CD-ROM exported. The CD-ROM has a Fedora Core 3 installation CD in it.
SampleCaptures/iscsi-scsi-10TB-data-device.zip contains a complete log of iSCSI traffic between MS iSCSI Initiator and Linux iSCSI Enterprise Target with a 10TB block device exported. See the use of READ_CAPACITY_16, READ_16, and WRITE_16.
SampleCaptures/iscsi-tapel.gz contains some operation log of iSCSI traffic between Linux open-iscsi initiator and Linux iSCSI Enterprise Target. The target is a EXABYTE EXB480 Tape library. Various mtx operations are executed.
scsi-osd-example-001.pcap is a trace of the IBM osd_initiator_3_1_1 (an OSD tester application) exercising IBM's ibm-osd-sim (an emulation of an OSD target device). The transport involved is iSCSI, and makes use of the relatively unusual new SCSI feature of bidirectional data transfer. The trace captures the initial iSCSI Logins, through INQUIRY and REPORT LUNS, followed by a number of commands from the SCSI-OSD command set such as FORMAT OSD, LIST, CREATE PARTITION, CREATE, WRITE, READ, REMOVE, REMOVE PARTITION, and SET KEY.
A complete list of SCSI display filter fields can be found in the display filter reference
- Show only the traffic containing SCSI PDUs:
You cannot directly filter SCSI while capturing. However you can often use capture filters for some of the transports for SCSI.
Can someone look through the mailinglist and see if there are any FibreChannel or NDMP captures posted that contain SCSI? Then ask the posters if it is ok to put these already made public captures on the sample captures page? Alternatively, does anyone have any captures containing SCSI to donate? --ronnie A capture containing IP over SCSI over iSCSI over IP would be interesting.