Network Working Group Request for Comments: 1001 March, 1987 PROTOCOL STANDARD FOR A NetBIOS SERVICE ON A TCP/UDP TRANSPORT: CONCEPTS AND METHODS ABSTRACT This RFC defines a proposed standard protocol to support NetBIOS services in a TCP/IP environment. Both local network and internet operation are supported. Various node types are defined to accommodate local and internet topologies and to allow operation with or without the use of IP broadcast. This RFC describes the NetBIOS-over-TCP protocols in a general manner, emphasizing the underlying ideas and techniques. Detailed specifications are found in a companion RFC, "Protocol Standard For a NetBIOS Service on a TCP/UDP Transport: Detailed Specifications". NetBIOS Working Group [Page 1] RFC 1001 March 1987 SUMMARY OF CONTENTS 1. STATUS OF THIS MEMO 6 2. ACKNOWLEDGEMENTS 6 3. INTRODUCTION 7 4. DESIGN PRINCIPLES 7 5. OVERVIEW OF NetBIOS 10 6. NetBIOS FACILITIES SUPPORTED BY THIS STANDARD 15 7. REQUIRED SUPPORTING SERVICE INTERFACES AND DEFINITIONS 15 8. RELATED PROTOCOLS AND SERVICES 16 9. NetBIOS SCOPE 16 10. NetBIOS END-NODES 16 11. NetBIOS SUPPORT SERVERS 18 12. TOPOLOGIES 20 13. GENERAL METHODS 23 14. REPRESENTATION OF NETBIOS NAMES 25 15. NetBIOS NAME SERVICE 27 16. NetBIOS SESSION SERVICE 48 17. NETBIOS DATAGRAM SERVICE 55 18. NODE CONFIGURATION PARAMETERS 58 19. MINIMAL CONFORMANCE 59 REFERENCES 60 APPENDIX A - INTEGRATION WITH INTERNET GROUP MULTICASTING 61 APPENDIX B - IMPLEMENTATION CONSIDERATIONS 62 NetBIOS Working Group [Page 2] RFC 1001 March 1987 TABLE OF CONTENTS 1. STATUS OF THIS MEMO 6 2. ACKNOWLEDGEMENTS 6 3. INTRODUCTION 7 4. DESIGN PRINCIPLES 8 4.1 PRESERVE NetBIOS SERVICES 8 4.2 USE EXISTING STANDARDS 8 4.3 MINIMIZE OPTIONS 8 4.4 TOLERATE ERRORS AND DISRUPTIONS 8 4.5 DO NOT REQUIRE CENTRAL MANAGEMENT 9 4.6 ALLOW INTERNET OPERATION 9 4.7 MINIMIZE BROADCAST ACTIVITY 9 4.8 PERMIT IMPLEMENTATION ON EXISTING SYSTEMS 9 4.9 REQUIRE ONLY THE MINIMUM NECESSARY TO OPERATE 9 4.10 MAXIMIZE EFFICIENCY 10 4.11 MINIMIZE NEW INVENTIONS 10 5. OVERVIEW OF NetBIOS 10 5.1 INTERFACE TO APPLICATION PROGRAMS 10 5.2 NAME SERVICE 11 5.3 SESSION SERVICE 12 5.4 DATAGRAM SERVICE 13 5.5 MISCELLANEOUS FUNCTIONS 14 5.6 NON-STANDARD EXTENSIONS 15 6. NetBIOS FACILITIES SUPPORTED BY THIS STANDARD 15 7. REQUIRED SUPPORTING SERVICE INTERFACES AND DEFINITIONS 15 8. RELATED PROTOCOLS AND SERVICES 16 9. NetBIOS SCOPE 16 10. NetBIOS END-NODES 16 10.1 BROADCAST (B) NODES 16 10.2 POINT-TO-POINT (P) NODES 16 10.3 MIXED MODE (M) NODES 16 11. NetBIOS SUPPORT SERVERS 18 11.1 NetBIOS NAME SERVER (NBNS) NODES 18 11.1.1 RELATIONSHIP OF THE NBNS TO THE DOMAIN NAME SYSTEM 19 11.2 NetBIOS DATAGRAM DISTRIBUTION SERVER (NBDD) NODES 19 11.3 RELATIONSHIP OF NBNS AND NBDD NODES 20 11.4 RELATIONSHIP OF NetBIOS SUPPORT SERVERS AND B NODES 20 12. TOPOLOGIES 20 12.1 LOCAL 20 NetBIOS Working Group [Page 3] RFC 1001 March 1987 12.1.1 B NODES ONLY 21 12.1.2 P NODES ONLY 21 12.1.3 MIXED B AND P NODES 21 12.2 INTERNET 22 12.2.1 P NODES ONLY 22 12.2.2 MIXED M AND P NODES 23 13. GENERAL METHODS 23 13.1 REQUEST/RESPONSE INTERACTION STYLE 23 13.1.1 RETRANSMISSION OF REQUESTS 24 13.1.2 REQUESTS WITHOUT RESPONSES: DEMANDS 24 13.2 TRANSACTIONS 25 13.2.1 TRANSACTION ID 25 13.3 TCP AND UDP FOUNDATIONS 25 14. REPRESENTATION OF NETBIOS NAMES 25 14.1 FIRST LEVEL ENCODING 26 14.2 SECOND LEVEL ENCODING 27 15. NetBIOS NAME SERVICE 27 15.1 OVERVIEW OF NetBIOS NAME SERVICE 27 15.1.1 NAME REGISTRATION (CLAIM) 27 15.1.2 NAME QUERY (DISCOVERY) 28 15.1.3 NAME RELEASE 28 15.1.3.1 EXPLICIT RELEASE 28 15.1.3.2 NAME LIFETIME AND REFRESH 29 15.1.3.3 NAME CHALLENGE 29 15.1.3.4 GROUP NAME FADE-OUT 29 15.1.3.5 NAME CONFLICT 30 15.1.4 ADAPTER STATUS 31 15.1.5 END-NODE NBNS INTERACTION 31 15.1.5.1 UDP, TCP, AND TRUNCATION 31 15.1.5.2 NBNS WACK 32 15.1.5.3 NBNS REDIRECTION 32 15.1.6 SECURED VERSUS NON-SECURED NBNS 32 15.1.7 CONSISTENCY OF THE NBNS DATA BASE 32 15.1.8 NAME CACHING 34 15.2 NAME REGISTRATION TRANSACTIONS 34 15.2.1 NAME REGISTRATION BY B NODES 34 15.2.2 NAME REGISTRATION BY P NODES 35 15.2.2.1 NEW NAME, OR NEW GROUP MEMBER 35 15.2.2.2 EXISTING NAME AND OWNER IS STILL ACTIVE 36 15.2.2.3 EXISTING NAME AND OWNER IS INACTIVE 37 15.2.3 NAME REGISTRATION BY M NODES 38 15.3 NAME QUERY TRANSACTIONS 39 15.3.1 QUERY BY B NODES 39 15.3.2 QUERY BY P NODES 40 15.3.3 QUERY BY M NODES 43 15.3.4 ACQUIRE GROUP MEMBERSHIP LIST 43 15.4 NAME RELEASE TRANSACTIONS 44 15.4.1 RELEASE BY B NODES 44 NetBIOS Working Group [Page 4] RFC 1001 March 1987 15.4.2 RELEASE BY P NODES 44 15.4.3 RELEASE BY M NODES 44 15.5 NAME MAINTENANCE TRANSACTIONS 45 15.5.1 NAME REFRESH 45 15.5.2 NAME CHALLENGE 46 15.5.3 CLEAR NAME CONFLICT 47 15.6 ADAPTER STATUS TRANSACTIONS 47 16. NetBIOS SESSION SERVICE 48 16.1 OVERVIEW OF NetBIOS SESSION SERVICE 49 16.1.1 SESSION ESTABLISHMENT PHASE OVERVIEW 49 16.1.1.1 RETRYING AFTER BEING RETARGETTED 50 16.1.1.2 SESSION ESTABLISHMENT TO A GROUP NAME 51 16.1.2 STEADY STATE PHASE OVERVIEW 51 16.1.3 SESSION TERMINATION PHASE OVERVIEW 51 16.2 SESSION ESTABLISHMENT PHASE 52 16.3 SESSION DATA TRANSFER PHASE 54 16.3.1 DATA ENCAPSULATION 54 16.3.2 SESSION KEEP-ALIVES 54 17. NETBIOS DATAGRAM SERVICE 55 17.1 OVERVIEW OF NetBIOS DATAGRAM SERVICE 55 17.1.1 UNICAST, MULTICAST, AND BROADCAST 55 17.1.2 FRAGMENTATION OF NetBIOS DATAGRAMS 55 17.2 NetBIOS DATAGRAMS BY B NODES 57 17.3 NetBIOS DATAGRAMS BY P AND M NODES 58 18. NODE CONFIGURATION PARAMETERS 58 19. MINIMAL CONFORMANCE 59 REFERENCES 60 APPENDIX A 61 INTEGRATION WITH INTERNET GROUP MULTICASTING 61 A-1. ADDITIONAL PROTOCOL REQUIRED IN B AND M NODES 61 A-2. CONSTRAINTS 61 APPENDIX B 62 IMPLEMENTATION CONSIDERATIONS 62 B-1. IMPLEMENTATION MODELS 62 B-1.1 MODEL INDEPENDENT CONSIDERATIONS 63 B-1.2 SERVICE OPERATION FOR EACH MODEL 63 B-2. CASUAL AND RESTRICTED NetBIOS APPLICATIONS 64 B-3. TCP VERSUS SESSION KEEP-ALIVES 66 B-4. RETARGET ALGORITHMS 67 B-5. NBDD SERVICE 68 B-6. APPLICATION CONSIDERATIONS 68 B-6.1 USE OF NetBIOS DATAGRAMS 68 NetBIOS Working Group [Page 5] RFC 1001 March 1987 PROTOCOL STANDARD FOR A NetBIOS SERVICE ON A TCP/UDP TRANSPORT: CONCEPTS AND METHODS 1. STATUS OF THIS MEMO This RFC specifies a proposed standard for the Internet community. Since this topic is new to the Internet community, discussions and suggestions are specifically requested. Please send written comments to: Karl Auerbach Epilogue Technology Corporation P.O. Box 5432 Redwood City, CA 94063 Please send online comments to: Avnish Aggarwal Internet: mtxinu!excelan!avnish@ucbvax.berkeley.edu Usenet: ucbvax!mtxinu!excelan!avnish Distribution of this document is unlimited. 2. ACKNOWLEDGEMENTS This RFC has been developed under the auspices of the Internet Activities Board, especially the End-to-End Services Task Force. The following individuals have contributed to the development of this RFC: Avnish Aggarwal Arvind Agrawal Lorenzo Aguilar Geoffrey Arnold Karl Auerbach K. Ramesh Babu Keith Ball Amatzia Ben-Artzi Vint Cerf Richard Cherry David Crocker Steve Deering Greg Ennis Steve Holmgren Jay Israel David Kaufman Lee LaBarre James Lau Dan Lynch Gaylord Miyata David Stevens Steve Thomas Ishan Wu The system proposed by this RFC does not reflect any existing Netbios-over-TCP implementation. However, the design incorporates considerable knowledge obtained from prior implementations. Special thanks goes to the following organizations which have provided this invaluable information: CMC/Syros Excelan Sytek Ungermann-Bass NetBIOS Working Group [Page 6] RFC 1001 March 1987 3. INTRODUCTION This RFC describes the ideas and general methods used to provide NetBIOS on a TCP and UDP foundation. A companion RFC, "Protocol Standard For a NetBIOS Service on a TCP/UDP Transport: Detailed Specifications"[1] contains detailed descriptions of packet formats, protocols, and defined constants and variables. The NetBIOS service has become the dominant mechanism for personal computer networking. NetBIOS provides a vendor independent interface for the IBM Personal Computer (PC) and compatible systems. NetBIOS defines a software interface not a protocol. There is no "official" NetBIOS service standard. In practice, however, the IBM PC-Network version is used as a reference. That version is described in the IBM document 6322916, "Technical Reference PC Network"[2]. Protocols supporting NetBIOS services have been constructed on diverse protocol and hardware foundations. Even when the same foundation is used, different implementations may not be able to interoperate unless they use a common protocol. To allow NetBIOS interoperation in the Internet, this RFC defines a standard protocol to support NetBIOS services using TCP and UDP. NetBIOS has generally been confined to personal computers to date. However, since larger computers are often well suited to run certain NetBIOS applications, such as file servers, this specification has been designed to allow an implementation to be built on virtually any type of system where the TCP/IP protocol suite is available. This standard defines a set of protocols to support NetBIOS services. These protocols are more than a simple communications service involving two entities. Rather, this note describes a distributed system in which many entities play a part even if they are not involved as an end-point of a particular NetBIOS connection. This standard neither constrains nor determines how those services are presented to application programs. Nevertheless, it is expected that on computers operating under the PC-DOS and MS-DO