-------------------------------- 3Com NetBIOS Protocol Parameters %VER 1.1 -------------------------------- INTRODUCTION ============ This document discusses the parameters that control the 3Com NetBIOS Protocol (NBP). This document assumes familiarity with the included tuning guides for NBP (DOSTUNE.TXT and OS2TUNE.TXT). It is expected that most users will not need to read this document. It is intended primarily for LAN administrators and installers. PARAMETERS ========== These parameters are stored in the NBP section of the PROTOCOL.INI file. This file is located in either C:\3OPEN\DOSWKSTA\LANMAN\DRIVERS (for DOS netstations), C:\3OPEN\SERVER\LANMAN\DRIVERS (for OS/2 servers), or C:\3OPEN\OS2WKSTA\LANMAN\DRIVERS (for OS/2 netstations). DRIVERNAME: This specifies the device driver name of the NBP stack. The only valid value is nbp$, for example: drivername = nbp$ This keyword must always be specified. The string is not case sensitive. BINDINGS: This specifies the logical name of the network adapter (MAC) driver with which to bind. NBP must be bound to one and only one MAC driver. For example: [ETHERLINKII] drivername = elnkii$ [NBP] drivername = nbp$ bindings = etherlinkii This keyword must always be specified. DEFAULTS: This specifies that default values for a particular class of netstations should be set up. This has the same effect as setting values for each of the following keywords: SESSIONS, COMMANDS, NAMES, REMOTENAMES, TXBUFFERS, and RXBUFSIZE. The assignments take effect when the DEFAULTS line is parsed, so they will override any previous lines, and will in turn be overridden by any following. There are six valid classes: MIN-USER, LIGHT-USER, USER, POWER-USER, SERVER and POWER-SERVER. For example: defaults = power-user The defaults for each class are: +---------------- Class -----------------+ MIN- LIGHT- USER POWER- SERVER POWER- USER USER USER SERVER ------------------------------------------------------- SESSIONS 2 4 6 16 64 128 COMMANDS 5 8 12 32 96 192 NAMES 5 8 16 16 16 32 REMOTENAMES * 2 3 6 16 32 TXBUFFERS * 2 3 8 32 64 RXBUFSIZE 512 1488 1488 4464 16384 32768 COMPATIBLE Y N N N N N MEMORY USED DOS 20K 21K 23K 30K 57K 96K OS/2 LOW 256 256 256 256 256 256 OS/2 HIGH 22K 23K 25K 32K 59K 98K This parameter is optional. USER is assumed. The defaults for each class should be appropriate for most users, but you can set parameters individually if you wish. The keywords that are not specifically listed are not affected. MIN-USER is intended for environments where the amount of free memory after the network is loaded is all-important, even at the cost of significantly reduced performance and flexibility. MIN-USER also sets COMPATIBLE mode, which sets REMOTENAMES and TXBUFFERS to 0. LIGHT-USER is a compromise between MIN-USER and USER--it has many of the limitations of MIN-USER but performance should be similar to USER. Both MIN-USER and LIGHT-USER configurations disable 386 code usage, since the 386 code consumes somewhat more memory than the 286 code. PRIMARY (DOS only): This specifies that the NBP driver should respond to the primary LAN adapter number (0) rather than the alternate LAN adapter number (1). This is used when more than one NetBIOS stack is installed in the same machine to distinguish between the two stacks. The default LAN adapter number is PRIMARY (0). Only one of PRIMARY and ALTERNATE should be specified. This keyword has no arguments. For example: primary This keyword is normally not necessary. It is ignored under OS/2. See also ALTERNATE. ALTERNATE (DOS only): ALTERNATE is the opposite of PRIMARY. This specifies that the NBP driver should respond to the alternate LAN adapter number (1). See also PRIMARY. This keyword is normally not necessary. It is ignored under OS/2. SESSIONS: This specifies the maximum number of simultaneous NetBIOS sessions that can be established with this station. A session is a two-way conversation between one station and another. LAN Manager establishes a single session for all network file system access from a netstation to a server. Additional sessions may be used by other NetBIOS applications. This parameter defaults to 6, which is usually sufficient for a netstation. The valid range is 0 to 254. If set to zero, the default is assumed. For example: sessions = 42 This keyword is optional. It will usually be specified in server configurations or in netstations that are heavy users of network resources. This parameter may need to be increased if the message: NET820: Net BIOS session limit exceeded or The network BIOS session limit was exceeded is displayed by the redirector or if a NetBIOS application displays a similar message which implies that more network sessions are needed. COMMANDS: This specifies the maximum number of Network Control Blocks (NCBs) that may be outstanding to NBP at any given time. An NCB is associated with each request the NetBIOS application (e.g. LAN Manager) makes to NBP. The default is 12. The valid range is 0 to 255. If set to zero, the default is assumed. For example: commands = 42 This keyword is optional. It will usually be specified in server configurations or in netstations that are heavy users of network resources. This parameter may need to be increased if the message: NET806: Net BIOS command limit exceeded is displayed by the redirector or if a NetBIOS application displays a similar message which implies that more network commands are needed. NAMES: This specifies the maximum number of NetBIOS names that can be defined on the local netstation (not including the permanent node address). A NetBIOS name will be defined by an application to allow sessions to be established or datagrams to be sent to it (LAN Manager may use up to 4 names for various reasons). The default is 16. The valid range is 0 to 253. If set to zero, the default is assumed. If set to 1, 2 is used. For example: names = 42 This keyword is optional. It will usually be specified in server configurations or in netstations that are heavy users of network applications. This parameter may need to be increased if the message: NET819: Network name limit exceeded or The network name limit was exceeded is displayed by the redirector or if a NetBIOS application displays a similar message which implies that more network names are needed. REMOTENAMES: This specifies the number of NetBIOS names in the remote name cache. The remote name cache is used to remember which netstation defined a remote NetBIOS name. This improves the performance of datagrams and session establishment. The default is 3. The valid range is 0 to 255. If set to zero, the default is assumed. If set less than 2, 2 is used. For example: remotenames = 42 This keyword is optional. It will usually be specified in server configurations. A reasonable value is to set this equal to the number of sessions. See also NAMELIFETIME. NAMELIFETIME: This specifies the amount of time in minutes that a remote NetBIOS name will be allowed to remain in the remote name cache without any activity. Once this period of time has elapsed the name will be forgotten and a broadcast will be necessary to find it again. The valid range is 0 to 30, where 0 implies no memory of remote names. For example: namelifetime = 4 This keyword is normally not necessary. The COMPATIBLE keyword forces NAMELIFETIME to zero. See also REMOTENAMES. COMPATIBLE: This specifies that some of the performance-enhancing features of NBP should be disabled in favor of strict conformance with IBM's NetBIOS implementation. These differences will probably not be noticed by most network aware applications. If you are having trouble with a particular network application, it may be useful to try specifying this keyword. This keyword has the following effect--TXBUFFERS is set to zero, TXBUFSIZE is set to zero, NAMELIFETIME is set to zero, and the REMOTENAMES cache is set to zero. A few other internal optimizations are also disabled. This keyword has no arguments. This parameter will override any of the above keywords if they are specified. For example: compatible This keyword is normally not necessary. LAN Manager does not require the use of this parameter. PROBETIMEOUT: This specifies the amount of time in milliseconds that the sender of a packet will wait for a response from the recipient before probing for a response. The default value is 125 ms. The valid range is 125 to 1000. This parameter can affect the performance of tests largely made up of unidirectional traffic. It may be desirable to increase this number for slower network media or adapters. For example: probetimeout = 420 This keyword is normally not necessary. TXBUFSIZE: This specifies the size in bytes of internal transmit cache buffers to be used by NBP. The transmit cache is used to improve the performance of certain kinds of requests. The default size is 128, which is suitable for LAN Manager (that is, sufficient to store most SMB request packets). The valid range is 64 to 512. For example: txbufsize = 420 This keyword is normally not necessary. The COMPATIBLE keyword disables the use of the transmit cache for strict IBM NetBIOS compatibility. See also TXBUFFERS. TXBUFFERS: This specifies the number of internal transmit cache buffers to be used by NBP. The transmit cache is used to improve performance by allowing the immediate completion of small NetBIOS Send requests. An internal copy is kept in the transmit cache in case a retransmission is required. This is not strictly compatible with IBM's NetBIOS implementations, which do not complete Send requests until they are known to have been received. However, most applications (including LAN Manager) do not depend on this behavior. The default value is 3. The valid range is 0 to 255. If set to zero, this feature is disabled. Increasing this number may improve performance in certain cases. For example: txbuffers = 42 This keyword is normally not necessary. It will usually be specified in server configurations. A reasonable rule of thumb is 1 transmit cache buffer for every 2 sessions. The COMPATIBLE keyword disables the use of the transmit cache for strict IBM NetBIOS compatiblility. See also TXBUFSIZE. TXTIMEOUT: This specifies the amount of time, in half second units, between transmissions of queries (such as the establishment of a session, or resolving a NetBIOS name). The default value is 1 half second. The valid range is 0 to 20. If set to zero, the default is used. For example: txtimeout = 4 This keyword is normally not necessary. See also TXCOUNT. TXCOUNT: This specifies the number of times a query will be retried before giving up (that is, the number of times an Add Name will be broadcast before assuming the name is unused). The default value is 6, which is reasonable for almost all cases. It might be necessary to increase this value in extremely busy or noisy environments. The valid range is 0 to 10. If set to zero, the default is used. If set to 1, 2 is used. For example: txcount = 2 This keyword is normally not necessary. See also TXTIMEOUT. RXBUFSIZE: This specifies the size in bytes of the receive packet buffer cache. The receive cache is used to hold packets that are received out of sequence or before a Receive request is posted. The cache is also used to hold packets that are being transferred by multiple receive requests. The default value is 1488. The valid range is 512 to 65440. This parameter affects the performance of heavily loaded netstations. For example: rxbufsize = 4242 This keyword is optional. It will usually be specified in server and heavy user configurations. Since NBP will not use a packet size larger than the receive cache, it may be desirable to increase this parameter to 2008 or larger for Token Ring networks (2008 is the maximum allowed by the original IBM Token Ring Adapters after accounting for overhead) for improved performance. The value of 4464 is known to work well in 16 Mb token ring adapters. MSPERTICK: This specifies the number of milliseconds that will elapse between each operating system timer tick. Under OS/2, this value can be obtained from the operating system directly and should not normally be specified. Under DOS, almost all systems use a fixed timer tick interval of 55 ms (18.2 Hz). However, there are some older machines that use a different interval. The valid range is 1 to 125. For example: mspertick = 42 This keyword is normally not necessary and its use is discouraged unless suggested by 3Com for your particular hardware. MAXDATAGRAM: This specifies that the maximum datagram length should be computed based on the maximum packet size supported by the media (or as specified by the MAC.MAXFRAME keyword, which will take precedence) rather than the default value of 512 bytes. For example: maxdatagram This keyword is normally not necessary. Normally, all netstations on an internet must use the same maxdatagram length. CPUTYPE: This specifies the type of CPU NBP will be run upon. Normally, NBP makes this determination automatically when it starts running, but CPUTYPE allows you to override this. The executable module that makes up NBP contains completely separate code segments for each of the possible processor types supported by this operating system. It will use one of these based on the specified cputype. The advantage is that the code can take advantage of specific features of the processor it is running on. The valid values are 0x86, 0x286 and 0x386 (0x86 is only valid under DOS), corresponding to the Intel CPU types 8088/8086, 80286, and 80386. The 80186 processor will be treated as an 80286 under DOS. For example: cputype = 0x286 This keyword is normally not necessary. Its use is discouraged except in extremely unusual situations (such as when suggested by 3Com). MAC.MAXFRAME: This specifies the maximum packet size in bytes that will be transmitted through the network adapter (MAC) driver by NBP. This overrides any information given to NBP by the MAC driver itself. The default is to determine the maximum packet size from information supplied by the MAC driver and RXBUFSIZE. The valid range is 0 to 65535. If set to zero, this keyword is ignored. For example: mac.maxframe = 4242 This keyword is normally not necessary. Its use is discouraged except in extremely unusual situations (such as when suggested by 3Com). MAC.RXSPACE: This specifies the amount of receive buffer space that is available on the network adapter. This parameter is used to override the information provided to NBP by the network adapter (MAC) driver. Normally, this parameter would only be used if the information provided by the MAC is incorrect. The valid range is 0 to 65535. If set to zero, this keyword is ignored. For example: mac.rxspace = 4242 This keyword is normally not necessary. Its use is discouraged except in extremely unusual situations (such as when suggested by 3Com). MAC.RXBLKSIZE: This specifies the granularity of the allocation of receive buffer space on the network adapter (for example, the Etherlink/MC adapter driver allocates its space in 256-byte blocks). This parameter is used to override the information provided to NBP by the network adapter (MAC) driver. Normally, this parameter would only be used if the information provided by the MAC is incorrect. The valid range is 0 to 65535. If set to zero, this keyword is ignored. For example: mac.rxblksize = 42 This keyword is normally not necessary. Its use is discouraged except in extremely unusual situations (such as when suggested by 3Com). ----- The following shows an example PROTOCOL.INI file for NBP. This file would be a reasonable configuration for a server. [ETHERLINK/MC] drivername = elnkmc$ maxtransmits = 48 [NBP] drivername = nbp$ bindings = etherlink/mc defaults = server ----- NBP Memory usage. The parameters specified in PROTOCOL.INI affect the amount of memory that will be used by NBP when it is installed. The following parameters affect this size: SESSIONS, COMMANDS, NAMES, REMOTENAMES, TXBUFSIZE, TXBUFFERS, and RXBUFSIZE. The data is divided into two areas: Control Data and Buffer Data. Each area may be no larger than 64K bytes in size. Control Data contains a fixed amount of internal data (less than 3K bytes) in addition to that detailed here. Under DOS, Buffer Data will also contain an interrupt stack of 256 bytes. Approximate usage by keyword: Statement Control Data (bytes) Buffer Data (bytes) --------- ------------ ----------- SESSIONS = s 158 x s 4 x s COMMANDS = c 52 x c NAMES = n 36 x (n + 1) REMOTENAMES = r 28 x r TXBUFSIZE = ts TXBUFFERS = tn 52 x tn ts x tn RXBUFSIZE = rs rs + 80 Under OS/2, most of the space occupied (all but about 256 bytes) is in high memory and does not affect the memory available in the DOS compatibility box. This is true regardless of whether you are using OS/2 1.0 or OS/2 1.1. Note that the size of the NBP.OS2 or NBP.EXE file on disk has little relation to the amount of memory it will occupy. NBP.EXE contains three versions of the code (8088, 80286 and 80386), but only one of these will be used on any given machine. NBP will temporarily occupy more memory while it is loading, but this will be reduced to the numbers given above once it has installed itself.