iSCSI packets understanding and what each one does

5.2k Views Asked by At

I'm studying the iSCSI protocol and now im in the phase where i used Wireshark to capture the packets to see, which packets are used to mantain the sessions active, and when i copy a file to my logical volume, which packets are traded. Below is an image of that. I would appreciate help on enter image description heretrying to understand or pointing me to any website that explains it.

3

There are 3 best solutions below

0
On

your image looks like write operate in normal session. Iscsi have two types of write: 1 write need "iscsi target" to confirm 2 write directly. In your image, is the first one, the INI send a SCSI::write, and wait for TGT send a Ready To Transfer. And then INI send data with SCSI::Data OUt.

google iscsi_rfc3720.pdf. this reference tell you all the session buliding and every iscsi command, after that you can clear your image.

0
On

Please refer to this question/answer: iSCSI Packet Header which directs you to some other resources.

I have also found these useful:

  1. http://www.bswd.com/iSCSI-Primer.pdf (by David Black) and other resources referenced here: http://www.bswd.com/cornucop.htm

  2. http://www.woodsmall.com/SCSI.htm

0
On

After establishing a TCP connection between an initiator and a target, the initiator MUST start a Login Phase to gain,further access to the target’s resources.

There are two types of login sessions:

Normal 
Discovery 

The login process will go through the exchange of iSCSI operational parameters as well as security authentication processes, which are intended to ensure that the initiator is valid and authorized. On the completion of the login, the connection and the session will be able to flow SCSI commands and data between the initiator and the target

View the Complete Wireshark Analysis of ISCSI Protocol here

Some of the Operation Supported in ISCSI commands are

NOP_OUT((byte) 0x00), 
NOP_IN((byte) 0x20)
SCSI_COMMAND((byte) 0x01)
SCSI_DATA_IN((byte) 0x25)
SCSI_DATA_OUT((byte) 0x05)
SCSI_RESPONSE((byte) 0x21)
R2T((byte) 0x31)