[comp.protocols.tcp-ip] NetBIOS over TCP/UDP

stevens@hsi.UUCP (Richard Stevens) (10/11/88)

Is anyone aware of any implementations of NetBIOS over TCP/UDP,
as specified in RFCs 1001 and 1002 ??  (I posted this to the
comp.protocols.ibm newsgroup last week and got zero response.)

Also, if such a beast exists, does it have a *reasonable*
user interface, as opposed to the PC NetBIOS interface,
where everything is done through a single function call with
a single argument (a pointer to an Ncb) ?

	Richard Stevens
	Health Systems International, New Haven, CT
	   stevens@hsi.uu.net
           ... { uunet | yale } ! hsi ! stevens

romkey@asylum.UUCP (John Romkey) (10/11/88)

In article <185@hsi86.hsi.UUCP> stevens@hsi.UUCP (Richard Stevens) writes:
>Is anyone aware of any implementations of NetBIOS over TCP/UDP,
>as specified in RFCs 1001 and 1002 ??  (I posted this to the
>comp.protocols.ibm newsgroup last week and got zero response.)

I believe that Excelan, FTP Software and Ungermann-Bass do. That list
could be wrong and it's probably not all-inclusive.

>Also, if such a beast exists, does it have a *reasonable*
>user interface, as opposed to the PC NetBIOS interface,
>where everything is done through a single function call with
>a single argument (a pointer to an Ncb) ?

Sorry, but that IS Netbios. The programming interface defines the
semantics of the network operations and how you call them, and that's
it. Netbios is the programming interface, not what's under it.

RFCs 1001 and 1002 define some protocols that allow the programming
interface to be implemented on top of TCP/IP. These protocols are
necessary because the semantics of NETBIOS do not map well to the
semantics of TCP and UDP, particularly in the area of names.
-- 
			- john romkey
UUCP: romkey@asylum.uucp		ARPA: romkey@xx.lcs.mit.edu
 ...!ames!acornrc!asylum!romkey		Telephone: (415) 594-9268

stevens@hsi.UUCP (Richard Stevens) (10/12/88)

In article <957@asylum.UUCP>, romkey@asylum.UUCP (John Romkey) writes:
> 
> Sorry, but that IS Netbios. The programming interface defines the
> semantics of the network operations and how you call them, and that's
> it. Netbios is the programming interface, not what's under it.

OK, my next question is "what is the purpose of NetBIOS over TCP" ?
I see two answers:  (1) To take the existing horde of NetBIOS
applications and run them on other systems;  (2) To provide another
communication interface for a programmer.

The problem with (1) is that I'd guess 99.9% of all existing NetBIOS
applications are written *specifically* for the IBM PC and that a
vast majority of them contain a lot of assembler code.  That means to
take the source for, say, a file server, and port it to a UNIX VAX
that supports "NetBIOS over TCP" is non-trivial.  If there are
existing applications in C, for example, then does there exist a
standard C interface to NetBIOS that can be used in different
environments (i.e., both on a PC with "real" NetBIOS and on a systems
with NetBIOS over TCP) ?

The problem with (2) is who needs it ?  Wanting to preserve the
NetBIOS "user interface" seems like emulating the old OS/360 IO
Control Blocks using the Unix i/o interface.  Yes, it can be done,
but why ?  IBM has nicely given us a similar interface to TCP/UDP/IP
under VM, where everything happens through a single function.  That's
an interface that's not worth preserving, and it is non-trivial to
port any of our TCP applications from a BSD VAX using sockets to this
beast.

As I understand the interface for NetBIOS, you get a single function
that takes a single argument (ptr to an NCB struct) and everything
happens from there.  It would seem simple to add a better user
interface on top of that, but it would also be nice if that interface
were standard across different vendor's implementations.

It seems I'm missing something in the reasoning behind wanting
NetBIOS over TCP, but given that vendors exist that sell this as a
product there must be a need for it.  Can someone shed some light on
just what people are doing with it ?  Thanks.

	Richard Stevens
	Health Systems International, New Haven, CT
	   stevens@hsi.uu.net
	   ... { uunet | yale } ! hsi ! stevens

romkey@asylum.UUCP (John Romkey) (10/13/88)

