home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / XGRP_000.LZH / NPTH.DOC next >
Text File  |  1991-08-24  |  11KB  |  274 lines

  1. (Preliminary version)
  2.  
  3.         A proposal for a 5-D control line for FTN echomail
  4.                      submitted by Mark Kimes
  5.  
  6.  
  7.  
  8. Current FTN echomail carries two primary types of control lines
  9. dedicated to trying to keep track of where a message has been.  One is
  10. the SEEN-BY and the other is the ^aPATH (ref. FTS-0004).  Both of these
  11. control lines are fatally flawed for use in today's Fidonet Technology
  12. Networks, or FTN.  They are only 2-D (two dimensional addressing, or net
  13. and node), while current addressing technology is 5-D (domain, zone,
  14. net, node and point).
  15.  
  16. The purpose of the proposed ^aNPTH line is to replace the ^aPATH line
  17. with a new, backward compatible 5-D control line that tracks every node
  18. that has processed a message.  This is, of course, the function the
  19. ^aPATH line had until addressing increased beyond 2-D, rendering ^aPATH
  20. useless.
  21.  
  22. What do I mean when I say the ^aPATH line is useless?  Let's assume
  23. there are two nodes, one in Fidonet and one in Dufusnet, with the 4-D
  24. address of 1:65500/1.0.  A ^aPATH entry for either of these nodes would
  25. be:
  26.  
  27.     65500/1
  28.  
  29. Which node is that?  For both nodes, one following the other, we'd have
  30.  
  31.     65500/1 1
  32.  
  33. Which node is which?
  34.  
  35. This same confusion results from two nodes in the same domain with
  36. identical net and node numbers but different zones.  Therefore, it is
  37. not safe to use ^aPATH lines to see if a message you've received has
  38. been on your system before, or a system to which you're about to send
  39. the message. (Note that 2-D SEEN-BYs suffer from this same
  40. unreliability, but SEEN-BYs are of such marginal usefulness that they
  41. should be eliminated, except for tiny seenbys for backward compatibility
  42. (which should be ignored), not upgraded.) Moreover, when a dupe loop
  43. arises, as they inevitably do due to faulty topology (read: operator
  44. error), the 2-D nature of ^aPATH lines makes it difficult to examine the
  45. topology map (which is what a ^aPATH line is supposed to be used for)
  46. without making many guesses.  This situation will only worsen as more
  47. and more zones duplicate net numbers extant in other zones, and domains
  48. duplicate zone and net numbers of other domains.  There is nothing
  49. stopping these other zones and domains from doing so, and they should
  50. not have to stop.  We need to fix our control information instead.
  51.  
  52. ^aNPTH can usher in a new "era" of networking using Fidonet technology.
  53. It can allow messages to move freely between zones and domains without
  54. losing the value of either the topology map or dupe elimination.  There
  55. are likely to be many other side benefits, such as tracking down domain
  56. or zone gates from the ^aNPTH information.
  57.  
  58. ^aNPTH will allow many artificial restrictions on zone/domain gating to
  59. be removed.  For instance, there will be no need to worry about node
  60. numbers from foreign domains appearing in echomail origin lines (or
  61. origin lines themselves, for that matter).  Points can forward mail just
  62. like "regular" nodes and still be listed in the topology map.  Network
  63. software programmers won't have to worry about where to send a netmail
  64. reply when the ^aMSGID entry is not an FTN address and the FTN domain
  65. name for the foreign net is not obvious from the address portion of the
  66. ^aMSGID.  Dupe producers can be quickly and accurately pinpointed,
  67. reducing tensions between domains.
  68.  
  69.  
  70.  
  71. So much for reasons for existence and benefits.  Here's what it is and
  72. isn't:
  73.  
  74. ^aNPTH does not change the format of a packet or the packed message.
  75. Reference FTS-0001 for more information on the transport layer.
  76.  
  77.  
  78. ^aNPTH is recommended, but not required, for new echomail processors,
  79. particularly those which serve as zone/domain gates.
  80.  
  81.  
  82. ^aNPTH lines consist of the following:
  83.  
  84.     1)  The tag "^aNPTH: " (where the ^a represents ASCII code 1). Note
  85.         that ^aNPTH is followed by a colon since FTS-0001 says that it
  86.         should be, although none of FTS-0001's examples are.
  87.  
  88.     2)  One or more 5-D FTN addresses consisting of domain, zone,
  89.         net, node and point (if non-zero) in the format:
  90.  
  91.             Domain#zone:net/node.point
  92.  
  93.  
  94. Control lines should be limited to 79 characters or less per line for
  95. esthethic and obliquely technical reasons.  Addresses are "sticky,"
  96. which is to say that information duplicated top-down by the previous
  97. entry should not be repeated.  For instance, if the first entry's
  98. address is 1:380/16.0@Fidonet and the second is 1:380/100.0@Fidonet, the
  99. ^aNPTH line would be:
  100.  
  101.     ^aNPTH: Fidonet#1:380/16 100
  102.  
  103. If we add third and fourth nodes with the addresses 1:380/100@Dufusnet
  104. and 1:380/100.1@Dufusnet, the line becomes:
  105.  
  106.     ^aNPTH: Fidonet#1:380/16 100 Dufusnet#1:380/100 .1
  107.  
  108. This "stickiness" prevents ^aNPTH lines from becoming too large (which
  109. they surely would without it).  Other examples are given later on if
  110. you're still confused.
  111.  
  112.  
  113.  
  114. When a new message is exported, the ^aNPTH line should be prepended to
  115. the top of the message body with the address of the exporting node.  One
  116. address per node, please.
  117.  
  118. When a message is forwarded, any existing ^aPATH line should be merged
  119. to any existing ^aNPTH line (or, if there is no existing ^aNPTH line,
  120. one should be created), and then the ^aPATH line should be discarded.
  121. Since ^aPATH is 2-D you'll have to guess at the domain and zone portions
  122. of the addresses in the ^aPATH line (assume point is always zero).  For
  123. messages with existing ^aNPTH lines, assume the zone and domain have not
  124. changed.  For messages without existing ^aNPTH lines, assume your domain
  125. and zone unless you have knowledge of what the appropriate domain and
  126. zone are.  After assuring that the ^aNPTH line is up to date, add your
  127. exporting FTN address.  By doing this, we can be sure that once zone and
  128. domain gating software utilizes ^aNPTH we will have valid topology maps
  129. even if intermediate nodes do not upgrade (with the possible exception
  130. of points, but points aren't supposed to be forwarding echomail under
  131. the existing system precisely because they're "untraceable.").
  132.  
  133. Remember, ^aNPTH goes at the top of the message body, not the bottom.
  134.  
  135. Like ^aPATH, ^aNPTH only lists systems actually processing a message.
  136. It is the set of sending nodes, and does not include the set of sent-to
  137. nodes.  Like ^aPATH, ^aNPTH lines are specifically NOT sorted.
  138.  
  139. ^aNPTH lines should NEVER be stripped from a message that is or may be
  140. forwarded.
  141.  
  142. Note that it is silly to expect ^aNPTH to contain addresses of foreign
  143. (non-FTN) network nodes; they play by their own set of rules.  Hopefully
  144. they will preserve our ^aNPTH information and not muck with it.
  145.  
  146.  
  147.  
  148. Following are definitions of the parts of an FTN address as used in
  149. a ^aNPTH line:
  150.  
  151.     Domain) A domain is an alphanumeric [A-Z,0-9] series of ASCII
  152.             characters, from one to eight characters long.  Domain names
  153.             must begin with an alphabetic character.  They are case
  154.             insensitive. Note that a domain name as used in NPTH is not
  155.             necessarily the same as a domain used on some other network.
  156.             For a common example, "Fidonet" is a valid ^aNPTH domain;
  157.             "Fidonet.org" is not, as it is too long and contains a
  158.             non-alphanumeric character (the period).  Domain names
  159.             should be treated case-insensitively.
  160.  
  161.     Zone)   A zone is a two-byte integer value (represented as unsigned
  162.             decimal for ^aNPTH usage).  Valid values range from 1 to
  163.             65530 (five values are reserved for possibly strange FTSC
  164.             uses).
  165.  
  166.     Net)    A net is a two-byte integer value as for Zone above.
  167.  
  168.     Node)   A node is a two-byte integer value as for Zone above, except
  169.             that nodes may be numbered 0.  Node 0 rarely shows up in
  170.             echomail, though, since it's usually reserved for a net's
  171.             coordinator and is used for "business" only.
  172.  
  173.     Point)  A point is a two-byte integer value as for Node above.
  174.             Remember, point shouldn't be listed if it's 0 as 0 is
  175.             always assumed for the point field if it's missing.
  176.  
  177.  
  178. About backward compatibility:  since ^aNPTH replaces ^aPATH, you might
  179. think that the information that older processors expect, being
  180. "missing," might cause problems.  This is incorrect.  Remember that the
  181. ^aPATH line is optional, and only broken software would crash due to its
  182. absence.  The ^aPATH lines only possible use at this time, due to its
  183. 2-D nature and the fact that it is not stripped at domain and zone
  184. gates, as are SEEN-BYs, is as a human-only form of information.  ^aNPTH
  185. serves this purpose (as well as others), and does it better.  Nothing
  186. breaks, therefore you have backward compatibility.
  187.  
  188.  
  189.  
  190. ^aPATH vs. ^aNPTH examples.  Note that in all but example #2 the ^aPATH
  191. line is not useable for dupe control (and since ^aPATH is 2-D, you
  192. couldn't even be sure that the addresses in the ^aPATH lines of example
  193. #2 were useable).  This should put an end to the "the control lines will
  194. be too long" argument as well as give you a feel for how ^aNPTH can
  195. allow easy, seamless interdomain and interzone messaging.  It also
  196. points out rather handily how ^aPATH can quickly become hopelessly
  197. confused due to lack of full address information, and gives you a few
  198. more illustrations for clarity.
  199.  
  200.  
  201. Example #1:
  202.  
  203. Route: (lots of zone traversal)
  204. 1:1/1@Fidonet -> 1:1/100@Fidonet -> 1:2/100@Fidonet -> 1:2/1000@Fidonet ->
  205. 1:2/1000.50@Fidonet -> 2:1/1@Fidonet -> 2:1/2@Fidonet -> 3:1/1@Fidonet ->
  206. 3:1/100@Fidonet -> 3:2/1@Fidonet -> 3:2/2@Fidonet
  207.  
  208. ^aPATH 1/1 100 2/100 1000 1/1 2 1 100 2/1 2
  209.  
  210. ^aNPTH: Fidonet#1:1/1 100 2/100 1000 .50 2:1/1 2 3:1/1 100 2/1 2
  211.  
  212.  
  213. Example #2:
  214.  
  215. Route: (The addresses in the following are all in Fidonet zone 1
  216.         for this example)
  217. 1/1 1/2 1/3 1/4 1/5 1/6 1/7 1/8 1/9 1/10 1/11 1/12 1/13 1/14 1/15
  218. 2/1 2/2 2/3 2/4 2/5 2/6 2/7 2/8 2/9 2/10 2/11 2/12 2/13 2/14 2/15
  219.  
  220. ^aPATH 1/1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2/1 2 3 4 5 6 7 8 9
  221. ^aPATH 10 11 12 13 14 15
  222.  
  223. ^aNPTH: Fidonet#1:1/1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2/1 2 3 4
  224. ^aNPTH: 5 6 7 8 9 10 11 12 13 14 15
  225.  
  226.  
  227. Example #3:
  228.  
  229. Route: (lots of domain traversal; "worst" case)
  230. 1:1/1@Fidonet ->1:1/1@Fidonet -> 2:1/1@Fidonet -> 69:69/1@Dufusnet ->
  231. 69:69/69@Dufusnet -> 1:1/1@Somenet -> 2:1/1@Somenet -> 1:1/1@Othernet ->
  232. 2:1/1@Othernet -> 1:1/1@Thatnet -> 2:1/1@Thatnet -> 1:1/1@Thisnet ->
  233. 2:1/1@Thisnet -> 3:1/2@Fidonet
  234.  
  235. ^aPATH 1/1 1 69/1 69 1/1 1 1 1 1 1 1 1 2
  236.  
  237. ^aNPTH: Fidonet#1:1/1.1 1 2:1/1 Dufusnet#69:69/1 69 Somenet#1:1/1 2:1/1
  238. ^aNPTH: Othernet#1:1/1 2:1/1 Thatnet#1:1/1 2:1/1 Thisnet#1:1/1 2:1/1
  239. ^aNPTH: Fidonet#3:1/2
  240.  
  241.  
  242.  
  243. Finally, an example of how to merge existing ^aPATH lines to an existing
  244. ^aNPTH:
  245.  
  246. Existing message control lines:
  247.  
  248. ^aNPTH: Fidonet#1:1/1
  249. ...
  250. ^aPATH 1/2 3 4/1
  251.  
  252. Message control lines after being processed by ^aNPTH-aware node
  253. 1:5/1.0@Fidonet:
  254.  
  255. ^aNPTH: Fidonet#1:1/1 2 3 4/1 5/1
  256.  
  257.  
  258.  
  259.                                 -o-
  260.  
  261.  
  262.     Credits:  Fido and Fidonet are trademarks of Tom Jennings/Fido
  263.                   Software.
  264.               Jeff Rush created echomail.
  265.               Bob Hartman wrote FTS-0004 (it's the Confmail doc).
  266.               Randy Bush is currently maintaining FTS-0001.
  267.  
  268.  
  269.  
  270.  
  271. Mark Kimes
  272. 1:380/16.0@Fidonet
  273. (318)222-3455 data
  274.