1) "The extension mechanism should allow communities to extend the system
noncooperatively, yet allow such independent extensions to be merged
gracefully" -- well put! First, extensions are communities; third parties
should be able to extend it without cooperation/complicity of the ends; and
those changes should be 'releasable'. I learned a decent bit from Jim while
designing PEP...
2) "Requiring nothing more than a reliable duplex byte stream (without
urgent data) for communication makes X usable in many environments" Also, X
is an asynchronous protocol, improving on the W synchronous system.
The realization here is that the TCP URGent pointer is NOT necc for X; it
is similarly unused for HTTP. Conversely, in India I studied the Comer
implementation of the TELNET state machine, which DOES use URG in its
channel abstractions (for process interrupt and flushing), and we find that
simple-seeming TELNET is actually much more complicated than it may seem at
first and also permanently tied to TCP.
Many other network transports may not offer prioritized-delivery: what's
the story for DECnet or Chaos or XNS? MUX, too, "learns" this lesson by
offering credit-based flow control within channels, but says nothing of
priorities between them.
URG, I think, ends up taking more than it gives. In TELNET, I suppose the
original rationalization was that 'skip-from-interrupt-until-URG' (or, to
be clean about layers, the synchronization record marker in the stream)
would allow quicker resumption of control in irregular situations: just
throw the data away instead of wasting more cycles parsing it to 'catch
up'. In fact, it seems to complicate control, and I haven't
seen/thought-through where else it offers benefits to applications. It
certainly seems to cost something in the TCP stack implementation, too.
What am I willfully ignoring about URG? Am I wrong to assume the universe
can be built on duplex reliable bytestreams, or is the bottom turtle really
a channel *with* interrupts? On one hand, URG cannot be simulated on top of
a reliable stream with the same efficiency; on the other, perhaps
link-layers like multifrequency radio and ISDN will use privileged
signalling channels.
Or, I may be completely off in my recall of URG; I'm typing here in a
coffee bar surrounded by Doors and exotically pierced and dyed teenagers.
Not a copy of Comer in sight...
Rohit