Subject: Re: Transport layer interface

From: Brian Rosen <[email-masked]>
Date: Mon, 30 Aug 1999 10:00:02 -0400

> I still don't subscribe that a layered transport precludes ALF, the
> application of course knows best but it communicates with the
> transport
> through an interface.
>
Here is an example:
The layer, as proposed, has a "transfer" primitive.
It does not have any mechanism that would affect the
order of message transmission AFTER the transfer primitive
is invoked.  Yet, virtually all known transports have
queuing at their interface.  ALF would want to change the
order of messages in this queue.

If you define the transfer primitive to be "immediate
send", so that the application manages the queue entirely,
then any mechanism the transport does have for
congestion management or error recovery could not operate.

Brian

---

From: Christian Groves <[email-masked]>
Date: Mon, 30 Aug 1999 21:08:57 +1000

Previous emails in this thread have alluded to where the queuing and
prioritisation is done in applications. The application would know the
order and priority of commands before it sends it to the transport
buffer.

Its tough ask of any application to be able to change the
order of messages in a transport queue which I guess would be sitting
there for less than a few milliseconds.
Transports have congestion control so I guess then we would have to
redefine them for ALF?
Having an application messing around with transport queues is tightly
coupling transports and applications. Everytime you port an application
to a new transport then you have to re-implement ALF and play around
with the transport stacks.

With layering you let the transports do what they are designed for, let
the Applications handle errors as they know best. You define the
information between them ie. primitives/API to let them both evolve
indepenently.

Christian

---

From: Christian Huitema <[email-masked]>
Date: Mon, 30 Aug 1999 17:23:29 -0400

>there for less than a few milliseconds.

The problem occurs in situations of congestion.  In these situation, the
retransmission "queues" contain way more than "a few milliseconds."

>Transports have congestion control so I guess then we would have to

That is correct. Any application has to be programmed to only authorize a
"window" of "open transactions" at any given time. That window should
behave, by and large, as a TCP congestion window.

Christian Huitema