The first stop on our UNC tour of SMB is the server name field, which is really a server identifier field because it will accept addresses in addition to names . This book concerns itself with only two transports NBT and naked TCP transport so the only identifiers we care about are:
NetBIOS and DNS names both resolve to IP addresses, so all three are equivalent. Sort of... Recall that the NBT SESSION REQUEST packet requires a CALLED NAME in order to set up an NBT session with the server. Without a correct CALLED NAME , the NBT SESSION REQUEST may be rejected (different implementations behave differently). So...
...then we're in a bit of a pickle . How do we find the correct NetBIOS name to put into the CALLED NAME field? There really is no "right" way to reverse-map an IP address to a particular NetBIOS service name. The solution to this problem involves some guessing, and it's not pretty. We will go into detail when we discuss the interface between SMB and the transport layer. Of course, if SMB is running over raw transport then there is no NBT SESSION REQUEST message and, therefore, no CALLED NAME . In that case, the NetBIOS name isn't needed at all, which saves a lot of fuss and bother. |