|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: comments on draft-ietf-ips-fcovertcpip-00.txt
Matt Wakeley wrote:
>
> Simply put, TCP is a byte stream, and you cannot dictate to TCP what will or
> will not be in a "TCP segment". As far as the application layer above TCP is
> concerned, there is no such thing as a tcp segment. And neither the Push nor
> Urgent options help.
-----------------------
NEXT GENERATION
> Section 5.2 also talks about IP fragments, which is a BAD thing to do to TCP -
> it results in performance hits.
And it makes a FCIP/TCP/IPv6 implementation impossible.
-----------------------
FRAMING
Following the discussion I had a read of the framing part
of the document. Although the FCIP uses the TCP format
and complies with the TCP state machine it does not
comply with the TCP services.
Operating systems written to provide applications with a TCP
service will not be able to implement FCIP. This includes
the UNIX socket API, the expression of TCP services most
dominant in the marketplace.
Operating systems will need modification to implement
FCIP. From a quick look at the Linux kernel, the standard
path for TCP packets has to be significantly altered to
implement FCIP. This sucks, as it means that other TCP
applications on the machine must run slower. With RISC
CPUs it is worse -- either the TCP path or the FCIP path
must take a succession of cache hits.
You can argue that FCIP targets are always dedicated bits of hardware
(although I would contest that).
But almost all FCIP clients will be general purpose computers.
And so a web server with a gigabit ethernet connection (an
'intranet' server) with a large rear-end disk would be insane
to run FCIP -- what you gain on using FCIP you lose on the
slower HTTP path.
The choice to implement FCIP as a operating system application
(say, a UNIX daemon) or as a operating system change (say as
a Linux kernel module) should be based upon efficiency and
maintainability. That choice should not be made by the protocol
designer, if only because the trade-offs are going to change
as technology changes over time.
-----------------------
ADAPTION LAYERS TO IMPLEMENT FRAMING
I'd also suggest that the author examine the concept of Adaption
Layers.
That is, a core FCIP protocol is defined.
Then an adaption layer is defined for TCP. Another is defined
for STCP. The RFC states that the TCP adaption layer MUST be
supported.
The framing bytes for TCP then become part of the adaption layer.
A similar trick can be used for iSCSI. With iSCSI a UDP adaption
layer may also be reasonable.
-----------------------
QUALITY OF SERVICE WILL FAIL FOR MOST USERS
The document also states:
DSCP (6 bits): The Differentiated Service Code Points (DSCP) [6]
shall be set to correspond to the Premium Service. This service
provides "Expedited Forwarding" at each IP hop (Per Hop Behavior
(PHB)).
"Shall" is one of the RFC 'magic words' indicating an absolute requirement.
There is no justification for insisting upon the Premium service.
It prevents ISPs from offering a DiffServ service that best meets
the needs of FCIP users. For example, the Premium service may have
worse latency but better bandwidth than a service explicitly tailored
for FCIP. Similarly, the ISP may wish to implement a different
protection mechanism for an FCIP path than for a Premium path.
The requirement should be:
FCIP targets and clients MUST allow the Differentiated Services
Code Point to be configured. FCIP targets and clients SHOULD
use a DSCP of 0 until both parties are authenticated.
The second sentence allows easy policing of the use of whichever
DSCP is used for FCIP traffic.
-----------------------
FRAGMENTATION
IP Fragmentation:
The Fibre Channel maximum transmittable unit (MTU) is 2148 bytes.
A maximum of 60 bytes of TCP header increases the MTU of the IP
payload to 2208 bytes. It is preferable that FCIP packets
encompass the TCP + FC MTU to avoid fragmentation of FCIP packets.
The resulting packet size exceeds the MTU of some IP physical
layers (e.g. Ethernet MTU = 1518 bytes). FCIP devices should
handle fragmentation and must handle re-assembly of FCIP packets.
An FCIP device may use Path MTU Discovery (RFC 1191) or an
equivalent mechanism to adjust FCIP packet size to avoid
fragmentation. Alternatively, the MTUs of all FC nodes may be
manually set to match the path MTU of the IP network.
This is much more simply put:
A FCIP node SHOULD set the TCP PSH bit on TCP segment containing the last
part of the encapsulated FCIP packet.
To allow higher throughput, when sending multiple FCIP packets
implementations SHOULD set the PSH bit when encapsulating only the
last FCIP packet of a sequence of FCIP packets.
Then segmentation and reassembly is handled through the standard TCP
services to present FCIP with a stream of octets thay were sent in
the most efficient way possible. Asking for the PSH bit TCP service
hints to the TCP implementation that no more data is expected to be
sent for a while.
-----------------------
TCP DYNAMICS
10. Flow Control and Congestion Management
<Text to be added>
I suggest you don't stuff about with this. TCP dynamics
are an area of active development. For example, the
ECN bit. If you specify something here and applications
come to depend on it, then improvements to flow control
(that might actually improve performance) will not be
able to be implemented.
-----------------------
TIMEOUTS
IP is best effort and TCP avoids congestion collapse. The implication
is that there is nothing that FC can do on its own to detect timeout faster
that will not either:
- add to the risk of congestion collapse
- prevent rerouting and recovery
IF some mechanism is developed, then it should be implemented
in TCP to aid *all* sessions, not just FC sessions. That's
why the timers are usually kernel variables.
An implementation on a dedicated target may choose to make these
variables simple to set.
--
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 |