As per Relevance of the word required, we have this rfc below:
Network Working Group H.
Request for Comments: 3252
Category: Informational 1 April 2002
Binary Lexical Octet Ad-hoc
Status of this
This memo provides information for the Internet community. It
not specify an Internet standard of any kind. Distribution of
memo is unlimited
Copyright
Copyright (C) The Internet Society (2002). All Rights Reserved
This document defines a reformulation of IP and two transport
protocols (TCP and UDP) as XML applications
1.
1.1.
This document describes the Binary Lexical Octet Ad-hoc
(BLOAT): a reformulation of a widely-deployed network-layer
(IP [RFC791]), and two associated transport layer protocols (
[RFC793] and UDP [RFC768]) as XML [XML] applications. It
describes methods for transporting BLOAT over Ethernet and IEEE 802
networks as well as encapsulating BLOAT in IP for gatewaying
across the public Internet
1.2.
The wild popularity of XML as a basis for application-level
such as the Blocks Extensible Exchange Protocol [RFC3080], the
Object Access Protocol [SOAP], and Jabber [JABBER]
investigation into the possibility of extending the use of XML in
protocol stack. Using XML at both the transport and network layer
addition to the application layer would provide for an amazing
of power and flexibility while removing dependencies on
and hard-to-understand binary protocols. This protocol
would also allow applications to use a single XML parser for
aspects of their operation, eliminating developer time spent
out the intricacies of each new protocol, and moving the hard work
Kennedy Informational [Page 1]
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002
parsing to the XML toolset. The use of XML also mitigates
over "network vs. host" byte ordering which is at the root of
network application bugs
1.3. Relation to Existing
The reformulations specified in this RFC follow as closely
possible the spirit of the RFCs on which they are based, and so
contain elements or attributes that would not be needed in a
reworking (e.g. length attributes, which are implicit in XML.)
The layering of network and transport protocols are maintained
this RFC despite the optimizations that could be made if the
were somewhat blurred (i.e. merging TCP and IP into a single,
element in the DTD) in order to foster future use of this protocol
a basis for reformulating other protocols (such as ICMP.)
Other than the encoding, the behavioral aspects of each of
existing protocols remain unchanged. Routing, address spaces,
congestion control, etc. behave as specified in the extant standards
Adapting to new standards and experimental algorithm heuristics
improving performance will become much easier once the move to
has been completed
1.4. Requirement
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
document are to be interpreted as described in BCP 14, RFC 2119
[RFC2119].
2.
This protocol MUST be implemented to be compliant with this RFC
IPoXML is the root protocol REQUIRED for effective use of
(section 3.) and higher-level application protocols
The DTD for this document type can be found in section 7.1.
The routing of IPoXML can be easily implemented on hosts with an
parser, as the regular structure lends itself handily to parsing
validation of the document/datagram and then processing
destination address, TTL, and checksum before sending it on to
next-hop
The reformulation of IPv4 was chosen over IPv6 [RFC2460] due to
wider deployment of IPv4 and the fact that implementing IPv6 as
would have exceeded the 1500 byte Ethernet MTU
Kennedy Informational [Page 2]
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002
All BLOAT implementations MUST use - and specify - the UTF-8
of RFC 2279 [RFC2279]. All BLOAT document/datagrams MUST be well
formed and include the XMLDecl
2.1. IP
A number of items have changed (for the better) from the original
specification. Bit-masks, where present have been converted
human-readable values. IP addresses are listed in their dotted
decimal notation [RFC1123]. Length and checksum values are
as decimal integers
To calculate the length and checksum fields of the IP element,
canonicalized form of the element MUST be used. The canonical
SHALL have no whitespace (including newline characters)
elements and only one space character between attributes.
SHALL NOT be a space following the last attribute in an element
An iterative method SHOULD be used to calculate checksums, as
length field will vary based on the size of the checksum
The payload element bears special attention. Due to the
set restrictions of XML, the payload of IP datagrams (which
contain arbitrary data) MUST be encoded for transport. This
REQUIRES the contents of the payload to be encoded in the base-64
encoding of RFC 2045 [RFC2045], but removes the requirement that
encoded output MUST be wrapped on 76-character lines
Kennedy Informational [Page 3]
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002
2.2. Example
The following is an example IPoXML datagram with an empty payload
encoding="UTF-8"?>
3.
This protocol MUST be implemented to be compliant with this RFC.
DTD for this document type can be found in section 7.2.
3.1. TCP
A number of items have changed from the original TCP specification
Bit-masks, where present have been converted into human-
values. Length and checksum and port values are present as
integers
To calculate the length and checksum fields of the TCP element,
canonicalized form of the element MUST be used as in section 2.1.
An iterative method SHOULD be used to calculate checksums as
section 2.1.
The payload element MUST be encoded as in section 2.1.
Kennedy Informational [Page 4]
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002
The TCP offset element was expanded to a maximum of 255 from 16
allow for the increased size of the header in XML
TCPoXML datagrams encapsulated by IPoXML MAY omit the
as well as the declaration
3.2. Example
The following is an example TCPoXML datagram with an empty payload
encoding="UTF-8"?>
<sequence number="322622954"/>
<acknowledgement number="689715995"/>
<reserved value="0"/>
<checksum value="2988"/>
4.
This protocol MUST be implemented to be compliant with this RFC.
DTD for this document type can be found in section 7.3.
4.1. UDP
A number of items have changed from the original UDP specification
Bit-masks, where present have been converted into human-
values. Length and checksum and port values are present as
integers
Kennedy Informational [Page 5]
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002
To calculate the length and checksum fields of the UDP element,
canonicalized form of the element MUST be used as in section 2.1.
iterative method SHOULD be used to calculate checksums as in
2.1.
The payload element MUST be encoded as in section 2.1.
UDPoXML datagrams encapsulated by IPoXML MAY omit the
as well as the declaration
4.2. Example
The following is an example UDPoXML datagram with an empty payload
encoding="UTF-8"?>
<checksum value="2988"/>
5. Network
This document provides for the transmission of BLOAT datagrams
two common families of physical layer transport. Future RFCs
address additional transports as routing vendors catch up to
specification, and we begin to see BLOAT routed across the
backbone
5.1.
BLOAT is encapsulated in Ethernet datagrams as in [RFC894] with
exception that the type field of the Ethernet frame MUST contain
value 0xBEEF. The first 5 octets of the Ethernet frame payload
be 0x3c 3f 78 6d 6c ("
5.2. IEEE 802
BLOAT is encapsulated in IEEE 802 Networks as in [RFC1042]
that the protocol type code for IPoXML is 0xBEEF
Kennedy Informational [Page 6]
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002
6. Gatewaying over
In order to facilitate the gradual introduction of BLOAT into
public Internet, BLOAT MAY be encapsulated in IP as in [RFC2003]
gateway between networks that run BLOAT natively on their LANs
7.
The Transport DTDs (7.2. and 7.3.) build on the definitions in
Network DTD (7.1.)
The DTDs are referenced by their PubidLiteral and SystemLiteral (
[XML]) although it is understood that most IPoXML
will not need to pull down the DTD, as it will normally be
in the implementation, and presents something of a catch-22 if
need to load part of your network protocol over the network
7.1. IPoXML
Kennedy Informational [Page 7]
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002
Precedence "CDATA">
Handling "CDATA">
protocol, checksum, source, destination, options
padding)>
length %Digits; #REQUIRED
value %Digits; #REQUIRED
precedence %Precedence; #
delay (normal | low) #
throughput (normal | high) #
relibility (normal | high) #
reserved CDATA #FIXED "0">
value %Digits; #REQUIRED
value %Digits; #REQUIRED
Kennedy Informational [Page 8]
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002
reserved CDATA #FIXED "0"
df (may|dont) #
mf (last|more) #REQUIRED
value %Digits; #REQUIRED
value %Digits; #REQUIRED
protocol EMPTY
value %Digits; #REQUIRED
checksum EMPTY
value %Digits; #REQUIRED
address %IP4Addr; #REQUIRED
destination EMPTY
address %IP4Addr; #REQUIRED
security | loose | strict |
| stream | timestamp )*>
copied (0|1) #
class CDATA #FIXED "0"
number CDATA #FIXED "0">
copied (0|1) #
class CDATA #FIXED "0"
number CDATA #FIXED "1">
security EMPTY
Kennedy Informational [Page 9]
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002
copied CDATA #FIXED "1"
class CDATA #FIXED "0"
number CDATA #FIXED "2"
length CDATA #FIXED "11"
security %Sec; #
compartments %Compartments; #
handling %Handling; #
tcc %TCC; #REQUIRED
copied CDATA #FIXED "1"
class CDATA #FIXED "0"
number CDATA #FIXED "3"
length %Digits; #
pointer %Digits; #REQUIRED
address %IP4Addr; #REQUIRED
copied CDATA #FIXED "1"
class CDATA #FIXED "0"
number CDATA #FIXED "9"
length %Digits; #
pointer %Digits; #REQUIRED
copied CDATA #FIXED "0"
class CDATA #FIXED "0"
number CDATA #FIXED "7"
length %Digits; #
pointer %Digits; #REQUIRED
copied CDATA #FIXED "1"
class CDATA #FIXED "0"
number CDATA #FIXED "8"
length CDATA #FIXED "4"
id %Digits; #REQUIRED
timestamp (tstamp)+>
Kennedy Informational [Page 10]
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002
copied CDATA #FIXED "0"
class CDATA #FIXED "2"
number CDATA #FIXED "4"
length %Digits; #
pointer %Digits; #
oflw %Digits; #
flag (0 | 1 | 3) #REQUIRED
time %Digits; #
address %IP4Addr; #IMPLIED
pad CDATA #REQUIRED
7.2. TCPoXML
sequence, acknowledgement, offset
reserved, control, window, checksum, urgent
tcp.options, padding)>
port %Digits; #REQUIRED
Kennedy Informational [Page 11]
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002
port %Digits; #REQUIRED
sequence EMPTY
number %Digits; #REQUIRED
acknowledgement EMPTY
number %Digits; #REQUIRED
number %Digits; #REQUIRED
reserved EMPTY
value CDATA #FIXED "0">
urg (0|1) #
ack (0|1) #
psh (0|1) #
rst (0|1) #
syn (0|1) #
fin (0|1) #IMPLIED
size %Digits; #REQUIRED
destination, protocol
tcp.length)>
Kennedy Informational [Page 12]
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002
value %Digits; #REQUIRED
pointer %Digits; #REQUIRED
kind CDATA #FIXED "0">
kind CDATA #FIXED "1">
kind CDATA #FIXED "2"
length CDATA #FIXED "4"
size %Digits; #REQUIRED
7.3. UDPoXML
checksum)>
destination, protocol
udp.length)>
value %Digits; #REQUIRED
Kennedy Informational [Page 13]
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002
8. Security
XML, as a subset of SGML, has the same security considerations
specified in SGML Media Types [RFC1874]. Security
that apply to IP, TCP and UDP also likely apply to BLOAT as it
not attempt to correct for issues not related to message format
9.
[JABBER] Miller, J., "Jabber", draft-miller-jabber-00.txt
February 2002. (Work in Progress
[RFC768] Postel, J., "User Datagram Protocol", STD 6, RFC 768,
August 1980.
[RFC791] Postel, J., "Internet Protocol", STD 5, RFC 791,
September 1981.
[RFC793] Postel, J., "Transmission Control Protocol", STD 7,
793, September 1981.
[RFC894] Hornig, C., "Standard for the Transmission of
Datagrams over Ethernet Networks.", RFC 894, April 1984.
[RFC1042] Postel, J. and J. Reynolds, "Standard for
Transmission of IP Datagrams Over IEEE 802 Networks",
43, RFC 1042, February 1988.
[RFC1123] Braden, R., "Requirements for Internet Hosts -
Application and Support", RFC 1123, October 1989.
[RFC1874] Levinson, E., "SGML Media Types", RFC 1874,
1995.
[RFC2003] Perkins, C., "IP Encapsulation within IP", RFC 2003,
October 1996.
[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet
Extensions (MIME) Part One: Format of Internet
Bodies", RFC 2045, November 1996.
[RFC2119] Bradner, S., "Key words for use in RFCs to
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2279] Yergeau, F., "UTF-8, a transformation format of
10646", RFC 2279, January 1998.
Kennedy Informational [Page 14]
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, December 1998.
[RFC3080] Rose, M., "The Blocks Extensible Exchange Protocol Core",
RFC 3080, March 2001.
[SOAP] Box, D., Ehnebuske, D., Kakivaya, G., Layman, A.,
Mendelsohn, N., Nielsen, H. F., Thatte, S. Winer, D.,
"Simple Object Access Protocol (SOAP) 1.1" World Wide
Consortium Note, May 2000 http://www.w3.org/TR/SOAP
[XML] Bray, T., Paoli, J., Sperberg-McQueen, C. M., "
Markup Language (XML)" World Wide Web
Recommendation REC- xml-19980210.
http://www.w3.org/TR/1998/REC-xml-19980210
10. Author's
Hugh
1060 West
Chicago, IL 60613
EMail: kennedyh@engin.umich.
Kennedy Informational [Page 15]
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002
11. Full Copyright
Copyright (C) The Internet Society (2002). All Rights Reserved
This document and translations of it may be copied and furnished
others, and derivative works that comment on or otherwise explain
or assist in its implementation may be prepared, copied,
and distributed, in whole or in part, without restriction of
kind, provided that the above copyright notice and this paragraph
included on all such copies and derivative works. However,
document itself may not be modified in any way, such as by
the copyright notice or references to the Internet Society or
Internet organizations, except as needed for the purpose
developing Internet standards in which case the procedures
copyrights defined in the Internet Standards process must
followed, or as required to translate it into languages other
English
The limited permissions granted above are perpetual and will not
revoked by the Internet Society or its successors or assigns
This document and the information contained herein is provided on
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
Funding for the RFC Editor function is currently provided by
Internet Society
Kennedy Informational [Page 16]
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