From sm5ncz%[email protected] Thu Apr 30 20:42:22 1992
Received: from sm5sxl.ampr.org by sm5sxl.ampr.org with SMTP
       id AA201 ; Thu, 30 Apr 92 20:42:19 CET
Received: from sm5ncz.bbs by sm5sxl.ampr.org with BBSFWD
       id AA198 ; Thu, 30 Apr 92 20:08:59 CET
Date: Thu, 30 Apr 92 20:08:59 CET
Message-Id: <[email protected]>
From: sm5ncz%[email protected]
To: sm5sxl
Subject: fwdpr141
X-BBS-Msg-Type: P

Date: Thu, 30 Apr 92 18:39:11 CET
Message-Id: <[email protected]>
From: [email protected] (Björn Karlsson, Vikbolandet.JO88FH.E.SWE.EU)
Reply-To: [email protected]
To: sm5sxl@sm5sxl
Subject: fwdpr141
X-Mailer: User Agent V1.3
X-BBS-Msg-Type: P

   CONNECTIONLESS MAIL PROTOCOL AND MORE

  1Table of contents

  1.        General                                             2

  2.        UI Frame Connectionless Mail Protocol
  6Specification Version 1.00                          3

  3.        A Sample Conversation                               6

  4.        Problems and comments                               8



  by Derek Koopman, G1TLH
  from Connect International via Hank Greeb, N8XX             page   1(8)
  CONNECTIONLESS MAIL PROTOCOL AND MORE


  1.        General

  1It seems to me that the main use of our network is for the
  1transfer of items of general interest (bulletins), first,
  1and personal mail, second. Now this may seem a bit strange
  1particularly when one could put a reasonable case that there
  1are more personal messages generated than bulletins (I do
  1not go along with this, but am willing to be convinced). The
  1trouble is that personal mail has an origin and one
  1destination, bulletins have an origin by N destinations
  1where N is at least every PBBS in the country!

  1The majority of traffic is the sending of bulletins to every
  1PBBS, ie, over and over again. This leads people, who think
  1in terms of telephone lines, to say we must rationalize, we
  1must stratify, more channels, more bands, etc. Can you not
  1see the beauty of one channel with many stations listening,
  1in other words, use the broadcast nature of our medium. Why
  1must we always think in terms of telephone lines? We are not
  1on the telephone, we are not in a one-to-one,
  1origin-to-destination situation. We can broadcast. Think
  1about it.

  1Anyway, after a year or so saying I really must do something
  1about it and writing the specification outlined below, I
  1have also started writing a simple terminal
  1program/conferencing system/PMS/PBBS (I haven't quite worked
  1out what it will be yet). One of this program's features is
  1that it listens to the channel and tries to generate
  1messages out of the many copies of a bulletin that are sent.
  1It turns out that it receives between 50 and 90% of all the
  1messages that pass by it on any particular pass through
  1depending on who is sending what to whom locally. This means
  1that there are four local sub-PBBSs and also the original
  1feeds to our local NTS station that I can get 95% or more of
  1my bulletins directly from without actually being connected
  1at any time.


  1I must say at this point that I don't necessarily believe
  1that we need only one channel. Trunking should occur
  1elsewhere, but I do believe that we should start thinking
  1about what we are using, its nature and use the properties
  1of our medium to the full. I also say that it may be that we
  1could use far less equipment to achieve our goals if we do
  1not go down the "professional's route." One could also ask
  1what would be the point of emulating a known solution? I
  1thought we were in this hobby to invent new and better ways
  1and means. Why else are we tolerated in the busiest and most
  1commercially valuable portions of the spectrum?

  1What I have done so far, which is merely some fancy pattern
  1matching on monitored BPQ data, is not perfect. It gets it
  1right 99.98% of the time and, as such, is not suitable other
  1than for a leaf PBBS or PMS system. I have designed a UI



  by Derek Koopman, G1TLH
  from Connect International via Hank Greeb, N8XX             page   2
  CONNECTIONLESS MAIL PROTOCOL AND MORE


  1protocol which could give 100% data integrity while still
  1retaining the flavor of the broadcasting mechanism. I
  1outline it below.


  2.        UI Frame Connectionless Mail Protocol Specification Version 1.00

  1The aim of this protocol is to utilize the broadcast nature
  1of the radio medium to minimize the amount of air time it
  1seems to take to distribute the mail. This system is not
  1meant to replace all of the current system of connections
  1from one mailbox to another, but to optimize the
  1distribution in a local area within range of a powerful node
  1or other powerful repeating transmitter.

  1This specification is based on earlier work of mine and
  1G8UFQ (now, sadly, deceased).

  1The basis on which this protocol is devised is as follows:

  11. Radio is a broadcast medium, a packet (particularly if it
  4is sent by a powerful and/or well sited transmitter) can
  4potentially be heard by a large number of receivers.

  12. The nature of the TNC, FM radio and CSMA environment is
  4such that if a station can be heard loudly, then all
  4other stations will tend to shut up until a suitable
  4pause appears, at which point, they all tend to jump in.

  13. The loudest station usually controls the flow traffic in
  4a given area, thus any other station that uses that loud
  4station usually gets more traffic through more quickly
  4than if they go direct while the loud station is
  4transmitting.

  14. If we sent UI framed packets via the loudest station,
  4they will be heard by many people (witness all the
  4complaints about long beacon texts via several
  4repeaters). If those packets can be uniquely identified
  4as part of a particular message and also which part, then
  4a basis of a simple connectionless mail protocol exists
  4that more fully uses the broadcast nature of radio as
  4outlined in (1) above.

  15. The concept of acknowledging each packet correctly
  4received is, I believe, inappropriate for a congested FM
  4CSMA channel such as the ones we are using. Research has
  4shown (ZMODEM protocol) that it is more efficient to say
  4what you have not received. Further, because we are
  4sending bulletins which are by their nature to be
  4broadcasted, if the stations listening send their
  4requests for the bits they missed, there will be overlaps
  4such that any requests trampled on could be issued by
  4another station anyway.

  by Derek Koopman, G1TLH
  from Connect International via Hank Greeb, N8XX             page   3
  CONNECTIONLESS MAIL PROTOCOL AND MORE

  16. A bulletin is broadcast. This protocol is a means of
  4broadcasting; the data therefore fits the protocol more
  4nearly than the current method being employed. Individual
  4mail probably fits the existing model quite well and
  4would therefore continue to use the current system as
  4would normal station-to-station conversation.

  17. I believe it to be more efficient, overall, to send a
  4complete message via a strong station and then wait for
  4requests for retries of individual parts. In other words,
  4to have a window size of infinity (or the size of the
  4message). Further, because of the long delays between the
  4TNC noticing a clear channel and the transmission
  4actually being heard at full power, it will probably be
  4necessary to send the first packet of a string twice or
  4maybe three times because of the likelihood of its being
  4trampled on by other stations [the main reason why the
  4AX.25 fixed window size of >1 has been shown to be worse
  4than simple window sizes of 1 (KA9Q)]. I propose to
  4overcome this problem by using selective reject rather
  4than the current system of `start again from the
  4beginning even though I did in fact hear your last three
  4of that window of four. This will be used in the style
  4of the ZMODEM protocol detailed in (5) above. Because we
  4will probably be repeating, we will need to send packets
  4at reasonable intervals (say 0.5 seconds) in order for
  4the repeater to receive and onward transmit it, this
  4parameter must be tunable to allow for local conditions.

  1Some Details

  1AX.25 allows up to seven packets to sent at a time in one
  1gobbit of packets. Therefore, it will be necessary to send a
  1gobbit of 1 to 7 packets, possibly with the first one
  1repeated as it almost certainly will not be heard on a busy
  1channel. Experiments will have to be conducted to find the
  1optimum number of packets to send in a gobbit, taking into
  1account direct broadcast or via a repeater.

  1Each packet should contain the following info:

  1o 1-byte Signature (suggest "~") to indicate to the software
  3that this packet may be of interest

  1o 1-byte Flag to determine the type of packet.
  3M for mail
  3H for the mail header (from, to, subject, etc)
  3E for end of message
  3R for repeat request
  3A for I am active request (could cause mail to be sent to you)

  1o 14-byte BID. A standard bid, eg, 12345_GB7TLH, some unique
  3message ID, all messages (even mail) has some implicit bid
  3of this form, but it need not be like that above. Anything
  3unique would do. Left justified, excess padded with
  3spaces.

  by Derek Koopman, G1TLH
  from Connect International via Hank Greeb, N8XX             page   4
  CONNECTIONLESS MAIL PROTOCOL AND MORE


  1o 5-byte Offset. The offset of this packet within this
  3message. This is used differently in types H and E.

  1o 200-byte Data. This, of course, contains the data.

  1CONNECTIONLESS MAIL PROTOCOL AND MORE  - Continued

  1Contents of Data Portion

  1H - It is suggested that this is of fairly standard form,
  5ie, SB ALL @ GBR < G1TLH xxxxxxxxxxxxxxxxxxxxxxxx where
  5the offset in the header is the size of the message and
  5xxxxxxx is the title. All portions contain the BID.

  1M - The actual data portion of the message split up into
  5200-byte chunks. The offset incrementing 200 bytes (or
  5whatever) for each packet. The length of the message
  5and, thus, that of the last packet is arbitrary.

  1E - Indicates end of message. It has the length of the
  5message in the offset position. It may be useful to have
  5a CRC16 checksum in hex (4 bytes) in the data portion
  5(then again it is probably overkill).

  1R - Request for more data, in the form address/length. These
  5are free format pairs (starting with the offset position
  5as the first address), eg, 000128/200, 600/200,
  51200/400. Each pair is separated by a comma and the last
  5one is followed by a full stop (which could be left
  5out).

  1A -This is sent by a THL style box when switched on to say
  4here I am, anything interesting?

  1Addressing Issues

  1The unproto mail address needs some definition. In order to
  1recognize a packet coming in as being relevant, it must pass
  1certain tests.

  11. It must be a UI frame.

  12. It must contain the signature character `~ in the first
  4byte of the information part of the frame.

  13. The mail broadcasts need to be identified as such and so
  4an unproto address of $$MAIL is suggested. Replies could
  4contain this address for general work, but if a
  4significant number of packets with a particular
  4originating call sign are received, it is better to use
  4an unproto address of that originating call sign such
  4that only that station replies to requests for more data.
  4This should go some way to preventing race conditions
  4when two or more originating stations have the same BID
  4and start replying.


  by Derek Koopman, G1TLH
  from Connect International via Hank Greeb, N8XX             page   5
  CONNECTIONLESS MAIL PROTOCOL AND MORE


  1The receiving station will need to be discriminating about
  1who it uses to poll for requests and, if it gets packets
  1from other stations with the required information, it must
  1discard them, but possibly remember the call signs in case
  1of failure with the original station.


  3.        A Sample Conversation

  1GB7TLH>NP2>$$MAIL <UI C>:
  1~H12345_GB7VLS 01200SB ALL @ GBR < G9ABC FRED BOGGS IS LICENSED

  1No reply - wait say 5-7 seconds

  1GB7TLH>NP2>$$MAIL <UI C>:
  1~H12345_GB7VLS 01200SB ALL @ GBR < G9ABC FRED BOGGS IS LICENSED

  1No reply - wait say 5-7 seconds

  1GB7TLH>NP2>$$MAIL <UI C>:

  1~H12345_GB7VLS 01200SB ALL @ GBR < G9ABC FRED BOGGS IS LICENSED

  1This is repeated 3 to 5 times

  1G4RQN>GB7TLH <UI C>
  1~R12345_GB7VLS 00000/1200

  1This indicates that you wish the whole lot to be sent. This
  1may be sent three times at one-second intervals, but could
  1perhaps be sent up to 10 times as it constitutes `retries.

  1I also may receive

  1GB7RWN>NP2>GB7TLH <UI C>:
  1~R12345_GB7VLS 00000/1200

  1and

  1GB7LDI>NP2>GB7TLH
  1~R12345_GB7VLS 00000/1200

  1So I send

  1GB7TLH>NP2>$$MAIL <UI C>
  1~H12345_GB7VLS 00000xxxxxxxxyyyyyyyy etc etc
  1GB7TLH>NP2>$$MAIL <UI C>
  1~H12345_GB7VLS 00200aaaabbbbbbccccccdddd etc etc
  1GB7TLH>NP2>$$MAIL <UI C>
  1~H12345_GB7VLS 00400eeeeeeeeffffffffggggg etc etc
  1GB7TLH>NP2>$$MAIL <UI C>
  1~H12345_GB7VLS 00600hhhhhhhhiiiiiiiijjjjjj etc etc
  1GB7TLH>NP2>$$MAIL <UI C>
  1~H12345_GB7VLS 00800kkkkkkkkllllllllmmmmmm etc etc
  1GB7TLH>NP2>$$MAIL <UI C>
  1~H12345_GB7VLS 01000nnnnnnnnooooooppppppp etc etc

  by Derek Koopman, G1TLH
  from Connect International via Hank Greeb, N8XX             page   6
  af
   CONNECTIONLESS MAIL PROTOCOL AND MORE


  1GB7TLH>NP2>$$MAIL <UI C>
  1~H12345_GB7VLS 01200qqqqqqqqrrrrrrsssssss etc etc
  1GB7TLH>NP2>$$MAIL <UI C>
  1~E12345_GB7VLS 01200

  1I then might receive

  1G4RQN>GB7TLH <UI C>
  1~R12345_GB7VLS 00400/200,1000/200
  1GB7RWN>NP2>GB7TLH> <UI C>
  1~H12345_GB7VLS 00200/400
  1GB7LDI>NP2>GB7TLH <UI C>
  1~H12345_GB7VLS 00000/0,1000/200

  1This means that the need to resend packets 200, 400 and 100
  1and also 00000/0 is special. The station either has not
  1heard the header or has woken up in the middle of this
  1exchange and wants to catch up. 00000/0 will cause resending
  1the header packet. It may be worth sending it at the start
  1of an exchange in the first transmission of the message as a
  1`noise' packet that causes the channel to be `grabbed' for
  1this exchange.


  1So I send

  1GB7TLH>NP2>$$MAIL <UI C>
  1~H12345_GB7VLS 00000xxxxxxxxyyyyyyyy etc etc
  1GB7TLH>NP2>$$MAIL <UI C>
  1~H12345_GB7VLS 00200aaaabbbbbbccccccdddd etc etc
  1GB7TLH>NP2>$$MAIL <UI C>
  1~H12345_GB7VLS 00400eeeeeeeeffffffffggggg etc etc
  1GB7TLH>NP2>$$MAIL <UI C>
  1~H12345_GB7VLS 01000nnnnnnnnooooooppppppp etc etc
  1GB7TLH>NP2>$$MAIL <UI C>
  1GB7TLH>NP2>$$MAIL <UI C>:
  1~H12345_GB7VLS 01200SB ALL @ GBR < G9ABC FRED BOGGS IS LICENSED

  1As you will note, these need not be in any particular order,
  1thus, should be slotted in the appropriate place.

  1I may then receive

  1G4RQN>GB7TLH <UI C>
  1~R12345_GB7VLS 00400/200,1000/200

  1Because there is only one packet to be sent, I send it twice
  1to make sure.

  1GB7TLH>NP2>$$MAIL <UI C>
  1~H12345_GB7VLS 00400eeeeeeeeffffffffggggg etc etc
  1GB7TLH>NP2>$$MAIL <UI C>
  1~H12345_GB7VLS 00400eeeeeeeeffffffffggggg etc etc


  by Derek Koopman, G1TLH
  from Connect International via Hank Greeb, N8XX             page   7
  af
   CONNECTIONLESS MAIL PROTOCOL AND MORE


  1I now wait 5 to 7 seconds to see if there are any more. If
  1not, I continue with the next one or shut up if there are no
  1more.


  4.        Problems and comments

  1Now there is a potential problem here in that I might
  1receive a delayed request for a packet from the previous
  1message. Two strategies might be used to cope with this.
  1Either note the request and ignore it for the time being or
  1keep the previous message file open and satisfy the request
  1among the rest of the current message. If the first method
  1is used, the current message is run out and the packet(s)
  1from the previous message are then sent.

  1The reader will note that now three stations have obtained
  1the six packet bulletin at a cost of 11 information packets
  1from the originating station including retries. The actual
  1level of retries is probably optimistic, but even on a dead,
  1quiet channel, you would require 18 packets to be sent to do
  1the same job without retries.

  1I think it likely that each originating station will have a
  1list of people it is prepared to satisfy requests from to
  1cope with lift conditions, but it may be possible to have a
  1two-tier system in which a distant or unknown station can
  1receive service, but only if a reasonable number of packets
  1seem to be getting through, eg, locals may be allowed 10
  1retries but unknown stations only 3. After all, if
  1conditions are that good they should be utilized.

  1This is preliminary, any comments, suggestions, etc would be
  1gratefully received.


  by Derek Koopman, G1TLH
  from Connect International via Hank Greeb, N8XX             page   8

 Message handled by User Agent v1.1 in SMTP-FWD