In article <187@hsi86.hsi.UUCP> stevens@hsi.UUCP (Richard Stevens) writes:
>OK, my next question is "what is the purpose of NetBIOS over TCP" ?
>I see two answers:  (1) To take the existing horde of NetBIOS
>applications and run them on other systems;  (2) To provide another
>communication interface for a programmer.
>
>The problem with (1) is that I'd guess 99.9% of all existing NetBIOS
>applications are written *specifically* for the IBM PC and that a
>vast majority of them contain a lot of assembler code.

Very correct. Some vendors have talked about "porting NetBIOS" to UNIX
or other such systems. What they mean is bringing up the RFC 1001/1002
protocols under these systems, and some kind of who knows what
programming interface that probably can't have anything to do with the
standard NetBIOS interface unless you're running on an 80x86 system.

There's a worse problem, even in the PC domain. Many NetBIOS
applications, especially IBM-written ones, make use of undocumented
NetBIOS features, or timing or other bizarre details of the oldest
NetBIOS implementations, and it's pretty difficult to get these things
running correctly over NetBIOSes that are substantially different from
the IBM ones.

>The problem with (2) is who needs it ?  Wanting to preserve the

I don't know.

>It seems I'm missing something in the reasoning behind wanting
>NetBIOS over TCP, but given that vendors exist that sell this as a
>product there must be a need for it.  Can someone shed some light on
>just what people are doing with it ?  Thanks.

I think the whole purpose of NetBIOS over TCP is a political/marketing
one. A couple of years ago a lot of people thought that NetBIOS was
going to be THE way to go, THE way to talk to networks, because IBM
had blessed it. Right. So you saw NetBIOS over Netware, over 3+, over
ISO, over DECNet (I think), and then over TCP, by Excelan and
Ungermann-Bass. At the Air Force's behest (because of ULANA and all),
RFC 1001 and 1002 were written after much beating up of all parties
involved so that different vendors' NetBIOS over TCP's could actually
interoperate.

Why do the vendors care? As near as I can tell, it's so that they can
say they're IBM-compatible (never mind that a TCP NetBIOS wouldn't
talk to a NetBIOS over IBM protocols), and so because their customers
really told them they wanted NetBIOS.

When I was at FTP Software, I saw that a lot of the market place
didn't have the foggiest idea what NetBIOS was. "It lets you share
printers!" they cried. "We can use fileservers!" they said. "It does
record locking."

Right.

So now probably thousands of users have their NetBIOSes, like they
asked for. I think some of them run Microsoft Networks or the PC LAN
program in some version or another over it (seems a bit gratuitous on
Novell Netware or 3COM 3+), and there are a few database products that
let you query a central database through protocols that run over
NetBIOS. Other than that, I don't have the faintest idea what people
are using it for.
-- 
			- john romkey
UUCP: romkey@asylum.uucp		ARPA: romkey@xx.lcs.mit.edu
 ...!ames!acornrc!asylum!romkey		Telephone: (415) 594-9268

larry@tapa.UUCP (Larry Pajakowski) (10/14/88)

Well we do run Netbios over UDP and are very pleased with it.  Here are
some reasons.

1.  Our primary reason is that we dos software developement for both DOS and
Unix/Xenix.  Our server is a Compaq-386/20 running Xenix.

2.  We have 1 set of source on the server for both Xenix and DOS in 1 place.

3.  We use SCCS on the Xenix side for all source.

4.  Our implimentation comes with ftp and telnet which allows us to test the
Xenix version from a DOS box.

5.  Dates and time stamps are preserved between the Xenix and Dos files.

6.  We had our choice of servers: Xenix, Vaxen under VMS, NCR towers etc.

7.  Dos developers can share the LASER printer on the Xenix system.

8.  Dos developers use uucp heavily to move files between remote sites.

9.  Other non technical personel are also on the LAN makeing for moving 
documents and mail easy.

All in all we are very pleased with the development environment.


Larry
larry@tapa

waynec@microsoft.UUCP (Wayne Chapeskie) (10/15/88)

[This is a bit long, but I hope it clarifies things a bit.]

In article <187@hsi86.hsi.UUCP> stevens@hsi.UUCP (Richard Stevens) writes:
>In article <957@asylum.UUCP>, romkey@asylum.UUCP (John Romkey) writes:
>> 
>> Sorry, but that IS Netbios. The programming interface defines the
>> semantics of the network operations and how you call them, and that's
>> it. Netbios is the programming interface, not what's under it.
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
>OK, my next question is "what is the purpose of NetBIOS over TCP" ?
>I see two answers:  (1) To take the existing horde of NetBIOS
>applications and run them on other systems;  (2) To provide another
>communication interface for a programmer.

