Re: [SWMP] TCP, UDP, and multicast: are they really equivalent?

Roland Weber <> Sun, 09 September 2007 07:04 UTC

Return-path: <>
Received: from [] ( by with esmtp (Exim 4.43) id 1IUGqh-0001N6-S4; Sun, 09 Sep 2007 03:04:51 -0400
Received: from [] ( by with esmtp (Exim 4.43) id 1IUGqe-0001M9-Qm for; Sun, 09 Sep 2007 03:04:49 -0400
Received: from ([]) by with esmtp (Exim 4.43) id 1IUGqd-0006Mg-6O for; Sun, 09 Sep 2007 03:04:48 -0400
Received: from [] (helo=[]) by (node=mrelayeu7) with ESMTP (Nemesis), id 0ML2xA-1IUGqb2BJV-0002Qb; Sun, 09 Sep 2007 09:04:46 +0200
Message-ID: <>
Date: Sun, 09 Sep 2007 09:05:05 +0200
From: Roland Weber <>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/20070807 SeaMonkey/1.1.4
MIME-Version: 1.0
Subject: Re: [SWMP] TCP, UDP, and multicast: are they really equivalent?
References: <> <>
In-Reply-To: <>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Provags-ID: V01U2FsdGVkX196CLfzGjbLcxRcW1C9LgUnIPIIWBKj4hRl8nZ iIWfZHtNO//Tci4yWzPdocSvwvHfyUhLpt/QNXIexeizPXxzdr SL+aoNXvoeFHBts71nVo3c8SUo27Ryf
X-Spam-Score: -0.0 (/)
X-Scan-Signature: ea4ac80f790299f943f0a53be7e1a21a
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Discussion of a Simple Wide-area Multiuser-3D Protocol <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>

Jay C. Weber wrote:
> John:  I agree with your assessment that (UDP) datagrams are only appropriate 
> for intense streams of field updates, where reliability of individual datagrams 
> is not essential.  But as I'm sure you are aware, just as with intense streams 
> of audio or video data, datagrams can be significantly more efficient in terms 
> of both latency and bandwidth.

I'm missing practical experience here, but this is very intuitive.
Maybe it is oversimplified to just distinguish between TCP and UDP?
UDP in a local network should be much more reliable than UDP over
an internet connection. On the other hand, plain TCP could be
augmented by TLS for client authentication on the initial channel.
And then there's unidirectional multicast (probably reliable?).

How about defining a few channel classes, and leaving it up to
the implementations to choose the transport mechanism based on
configurations and available runtime data? For example:

RSD: reliable and slow, duplex. (TCP, TLS)
RFD: reliable and reasonably fast, duplex. (TCP, UDP/local)
UFD: unreliable and fast, duplex. (UDP)
RFS: reliable and fast, simplex. (multicast)
UFS: unreliable and fast, simplex. (UDP/firewall)

Gateways or proxies would be allowed to change the transport
where appropriate, for example from TCP/internet to UDP/local.


SWMP mailing list