X-Git-Url: http://scm.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=html%2Fnewprot.html;h=1bb84fe237ba78ed4528e3097ba45f77ee01bbff;hb=1fd948e7dfd70949e959dd0a633d4e5b762d07e0;hp=2b8c689ac5653be4d7816485e0a0ebf9289bf227;hpb=e2a526c549194e5b36ed7dd3617c5fb5fbbc0f43;p=spider.git diff --git a/html/newprot.html b/html/newprot.html index 2b8c689a..1bb84fe2 100644 --- a/html/newprot.html +++ b/html/newprot.html @@ -32,7 +32,8 @@ become stretched to beyond breaking point. Some attempts have been made to extend it, but none have done what is actually required: which is to throw it away completely and start from scratch.
-This is an attempt at starting again.
+This is an attempt at starting again. In fit of originality I am calling +it "New Protocol" or "NP" for short
The callsign of the user from which this sentence originally come - came from. It is a <callsign>.
-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.
+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.
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 @@ -141,29 +141,69 @@ digits> of the checksum itself. The purpose of the checksum is to check that no intermediate node has changed the sentence. It is assumed that the underlying transport mechanisms will deal with communications errors.
-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.
+All sentences shall have an <origin> and a <destination> +number. The <destination> can be empty which implies that this sentence +is to be broadcast.
So the generic form of a sentence is:-
- DX99|<origin>|<destination>|<serial>|...|<cs>+ QX99|<destination>|<origin>|...|<cs>
Some examples:-
--DX01|GB7TLH||0|
++ QX01|GB7TLH|GB7DJK|1|DXSpider:1.48:53.287|90001FFF|5234FE12|DE450A30|F4+ +
+ QX01|GB7DJK|GB7TLH|1|DXSpider:1.49:60.45|90002010|AD412458|4532DA56|A1
+ QX11||GB7TLH|1|G1TLH|FR0G|164563|14001.1|Easy|53
+ QX10||GB7TLH|2|G1TLH|SYSOP|GB7TLH rebooting|4A
Some fields are split further into subfields. The separator character +shall be ' :' .
+ +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).
+ + + +Initialisation
+ +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:-
+ +QX01|<destination>|<origin>|<protocol +version>|<software +info>|<time>|<random>|<challange>|<cs>
+ +All NP nodes shall use a cryptographic 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.
+ +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.
+ +Each sentence that uses a challenge shall include some random element of +at least 8 characters. The <time> field (if included) is not +sufficient!
+ +Getting back to the initialisation sentence
Copyright © 2001 by Dirk Koopman G1TLH. All Rights Reserved