netbios over tcp/ip on samba

Christopher R. Hertel crh at
Mon Jan 14 10:52:03 GMT 2002


Samba implements the NBT layer.  Specifically, the NBT packet management
required to perform NetBIOS over TCP.  Samba *does not* implement the
NetBIOS API.  The NetBIOS API itself is not required for SMB and the point
of Samba is SMB.

There has been talk of writing a NetBIOS API tool but, as it turns out,
very very few people would actually find such a thing useful.  It would be
more useful to provide access to the NBT layer via a better, simpler API.
Samba does not (yet) do this.

I say "yet" because it is an area of interest for me.  If it can be made
to work without in any way compromising Samba's performance or security
then I may see if I can add it in.  That is a very, very big set of "if"s. 
As I said, there is really no need for Samba itself to provide access to
the NBT layer.  I would need to justify any such change--first to myself 
and then to the rest of the team--before adding anything new.  This is 
reasonable.  We need to serve the largest number of users, and breaking 
big things to add small things doesn't make sense.

Anyway, as I think of it... I think I see how it might be done.  Samba
currently supports File and Print shares.  I would need to add a new share
type.  This would work for NetBIOS Sessions, anyway.  The new share type 
would work something like inetd, launching a pre-defined (in smb.conf) 
program when a connection request was made and exchanging data via a UNIX 
domain socket.  That back-end program would get the full packet, 
including the NBT header, so that we could multiplex multiple connections 
using the NetBIOS name.

Anyway, that's my first-draft design.  For more on the workings of 
NetBIOS over TCP (NBT) see:
...just some stuff I'm writing.

Chris -)-----

> i need is to develop two applications, to communicate to each other
> using API netbios over tcp/ip for linux.
> the client application will be running on windows and the server
> application will be running on linux.
> the scenario is :
> a client program (running on windows) that sends messages (using
> netbios over tcp/ip) to a server application (running on linux redhat
> 7.1 or 7.2).
>  i know that the netbios over tcp/ip is implemented, in linux, by
> samba.
> but i didn't find anything that seems like the netbios functions that
> i used for windows/os2.
> what i need is to know how i do this things in linux :
> - add netbios name
> - send and receive messages
> - remove netbios name
> can you help me ?
> thank's in advance.
> tony ;-)

Christopher R. Hertel -)-----                   University of Minnesota
crh at              Networking and Telecommunications Services

    Ideals are like stars; you will not succeed in touching them
    with your choose them as your guides, and following
    them you will reach your destiny.  --Carl Schultz

More information about the samba-technical mailing list