Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
NetBIOS over TCP/IP
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Services == NetBIOS provides three distinct services: * Name service for name registration and resolution (ports: 137/udp and 137/tcp) * [[Datagram]] distribution service for connectionless communication (port: 138/udp) * Session service for connection-oriented communication (port: 139/tcp) NBT implements all of those services. ===Name service===<!-- This section is linked from [[Name server]] --> In NetBIOS, each participant must register on the network using a unique name of at most 15 characters. In legacy networks, when a new application wanted to register a name, it had to broadcast a message saying "Is anyone currently using that name?" and wait for an answer. If no answer came back, it was safe to assume that the name was not in use. However, the wait timeout was a few seconds, making the name registration a very lengthy process, as the only way of knowing that a name was not registered was to not receive any answer. NBT can implement a central repository, or ''Name Service'', that records all name registrations. An application wanting to register a name would therefore contact the name server (which has a known network address) and ask whether the name is already registered, using a "Name Query" packet. This is much faster, as the name server returns a negative response immediately if the name is not already in the database, meaning it is available. The Name Service, according to RFCs 1001 and 1002, is called'' NetBIOS Naming Service'' or NBNS. Microsoft [[Windows Internet Name Service|WINS]] is an implementation of NBNS. It is worth saying that due to constant development of the way in which the Name Service handles conflict or merges, "group names" varies from vendor to vendor and can even be different by version e.g. with the introduction of a service pack. The packet formats of the Name Service are identical to [[Domain Name System|DNS]]. The key differences are the addition of NetBIOS "Node Status" query, dynamic registration and conflict marking packets. They are encapsulated in [[User Datagram Protocol|UDP]]. Later implementation includes an optional ''Scope'' part of the name, making NetBIOS name hierarchical like DNS, but this is seldom used. In addition, to start a session or to send a datagram to a particular host rather than to broadcast the datagram, NBT will have to determine the [[IP address]] of the host with a given NetBIOS name; this is done by broadcasting a "Name Query" packet, and/or sending it to the NetBIOS name server. The response will have the IP address of the host with that name. NBNS is one of the first proper dynamic peer-to-peer distributed name registration services. The NBNS protocol was brought into disrepute by Microsoft: it earned a bad name for being 'chatty', swamping networks with dynamic registration traffic on multiple protocols (IPX/SPX, NBF and TCP/IP) as people badly misconfigured their machines and their networks{{Citation needed|date=January 2013}}. The principles implemented in NBNS have been reimplemented many times, including in such systems as [[zeroconf]] and [[MobileIP]]. ===Datagram distribution service=== Datagram mode is "connectionless"; NetBIOS datagrams are sent over UDP. A datagram is sent with a "Direct Unique" or "Direct Group" packet if it's being sent to a particular NetBIOS name, or a "Broadcast" packet if it's being sent to all NetBIOS names on the network. ===Session service=== {{Redirect|NBSS}} Session mode lets two computers establish a connection for a "conversation", allows larger messages to be handled, and provides error detection and recovery. Sessions are established by exchanging packets. The computer establishing the session attempts to make a [[Transmission Control Protocol|TCP]] connection to port 139 on the computer with which the session is to be established. If the connection is made, the computer establishing the session then sends over the connection a "Session Request" packet with the NetBIOS names of the application establishing the session and the NetBIOS name to which the session is to be established. The computer with which the session is to be established will respond with a "Positive Session Response" indicating that a session can be established or a "Negative Session Response" indicating that no session can be established (either because that computer isn't listening for sessions being established to that name or because no resources are available to establish a session to that name). Data is transmitted during an established session by Session Message packets. TCP handles flow control and retransmission of all session service packets, and the dividing of the data stream over which the packets are transmitted into [[Internet Protocol|IP]] datagrams small enough to fit in link-layer packets. Sessions are closed by closing the TCP connection.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)