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.



    Glen Turner wrote:
    
    > Matt Wakeley wrote:
    >
    > > The intended manner that is to be implemented is this:
    > >
    > > 1. iSCSI sends the first byte of the iSCSI message to TCP, with the byte marked
    > > "urgent".  You can do this today using any off the shelf TCP stack, including MS
    > > windows.
    > > 2. iSCSI sends the rest of the bytes of the iSCSI message to TCP with normal
    > > delivery.
    > >
    > > If TCP coalesces, fine.  But eventually, a TCP segment will be sent that will
    > > contain a byte referenced by the urgent pointer.  At this point, the remote side
    > > (and any LAN analyzers on the network) will be able to "sync up" on iSCSI
    > > messages.
    >
    > Maybe I'm thick.
    >
    > But when I look at the socket API for UNIX I can't see how
    > a receiver can use Urgent data create a synchronisation point
    > within a TCP stream.
    
    For a strictly software implementation, the urgent pointer provides no benefit at all.
    This framing mechanism is to help special TCP/iSCSI accelerated implementations, not
    iSCSI implemented using generic off the self TCP stacks.
    
    Sorry I forgot to mention that...
    
    -Matt Wakeley
    Agilent Technologies
    
    >
    >
    > Firstly I open a SOCK_STREAM (this creates a TCP socket).
    > Then I call recv() with the MSG_OOB option (which allows
    > me to receive Urgent data).
    >
    > Now when I'm sent Urgent data I can collect it, but I have
    > no idea of its relationship with the rest of the TCP stream.
    >
    > If I don't use MSG_OOB then the socket implementation may
    > do one of two things:
    >  - leave the Urgent data in-stream (effectively, not implement
    >    Urgent)
    >  - move the Urgent to the head of the receive queue.
    > Neither option allows the socket API to use Urgent data for
    > marking a message boundary.  Without using MSG_OOB you
    > don't even know *which* data is Urgent.
    >
    > As I pointed out in my posting on FCIP, modifying the
    > operating system's TCP path to supply a socket service
    > for use by an iSCSI client isn't acceptable, either from
    > a commercial or from a performance point of view.
    >
    > This WG also needs to sync with the Firewall Traversal WG
    > if it wants support for a modified TCP service.
    >
    > I strongly recommend that the WG discard this approach and
    > use TCP as no more than a octet stream service.  This will
    > require an adaption layer for iSCSI over TCP, where the adaption
    > layer marks SCSI protocol data unit boundaries.
    >
    > Regards,
    > Glen
    >
    > --
    >  Glen Turner                                 Network Engineer
    >  (08) 8303 3936      Australian Academic and Research Network
    >  glen.turner@aarnet.edu.au          http://www.aarnet.edu.au/
    > --
    >  The revolution will not be televised, it will be digitised
    
    


Home

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