|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: iSCSI: Flow Control> As I understand it, TCP should not have any intelligence > of the iSCSI layer above it. Thus, TCP does not know if > the oncoming data is an iSCSI data PDU or a command PDU. > If it is receiving a long stream of data, TCP can't tell > if it's 1 short command PDU and a very long data PDU, or > 100 short command PDU's. I agree completely. > The latter case could overwhelm the > SCSI command queue, but still be within the TCP window of > the receiving node. This I don't understand. The act of TCP receiving data into its window (and thus causing the window to shrink) is complete independant of the application (aka iSCSI) grabbing the data (causing the window to grow). As an extreme example a naught initiator sends 1,000 commands down to a target that has a command queue depth of 2, will it be overwhelmed? I think not. A sane implementation of the target will detect that there is data on the connection, read a chunk large enough to grab the first command and stuff it in the command queue, read the next command and stuff it in the command queue, then simply waits for one of the commands to finish leaving the other 998 commands in the TCP receive buffers. When one of the commands completes it sucks in the next command and puts it in the queue. > That is, unless you want iSCSI to talk > to TCP to tell it to close the window. But that would > violate layering principles, I believe. The above example violates not layering, the TCP window closes because the application does not read all of the data because its command queue is too small. Now a clever implementation can do interesting tricks in hardware where it copies the data stream straight into the command queue based on its interpretation of the data stream. The overly clever (and thus dangerous) implementation could also play with the window and not open it up until *after* the command is executed. But again this is an implementation hack that saves a copy but then violates layering, but the proposed protocol does not violate layering. Still don't see the issue. -David
Home Last updated: Tue Sep 04 01:07:10 2001 6315 messages in chronological order |