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