Main Page

  Table of Contents
Implementing CIFS: The Common Internet File System
By Christopher  R.  Hertel
Publisher : Prentice Hall PTR
Pub Date : August 11, 2003
ISBN : 0-13-047116-X
Pages : 672

"The book that Microsoft should have written, but didn't."
Jeremy Allison, Samba Team

"Your detailed explanations are clear and backed -up with source codeand the numerous bits of humor make a dry subject very enjoyable to read."
J.D. Lindemann, network engineer, Adaptec, Inc.

For years , developers and administrators have struggled to understand CIFS, Microsoft's poorly documented standard for Internet file sharing. Finally, there is an authoritative , cross-platform guide to CIFS capabilities and behavior. Implementing CIFS not only delivers the priceless knowledge of a Samba Team member dedicated to investigating the inner workings of CIFS, it also identifies and describes crucial specifications and supporting documents.

  • Provides essential information for designing and debugging large Windows(R) and/or Samba networks

  • Offers clear, in-depth introductions to Server Message Block (SMB), NetBIOS over TCP/IP (NBT), browser services, and authentication

  • Drills down into the internals of CIFS, exposing its behavior on the wire and at the desktopand its strange quirks

  • Presents illustrative code examples throughout

  • Reflects years of work reviewing obscure documentation, packet traces, and sourcecode

  • Includes the SNIA CIFS Technical Reference

Implementing CIFS will be indispensable to every developer who wants to provide CIFS compatibilityand every administrator or security specialist who needs an in-depth understanding of how it really works.

  Table of Contents