Not exactly.  "Netbios" tends to be a rather slippery term.
There are really two aspects to "Netbios":

1.  An msdos programming interface  (the "NCB", or "Int5c" interface).
    This interface is what was promulgated by IBM in their original
    PCNET product, picked up by Microsoft in MSNET.

2.  A set of networking functionality, which is implied by the
    interface.  This functionality includes a reliable, virtual
    circuit transport facility with the ability to preserve message
    boundaries, an unreliable datagram facility, and a naming
    convention.

    The precise nature of the underlying network transport was not
    defined:  you could put any
    combination of hardware and software transport you wanted there,
    as long as it provided the kind of circuit, datagram, and naming
    facilities implied by the upper level interface.
    Msdos network vendors did exactly that:  each had their own combinations
    of network hardware and protocols (often completely nonstandard).
    Even if they did use standard protocols (ISO, TCP/IP, XNS) down in the
    transport level, they still had to do something on top of them to
    provide the session level naming facilities required by the interface.
    You even have  cases where two vendors have both used
    the same transport level protocols (XNS, TCP/IP), but since they
    use different methods to implement the Netbios naming support, their
    Netbios implementations cannot communicate.

While the NCB interface was rigidly defined, and msdos programmers
have written "Netbios applications" which use it,
the NCB interface itself is strictly an msdos convention, and a pretty
sleazy one at that...  [There have been attempts to provide
exactly such an interface on Unix systems, in order to somehow make it
easier to port msdos Netbios programs to Unix.  I consider such
attempts misguided, and quite inappropriate to a Unix environment].
There is no requirement that the NCB interface be used to "speak
Netbios"; any interface which makes sense to the local
operating system can be used.

As a concrete example:  we have hordes
of Ungermann-Bass boards around here which implement all of Netbios
in slushware.  An msdos machine has a driver which takes "int 5c" NCB
commands and tells the board to do the appropriate thing.
On my Unix machines, I did a unix device driver which knows how to
talk to the board.  I have done versions of the driver which used
a device ioctl interface, and versions which use Sys
5.3 streams/TLI interfaces to talk to the driver.  I have never provided
an NCB interface.  Yet programs on the Unix machine can speak to
programs on the msdos machine, and so are in a sense "Netbios programs".

As you may gather from the earlier discussion, interoperability
among Netbios implementations is essentially non-existent.
Msdos programmers have this interface to write programs
to, but their programs can only talk to each other if the underlying
network transport services which implement the interface are
compatible.   RFC 1001/1002 attempt to ensure that this is the case
if the the underlying transport is TCP/IP.
They specify a protocol which lives on top of TCP/IP, implementing
Netbios name service, datagram delivery, circuit establishment,
and so on.  [A similar effort is also being made for Netbios over ISO TP4.]
The RFC's ensure that vendor A's "Netbios over TCP/IP" will
communicate with vendor B's "Netbios over TCP/IP". 

Since the RFC's do not specify a programming interface to the Netbios
facilities, the interface will be whatever is appropriate for the host
system.  Msdos implementations would no doubt be NCB, Unix
implementations may use the socket interface, TLI, generic cover
routines, or whatever, depending on how the RFC layer is implemented.
The point is to make sure that you know how to talk to the msdos machine.

So, I see two reasons for the "Netbios over TCP/IP" spec:
1.  Guarantee interoperability for those msdos Netbios implementations
which use TCP/IP as their underlying transport.
2.  Provide a mechanism for machines which already talk TCP/IP (your
average Internet host) to communicate with msdos Netbios programs, 
(i.e. msdos programs which do not talk TCP/IP directly).

[My apologies if you knew all this already.  However, this whole
"Netbios" silliness is often misunderstood...].

Wayne Chapeskie
(206)-882-8080			UUCP:  ...{uw-beaver,uunet}!microsoft!waynec

snorthc@RELAY-NSWC.NAVY.MIL (10/19/88)

What is NetBIOS used for?

A couple years ago we managed to get our first versions of PCIP
running (CMU and FTP SW).  I was sure management would be happy.
The PCs could speak the native tongue of the internet, exchange
files with various hosts running TCP/IP, even send mail.  I figured
a massive bonus would surely come my way.  No, instead it was a
swift kick.

We want TRANSPARENT file access, mail, and print services for our
PCs, said management.

So we studied PC NFS, NetBIOS/TCP, and Locus.  None of these solutions
satisfy file, mail, print services 100%.  

