<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<font size="-1"><font face="Helvetica, Arial, sans-serif">Um, have you
ever written code, Matthias? Every programmer has had to deal with the
question of how much checking you do on the inputs to your function and
how you recover from errors returned by the functions you call. You can
arrange the choices about how to address these questions according to
some continuum with unreasonable absolutes at the boundaries and engage
in pseudo-philosophical discourse over the nature of reality and
consciousness, or you can make a pragmatic decision based on the nature
of the problem you're trying to solve and your experience with the
system.<br>
<br>
A good system programmer doesn't try to apply some dogmatic rule set
about the correct way to do IPC, he makes decisions grounded in a
realistic assessment of the behavior of the components in question. If
you look a how the Internet actually works - as opposed to the musings
of graduate students - you'll see that it doesn't actually implement a
"best efforts" model per the definition you cite. TCP assumes an
extremely high degree of packet integrity, so much so that it can
safely ascribe packet loss to congestion rather than line noise or
wireless collisions. That's not the scenario in Metcalfe's thesis by
any stretch of the imagination.<br>
<br>
You also need to be careful about the use of the expression "best
efforts" as it means at least three different things now days.<br>
<br>
RB </font></font> <br>
<br>
On 6/2/2010 1:56 AM, Matthias Bärwolff wrote:
<blockquote cite="mid:4C061CCA.1070304@cs.tu-berlin.de" type="cite">
  <pre wrap="">

On 06/01/2010 11:46 PM, John Day wrote:
  </pre>
  <blockquote type="cite">
    <blockquote type="cite">
      <pre wrap="">Best effort to me seems absolutely central to the "Internet
architecture" -- I'd recommend reading Metcalfe's thesis' chapter 6
which really nicely elaborates the notion.
      </pre>
    </blockquote>
    <pre wrap="">
This is the contribution from Pouzin implemented in CYCLADES, which
Metcalfe picks up on for the more limited environment of the LAN.

    </pre>
  </blockquote>
  <pre wrap="">
Pouzin's contribution notwithstanding, Metcalfe's thesis' chapter 6 to
me is the first proper elaboration of best effort as a philosophy; I
spare you the copious quotes, it is readily available on the web. Just a
brief one:

\begin{quote}
Imagine that we are a component process in the midst of some large
system. There are two extreme attitudes we might have toward the system
and toward the several component processes upon which we depend. We
might believe the processes around us to be so reliable, irreplaceable,
and interdependent that, if one should fail, there would be little point
in trying to carry on. Or, we might believe the processes around us to
be so unreliable, expendable, and independent that, if some should fail,
there would be considerable potential in our being able to patch things
up to struggle on, weakened, but doing our job. This second attitude is
characteristic of what we call the ``best-efforts'' philosophy of
interprocess communication; it is based on our desire to give the system
our best efforts and, to do so, on our expecting only as much from the
processes upon which we depend.
(pp.\,6-25\,f.)
\end{quote}

To my knowledge, Pouzin has never put it that clearly in writing.

Also, best effort may be argued to have been a principle that was
applied to the Arpanet before Pouzin's Cyclades. Sure, there were VCs,
but, in all, failure and the recovery from such was very much a default
assumption in the whole system (a point that Metcalfe acknowledges, too).

Matthias
  </pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">-- 
Richard Bennett
Research Fellow
Information Technology and Innovation Foundation
Washington, DC</pre>
</body>
</html>