home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / os2nosv4.zip / intronos.inf (.txt) < prev    next >
OS/2 Help File  |  1993-01-01  |  55KB  |  1,455 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Copyright ΓòÉΓòÉΓòÉ
  3.  
  4. Getting Started with TCP/IP on Packet Radio 
  5.  
  6. by John Ackermann, AG9V 
  7.  
  8. Miami Valley FM Association 
  9.  
  10. Dayton, Ohio 
  11.  
  12. 20 April 1992 
  13.  
  14. Copyright 1992 by John R. Ackermann, Jr. This document may be freely 
  15. distributed in unaltered form for non- commercial use only, provided this 
  16. copyright notice is included. 
  17.  
  18.  
  19. ΓòÉΓòÉΓòÉ 2. Introduction ΓòÉΓòÉΓòÉ
  20.  
  21. This document is intended to help hams with some experience in packet radio get 
  22. started with the TCP/IP software written by KA9Q and others.  It is not 
  23. intended to take the place of the software's reference manual, but rather to 
  24. provide a quick-and-dirty introduction to the capabilities of TCP/IP and the 
  25. mysteries of installing and using the software. 
  26.  
  27. There are several different versions of the KA9Q software floating around.  It 
  28. was originally written for MS-DOS computers, but has been ported to Macintosh, 
  29. Amiga, Atari and UNIX systems.  The original program was called "NET" and its 
  30. last formal version was issued in April, 1989.  If someone talks about 
  31. "890421.1 NET," that's what they're referring to. 
  32.  
  33. Since 1989, work has concentrated on a rewritten program called "NOS" (for 
  34. Network Operating System, though confusingly the executable program for PCs is 
  35. usually still called "NET.EXE").  NOS offers many new features that make using 
  36. TCP/IP much more effective; you should use it instead of NET.  However, NOS is 
  37. a growing and changing creature; since there are several different versions, 
  38. and they are being updated rapidly, I can't tell you precisely where to find 
  39. the latest, greatest version.  Your best bet is to check with a local user.  If 
  40. that doesn't work, there are several telephone BBS systems that carry various 
  41. flavors of NOS: 
  42.  
  43. N8EMR's Ham BBS (614) 895-2553 
  44.  
  45. ChowdaNet    (401) 331-0334 
  46.  
  47. WB3FFV      (301) 335-0858 
  48.  
  49. The version I'm using, and which is reflected in this document, is PA0GRI's 
  50. adaptation of NOS version 061891, as modified and distributed by N1BEE and 
  51. available as "GRINOS" from the ChowdaNet BBS.  I try not to dwell on features 
  52. that are specific to this version, but if something I say doesn't seem to match 
  53. your software, that's probably why. 
  54.  
  55. A last note before plunging in -- I said it before, and I'll say it again: 
  56. this document barely scratches the surface of NOS.  Nearly every command 
  57. described here has options or parameters that I'm ignoring.  My goal is to give 
  58. you a feel for what TCP/IP does, and to get you on the air with NOS; to get 
  59. beyond the novice stage you need to look at the reference manual and experiment 
  60. with the software.  Appendix A includes a list of organizations and individuals 
  61. that can provide further information about TCP/IP and amateur radio. 
  62.  
  63.  
  64. ΓòÉΓòÉΓòÉ 3. TCP/IP and Ham Radio ΓòÉΓòÉΓòÉ
  65.  
  66. TCP/IP is a set of communication protocols that have become a standard in the 
  67. computer networking world.  It is designed to link different kinds of computer 
  68. systems together over dissimilar networks.  TCP/IP software runs on nearly 
  69. every kind of computer available, from IBM mainframes to PCs, Macs, Amigas, and 
  70. Ataris. The KA9Q software (from now on, I'll call it "NOS") is special because 
  71. it includes the features necessary to run TCP/IP over ham packet radio. 
  72.  
  73. The TCP/IP protocol suite allows different kinds of computers to talk to one 
  74. another across networks.  The services it provides include terminal sessions, 
  75. file transfer, electronic mail, and data routing services.  Computers running 
  76. TCP/IP (referred to as "hosts") can run some or all of these applications 
  77. simultaneously; it's entirely possible to sit at a PC computer running NOS and 
  78. carry on a keyboard-to-keyboard chat with one station, while another retrieves 
  79. a file from your hard disk and you send electronic mail to a third. 
  80.  
  81. It's also comforting to know that when you run TCP/IP, you don't give up the 
  82. ability to carry on normal packet communications.  You can use NOS just like a 
  83. terminal program to establish connections with your local BBS or to chat with 
  84. friends who don't run NOS (yet). 
  85.  
  86. If you've looked at the size of the NOS documentation, you're probably asking 
  87. yourself what the benefit is of mastering this fairly complex stuff.  Well, NOS 
  88. has several features that improve on regular packet radio.  It has much more 
  89. sophisticated file transfer and electronic mail capabilities than our present 
  90. PBBS systems (and it's possible to feed PBBS messages into NOS in a way that 
  91. makes it much easier to use them).  It supports multiple simultaneous 
  92. connections.  It has new and better transport methods that improve the 
  93. reliability and throughput of slow and congested channels. 
  94.  
  95. NOS also has the ability to route transmissions to distant stations without the 
  96. user needing to know every hop along the way; all you need to do is get your 
  97. data to a "gateway" station that knows how to move it one hop closer to its 
  98. destination.  New work being done with NOS promises dynamic routing that 
  99. automatically adjusts to changes in the network. 
  100.  
  101. And, since it is directly adapted from the de facto standard system of 
  102. interconnecting computers, NOS offers the possibility of sophisticated services 
  103. far beyond anything available on regular packet radio.  For example, in some 
  104. areas ham TCP/IP users can log into multi-user UNIX computer systems and run 
  105. applications as if they were directly connected to those machines. 
  106.  
  107.  
  108. ΓòÉΓòÉΓòÉ 4. What is TCP/IP? ΓòÉΓòÉΓòÉ
  109.  
  110. As mentioned above, TCP/IP is actually a set of protocols for the transfer of 
  111. data across networks of computers.  Two of these protocols underlie most of the 
  112. others, and they give the set its popular name: 
  113.  
  114. TCP Transport Control Protocol, a "reliable stream service" (which is a fancy 
  115.           way of saying it makes sure that all the data sent to a remote host 
  116.           actually gets there), and 
  117.  
  118. IP  Internet Protocol, which sets the basic rules for formatting packets of 
  119.           data to go out over a network. TCP rides on top of IP. 
  120.  
  121. Now that you finally know what "TCP/IP" stands for, there are a few concepts 
  122. that are critical because they address a basic problem in any communications 
  123. system -- identifying the parties to the conversation.  Simply using our ham 
  124. callsigns to address TCP/IP packets doesn't work for two reasons.  First, the 
  125. protocols work across many different networks, and have to have a consistent 
  126. address scheme.  Second, and as important, ham callsigns don't contain enough 
  127. information to allow TCP/IP's sophisticated routing mechanisms to work. 
  128.  
  129.  
  130. ΓòÉΓòÉΓòÉ 5. Names and Addresses ΓòÉΓòÉΓòÉ
  131.  
  132. The first important concept is the "IP Address."  Since these protocols are 
  133. used on lots of different computers, it is necessary to use an addressing 
  134. system that works with all of them, that provides adequate routing information, 
  135. and that doesn't take up a lot of space.  The answer is to build addresses out 
  136. of a four byte sequence of integers, with each byte providing information about 
  137. the network and subnetwork(s) to which a host belongs. 
  138.  
  139. IP addresses are "hierarchical" because the four bytes have decreasing 
  140. significance from left to right.  By looking at the leftmost byte(s) we can 
  141. learn how to route a transmission to the host represented by the rightmost 
  142. byte(s).  We usually print these addresses using the numeric value of each 
  143. byte, separated by a period, such as [44.70.12.34].  This is known as "dotted 
  144. notation."  The square brackets aren't strictly necessary, but they are 
  145. convenient to set off IP addresses; I'll use them that way in this document. 
  146.  
  147. I won't go into all the semantics of hierarchical addressing here, but as an 
  148. example the address [44.70.12.34] breaks down as: 
  149.  
  150. 44. The network assigned to amateur radio TCP/IP. 
  151.  
  152. 70. The subnetwork for Ohio. 
  153.  
  154. 12. The Dayton/Cincinnati subnetwork. 
  155.  
  156. 34  A specific system address within that area. 
  157.  
  158. IP addresses are assigned by coordinators who derive their authority from a 
  159. central registry.  The coordinator for the ham radio net is Brian Kantor, 
  160. WB6CYT.  He has delegated authority to assign addresses to various state and 
  161. national coordinators.  The folks in Appendix A can help you find your local 
  162. coordinator. 
  163.  
  164. The second important concept is the "hostname."  Obviously, IP addresses aren't 
  165. very intuitive.  English-like hostnames make remembering addresses much easier, 
  166. and TCP/IP programs, including NOS, have means (discussed below) to map between 
  167. IP addresses and hostnames.  A "host" is any computer running TCP/IP; even when 
  168. you're using services from another computer, your system is still a host.  When 
  169. we talk about a "remote host," we're talking about a machine that you're 
  170. communicating with via TCP/IP. 
  171.  
  172. The convention in ham radio TCP/IP is to use your callsign as your hostname. 
  173. To help reduce confusion, we usually print hostnames in lower case, and 
  174. callsigns in capital letters -- my hostname is "ag9v," and my call is "AG9V" 
  175. (though NOS isn't case sensitive and won't care if you don't do it this way). 
  176.  
  177. Closely related to the hostname is the "domain name."  A "domain" is a group of 
  178. machines that are logically (though not necessarily physically) connected 
  179. together.  Domain names are like IP addresses; periods separate parts of the 
  180. name, with each part representing a different level in the domain hierarchy. 
  181. But the domain name is ordered in reverse -- its highest-level portion is at 
  182. the right, the opposite of IP addresses. 
  183.  
  184. The ham network's domain is "ampr.org"; "org" (short for "organizations") is 
  185. the top level domain, and "ampr" (for AMateur Packet Radio) is the second level 
  186. domain, containing all ham TCP/IP hosts. 
  187.  
  188. When you combine a hostname with a domain name, you get something like 
  189. "ag9v.ampr.org."  This is called a "Fully Qualified Domain Name" ("FQDN" -- 
  190. knowing this acronym allows you to sound like a real expert).  If a host has 
  191. multiple users, we can add the user's login name at the beginning of the 
  192. address, separated from the FQDN by a "@" character.  This combination is 
  193. commonly known as an "Internet address" (the "Internet" is the general term for 
  194. all the TCP/IP hosts that are interconnected) and is the address form used for 
  195. most electronic mail in the real world. For example, if there is a user "jra" 
  196. at ag9v, "jra@ag9v.ampr.org" would be that user's full Internet address. 
  197.  
  198. There's one last twist.  Some services (such as Domain Name Service, discussed 
  199. below) need to know whether an address they are processing is in fact an FQDN. 
  200. To do so, they look for a trailing period at the end of the domain name.  Some 
  201. versions of NOS ignore this issue, but the PA0GRI versions (such as GRINOS) 
  202. insist that you "anchor" all domain names with a period at the end of the name. 
  203. In other words, GRINOS will barf if you issue the command "hostname 
  204. ag9v.ampr.org" but "hostname ag9v.ampr.org." will make it happy. 
  205.  
  206. This may seem like an overly complicated scheme to simply allow two hams to 
  207. talk to each other, but we use it because the ham radio TCP/IP network can be 
  208. tied to the worldwide TCP/IP network in a number of different ways, and using 
  209. the full set of TCP/IP address conventions makes it possible for traffic to 
  210. flow between the ham network and the real world. 
  211.  
  212. Leaving aside legal issues about third-party traffic, there's no reason, for 
  213. example, why electronic mail can't be automatically routed through a "gateway" 
  214. (a computer that interconnects two or more networks) between a ham TCP/IP user 
  215. and a non-ham who has access to the Internet.  In fact, this service already 
  216. exists in some areas. 
  217.  
  218. The good news is that for traffic within the ham network, we only need to worry 
  219. about hostnames, and NOS's "domain suffix" command will take care of adding the 
  220. "ampr.org" extension for us; we only need to deal with the full details of 
  221. addressing if we want to go outside the ham radio network. 
  222.  
  223.  
  224. ΓòÉΓòÉΓòÉ 6. TCP/IP Services ΓòÉΓòÉΓòÉ
  225.  
  226. Now that we have those boring basics out of the way, the protocols that use 
  227. TCP/IP to provide real, useful services include: 
  228.  
  229. TELNET  The terminal emulation program.  In "real" networks, telnet lets a user 
  230.           at one host remotely access a remote host, just as if he was on a 
  231.           terminal directly connected to that computer.  In NOS, the telnet 
  232.           function usually connects you to a remote host's mailbox, which acts 
  233.           very much like a personal PBBS.  The NOS telnet command does allow 
  234.           you to remotely login to a host that supports that function; in some 
  235.           areas UNIX computers connected to the ham TCP/IP network provide that 
  236.           service. 
  237.  
  238. FTP   File Transfer Protocol.  A means of transferring both ASCII (text) and 
  239.           binary (program, data, or compressed) files between hosts. 
  240.  
  241. SMTP   Simple Mail Transfer Protocol.  A (mostly) invisible way of moving 
  242.           electronic mail from one host to another.  If you create a message on 
  243.           your computer (using the BM program, discussed below), SMTP will 
  244.           automatically attempt to transfer it to the destination computer. 
  245.  
  246. POP   Post Office Protocol.  SMTP is neat, but it's really designed to work 
  247.           with hosts that are available full time. Most ham TCP/IP stations 
  248.           aren't.  POP is designed for them; it allows incoming mail to be 
  249.           stored at a host that acts as a "mail server;" when you come on the 
  250.           air, your system automatically asks the server to send you your mail. 
  251.  
  252. PING   Packet InterNet Groper.  A diagnostic that sends a packet to a specified 
  253.           host; if the host is accessible to you and on the air, it responds 
  254.           with another packet.  PING tells you how long the round trip took. 
  255.  
  256. FINGER  A way of finding out information about the users at a host.  The finger 
  257.           command can simply list all the users at a host, or spit out 
  258.           information (like the "brag tape" of RTTY days) about a specific 
  259.           user. 
  260.  
  261. ARP   Address Resolution Protocol.  IP addresses need to be matched with the 
  262.           correct hardware address (in our case, ham callsign) to allow packets 
  263.           to be sent to their destination -- NOS doesn't know what callsign 
  264.           goes with a given IP address.  ARP does this by sending out a 
  265.           broadcast message when it needs to know the callsign that matches an 
  266.           address.  The remote host (if it's on the air) will answer and 
  267.           provide its hardware address. 
  268.  
  269. DNS   Domain Name Service.  Remembering IP addresses isn't easy.  NOS can use a 
  270.           file called "DOMAIN.TXT" to contain mappings between hostnames and IP 
  271.           addresses, but that means you need to know the hostname and address 
  272.           of any station you want to contact. Alternatively, a remote host may 
  273.           agree to serve as a "domain name server" that NOS can query when it 
  274.           needs to know the address of a host.  Not all areas have a name 
  275.           server available to the ham community, but in those that do, life is 
  276.           a lot easier. 
  277.  
  278.  
  279. ΓòÉΓòÉΓòÉ 7. Installing NOS ΓòÉΓòÉΓòÉ
  280.  
  281. Frankly, there's no completely painless way to get NOS running on your 
  282. computer.  NOS is somewhat picky about the directories used for its files, and 
  283. there are a number of custom parameters that you must set to teach the program 
  284. about your environment and your network.  Those parameters are contained in a 
  285. configuration file that most versions of NOS call "AUTOEXEC.NET" (PA0GRI 
  286. versions use "AUTOEXEC.NOS;" our references to "AUTOEXEC.NET" mean whichever 
  287. name is appropriate). 
  288.  
  289.  
  290. ΓòÉΓòÉΓòÉ 7.1. Files and Directories ΓòÉΓòÉΓòÉ
  291.  
  292. You should create the following directories on your disk (NOS can work from 
  293. either a hard disk or a floppy; it's getting big enough, though, that working 
  294. from a 360K floppy can be tough): 
  295.  
  296. \spool        (holds NOS' working files) 
  297.  
  298. \spool\help     (help files for the mbox) 
  299.  
  300. \spool\mail     (mail messages go here) 
  301.  
  302. \spool\mqueue    (mail workfiles) 
  303.  
  304. \spool\rqueue    (incoming mail workfiles) 
  305.  
  306. \finger       (home for finger info files) 
  307.  
  308. \public       (file uploads/downloads) 
  309.  
  310. These files need to go in the root directory of your default disk (it is 
  311. possible to configure NOS to look for these files in other than the root 
  312. directory; see the reference manual for details): 
  313.  
  314. AUTOEXEC.NOS     (the NOS configuration file) 
  315.  
  316. FTPUSERS       (user ftp/mbox access) 
  317.  
  318. DOMAIN.TXT      (hostnames) 
  319.  
  320. BM.RC        (mail program configuration) 
  321.  
  322. ALIAS        (used by smtp and BM) 
  323.  
  324. NOS uses two executable files.  These can be installed anywhere on your file 
  325. path: 
  326.  
  327. PMNOS, NET.EXE, NOS.EXE, or GRINOS.EXE  (main executable) 
  328.  
  329. PMail or BM.EXE             (mailer program) 
  330. OS/2 note: PMNOS and PMail are designed somewhat differently. Installing these 
  331. programs is very straightforward. Open the template folder and drag out the 
  332. program template. Once you release the mouse button the program template will 
  333. open. Fill in the fully qualified path anme of the program, either PMNOS or 
  334. PMail. Dont forget to add the .exe at the end. 
  335.  
  336. Go to the Settings "page" and select minimize to desktop, This is important for 
  337. PMail. 
  338.  
  339. Go to the General "page" of the notebook and type in what you want to call the 
  340. icon. The default is Program, descriptive isnt it. 
  341.  
  342. Close the program icon. What I suggest at this point is to drag these icons 
  343. into the startup folder, under OS/2 System. This is important for PMail as 
  344. well. 
  345.  
  346. End of OS/2 specific note. 
  347.  
  348.  
  349. ΓòÉΓòÉΓòÉ 7.2. Setting up AUTOEXEC.NET ΓòÉΓòÉΓòÉ
  350.  
  351. Once the directories are created and the files copied, you need to edit the 
  352. AUTOEXEC.NET file with a text editor to customize it.  A sample file is 
  353. included as Appendix B.  Some of the things you'll have to put in the file are: 
  354.  
  355. Your hostname (usually your callsign in lower case): 
  356.  
  357.   hostname ag9v.ampr.org. 
  358.  
  359. Your IP address: 
  360.  
  361.   IP address [44.70.12.34] 
  362.  
  363. Your callsign (optionally including an SSID; local customs vary on   this): 
  364.  
  365.   ax25 mycall AG9V 
  366.  
  367. "attach" commands to tell NOS how to talk to your hardware. These can get quite 
  368. hairy; Appendix C has the details.  For a TNC on COM 1 at 4800 baud serial port 
  369. speed, use: 
  370.  
  371.   attach asy 0x3f8 4 ax25 ax0 1024 256 4800 
  372.  
  373. The "ax0" in the middle of the command is the "interface" name -- you use it to 
  374. identify this port to NOS when you set up routing commands and the like.  You 
  375. can use any (short) name you'd like, but the convention for COM ports is to use 
  376. ax0, ax1, etc. 
  377.  
  378. At least one routing command.  NOS needs to know where to send packets.  A 
  379. default route that sends all packets out the ax0 interface is: 
  380.  
  381.   route add default ax0 
  382.  
  383. If you have a gateway for packets going outside the local area, include a route 
  384. like: 
  385.  
  386.   route add [44.70.13.0]/24 ax0 ag9v 
  387.  
  388. This command would route packets addressed to any host with "44.70.13" as the 
  389. first three bytes of its address out the ax0 interface to ag9v, which 
  390. presumably knows how to get these packets to their destination.  The "/24" 
  391. means that the first 24 bits (three bytes) of the address are significant; NOS 
  392. will ignore the last byte when making routing decisions. 
  393.  
  394. If you have a domain name server, add a command near the beginning of your 
  395. configuration file identifying its IP address:   domain addserver [44.70.12.34] 
  396.  
  397. If you have a local mail server that knows how to route messages outside the 
  398. area (see the discussion of electronic mail, below), add a command identifying 
  399. it: 
  400.  
  401.   smtp gateway [44.70.12.34] 
  402.  
  403.  
  404. ΓòÉΓòÉΓòÉ 8. Storing Name/Address Matches in DOMAIN.TXT ΓòÉΓòÉΓòÉ
  405.  
  406. If you don't have a local domain name server (DNS), you'll need to create 
  407. "DOMAIN.TXT" in the root directory, with one entry for every hostname you want 
  408. to communicate with.  Appendix D shows how to set up this file.  If you don't 
  409. have an entry for a host in the file (or the name server doesn't know about 
  410. it), you can use the IP address instead of the hostname in NOS commands. 
  411.  
  412. If you're using DNS, NOS will save the hostname/address matches it gets from 
  413. the server in DOMAIN.TXT, so you'll find that file existing (and growing) even 
  414. if you didn't create it. 
  415.  
  416.  
  417. ΓòÉΓòÉΓòÉ 9. Giving the Finger ΓòÉΓòÉΓòÉ
  418.  
  419. If you want users to be able to learn about your station with the finger 
  420. command, you need to create a text file in the \finger directory called 
  421. <hostname>.txt (by the way, when we use angle brackets like this, it means this 
  422. is a value you'll need to insert yourself -- minus the angles -- based on your 
  423. own configuration). You can use any ASCII text editor to create the file; it 
  424. should contain basic info about your system.  Don't go overboard... one screen 
  425. of text is plenty. 
  426.  
  427. You can also create additional files with information about specific aspects of 
  428. your system.  For example, you might have a list of the files available for 
  429. downloading on your system in a finger file called "filelist.txt."  A remote 
  430. host who issues the command "finger filelist@<myhost>" will get that list. 
  431.  
  432.  
  433. ΓòÉΓòÉΓòÉ 10. Some Boring but Necessary Technical Stuff ΓòÉΓòÉΓòÉ
  434.  
  435. Before we move on to the good stuff about how to make NOS do magic, we need to 
  436. talk about three related commands that you may need to tweak depending on local 
  437. custom and the quality of the RF paths you're using.  Just as regular AX.25 
  438. uses the "paclen" command to limit the size of packets, TCP/IP has parameters 
  439. defining how much data is moved in one chunk.  In theory, the larger the 
  440. datagram (TCP/IP's term for a single block of data), the higher the efficiency, 
  441. because the protocol headers add a fixed amount of overhead; in larger 
  442. datagrams the overhead is a smaller percentage of the total data sent. 
  443.  
  444. However, some networks (such as NetRom) can't handle large datagrams in one 
  445. piece.  More importantly, the larger the datagram, the longer it takes to 
  446. transmit, and on a busy or flaky path, the greater the likelihood that 
  447. something will corrupt it along the way.  And, it takes longer to resend a 
  448. large packet than a small one, so the cost of retries is greater.  Because of 
  449. these factors, a fast network with clear channels and solid paths can get away 
  450. with sending much larger datagrams than a slow, unreliable one. 
  451.  
  452. NOS provides three parameters that deal with datagram sizes.  The most 
  453. important one is the "mtu" (the sixth value in the "attach asy" command 
  454. described above).  It is similar to paclen; it sets the largest packet, 
  455. including any headers, that can be sent on an interface.  Datagrams larger than 
  456. the mtu are fragmented into multiple pieces, which seriously reduces 
  457. efficiency.  Each interface has its own mtu, set as part of its attach command. 
  458.  
  459. For 1200 baud channels that are shared with other packet users, an mtu value of 
  460. 256 is reasonable; in fact, since that is the largest packet size most 
  461. non-TCP/IP ham networks (like digipeaters and NetRom) are designed to handle, 
  462. 256 is the largest mtu you should specify if any of your packets are going to 
  463. travel via such a node. 
  464.  
  465. Faster networks may use higher values.  For good-quality channels with fast 
  466. data rates (9600 baud or above), it may be reasonable to use an mtu ranging 
  467. from 512 to 1500 (which matches the standard mtu used by ethernet systems). 
  468.  
  469. The other two parameters that set datagram size are part of the TCP protocol. 
  470. "tcp mss" (maximum segment size) is the largest chunk of data that TCP will 
  471. send in a single frame.  Because the TCP and IP headers attached to each 
  472. datagram total 40 bytes, mss should be 40 bytes smaller than mtu; 216 is the 
  473. correct value for an mtu of 256. 
  474.  
  475. The "tcp window" parameter tells NOS how many datagrams it can have outstanding 
  476. at once -- if it is twice the value of mss, NOS can receive two datagrams 
  477. before sending an acknowledgment.  This parameter is analogous to the 
  478. "maxframe" parameter in AX.25.  A large window improves efficiency because, 
  479. among other things, multiple acknowledgments can be sent in a single packet. 
  480.  
  481. Although using a large window has major benefits on full duplex networks, on 
  482. typical ham networks best performance comes from smaller windows ranging from 
  483. one to three times the mss.  A good starting point is to set the window equal 
  484. to twice the value of mss (432 for an mss of 216). 
  485.  
  486. In summary, good starting points are 
  487.  
  488.  1200 baud, shared channel    9600 or faster, clear channel: 
  489.  
  490. mtu 256           mtu 1500 
  491.  
  492. tcp mss 216         tcp mss 1460 
  493.  
  494. tcp window 432        tcp window 2920 
  495.  
  496. Even more than in other parts of this manual, this discussion glosses over lots 
  497. of subtleties.  Throughput can be drastically affected by tuning these values, 
  498. and both experimentation and local consensus are necessary to come up with 
  499. settings that work well without stomping on other users of the channel. 
  500.  
  501.  
  502. ΓòÉΓòÉΓòÉ 11. Using NOS ΓòÉΓòÉΓòÉ
  503.  
  504. To run NOS, first make sure you have your TNC configured for "KISS" mode (see 
  505. Appendix F for details) and turned on.  Then, type NET, NOS, or GRINOS (as 
  506. appropriate).  In a few seconds, you should see a "net>" prompt.  Any error 
  507. messages that appear first probably indicate a problem with one or more 
  508. commands in your AUTOEXEC.NET file. 
  509.  
  510. When you see the prompt, NOS is in "command mode."  When you are communicating 
  511. with another host, NOS is in "converse mode."  To return to command mode from 
  512. converse mode, press the F10 function key (sometimes called the "escape" key, 
  513. but not to be confused with the "ESC" key on your keyboard).  All commands 
  514. typed at the NOS prompt need to be followed by the return key. 
  515.  
  516. Typing "?" in command mode will display a list of commands. Typing a command 
  517. name followed by ? will display the valid subcommands.  You can't really call 
  518. it a help system, but it's better than nothing. 
  519.  
  520. Some commands can be abbreviated to save typing; the degree of abbreviation 
  521. allowed depends on the command set of the NOS version you're using. 
  522. Experimentation is the best way to see what works and what doesn't.  One minor 
  523. annoyance in GRINOS is that commands are case sensitive -- "c ax0 n8acv" is 
  524. fine,  but "C ax0 n8acv" isn't.  It's safest to do all your NOS keyboarding in 
  525. lower case -- apart from case sensitive commands, in the Email world, typing in 
  526. all upper case is considered shouting! 
  527.  
  528. You can issue several commands from within NOS to deal with files and 
  529. directories.  "pwd" displays your current working directory, and "cd" allows 
  530. you to change directories.  "dir" displays files in the current directory. 
  531. "mkdir <dirname>" creates a new directory, and "rmdir <dirname>" removes one. 
  532. "delete <filename>" erases a file. 
  533.  
  534. You can also "shell out" to DOS from within NOS by entering either an 
  535. exclamation mark (!) or the command "shell."  To return to NOS, type "exit" at 
  536. the DOS prompt. 
  537.  
  538. From command mode, you can start a number of different types of sessions to 
  539. communicate with remote hosts.  Each session has its own display screen and you 
  540. can switch between a session and command mode, or between sessions.  The se 
  541. command displays the active sessions with identifying numbers.  To switch to a 
  542. session, you can type "se <session number>."  From command mode, you can return 
  543. to the current (most recently displayed) session by entering a carriage return. 
  544.  
  545. You can capture incoming data from the current session to a disk file by using 
  546. the "record <filename>" command, and you can read in a data file from disk with 
  547. the "upload <filename>" command. 
  548.  
  549. To close a session, press F10 to return to command mode and enter "close 
  550. <session number>."  If there's only one session open, you can just enter 
  551. "close."  You can also end the session by issuing the appropriate exit or quit 
  552. command at the remote host's prompt. 
  553.  
  554. The most common NOS session types are probably "telnet," its cousin "ttylink", 
  555. "ftp," and a regular packet "connect" (technically called an "ax25" session). 
  556. Telnet is used to "login" to a remote host, ttylink is a kind of telnet 
  557. specially designed for keyboard-to- keyboard communications, ftp handles file 
  558. transfers, and ax25 sessions allow you to carry on normal packet activity. 
  559. We'll talk about ax25 sessions first, since they give you a chance to test your 
  560. setup without having another TCP/IP station on the air. 
  561.  
  562.  
  563. ΓòÉΓòÉΓòÉ 11.1. AX.25 Mode ΓòÉΓòÉΓòÉ
  564.  
  565. The "connect" command simply lets you do normal packet radio stuff. 
  566. Establishing an ax25 connect through NOS is like using the standard TNC 
  567. commands with a few small differences.  First, since NOS can support several 
  568. interfaces, each with its own hardware, you need to tell NOS which one to use. 
  569.  
  570. So, to connect to N8ACV on interface ax0, enter "connect ax0 N8ACV."  Once you 
  571. get a "Connected" message, you'll be able to type to the station at the other 
  572. end just as you would with normal packet.  In addition to closing the session 
  573. as described above, you can exit an ax25 session by typing "disconnect" at the 
  574. command mode prompt.  (Just as with a TNC, these commands can be abbreviated; 
  575. just how few of the letters are necessary will depend on each implementation of 
  576. NOS and the commands it supports). 
  577.  
  578. The other minor difference between the NOS connect command and a regular TNC is 
  579. that the word "via" is not used when specifying digipeaters.  To connect to 
  580. N8ACV through N8KZA on interface ax0, you would enter "connect ax0 N8ACV 
  581. N8KZA." 
  582.  
  583.  
  584. ΓòÉΓòÉΓòÉ 11.2. Telnet ΓòÉΓòÉΓòÉ
  585.  
  586. The "telnet" command logs you in to a remote TCP/IP host; depending on the 
  587. capabilities of that host, you might find yourself chatting directly with the 
  588. user at the other end, connecting to the NOS mailbox, "mbox" (which acts very 
  589. much like a sophisticated personal PBBS), or getting a UNIX "login" prompt.  To 
  590. establish a telnet session, enter "telnet <hostname>" at the command prompt. 
  591.  
  592. Some versions of NOS offer a new type of session that improves on telnet for 
  593. real-time keyboard-to-keyboard chats.  It's called "ttylink," and it works just 
  594. like telnet (for example, start a session with "ttylink <hostname>") except 
  595. that it connects you directly to the remote host's chat mode, and uses a 
  596. split-screen format to make things less confusing as you type to each other. 
  597.  
  598. You'll get a message like "Telnet session 1 failed: Reset/Refused errno 9" if 
  599. the remote host doesn't support ttylink.  If the operator at the other end 
  600. isn't available to chat, you'll get a message like "The system is unattended." 
  601. You'll still be able to type, but there won't be anyone there to reply.  You 
  602. can change the status on your machine by setting the "attended" command to 
  603. either on or off.  You might want to put this command in your AUTOEXEC.NET file 
  604. to set your default status.  You exit from ttylink just as you would from 
  605. telnet. 
  606.  
  607. And now a note from Miss Manners:  you should never simply exit from the NOS 
  608. program when you have an open session.  Doing so can cause great unpleasantness 
  609. at the remote host.  Unless you're in some sort of software or hardware lockup, 
  610. or you know that the station on the other end has gone away, always close 
  611. sessions and wait for confirmation before exiting the program. 
  612.  
  613. You should also be aware that your system may have started sessions in the 
  614. background, for example to transfer electronic mail, or someone else may have 
  615. started a session with your system. You may not even know these sessions are 
  616. running.  Pulling the plug on them would be very impolite.  Before exiting NOS, 
  617. you should first use the se command to make sure there are no current sessions 
  618. running, and then the "tcp status" command to see if there are any background 
  619. connections established.  "tcp status" will show you a long and confusing list 
  620. of information; the important stuff at the end is the list of sockets (which 
  621. are services your system can either offer or request on the network).  If 
  622. anything other than "Listening" appears in the Status column, that means 
  623. there's at least one remote host communicating with you. 
  624.  
  625.  
  626. ΓòÉΓòÉΓòÉ 11.3. File Transfers ΓòÉΓòÉΓòÉ
  627.  
  628. You initiate a file transfer (ftp) session by entering "ftp <hostname>" at the 
  629. command prompt.  Once the session is established, the remote host will prompt 
  630. you for a user name and a password.  If your hostname and password have been 
  631. added to the remote host's FTPUSERS file, you'll have the ability to download 
  632. and perhaps upload files in the directories permitted you. 
  633.  
  634. If you haven't arranged with the remote host for your own account, you can try 
  635. to login as "anonymous" or "guest;" many systems support these user names and 
  636. grant limited (usually download-only) privileges to them.  If you login under 
  637. one of these accounts, you should enter your hostname as the password; that 
  638. allows the remote host to keep track of who's been using the system. 
  639.  
  640. Once you've logged in, you'll see a new prompt: "ftp>."  This will remind you 
  641. that you're actually issuing commands to the remote computer.  From the ftp> 
  642. prompt, you can list the files in a directory, change directories, upload 
  643. files, or download files. 
  644.  
  645. To list files, enter "dir" at the ftp> prompt.  You will get a listing that 
  646. shows subdirectories (if any) and files together with their dates and sizes. 
  647. To show the current directory name, type "pwd." To change directories, issue 
  648. the "cd <directory>" command. Note that directories are displayed with a 
  649. forward slash (/) instead of the usual MS-DOS backslash (\).  That's because 
  650. the UNIX operating system, which is TCP/IP's natural home, uses forward 
  651. slashes.  If the remote host is running NOS, you can use either character, but 
  652. some other systems (particularly those running UNIX) will recognize only the 
  653. forward slash. 
  654.  
  655. Once you've found a file you want to upload or download, you need to make a 
  656. decision.  ftp can transfer the file either as an "image" file, byte for byte, 
  657. or as an "ascii" file, converting the line- end character as necessary to 
  658. compensate for different operating systems (UNIX uses only a linefeed character 
  659. at the end of lines; MS-DOS uses carriage return/linefeed).  Before beginning a 
  660. file transfer, enter "type i" for an image file, or "type a" for an ASCII file, 
  661. at the ftp> prompt. 
  662.  
  663. What are the consequences choosing the wrong transfer type? Well, transferring 
  664. a binary file as type "a" will almost certainly fail. Transferring an ASCII 
  665. file as type "i" will work, but you may find that the line-ends are screwed up. 
  666. ASCII transfers are also quite a bit slower than image, because each line needs 
  667. to be processed separately. 
  668.  
  669. To actually start a file transfer, use the command "put <local filename> 
  670. <remote filename>" to send a file, or "get <remote filename> <local filename>" 
  671. to receive one.  The file name can include a full path if you desire; remember 
  672. to use the proper path separator character for the remote host. 
  673.  
  674. If you only specify one filename, ftp will assume that both the local and 
  675. remote hosts will use the same name.  This can be dangerous if the remote host 
  676. uses a different operating system than you do, as it may have filenames that 
  677. are illegal on your system. 
  678.  
  679. If a file transfer goes awry, you can terminate it by going to command mode via 
  680. F10 and issuing the "abort" command.  To end an ftp session, you can either 
  681. type "quit" at the ftp> prompt (the preferred way), or you can close the 
  682. session from the net> prompt. 
  683.  
  684. If you want others to be able to access files on your system, you'll need to 
  685. set up an FTPUSERS file in your root directory.  Appendix E describes the 
  686. contents of that file. 
  687.  
  688. Another message from Miss Manners:  transferring files via ftp is reliable, but 
  689. can be slooooow, particularly at 1200 baud.  Before you start downloading a 250 
  690. kilobyte file, consider how busy the channel is, and whether you want to tie 
  691. things up for (perhaps) several hours by your download.  NOS is polite and 
  692. won't hog the channel, but don't doubt that a large file transfer will slow 
  693. things down for everyone else. 
  694.  
  695.  
  696. ΓòÉΓòÉΓòÉ 11.4. Other Protocols ΓòÉΓòÉΓòÉ
  697.  
  698. Warning: error below, Ping is not a protocol, ICMP is. The "ping" protocol 
  699. mentioned above is very useful to see if a remote host is on the air.  Just 
  700. enter the command "ping <hostname>" at the NOS prompt.  If the host is 
  701. available, you will see a response indicating what the round-trip time was to 
  702. that host.  The time may be many seconds if you're going through gateways, so 
  703. be patient. 
  704.  
  705. Warning: error below, finger is not a protocol, UDP is. The "finger" protocol 
  706. lets you see information about a remote host's users and services.  Entering 
  707. "finger @<hostname>" (note the slightly different syntax -- the "@" symbol must 
  708. immediately precede the remote hostname) will display a list of the finger 
  709. files (described above) at that host.  Entering "finger <user@hostname>" will 
  710. display the text file for that user. 
  711.  
  712.  
  713. ΓòÉΓòÉΓòÉ 12. Electronic Mail ΓòÉΓòÉΓòÉ
  714.  
  715. We've saved NOS's electronic mail capabilities for last because they are a bit 
  716. more involved than some other parts of the program. You use two programs to 
  717. handle mail:  BM (a "user mail agent," in UNIX terms) to write and read 
  718. messages, and NOS to send and receive them.  First we'll talk about reading and 
  719. writing messages, and then about using NOS to transport them. 
  720.  
  721. OS/2 user note. I have included the section on BM since I did provide a 
  722. Protected mode version of BM, however common wisdom dictates one use PMail 
  723. instead. I will talk about the differences in PMail later. 
  724.  
  725.  
  726. ΓòÉΓòÉΓòÉ 12.1. Using BM.EXE to Read and Write Messages ΓòÉΓòÉΓòÉ
  727.  
  728. BM.EXE is a program that reads and writes mail message in the format TCP/IP 
  729. systems recognize.  Contrary to popular belief, "BM" stands for "Bdale's 
  730. Mailer" in honor of its creator, Bdale Garbee.  You can run BM from the DOS 
  731. prompt just like any other program, from within NOS by shelling to DOS with ! 
  732. or shell, or (in GRINOS) by typing the mail command from the net> prompt. 
  733.  
  734. Before using BM, you need to create its configuration file, BM.RC, which must 
  735. live in the root directory of your disk.  An annotated BM.RC file is included 
  736. as Appendix G.  Only the first three commands in the sample file are absolutely 
  737. necessary to make BM work. 
  738.  
  739. There's a bit of controversy in some areas over the proper name to enter for 
  740. "user" in BM.RC.  Some folks recommend using either your first name, or your 
  741. initials (for example, my address would be "john@ag9v.ampr.org") while other 
  742. suggest using the callsign instead ("ag9v@ag9v.ampr.org"). 
  743.  
  744. While using the callsign may seem more impersonal, it has major advantages when 
  745. mail is moving between TCP/IP and the packet BBS system, or when using the POP 
  746. server; we strongly recommend that you use the "callsign@hostname" format 
  747. unless the locals object even more strongly.  It's important to be consistent 
  748. within the area, so that everyone knows how to address mail to everyone else. 
  749.  
  750. When you start BM, you'll see a prompt such as "ag9v>" showing the default 
  751. mailbox (based on the "user" entry in BM.RC). As in NOS, you enter commands at 
  752. the prompt, following them with a carriage return.  Most BM commands are single 
  753. letters, optionally followed by a mail addressee or a message number (or 
  754. numbers). 
  755.  
  756. To send mail, use the command "m <addressee>."  The addressee will normally be 
  757. a user at a remote host; for example, ag9v might send mail to k8gkh@k8gkh.  The 
  758. single biggest problem with BM is forgetting to include the hostname -- in 
  759. other words, sending mail to <user> rather than <user>@<hostname>.  Without the 
  760. hostname, BM will think the user is on your local system, and the mail will end 
  761. up being stored in a mailbox under that user's name on your own system. That 
  762. doesn't work too well. 
  763.  
  764. One way to solve that problem, and do some other interesting things, is to 
  765. create an ALIAS file in your root directory.  When you send a message, BM will 
  766. compare the addressee with the alias file, and if it finds a match will replace 
  767. the alias with a full address from the file.  An alias can point to a list of 
  768. addresses, so it's possible to define an alias that will send a copy of the 
  769. message to everyone in your local group.  A sample alias file might look like: 
  770.  
  771. greg   k8gkh@k8gkh.ampr.org 
  772.  
  773. bill   n8kza@n8kza.ampr.org 
  774.  
  775. club   k8gkh@k8gkh.ampr.org n8kza@n8kza.ampr.org 
  776.  
  777. n8acv@n8acv.ampr.org wb8gxb@wb8gxb.ampr.org 
  778.  
  779. The alias for "club" demonstrates two things:  a single alias can expand to 
  780. several addresses, and you can continue a long address list on subsequent lines 
  781. by indenting them with spaces or a tab character. 
  782.  
  783. Now, if you send mail to "greg" it will automatically be expanded to the full 
  784. address, and by sending a message to "club" all four users will get a copy. 
  785.  
  786. By the way, you do not use a trailing dot after an FQDN (as discussed above) in 
  787. Email addressing; doing so will screw things up. 
  788.  
  789. If you use BM's built-in editor to compose messages, remember that it doesn't 
  790. wrap lines; you have to hit the carriage return at the end of each line.  Use 
  791. the "l" command to list outbound mail; you can kill an outbound message with 
  792. the "k <msg#>" command, using the message number obtained from the "l" command. 
  793.  
  794. Several commands are used to deal with incoming mail.  "h" displays the headers 
  795. (summary info) about messages in your mailbox.  It is the basic command you 
  796. should use to check your incoming mail.  Each header displayed includes a 
  797. message number to use with the other message manipulation commands. Commands 
  798. given without a message number act on the current message (the one marked with 
  799. an ">" in the display from the "h" command); if there's only one message, it is 
  800. always the current one. 
  801.  
  802. BM can support multiple users at a single host; a separate mailbox is created 
  803. for each user.  Unfortunately, BM has no way of knowing if incoming mail 
  804. addressed to <someuser>@<yourhost> is valid, so it will happily accept such 
  805. mail and create a new mail- box for <someuser>.  You may never know it's there, 
  806. unless you use the "n" command to display the list of mailboxes.  You can also 
  807. use "n" to change to a different mailbox: "n <mbox>." 
  808.  
  809. The commonly used commands (which may be followed by one or more message 
  810. numbers if appropriate) are: 
  811.  
  812. msg#    message number by itself will display that message and     set it as the 
  813. current message. 
  814.  
  815. r  reply to a message. 
  816.  
  817. d  delete a message. 
  818.  
  819. s  save a message; if a file name follows the message 
  820.  
  821.   number(s), the message(s) will be saved in that file. 
  822.  
  823.   Otherwise, they'll be saved in the default mbox file. 
  824.  
  825. u  undelete a message previously marked for deletion. 
  826.  
  827. p  print a message on the local printer. 
  828.  
  829. w  save a message to a file without including headers. 
  830.  
  831. f  forward a message to another recipient. 
  832.  
  833. b  bounce a message.  Like forward, but keeps the original 
  834.  
  835.   sender information intact (i.e., the message will not 
  836.  
  837.   appear to have been sent by you). 
  838.  
  839. $  update the mailbox.  This deletes messages marked for 
  840.  
  841.     deletion and reads in any new mail that may have arrived 
  842.  
  843.     since you started BM. 
  844.  
  845. There are two commands that exit from BM:  "x" will exit without updating the 
  846. mailbox.  In other words, the same messages will be there the next time you run 
  847. the program.  "q" updates the mailbox (like "$") and then exits. 
  848.  
  849. Outbound mail created by BM is stored in the \spool\mqueue directory, where it 
  850. waits patiently until one of NOS's servers (SMTP or POP) attempts to send it to 
  851. its destination. 
  852.  
  853.  
  854. ΓòÉΓòÉΓòÉ 12.2. Using PMail. ΓòÉΓòÉΓòÉ
  855.  
  856. PMail started off as a PM version of BM but has evolved into, what I believe is 
  857. a superior mailer. The commands are effectively the same as BM except H is used 
  858. for headers and actions are triggered via either the pulldown menus or hot 
  859. keys. I attempted to use the same letters as BM but with the requirement to use 
  860. the cntrl-. 
  861.  
  862. cntrl-r reply to a message. 
  863.  
  864. cntrl-d (or del key) delete a message. 
  865.  
  866. cntrl-s save a message; if a file name follows the message 
  867.  
  868. number(s), the message(s) will be saved in that file. 
  869.  
  870. Otherwise, they'll be saved in the default mbox file. 
  871.  
  872. cntrl-u undelete a message previously marked for deletion. 
  873.  
  874. cntrl-p print a message on the local printer. 
  875.  
  876. cntrl-w save a message to a file without including headers. 
  877.  
  878. cntrl-f forward a message to another recipient. 
  879.  
  880. cntrl-b bounce a message.  Like forward, but keeps the original 
  881.  
  882. sender information intact (i.e., the message will not appear to have been sent 
  883. by you). 
  884.  
  885. File Save update the mailbox.  This deletes messages marked for deletion and 
  886. reads in any new mail that may have arrived since you started BM. 
  887.  
  888. cntrl-v View a msg from the list. 
  889.  
  890. cntrl-h Return to mail list (headers) from view. 
  891.  
  892. cntrl-c Compose a new msg. 
  893.  
  894. cntrl-z Send a msg from the compose or reply screen. 
  895.  
  896. I also added most key actions associated with the VIEW mailer for those used to 
  897. VIEW. 
  898.  
  899. In addition there is extensive verbs associated with unsent mail. More often 
  900. then we would like we send mail out and mis-spell the recepient or his host, or 
  901. we just simply change our minds about sending the msg. By invoking the Unsent 
  902. menu item we are shown a list of all pending msgs, either locked or unlocked. 
  903. Locking takes place when NOS is in the process of trying to send the msg or the 
  904. group of outbound msgs. Occationally something happens and the msg is frozen in 
  905. the locked state. From the Unsent menu, we can select a msg to: 
  906.  
  907. Unlock it - frees the NOS lock 
  908.  
  909. Kill it - delete the msg from the queue 
  910.  
  911. Re-address it - modify or add addressee and host information 
  912.  
  913. PMail also provides for a signature file to be associated with each user. For 
  914. instance if the user name is kz1f, PMail can be told to append the contents of 
  915. the file kz1f.sig to each outgoing msg from that mailbox. The default location 
  916. for these files is \spool\signatur, however this can be overriden with the SIG 
  917. cmd in BM.RC. Further, BM.RC, normally expected in the root dir can be placed 
  918. anywhere so long as in config.sys you set BMRC=<fully qualified path name>. 
  919.  
  920. Important PMail user note: 
  921.  
  922. PMail, when properly configured into the OS/2 desktop, will notify the user at 
  923. a glance when there is new unread mail. When PMail is set to minimize to the 
  924. desktop it will normally show a rural mailbox with the flag down. When new mail 
  925. arrives the flag pops up. This is similar to how, in the country we tell the 
  926. mailperson we have outbound mail for him to take back with him to the post 
  927. office. So even though the analogy is somewhat reversed, I feel its a good 
  928. visual indication of a change in the mail status. 
  929.  
  930.  
  931. ΓòÉΓòÉΓòÉ 12.3. Moving Mail With NOS ΓòÉΓòÉΓòÉ
  932.  
  933. Now, to the mechanics of getting mail into and out of your system.  All mail 
  934. that you create is sent to its destination (or at least to the next stop on the 
  935. way) by the "smtp" server in NOS. The "smtp timer" command (set in 
  936. AUTOEXEC.NET) tells smtp how often to scan the \spool\mqueue directory for 
  937. outgoing mail. When it finds some, it attempts to open an smtp session to the 
  938. remote host in the address and send the mail there.  There's no default for the 
  939. smtp timer value, so your AUTOEXEC.NET file should include something like "smtp 
  940. timer 600" (which scans for mail every ten minutes).  You can manually force 
  941. smtp to scan the queue by issuing the "smtp kick" command from the net> prompt. 
  942.  
  943. If you have a local mail server with connections to the outside world, you can 
  944. use it to route mail for hosts that aren't in your domain file with the "smtp 
  945. gateway <hostid>" command. 
  946.  
  947. Incoming mail can arrive at your station when a remote host does this and 
  948. starts an smtp session with you.  But if you don't keep your station up 24 
  949. hours a day, the remote host will be trying, and trying, and trying, to connect 
  950. with you until you finally show up. A far better approach is to use "POP" -- 
  951. the Post Office Protocol. If your system runs POP, and someone in the area has 
  952. agreed to be a POP server, NOS will automatically contact that server when you 
  953. come on the air; the server will respond by sending the mail waiting in your 
  954. mailbox.  You can then read it with BM just as if it had arrived via smtp. 
  955.  
  956. To use POP, the server must establish a mailbox and password for you, and you 
  957. need to add the appropriate commands to your AUTOEXEC.NET file (see the 
  958. annotated AUTOEXEC.NET file in Appendix under autoexec.net). 
  959.  
  960. Remember that smtp or POP sessions may be running in the background without 
  961. your knowing about it.  Always check for activity with the "tcp status" command 
  962. before pulling the plug! 
  963.  
  964. Additionally, smtp creates lock files in \spool\mqueue when it tries to send 
  965. outgoing mail.  If NOS is killed before the mail transfer has succeeded, these 
  966. files (with the extension ".LCK") will be left behind and if they are not 
  967. manually removed, they will prevent smtp from trying again to send those 
  968. messages.  To prevent this, you should always issue the command "erase 
  969. \spool\mqueue\*.LCK" before starting NOS.  It's a good idea to launch NOS using 
  970. a batch file that removes the locks before executing the program. 
  971.  
  972.  
  973. ΓòÉΓòÉΓòÉ 13. Conclusion ΓòÉΓòÉΓòÉ
  974.  
  975. This has been a whirlwind tour of TCP/IP.  Once you have the software 
  976. installed, it's not hard to use, and NOS truly opens the door to enjoying 
  977. packet radio in a whole new way. 
  978.  
  979. To learn the subtleties of NOS, you should do two things:  read the reference 
  980. manual for the version you're using, and experiment with the program.  Once you 
  981. know the ins and outs, please share your knowledge with others.  The ham radio 
  982. TCP/IP community is still small, and we need all the Elmers we can get! 
  983.  
  984. John Ackermann  AG9V 
  985.  
  986. 2371 Stewart Road 
  987.  
  988. Xenia, OH  45385 
  989.  
  990. TCP/IP    ag9v@ag9v.ampr.org.  [44.70.12.34] 
  991.  
  992. PBBS     AG9V@N8ACV.OH.US.NA 
  993.  
  994. Internet   jra@lawday.daytonOH.ncr.com 
  995.  
  996. CompuServe  72300,1160 
  997.  
  998. OS/2 PMNOS and PMail usage notes via 
  999.  
  1000. Walt Corey KZ1F 
  1001.  
  1002. < I am in the process of moving so what I put here will 
  1003.  
  1004. be obsolete soon> 
  1005.  
  1006. TCP/IP  kz1f@kz1f.ampr.org 
  1007.  
  1008. Internet   kz1f@legent.com 
  1009.  
  1010. CIS 71204,1555 
  1011.  
  1012.  
  1013. ΓòÉΓòÉΓòÉ 14. APPENDIX ΓòÉΓòÉΓòÉ
  1014.  
  1015.  
  1016. ΓòÉΓòÉΓòÉ 14.1. Further sources of information on NOS and TCPIP ΓòÉΓòÉΓòÉ
  1017.  
  1018. (Note:  This is a very incomplete list; please feel free to provide additional 
  1019. resources to add for the next edition!) 
  1020.  
  1021. TAPR 
  1022.  
  1023. P.O. Box 22888 
  1024.  
  1025. Tucson, AZ  85734 
  1026.  
  1027. The New England TCP Association 
  1028.  
  1029. 3628 Acushnet Ave. 
  1030.  
  1031. New Bedford, MA  02745 
  1032.  
  1033.  
  1034. ΓòÉΓòÉΓòÉ 14.2. Sample AUTOEXEC.NOS File for GRINOS ΓòÉΓòÉΓòÉ
  1035.  
  1036. AUTOEXEC.NOS 
  1037.  
  1038. This is a sample autoexec file for GRINOS version N1BEE 0.72. It doesn't have 
  1039. all the fancy features one might hope for, but the basics are there, with some 
  1040. hopefully useful comments. Any line beginning with a "#" character is treated 
  1041. as a comment. To uncomment a line, delete the # character  These are a couple 
  1042. of things for NOS to use internally. 
  1043.  
  1044. mem eff on - not necessary in OS/2 
  1045.  
  1046. watchdog on - not nexessary in OS/2 
  1047.  
  1048. nibufs 10 - not nex=cessary in OS.2 
  1049.  
  1050. NOS needs to know three things about you:  your hostname, your  ham callsign, 
  1051. and your IP address.  By convention, the hostname # is your callsign in lower 
  1052. case, followed by ".ampr.org". The  callsign is generally used in upper case to 
  1053. distinguish it. The IP address comes from a local area coordinator.  Note that 
  1054. there are a minimum of three places in this file where you need to insert your 
  1055. IP address -- here, in the ifconfig command, and at the end of each attach 
  1056. command. 
  1057.  
  1058.    hostname nocall.ampr.org 
  1059.  
  1060.    ax25 mycall NOCALL 
  1061.  
  1062.    ip address [44.xx.xx.xx] 
  1063.  
  1064. This should match your IP address 
  1065.  
  1066.    ifconfig loopback ipaddress [44.xx.xx.xx] 
  1067.  
  1068. This makes short forms of the hostname work. 
  1069.  
  1070.    domain suffix ampr.org. 
  1071.  
  1072. NOS needs to know how to convert hostnames to IP addresses. 
  1073.  
  1074. You can do this manually via the "DOMAIN.TXT" file, or you can use a nameserver 
  1075. if one is available.  To enable the nameserver, uncomment this line and plug in 
  1076. its correct address. 
  1077.  
  1078.    domain addserver [44.xx.xx.xx] 
  1079.  
  1080. Some additional commands for the domain service.  Don't turn translate on 
  1081. unless you have a small domain file and/or a fast machine. 
  1082.  
  1083.    domain verbose off 
  1084.  
  1085.    domain cache size 40 
  1086.  
  1087.    domain translate off 
  1088.  
  1089. To use POP, uncomment these lines.  Fill in "pop mailhost" with the IP address 
  1090. of the station serving as your POP server.  Fill in the "pop# mailbox" name 
  1091. with your hostname, i.e., your call.  The "pop userdata" line needs to have 
  1092. your hostname, followed by a password (as negotiated with your mail server). 
  1093. "pop timer" sets how often, in seconds, to query for mail. 
  1094.  
  1095. pop mailhost [44.xx.xx.xx] 
  1096.  
  1097.    pop mailbox hostname 
  1098.  
  1099.    pop userdata hostname password 
  1100.  
  1101.    pop timer 1800 
  1102.  
  1103. Attach commands are complex; these are samples for COM 1 and 2.  See Appendix C 
  1104. for details.  Uncomment the appropriate line(s) for your hardware. COM1 -- 256 
  1105. byte MTU, 4800 baud serial link as ax0 
  1106.  
  1107.    attach asy 0x3f8 4 ax25 ax0 2048 256 4800 
  1108.  
  1109. # COM2 -- 256 byte MTU, 4800 baud serial link as ax1 
  1110.  
  1111.    attach asy 0x2f8 3 ax25 ax1 2048 256 4800 
  1112.  
  1113.     # This is the basic route, sending everything out ax0 
  1114.  
  1115.    route add default ax0 
  1116.  
  1117. These are tcp parameters you shouldn't need to mess with. 
  1118.  
  1119.    ip ttl 16 
  1120.  
  1121.    ip rtimer 240 
  1122.  
  1123.    tcp irtt 3000 
  1124.  
  1125. On a shared channel, you may want to change timertype to exponential; that's 
  1126. more courteous, but will slow your retries down significantly.  mss and window 
  1127. should ordinarily be the same value, equal to the largest mtu set in the attach 
  1128. command(s) above minus 40.  With the common mtu for 1200 baud channels of 256, 
  1129. that means both mss and window should be 216. 
  1130.  
  1131.    tcp timertype linear 
  1132.  
  1133.    tcp bblimit 16 
  1134.  
  1135.    tcp mss 216 
  1136.  
  1137.    tcp window 216 
  1138.  
  1139. These set up AX.25 parameters 
  1140.  
  1141.    ax25 digipeat off 
  1142.  
  1143.    ax25 maxframe 1 
  1144.  
  1145.    ax25 paclen 256 
  1146.  
  1147.    ax25 retry 20 
  1148.  
  1149.    ax25 window 4096 
  1150.  
  1151.    ax25 blimit 15 
  1152.  
  1153.    ax25 version 2 
  1154.  
  1155. as with tcp timertype, you may want to set this to exponential on a shared 
  1156. channel. 
  1157.  
  1158.    ax25 timertype linear 
  1159.  
  1160. These are netrom setup commands.  Don't turn them on unless you need them, and 
  1161. you know what you're doing.  You can really screw up the network by putting out 
  1162. netrom broadcasts that don't fit with the configuration of the "real" netrom 
  1163. nodes that can hear you. 
  1164.  
  1165. attach netrom 
  1166.  
  1167. netrom interface ax0 MYALIAS 192 
  1168.  
  1169.    netrom obsotimer 1800 
  1170.  
  1171.    netrom nodetimer 10800 
  1172.  
  1173.    netrom verbose yes 
  1174.  
  1175.    netrom bcnodes ax0 
  1176.  
  1177.    netrom ttl 8 
  1178.  
  1179.  These start the servers. 
  1180.  
  1181.    start smtp 
  1182.  
  1183.    start ftp 
  1184.  
  1185.    start echo 
  1186.  
  1187.    start discard 
  1188.  
  1189.    start telnet 
  1190.  
  1191.    start finger 
  1192.  
  1193.    start ax25 
  1194.  
  1195. Uncomment this line to enable logging. 
  1196.  
  1197.    #log \spool\net.log 
  1198.  
  1199.  Default file type for ftp transfers.  Type image is for binary files;     type 
  1200. ascii is for text; it's safest to set the default to image. ftype image 
  1201.  
  1202. This makes telnet sessions to Unix systems work line-by-line, rather than 
  1203. character-by-character. 
  1204.  
  1205. echo refuse 
  1206.  
  1207.  Tell smtp how often to scan for outgoing mail 
  1208.  
  1209.    smtp timer 600 
  1210.  
  1211.    smtp batch on 
  1212.  
  1213. GRINOS can send a string of commands to the TNC on startup. You could use this 
  1214. to force the TNC into KISS mode.  Note that you need to specify which interface 
  1215. to use.  This must be done <after>defining the interface, and <before>any data 
  1216. is sent to the TNC (for example, by the smtp and pop kick commands below). 
  1217. These commands will do that for a TNC2: 
  1218.  
  1219. comm ax0 "kiss on" 
  1220.  
  1221. comm ax0 "reset" 
  1222.  
  1223. kick the smtp and POP servers at startup.  Only uncomment the 
  1224.  
  1225. "pop kick" line if you've defined a POP server above. 
  1226.  
  1227. smtp kick 
  1228.  
  1229. #pop kick 
  1230.  
  1231. GRINOS (but not other versions) can define the function keys with macros to 
  1232. make things a bit easier.  Here are a couple of examples.  Note that each 
  1233. command must end with a "\n" to signify a carriage return.  The numbers 
  1234. represent the keys; 59 - 68 for F1- F10 (though F10 can't be redefined; it's 
  1235. always the escape key), 84 - 93 for shiftF1 - shift F10, 94 - 103 for ctrlF1 - 
  1236. ctrlF10, 104 - 
  1237.  
  1238. 113 for altF1 - altF10. 
  1239.  
  1240. fkey 59 "tcp status\n" 
  1241.  
  1242. fkey 60 "mem status\n" 
  1243.  
  1244. fkey 61 "status\n" 
  1245.  
  1246.  
  1247. ΓòÉΓòÉΓòÉ 14.3. Designing ATTACH Commands ΓòÉΓòÉΓòÉ
  1248.  
  1249. NOS supports a number of versions of the attach command to deal with different 
  1250. hardware.  We'll discuss three of them here:  asy, used for serial port 
  1251. connections; pi, used to connect to the Ottawa PI card; and packet, used to 
  1252. interface to hardware supporting the FTP, Inc., packet driver protocol.  As 
  1253. usual, this discussion covers the basics; see the NOS reference manual for 
  1254. details on all the many options. 
  1255.  
  1256. Hosts normally have a separate IP address for each interface.  If you are 
  1257. running more than one interface, you can include that interface's IP address 
  1258. (in [xx.xx.xx.xx] form) at the end of the attach command. 
  1259.  
  1260. The asy version provides an interface to a standard PC serial port. 
  1261.  
  1262. The syntax is: 
  1263.  
  1264. attach asy <ioaddr> <vector> <mode> <if> <bufsize> <mtu> <speed> 
  1265.  
  1266. In English, these parameters are: 
  1267.  
  1268. ioaddr -- the address of the COM port being used. 
  1269.  
  1270. COM1 is usually 0x3f8 and COM2 is usually 0x2f8. 
  1271.  
  1272. COM3 and COM4 aren't standardized; using them will require looking at the 
  1273. documentation for your serial card, and probably some experimentation. 
  1274.  
  1275. vector -- the IRQ used by the hardware.  COM1 is usually 4, and COM2 is usually 
  1276. 3.  Again, COM3 and COM4 vary. 
  1277.  
  1278. mode -- this specifies the nature of the interface.  ax25 is for a connection 
  1279. to a KISS TNC, slip for a hardwired connection to another host, ppp for a 
  1280. dial-up connection, and nrs is for attaching a NOS station to a NetRom node. 
  1281.  
  1282. if -- the interface name.  The convention is to use ax0, ax1, etc., for KISS 
  1283. interfaces. 
  1284.  
  1285. bufsize -- the buffer for incoming data, in bytes.  Usually a value of 1024 is 
  1286. more than sufficient for a 1200 baud channel. 
  1287.  
  1288. mtu -- the maximum transmission unit size, in bytes.  See the discussion in the 
  1289. main text on this subject. 
  1290.  
  1291. speed -- the speed of the serial (not radio) link, in baud. The best setting 
  1292. for this will depend on the speed of your computer, but generally two to four 
  1293. times the radio speed is adequate. 
  1294.  
  1295. Some sample attach asy commands are: 
  1296.  
  1297. COM1, KISS TNC as ax0, MTU 256, 4800 BAUD 
  1298.  
  1299.    attach asy 0x3f8 4 ax25 ax0 1024 256 4800 
  1300.  
  1301. COM2, KISS TNC as ax1, MTU 256, 2400 BAUD 
  1302.  
  1303.    attach asy 0x2f8 3 ax25 ax1 1024 256 2400 
  1304.  
  1305. SLIP link, COM1 as sl0, MTU 256, 9600 BAUD 
  1306.  
  1307.    attach asy 0x3f8 4 slip sl0 1024 256 9600  The Ottawa PI card is a plug-in 
  1308. board for PCs designed for high- speed performance.  It has two ports, one DMA 
  1309. driven for high speed and the other interrupt driven.  The attach syntax is: 
  1310.  
  1311. attach pi <ioaddr> <vector> <DMA chn> <mode> <name> <bufsize> <mtu> <speed a> 
  1312. <speed b> 
  1313.  
  1314. A sample attach command (using the PI's default jumper settings) is: 
  1315.  
  1316.    attach pi 380 7 1 ax25 pi0 1750 1024 0 1200 
  1317.  
  1318. In this example, the interface name for the DMA port is "pi0a" and the second 
  1319. port is "pi0b".  Because the port a speed is 0, the PI card expects the modem 
  1320. to provide its own clocking.  The PI attach syntax is explained in the manual 
  1321. provided with the card. 
  1322.  
  1323. Finally, the packet interface is used to connect to ethernet cards and other 
  1324. hardware that supports the FTP, Inc. "packet driver" standard.  There's a 
  1325. packet driver for the PI card.  The syntax is: 
  1326.  
  1327.    attach packet <ioaddr> <vector> <if> <bufsize> <mtu> 
  1328.  
  1329. In this case, ioaddr and vector need to match those used for the packet TSR 
  1330. that supports the hardware.  bufsize is the number of packets (not bytes) that 
  1331. may be outstanding.  For ethernet, the standard mtu is 1500. 
  1332.  
  1333.  
  1334. ΓòÉΓòÉΓòÉ 14.4. The DOMAIN.TXT File ΓòÉΓòÉΓòÉ
  1335.  
  1336. The domain.txt file contains mappings between hostnames and IP addresses.  The 
  1337. file can be quite complex, but basic entries usually resemble this. 
  1338.  
  1339. Fields are separated by tabs or spaces. 
  1340.  
  1341. These are normal address records.  The first field is the hostname.  The second 
  1342. field is a "time to  live" value returned by the name server.  If you manually 
  1343. create an entry, you can leave this field  blank.  The third field is always 
  1344. "IN" to signify these are internet addresses. The fourth field is "A" to 
  1345. signify an address record.  The last field is the address. 
  1346.  
  1347. k8gkh.ampr.org.9886 IN  A  44.70.12.31 
  1348.  
  1349. ag9v.ampr.org.  3584   IN  A  44.70.12.34 
  1350.  
  1351. This is a "canonical name" (CNAME) record that maps an alias to an official 
  1352. hostname. 
  1353.  
  1354. server.ampr.org.   3599   IN  CNAME  ag9v.ampr.org. 
  1355.  
  1356.  
  1357. ΓòÉΓòÉΓòÉ 14.5. Sample FTPUSERS File ΓòÉΓòÉΓòÉ
  1358.  
  1359. # This file establishes ftp user permissions.  Fields are # separated by 
  1360. exactly one space.  The privileges value is a # bitmask.  The only values 
  1361. significant for ftp are: 
  1362.  
  1363. # 1 - read only 
  1364.  
  1365. # 3 - read/write 
  1366.  
  1367. # 7 - read/write/overwrite/delete 
  1368.  
  1369. anonymous * /pub 1    # no password, read only in /pub 
  1370.  
  1371. friend foobar /pub 3   # read/write privileges in /pub 
  1372.  
  1373. spouse snoogums / 7   # read/write/delete everywhere 
  1374.  
  1375.  
  1376. ΓòÉΓòÉΓòÉ 14.6. Making Your TNC Talk in KISS MODE ΓòÉΓòÉΓòÉ
  1377.  
  1378. Once NOS is installed and your configuration files set, you need to do one more 
  1379. thing:  get your TNC talking to your computer in KISS (Keep It Simple, Stupid) 
  1380. mode.  KISS is a special protocol that lets your computer do the work of 
  1381. processing packets; the TNC does only the very low-level packet assembly and 
  1382. disassembly functions.  Nearly all TNCs support KISS in one way or another. 
  1383.  
  1384. Typically, you'll need to issue commands to the TNC to set the serial line baud 
  1385. rate to the same speed as you've specified in the attach command, to 8 bit 
  1386. data, and to no parity.  Then, issue the KISS command (on a TNC2, kiss on), and 
  1387. the TNC's software reset command.  After that, you won't be able to talk to 
  1388. your TNC via the terminal program, but NOS will be able to.  (And don't worry, 
  1389. you can easily return the TNC to normal mode if you want to.)  Once you've done 
  1390. this, you're set to run NOS. 
  1391.  
  1392. One trick that grinos supports is the ability to send commands to the TNC 
  1393. during startup.  The comm command will send a string of text to the named 
  1394. interface.  For example, to force a Kantronics DataEngine or KAM into KISS mode 
  1395. every time you start NOS, include the following commands in AUTOEXEC.NOS (after 
  1396. you've defined the interface with the attach command): 
  1397.  
  1398. comm ax0 "interface kiss" 
  1399.  
  1400. comm ax0 "reset" 
  1401.  
  1402. Note that surrounding the text with quote characters will preserve spaces in 
  1403. the command. 
  1404.  
  1405.  
  1406. ΓòÉΓòÉΓòÉ 14.7. A Sample BM.RC File ΓòÉΓòÉΓòÉ
  1407.  
  1408. # BM.rc 
  1409.  
  1410. # your hostname -- note that for mail we <don't> put a trailing period at the 
  1411. end of the FQDN. 
  1412.  
  1413. host ag9v.ampr.org 
  1414.  
  1415. the user name (one host can receive mail for several users); usually your 
  1416. callsign 
  1417.  
  1418. user ag9v 
  1419.  
  1420. your full name, for the message "From" line 
  1421.  
  1422. fullname John Ackermann 
  1423.  
  1424. if you want to have replies sent to another host, because, for example, you are 
  1425. using a POP server, this line specifies where replies should go 
  1426.  
  1427. reply ag9v@ag9v.ampr.org 
  1428.  
  1429. for faster screen writes on the pc, use direct video, not bios 
  1430.  
  1431. screen direct not necessary in OS/2 
  1432.  
  1433. if you want to use an editor different than BM's built-in one 
  1434.  
  1435. edit ed 
  1436.  
  1437. put saved messages here; note "/" instead of "\" 
  1438.  
  1439. mbox /folder/mbox 
  1440.  
  1441. save a copy of outbound mail here 
  1442.  
  1443. record /folder/outmail 
  1444.  
  1445. folder for your mail 
  1446.  
  1447. folder /folder 
  1448.  
  1449. maximum number of messages that can be pending 
  1450.  
  1451. maxlet 200 
  1452.  
  1453. signature directory (for OS/2 PMail 
  1454.  
  1455. sig /where/ever/you/have/it