extend it, but none have done what is actually required: which is to throw it
away completely and start from scratch.</p>
-<p>This is an attempt at starting again.</p>
+<p>This is an attempt at starting again. In fit of originality I am calling
+it "New Protocol" or "NP" for short</p>
<h3>Design Criteria</h3>
<ul>
<dd>The callsign of a user to which this sentence is directed. It is a
<callsign> or empty.</dd>
<dt><fromuser></dt>
- <dd><p>The callsign of the user from which this sentence originally come
- came from. It is a <callsign>.</p>
- </dd>
+ <dd>The callsign of the user from which this sentence originally come
+ came from. It is a <callsign>.</dd>
<dt><serial></dt>
<dd>The serial number of this sentence. It is a number between 0 and
9999.</dd>
<p></p>
-<p>Each protocol line is separate and distinct. This is a "datagram" style
-protocol. Each protocol line is called a "sentence" and begins with the
-string "DX" in upper case, followed by two digits. The sentence is terminated
-by a <cr> or a <lf> character or both. Internally, the
-terminating characters should be discarded completely and the sentence
-processed without.</p>
+<p>Each protocol line is separate and distinct and is called a "sentence".
+This is a "datagram" style protocol. Each protocol line is called a
+"sentence" and begins with the string "QX" in upper case, followed by two
+digits. The sentence is terminated by a <cr> or a <lf> character
+or both. Internally, the terminating characters should be discarded
+completely and the sentence processed without.</p>
<p>The character set used shall be ISO-Latin-1, with only the characters 0x20
-> 0x7e permitted within a sentence. All other characters shall be "HTML
that no intermediate node has changed the sentence. It is assumed that the
underlying transport mechanisms will deal with communications errors.</p>
-<p>All sentences shall have an <origin>, a <destination> and a
-<serial> number. The <destination> can be empty which implies
-that this sentence is to be broadcast. The <serial> number is a global
-number, which is used for all sentences originating at a node, that is
-incremented modulo 10000, and is used to determine duplicate or out of date
-sentences.</p>
+<p>All sentences shall have an <origin> and a <destination>
+number. The <destination> can be empty which implies that this sentence
+is to be broadcast. </p>
<p>So the generic form of a sentence is:-</p>
<p></p>
<blockquote class="code">
- DX99|<origin>|<destination>|<serial>|...|<cs></blockquote>
+ QX99|<destination>|<origin>|...|<cs></blockquote>
<p></p>
<p>Some examples:-</p>
-<blockquote>
- <p class="code">DX01|GB7TLH||0|</p>
+<blockquote class="code">
+ QX01|GB7TLH|GB7DJK|1|DXSpider:1.48:53.287|90001FFF|5234FE12|DE450A30|F4<br>
+ QX01|GB7DJK|GB7TLH|1|DXSpider:1.49:60.45|90002010|AD412458|4532DA56|A1<br>
+ QX11||GB7TLH|1|G1TLH|FR0G|164563|14001.1|Easy|53<br>
+ QX10||GB7TLH|2|G1TLH|SYSOP|GB7TLH rebooting|4A<br>
</blockquote>
<p></p>
+
+<p>Some fields are split further into subfields. The separator character
+shall be ' :' .</p>
+
+<p>Some sentences will have serial numbers associated with them which
+functions both as a generation number and as an aid to deduplication. The
+particular usage for each type of sentence is discussed later, but the
+general form will be as a modulo 10000 number (0-9999).</p>
+
+<p></p>
+
+<h1>Initialisation</h1>
+
+<p>When a node wishes to speak NP it shall send a "QX01" initialisation
+sentence to the other node on connection. It does not wait, it connects and
+sends. Both sides of the connection send simultaniously and symetrically. The
+fields currently in this sentence are:-</p>
+
+<p><span class="code">QX01|<destination>|<origin>|<protocol
+version>|<software
+info>|<time>|<random>|<challange>|<cs></span> </p>
+
+<p>All NP nodes <span style="font-weight: bold">shall<span
+style="font-weight: normal"> use a cryptograph</span></span>ic challenge to
+determine that the node that they are talking to is correct. In this
+protocol, wherever a challenge is mandated, the challenge field will be the
+last field before the checksum and shall include the whole of the sentence
+upto that point as the "salt" to that challenge. </p>
+
+<p>Because we are not yet sufficiently paranoid to include full crytography,
+we will use the standard 32 bit CCITT CRC algorithm on a shared secret
+phrase, each side shall have a different phrase each known to both sides.
+Each connection shall have a different pair of phrases. Each phrase shall be
+at least 40 characters long.</p>
+
+<p>Each sentence that uses a challenge shall include some random element of
+at least 8 characters. The <time> field (if included) is not
+sufficient!</p>
+
+<p>Getting back to the initialisation sentence </p>
<hr>
<span class="copy">Copyright © 2001 by Dirk Koopman G1TLH. All Rights
Reserved</span>