|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: Concensus Call on Urgent Pointer.
Firstly let me get some points clear:-
1/ iSCSI does not have a framing issue, it has the length built into the
header.
2/ The issue under discussion is a memory issue under a dropped packet
scenario.
3/ That issue has a proposed solution which uses a TCP option, called the URG
bit.
4/ Some are proposing that all TCP implementations MUST support this option.
(Matt Wakely, YP Cheng, Randy Haagens ?? these names come to mind, not
definitive list)
5/ Some suggest that not all TCP implementations MUST support but MAY support
it.
(Myself, Clive Philbrick,Randall Stewart, Daniel Smith, Ronald Lee , Doug
Otis
Somesh Gupta ?)
Apologies if I?ve left anyone out or if I?ve included your name here
inadvertantly in favour)
On 5/ above I don?t think this negates the solution. But it does mean that all
solutions must be able
to work without use of the URG flag. From what I?ve seen on this topic this
solution PROTECTs
iSCSI in the market place in case of some device that does not like handling
URG flags (referring to Douglas Otis email).
If a Vendor wants to produce a cheap device without much memory then that is
still achievable, will work well with URG framing when negotiated, will work
well without URG framing on low loss lines and will work pretty good in most
LAN?s and MAN?s even with lossy environments (1 max frame lost every million).
So it?s just not clear to me how negotiation of this framing "makes iSCSI fail".
It does not.
Doing a TCP "special" for iSCSI seems the wrong way to go. Will some other
function come along
next year requiring another TCP special ?. Is it a good thing that many
"specials" might be developed
?. General purpose TCP handoff Engines might become obsolete if the IETF becomes
active defining
such specials. The more I think about this the more I want to oppose this option
completely. But I?ll not change
my mind just yet.
Now I want to look at the storage needs of long fat pipes (Gig Ethernet) and see
how bad is the memory problem.
Lets look at the bandwidth delay product (I guess there are some emails in the
archive already) for the LAN.
I assume a LAN with two Gigabit Ethernet switches, a server and client.
client----------------switch---------------------switch------------------server
Assume they are connected with copper at the max allowable distances i.e. 100M
between devices.
Speed of light is 300m/uS and I?ll assume speed of signal on wire at 0.5c i.e.
150m/uS:- 300M => 2uS delay
Assuming Max sized Ethernet frames, 1500bytes => 12uS to transmit at Gigabit
speed.
=> 12uS from Endstation to switch, 12uS from switch to switch and 12uS to other
Endstation => 36uS.
Lets assume each switch takes 6uS internally to switch the segment. => 12us in
total
Lets also assume that Each endstation takes 25uS to process the TCP segment.
This is acceptable for
Hardware based TCP Engines.(100?s of ms for software based solutions)
Thus the one way trip time is 2uS + 36uS + 12uS + 25uS => 75uS
Round trip time = 150uS
Number of packets on wire = 140uS/12uS each =>12.5 packets @ 1518bytes = 19KB
Thus in a LAN environment with two switches and 300M between client and server
and assuming
25uS of endstation processing 19KB is the bandwidth delay product.
This is for one TCP connection, but if there are multiple connections they
cannot be all active at a Gigabit each, thus each window can be reduced.
To support a 100 such connections then 100x19KB = 1.90MB
To support a 500 such connections then 500x19KB = 10MB. (i.e. $10)
If there are more than a 500 connections then each window gets scaled back
somewhat.
So in the LAN the memory requirements seem acceptable and not too costly.
Most iSCSI deployments will be into the LAN.
MAN Environment.
Assume 10KM(max FC distance?) fibre optic connection
At 0.5c we get a distance of 1KM per 7uS and 10KM for 70uS and 140uS roundtrip.
Lets add this to the above figues giving a total of 140uS fibre + 150uS for
switches and end station delay.
Lets make this a round figure of 300us
Data in pipe = 300us/12us per packet = 25 packets = 25 * 1518Bytes = 38KB
So if acks can be sent out speedily from the end stations (assuming hardware
based TCP Engines at
both ends) then these numbers can be met.
If we allow enough memory for 10 such connections we have 380KB
If we allow enough memory for 100 such connections we have 4MB
If we allow enough memory for 200 such connections we have 8MB ($8)
(I know that the bandwidth delay product does not have to be given per
connection but to the total of
connections dataflow => line bandwidth).
Thus I do not see that there is a need for 100?s of megabytes of buffer ram in
MAN connections either.
So In summary , for LAN and MAN Environments the supposed memory requirements
without URG
framing seem inflated: So what am I missing here - since others have strongly
opposing views.
Note-Vendors can have even less memory than given above if they want to throw
away all data within a
window when a segment gets lost, and re-transmit everything. Using multiple TCP
pipes in parallel
this may even be ok.
So I still say this must be optional (and I?m veering to suggesting that it
should be taken out completely).
Dick Gahan
3Com
PLANET PROJECT will connect millions of people worldwide through the combined
technology of 3Com and the Internet. Find out more and register now at
http://www.planetproject.com
Home Last updated: Tue Sep 04 01:06:22 2001 6315 messages in chronological order |