SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


    [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

    RE: ISCSI: Urgent Flag requirement violates TCP.



    > >  So, it's ok
    > > to parse/frame/etc. the data to set it up for execution
    > > of the SCSI command, but DON'T DO ANYTHING until TCP
    > > has "delivered" the command and all the data prior to
    > > it by sending or being prepared to send the appropriate
    > > ACKs.
    > 
    > This I disagree with.  If a tightly coupled TCP/iSCSI stack where able to
    regain
    > framing after a lost TCP segment, it is perfectly OK for iSCSI to process
    the
    > iSCSI messages and deliver them to the SCSI layer (with the exception that
    > commands must always be delivered in order), even before the lost segments
    > arrive.  This works perfectly well in Fibre Channel today.
    
    Fibre Channel is a bad analogy in this regard because Fibre Channel does not
    in general have the ordered delivery requirement that TCP does.  If a frame
    (say
    frame N) goes missing in Fibre Channel, it's usually the case that
    subsequent
    frames (i.e., N+1, etc.) can be delivered to the ULP (e.g., SCSI) and
    processed.
    In this case, it's the responsibility of the ULP to figure out what
    happened, including
    doing any retransmits.  In contrast, if a TCP segment goes missing,
    subsequent
    segments can be buffered at the receiver (and ACKed if SACK is being used),
    but MUST NOT be delivered to the ULP (e.g., iSCSI or SCSI).  TCP takes
    responsibility for sorting out what happened, doing the retransmits, and
    hiding
    the fact that things went wrong (aside from the fact that they took longer)
    from
    the ULP.  This is fundamentally different from Fibre Channel.
    
    > For example, if the following iSCSI messages are sent:
    > 
    > Command A sent to target  ->
    > Command B sent to target  ->
    > <- target sends data/status for command A
    > <- target sends data/status for command B
    > 
    > If the TCP segment containing the data/status for A was lost, but framing
    was
    > regained to receive the data/status for B, there is nothing wrong with
    > completing command B even though a message for command A was lost and
    needs
    > retransmitting.  Indeed, the initiator SCSI layer would not know the
    difference
    > than if the disk drive completed command B first instead of A.
    
    From a SCSI standpoint this is correct, but from a TCP standpoint it is
    wrong.
    For example, if command B is an iSCSI ping, and SACK is not in use, this is
    exactly the disaster of returning SCSI status for a command for which
    delivery
    of the CDB has not been ACKed by TCP.  Note that SCSI is allowed to complete
    command B (e.g., an iSCSI ping) before command A (e.g., A write with R2T
    used
    for data), but the presentation of commands to SCSI/iSCSI MUST respect TCP's
    in-order delivery requirements (e.g., at the point where status from B comes
    back,
    it had better be the case that TCP has ACKed delivery of A's CDB, but I
    still think
    the requirement is better described in terms of initiation of command
    execution
    at the target). 
    
    I have to agree with Doug on the higher level point here -- if one wants a
    message
    oriented transport in which the messages can be delivered out of order on a
    single connection, that's not TCP, and something like SCTP will need to be
    used.
    
    Also ... given Matt's recent note that the use of Urgent is not applicable
    to all implementations of iSCSI, it appears to me that the use of "MUST" to
    describe this requirement in the draft is incorrect and needs to be changed.
    
    --David
    
    ---------------------------------------------------
    David L. Black, Senior Technologist
    EMC Corporation, 42 South St., Hopkinton, MA  01748
    +1 (508) 435-1000 x75140     FAX: +1 (508) 497-8500
    black_david@emc.com       Mobile: +1 (978) 394-7754
    ---------------------------------------------------
    
    


Home

Last updated: Tue Sep 04 01:06:29 2001
6315 messages in chronological order