relationship between DCE/RPC and NT Named Pipes.

Luke Kenneth Casson Leighton lkcl at samba-tng.org
Wed Jan 9 17:15:16 GMT 2002


On Wed, Jan 09, 2002 at 05:16:43PM +1030, Richard Sharpe wrote:

> >Richard Sharpe wrote:

> I contend that SMB is not (an) RPC (protocol), it is simply a remote 
> access protocol. MS have, however, used SMB as a transport for their RPC 
> mechanism, which is DCE/RPC.

you are correct.  the transport that SMB implements is
called "Named Pipes".  look up the MSDN starting with
CreateNamedPipe.

Named Pipes are basically the following features:

- the caller's user security context may be transferred
  to the server application, for the server application
  to use as it sees fit

- guaranteed, ordered transaction-based message passing,
  where the maximum message size is negotiable.

basically, it's an incredibly powerful system, and unix
has ***nothing*** remotely resembling it.

unix doesn't even support the concept of a remote user
in order for a remote user to be relevant over a named pipe,
for pity's sake!

unix supports TCP (guaranteed and ordered data delivery)
and it supports UDP (guaranteed message sizes) but it doesn't
support both.

and NT "Named Pipes" do.

which is why microsoft decided to use them as a transport
for dce/rpc.

and it's worthwhile pointing this out again:  that's the
*only* relationship between named pipes and dce/rpc.

one uses the other.

there _is_ no special MSRPC-namedpipe-interdependent-
transport-thing.

in other words, it is possible to implement NamedPipes
in SAMBA-3, knowing absolutely _nothing_ about dce/rpc
_whatsoever_, and then to give the API functions to
a dce/rpc developer and say, "write a transport plugin
module for your dce/rpc runtime environment that uses
_this_ api", and they can.

but - and i'll say it again - without that "Named Pipe"
API in SAMBA-3, there's absolutely _no_ point in any
further discussion, as no progress can be made.

lkcl




More information about the samba-technical mailing list