Transmission Control Protocol (TCP) Parameters
- Last Updated
- 2024-07-11
- Available Formats
-
XML
HTML
Plain text
Registries included below
- TCP Option Kind Numbers
- TCP Alternate Checksum Numbers
- Cryptographic Algorithms for TCP-AO Registration
- MPTCP Option Subtypes
- MPTCP Handshake Algorithms
- TCP Experimental Option Experiment Identifiers (TCP ExIDs)
- TCP Encryption Protocol Identifiers
- tcpcrypt AEAD Algorithms
- MPTCP MP_TCPRST Reason Codes
- TCP Header Flags
TCP Option Kind Numbers
- Registration Procedure(s)
-
Standards Action or IESG Approval
- Reference
- [RFC2780]
- Note
-
The Transmission Control Protocol (TCP) has provision for optional header fields identified by an option kind field. Options 0 and 1 are exactly one octet which is their kind field. All other options have their one octet kind field, followed by a one octet length field, followed by length-2 octets of option data. [*] It is only appropriate to use these values in explicitly- configured experiments; they MUST NOT be shipped as defaults in implementations. See [RFC3692] for details. [**] These values have been deployed in the Internet without proper IANA assignment. At some point, these numbers may be officially allocated for some new purpose. It is therefore strongly recommended that implementers migrate to mechanisms with IANA-assigned values to avoid potential issues with their systems or products at a later point. [***] This value has been deployed on the Internet in ways that are not compatible with the documented use in this IANA allocation.
- Note
-
Values 16-18 were assigned before October 1994 (see [RFC1700]), and values 20-26 were assigned between Feb 9, 1999 and May 10, 2000. No further documentation is available.
- Available Formats
-
CSV
Kind | Length | Meaning | Reference |
---|---|---|---|
0 | - | End of Option List | [RFC9293] |
1 | - | No-Operation | [RFC9293] |
2 | 4 | Maximum Segment Size | [RFC9293] |
3 | 3 | Window Scale | [RFC7323] |
4 | 2 | SACK Permitted | [RFC2018] |
5 | N | SACK | [RFC2018] |
6 | 6 | Echo (obsoleted by option 8) | [RFC1072][RFC6247] |
7 | 6 | Echo Reply (obsoleted by option 8) | [RFC1072][RFC6247] |
8 | 10 | Timestamps | [RFC7323] |
9 | 2 | Partial Order Connection Permitted (obsolete) | [RFC1693][RFC6247] |
10 | 3 | Partial Order Service Profile (obsolete) | [RFC1693][RFC6247] |
11 | CC (obsolete) | [RFC1644][RFC6247] | |
12 | CC.NEW (obsolete) | [RFC1644][RFC6247] | |
13 | CC.ECHO (obsolete) | [RFC1644][RFC6247] | |
14 | 3 | TCP Alternate Checksum Request (obsolete) | [RFC1146][RFC6247] |
15 | N | TCP Alternate Checksum Data (obsolete) | [RFC1146][RFC6247] |
16 | Skeeter | [Stev_Knowles] | |
17 | Bubba | [Stev_Knowles] | |
18 | 3 | Trailer Checksum Option | [Subbu_Subramaniam][Monroe_Bridges] |
19 | 18 | MD5 Signature Option (obsoleted by option 29) | [RFC2385] |
20 | SCPS Capabilities | [Keith_Scott] | |
21 | Selective Negative Acknowledgements | [Keith_Scott] | |
22 | Record Boundaries | [Keith_Scott] | |
23 | Corruption experienced | [Keith_Scott] | |
24 | SNAP | [Vladimir_Sukonnik] | |
25 | Unassigned (released 2000-12-18) | ||
26 | TCP Compression Filter | [Steve_Bellovin] | |
27 | 8 | Quick-Start Response | [RFC4782] |
28 | 4 | User Timeout Option (also, other known unauthorized use) [***][1] | [RFC5482] |
29 | TCP Authentication Option (TCP-AO) | [RFC5925] | |
30 | N | Multipath TCP (MPTCP) | [RFC8684] |
31 | Reserved (known unauthorized use without proper IANA assignment) [**] | ||
32 | Reserved (known unauthorized use without proper IANA assignment) [**] | ||
33 | Reserved (known unauthorized use without proper IANA assignment) [**] | ||
34 | variable | TCP Fast Open Cookie | [RFC7413] |
35-68 | Reserved | ||
69 | N | Encryption Negotiation (TCP-ENO) | [RFC8547] |
70 | Reserved (known unauthorized use without proper IANA assignment) [**] | ||
71-75 | Reserved | ||
76 | Reserved (known unauthorized use without proper IANA assignment) [**] | ||
77 | Reserved (known unauthorized use without proper IANA assignment) [**] | ||
78 | Reserved (known unauthorized use without proper IANA assignment) [**] | ||
79-171 | Reserved | ||
172 | N | Accurate ECN Order 0 (AccECN0) (TEMPORARY - registered 2022-08-03, extension registered 2024-07-11, expires 2025-08-03) | [draft-ietf-tcpm-accurate-ecn-20] |
173 | Reserved | ||
174 | N | Accurate ECN Order 1 (AccECN1) (TEMPORARY - registered 2022-08-03, extension registered 2024-07-11, expires 2025-08-03) | [draft-ietf-tcpm-accurate-ecn-20] |
175-252 | Reserved | ||
253 | N | RFC3692-style Experiment 1 (also improperly used for shipping products) [*] | [RFC4727] |
254 | N | RFC3692-style Experiment 2 (also improperly used for shipping products) [*] | [RFC4727] |
TCP Alternate Checksum Numbers
- Registration Procedure(s)
-
Not defined
- Reference
- [RFC1146]
- Available Formats
-
CSV
Number | Description | Reference |
---|---|---|
0 | TCP Checksum | [RFC1146] |
1 | 8-bit Fletchers's algorithm | [RFC1146] |
2 | 16-bit Fletchers's algorithm | [RFC1146] |
3 | Redundant Checksum Avoidance | [J_Kay] |
Cryptographic Algorithms for TCP-AO Registration
- Registration Procedure(s)
-
RFC Publication After Expert Review
- Reference
- [RFC5926]
- Available Formats
-
CSV
Algorithm | Reference |
---|---|
SHA1 | [RFC5926] |
AES128 | [RFC5926] |
MPTCP Option Subtypes
- Registration Procedure(s)
-
Standards Action
- Reference
- [RFC8684]
- Note
-
This registry specifies the MPTCP Option Subtypes for MPTCP v1, which obsoletes the Experimental MPTCP v0. For the MPTCP v0 subtypes, please refer to [RFC6824].
- Available Formats
-
CSV
Value | Symbol | Name | Reference |
---|---|---|---|
0x0 | MP_CAPABLE | Multipath Capable | [RFC8684, Section 3.1] |
0x1 | MP_JOIN | Join Connection | [RFC8684, Section 3.2] |
0x2 | DSS | Data Sequence Signal (Data ACK and Data Sequence Mapping) | [RFC8684, Section 3.3] |
0x3 | ADD_ADDR | Add Address | [RFC8684, Section 3.4.1] |
0x4 | REMOVE_ADDR | Remove Address | [RFC8684, Section 3.4.2] |
0x5 | MP_PRIO | Change Subflow Priority | [RFC8684, Section 3.3.8] |
0x6 | MP_FAIL | Fallback | [RFC8684, Section 3.7] |
0x7 | MP_FASTCLOSE | Fast Close | [RFC8684, Section 3.5] |
0x8 | MP_TCPRST | Subflow Reset | [RFC8684, Section 3.6] |
0x9-0xe | Unassigned | ||
0xf | Reserved for Private Use | [RFC8684] |
MPTCP Handshake Algorithms
- Registration Procedure(s)
-
Standards Action
- Reference
- [RFC8684]
- Note
-
This registry specifies the MPTCP Handshake Algorithms for MPTCP v1, which obsoletes the Experimental MPTCP v0. For the MPTCP v0 subtypes, please refer to [RFC6824].
- Available Formats
-
CSV
Flag Bit | Meaning | Reference |
---|---|---|
A | Checksum required | [RFC8684, Section 3.1] |
B | Extensibility | [RFC8684, Section 3.1] |
C | Do not attempt to establish new subflows to the source address. | [RFC8684, Section 3.1] |
D-G | Unassigned | |
H | HMAC-SHA256 | [RFC8684, Section 3.2] |
TCP Experimental Option Experiment Identifiers (TCP ExIDs)
- Registration Procedure(s)
-
First Come First Served
- Reference
- [RFC6994]
- Note
-
IANA will record known duplicate uses.
- Available Formats
-
CSV
Value | Description | Reference |
---|---|---|
0x00AC | TCP ACK Rate Request | [draft-gomez-tcpm-ack-rate-request-02] |
0x0348 | HOST_ID | [RFC7974] |
0x0A0D | Autonomous System Compensation | [draft-donnerhacke-linktax] |
0x0CA0 | TCP Capability Option | [draft-boucadair-tcpm-capability-option] |
0x0ED0 | Extended Data Offset | [draft-ietf-tcpm-tcp-edo] |
0x454E | TCP-ENO [2] | [RFC8547] |
0x5323 | Service Number | [draft-touch-tcpm-sno] |
0x75ECFFEE | Timestamp Interval | [draft-trammell-tcpm-timestamp-interval] |
0xACC0 | AccECN Experimental Option - Order 0 (current and new implementations SHOULD use option kind 172) | [draft-ietf-tcpm-accurate-ecn-20] |
0xACC1 | AccECN Experimental Option - Order 1 (current and new implementations SHOULD use option kind 174) | [draft-ietf-tcpm-accurate-ecn-20] |
0xACCE | AccECN Experimental Option (current and new implementations SHOULD use option kinds 172 or 174) | [draft-kuehlewind-tcpm-accurate-ecn] |
0xE2D4C3D9 | Shared Memory communications over RMDA protocol | [RFC7609] |
0xF989 | Fast Open (current and new implementations SHOULD use option 34) | [RFC7413] |
0xF990 | Low Latency | [draft-wang-tcpm-low-latency-opt] |
TCP Encryption Protocol Identifiers
- Registration Procedure(s)
-
IETF Review or Expert Review with RFC Required
- Expert(s)
-
Unassigned
- Reference
- [RFC8547]
- Available Formats
-
CSV
Value | Meaning | Reference |
---|---|---|
0x20 | Experimental Use | [RFC8547] |
0x21 | TCPCRYPT_ECDHE_P256 | [RFC8548] |
0x22 | TCPCRYPT_ECDHE_P521 | [RFC8548] |
0x23 | TCPCRYPT_ECDHE_Curve25519 | [RFC8548] |
0x24 | TCPCRYPT_ECDHE_Curve448 | [RFC8548] |
0x25-0x6f | Unassigned | |
0x70-0x7f | Reserved for extended values | [RFC8547] |
tcpcrypt AEAD Algorithms
- Registration Procedure(s)
-
IETF Review or Expert Review with RFC Required
- Expert(s)
-
Unassigned
- Reference
- [RFC8548]
- Available Formats
-
CSV
Value | AEAD Algorithm | Reference |
---|---|---|
0x0000 | Reserved | |
0x0001 | AEAD_AES_128_GCM | [RFC8548] |
0x0002 | AEAD_AES_256_GCM | [RFC8548] |
0x0003-0x000f | Unassigned | |
0x0010 | AEAD_CHACHA20_POLY1305 | [RFC8548] |
0x0011-0xffff | Unassigned |
MPTCP MP_TCPRST Reason Codes
- Registration Procedure(s)
-
Specification Required
- Expert(s)
-
Unassigned
- Reference
- [RFC8684]
- Available Formats
-
CSV
Code | Meaning | Reference |
---|---|---|
0x00 | Unspecified error | [RFC8684, Section 3.6] |
0x01 | MPTCP-specific error | [RFC8684, Section 3.6] |
0x02 | Lack of resources | [RFC8684, Section 3.6] |
0x03 | Administratively prohibited | [RFC8684, Section 3.6] |
0x04 | Too much outstanding data | [RFC8684, Section 3.6] |
0x05 | Unacceptable performance | [RFC8684, Section 3.6] |
0x06 | Middlebox interference | [RFC8684, Section 3.6] |
0x07-0xff | Unassigned |
TCP Header Flags
- Registration Procedure(s)
-
Standards Action
- Reference
- [RFC9293]
- Available Formats
-
CSV
Bit Offset | Name | Reference | Assignment Notes |
---|---|---|---|
4 | Reserved for future use | [RFC9293] | |
5 | Reserved for future use | [RFC9293] | |
6 | Reserved for future use | [RFC9293] | |
7 | Reserved for future use | [RFC8311] | Previously used by Historic [RFC3540] as NS (Nonce Sum). |
8 | CWR (Congestion Window Reduced) | [RFC3168] | |
9 | ECE (ECN-Echo) | [RFC3168] | |
10 | Urgent Pointer field is significant (URG) | [RFC9293] | |
11 | Acknowledgment field is significant (ACK) | [RFC9293] | |
12 | Push Function (PSH) | [RFC9293] | |
13 | Reset the connection (RST) | [RFC9293] | |
14 | Synchronize sequence numbers (SYN) | [RFC9293] | |
15 | No more data from sender (FIN) | [RFC9293] |
Contact Information
ID | Name | Contact URI | Last Updated |
---|---|---|---|
[J_Kay] | J. Kay | mailto:jkay&ucsd.edu | 1994-09 |
[Keith_Scott] | Keith Scott | mailto:kscott&mitre.org | 1999-02 |
[Monroe_Bridges] | Monroe Bridges | mailto:monroe&cup.hp.com | 1994-09 |
[Stev_Knowles] | Stev Knowles | mailto:stev&ftp.com | 1995-03 |
[Steve_Bellovin] | Steve Bellovin | mailto:smb&research.att.com | 2000-03 |
[Subbu_Subramaniam] | Subbu Subramaniam | mailto:subbu&cup.hp.com | 1994-09 |
[Vladimir_Sukonnik] | Vladimir Sukonnik | mailto:vladimir&sitaranetworks.com | 1999-02 |
Footnotes
[1] |
[https://devcentral.f5.com/tech-tips/articles/accessing-tcp-options-from-irules] |
[2] |
current and new TCP-ENO implementations MUST use TCP option kind 69. |