SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    RE: iSCSI Data Integrity - Digests



    > While I understand and can appreciate all the tricks that can be done
    > with a merged stack that avoids the implementation layer, I strongly
    > object to this WG allowing standard options that change the standard
    > TCP wire protocol. Even if both ends agree to do the "special"
    > processing, other nodes and protocols generally share these
    > wires and "special" non-standard options can have nasty indirect
    > effects.  If your custom adapter does things that are not changes
    > in the protocol, like always putting an iSCSI request in a
    > single segment which allows the other end to fast-path processing, is
    > an acceptable implementation trick as either end not "knowing" about the
    > trick will function correctly, although maybe not optimally.
    > Any changes to the standard TCP must go through end2end, this WG MUST
    > NOT allow options that circumvent that process.
    > 	-David
    
    David,
    
    Each time when I touched this area, I always felt like walking around a
    snake pit.  It is neither my intent to discuss changes of TCP wire protocol
    in this WG nor my desire to make such changes.  I've been always carefully
    in using the words "TCP implementation."  In fact, after reading a lots of
    RFC's, I have come to the conclusion that there are ways within TCP that
    would allow iSCSI work well in 10GB/100Ms Network.  The slow TCP transport
    problem is in the existing implementations that do not have all the new TCP
    options.
    
    For example, you can have 16-bit TCP window-size or 32-bit.  Using 16-bit
    window size, there in no way we can keep the 10Gb/100Ms pipe full.  But, the
    use of 32-bit window-size does not change the TCP protocol.  Another
    example, an iSCSI adapter can always send each iSCSI Command PDU in a
    separate TCP segment.  In so doing, URG pointer is perfect for marking
    message boundary. While the gurus of TCP can quickly point out that it is
    impossible for URG pointer to mark the SCSI command boundary in the BSD
    implementation, there is nothing preventing two iSCSI adapters from using
    URG pointer when they send command PDUs to each other.  In fact, whether two
    iSCSI adapters using URG pointer in their exchanges, IMHO, is even outside
    the jurisdiction of this WG.  Because the use of URG pointer does not
    violate TCP protocol.  It is just that old TCP implementations not able to
    keep command/status PDUs in separate segments can not benefit from URG
    pointer.
    
    Therefore, while an iSCSI adapter can interoperate with a client running in
    TCP of BSD 4.3, it should also be able to interoperate with another
    state-of-art iSCSI adapter which is much more intelligent.  The difference
    in their interoperation will be decided at login with text messages.  I
    think we don't have to limit ourselves to stone age tools if electrical
    drill is already invented.  Please note that I am not asking the invention
    of new TCP options here.
    
    Y.P.
    
    


Home

Last updated: Tue Sep 04 01:05:36 2001
6315 messages in chronological order