Databases Reference
In-Depth Information
3.B
Named Pipes and SMB/CIFS
The Server Message Block (SMB) protocol is a Microsoft presentation layer
protocol providing file and print sharing functions for LAN Manager, Ban-
yan VINES, and other network operating systems. SMB is now called the
Common Internet File System (CIFS): see msdn.microsoft.com/library/
default.asp?url=/library/en-us/cifs/protocol/cifs.asp. SMB is used for shar-
ing files, printers, serial ports, and communications abstractions such as
named pipes and mail slots between computers. It is a client-server request-
response protocol. Most SMB clients connect to servers using TCP/IP and
often over a NetBIOS layer. They can then send SMB commands to the
server that allow them to access shared folders/resources, open files, and
make database calls over the network.
Many protocol variants have been developed for SMB. The first protocol
variant was the Core Protocol, known also as PC NETWORK PROGRAM
1.0. It handled a fairly basic set of operations that included the following:
Connecting to and disconnecting from file and print shares
Opening and closing files
Opening and closing print files
Reading and writing files
Creating and deleting files and directories
Searching directories
Getting and setting file attributes
Locking and unlocking byte ranges in files
SMB has been highly successful, especially in heterogeneous environ-
ments. For example, it is the basis for the Samba file sharing system as well
as many other interoperating system communications; it has therefore
served well in the database client-server communications world, especially
before TCP/IP became so ubiquitous. Today, because TCP/IP is really the
only protocol used for networks, direct client-server database communica-
tions over TCP/IP should always be preferred over SMB.
Table 3.A shows the many SMB commands and highlights the com-
mands used for implementing named pipes. As you can see, named pipes
communication is not the main focus of SMB, and SMB is used to piggy-
back (or tunnel) a database RPC onto an existing RPC infrastructure.
Search WWH ::




Custom Search