Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Windows Operating Systems Software Books Media Book Reviews Technology

Implementing CIFS 199

Bombcar writes "Anyone who has used Microsoft products in the last ten years has used the SMB protocol (now known as CIFS). Some have become experts in the usage of Windows file sharing, Samba, and more. We know that there can be a 15 minute delay before new machines appear in 'Network Neighborhood'. We've read the Official Samba 3 book, and follow the Samba mailing list once in a while, perhaps even answering questions. But there is a limit to the knowledge given by these sources." Read on for Bombcar's review of Implementing CIFS from Prentice Hall.
Implementing CIFS
author Christopher R. Hertel
pages 642
publisher Prentice Hall
rating 8 of 10
reviewer Tom Dickson
ISBN 013047116X
summary In-depth (but not too deep) coverage of the CIFS/SMB protocol

It is one thing to be able to use Samba, Windows, and the Common Internet File System (CIFS) protocol. It is another thing entirely to understand CIFS with sufficient depth to begin coding using it. This is where Christopher Hertel's Implementing CIFS begins.

This thick book (over 600 pages) begins with a history of NetBIOS in the DOS era. It quickly progresses to NetBIOS over TCP/IP (which evolved into the current CIFS protocol). Hertel documents the beginnings of quirks that will last throughout the life of the protocol. There is an RFC that was proposed in 1987, but many vendors have added extensions to this. (It might surprise you to learn that Samba has added extensions, which are covered in Chapter 24).

After the basic overview, he quickly dives into real coding of an actual (though simple) implementation. This will be his style for the rest of the book (except for humorous asides now and then). An aspect of the protocol, such as Name Resolution, will be explained in some detail, and then expounded in actual code (and in a few cases pseudocode).

The detail is good but not overwhelming. Some people (with names like Jerry Carter or Andrew Tridgell) will want more depth than this book provides, but for with a protocol as varied as CIFS, choices have to be made. As the Samba website mentions, this book is written in "Geekish." The book covers aspects of older and newer SMB/CIFS implementations, including a description of the NTLM2 challenge/auth system.

One thing that should be noted is that the code examples work, but as the author points out, they usually have little or no error handling. This is common to many books, but it is something to remember.

Now, should you get this book? If you're just a user, you probably don't need it. But if you've ever wished you could understand the Samba technical mailing list, or wanted to know why it takes up to 15 minutes to see a new machine, then you'll enjoy this book. If you want to utilize CIFS in any manner (even if just implementing Samba for clients), I'd highly recommend reading this. It will help you to understand what is going on on your network, even if you're not writing the code yourself. And if you want to be a Samba coder, it is required reading.

What didn't I like? I first read the book in an airport, and found that it relies heavily on having access to a computer. I would have preferred more explanations of code fragments than was given. However, this is a minor issue; most people who are implementing CIFS will be using a computer! I was also left with a desire for more information, but the large Appendix D along with many sources recommended provide for further study.

As a bonus, Appendix A tells you how to make a good cup of Earl Grey tea! That alone to some would be worth the price of admission.


You can purchase Implementing CIFS from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

This discussion has been archived. No new comments can be posted.

Implementing CIFS

