From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: <20151019213143.148482d7@ikilid> References: <20151019004356.3b020ab3@ikilid> <20151019213143.148482d7@ikilid> Date: Mon, 19 Oct 2015 22:17:29 +0100 Message-ID: From: Charles Forsyth To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: multipart/alternative; boundary=089e013c6b6242897b05227bacc2 Subject: Re: [9fans] RUDP and/or others Topicbox-Message-UUID: 741467b0-ead9-11e9-9d60-3106f5b1d025 --089e013c6b6242897b05227bacc2 Content-Type: text/plain; charset=UTF-8 On 19 October 2015 at 20:31, Aleksandar Kuktin wrote: > I seem to remember IL being more complex than just a UDP with counters > and ACK, which is what I'm - sort of - looking for. > I think you might find Plan 9's rudp is essentially that. Conversations are determined by a generation number; packets are labelled (gen, seq) for seq within a given generation gen; and acks are piggybacked as (agen, aseq) in every packet. The header is just uchar relseq[4]; /* id of this packet (or 0) */ uchar relsgen[4]; /* generation/time stamp */ uchar relack[4]; /* packet being acked (or 0) */ uchar relagen[4]; /* generation/time stamp */ I can't say much about how well it works, because it has been years since I last poked at it, and for my purposes I thought I needed something more elaborate (but I might have been wrong about that). In your case, allowing for implementation bugs, it sounds as though it might work for you, or at least be easily adaptable. --089e013c6b6242897b05227bacc2 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

= On 19 October 2015 at 20:31, Aleksandar Kuktin <akuktin@gmail.com><= /span> wrote:
I seem to remember IL being more complex than just a UDP with = counters
and ACK, which is what I'm - sort of - looking for.

I think you might find Plan 9's rudp is essentially that. = Conversations are determined by
a generatio= n number; packets are labelled =C2=A0(gen, seq) for seq within a given gene= ration gen;
and acks are piggybacked as (ag= en, aseq) in every packet. The header is just

uchar relseq[4]; /* id of this packet (or 0) */
uchar relsgen[4]; /* generation/time stamp */
uchar relack[4]; /* packet being acked (or 0) */
uchar relagen[4]; /* generation/time stamp */

I can't say much abo= ut how well it works, because it has been years since I last poked at it,
and for my purposes I thought I needed somet= hing more elaborate (but I might have been wrong about that).
In your case, allowing for implementation bugs, it sound= s as though it might work for you, or at least be easily adaptable.

--089e013c6b6242897b05227bacc2--