[e2e] patents on routing algorithms

David P. Reed dpreed at reed.com
Fri Jan 4 09:16:40 PST 2008

Jon Crowcroft wrote:
> why do you think a loose coupled system cannot be described
> mathematically?
Perhaps it is an article of faith on my part.   Dawkins claims that he 
takes nothing on faith - rejecting the concept of faith as 
non-mathematical, and therefore not scientifically real.  I reject his 
views as self-contradictory, though I find them interesting and worthy 
of study.

Of course there are many mathematicians (I think a minority, but a 
substantial one) who don't buy into Hilbert's pure formalism program, 
and further don't believe that the world must be formalizable in all 
aspects.  I believe I am (to the extent I claim to be a mathematician) 
in that group.  Bayesians tend to be in that group - you can be a 
Bayesian without expecting that there is a "ground truth" of ideals in 
the sense that Plato and his followers wished for.

One can, of course, *define* a meaning for the term "loose coupling" as 
a mathematical property either as an axiom or by reduction to axiomatic 
elements of some formal system.   But that definition, I personally 
suspect, will not be complete, in the sense of properly capturing the 
notion of a protocol of the sort that English, or Linear-B, or any other 
human mode of communication has.  For example, we speak English and 
expect a wide variety of "systems" to change state in reasonably 
non-surprising ways that match our intention.
> clearly I can describe the code at each end of a
> protocol, and the channel, and at least derive theorems about how
> these combine. just because i dont over determine thigns doesn't mean
> that there isnt a precise mathematical description - it just means
> that there are non deterministic (external) events....thats been
> smething that process algebras have addressed since CCS, CSP, Lotos
> etc etc...even though those systems were somewhat unwieldy
Process algebras start with assertions and definitions.   That makes 
them useful tools, but it does not make them true.
> many processor designs today are specified - but a ot of asynch
> circuit design has to be underdetermined....that doesnt mean it isnt
> amenable to math (code/algorithmic) description.
> you're starting to sound like Richard Dawkin's who seems to think that
> human consciousness is not amanable to emulation by machine because
> of quantum mechaninics....an even great heresy
> description doesn't mean 100% prediction...:)
> In missive <477E37CF.5010707 at reed.com>, "David P. Reed" typed:
>  >>Jon Crowcroft wrote:
>  >>> it is a goal of much recent work (see Sewell et al in sigcomm 05
>  >>> "Rigorous specification and conformance testing techniques for network protocols,
>  >>> as applied to TCP, UDP, and sockets"
>  >>> and various papers
>  >>> by Griffin and Sobrinho on Metarouting) 
>  >>> to render protocols merely 
>  >>> algorithmic specifications that are fed into engines that run them
>  >>>
>  >>> shame on us as computer scientists that
>  >>> we dont use such techniques on a daily basis for
>  >>> well-found engineering instead of the handwaving that passes
>  >>> for communications work still in the 21st century
>  >>>
>  >>> it is a technical AND ethical goal to make it so
>  >>> and should be a duty on all of us to get the law to recognize it
>  >>>
>  >>>   
>  >>That's a plausible point of view.   I heartily disagree, however.  In 
>  >>1974 or so, our research group (Saltzer, Clark, Reed, Liskov, Svobodova, 
>  >>as I recall) decided that a *crucial* aspect of distributed systems was 
>  >>that they exhibited "autonomy", which implies a serious notion of loose 
>  >>coupling, flexibility, revisability, etc.  That set of attributes are 
>  >>crucial, leaving them out for the sake of formal methods is just another 
>  >>Procrustean bed, where they are the Feet.
>  >>
>  >>*Protocols* are techniques for achieving communications in the face of 
>  >>uncertainty about who is on the other side of the network.  Not just an 
>  >>unreliable network in the middle, but an uncertainty in a very 
>  >>fundamental sense about what is on the other side.
>  >>
>  >>In "distributed systems" that must function in the real world, a core 
>  >>and *essential* concept is that one must specify parts of the system to 
>  >>
>  >>To someone who speaks English as a protocol, this is obvious.   I can 
>  >>try to convince you, for example, by the words above that I am right.   
>  >>And I am using English correctly, and this can be verified.  But it has 
>  >>nothing to do whatsoever with being able to prove that you *will* agree 
>  >>with me at the end of the conversation.  Maybe it will take more 
> conversations, maybe not.
>  >>
>  >>But a protocol is not an algorithm executed by a complete set of formal 
>  >>machines, though some protocols (a small subset might be in that 
>  >>category).  That is a sad, little boring and utlimately trivial subset 
>  >>of the "protocols" of the world.   Maybe it makes small-minded 
>  >>mathematicians happy because they can close off a "formal system" and 
>  >>prove theorems, as if proving theorems is the desired endpoint of system 
>  >>design.    But the ability to prove theorems is not the test of a 
>  >>*useful* protocol set - neither of engineering value, nor of human 
>  >>value.   The ability to communicate (which cannot be formalized in any 
>  >>way I know) is the correct test.   The Internet is one example of a 
>  >>system that succeeds in communicating, and there really was NOT a need 
>  >>to define a formal specification of a collection of machines to achieve 
>  >>that result.
>  >>
>  >>
>  cheers
>    jon

More information about the end2end-interest mailing list