INF: OS/2 LAN Man Named Pipe Technical and Performance Info

ID Number: Q61652

2.00 2.10

OS/2

Summary:

Listed below are questions and answers involving technical and

performance information pertaining to OS/2 LAN Manager versions 2.0

and 2.1.

Note: The following statements are true for OS/2 LAN Manager versions

2.0 and 2.1. This does not mean that future implementations will not

change in the future.

More Information:

1. Q. What is the mapping between named pipes in OS/2 LAN Manager 2.0

on a network, and connection oriented services in the NetBIOS

and underlying protocol layer?

A. All of the OS/2 LAN Manager services (including named pipes) are

provided by using a ring 0 NetBIOS interface. Please note that

the ring 3 NetBIOS interface is provided by OS/2 LAN Manager.

2. Q. If you have a single named pipe, how many connections can you

have to it across the network? Can multiple client machines

share the same named pipe on one server?

A. A single instance of a named pipe can hold one client. However,

you can make numerous instances of the same pipe name, to which

you can connect an equal number of clients. The maximum number

of instances that can be obtained from a named pipe is

determined by the first DosMakeNmPipe() call (a value of 0xFF

means unlimited).

Please note that the system will most likely run out of

resources (memory) if you attempt to make more pipes than it can

handle. Also, depending on the implementation, various server

settings may increase net performance if your server is intended

to provide pipe I/O to many instances.

3. Q. If you are using multiple instances of a named pipe on the OS/2

server to connect to multiple MS-DOS clients, does each instance of

the named pipe use a connection in the NetBIOS? Or does OS/2 LAN

Manager 2.0 handle multiplexing/demultiplexing of data through

one NetBIOS connection?

A. The OS/2 LAN Manager server requires one NetBIOS session for

each unique client (VC). If you have four workstations, each

with two pipes open to one server, the server requires four

NetBIOS sessions (one for each workstation). All workstation I/O

(named pipes, redirected file/print I/O, and so on.) is multiplexed

on one session.

4. Q. If you are running applications on an OS/2 server using named

pipes to MS-DOS clients, and also running applications on an

OS/2 server and other MS-DOS clients using NetBIOS, what

resources are used in NetBIOS and the underlying protocol

layers? For example, if an application is accessing NetBIOS

directly, how will it affect OS/2 LAN Manager's ability to use

named pipes?

A. If you use up all of the NetBIOS resources from underneath the

MS-DOS redirector, it will stop functioning until the application

releases some of the resources. The OS/2 redirector will control

how many network control blocks (NCBs) can be submitted from

application processes. There are settings in LANMAN.INI that

control how many resources must be guaranteed.

Taking NCBs away from OS/2 LAN Manager merely lowers the amount

of concurrent net activity that can be performed. This should

not be a problem unless you have an NCB (or LSN) hungry

application, or are stressing your OS/2 LAN Manager

workstation/server. If this is the case, the LANMAN.INI and

PROTOCOL.INI values should be set to provide OS/2 LAN Manager

with the required number of resources to satisfy the demand.

5. Q. Is there a way to determine the number of free connections left

or available?

A. Yes, this can be done by using the NETBIOS STATUS (33H {wait} /

B3H {return} NCB. Please refer to the "IBM Local Area Network

Technical Reference" manual, or "Inside NetBIOS" by Haugdahl for

more information.

6. What kinds of resources (that is, threads, locked in memory, and so

on) does OS/2 LAN Manager 2.0 use when a connection is made to a

named pipe from across the network?

Connection Resources

---------- ---------

Workstation The same resources that are used by any other

remote file handle.

Server The same resources that are used by any other

remote file handle, plus the overhead for a local

pipe (remote named pipe overhead is the same as if

it was a local named pipe on the server).

7. Q. What are the advantages of using message stream pipes as opposed

to byte stream pipes? For example, when transferring 4K messages

between the client and server via Ethernet, what are the

performance and resource penalties of using message streams,

instead of a byte stream?

A. Message stream pipes are slightly slower than byte stream pipes.

The performance between message-mode and character-mode named

pipes will not differ drastically unless you take advantage of

DosTransactNmPipe(), or are using small stream I/O. If this is

the case, the difference between the message or byte mode

performance will be apparent.

8. Q. By using a message stream to keep the message from being

fragmented, are there any additional memory or performance

penalties that I will incur as opposed to using byte stream

named pipes?

A. There is an overhead of a couple of bytes per write done into

the pipe to keep track of the message size.

Please note that the extra bytes typically will not make a

difference in performance. The best way to increase performance

is to cut down the number of packets that hit the wire (thus,

reading 100 bytes will be much faster than reading ten 10-byte

packets from a file).

Additional reference words: 2.00 2.10