That however is the answer [ I think] to the question what is NetBIOS
for.  Even just as a file service, it had potential.  What choked it
for us was the memory required to make it work.  Why would anyone
want transparent file access?  Sigh.  To this day, I wouldn't want
to be held to this, but supposedly users do not want to be bothered
to log in via FTP to xfer a file.  They want the file to be referenced
as drive "F:".

These are a different breed of users than those who subscribe to
info TCP I suspect.  Anyway, that is all in the past.  The future
is my question.  I read in the OS/2 SDK for the Lan manager that it
is very MS-NET and NetBIOSy.  Assuming for a minute (big assumption)
OS/2 has some success in the marketplace, is this a boost for NetBIOS?
Will we have to take NetBIOS/ISO (NetBIOS/GOSIP in my case) seriously?

Stephen Northcutt

Caveat: there are questions that have no right answer.  Discussions of
NetBIOS tend to lead to such questions.

renglish@hpisod1.HP.COM (Robert English) (10/26/88)

> / snorthc@RELAY-NSWC.NAVY.MIL /  4:49 am  Oct 19, 1988 /

> That however is the answer [ I think] to the question what is NetBIOS
> for.  Even just as a file service, it had potential.  What choked it
> for us was the memory required to make it work.  Why would anyone
> want transparent file access?  Sigh.  To this day, I wouldn't want
> to be held to this, but supposedly users do not want to be bothered
> to log in via FTP to xfer a file.  They want the file to be referenced
> as drive "F:".

Saying "users don't want to be bothered" trivializes the issue somewhat.
There are many DOS applications in which users never see the actual
files involved.  The application presents them with menus to perform
tasks, and manages the files itself.  A user who had to transfer all of
the necessary files over via FTP would have to be much more
sophisticated than one who merely used the application.

Furthermore, there is the issue of file-sharing.  If users access the
files on the remote machine directly, they can share effectively share
data with other users.  If they must copy the data back and forth, they
are likely to get inconsistent versions, forget to do the copies, etc.
(I know, you've never walked away from a terminal without writing out a
file).

Working in a non-transparent environment is significantly more
complicated than working in a transparent one.

--bob--

todd@SEAS.UCLA.EDU (Todd Booth) (11/01/88)

In article <187@hsi86.hsi.UUCP> stevens@hsi.UUCP (Richard Stevens) writes:
>OK, my next question is "what is the purpose of NetBIOS over TCP" ?
>I see two answers:  (1) To take the existing horde of NetBIOS
>applications and run them on other systems;  (2) To provide another
>communication interface for a programmer.

There's a more important reason.  

> (1)

A NetBIOS over TCP interface isn't required to run NetBIOS on other
systems.  Any NetBIOS interface can do that.

> (2)

NetBIOS over TCP doesn't provide a new communication interface to the
programmer.  If implemented correctly, the NetBIOS interface should
look the same if it runs on top of ISO Network, TCP, IP, LLC, IPX,
XNS, ...   The whole point of a standard interface (NetBIOS) is to
shield the programmer from the details of the lower layers.  

I see the advantage of NetBIOS over TCP/IP as the ability to provide
NetBIOS with an reliable data stream over an IP based network.

>It seems I'm missing something in the reasoning behind wanting
>NetBIOS over TCP, but given that vendors exist that sell this as a
>product there must be a need for it.  Can someone shed some light on
>just what people are doing with it ?  Thanks.

Don't know what's being done, but here's one example of what can be
done:

Simtel is a real pain for new users to access files via FTP.  Simtel
could run one of the PC DOS based network operating systems that 
require NetBIOS, for example IBM's PC LAN Program.  They could use a
NetBIOS over TCP/IP interface and develop a custom DOS application
which provides uses a menu front end to retrieving their existing
files.  This would allow other NetBIOS over TCP/IP users throughout
the internet to have a menu front end to the Simtel directories, in
full color, with optional help keys, file definitions, automatic file
downloading (note that FTP would no longer be required).  In other
words the ease of use of typical PC applications with the
communications capabilities of TCP/IP.

Disclaimer: I know very little about the NetBIOS over TCP/IP standard,
jsut a few things about layered network architechure.

--todd booth / ucla data communications

ArpaNet      todd@seas.ucla.EDU
UUCP         {ihnp4,ucbvax}!ucla-cs!todd
Voice        +1 (213) 825-1933
BitNet       csdctgb@uclamvs.bitnet

--todd