Internet DRAFT - draft-ananth-tcpm-tcpoptext
draft-ananth-tcpm-tcpoptext
TCPM WG A. Ramaiah
Internet-Draft Cisco
Intended status: Informational March 25, 2012
Expires: September 26, 2012
TCP option space extension
draft-ananth-tcpm-tcpoptext-00.txt
Abstract
The document goals are as follows: Firstly, this document summarizes
the motivations for extending TCP option space. Secondly, It tries
to summarize the various known issues that needs to be taken into
account while extending the TCP option space. Thirdly, it briefly
provides a short summary of the various TCP option space proposals
that has been proposed so far. Some additional proposals which
includes variations to the existing proposals are also presented.
The goal of this document is to rejuvenate the discussions on this
topic and eventually to converge on a scheme for extending TCP option
space.
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on September 26, 2012.
Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
Ramaiah Expires September 26, 2012 [Page 1]
Internet-Draft TCP option space March 2012
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Common issues with TCP option extension . . . . . . . . . . . 5
4. TCP option space extension proposals . . . . . . . . . . . . . 7
4.1. TCP LO and SLO . . . . . . . . . . . . . . . . . . . . . . 7
4.2. TCP DO field overload (Extended segments) . . . . . . . . 8
4.3. Increase (Double) TCP header size - TCPx2 . . . . . . . . 9
4.4. TCP LOIC . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.5. Multiple segments with continuation . . . . . . . . . . . 11
4.6. TCP option cookies . . . . . . . . . . . . . . . . . . . . 12
4.7. Reuse/overload of other TCP fields . . . . . . . . . . . . 12
4.8. Miscellaneous . . . . . . . . . . . . . . . . . . . . . . 12
5. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
7. Security Considerations . . . . . . . . . . . . . . . . . . . 16
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 17
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.1. Normative References . . . . . . . . . . . . . . . . . . . 18
9.2. Informative References . . . . . . . . . . . . . . . . . . 18
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 20
Ramaiah Expires September 26, 2012 [Page 2]
Internet-Draft TCP option space March 2012
1. Terminology
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 [RFC2119]
Middlebox : the middlebox could be a proxy like PEP (performance
enhancing proxies), NAT device or a Firewall. Note : The term packet
and segment is used interchangeably in this document.
Ramaiah Expires September 26, 2012 [Page 3]
Internet-Draft TCP option space March 2012
2. Introduction
TCP [RFC0793] as part of its header includes TCP options which
provides some special functionality that can be negotiated by both
ends of the TCP connection. As the name implies, these aren't
mandatory but must be supported by both ends in order to be active on
a given TCP connection. Some examples of deployed TCP options
include TCP MSS, Window Scale, Selective ACK, Timestamps ([RFC1323]
). Many other TCP options have been proposed and have been in use in
different environments eg:- TCP-MD5 [RFC2385] is used to secure a BGP
session. The TCP option space limitation is imposed by the 4 bit
Data Offset (DO) field which restricts the total length of the TCP
header (including options) to 60 bytes ([RFC0793]). Since the
required fields of the TCP header consumes 20 bytes, this leaves 40
bytes as the maximum amount of space for use by TCP options.
2.1. Motivation
The TCP option space of 40 bytes which was considered reasonable for
the concurrent usage of some popular TCP options, is no longer able
to cater to needs of recent growing demands. Over the past few years
several new TCP options like TCP-UTO ([RFC5482]), TCP-AO ([RFC5925]),
experimental TCP options for acknowledgment congestion control
([RFC5690]), have been proposed. MultiPath TCP
([I-D.ietf-mptcp-multiaddressed]) is another feature which calls for
more TCP option space. Lastly middleboxes doing WAN optimization
functionality can also benefit with the increased TCP option space,
although it is not the intention of this memo to address such
requirements. It is mentioned here simply for the sake of
completeness.
Since it is not easy to extend TCP option space, TCP option space
hungry applications could move to a different protocol like SCTP
([RFC4960]), which for instance provides 255 chunks (each SCTP chunk
is analogous to a TCP option) Needless to mention, this is not always
possible and moving to a new protocol, at the least not only has all
the issues that is exhibited by a new TCP option but even more (like
general protocol upgrade and support, etc.,)
It is therefore expedient to extend the TCP option space to meet the
near term requirements coming from the various TCP applications for
active internet deployment and research.
Ramaiah Expires September 26, 2012 [Page 4]
Internet-Draft TCP option space March 2012
3. Common issues with TCP option extension
Typically any proposal trying to extend the TCP option space needs to
use some form of explicit signaling during the 3 way handshake of TCP
to negotiate the usage of TCP extended options. This is typically
accomplished by means of having a new TCP option or by using one of
the reserved bits of the TCP header. In the reminder of the text we
refer both of these methods simply as "TCP extended option(s)". The
following notes apply to either of these methods.
Any TCP option extension proposals needs to be aware of the following
design issues :-
End host backward compatibility - Any of the TCP option space
extension proposals needs to satisfy the following end-host
compatibility requirements :-
H1) Needs to have the capability to interoperate with stacks that
do not have ability to negotiate the TCP extended option space.
H2) If the TCP extended options could not be negotiated, then it
needs to fall back to normal mode of operation.
H3) It also needs to be noted that in some rare cases end-hosts
not understanding a TCP option simply echoes back the TCP
option in response. This is due to buggy implementation and
hence this is not a requirement at all. Just mentioned for the
sake of completeness.
Middle box interoperability - This is the toughest of the problems
in getting towards a cleaner solution for extending TCP option
space. It needs to be noted that middlebox interactions disrupt
the end-to-end flow characteristics and any solution is
susceptible to it's presence. TCP option space extension
proposals need to be aware of the following issues :-
M1) Some middleboxes terminate TCP connections (Performance
Enhancing Proxies) [RFC3135]
M2) Some middleboxes examine TCP payloads (Virus scanner,
firewall), some modify the TCP payloads (NAT ALG)
M3) In general middleboxes keep state which includes TCP sequence
numbers, some of them (proxies which do not terminate the TCP
connection) would adjust the sequence and acknowledgement
numbers on a per packet basis.
Ramaiah Expires September 26, 2012 [Page 5]
Internet-Draft TCP option space March 2012
M4) Some middleboxes strip unknown TCP options.
M5) Some middleboxes resegment TCP data.
M6) Some middleboxes drop packets containing unknown TCP options.
Among the above M4, M5 and M6 are not common, M1, M2 & M3 exhibits
varying degrees of commonality. Cases M2 and to some extent M3
proves to be the toughest candidate to work with for seamless TCP
option extension.
Another point worthy of mention would be that, the outgoing path or
the return path may change between connections or even during a
connection, which can lead to traversal of different middleboxes.
This simply means that the same middlebox behavior cannot be
guaranteed for all the packets of a given TCP connection.
Ramaiah Expires September 26, 2012 [Page 6]
Internet-Draft TCP option space March 2012
4. TCP option space extension proposals
The following section summarizes some of the existing TCP option
space proposals (section 4.1 to 4.4), touches upon some new ideas and
variations of the existing proposals (section 4.5 to 4.7), and
analyses each one of the proposal's strengths and weaknesses. It
needs to be emphasized that the new ideas (section 4.5 to 4.7) are by
no means a complete solution, but some general ideas which can be
used as building blocks or food for thought when trying to devise
solution for the TCP option space exhaustion issue.
4.1. TCP LO and SLO
This ID ([I-D.eddy-tcp-loo]) talks about the defining a new TCP
option that overrides the standard TCP DO field definition. This is
accomplished by means of a TCP Long Option (LO) which gets negotiated
during SYN. If both ends understand the LO option, then whenever the
LO option is present, the DO field of the standard TCP header would
be ignored for computing the TCP data offset. Instead the "Header
Length" specified in the LO option would be used to derive the Data
Offset. The LO option MUST be the first option present in the TCP
segment. The draft actually mandates the LO option to be present in
all segments, to circumvent odd bugs arising due to TCP segments with
different interpretations of DO with and without the presence of the
LO option.
The draft also defines a SYN Long Option (SLO). The purpose of this
option is to retain backward compatibility with hosts that do not
support the LO option. This is needed because a host which does not
understand the LO option would mistakenly treat anything past the DO-
specified boundary to be application data. The SLO option is used in
the case where 40 bytes (max option space in standard TCP) is not
enough to carry the desired TCP options to be sent on the SYN. It is
only used by devices issuing an active open, since the passive open
side can always use the LO option to send the long list of TCP
options. The left-off options are reliably delivered in the
subsequent data (and acknowledgment ) segments.
Discussion :
This proposal addresses the host backward compatibility well (H1 &
H2), since if the LO is not understood or stripped by a middlebox in
between it would simply proceed with standard TCP semantics. However
there is no provision for handling H3. This can be circumvented if
needed, but it not probably worth the effort since such hosts are
very uncommon in author's viewpoint. In the reminder of the
proposals H3's compatibility is not going to be discussed.
Ramaiah Expires September 26, 2012 [Page 7]
Internet-Draft TCP option space March 2012
Coming to the middlebox case, if the middlebox strips the TCP option
(M4), it is fine, since this option would not be negotiated. If the
SYN gets dropped by a middlebox (M6), then retransmission request may
be tried without the long option. For the case of PEP's (M1) if the
connection gets terminated, then the middlebox which doesn't
understand the LO option would reply with SYN+ACK without LO and it
is fine since fallback to normal mode would happen. But this
proposal (like any other proposal) may have implications with
resegmenting (M5) feature of some middleboxes (which do not
understand the LO option) since the TCP options gets blindly copied
in all segmented segments by the middlebox. This would cause the
end-host understanding the LO option to get confused, since it would
interpret the duplicated segments as containing the TCP options.
The issue of option data getting confused as payload due the
middlebox segmenting the TCP data can be circumvented by either
having the total length of the TCP segment OR the TCP sequence number
which points to the beginning of the data (instead of the proposed
header length field which points to the Data Offset). It also needs
to be noted that it is strongly advisable for any TCP options that
could not fit into the standard TCP option space (40 bytes) begin
after the 40 bytes boundary since any middlebox that cannot
understand the LO option and does some TCP header fields sanity can
get confused and drop the segment, if the new option is not fully
contained in the TCP option space.
This proposal would have an issue with middleboxes that do not
understand the extension and tries operate on the TCP payload (M2).
For M3, it really depends on the middlebox, if the middlebox sees the
next sequence number as lesser than the one it expects, it would
simply treat that as a duplicate (good thing), however for some
middleboxes if it tries to cache segments and perform retransmissions
etc., it may be a problematic.
4.2. TCP DO field overload (Extended segments)
This proposal ([I-D.kohler-tcpm-extopt]) tries to solve the TCP
option space issue by redefining the TCP DO field. Extended segments
approach overloads the meaning of the standard TCP Data Offset field,
keeping its original meaning for values of 5 and greater, but
redefining it for values less than 5. This is seen as acceptable
since values less than 5 are currently impossible, illegal, and
unusable. Extended segments avoid the need for new options by
changing the way that the existing standard header is parsed.
The granularity of option lengths that extended segments can support
is limited to the number of unusable Data Offset values (5, 0 through
4). Currently, the extended segments proposal defines 4 fixed
Ramaiah Expires September 26, 2012 [Page 8]
Internet-Draft TCP option space March 2012
lengths, and one "infinite" length that means the entire segment is
options, with no application data. The fixed option lengths are 48,
64, 128, and 256 bytes.
Discussion :
If the required per-data-segment TCP options space for some extension
or combination of extensions does not map to exactly one of the
extended DO values, then padding bytes are required. If 129 bytes of
options are required on a data segment, then a length of 256 must be
used, and 127 bytes of useless padding are added.
As far as the end host compatibilty goes, if the end host doesn't
understand the extended SYN (i.e. a SYN with DO < 5), the SYN would
get dropped which is the typical behavior. Instead if some
implementations who chose to send RST due to malformed segment (TCP
header validation failure) is problematic since the end host would
get confused whether the RST is due to its original intention (i.e.
listener not present on the server or some other known thing like
policy restrictions). The draft also mentions that extended SYN-ACKs
may be sent in response to non-extended SYNs. This complicates the
recovery procedure even more, if not understood, and goes against the
way that all current negotiable TCP extensions operate (only used on
SYN-ACK if advertised on SYN). Hence we can see that the fallback
(cases H1 and H2) is not smooth when compared to the LO proposal.
As the middlebox goes, it suffers the same set of issues as the LO
proposal. But there is no provision that can be made for the case of
re-segmentation by middleboxes (M5). So, extended segments approach
seems to be inferior compared to LO proposal in terms of robustness.
4.3. Increase (Double) TCP header size - TCPx2
This proposal([I-D.allman-tcpx2-hack]) was aimed to not just address
the TCP option space exhaustion but to address other myriad of issues
surrounding the TCP header fields. (like window size, reserved bits
etc.,) TCPx2 requires a new IP protocol number. It defines a new TCP
header which has all the original field sizes doubled. Hence the TCP
DO field becomes 8 bits instead of the original 4 bits.
Discussion :
Ideally this proposal seems to be the best long term solution for TCP
issues caused due the limits imposed by the various fields of TCP
header, which includes the TCP option space issue. However, for
short, medium or immediate term deployment it is not practical.
TCPx2 would face the same resistance (even worse since it is a new
entrant) from middleboxes as experienced by some "newer" protocols
Ramaiah Expires September 26, 2012 [Page 9]
Internet-Draft TCP option space March 2012
like SCTP etc., which hampered their successful adoption and
deployment. End hosts TCP/IP stacks need to change to support the
new IP protocol number, demux logic and new TCP header. The standard
algorithms like TCP checksum, TCP MAC computation etc., needs to
change, especially makes it difficult in cases where this
functionality is assisted by hardware. The sockets API or TCP API's
would have to change to accommodate the TCP header changes (src and
dest ports) and also to offer backward compatibility to existing TCP.
All the diagnostic tools surrounding etc., needs to change, the list
only continues.
4.4. TCP LOIC
The crux of this proposal ([I-D.yourtchenko-tcp-loic]) is to quickly
negotiate the LO (referred as LOIC in the document) option by sending
it in SYN segment and also fallback to normal mode if the remote end
or the middlebox drops the SYN. This is accomplished by sending 2
SYN's, one with the intent of negotiating the LO option and other one
which contains the all the options that needs to be negotiated
(includes the ones that cannot fit in the standard option space). To
prevent the TCP option space mistakenly read as data, the proposal
deliberately increments the checksum by 2 in the second SYN segment
(which contains the TCP options). If the end host (or middlebox)
doesn't understand the signalling (checksum + 2), it would drop the
segment and the first SYN would get replied with SYN+ACK without LO.
OTOH, if the stack understands the method, it would be able to
process the both the SYNs (all the TCP options) and reply back with
LO.
Discussion
This proposal cleverly avoids doing the option exchange dance after
the SYN segment gets ACKnowledged like seen in LO proposal (section
4.1) by sending duplicate SYN's. This proposal addresses the host
backward compatibility well (H1 & H2). However it has some issues.
The overloading of checksum can have other implications esp., with
some middeboxes that modify the checksum (NAT) which can rollover the
16 bit field and the checksum decrement would fail to work.
Overloading checksum would not bode well with diagnostic tools
(sniffers etc.,) and also in cases where checksum gets offloaded to
some hardware which needs to understand this method.
M1, M4, M6 are taken care of well by this proposal. It suffers the
same fate as other proposals as far as M5 is concerned. It exhibits
the same behavior as far as M2 and M3 goes, since the proposal sends
TCP options as part of the standard TCP header.
One other note worthy of mentioning would be, this proposal is in
Ramaiah Expires September 26, 2012 [Page 10]
Internet-Draft TCP option space March 2012
some sense similar to the concept of "extended segments". Extended
segments approach tries to overload (use the illegal unused values)
the DO field. One could argue that instead of mucking around with
the checksum you could actually send the second SYN with "incorrect"
( DO < 5) value. However if we throw in the middlebox into the
equation, the likelihood of a packet getting dropped by the middlebox
(firewall which does some TCP header validation) with DO field
incorrectly specified is more when compared to packet with incorrect
checksum. (This is because typically firewalls don't try to do
compute intensive operations like TCP checksum validation)
4.5. Multiple segments with continuation
Both, extended segments and LOIC (section 4.2 and section 4.4)
already mentions about sending multiple SYNs. This idea also uses
the same approach with a key difference, i.e. send multiple SYNs with
a "TCP continuation option". The TCP continuation option's purpose
(which is a simple option-kind option) is to convey to the other end
that "not all TCP options could be fit into to the current TCP
segment's standard option space (40 bytes) and subsequent segments
would convey the reminder of the option". For example lets us say we
have 100 bytes of TCP option, this would require 3 segments to
convey, the first 2 of which would have the TCP continuation option
set. The rationale for this kind of thinking is twofold. Firstly,
keeping in mind short term goals, TCP option space requirement isn't
very large, hence a few segments should do the task at hand.
Secondly, middleboxes (and end hosts) gets confused if you send
something in the data portion, hence don't take chance of putting
anything in the data portion of TCP.
The obvious drawback of this scheme is that if there a way too many
TCP options to be conveyed, then it would take more segments to
convey all of them. For SYN segments, send multiple SYNs, for Data
segments (during the middle of connection) try to send multiple data
segments (behave as though nagle is turned off) and piggyback TCP
options with TCP continuation. Well, this may sound outrageous but
it should at least get rid of the middlebox issue at the cost of
adding more processing and delay. Pick the devil.
Sending duplicate segments is generally ok and should not have
adverse middlebox effects. Sending old segments (ones that are
already ACKed is another school of thought. This is how keepalives
work where the sequence number is set to TCB.SNDUNA - 1, which
solicits a corrective ACK from the other end. Sending old data
segment, simply gets dropped and one could use that to convey TCP
options, but that may get clumsier since you really need TCP options
to be inline with the current data. Just mentioned here for the sake
of completeness.
Ramaiah Expires September 26, 2012 [Page 11]
Internet-Draft TCP option space March 2012
4.6. TCP option cookies
This is yet another interesting thought (at least in author's
opinion). The idea is to pack TCP options in a similar way TCP SYN
cookies did. i.e., instead of doing the "Option-Kind" OR "option-
kind-value", we could just have bit masks OR some encoding scheme
defined under a TCP option template. We can call it as a "TCP
template or TCP Master option". At least during the initial
negotiation this would be helpful to scavenge TCP option space. The
details of this need to be thought of and extensibility also needs to
be addressed. Compressing TCP options is another school of thought
along the similar lines, but the compression overhead needs space as
well, hence needs to be carefully thought about.
4.7. Reuse/overload of other TCP fields
Some of the schemes already tried to overload some TCP fields like
TCP DO (section 4.2) and TCP checksum overload (section 4.4).
Another tempting field to overload is the TCP urgent pointer. It
needs to be noted that the TCP urgent pointer is valid only when the
URG bit is set. Also the TCP urgent pointer is used only by some
legacy applications like Telnet and rlogin, both of which don't use
any advanced TCP options nor require such a functionality. Also
([RFC6093]), suggests deprecating its usage for newer applications.
It mentions that due to inconsistent interpretation of the urgent
pointer by end hosts and some middleboxes which clear the urgent flag
and urgent pointer, the urgent mechanism should be deprecated. But,
in authors opinion, the middleboxes that clear the urgent pointer
only for some given ports like telnet and FTP. Given all these
facts, it is not unreasonable to try to put this field to some good
use. The urgent pointer could be used to redefine the TCP DO field
in the same way the TCP DO redefinition scheme did but with a 16 bits
of precision as opposed to just 3 (values < 5). The hope is that
middleboxes (firewalls) would simply ignore the urgent pointer value
since the URG bit is not set. We could also use the Urgent pointer
for a fallback mechanism like the TCP checksum (LOIC) proposal did.
4.8. Miscellaneous
The previous sections have been trying to do a best possible effort
in identifying some candidates for scavenging TCP option space, some
ways of getting around the middleboxes etc., One school of thought
would be, it is sometimes ok to convey TCP options across multiple
segments (the TCP continuation option touched upon this aspect). for
example let's say there are 5 SACK blocks, they can't be conveyed
using a single TCP segment, this takes multiple TCP segments which is
ok (the way it is working today). It may be possible to do this for
other TCP options as well, which need not be conveyed on every packet
Ramaiah Expires September 26, 2012 [Page 12]
Internet-Draft TCP option space March 2012
like the TCP security option. For e.g., TCP timestamps need to be
conveyed on every segment, but care needs to be taken not to break
PAWS etc.,
Ramaiah Expires September 26, 2012 [Page 13]
Internet-Draft TCP option space March 2012
5. Conclusion
If we get this far in the document, the obvious question would be "is
there a winner?" clearly not since any method has some issue or the
other and most of them are vulnerable to the middlebox processing of
packets (in particular cases M2 and M3 are tough to circumvent with).
But, there are different types of middleboxes and it really needs to
be seen what percentage of them exists in different environments.
There was a recent interesting study [IMC2011], which focused on the
issues of extending TCP which includes the analysis of various
middlebox behaviors. This could be used as a reference point for any
new proposals on extending TCP which includes the TCP option space
extension proposals.
This document listed a plethora of solutions (some of which may be
half-baked) to address some common middlebox problems and graceful
fallback to regular TCP methods. Now, no solution is a perfect
solution and it is impossible to work around all the use cases
imposed by middleboxes. Moving to a new protocol also is not a
solution, hence we are left with no choice but to extend TCP that
works for most of the use cases. Lastly, but not the least, the hope
of this document is that it serves as a foundational document that
touches upon the various aspects of extending TCP option space and
acts as a motivational document to converge to a possible solution
for the TCP option space exhaustion issue.
Ramaiah Expires September 26, 2012 [Page 14]
Internet-Draft TCP option space March 2012
6. IANA Considerations
None.
Ramaiah Expires September 26, 2012 [Page 15]
Internet-Draft TCP option space March 2012
7. Security Considerations
None at this time.
Ramaiah Expires September 26, 2012 [Page 16]
Internet-Draft TCP option space March 2012
8. Acknowledgements
Thanks to Dan Wing and Andrew Yourtchenko for the initial review of
the draft.
Ramaiah Expires September 26, 2012 [Page 17]
Internet-Draft TCP option space March 2012
9. References
9.1. Normative References
[RFC0793] Postel, J., "Transmission Control Protocol", STD 7,
RFC 793, September 1981.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
9.2. Informative References
[I-D.allman-tcpx2-hack]
Allman, M., "TCPx2: Don't Fence Me In",
draft-allman-tcpx2-hack-00 (work in progress), May 2006.
[I-D.eddy-tcp-loo]
Eddy, W. and A. Langley, "Extending the Space Available
for TCP Options", draft-eddy-tcp-loo-04 (work in
progress), July 2008.
[I-D.ietf-mptcp-multiaddressed]
Ford, A., Raiciu, C., Handley, M., and O. Bonaventure,
"TCP Extensions for Multipath Operation with Multiple
Addresses", draft-ietf-mptcp-multiaddressed-07 (work in
progress), March 2012.
[I-D.kohler-tcpm-extopt]
Kohler, E., "Extended Option Space for TCP",
draft-kohler-tcpm-extopt-00 (work in progress),
September 2004.
[I-D.yourtchenko-tcp-loic]
Yourtchenko, A., "Introducing TCP Long Options by Invalid
Checksum", draft-yourtchenko-tcp-loic-00 (work in
progress), April 2011.
[IMC2011] Honda et. al, M., "Internet Measurement conference 2011.
http://conferences.sigcomm.org/imc/2011/docs/p181.pdf",
November 2011.
[RFC1323] Jacobson, V., Braden, B., and D. Borman, "TCP Extensions
for High Performance", RFC 1323, May 1992.
[RFC2385] Heffernan, A., "Protection of BGP Sessions via the TCP MD5
Signature Option", RFC 2385, August 1998.
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
Ramaiah Expires September 26, 2012 [Page 18]
Internet-Draft TCP option space March 2012
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
[RFC3135] Border, J., Kojo, M., Griner, J., Montenegro, G., and Z.
Shelby, "Performance Enhancing Proxies Intended to
Mitigate Link-Related Degradations", RFC 3135, June 2001.
[RFC4960] Stewart, R., "Stream Control Transmission Protocol",
RFC 4960, September 2007.
[RFC5482] Eggert, L. and F. Gont, "TCP User Timeout Option",
RFC 5482, March 2009.
[RFC5690] Floyd, S., Arcia, A., Ros, D., and J. Iyengar, "Adding
Acknowledgement Congestion Control to TCP", RFC 5690,
February 2010.
[RFC5925] Touch, J., Mankin, A., and R. Bonica, "The TCP
Authentication Option", RFC 5925, June 2010.
[RFC6093] Gont, F. and A. Yourtchenko, "On the Implementation of the
TCP Urgent Mechanism", RFC 6093, January 2011.
Ramaiah Expires September 26, 2012 [Page 19]
Internet-Draft TCP option space March 2012
Author's Address
Anantha Ramaiah
Cisco
170 Tasman Drive
San Jose, CA 95134
USA
Phone: +1 (408) 525-6486
Email: ananth@cisco.com
Ramaiah Expires September 26, 2012 [Page 20]