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.



    "Merhar, Milan" wrote:
    
    > Forgive my wasting bandwidth, but I have to chime in
    > with my agreement with David on this one.
    >
    > iSCSI can NOT peek at command B, or in fact admit in any
    > way that B exists, until TCP finishes delivering A to it.
    
    I disagree. Please explain why.
    
    >
    > If you want to be able to process commands independently
    > in this way, I believe you're going to have to have multiple
    > TCP pipes to deliver them independently as well.
    > (And _that_ is yet another long discussion....)
    
    We already have that - optional multiple TCP connections per session.
    
    
    > Yes, everyone is itching to smoosh iSCSI and TCP into one
    > big ball of embedded logic for performance reasons, but such
    > an implementation MUST NOT do anything that modifies its
    > externally-visible protocol behavior from that of an
    > iSCSI application running on top of a conventional TCP/IP stack.
    > Otherwise, we set ourselves up for an interoperability nightmare,
    > which will surely drive this WG's efforts off into the weeds.
    >
    > - milan
    >
    > > -----Original Message-----
    > > From: Black_David@emc.com [mailto:Black_David@emc.com]
    > > Sent: Wednesday, November 08, 2000 9:27 AM
    > > To: matt_wakeley@agilent.com; Black_David@emc.com; ips@ece.cmu.edu
    > > Cc: dotis@sanlight.net
    > > Subject: 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
    >
    > > > 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 withcompleting 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.
    
    


Home

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