Implementing CIFS: The Common Internet File System
By Christopher  R.  Hertel
Publisher : Prentice Hall PTR
Pub Date : August 11, 2003
ISBN : 0-13-047116-X
Pages : 672
      Praise for Implementing CIFS
      Bruce Perens' Open Source Series
      About Prentice Hall Professional Technical Reference
      About the Cover Art
      Introduction: CIFS from Eight Miles High
        Section 0.1.   First Impressions
        Section 0.2.   What is CIFS?
        Section 0.3.   The CIFS Community
        Section 0.4.   Audience
        Section 0.5.   Scope
        Section 0.6.   Acknowledgements and Thanks
        Section 0.7.   About the Author
        Section 0.8.   License
      Part I:   NBT: NetBIOS over TCP/IP
        Chapter 1.   A Short Bio of NetBIOS
        Section 1.1.   NetBIOS and DOS: The Early Years
        Chapter 2.   Speaking NetBIOS
        Section 2.1.   Emulating "NetBIOS LANs"
        Section 2.2.   Scope: The Final Frontier
        Section 2.3.   Thus Endeth the Overview
        Chapter 3.   The Basics of NBT Implementation
        Section 3.1.   You Got the Name , Look Up the Number
        Section 3.2.   Interlude
        Chapter 4.   The Name Service in Detail
        Section 4.1.   NBT Names : Once More with Feeling
        Section 4.2.   NBT Name Service Packets
        Section 4.3.   Conversations with the Name Service
        Section 4.4.   Enough Already
        Chapter 5.   The Datagram Service in Detail
        Section 5.1.   Datagram Distribution over Routed IP Internetworks
        Section 5.2.   The NBDD and the Damage Done
        Section 5.3.   Implementing a Workable Datagram Service
        Chapter 6.   The Session Service in Detail
        Section 6.1.   Session Service Header
        Section 6.2.   Creating an NBT Session
        Section 6.3.   Maintaining an NBT Session
        Section 6.4.   Closing an NBT Session
        Chapter 7.   Where It All Went Wrong
        Section 7.1.   The 0x1D irty Little Secret
        Section 7.2.   Twenty-five IPs or Less
        Section 7.3.   Special Handling Required for 0x1B Names
        Section 7.4.   Alternate Name Resolution
        Section 7.5.   The Awful Truth
      Part II:   SMB: The Server Message Block Protocol
        Chapter 8.   A Little Background on SMB
        Section 8.1.   Getting Started
        Section 8.2.   NBT or Not NBT
        Chapter 9.   An Introductory Tour of SMB
        Section 9.1.   The Server Identifier
        Section 9.2.   The Directory Path
        Section 9.3.   The File
        Section 9.4.   The SMB URL
        Section 9.5.   Was That Trip Really Necessary?
        Chapter 10.   First Contact: Reaching the Server
        Section 10.1.   Interpreting the Server Identifier
        Section 10.2.   The Destination Port
        Section 10.3.   Transport Discovery
        Section 10.4.   Connecting to the Server
        Chapter 11.   SMB in Its Natural Habitat
        Section 11.1.   Our Very First Live SMBs
        Section 11.2.   SMB Message Structure
        Section 11.3.   Case in Point: NEGOTIATE PROTOCOL
        Section 11.4.   The AndX Mutation
        Section 11.5.   The Flow of Conversation
        Section 11.6.   A Little More Code
        Section 11.7.   Take a Break
        Chapter 12.   The SMB Header in Detail
        Section 12.1.   The SMB_HEADER.STATUS Field Exposed
        Section 12.2.   The FLAGS and FLAGS2 Fields Tell All
        Section 12.3.   EXTRA! EXTRA! Read All About It!
        Section 12.4.   TID and UID : Separated at Birth?
        Section 12.5.   PID and MID Revealed
        Section 12.6.   SMB Header Final Report
        Chapter 13.   Protocol Negotiation
        Section 13.1.   A Smattering of SMB Dialects
        Section 13.2.   Greetings: The NEGOTIATE PROTOCOL REQUEST
        Section 13.3.   Gesundheit: The NEGOTIATE PROTOCOL RESPONSE
        Section 13.4.   Are We There Yet?
        Chapter 14.   Session Setup
        Section 14.1.   SESSION SETUP ANDX REQUEST Parameters
        Section 14.2.   SESSION SETUP ANDX REQUEST Data
        Section 14.3.   The SESSION SETUP ANDX RESPONSE SMB
        Chapter 15.   Authentication
        Section 15.1.   Anonymous and Guest Login
        Section 15.2.   Plaintext Passwords
        Section 15.3.   LM Challenge/Response
        Section 15.4.   NTLM Challenge/Response
        Section 15.5.   NTLM Version 2
        Section 15.6.   Extended Security: That Light at the End of the Tunnel
        Section 15.7.   Kerberos
        Section 15.8.   Random Notes on W2K and NT Domain Authentication
        Section 15.9.   Random Notes on Message Authentication Codes
        Section 15.10.   Non Sequitur Time
        Section 15.11.   Further Study
        Chapter 16.   Building Your SMB Vocabulary
        Section 16.1.   That TREE CONNECT Thingy
        Section 16.2.   SMB Echo
        Section 16.3.   Readin', Writin', and 'Rithmatic
        Section 16.4.   Transaction SMBs
        Chapter 17.   The Remaining Oddities
        Section 17.1.   Opportunistic Locks (OpLocks)
        Section 17.2.   Distributed File System (DFS)
        Section 17.3.   DOS Attributes, Extended File Attributes, Long Filenames, and Suchlike
        Chapter 18.   That Just about Wraps Things Up for SMB
      Part III:   The Browse Service
        Chapter 19.   A Beautiful Day in the Network Neighborhood
        Section 19.1.   History: From Frontier Town to Bustling Metropolis
        Section 19.2.   Sociology
        Section 19.3.   Politics
        Chapter 20.   Meet the Neighbors
        Section 20.1.   Browse Service Clientele
        Section 20.2.   The Local Master Browser
        Section 20.3.   Becoming a Backup Browser
        Section 20.4.   Crossing the Street with the DMB
        Section 20.5.   Elections
        Chapter 21.   Infrastructure: The Mailslot and Named Pipe Abstractions
        Section 21.1.   Meet the Plumbing: Named Pipes
        Section 21.2.   The Mailslot Metaphor
        Chapter 22.   The Talk on the Street
        Section 22.1.   Making Sense of SMBtrans
        Section 22.2.   Browse Service Mailslot Messages
        Section 22.3.   RAPture
        Chapter 23.   The Better Browser Bureau
        Section 23.1.   Running an Election
        Section 23.2.   Timing Is Everything
        Chapter 24.   Samba Browse Service Enhancements
        Section 24.1.   Automatic LANMAN
        Section 24.2.   UnBrowsable
        Section 24.3.   NBNS Wildcard DMB Queries and Enhanced Browsing
        Section 24.4.   Remote Announce
        Section 24.5.   Remote Browse Sync
        Section 24.6.   DMB != PDC
        Chapter 25.   It Can't Happen Here
        Section 25.1.   Misconfigured Hosts
        Section 25.2.   Misconfigured Networks
        Section 25.3.   Implementation Bugs
        Section 25.4.   Troublemakers
        Section 25.5.   Design Flaws
        Chapter 26.   At Home in the Network Neighborhood
      Part IV:   Appendices
        Appendix A.   Making a Good Cup of Tea
        Section A.1.   Basics of Making Tea
        Section A.2.   About Tea
        Section A.3.   Nasty Habits
        Section A.4.   Decaffeinating Tea
        Appendix B.   Known NetBIOS Suffix Values
        Section B.1.   NetBIOS Name Suffix Bytes
        Section B.2.   Special Handling of NetBIOS Names in WINS
        Appendix C.   The SMB URL
        Section C.1.   The Origins of the SMB URL
        Section C.2.   Of Round Pegs, Square Holes, and Big Mallets
        Section C.3.   Form Versus Function
        Section C.4.   Additional Parts
        Section C.5.   A Simple SMB URL Parser
        Appendix D.   CIFS Technical Reference
        Intended Usage
        Table of Contents
        Section 1.   Introduction
        Section 2.   Protocol Operation Overview
        Section 3.   SMB Message Formats and Data Types
        Section 4.   SMB Requests
        Section 5.   SMB Symbolic Constants
        Section 6.   Error Codes and Classes
        Section 7.   Security Considerations
        Section 8.   References
        Section 9.   Appendix A -- NETBIOS transport over TCP
        Section 10.   Appendix B -- TCP transport
        Section 11.   Appendix C Share Level Server Security
        Section 12.   Appendix D CIFS UNIX Extension
        Section 13.   Appendix E CIFS Macintosh Extension
        Section 14.   Appendix F API Numbers for Transact based RAP calls