TCP Option Kind Numbers
Registration Procedure(s)
- Standards Action or IESG Approval
Reference
- RFC 2780: IANA Allocation Guidelines For Values In the Internet Protocol and Related Headers
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 RFC 3692 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 RFC 1700), and values 20-26 were assigned between Feb 9, 1999 and May 10, 2000. No further documentation is available.
Available Formats
| Kind | Length | Meaning | Reference |
|---|---|---|---|
| 0 | - | End of Option List | RFC 9293 |
| 1 | - | No-Operation | RFC 9293 |
| 2 | 4 | Maximum Segment Size | RFC 9293 |
| 3 | 3 | Window Scale | RFC 7323 |
| 4 | 2 | SACK Permitted | RFC 2018 |
| 5 | N | SACK | RFC 2018 |
| 6 | 6 | Echo (obsoleted by option 8) | RFC 1072; RFC 6247 |
| 7 | 6 | Echo Reply (obsoleted by option 8) | RFC 1072; RFC 6247 |
| 8 | 10 | Timestamps | RFC 7323 |
| 9 | 2 | Partial Order Connection Permitted (obsolete) | RFC 1693; RFC 6247 |
| 10 | 3 | Partial Order Service Profile (obsolete) | RFC 1693; RFC 6247 |
| 11 | CC (obsolete) | RFC 1644; RFC 6247 | |
| 12 | CC.NEW (obsolete) | RFC 1644; RFC 6247 | |
| 13 | CC.ECHO (obsolete) | RFC 1644; RFC 6247 | |
| 14 | 3 | TCP Alternate Checksum Request (obsolete) | RFC 1146; RFC 6247 |
| 15 | N | TCP Alternate Checksum Data (obsolete) | RFC 1146; RFC 6247 |
| 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) | RFC 2385 |
| 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 | RFC 4782 |
| 28 | 4 | User Timeout Option (also, other known unauthorized use) [***][1] | RFC 5482 |
| 29 | TCP Authentication Option (TCP-AO) | RFC 5925 | |
| 30 | N | Multipath TCP (MPTCP) | RFC 8684 |
| 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 | RFC 7413 |
| 35-68 | Reserved | ||
| 69 | N | Encryption Negotiation (TCP-ENO) | RFC 8547 |
| 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) | RFC 9768 |
| 173 | Reserved | ||
| 174 | N | Accurate ECN Order 1 (AccECN1) | RFC 9768 |
| 175-252 | Reserved | ||
| 253 | N | RFC3692-style Experiment 1 (also improperly used for shipping products) [*] | RFC 4727 |
| 254 | N | RFC3692-style Experiment 2 (also improperly used for shipping products) [*] | RFC 4727 |
TCP Alternate Checksum Numbers
Registration Procedure(s)
- Not defined
Reference
- RFC 1146: TCP alternate checksum options
Available Formats
Cryptographic Algorithms for TCP-AO Registration
Registration Procedure(s)
- RFC Publication After Expert Review
Reference
- RFC 5926: Cryptographic Algorithms for the TCP Authentication Option (TCP-AO)
Available Formats
MPTCP Option Subtypes
Registration Procedure(s)
- Standards Action
Reference
- RFC 8684: TCP Extensions for Multipath Operation with Multiple Addresses
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 RFC 6824.
Available Formats
| Value | Symbol | Name | Reference |
|---|---|---|---|
| 0x0 | MP_CAPABLE | Multipath Capable | RFC 8684, Section 3.1 |
| 0x1 | MP_JOIN | Join Connection | RFC 8684, Section 3.2 |
| 0x2 | DSS | Data Sequence Signal (Data ACK and Data Sequence Mapping) | RFC 8684, Section 3.3 |
| 0x3 | ADD_ADDR | Add Address | RFC 8684, Section 3.4.1 |
| 0x4 | REMOVE_ADDR | Remove Address | RFC 8684, Section 3.4.2 |
| 0x5 | MP_PRIO | Change Subflow Priority | RFC 8684, Section 3.3.8 |
| 0x6 | MP_FAIL | Fallback | RFC 8684, Section 3.7 |
| 0x7 | MP_FASTCLOSE | Fast Close | RFC 8684, Section 3.5 |
| 0x8 | MP_TCPRST | Subflow Reset | RFC 8684, Section 3.6 |
| 0x9-0xe | Unassigned | ||
| 0xf | Reserved for Private Use | RFC 8684 |
MPTCP Handshake Algorithms
Registration Procedure(s)
- Standards Action
Reference
- RFC 8684: TCP Extensions for Multipath Operation with Multiple Addresses
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 RFC 6824.
Available Formats
| Flag Bit | Meaning | Reference |
|---|---|---|
| A | Checksum required | RFC 8684, Section 3.1 |
| B | Extensibility | RFC 8684, Section 3.1 |
| C | Do not attempt to establish new subflows to the source address. | RFC 8684, Section 3.1 |
| D-G | Unassigned | |
| H | HMAC-SHA256 | RFC 8684, Section 3.2 |
TCP/UDP Experimental Option Experiment Identifiers (TCP/UDP ExIDs)
Registration Procedure(s)
- First Come First Served
Reference
Note
16-bit ExIDs can be used with either TCP or UDP; 32-bit ExIDs can be used with TCP or their first 16 bits can be used with UDP. Use with each transport (TCP, UDP) is indicated in the protocol column, as defined in RFC 9868.
Note
IANA will record known duplicate uses.
Available Formats
| Value | Protocol | Description | Reference |
|---|---|---|---|
| 0x00AC | TCP | TCP ACK Rate Request | draft-gomez-tcpm-ack-rate-request-02 |
| 0x00BD | TCP | Bidirectional Traceroute | Kevin Vermeulen |
| 0x0348 | TCP | HOST_ID | RFC 7974 |
| 0x0A0D | TCP | Autonomous System Compensation | draft-donnerhacke-linktax-02 |
| 0x0CA0 | TCP | TCP Capability Option | draft-boucadair-tcpm-capability-option-00 |
| 0x0ED0 | TCP | Extended Data Offset | draft-ietf-tcpm-tcp-edo-00 |
| 0x454E | TCP | TCP-ENO [2] | RFC 8547 |
| 0x6F7D | TCP | SCONE-TCP | draft-eddy-tcpm-scone-01 |
| 0x75ECFFEE | TCP | Timestamp Interval | draft-trammell-tcpm-timestamp-interval-00 |
| 0xACC0 | TCP | AccECN Experimental Option - Order 0 (current and new implementations SHOULD use option kind 172) | RFC 9768 |
| 0xACC1 | TCP | AccECN Experimental Option - Order 1 (current and new implementations SHOULD use option kind 174) | RFC 9768 |
| 0xACCE | TCP | AccECN Experimental Option (current and new implementations SHOULD use option kinds 172 or 174) | RFC 9768 |
| 0xE2D4C3D9 | TCP | Shared Memory Communications over RMDA protocol | RFC 7609 |
| 0xF989 | TCP | Fast Open (current and new implementations SHOULD use option 34) | RFC 7413 |
| 0xF990 | TCP | Low Latency | draft-wang-tcpm-low-latency-opt-00 |
TCP Encryption Protocol Identifiers
Registration Procedure(s)
- IETF Review or Expert Review with RFC Required
Expert(s)
- Unassigned
Reference
- RFC 8547: TCP-ENO: Encryption Negotiation Option
Available Formats
tcpcrypt AEAD Algorithms
Registration Procedure(s)
- IETF Review or Expert Review with RFC Required
Expert(s)
- Unassigned
Reference
- RFC 8548: Cryptographic Protection of TCP Streams (tcpcrypt)
Available Formats
MPTCP MP_TCPRST Reason Codes
Registration Procedure(s)
- Specification Required
Expert(s)
- Unassigned
Reference
- RFC 8684: TCP Extensions for Multipath Operation with Multiple Addresses
Available Formats
| Code | Meaning | Reference |
|---|---|---|
| 0x00 | Unspecified error | RFC 8684, Section 3.6 |
| 0x01 | MPTCP-specific error | RFC 8684, Section 3.6 |
| 0x02 | Lack of resources | RFC 8684, Section 3.6 |
| 0x03 | Administratively prohibited | RFC 8684, Section 3.6 |
| 0x04 | Too much outstanding data | RFC 8684, Section 3.6 |
| 0x05 | Unacceptable performance | RFC 8684, Section 3.6 |
| 0x06 | Middlebox interference | RFC 8684, Section 3.6 |
| 0x07-0xff | Unassigned |
TCP Header Flags
Registration Procedure(s)
- Standards Action
Reference
- RFC 9293: Transmission Control Protocol (TCP)
Available Formats
| Bit Offset | Name | Reference | Assignment Notes |
|---|---|---|---|
| 4 | Reserved for future use | RFC 9293 | |
| 5 | Reserved for future use | RFC 9293 | |
| 6 | Reserved for future use | RFC 9293 | |
| 7 | AE (Accurate ECN) | RFC 9768 | Previously used as NS (Nonce Sum) by RFC 3540, which is now Historic RFC 8311. |
| 8 | CWR (Congestion Window Reduced) | RFC 3168 | |
| 9 | ECE (ECN-Echo) | RFC 3168 | |
| 10 | Urgent Pointer field is significant (URG) | RFC 9293 | |
| 11 | Acknowledgment field is significant (ACK) | RFC 9293 | |
| 12 | Push Function (PSH) | RFC 9293 | |
| 13 | Reset the connection (RST) | RFC 9293 | |
| 14 | Synchronize sequence numbers (SYN) | RFC 9293 | |
| 15 | No more data from sender (FIN) | RFC 9293 |
Contact Information
| Name | Contact URI | Last Updated |
|---|---|---|
| J. Kay | jkay&ucsd.edu | 1994-09 |
| Keith Scott | kscott&mitre.org | 1999-02 |
| Kevin Vermeulen | kevin.vermeulen&polytechnique.edu | 2025-08-19 |
| Monroe Bridges | monroe&cup.hp.com | 1994-09 |
| Stev Knowles | stev&ftp.com | 1995-03 |
| Steve Bellovin | smb&research.att.com | 2000-03 |
| Subbu Subramaniam | subbu&cup.hp.com | 1994-09 |
| Vladimir Sukonnik | 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. |