NETBIOS ISSUE---TCP Handoffs


cel@mitre-bedford.ARPA
Mon, 08 Sep 86 18:08:27 -0500


        At the NETBIOS-TCP/IP Interface Specification Forum held Aug 28 in
Monterey, CA two proposals were discussed. A major issue revolved around the
capability of some operating systems to support handoff of TCP connections
from one process to another.

        Are there problems in handing a TCP connection from one process to
another for some operating systems? Which operating systems have difficulty?

        Please mail comments to Please mail comments to netbios@mitre-bedford.arpa.

        The problem in the context of the NETBIOS issue is described below.

        Assume two hosts, one contains a client application program and the
other contains a server application program. the problem is to establish a
session between the programs (message oriented, no loss or duplication). The
hosts contain NETBIOS agents for their respective application programs to
interpret the various NETBIOS commands. Also assume that the
server host contains a NETBIOS validation program that verifies if two NETBIOS
named application programs may communicate. Exchanges may occur between the
client and validation programs via UDP messages as in proposal one or over a
TCP connection as another proposal. Data passed over a session between
application programs occurs over a TCP connection.

        One proposal (figure A below) calls for passing all session control
information via UDP messages between the NETBIOS client program located in the
source host and the NETBIOS validation program in the destination host.
The NETBIOS Name service has provided the IP address of the server host.
The validation pgm is accessed through a TCP well known port (wkp). If the
session is valid (a server application has posted a NETBIOS listen for c-name)
then the server program does a fully specified TCP passive open using s-port,
c-port and the IP addresses. The client program then establishes a TCP
connection to the server program using s-port, c-port, and the IP addresses.
No handoff of a TCP connection between the validation program and the server
program is required.

                Figure A: NETBIOS Names Passed via UDP

     CLIENT SERVER

                                                        Validation pgm does
                UDP(c-name, s-name, c-port)-------> UDP wkp listen to any
        (timeout)
                                                        agent pgm does TCP
                <--------------UDP(s-port)--------- fully spec passive
                                                        open on s-port,c-port
                                                   (timeout)
                TCP(s-port) SYN ------------------> TCP conn established
                                                        to NETBIOS agent
                <---------------------SYN---------
                <-------------data---------------->

                             etc.

        Another proposal (figure B below) calls for the client to determine
the server's TCP port (s-port) via the NETBIOS Name service. Meanwhile the
NETBIOS validation program posted a TCP partially specified passive open (ppo)
open on s-port due to a NETBIOS LISTEN issued by an application program. The
client program then establishes a TCP connection to the client validation
program and passes session control information (c-name,s-name) over the
connection. If the session is valid between the two NETBIOS named
applications, then the TCP connection is handed off to the server agent
program. If the session is rejected then the TCP connection is broken.

                Figure B: NETBIOS Names Passed via TCP Connection

        CLIENT SERVER

                                                        Validation pgm does
                                                        TCP ppo on s-port
                TCP(s-port) SYN----------------->
                <---------------------------SYN--
                ------data(c-name, s-name)------> Validate and handoff
                                                        TCP conn to server
                                                        agent pgm
            (timeout)
                <----------data(ack, nack)-------
                <----------data----------------->

                            etc.

 Thanks, ---- Lee LaBarre



This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:36:35 GMT