home *** CD-ROM | disk | FTP | other *** search
/ Doom Fever / Doom_Fever-1995_Maple_Media.iso / dmutil / drivers.zip / NB.NOT < prev    next >
Text File  |  1991-11-19  |  11KB  |  261 lines

  1.                          
  2.  
  3. 1.0  INTRODUCTION
  4.  
  5.  
  6. The NetBIOS packet driver found in the Clarkson collection has been
  7. heavily modified to correct deficiencies and to change it from a
  8. type 6 to a type 1 packet driver.  This document describes the new
  9. NetBIOS packet driver and explains how to use the packet driver to
  10. support concurrent operation of TCP/IP application software
  11. packages and NetBIOS based applications such as Lantastic.
  12.  
  13.  
  14. 2.0  BACKGROUND
  15.  
  16.  
  17. Lantastic is an inexpensive Networking Operating System (NOS) that
  18. provides most of the features required by smaller organizations. 
  19. Unfortunately, Lantastic does not support packet drivers.  As a
  20. result, it is difficult to use popular "freeware" TCP/IP packages
  21. (such as NCSA Telnet, POPmail and TRUMPET) concurrently with
  22. Lantastic.
  23.  
  24. Lantastic uses NetBIOS to provide session layer (and below)
  25. services.  Hence, one approach to providing concurrent Lantastic -
  26. TCP/IP operation is to purchase an RFC 1001/1002 compliant NetBIOS
  27. implementation.  As most people purchase Lantastic because of its
  28. low cost and because they wish to use "freeware" TCP/IP packages,
  29. it is unlikely that they will want to spend yet more money on
  30. another NetBIOS implementation.  In addition, this approach will
  31. only provide TCP/IP support to those application which can interact
  32. with the TCP/IP stack on which the RFC 1001/1002 compliant NetBIOS
  33. is based.
  34.  
  35. Another approach is to use the Lantastic NetBIOS implementation as
  36. the "data link" on which to transmit IP packets.  As there is a
  37. NetBIOS packet driver in the Clarkson collection, this approach
  38. appears to be viable.  Unfortunately, the NetBIOS packet driver
  39. presently found in the Clarkson collection has a number of
  40. deficiencies whichb render it virtually unusable, especailly in
  41. configurations which have Internet gateways.
  42.  
  43. While the Clarkson NetBIOS packet driver has its flaws, it does
  44. contain the basic code needed to provide the required services. 
  45. Hence, it was decided to update the packet driver.  Work started on
  46. upgrading the packet driver nearly two years ago.  A working
  47. version was in operation within two weeks, with updates being made
  48. to improve operation every few months.
  49.  
  50. The original NetBIOS packet driver was a class 6 packet driver.  Up
  51. until about a month ago, the updated NetBIOS packet driver was also
  52. a class 6 packet driver.  The inability of a number of popular
  53. TCP/IP application packages to deal with class 6 packet drivers
  54. resulted in the development of EtherSLIP, a SLIP mode packet driver
  55. which provides a class 1 interface to the application software
  56. packages.  Ideas and code from EtherSLIP development were used to
  57. modify the NetBIOS packet driver such that it also is now a class
  58. 1 packet driver.
  59.  
  60. The NetBIOS packet driver has been tested and found to operate
  61. correctly with a number of TCP/IP packages, including NCSA Telnet,
  62. POPmail, PC_gopher, TRUMPET, CUTCP, ka9q, and PC/TCP from FTP
  63. Software.
  64.  
  65. 3.0  THEORY OF OPERATION
  66.  
  67.  
  68. This section provides a brief description of how the NetBIOS packet
  69. driver operates.  It is assumed that the reader is familiar with
  70. the basic operation of packet drivers, NetBIOS and the Internet
  71. Protocol.  An understanding of how the NetBIOS packet driver is not
  72. reqquired to make use of the packet driver.  Hence, this section
  73. can be skipped if the reader does not wish to understand the
  74. internals of the NetBIOS packet driver.
  75.  
  76. The NetBIOS packet driver accepts complete Ethernet frames from the
  77. application software, strips the Ethernet header, and uses the
  78. NetBIOS datagram service to send the IP packet contained in the
  79. data portion of the Ethernet frame.
  80.  
  81. On the receive side, the NetBIOS packet driver extracts IP packets
  82. from incoming NetBIOS datagrams.  An Ethernet header is prepended
  83. to the IP packet and the resulting Ethernet frame is passed to the
  84. application software package.  The source address in the Ethernet
  85. header is formed from the source NetBIOS address while the
  86. destination address is set based on the local IP address.
  87.  
  88. Since the NetBIOS packet driver is a class 1 packet driver,
  89. application software packages will likely use the Address
  90. Resolution Protocol (ARP) to translate the IP address to an
  91. appropriate data link address.  Though it might be possible to
  92. support ARP using NetBIOS, the present NetBIOS packet driver traps
  93. all ARP requests and formulates its own ARP reply.  Address
  94. translation is simple; the target data link address is set to the
  95. target IP address.
  96.  
  97. NetBIOS datagrams are directed to specific destinations as
  98. identified by a NetBIOS name.  When sending an IP packet, the
  99. NetBIOS name for the destination machine is constructed by
  100. appending the address found in the destination address field of the
  101. Ethernet header to the string "TCPIP".
  102.  
  103. 4.0  INSTALLATION
  104.  
  105.  
  106. Concurrent operation of TCP/IP application software and NetBIOS
  107. based software such as Lantastic requires installation of the
  108. NetBIOS packet driver on each PC and the provision of a NetBIOS
  109. gateway.  This section examines both these installation issues in
  110. some detail.
  111.  
  112. 4.1  NetBIOS Packet Driver Installation
  113.  
  114. The NetBIOS Packet driver is invoked on each computer using the
  115. following command line:
  116.  
  117.      nb <int_no> [-g] <ip_address>
  118.  
  119.      where:
  120.  
  121.           <int_no>       is the interrupt vector on which the
  122.                          packet driver receives commands.
  123.  
  124.           <ip_address>   is the IP address of the local host.
  125.  
  126.           -g             gateway flag; only needed on the machine
  127.                          which is to be the NetBIOS gateway.
  128.  
  129.  
  130. 4.2  NetBIOS Gateway
  131.  
  132. The NetBIOS packet driver encapsulates IP packets inside NetBIOS
  133. datagrams.  In order for applications packages using the NetBIOS
  134. packet driver to exchange IP packets with machines which do not
  135. support NetBIOS, some form of gateway is required.  Though most (if
  136. not all) commercial routers do not support NetBIOS encapsulation,
  137. it is possible to implement such a gateway using PC based router
  138. software which supports class 1 packet drivers.  Two such packages
  139. are PCroute and ka9q.
  140.  
  141. The PC based NetBIOS gateway must use two Ethernet boards, one to
  142. handle raw Ethernet frames and one to handle NetBIOS packets.  
  143. NetBIOS software is required to provide the NetBIOS interface;
  144. Artisoft's NetBIOS implementation is needed if Lantastic is to be
  145. supported concurrently.  As well, the NetBIOS packet driver must be
  146. loaded with the gateway flag specified on the command line.
  147.  
  148. Rather than try to explain in general terms how to configure a
  149. NetBIOS gateway, the configuration file for a ka9q based NetBIOS
  150. gateway will be examined, line by line.  In particular, note that
  151. PROXY ARPS and static routes for each of the machines running the
  152. NetBIOS packet driver.  This configuration has been tested and is
  153. known to work.
  154.  
  155. # This entry tells the ka9q software the name of your machine. 
  156. #
  157. hostname hawkeye.nstn.ns.ca 
  158. #
  159. # This entry contains your IP address.  Brackets are required.
  160. #
  161. ip address [192.70.224.3]
  162. #
  163. # The attach command tells the ka9q software about the interfaces
  164. # in your computer that you will be using for TCP/IP. 
  165. # Specify packet driver for "raw" Ethernet packet driver.
  166. #
  167. attach packet 0x61 ec0 25 1500
  168. #
  169. # Specify IP address for the interface using the "ifconfig"
  170. # command.
  171. #
  172. ifconfig ec0 ipaddr [192.70.224.3]
  173. #
  174. # Specify packet driver for NetBIOS packet driver.
  175. #
  176. attach packet 0x60 nb0 25 1500 
  177. #
  178. # Set up the ka9q software to PROXY ARP for each of the
  179. # PCs on which the NetBIOS packet driver is running.
  180. #
  181. arp publish [192.70.224.2] ether 00:00:c0:48:92:19
  182. arp publish [192.70.224.5] ether 00:00:c0:48:92:19
  183. arp publish [192.70.224.6] ether 00:00:c0:48:92:19
  184. arp publish [192.70.224.7] ether 00:00:c0:48:92:19
  185. arp publish [192.70.224.8] ether 00:00:c0:48:92:19
  186. arp publish [192.70.224.9] ether 00:00:c0:48:92:19
  187. arp publish [192.70.224.10] ether 00:00:c0:48:92:19
  188. arp publish [192.70.224.11] ether 00:00:c0:48:92:19
  189. arp publish [192.70.224.12] ether 00:00:c0:48:92:19
  190. arp publish [192.70.224.13] ether 00:00:c0:48:92:19
  191. arp publish [192.70.224.14] ether 00:00:c0:48:92:19
  192. arp publish [192.70.224.15] ether 00:00:c0:48:92:19
  193. arp publish [192.70.224.16] ether 00:00:c0:48:92:19
  194. arp publish [192.70.224.17] ether 00:00:c0:48:92:19
  195. arp publish [192.70.224.18] ether 00:00:c0:48:92:19
  196. arp publish [192.70.224.19] ether 00:00:c0:48:92:19
  197. arp publish [192.70.224.20] ether 00:00:c0:48:92:19
  198. arp publish [192.70.224.21] ether 00:00:c0:48:92:19
  199. #
  200. # Set up a default, static route to the external router.
  201. #
  202. route add [192.70.224.0]/24 ec0
  203. route add default ec0 [192.70.224.1]
  204.  
  205. #
  206. # Set up static routes to each of the machines on which
  207. # the NetBIOS packet driver is operating.
  208. #
  209. route add [192.70.224.2] nb0
  210. route add [192.70.224.5] nb0
  211. route add [192.70.224.6] nb0
  212. route add [192.70.224.7] nb0
  213. route add [192.70.224.8] nb0
  214. route add [192.70.224.9] nb0
  215. route add [192.70.224.10] nb0
  216. route add [192.70.224.11] nb0
  217. route add [192.70.224.12] nb0
  218. route add [192.70.224.13] nb0
  219. route add [192.70.224.14] nb0
  220. route add [192.70.224.15] nb0
  221. route add [192.70.224.16] nb0
  222. route add [192.70.224.17] nb0
  223. route add [192.70.224.18] nb0
  224. route add [192.70.224.19] nb0
  225. route add [192.70.224.20] nb0
  226. route add [192.70.224.21] nb0
  227. #
  228. # Time To Live is the maximum number of hops a packet can take 
  229. # before it is thrown away. This command prevents an inadvertent 
  230. # infinite loop from occuring with packets in the network.
  231. #
  232. ip ttl 50 
  233. #
  234. # The Maximum Segment Size is the largest single transmission that 
  235. # you will send. An mss of 216 corresponds to the mtu of 256 set
  236. # up in the attach command above, overhead bytes considered.
  237. #
  238. tcp mss 576
  239. #
  240. # The Window parameter establishes the maximum number of bytes 
  241. # that may be outstanding before your system expects an ack.
  242. # If window is twice as big as mss, for example, there will be two
  243. # active packets on the channel at any given time... large values
  244. # of window provide improved throughput on full-duplex links, but
  245. # are a problem on the air.  Keep  mss <= window <= 2*mss if you're
  246. # on the air.
  247. tcp window 8192
  248. #
  249.  
  250.  
  251. 5.0  POSSIBLE FUTURE ENHANCEMENTS
  252.  
  253.  
  254. It would appear, from examining NetBIOS documentation, that it is
  255. possible to support ARP on NetBIOS using NetBIOS broadcast
  256. datagrams.   Hence, a possible future enhancement would be to
  257. support NetBIOS broadcasts so that ARP requests can be sent.
  258.