Comments Filter:
  • O'Reilly Safari (Score:5, Informative)

    by Erik_ ( 183203 ) * on Tuesday March 09, 2004 @04:14PM (#8512904)
    And best of all it's available on O'Reilly's Safari [oreilly.com] service.
  • by Bombcar ( 16057 ) <racbmob@@@bombcar...com> on Tuesday March 09, 2004 @04:22PM (#8512969) Homepage Journal
    The usual cause is badly synced browse lists.

    If you add a samba server and tell it to run WINS (with wins=yes), and then tell EVERY windows machine that the wins server is at (IP address of Samba Server), things usually speed up considerably.

    Also, there is (I believe), a C:\winnt\system32\drivers\etc\lmhosts file that works as a hosts file for WINS).
  • Not Andrew Tridgell (Score:2, Informative)

    by Anonymous Coward on Tuesday March 09, 2004 @04:23PM (#8512982)
    This guy isn't Andrew Tridgell.

    He put on a pretense of being some other authoritatian figure ("John Nagle") in some other article (and got modded into oblivion there)

    http://slashdot.org/comments.pl?sid=91307&cid=7861 607 [slashdot.org]

    Knock him down.
  • by SeederGOD ( 665109 ) on Tuesday March 09, 2004 @04:23PM (#8512983) Homepage
    someone else did it, just check it out : samba faster [google.com]
  • by Anonymous Coward on Tuesday March 09, 2004 @04:23PM (#8512988)
    The full text of the book is available online as well; I don't want to slashdot the site, but google for "implementing cifs".
  • overgeneralisation (Score:2, Informative)

    by tverbeek ( 457094 ) on Tuesday March 09, 2004 @04:26PM (#8513018) Homepage
    Anyone who has used Microsoft products in the last ten years has used the SMB protocol (now known as CIFS)

    Except for the people whose Windows boxes weren't hooked up to a network, or who instead used Netware for file/print sharing, or whose only loaded network components were TCP/IP and the adapter device. And even though it's installed by default, that doesn't mean everybody who failed to deinstall it actually used it.

  • by Bruce Perens ( 3872 ) * <bruce@perens.com> on Tuesday March 09, 2004 @04:40PM (#8513172) Homepage Journal
    Like all books in Bruce Perens Open Source Series [phptr.com], this book is under an Open Source license.

    Thanks

    Bruce

  • by Futurepower(R) ( 558542 ) on Tuesday March 09, 2004 @04:43PM (#8513197) Homepage

    MOD PARENT UP!

    I notice that, too. Also, Windows XP machines newly added to a Windows 98 peer-to-peer network have trouble seeing the Win 98 machines. Posting to official Microsoft newsgroups provides no answers to this quirky behavior. Of course, that may be because Chang, Li, Wu, Zhang and others have been told not to discuss it.

    I put some of the fixes for quirkiness together so that I could ask Microsoft if there was anything I am missing: Possible Solutions to Slow Network Browsing or Inability to Connect [hevanet.com]. Some of the problems mentioned are obviously not the fault of Windows XP directly, but the fact that they often occur seems sometimes to be the fault of underlying sloppiness in Windows OS code.

    Acronis TrueImage [acronis.com] is a Linux-based Windows XP backup utility that never has any problem seeing all machines on a Windows peer-to-peer network.

    I've also never had problems with Linux itself.
  • by Vlad_the_Inhaler ( 32958 ) on Tuesday March 09, 2004 @04:47PM (#8513239)
    Win2K only supports WINS in some 'compatability mode', don't know if XP supports it at all.

    WINS is dying.
  • by Anonymous Coward on Tuesday March 09, 2004 @04:55PM (#8513348)
    One thing that should be added to that document is that all the Win9x machines should have the ability to be a Master Browser disabled (so long as there's at least 1 NT machine on the net).

    Otherwise, eventually one of the 9x machines with think it's won the browse election even when that should be impossible. This screws the network neighborhood. Very longstanding bug going back to WfW. You can check the state of your network using the "browstat" tool that comes with the resource kit.

    (Also, yer correct that NetBIOS or IPX will be faster than NBT for whatever reason. Make sure to adjust the "binding order" so that these protocols come ahead of TCP/IP. Can't recall exactly how to do this, sorry.)

    This might not be realistic for a home net, but install WINS/DHCP if possible and put the clients into p-mode. (no NetBIOS broadcasts)
  • Re:Code examples? (Score:3, Informative)

    by Bombcar ( 16057 ) <racbmob@@@bombcar...com> on Tuesday March 09, 2004 @04:57PM (#8513371) Homepage Journal
    The examples are of internal CIFS functions. As I said, if you just want to use CIFS, you may not need this book. This is if you want to write code that directly plays on a network using the CIFS protocol.

    jCIFS is one example, Samba is another.

    One code example is getting a browse list from another networked machine.
  • by Anonymous Coward on Tuesday March 09, 2004 @04:58PM (#8513380)
    NFS is cool so long as you don't need passwords or authentication on your network resources. For other people that might be a little issue.
  • by Bruce Perens ( 3872 ) * <bruce@perens.com> on Tuesday March 09, 2004 @04:59PM (#8513400) Homepage Journal
    Thanks. There are 10 books in the series now, all treated the same as this one - online source and PDF, Open Source license. As far as I can tell, all have at least broken even, and most have made money.

    But the fact is that technical book authors are generally writing for some other reason than to get direct income from the book. Most do it for the intangibles - promotion of their own careers or projects they support, etc.

    What I like about this series is that the books need never die, since anyone can edit and print them. They don't get into that state where the publisher sells a few hundred copies a year on order and doesn't revert the rights to the author for years. Authors hate that.

    But we are careful with timing. We make sure the "pipeline" between the publisher and bookstores is full before the electronic copy is available. So, clone publishers don't have much incentive, as the stores have already filled their orders.

    I have to admit that this would not work as well if people liked to curl up with e-books. If that day ever comes, we'll change the strategy, but the end product will still be Open Source books.

    If you are very anti-open-source, it's probably because you don't yet understand the ways that Open Source works well for business and business people. I have a paper on the economic basis of Open Source that I'm working on, that you will probably find of interest. It should be out in a week or two.

    Thanks

    Bruce

  • by droid_rage ( 535157 ) on Tuesday March 09, 2004 @04:59PM (#8513409) Journal
    Not true. 2k and XP both fully support WINS. It's generally configured in the DHCP scope, but it can be explicitly defined on the client.
    MS is trying to kill it off, but since 9x and NT boxes don't understand DNS for anything but internet name resolution, its demise is still a long way off.
  • by 110010001000 ( 697113 ) on Tuesday March 09, 2004 @04:59PM (#8513413) Homepage Journal
    Not a troll, but curiosity: why did you buy a copy of the book when it is freely available on the net? I personally did because I prefer to read from a book rather than a computer screen.
  • by Laur ( 673497 ) on Tuesday March 09, 2004 @05:01PM (#8513438)
    Replace it with nfs unix file sharing maybe? Oh I forgot. We're talking about Windows here. God forbid Microsoft should support nfs.

    Download Windows Services for UNIX [microsoft.com] for free from Microsoft, it contains a NFS client and server. I use this on my home network, no more Samba and its confusing config file (even with SWAT it is a nightmare). You can even choose to just install the nfs services and continue to use Cygwin for the rest of your Unix-on-Windows goodness.

  • by MarcQuadra ( 129430 ) * on Tuesday March 09, 2004 @05:41PM (#8513991)
    Alright, I can give a good reason. NFS does NOT authenticate, it blindly trusts UIDs.

    So when I log into my friend's machine with his password, I'd be able to access my files on my machine as long as our UID is the same. Big trouble.

    CIFS, on the other hand, has authentication, so I can put my SAMBA server on the wide-open internet and be somewhat sure that someone would need my password to get my files. Try that with NFS and you'd be owned (or fileless) in minutes.

    Granted, there ARE ways to lock NFS down, and there are good arguments that maybe the modern file server SHOULDN'T authenticate, it should rely on another layer to handle that, but until it's easy as pie to get a Kerberos/PAM/NFS system working (no small task today), I'll stick to CIFS.
  • Re:MacOSX Samba (Score:4, Informative)

    by tupps ( 43964 ) on Tuesday March 09, 2004 @05:52PM (#8514171) Homepage
    Actually Apple gives away (BSD Style license) a code sample for implementing rendevous services. That should mean that anyone can/should implement rendevous if they need network discovery.
  • by MacDaffy ( 28231 ) on Tuesday March 09, 2004 @06:11PM (#8514411)
    Don't be surprised; you're right! I was doing QA for a CIFS implementation when the engineer ran across a bug that he just couldn't corral. We checked the RFC. We checked the code. We checked installation. Couldn't pin anything down.

    He finally put a sniffer on the network and analyzed the traffic between a Windows server, a Windows workstation and a workstation running our implementation. Turns out that the RFC instructs implementers to NEVER place anything other than zero into a certain location (LONGINT). However, that field was almost always non-zero when it was passed between the two Windows machines.

    The engineer put the length of the data transfer in bytes into the field and it has worked ever since.

    That incident cemented my negative attitude toward Microsoft. They don't try to win by looking good; they try to win by making everyone else look bad--even if that includes themselves. If you're uncertain about something that Microsoft is doing, use that premise as a reference point and you can't go wrong.
  • by Anonymous Coward on Tuesday March 09, 2004 @06:19PM (#8514510)
    Its hardly dying, in fact WINS is still very much alive and well in many Win2k networks. Those who don't use it get to enjoy wondering why nobody can see anything in network neighborhood and can lots of problems. That whole "WINS is dead" crap went out the window a few months after Windows 2000 came out.

    With 2k/2003 MS took a HUGE step back in networking. In a technical sense AD in better in every single way. But in terms of ditching old things like WINS its a total failure. Back in the old days networking 98 to NT was moron proof. Try connecting a 98 to XP box some time.

    Anyway based the fact that you didn't know that XP supports WINS I'll just assume your not an admin, but ask anyone who actually is a admin and works with Windows 2000 any they'll tell you WINS is far from dead.
  • by Bombcar ( 16057 ) <racbmob@@@bombcar...com> on Tuesday March 09, 2004 @06:45PM (#8514798) Homepage Journal
    In fact, that's why many times a Samba server added to the mix can help things. The samba server can act as an intermediary between the Win2k machines configured to speak DNS only, and the 98 machines that are howling for WINS information.

    WINS is only really dead in an all Win2k enviroment, and then only if you turn it off.
  • by juan large moose ( 27329 ) on Tuesday March 09, 2004 @06:52PM (#8514870) Homepage
    One of the most common causes of network browsing problems is binding NetBIOS to multiple protocols. I have solved many, many such problems by going through all of the Windows workstations and servers and making sure that they are all configured to use the same single transport.

    If you use NetBEUI, then use *only* NetBEUI.
    If you use NWLINK, then use *only* NWLINK.
    etc.

    See the heading "Prolific Protocol Bindings" in Section 3.7.1 [ubiqx.org] of the online version of the book.

  • by caluml ( 551744 ) <slashdot@spamgoe ... minus herbivore> on Tuesday March 09, 2004 @07:22PM (#8515188) Homepage
    I hate NFS. You have to have the same user ID on all boxes, and have the same group IDs on all the boxes. Pfffft. Far too much trouble. Samba - well, if you log in to Samba as foobar, then your smbd process runs as foobar, and hence has all the right IDs and group memberships that foobar has on the box running smbd. Samba has got tonnes of options. Bah. NFS? Do away with it, I say
  • by Bruce Perens ( 3872 ) * <bruce@perens.com> on Tuesday March 09, 2004 @08:45PM (#8516092) Homepage Journal
    Usually it's 90 days after they have shipped through to the bookstore shelves. It might be time for the Mozilla book, I'll ask my editor the next time we chat. It's not yet time for the Qt book.

    Thanks

    Bruce

  • by strobert ( 79836 ) on Wednesday March 10, 2004 @05:21AM (#8519223) Homepage
    uh, actually Microsoft does support NFS, both client and server. see their services for unix. I think this is the correct URL:

    http://www.microsoft.com/windows/sfu

    It has sounded very promising. Still on the look into list (I am actually more going to be using the auth sharing features to have our unix boxes publish password changes to AD).

    I will say I'm not the biggest NFS fan -- mainly becuase of portmap (for some of the reasons, see Steven TCP/IP Illustrated Vol I comments in the dicussion on NFS) -- but to say you can't get NFS support under windows is not accurate.

"If it ain't broke, don't fix it." - Bert Lantz

Working...