[comp.protocols.tcp-ip] NetBios, TCP, SMB, History

dcrocker@TWG.COM (Dave Crocker) (11/11/88)

The use of NetBios over TCP has been a very interesting merging of work
in the research and hard-core commercial worlds.  Some of the benefits of
the merging were cited in the notes sent late last month and early this
month, but there are a few points that should be clarified:

1.  Netbios mostly uses TCP, not UDP.  UDP is used for NetBios datagrams
and various "management" tasks, such as name registration and lookup.  This
applies to all of the vendor implementations that were in existance two
years ago.

2.  Netbios does not allow file sharing.  Let me repeat this:  Netbios is only
a facility for the sending of uninterpreted bits.  It carries NO semantics,
such as file structure.  This function is performed through a protocol that
runs on top of Netbios, called Server Message Block (SMB).  As I understand
the history, Sytek did the original NetBios, for IBM and Microsoft did the
original SMB, also for IBM.

3.  Ascribing to vendors the intent of using Netbios over nationwide
networks, as the reason for puting Netbios over TCP, sounds great but does not
appear to apply to any of the original vendor implementations.  Most, in fact,
did not allow any access to a non-broadcast network.  Of those that did, only
one did it in a "natural" fashion.  The standard approach was to hard-code
some NetBios names as mapping to a specific IP address, which thereby might
be on another network.  Only one used an internet name server, with fully
dynamic registration and lookup.  (I.e., the only hard-wired information was
the IP address of the server.)  Getting this sort of feature into the
standard that finally emerged was a very, very hard-fought battle.  The
original intent of the standards group was to limit the functionality to
broadcast nets (read:  a single LAN) only.

4.  So what was the reason?  Simple.  For the PC market, Netbios was the
ONLY network service/"protocol" standard.  It vastly outweighed whatever was
in second place.  So, if a vendor wanted to hit the PC-to-PC networking
market, they implemented NetBios.  Why do this over TCP?  Because that was
the protocol of choice for most of the vendors.  IBM published to functional
specifications for the service, but not the underlying protocols.  Hence,
vendors were free to choose their own.  Most networking vendors in that
market had experience with XNS and/or TCP and chose one or both and the
underlying framework, onto which they added their own NetBios protocol.
The only requirement was that all PC applications had to see the same
Int 5C NetBios service.  (Simply put, if it worked on the original Sytek
implementation, it was supposed to work on the vendor's implementation.  The
application, of course, does not see that actual protocol.)

Dave Crocker