As per Relevance of the word datagram, we have this rfc below:
Network Working Group G.
Request for Comments: 2097 Microsoft Corp
Category: Standards Track January 1997
The PPP NetBIOS Frames Control Protocol (NBFCP
Status of this
This document specifies an Internet standards track protocol for
Internet community, and requests discussion and suggestions
improvements. Please refer to the current edition of the "
Official Protocol Standards" (STD 1) for the standardization
and status of this protocol. Distribution of this memo is unlimited
The Point-to-Point Protocol (PPP) [1] provides a standard method
transporting multi-protocol datagrams over point-to-point links.
defines an extensible Link Control Protocol, and proposes a family
Network Control Protocols for establishing and configuring
network-layer protocols
The NBF protocol [3] was originally called the NetBEUI protocol.
document defines the Network Control Protocol for establishing
configuring the NBF protocol over PPP
The NBFCP protocol is only applicable for an end system to connect
a peer system or the LAN that peer system is connected to. It is
applicable for connecting two LANs together due to NetBIOS
limitations and NetBIOS name defense mechanisms
Table of
1. Introduction .......................................... 2
1.1 Specification of Requirements ................... 2
1.2 Terminology ..................................... 3
2. A PPP Network Control Protocol for NBF ................ 3
2.1 Sending NBF Datagrams ........................... 4
2.2 Bridging NBF Datagrams........................... 5
2.3 NetBIOS Name Defense............................. 5
3. NBFCP Configuration Options ........................... 6
3.1 Name-Projection.................................. 6
3.2 Peer-Information................................. 8
3.3 Multicast-Filtering.............................. 10
3.4 IEEE-MAC-Address-Required........................ 11
SECURITY CONSIDERATIONS ...................................... 12
REFERENCES ................................................... 12
Pall Standards Track [Page 1]
RFC 2097 NBFCP January 1997
ACKNOWLEDGEMENTS ............................................. 13
CHAIR'S ADDRESS .............................................. 13
AUTHOR'S ADDRESS ............................................. 13
1.
PPP has three main components
1. A method for encapsulating multi-protocol datagrams
2. A Link Control Protocol (LCP) for establishing, configuring
and testing the data-link connection
3. A family of Network Control Protocols for establishing
configuring different network-layer protocols
In order to establish communications over a point-to-point link,
end of the PPP link must first send LCP packets to configure and
the data link. After the link has been established and
facilities have been negotiated as needed by the LCP, PPP must
NBFCP packets to choose and configure the NBF network-layer protocol
Once NBFCP has reached the Opened state, NBF datagrams can be
over the link
The link will remain configured for communications until explicit
or NBFCP packets close the link down, or until some external
occurs (an inactivity timer expires or network
intervention).
1.1. Specification of
In this document, several words are used to signify the
of the specification. These words are often capitalized
MUST This word, or the adjective "required", means that
definition is an absolute requirement of the specification
MUST NOT This phrase means that the definition is an
prohibition of the specification
SHOULD This word, or the adjective "recommended", means that
may exist valid reasons in particular circumstances
ignore this item, but the full implications should
understood and carefully weighed before choosing
different course
Pall Standards Track [Page 2]
RFC 2097 NBFCP January 1997
MAY This word, or the adjective "optional", means that
item is one of an allowed set of alternatives.
implementation which does not include this option MUST
prepared to interoperate with another implementation
does include the option
1.2.
This document frequently uses the following terms
peer The other end of the point-to-point link
silently
This means the implementation discards the packet
further processing. The implementation SHOULD provide
capability of logging the error, including the contents
the silently discarded packet, and SHOULD record the
in a statistics counter
end-
A user's machine. It only sends packets to servers
other end-systems. It doesn't pass any packets
itself
router Allows packets to pass through, usually from one
segment to another. Sometimes these are
"intermediate-systems".
bridge Allows packets to pass through with the data
unmodified. Usually from one ethernet segment to
or from one ethernet segment to a token-ring segment
gateway Allows packets to be sent from one network protocol
the same or different network protocol. For example
NetBIOS packets from an NBF network to a TCP/IP
which has implemented RFC 1001 and RFC 1002.
local access only server A server which does not pass any
through itself to other servers
2. A PPP Network Control Protocol for
The NBF Control Protocol (NBFCP) is responsible for configuring
enabling, and disabling the NBF protocol modules on both ends of
point-to-point link. NBFCP uses the same packet exchange
as the Link Control Protocol. NBFCP packets MUST NOT be
until PPP has reached the Network-Layer Protocol phase.
packets received before this phase is reached should be
Pall Standards Track [Page 3]
RFC 2097 NBFCP January 1997
discarded
The NBF Control Protocol is exactly the same as the Link
Protocol [1] with the following exceptions
Frame
The packet may utilize any modifications to the basic frame
which have been negotiated during the Link Establishment phase
Data Link Layer Protocol
Exactly one NBFCP packet is encapsulated in the Information
of a PPP Data Link Layer frame where the Protocol field
type hex 803f (NBF Control Protocol).
Code
Only Codes 1 through 7 (Configure-Request, Configure-Ack
Configure-Nak, Configure-Reject, Terminate-Request, Terminate-
and Code-Reject) are used. Other Codes should be treated
unrecognized and should result in Code-Rejects
NBFCP packets MUST NOT be exchanged until PPP has reached
Network-Layer Protocol phase. An implementation should
prepared to wait for Authentication and Link Quality
to finish before timing out waiting for a Configure-Ack or
response. It is suggested that an implementation give up
after user intervention or a configurable amount of time. Also
because NetBIOS name defense takes time (typically a minimum
3 seconds if names are added in parallel), it is suggested
if Name-Projection is negotiated, the timeouts are increased to 10
seconds
Configuration Option
NBFCP has a distinct set of Configuration Options
2.1. Sending NBF
Before any NBF packets may be communicated, PPP must reach
Network-Layer Protocol phase, and the NBF Control Protocol must
the Opened state
Unless otherwise negotiated, exactly one NBF packet is
in the Information field of a PPP Data Link Layer frame where
Pall Standards Track [Page 4]
RFC 2097 NBFCP January 1997
Protocol field indicates type hex 003f (NBF datagram).
Since NBF datagrams for PPP do not contain a datagram length field
the encapsulated NBF packet MUST NOT contain any extra octet
except when Self-Defining-Padding is negotiated
The maximum length of an NBF datagram transmitted over a PPP link
the same as the maximum length of the Information field of a PPP
link layer frame. Since there is no standard method for
and reassembling NBF datagrams, PPP links supporting NBF MUST
at least 576 octets in the information field of a data link
frame. It is recommended that an implementation allow 1500 octets
the information field unless the IEEE-MAC-Address-Required
option is negotiated (see below).
2.2 Bridging NBF
There exist at least four different MAC header implementations
NBF packets: 802.3 Ethernet, 802.5 Token-Ring, DIX Ethernet,
FDDI. Because NBF is not a routable protocol, some
implementations may require IEEE MAC addresses to properly route
bridge NBF packets. Some PPP implementations may require the
MAC media header in order to properly route or bridge NBF packets
Other smarter implementations may only require the IEEE MAC addreses
and still other implementations (such as NetBIOS gateways) may
require any MAC address fields. NBFCP implementations which
IEEE Addresses should negotiate the NBFCP IEEE-MAC-Address-
boolean configuartion option so that the MAC header can be
in the NBF packet
If IEEE-MAC-Address-Required boolean configuration option
negotiated, all NBF datagrams MUST be sent with the specified 12
octet IEEE MAC address header. Since negotiation of this
occurs after the LCP phase, NBF packets MAY exceed the negotiated
MRU size. A PPP implementation which negotiates this option
allow reception of PPP NBF packets 12 octets larger than
negotiated MRU size
2.3 NetBIOS Name
In order to guarantee uniqueness of NetBIOS Names on the network
NBFCP requires that end-system implementations MUST negotiate
Name-Projection configuration option
Pall Standards Track [Page 5]
RFC 2097 NBFCP January 1997
3. NBFCP Configuration
NBFCP Configuration Options allow modifications to the
characteristics of the network-layer protocol to be negotiated. If
Configuration Option is not included in a Configure-Request packet
the default value for that Configuration Option is assumed
NBFCP uses the same Configuration Option format defined for LCP [1],
with a separate set of Options
Up-to-date values of the NBFCP Option Type field are specified in
most recent "Assigned Numbers" RFC [2]. Current values are
as follows
1 Name-
2 Peer-
3 Multicast-
4 IEEE-MAC-Address-
3.1. Name-
This Configuration Option provides a method for the peer
provide the NetBIOS names registered on its network. The
of the Configure-Request states which NetBIOS names should
added by the remote peer. More than one Name-Projection
MAY appear in a single Configure-Request
Implementations which do not attempt to add any NetBIOS names
Configure-Reject the Name-Projection Configuration Option
If the Name-Projection Configuration Option is not offered by
remote peer, but is required by the local peer, the local
should Configure-Nak the request and indicate that it wishes
remote peer to add zero NetBIOS names because it is the only
acceptable value. The remote peer may then terminate NBFCP
attempt to add zero NetBIOS names, or attempt add one or
NetBIOS names
When the receiving peer cannot add all the requested names,
MUST Configure-Nak with the complete list of names requested
Those names which could be added should have the Added field
to zero. Those names which could not be added should have
Added field set to an appropriate non-zero return code.
sender of this Configuration Option SHOULD then resend
Configure-Request with the successfully added names
Pall Standards Track [Page 6]
RFC 2097 NBFCP January 1997
The implementation may choose to fail configuration if
complete list of NetBIOS names is not accepted. By failing,
implementation should terminate NBFCP by sending a Terminate
Request packet
Because adding NetBIOS names can take time (usually 3 seconds)
because PPP may default the restart timer to 3 seconds,
restart timer SHOULD default to 10 seconds when
NetBIOS names
A summary of the Name-Projection Configuration Option format is
below. The fields are transmitted from left to right
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | 1st NetBIOS-
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1st NetBIOS-Name (cont.)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1st NetBIOS-Name (cont.)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1st NetBIOS-Name (cont.)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1st NetBIOS-Name (cont.) | Added |2nd NetBIOS Name...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1
2 + (Number of NetBIOS names * 17)
NetBIOS-
This group of zero or more sixteen octet NetBIOS-Name
contains a list of all the NetBIOS names the peer wishes to add
the remote network if the packet is Configure-Request. If
packet is Configure-Reject, the peer does not support
configuration option and it can be assumed that no NetBIOS
were added
Because the length field is only one octet, only 14 NetBIOS
can be added per Name-Projection option. If more than 14
names should be added, then more than one Name-Projection
packet will have to be sent in the Configure-Request packet
Pall Standards Track [Page 7]
RFC 2097 NBFCP January 1997
This is a one octet field which plays a dual role. The
field in the Name-Projection Request packet contains the type
NetBIOS name added. A summary of name types is listed below
01 Unique Name
02 Group Name
If the packet is a Configure-Reject the Added field should
the NetBIOS return code for the NetBIOS Add Name or NetBIOS
Group Name command as defined in the NetBIOS 3.0 specification =
[3].
A summary of common result codes is listed below in type hex
00 Name successfully added
0D Duplicate name in local name table
0E Name table full
15 Name not found or cannot specify "*" or null
16 Name in use on remote NetBIOS
19 Name conflict detected
30 Name defined by another environment
35 Required system resources exhausted
3.2. Peer-
This Configuration Option provides a way for the peer
communicate NetBIOS pertinent configuration information.
negotiation of this option is not mandatory, it is suggested
A summary of the Peer-Information Option format is shown below.
fields are transmitted from left to right
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Peer-class |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Peer-version (major) | Peer-version(minor) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Peer-name ....
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Pall Standards Track [Page 8]
RFC 2097 NBFCP January 1997
2
>=3D
If the length is 8, there is no Peer-name. If the length
greater than 8, the Peer-name's length is Length - 8.
Peer-
The Peer-class field is one octet. It identifies the sender'
implementation type
Initial values are assigned as follows
Value
1 Reserved for legacy implementations
2 PPP NetBIOS Gateway Server
3 Reserved for legacy implementations
4 PPP Local Access Only Server
5 Reserved for legacy implementations
6 PPP NBF Bridge
7 Reserved for legacy implementations
8 PPP End-System
Peer-
The Peer-version field is four octets and indicates the version
the communication peer providing one side of the PPP connection
The first two octets are the major version number and the last
octets are the minor version number. The major and minor
represent a 16 bit unsigned number sent with the most
octet first
Peer-
The name of the peer. A suggested name is the NetBIOS
name of the peer. If the length field is 8, no peer name
provided. The peer-name may not be greater than 32 octets
length
Pall Standards Track [Page 9]
RFC 2097 NBFCP January 1997
3.3. Multicast-
This Configuration Option provides a way to negotiate the use
the Multicast-Forward-Period and the Multicast-Priority.
Configuration Option provides a way to negotiate how to
mulicast packets. It allows the sender of the Configure-
to state the current handling of multicast packets. The peer
request parameters by NAKing the option, and returning
Multicast-Filtering parameters
If negotiation about the remote Multicast-Filtering is required
and the peer did not provide the option in its Configure-Request
the option SHOULD be appended to a Configure-Nak
Controlling the multicast rate is important because some
applications use multicasts to communicate and
multicasts may prevent these applications from working. It
also true that other NetBIOS applications do not need to
any multicast packets and therefore it is best to quench the
at which the peer will send multicast packets
By default, the peer is pre-configured to an
assigned Multicast-Forward-Period and Priority. A Multicast
Forward-Period specified as hex type FFFF in a Configure-
is interpreted as requesting the receiving peer to specify a
in its Configure-Nak. A Multicast-Forward-Period value
as hex type FFFF in a Configure-Nak is interpreted as
that no value exists. A Multicast-Forward-Period of zero
that all multicast packets SHOULD be forwarded
Peers that rely on all multicast packets being forwarded
request a Multicast-Forward-Period of zero and a Multicast
Priority of one by NAKing the Configure-Request option
appending the proper parameters to a Configure-Nak
A summary of the Multicast-Filtering Configuration Option format
shown below. The fields are transmitted from left to right
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Multicast-Forward-Period |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Priority |
+-+-+-+-+-+-+-+-+
Pall Standards Track [Page 10]
RFC 2097 NBFCP January 1997
3
5
Multicast-Forward-
The Multicast-Forward-Period field is two octets and
the maximum period in seconds at which multicast packets
be sent. The maximum value for this field is 60 (one minute).
A value of zero indicates that there is no maximum period
which multicast packets can be sent. A value of hex type
indicates that the Multicast-Forward-Period is unknown. A
of five indicates that multicast packets will not be sent at
rate more frequent than once every five seconds. This
octet value represents a 16 bit unsigned number sent
the most significant octet first
The Priority field is one octet long and indicates if
packets have priority over other packets when being sent. A
of 0 indicates that directed packets have priority. A value of 1
indicates that multicast packets have priority
3.4. IEEE-MAC-Address-
This boolean Configuration Option provides a method for the
to require that all NBF datagrams be sent with a 12 octet IEEE
Address header. By default, it is assumed that no MAC header
required
A summary of the IEEE-MAC-Address-Required Boolean
Option format is shown below. The fields are transmitted from
to right
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Pall Standards Track [Page 11]
RFC 2097 NBFCP January 1997
4
2
By default the NBF datagram is sent without any MAC
information. The NBF datagram information field is equivalent
the data field in 802.3, 802.5, and FDDI frames
If this option is negotiated successfully, each NBF datagram
sent with a 12 octet IEEE MAC Address header prepended to
information field. A summary of the information field when
12 octet IEEE MAC Headers is shown below. The fields
transmitted from left to right. The MAC Address is in non
canonical form. This means that the first bit to be transmitted
every byte is the most significant bit
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination MAC Address | Source MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 802.3/802.5/FDDI data field...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Security
Security issues are not discussed in this memo
[1] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)",
STD 51, RFC 1661, July 1994.
[2] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2,
RFC 1700, October 1994.
[3] IBM Corp., "IBM Local Area Network Technical Reference",
Third Edition, Document Number SC30-3383-2, November 4, 1988.
Pall Standards Track [Page 12]
RFC 2097 NBFCP January 1997
[4] Baker, F., and R. Bowen "PPP Bridging Control Protocol (BCP)",
Work in Progress
Some of the text in this document is taken from previous
produced by the Point-to-Point Protocol Working Group of the
Engineering Task Force (IETF).
Thomas J. Dimitri (previously at Microsoft Corporation) authored
original draft
Special thanks go to coworkers at Microsoft, Bill
(Daydreamer), Tom Coradetti (DigiBoard), Marty Del Vecchio (Shiva),
Russ Gocht (Shiva) and several members of the IETF PPP Working Group
Chair's
The working group can be contacted via the current chair
Karl
Ascend
3518 Riverside Drive, Suite 101
Columbus, Ohio 43221
karl@MorningStar.
karl@Ascend.
Author's
Questions about this memo can also be directed to
Gurdeep Singh
Microsoft
1 Microsoft
Redmond, WA 98052-6399
EMail: gurdeep@microsoft.
Pall Standards Track [Page 13]
if you see any problems within the linking, don't worry be happy,
this is version 0.1 of the Relevance System and you gotta expect some crappy subroutines sometimes,
just be content we did not write this in Java, which would have made this "bigger and better" HAHAHHA.
RFC documents can be found at I.E.T.F.
Relevance System Copyright © 2002 Spectrum WorldResearch
other technical nosh by ServerMasters Corporation
collaboration of BobX