+ −
+ −
+ −
+ −
+ −
+ −
Network Working Group H. Kennedy+ −
Request for Comments: 3252 Mimezine+ −
Category: Informational 1 April 2002+ −
+ −
+ −
Binary Lexical Octet Ad-hoc Transport+ −
+ −
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.+ −
+ −
1. Introduction+ −
+ −
1.1. Overview+ −
+ −
This document describes the Binary Lexical Octet Ad-hoc Transport+ −
(BLOAT): a reformulation of a widely-deployed network-layer protocol+ −
(IP [RFC791]), and two associated transport layer protocols (TCP+ −
[RFC793] and UDP [RFC768]) as XML [XML] 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.+ −
+ −
1.2. Motivation+ −
+ −
The wild popularity of XML as a basis for application-level protocols+ −
such as the Blocks Extensible Exchange Protocol [RFC3080], the Simple+ −
Object Access Protocol [SOAP], and Jabber [JABBER] 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+ −
+ −
+ −
+ −
+ −
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 concerns+ −
over "network vs. host" byte ordering which is at the root of many+ −
network application bugs.+ −
+ −
1.3. Relation to Existing Protocols+ −
+ −
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.+ −
+ −
1.4. Requirement Levels+ −
+ −
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 BCP 14, RFC 2119+ −
[RFC2119].+ −
+ −
2. IPoXML+ −
+ −
This protocol MUST be implemented to be compliant with this RFC.+ −
IPoXML is the root protocol REQUIRED for effective use of TCPoXML+ −
(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 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 [RFC2460] due to the+ −
wider deployment of IPv4 and the fact that implementing IPv6 as XML+ −
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 encoding+ −
of RFC 2279 [RFC2279]. All BLOAT document/datagrams MUST be well-+ −
formed and include the XMLDecl.+ −
+ −
2.1. IP Description+ −
+ −
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 [RFC1123]. 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 RFC 2045 [RFC2045], but removes the requirement that the+ −
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 Datagram+ −
+ −
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>+ −
+ −
3. TCPoXML+ −
+ −
This protocol MUST be implemented to be compliant with this RFC. The+ −
DTD for this document type can be found in section 7.2.+ −
+ −
3.1. TCP Description+ −
+ −
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 section 2.1.+ −
+ −
An iterative method SHOULD be used to calculate checksums as in+ −
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 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.+ −
+ −
3.2. Example Datagram+ −
+ −
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>+ −
+ −
4. UDPoXML+ −
+ −
This protocol MUST be implemented to be compliant with this RFC. The+ −
DTD for this document type can be found in section 7.3.+ −
+ −
4.1. UDP Description+ −
+ −
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.+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
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, a+ −
canonicalized form of the element MUST be used as in section 2.1. An+ −
iterative method SHOULD be used to calculate checksums as in section+ −
2.1.+ −
+ −
The payload element MUST be encoded as in section 2.1.+ −
+ −
UDPoXML datagrams encapsulated by IPoXML MAY omit the <?xml?> header+ −
as well as the <!DOCTYPE> declaration.+ −
+ −
4.2. Example Datagram+ −
+ −
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>+ −
+ −
5. Network Transport+ −
+ −
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.+ −
+ −
5.1. Ethernet+ −
+ −
BLOAT is encapsulated in Ethernet datagrams as in [RFC894] 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".)+ −
+ −
5.2. IEEE 802+ −
+ −
BLOAT is encapsulated in IEEE 802 Networks as in [RFC1042] except+ −
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 IP+ −
+ −
In order to facilitate the gradual introduction of BLOAT into the+ −
public Internet, BLOAT MAY be encapsulated in IP as in [RFC2003] to+ −
gateway between networks that run BLOAT natively on their LANs.+ −
+ −
7. DTDs+ −
+ −
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+ −
[XML]) 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.+ −
+ −
7.1. IPoXML DTD+ −
+ −
<!--+ −
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 [RFC1123]+ −
+ −
Class [0..3]+ −
+ −
Sec "Unclassified | Confidential | EFTO | MMMM | PROG |+ −
Restricted | Secret | Top Secret | Reserved"+ −
+ −
Compartments [0..65535]+ −
+ −
Handling [0..65535]+ −
+ −
TCC [0..16777216]+ −
+ −
-->+ −
+ −
+ −
+ −
Kennedy Informational [Page 7]+ −
+ −
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002+ −
+ −
+ −
<!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+ −
+ −
+ −
+ −
Kennedy Informational [Page 8]+ −
+ −
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002+ −
+ −
+ −
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>+ −
+ −
+ −
+ −
Kennedy Informational [Page 9]+ −
+ −
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002+ −
+ −
+ −
<!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 -->+ −
+ −
+ −
+ −
Kennedy Informational [Page 10]+ −
+ −
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002+ −
+ −
+ −
<!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 [RFC2045], as modified+ −
by section 2.1 of this RFC -->+ −
<!ELEMENT payload (CDATA)>+ −
+ −
7.2. TCPoXML DTD+ −
+ −
<!--+ −
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 -->+ −
+ −
+ −
+ −
Kennedy Informational [Page 11]+ −
+ −
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002+ −
+ −
+ −
<!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.+ −
-->+ −
+ −
+ −
+ −
Kennedy Informational [Page 12]+ −
+ −
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002+ −
+ −
+ −
<!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>+ −
+ −
7.3. UDPoXML DTD+ −
+ −
<!--+ −
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>+ −
+ −
+ −
+ −
Kennedy Informational [Page 13]+ −
+ −
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002+ −
+ −
+ −
8. Security Considerations+ −
+ −
XML, as a subset of SGML, has the same security considerations as+ −
specified in SGML Media Types [RFC1874]. 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.+ −
+ −
9. References+ −
+ −
[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, RFC+ −
793, September 1981.+ −
+ −
[RFC894] Hornig, C., "Standard for the Transmission of IP+ −
Datagrams over Ethernet Networks.", RFC 894, April 1984.+ −
+ −
[RFC1042] Postel, J. and J. Reynolds, "Standard for the+ −
Transmission of IP Datagrams Over IEEE 802 Networks", STD+ −
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, December+ −
1995.+ −
+ −
[RFC2003] Perkins, C., "IP Encapsulation within IP", RFC 2003,+ −
October 1996.+ −
+ −
[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail+ −
Extensions (MIME) Part One: Format of Internet Message+ −
Bodies", RFC 2045, November 1996.+ −
+ −
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate+ −
Requirement Levels", BCP 14, RFC 2119, March 1997.+ −
+ −
[RFC2279] Yergeau, F., "UTF-8, a transformation format of ISO+ −
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 Web+ −
Consortium Note, May 2000 http://www.w3.org/TR/SOAP/+ −
+ −
[XML] Bray, T., Paoli, J., Sperberg-McQueen, C. M., "Extensible+ −
Markup Language (XML)" World Wide Web Consortium+ −
Recommendation REC- xml-19980210.+ −
http://www.w3.org/TR/1998/REC-xml-19980210+ −
+ −
10. Author's Address+ −
+ −
Hugh Kennedy+ −
Mimezine+ −
1060 West Addison+ −
Chicago, IL 60613+ −
USA+ −
+ −
EMail: kennedyh@engin.umich.edu+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −
Kennedy Informational [Page 15]+ −
+ −
RFC 3252 Binary Lexical Octet Ad-hoc Transport 1 April 2002+ −
+ −
+ −
11. Full Copyright Statement+ −
+ −
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]+ −
+ −