One document matched: draft-templin-v6v4-ndisc-01.txt
Differences from draft-templin-v6v4-ndisc-00.txt
INTERNET-DRAFT F. Templin
Nokia
Expires 30 April 2003 30 October 2002
Neighbor Affiliation Protocol for IPv6-over-(foo)-over-IPv4
draft-templin-v6v4-ndisc-01.txt
Abstract
This document proposes extensions to IPv6 Neighbor Discovery for
IPv6-over-(foo)-over-IPv4 links, where (foo) is either an
encapsulating layer (e.g., UDP) or a NULL layer. It is essentially a
lightweight, link-layer mechanism for neighbors to establish security
associations, discover and dynamically re-adjust maximum receive unit
(MRU) estimates, and perform unreachability detection. The protocol
makes no attempt to ensure reliable message delivery; this function
is performed by higher-layer protocols, e.g. TCP.
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet- Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Copyright Notice
Copyright (C) The Internet Society (2002). All Rights Reserved.
Templin Expires 30 April 2003 [Page 1]
INTERNET-DRAFT V6-V4 Neighbor Affiliation 30 October 2002
1. Introduction
The author anticipates a long-term requirement for [IPv6] operation
over IPv6-over-(foo)-over-IPv4 links, where (foo)-over-[IPv4] is
treated as a link layer for IPv6). Neighbors that exchange data over
such links will need to make the most efficient, robust and secure
use of the intervening IPv4 paths possible. The author believes that
this will require link-layer extensions to enable a hybrid proac-
tive/on-demand neighbor discovery mechanism using bi-directional
links.
IPv6 nodes will need to establish security associations, determine
and dynamically re-adjust maximum receive unit (MRU) estimates, and
perform neighbor unreachability detection using an IPv4 intranet or
internet as the link layer. Although IPv4 fragmentation is considered
harmful [FRAG][FOLK], the author believes that strategically adapting
to and minimizing fragmentation can provide a superior solution to
strict fragmentation avoidance. Central to the design goals is the
ability for neighbors to establish and maintain lightweight, link-
layer associations to provide a continuous feedback loop. Although
these associations take on certain aspects of reliable transport con-
nections, the author prefers to refer to them as "neighbor affilia-
tions".
2. Applicability Statement
- proposes a neighbor affiliation protocol for IPv6 neighbors
on IPv6-over-(foo)-over-IPv4 links
- works with either automatic or configured tunnels
- may be useful for IPv6 operations in certain deployment scenarios
- may extend to future IPv6 applications beyond the case of
IPv6-over-(foo)-over-IPv4
3. Terminology
The terminology of [IPv4] and [IPv6] apply to this document. The fol-
lowing additional term is defined:
neighbor affiliation:
a lightweight association that enables robust, efficient and
secure bi-directional links between IPv6 neighbors
Templin Expires 30 April 2003 [Page 2]
INTERNET-DRAFT V6-V4 Neighbor Affiliation 30 October 2002
4. Neighbor Affiliation Protocol
When multiple IPv4 hops intervene between nodes, [DISC] provides no
trust basis (i.e., neighbors are not on the same connected LAN seg-
ment) nor any specification for the nodes to monitor each other's
reachability (i.e., multicast is not supported). Moreover, the path
between any pair of neighbors is mutually exclusive from other on-
link neighbors and may change over time. Thus, the maximum packet
size a node A can receive from neighbor B may differ from the amount
it can receive from neighbor C; even though all three nodes techni-
cally share the same "link". These issues are addressed through
lightweight neighbor affiliations that are established on-demand and
maintained proactively as long as they are in active use.
[DISC] specifies mechanisms for IPv6 nodes to discover and maintain
reachability information for active neighbors. Neighbor Solicitation
(NS) and Neighbor Advertisement (NA) messages are normally used for
this purpose on multiple access, broadcast media. But, when an IPv4
intranet/internet is used as the link layer, the standard multicast
mechanisms do not apply. For the purpose of this specification, uni-
cast NS/NA messages are formatted as specified in [DISC, 4.3-4], and
ALWAYS include a source/target link layer address option (even though
[DISC] does not require these options for unicast operation). Also,
as permitted in [DISC, 4.6.1], this document specifies the format of
link-layer address options for use in IPv6-over-(foo)-over-IPv4
links. The following subsections describe the neighbor affiliation
protocol and specific adaptations of the mechanisms in [DISC] in
detail:
4.1. Affiliation Establishment
Neighbor affiliations are established using the following algorithm.
The algorithm assumes that a source has a unicast packet to send to a
target and invokes address resolution ([DISC, 7.2]):
1) The source sends an NS message to the target with a specially
formatted source link layer address option containing a "SYN"
indication. The source creates a neighbor cache entry for the
target, and transitions from the "CLOSED" to the "SYN-SENT"
state
2) The target receives the NS and notices that it includes a
source link layer option containing a "SYN" indication. The
target creates a neighbor cache entry for the source and
records the physical interface the NS arrived on. The target
transitions from the "LISTEN" to the "SYN-RECEIVED" state,
then sends a unicast Solicited NA to the source. The NA
Templin Expires 30 April 2003 [Page 3]
INTERNET-DRAFT V6-V4 Neighbor Affiliation 30 October 2002
includes a target link layer address option that contains a
"SYN/ACK" indication and a "Maximum_MRU" option initialized
to the maximum receive unit (MRU) of the physical interface
recored above
3) The source receives the Solicited NA and notices that it
includes a target link layer option containing a "SYN/ACK"
indication. It records the physical interface the NA arrived
on and places the "Maximum_MRU" value in the target's neighbor
cache entry. (This value is also optionally written into the
destination cache entry(s) for the IPv6 destination address(es)
of any packets waiting for address resolution completion
[DISC, 7.2.2]. The "Maximum_MRU" value represents the current
upper bound for the maximum packet size the target is able to
receive, i.e., the MRU of the target's physical interface
Next, the source transitions from the "SYN-SENT" to the
"ESTABLISHED" state and sends a unicast Solicited NA to the
target, i.e., the source treats the received NA as an
"NS equivalent". The NA includes a target link layer
address option that contains an "ACK" indication and a
"Maximum_MRU" option initialized to the MRU of the physical
interface recorded above
4) The target receives the Solicited NA and notices that it
includes a target link layer option containing an "ACK"
indication. It places the "Maximum_MRU" value in the cache
for the source and transitions from the "SYN-RECEIVED" to
the "ESTABLISED" state. The target and source have now
established a bi-directional link using the exact mechanism
specified in [TCP, 3.4] and are said to be "affiliated"
4.2. Affiliation Maintenance
Neighbor affiliations are established on-demand in response to packet
transmissions, as described above. Once established, the neighbors
work together to proactively maintain the affiliation as long as it
is being actively used by either or both endpoints. When the affili-
ation is no longer needed, it is allowed to expire with stale cache
entries eventually garbage-collected.
Since the "Maximum_MRU" values exchanged in the affiliation estab-
lishment phase only convey information about the maximum packet size
each node can receive from neighbors on the same physical link, a
mechanism is needed to detect whether an MRU reduction is incurred by
the intervening IPv4 path. To satisfy this requirement, each neigh-
bor MUST monitor its IPv4 reassembly cache to detect packets being
Templin Expires 30 April 2003 [Page 4]
INTERNET-DRAFT V6-V4 Neighbor Affiliation 30 October 2002
fragmented by the network. The size of the largest fragments arriving
from a particular neighbor indicates the "Current_MRU" that can be
accepted, and this value needs to be conveyed back to the neighbor
causing the fragmentation (see below).
Additionally, since the Neighbor Affiliation Protocol does not ensure
reliable data delivery, no periodic acknowledgements are sent as in
[TCP]. [DISC, 7.3] accepts hints from upper layer protocols of "for-
ward progress" as reachability confirmation, but such indications may
not be present when one (or both) of the neighbors are routers or
when only "unidirectional" traffic (e.g., UDP-based continuous media
streams) is present. Thus, the proactive maintenance process requires
periodic transmission of "keepalive" messages.
Of paramount importance is the fact that data traffic arrival conveys
unidirectional link state information only. In particular, the fact
that node A is receiving packets from node B only guarantees that the
unidirectional link B->A is operational (and vice-versa for A->B). In
other words, it is insufficient for A to receive packets from B and
for B to receive packets from A; in addition, A MUST KNOW THAT B IS
RECEIVING ITS PACKETS AND VICE-VERSA.
In order to satisfy the above affiliation maintenance requirements,
each node MUST implement the following keepalive algorithm:
- if one or more data packets were received from an affiliated
neighbor within the past N seconds, send the neighbor an
unsolicited Neighbor Advertisement containing a target link
layer address option with a "Current_MRU" option set to the
size of the largest fragments arriving from the neighbor.
If no fragmentation is taking place, "Current_MRU" is set
to "Maximum_MRU". (Note that "Maximum_MRU" may change over
time, e.g., due to routing fluctuations, so it too must
be included in the NA.)
- if no unsolicited NAs have arrived within the past N seconds
even though packets have been sent to the neighbor, mark the
affiliation as "stale".
4.3. Fulfilling Contractual Obligations
When a pair of neighbors engages in an affiliation as specified in
the previous subsections, they effectively engage in a mutual con-
tract that requires vigilance to maximize robustness and efficiency
while doing no harm to each other or to the intervening network path.
Mandatory contractual obligations include:
Templin Expires 30 April 2003 [Page 5]
INTERNET-DRAFT V6-V4 Neighbor Affiliation 30 October 2002
- the packets a neighbor sends to its peer MUST be no larger
than the peer's "Current_MRU" estimate
- all packets SHOULD be sent with the IPv4 DF flag NOT set;
regardless of their size
- each node SHOULD attempt to maximize network utilization
by periodically increasing the estimate for its neighbor
to "Maximum_MRU" as long fragmentation remains below
"harmful" levels
- each neighbor MUST take preemptive measures to reduce
fragmentation if it reaches "harmful" levels
Preemptive measures to reduce harmful fragmentation (see "What con-
stitutes harmful fragmentation?" below) include sending unsolicited
NAs and ICMPv6 "packet too big" messages as appropriate. When a node
detects harmful fragmentation, it MUST send a gratuitous unsolicited
NA to the offending peer (as described in the previous section) with-
out waiting for the normal affiliation maintenance timeout period.
Nodes should employ a strategy to rate-limit such gratuitous NAs,
since a RTT "burst" of fragmented packets may be in the pipeline.
When fragments are lost such that a packet cannot be reassembled, the
receiver MUST generate an ICMPv6 "packet too big" message, provided
the first-fragment was not lost. The "packet too big" message encodes
the length of the first-fragment in the MTU field and encapsulates as
much of the IPv6 packet contained in the IPv4 first-fragment as pos-
sible [ICMPv6, 3.2]. This message provides the peer with a transmit
failure indication so lost data can be retransmitted.
Note that [FRAG, 3.4] speaks favorably for the use of "transparent
fragmentation", i.e., the use of reliable fragmentation and reassem-
bly at a layer below IP. What is proposed here is essentially trans-
parent link layer fragmentation with judicious and mitigated use so
that network utilization is maximized while fragmentation is mini-
mized. In this sense, fragmentation in and of itself is NOT cause
for alarm and rash actions - as long as both ends of the neighbor
affiliation honor their contractual obligations and adapt their
behavior appropriately.
4.4. What Constitutes "Harmful" Fragmentation?
In 1987, [FRAG] made an early assertion that fragmentation was harm-
ful, and in 2002 the quantitative studies in [FOLK] concluded that
this assertion is still true today. Even in today's Internet (where
nodes by-and-large have correct fragmentation/reassembly
Templin Expires 30 April 2003 [Page 6]
INTERNET-DRAFT V6-V4 Neighbor Affiliation 30 October 2002
implementations) fragmentation causes "slow-path" processing in
routers and network performance degradation when the loss unit (a
fragment) is smaller than the retransmission unit (a packet or seg-
ment). [FOLK] observed that the principal contributors to fragmenta-
tion in the Internet are continuous media applications (e.g., media
players and interactive games) and tunnel ingress points with miscon-
figured MTUs. Both produce UNMITIGATED and PERSISTENT fragmentation
when no path MTU discovery feedback occurs, and it is ONLY this sort
of fragmentation that this author believes should be considered harm-
ful.
Both [FRAG] and [FOLK] failed to note that the fundamental cause of
unmitigated and persistent fragmentation are senders which disobey
the robustness principle, i.e., nodes that are not "conservative in
what they send". But, the contractual obligations of nodes that par-
ticipate in the neighbor affiliation protocol specified in this docu-
ment provide the necessary means for eliminating harmful fragmenta-
tion. While fragmentation is an integral mechanism for efficient path
probing in the specification, it's use is an appropriate and miti-
gated application of the receiver's side of the robustness principle,
i.e., be "liberal in what you receive".
4.5. Willingness to Affiliate
When a node initiates a neighbor affiliation as described in the pre-
vious subsections, it may find that its peer either does not support
the protocol or is otherwise unwilling to affiliate. In the former
case, the NA that a peer returns in response to the initial NS will
either not contain the "SYN/ACK" indication or not contain a target
link layer option at all. In this case, the initiating node may:
1) Safely estimate that the peer's MRU is the IPv6 MINMTU
of 1280 bytes
2) Bravely estimate that the peer's MRU is something larger
than IPv6 MINMTU, e.g., 1480 bytes)
3) Assume that the peer is unreachable, e.g., if no reasonable
MRU estimate is possible or if a security association is
required
The MRU estimate MUST take into account that tunneled traffic is one
of the primary contributers to harmful fragmentation in the Internet
today [FOLK]. Nodes MUST honor the robustness principle of "be con-
servative in what you send and liberal in what you receive" in all
cases.
Templin Expires 30 April 2003 [Page 7]
INTERNET-DRAFT V6-V4 Neighbor Affiliation 30 October 2002
Nodes may employee a strategy for allowing/disallowing particular
affiliations, e.g., a router or server may choose not to answer a
solicitation from a new host if its state cache is nearly full.
Finally, security measures should be taken to ensure that the affili-
ation protocol described above is not abused by malicious nodes. Can-
didate mechanisms might be an adaptation of TCP "syn cookies" [refer-
ence needed] or a shared secret between the neighbors.
4.6. Source/Target Link Layer Option Format
The NS/NA messages used for the neighbor affiliation protocol always
encode the Source/Target Link Layer Address option, as specified by
[DISC, 4.6.1]:
0 1 2
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| Type | Length | Link-Layer Address ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
The "Type" is encoded exactly as in [DISC, 4.6.1] and the Length is
always 1 for the purpose of this specification. But, the link-layer
address field has the following special format:
(octets 2-3) (octets 4-5) (octets 6-7)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|S|A| Reserverd | Current_MRU | Maximum_MRU |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Thus, the "SYN" and "ACK" flags, the "Current_MRU" and the "Maxi-
mum_MRU" values can be exchanged between affiliating neighbors, as
required by the specification.
5. Operational Considerations
Nodes that establish neighbor affiliations on IPv6-over-(foo)-over-
IPv4 links must observe the following operational considerations:
5.1. Default Maximum Transmit Unit (DFLT_MTU)
IPv6-over-(foo)-over-IPv4 interfaces may be configured over one or
more underlying physical interfaces for IPv4. The default maximum
transmit unit (DFLT_MTU) for an IPv6-over-(foo)-over-IPv4 interface
is the maximum MTU of all underlying physical interfaces for IPv4
minus the sum of all header sizes required for IPv6-over-(foo)
Templin Expires 30 April 2003 [Page 8]
INTERNET-DRAFT V6-V4 Neighbor Affiliation 30 October 2002
encapsulation.
For example, if a multi-homed host has an Ethernet interface and an
FDDI interface, the maximum MTU for underlying physical interfaces is
4352. If the encapsulation is IPv6-over-UDP, then:
DFLT_MTU = 4352 - 40 (sizeof(ipv6_hdr)) - 8 (sizeof(udp_hdr)) = 4304
Obviously, the DFLT_MTU value may be overestimated for some traffic
on multi-homed hosts with heterogeneous interfaces. But, read fur-
ther.
5.2. Per-Neighbor Maximum Transmit Unit (NBR_MTU)
As neighbor affiliations are established, the MRUs for "frequently
accessed" neighbors are established in the destination cache. The
destination cache entry for an active neighbor's MRU is always chosen
as the MTU for that neighbor (NBR_MTU). When no destination cache
entry exists, the DFLT_MTU is used.
5.3. TCP MSS
When a TCP connection is initiated to an on-link neighbor, the TCP
MSS is initialized to (NBR_MTU - 40) if a destination cache entry
exists; else (DFLT_MTU - 40). (40 = 20bytes for TCP header plus
20bytes for IPv4 header). The TCP SYN segment carries the MSS option
and initiates the neighbor affiliation process if no affiliation cur-
rently exists (i.e., the TCP SYN segment is contained in the first
packet out.) The neighbor affiliation may reduce the NBR_MTU value in
the destination cache while the SYN packet waits on the Address Reso-
lution queue. But, the system will self-correct when the peer
responds with an MSS option in the SYN/ACK, since the peer will have
up-to-date MRU information from the neighbor affiliation.
5.4. Adaptation to Overestimated DFLT_MTU, NBR_MTU
When a packet is sent to a neighbor based on an overestimated
DFLT_MTU or NBR_MTU, an ICMPv6 "packet too big" message is generated
locally and the too-big packet is dropped. Upper layers will retrans-
mit the data based on the reduced MTU specified in the packet too big
message.
Templin Expires 30 April 2003 [Page 9]
INTERNET-DRAFT V6-V4 Neighbor Affiliation 30 October 2002
5.5. Implementation Alternatives
Obviously, the cleanest implementation would entail in-kernel instru-
mentation of the IPv4 reassembly cache and intervention in the spe-
cific IPv6-over-(foo)-over-IPv4 device drivers that will use neighbor
affiliation. But, an alternative is to write an application that uses
the Berkeley Packet Filter (libpcap) to monitor the fragments that
enter the host and generate the NS/NA messages necessary to support
the protocol outside of the context of the kernel. In this way, the
neighbor affiliation protocol can be easily deployed on nodes with
existing "vanilla" IPv6-over-(foo)-over-IPv4 tunnel drivers.
6. Rationale for this Approach
One might reasonably ask why the approach in this document is recom-
mended instead of the current practices specified in
[PMTUDv4],[PMTUDv6]. When IPv6 uses (foo)-over-IPv4 as a link layer,
ICMPv6 "Packet Too Big" messages can only be produced by the tunnel
encapsulator and decapsulator (i.e., the two IPv6 neighbor nodes),
while ICMPv4 "Fragmentation Needed" messages are produced by the
intervening IPv4 routers. But, the ICMPv4 messages are not readily
translated into ICMPv6 since they are only guaranteed to include up
to 8 bytes of the too big packet's data (i.e., not enough information
to determine the IPv6 header).
One possible solution is to cache the IPv6 packets at the encapsula-
tor and match them up with any ICMPv4 "frag needed" messages that are
delivered by the IPv4 network. But, this creates a state scaling
issue - especially when the encapsulator is an IPv6 router. Also, an
encapsulating router would need to retransmit the data in the too-big
packets on behalf of the final destination, i.e., act as a "proxy"
for the final destination - but, this would require the router to
understand the semantics of the packetization layer of the original
source when it receives ICMPv4 "frag needed" messages from the IPv4
network.
Finally (and most importantly) IPv4 routers in the path between the
encapsulator and decapsulator cannot be trusted to reliably deliver
ICMPv4 "frag needed" messages - they can be lost due to network con-
gestion or filtering firewalls, and they can be forged by an attacker
since the end nodes have no trust basis with the IPv4 routers. The
only acceptable means is to engage the IPv6 endpoints in a neighbor
affiliation as described in this document.
Templin Expires 30 April 2003 [Page 10]
INTERNET-DRAFT V6-V4 Neighbor Affiliation 30 October 2002
7. IANA considerations
N/A
8. Security considerations
This document provides a potential platform for integrating secure
neighbor discovery mechanisms.
Acknowledgements
The proposal herin is nearly identical to some presented on the TCP-
IP discussion group [TCP-IP] and IETF Path MTU Discovery Working
Group [MTUDWG] mailing lists, roughly between the period of May 1997
through May 1990. The earliest proposal that most closely matches the
one herein was offered by Charles Lynn on November 17, 1987. Others
(e.g., Fox, Bohle, 1989, etc.) proposed combining the basic mechanism
described by Lynn with transport layer protocols, e.g., TCP. To the
best of the author's knowledge, this document presents the first sug-
gested combination of the Lynn proposal with Neighbor Discovery.
Earlier works from SRI International proposed a "router affiliation"
protocol. The term "affiliation" as used in this document was
directly derived from its use in those earlier works. Two SRI
researchers who participated in this effort were Barbara Denny and
Bob Gilligan.
The author acknowledges those who participated in discussions on the
NGTRANS and V6OPS mailing lists between August and October 2002 for
helpful insights.
The author would finally like to acknowledge the founding architects
of the DARPA Internet protocols, who created the technologies used by
the millions of nodes on the Internet today and the billions more to
come in the forseeable future.
Normative References
[ICMPv6] Conta, A. and S. Deering, "Internet Control Message
Protocol (ICMPv6) for the Internet Protocol Version 6
(IPv6) Specification", RFC 2463.
[IPv4] Postel, J., "Internet Protocol", RFC 791.
[IPV6] Deering, S., and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460.
Templin Expires 30 April 2003 [Page 11]
INTERNET-DRAFT V6-V4 Neighbor Affiliation 30 October 2002
[DISC] Narten, T., Nordmark, E., and W. Simpson, "Neighbor
Discovery for IP Version 6 (IPv6)", RFC 2461,
December 1998.
[FRAG] Kent, C., and J. Mogul, "Fragmentation Considered
Harmful", December, 1987
[FOLK] Shannon, C., Moore, D. and k claffy, "Beyond Folklore:
Observations on Fragmented Traffic"
[PROBE] Mogul, J., Kent, C., Partridge, C., and K. McCloughrie,
"IP MTU Discovery Options", RFC 1063, July 1988.
[PMTUDv4] Mogul, J. and S. Deering, "Path MTU Discovery",
RFC 1191, November 1990.
[PMTUDv6] McCann, J., Deering, S. and J. Mogul, "Path MTU
Discovery for IP version 6", RFC 1981, August 1996.
[MTUDWG] IETF MTU Discovery Working group mailing list,
gatekeeper.dec.com/pub/DEC/WRL/mogul/mtudwg-log,
November 1989 - February 1995.
[TCP] Postel, J., "Transmission Control Protocol", RFC 793.
[TCP-IP] TCP-IP Mailing list archives,
http://www-mice.cs.ucl.ac.uk/multimedia/misc/tcp_ip,
May 1987 - May 1990.
Informative References
Authors Addresses
Fred L. Templin
Nokia
313 Fairchild Drive
Mountain View, CA, USA
Phone: (650)-625-2331
Email: ftemplin@iprg.nokia.com
APPENDIX A: Historic Evolution of PMTUD
The topic of Path MTU discovery (PMTUD) saw a flurry of discussion
and numerous proposals in the late 1980's through early 1990. The
initial problem was posed by Art Berggreen on May 22, 1987 in a mes-
sage to the TCP-IP discussion group [TCP-IP]. The discussion that
followed provided significant reference material for [FRAG]. An IETF
Path MTU Discovery Working Group [MTUDWG] was formed in late 1989
Templin Expires 30 April 2003 [Page 12]
INTERNET-DRAFT V6-V4 Neighbor Affiliation 30 October 2002
with charter to produce an RFC. Several variations on a very few
basic proposals were entertained, including:
1. Routers record the PMTUD estimate in ICMP-like path probe
messages (proposed in [FRAG] and later [PROBE])
2. The destination reports any fragmentation that occurs for
packets received with the "RF" (Report Fragmentation) bit
set (Steve Deering's 1989 adaptation of Charles Lynn's
Nov. 1987 proposal)
3. A hybrid combination of 1) and Charles Lynn's Nov. 1987
proposal (straw RFC draft by McCloughrie, Fox and Mogul
on Jan 12, 1990)
4. Combination of the Lynn proposal with TCP (Fred Bohle,
Jan 30, 1990)
5. Fragmentation avoidance by setting "IP_DF" flag on all
packets and retransmitting if ICMPv4 "fragmentation needed"
messages occur (Geof Cooper's 1987 proposal; later adapted
into [PMTUDv4] by Mogul and Deering)
Option 1) seemed attractive to the group at the time, since it was
believed that routers would migrate more quickly than hosts. Option
2) was a strong contender, but repeated attempts to secure an "RF"
bit in the IPv4 header from the IESG failed and the proponents became
discouraged. 3) was abandoned because it was perceived as too compli-
cated, and 4) never received any apparent serious consideration. Pro-
posal 5) was a late entry into the discussion from Steve Deering on
Feb. 24th, 1990. The discussion group soon thereafter seemingly lost
track of all other proposals and adopted 5), which eventually evolved
into [PMTUDv4] and later [PMTUDv6].
In retrospect, the "RF" bit postulated in 2) is not needed if a "con-
tract" is first established between the peers, as in proposal 4) and
a message to the MTUDWG mailing list from jrd@PTT.LCS.MIT.EDU on Feb
19. 1990. These proposals saw little discussion or rebuttal, and were
dismissed based on the following the assertions:
- routers upgrade their software faster than hosts
- PCs could not reassemble fragmented packets
- Proteon and Wellfleet routers did not reproduce
the "RF" bit properly in fragmented packets
- Ethernet-FDDI bridges would need to perform fragmentation
Templin Expires 30 April 2003 [Page 13]
INTERNET-DRAFT V6-V4 Neighbor Affiliation 30 October 2002
(i.e., "translucent" not "transparent" bridging)
- the 16-bit IP_ID field could wrap around and disrupt
reassembly at high packet arrival rates
The first four assertions, although perhaps valid at the time, have
been overcome by historical events leaving only the final to con-
sider. But, [FOLK] has shown that IP_ID wraparound simply does not
occur within several orders of magnitude the reassembly timeout win-
dow on high-bandwidth networks.
Templin Expires 30 April 2003 [Page 14]
| PAFTECH AB 2003-2026 | 2026-04-23 03:08:17 |