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.



    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.
    
    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