1488:
length of the option, and Option-Data contains data associated with the option, if applicable. For example, an Option-Kind byte of 1 indicates that this is a no operation option used only for padding, and does not have an Option-Length or Option-Data fields following it. An Option-Kind byte of 0 marks the end of options, and is also only one byte. An Option-Kind byte of 2 is used to indicate
Maximum Segment Size option, and will be followed by an Option-Length byte specifying the length of the MSS field. Option-Length is the total length of the given options field, including Option-Kind and Option-Length fields. So while the MSS value is typically expressed in two bytes, Option-Length will be 4. As an example, an MSS option field with a value of
2893:(MPTCP) is an ongoing effort within the IETF that aims at allowing a TCP connection to use multiple paths to maximize resource usage and increase redundancy. The redundancy offered by Multipath TCP in the context of wireless networks enables the simultaneous use of different networks, which brings higher throughput and better handover capabilities. Multipath TCP also brings performance benefits in datacenter environments. The reference implementation of Multipath TCP was developed in the Linux kernel. Multipath TCP is used to support the Siri voice recognition application on iPhones, iPads and Macs.
1988:
of FIN and ACK segments from each TCP endpoint. After the side that sent the first FIN has responded with the final ACK, it waits for a timeout before finally closing the connection, during which time the local port is unavailable for new connections; this state lets the TCP client resend the final acknowledgment to the server in case the ACK is lost in transit. The time duration is implementation-dependent, but some common values are 30 seconds, 1 minute, and 2 minutes. After the timeout, the client enters the CLOSED state and the local port becomes available for new connections.
2209:
RTTs, spurious timeouts can occur: if the RTT is under-estimated, then the RTO fires and triggers a needless retransmit and slow-start. After a spurious retransmission, when the acknowledgments for the original transmissions arrive, the sender may believe them to be acknowledging the retransmission and conclude, incorrectly, that segments sent between the original transmission and retransmission have been lost, causing further needless retransmissions to the extent that the link truly becomes congested; selective acknowledgement can reduce this effect.
3126:, and other radio effects, that are not strictly congestion. After the (erroneous) back-off of the congestion window size, due to wireless packet loss, there may be a congestion avoidance phase with a conservative decrease in window size. This causes the radio link to be underused. Extensive research on combating these harmful effects has been conducted. Suggested solutions can be categorized as end-to-end solutions, which require modifications at the client or server, link layer solutions, such as Radio Link Protocol (
1980:
1759:
2114:
Linux Kernel to adopt heuristic methods to scale the duplicate acknowledgment threshold. Recently, there have been efforts to completely phase out dupack based fast-retransmissions and replace them with timer based ones. (Not to be confused with the classic RTO discussed below). The time based loss detection algorithm called Recent
Acknowledgment (RACK) has been adopted as the default algorithm in Linux and Windows.
3102:. Reordered packets can cause duplicate acknowledgments to be sent, which, if they cross the threshold, will then trigger a spurious retransmission and congestion control. Transmission behaviour can also become less smooth and more bursty, as large ranges are acknowledged all at once when a reordered packet at the range's start is received (in a similar manner to how head-of-line blocking affects applications).
3170:, which intercepts TCP traffic on a network link, can be useful in debugging networks, network stacks, and applications that use TCP by showing the user what packets are passing through a link. Some networking stacks support the SO_DEBUG socket option, which can be enabled on the socket using setsockopt. That option dumps all the packets, TCP states, and events on that socket, which is helpful in debugging.
2428:
2,999) is lost during transmission. In a pure cumulative acknowledgment protocol, the receiver can only send a cumulative ACK value of 2,000 (the sequence number immediately following the last sequence number of the received data) and cannot say that it received bytes 3,000 to 10,999 successfully. Thus the sender may then have to resend all data starting with sequence number 2,000.
2106:
as a signal for packet loss. That is, if the sender receives three duplicate acknowledgments, it retransmits the last unacknowledged packet. A threshold of three is used because the network may reorder segments causing duplicate acknowledgements. This threshold has been demonstrated to avoid spurious retransmissions due to reordering. Some TCP implementations use
3154:
sender on the basis of the acknowledgments received by it. The acceleration node splits the feedback loop between the sender and the receiver and thus guarantees a shorter round trip time (RTT) per packet. A shorter RTT is beneficial as it ensures a quicker response time to any changes in the network and a faster adaptation by the sender to combat these changes.
3057:
independently of each other, rather than being able to pool information together and respond more promptly to observed network conditions; TCP's aggressive initial sending patterns can cause congestion if multiple parallel connections are opened; and the per-connection fairness model leads to a monopolization of resources by applications that take this approach.
2578:(OOB) and tells the receiving program to process it immediately. When finished, TCP informs the application and resumes the stream queue. An example is when TCP is used for a remote login session where the user can send a keyboard sequence that interrupts or aborts the remotely running program without waiting for the program to finish its current transfer.
1972:
4208:
adaptor on the wire will have valid checksums. This issue can also occur when monitoring packets being transmitted between virtual machines on the same host, where a virtual device driver may omit the checksum calculation (as an optimization), knowing that the checksum will be calculated later by the VM host kernel or its physical hardware.
944:, pink background in table). The data section follows the header and is the payload data carried for the application. The length of the data section is not specified in the segment header; it can be calculated by subtracting the combined length of the segment header and IP header from the total IP datagram length specified in the IP header.
2278:
2019:
perform a lookup on this table to find the destination process. Each entry in the table is known as a
Transmission Control Block or TCB. It contains information about the endpoints (IP and port), status of the connection, running data about the packets that are being exchanged and buffers for sending and receiving data.
2439:, which allows the receiver to acknowledge discontinuous blocks of packets that were received correctly, in addition to the sequence number immediately following the last sequence number of the last contiguous byte received successively, as in the basic TCP acknowledgment. The acknowledgment can include a number of
3251:(SCTP) is another protocol that provides reliable stream-oriented services similar to TCP. It is newer and considerably more complex than TCP, and has not yet seen widespread deployment. However, it is especially designed to be used in situations where reliability and near-real-time considerations are important.
2999:. One measurement found that a third of paths across the Internet encounter at least one intermediary that modifies TCP metadata, and 6.5% of paths encounter harmful ossifying effects from intermediaries. Avoiding extensibility hazards from intermediaries placed significant constraints on the design of
1336:. The minimum size header is 5 words and the maximum is 15 words thus giving the minimum size of 20 bytes and maximum of 60 bytes, allowing for up to 40 bytes of options in the header. This field gets its name from the fact that it is also the offset from the start of the TCP segment to the actual data.
3310:
The checksum field is the 16-bit ones' complement of the ones' complement sum of all 16-bit words in the header and text. The checksum computation needs to ensure the 16-bit alignment of the data being summed. If a segment contains an odd number of header and text octets, alignment can be achieved by
2606:
tries to group small messages into a single packet). This wait creates small, but potentially serious delays if repeated constantly during a file transfer. For example, a typical send block would be 4 KB, a typical MSS is 1460, so 2 packets go out on a 10 Mbit/s
Ethernet taking ~1.2 ms
2459:
A TCP sender may interpret an out-of-order segment delivery as a lost segment. If it does so, the TCP sender will retransmit the segment previous to the out-of-order packet and slow its data delivery rate for that connection. The duplicate-SACK option, an extension to the SACK option that was defined
2105:
If a single segment (say segment number 100) in a stream is lost, then the receiver cannot acknowledge packets above that segment number (100) because it uses cumulative ACKs. Hence the receiver acknowledges packet 99 again on the receipt of another data packet. This duplicate acknowledgement is used
6904:
Checksum offloading often causes confusion as the network packets to be transmitted are handed over to
Wireshark before the checksums are actually calculated. Wireshark gets these "empty" checksums and displays them as invalid, even though the packets will contain valid checksums when they leave the
4207:
that are unaware or uncertain about the use of checksum offload to report invalid checksums in outbound packets that have not yet reached the network adapter. This will only occur for packets that are intercepted before being transmitted by the network adapter; all packets transmitted by the network
3182:
For many applications TCP is not appropriate. One problem (at least with normal implementations) is that the application cannot access the packets coming after a lost packet until the retransmitted copy of the lost packet is received. This causes problems for real-time applications such as streaming
3114:
measured gains of up to 45%. An important factor in the improvement is that selective acknowledgment can more often avoid going into slow start after a loss and can hence better use available bandwidth. However, TCP can only selectively acknowledge a maximum of three blocks of sequence numbers. This
2742:
by the malicious packet. Unlike in connection hijacking, the connection is never desynchronized and communication continues as normal after the malicious payload is accepted. TCP veto gives the attacker less control over the communication but makes the attack particularly resistant to detection. The
2724:
was easily guessable. The earlier implementations allowed an attacker to blindly send a sequence of packets that the receiver would believe came from a different IP address, without the need to intercept communication through ARP or routing attacks: it is enough to ensure that the legitimate host of
2708:
An attacker who is able to eavesdrop on a TCP session and redirect packets can hijack a TCP connection. To do so, the attacker learns the sequence number from the ongoing communication and forges a false segment that looks like the next segment in the stream. A simple hijack can result in one packet
2427:
Relying purely on the cumulative acknowledgment scheme employed by the original TCP can lead to inefficiencies when packets are lost. For example, suppose bytes with sequence number 1,000 to 10,999 are sent in 10 different TCP segments of equal size, and the second segment (sequence numbers 2,000 to
2217:
ensures that a good RTT estimate will be produced—eventually—by waiting until there is an unambiguous acknowledgment before adjusting the RTO. After spurious retransmissions, however, it may take significant time before such an unambiguous acknowledgment arrives, degrading performance in
804:
of lost data, rearranges out-of-order data and even helps minimize network congestion to reduce the occurrence of the other problems. If the data still remains undelivered, the source is notified of this failure. Once the TCP receiver has reassembled the sequence of octets originally transmitted, it
4167:
The final destination; if the IPv6 packet doesn't contain a
Routing header, TCP uses the destination address in the IPv6 header, otherwise, at the originating node, it uses the address in the last element of the Routing header, and, at the receiving node, it uses the destination address in the IPv6
3106:
found that throughput was inversely related to the amount of reordering, up to a limit where all reordering triggers spurious retransmission. Mitigating reordering depends on a sender's ability to determine that it has sent a spurious retransmission, and hence on resolving retransmission ambiguity.
2737:
An attacker who can eavesdrop and predict the size of the next packet to be sent can cause the receiver to accept a malicious payload without disrupting the existing connection. The attacker injects a malicious packet with the sequence number and a payload size of the next expected packet. When the
2513:
The window scale option is used only during the TCP 3-way handshake. The window scale value represents the number of bits to left-shift the 16-bit window size field when interpreting it. The window scale value can be set from 0 (no shift) to 14 for each direction independently. Both sides must send
2084:
Acknowledgments (ACKs) are sent with a sequence number by the receiver of data to tell the sender that data has been received to the specified byte. ACKs do not imply that the data has been delivered to the application, they merely signify that it is now the receiver's responsibility to deliver the
2026:
before sending the first SYN to the server. This port remains allocated during the whole conversation and effectively limits the number of outgoing connections from each of the client's IP addresses. If an application fails to properly close unrequired connections, a client can run out of resources
1987:
The connection termination phase uses a four-way handshake, with each side of the connection terminating independently. When an endpoint wishes to stop its half of the connection, it transmits a FIN packet, which the other end acknowledges with an ACK. Therefore, a typical tear-down requires a pair
1962:
Steps 1 and 2 establish and acknowledge the sequence number for one direction (client to server). Steps 2 and 3 establish and acknowledge the sequence number for the other direction (server to client). Following the completion of these steps, both the client and server have received acknowledgments
3157:
Disadvantages of the method include the fact that the TCP session has to be directed through the accelerator; this means that if routing changes, so that the accelerator is no longer in the path, the connection will be broken. It also destroys the end-to-end property of the TCP ack mechanism; when
2331:
Acknowledgments for data sent, or the lack of acknowledgments, are used by senders to infer network conditions between the TCP sender and receiver. Coupled with timers, TCP senders and receivers can alter the behavior of the flow of data. This is more generally referred to as congestion control or
1938:
Before a client attempts to connect with a server, the server must first bind to and listen at a port to open it up for connections: this is called a passive open. Once the passive open is established, a client may establish a connection by initiating an active open using the three-way (or 3-step)
2294:
situation that could arise if a subsequent window size update from the receiver is lost, and the sender cannot send more data until receiving a new window size update from the receiver. When the persist timer expires, the TCP sender attempts recovery by sending a small packet so that the receiver
2208:
Accurate RTT estimates are important for loss recovery, as it allows a sender to assume an unacknowledged packet to be lost after sufficient time elapses (i.e., determining the RTO time). Retransmission ambiguity can lead a sender's estimate of RTT to be imprecise. In an environment with variable
2113:
Retransmission ambiguity can cause spurious fast retransmissions and congestion avoidance if there is reordering beyond the duplicate acknowledgment threshold. In the last two decades more packet reordering has been observed over the
Internet which led TCP implementations, such as the one in the
2018:
Most implementations allocate an entry in a table that maps a session to a running operating system process. Because TCP packets do not include a session identifier, both endpoints identify the session using the client's address and port. Whenever a packet is received, the TCP implementation must
3153:
Since TCP is a rate-adaptive protocol, the rate at which the TCP sender injects packets into the network is directly proportional to the prevailing load condition within the network as well as the processing capacity of the receiver. The prevalent conditions within the network are judged by the
2585:
pointer only alters the processing on the remote host and doesn't expedite any processing on the network itself. The capability is implemented differently or poorly on different systems or may not be supported. Where it is available, it is prudent to assume only single bytes of OOB data will be
2261:
protocol to avoid having the sender send data too fast for the TCP receiver to receive and process it reliably. Having a mechanism for flow control is essential in an environment where machines of diverse network speeds communicate. For example, if a PC sends data to a smartphone that is slowly
1487:
Options have up to three fields: Option-Kind (1 byte), Option-Length (1 byte), Option-Data (variable). The Option-Kind field indicates the type of option and is the only field that is not optional. Depending on Option-Kind value, the next two fields may be set. Option-Length indicates the total
4540:
We are screwing up in our design of internet protocols by violating the principle of layering. Specifically we are trying to use TCP to do two things: serve as a host level end to end protocol, and to serve as an internet packaging and routing protocol. These two things should be provided in a
2530:
in 1992, can help TCP determine in which order packets were sent. TCP timestamps are not normally aligned to the system clock and start at some random value. Many operating systems will increment the timestamp for every elapsed millisecond; however, the RFC only states that the ticks should be
2455:
being a contiguous range that the receiver correctly received. In the example above, the receiver would send an ACK segment with a cumulative ACK value of 2,000 and a SACK option header with sequence numbers 3,000 and 11,000. The sender would accordingly retransmit only the second segment with
3056:
attempt to mitigate head-of-line blocking by opening multiple parallel connections. This incurs the cost of connection establishment repeatedly, as well as multiplying the resources needed to track those connections at the endpoints. Parallel connections also have congestion control operating
6875:
Wireshark captures packets before they are sent to the network adapter. It won't see the correct checksum because it has not been calculated yet. Even worse, most OSes don't bother initialize this data so you're probably seeing little chunks of memory that you shouldn't. New installations of
2092:
When a TCP segment is retransmitted, it retains the same sequence number as the original delivery attempt. This conflation of delivery and logical data ordering means that, when acknowledgment is received after a retransmission, the sender cannot tell whether the original transmission or the
3149:
The idea of a TCP accelerator is to terminate TCP connections inside the network processor and then relay the data to a second connection toward the end system. The data packets that originate from the sender are buffered at the accelerator node, which is responsible for performing local
2517:
Some routers and packet firewalls rewrite the window scaling factor during a transmission. This causes sending and receiving sides to assume different TCP window sizes. The result is non-stable traffic that may be very slow. The problem is visible on some sites behind a defective router.
2055:
Flow control: limits the rate a sender transfers data to guarantee reliable delivery. The receiver continually hints the sender on how much data can be received. When the receiving host's buffer fills, the next acknowledgment suspends the transfer and allows the data in the buffer to be
864:
message as it receives the data. The sender keeps a record of each packet it sends and maintains a timer from when the packet was sent. The sender re-transmits a packet if the timer expires before receiving the acknowledgment. The timer is needed in case a packet gets lost or corrupted.
2809:
source ports when contacting servers, but they can also identify named services that have been registered by a third party. Dynamic or private ports can also be used by end-user applications, however, these ports typically do not contain any meaning outside a particular TCP connection.
835:
TCP is optimized for accurate delivery rather than timely delivery and can incur relatively long delays (on the order of seconds) while waiting for out-of-order messages or re-transmissions of lost messages. Therefore, it is not particularly suitable for real-time applications such as
872:– the individual units of data transmission that a message is divided into for efficient routing through the network. For example, when an HTML file is sent from a web server, the TCP software layer of that server divides the file into segments and forwards them individually to the
2009:
state, in which case one side has terminated the connection, but the other has not. The side that has terminated can no longer send any data into the connection, but the other side can. The terminating side should continue reading the data until the other side terminates as well.
186:, meaning that sender and receiver firstly need to establish a connection based on agreed parameters; they do this through three-way handshake procedure. The server must be listening (passive open) for connection requests from clients before a connection is established. Three-way
2482:
discouraged such behavior, but did not prohibit it to allow receivers the option of reneging if they, for example, ran out of buffer space. The possibility of reneging leads to implementation complexity for both senders and receivers, and also imposes memory costs on the sender.
8319:
Papastergiou, Giorgos; Fairhurst, Gorry; Ros, David; Brunstrom, Anna; Grinnemo, Karl-Johan; Hurtig, Per; Khademi, Naeem; Tüxen, Michael; Welzl, Michael; Damjanovic, Dragana; Mangiante, Simone (2017). "De-Ossifying the
Internet Transport Layer: A Survey and Future Perspectives".
3090:
is an open research topic. TCP Fast Open allows the transmission of data in the initial (i.e., SYN and SYN-ACK) packets, removing one RTT of latency during connection establishment. However, TCP Fast Open has been difficult to deploy due to protocol ossification; as of 2020, no
2553:. PAWS is used when the receive window crosses the sequence number wraparound boundary. In the case where a packet was potentially retransmitted, it answers the question: "Is this sequence number in the first 4 GB or the second?" And the timestamp is used to break the tie.
2497:
For more efficient use of high-bandwidth networks, a larger TCP window size may be used. A 16-bit TCP window size field controls the flow of data and its value is limited to 65,535 bytes. Since the size field cannot be expanded beyond this limit, a scaling factor is used. The
2002:, implement a half-duplex close sequence. If the host actively closes a connection, while still having unread incoming data available, the host sends the signal RST (losing any received data) instead of FIN. This assures that a TCP application is aware there was a data loss.
1320:
If the ACK flag is set then the value of this field is the next sequence number that the sender of the ACK is expecting. This acknowledges receipt of all prior bytes (if any). The first ACK sent by each end acknowledges the other end's initial sequence number itself, but no
2607:
each followed by a third carrying the remaining 1176 after a 197 ms pause because TCP is waiting for a full buffer. In the case of telnet, each user keystroke is echoed back by the server before the user can see it on the screen. This delay would become very annoying.
3039:
and need to be retransmitted (and thus are reordered), data from sequentially later parts of the stream may be received before sequentially earlier parts of the stream; however, the later data cannot typically be used until the earlier data has been received, incurring
3078:
allows for zero RTT connection resumption in some circumstances, but, when layered over TCP, one RTT is still required for the TCP handshake, and this cannot assist the initial connection; zero RTT handshakes also present cryptographic challenges, as efficient,
2273:
field the amount of additionally received data (in bytes) that it is willing to buffer for the connection. The sending host can send only up to that amount of data before it must wait for an acknowledgment and receive window update from the receiving host.
3150:
retransmissions in the event of packet loss. Thus, in case of losses, the feedback loop between the sender and the receiver is shortened to the one between the acceleration node and the receiver which guarantees a faster delivery of data to the receiver.
2987:. While this transparency is useful to network operators and researchers, information gathered from protocol metadata may reduce the end-user's privacy. This visibility and malleability of metadata has led to TCP being difficult to extend—a case of
3060:
Connection establishment is a major contributor to latency as experienced by web users. TCP's three-way handshake introduces one RTT of latency during connection establishment before data can be sent. For short flows, these delays are very significant.
2122:
When a sender transmits a segment, it initializes a timer with a conservative estimate of the arrival time of the acknowledgment. The segment is retransmitted if the timer expires, with a new timeout threshold of twice the previous value, resulting in
884:. When the client program on the destination computer receives them, the TCP software in the transport layer re-assembles the segments and ensures they are correctly ordered and error-free as it streams the file contents to the receiving application.
3672:
The length of the TCP header and data (measured in octets). For example, let's say we have IPv4 packet with Total Length of 200 bytes and IHL value of 5, which indicates a length of 5 × 32 bits = 160 bits = 20 bytes. We can compute the TCP length as
2362:(RTT) between the sender and receiver, as well as the variance in this round-trip time. There are subtleties in the estimation of RTT. For example, senders must be careful when calculating RTT samples for retransmitted packets; typically they use
3069:
at connection establishment. Because of the layered design, the TCP handshake and the TLS handshake proceed serially; the TLS handshake cannot begin until the TCP handshake has concluded. Two RTTs are required for connection establishment with
2281:
TCP sequence numbers and receive windows behave very much like a clock. The receive window shifts each time the receiver receives and acknowledges a new segment of data. Once it runs out of sequence numbers, the sequence number loops back to
2769:
port numbers, providing 65,536 possible values for each of the source and destination ports. The dependency of connection identity on addresses means that TCP connections are bound to a single network path; TCP cannot use other routes that
7974:
Briscoe, Bob; Brunstrom, Anna; Petlund, Andreas; Hayes, David; Ros, David; Tsang, Ing-Jyh; Gjessing, Stein; Fairhurst, Gorry; Griwodz, Carsten; Welzl, Michael (2016). "Reducing
Internet Latency: A Survey of Techniques and Their Merits".
1377:
If the SYN flag is unset (0), a packet with the
Congestion Experienced flag set (ECN=11) in its IP header was received during normal transmission. This serves as an indication of network congestion (or impending congestion) to the TCP
2324:, a gridlock situation where network performance is severely degraded. These mechanisms control the rate of data entering the network, keeping the data flow below a rate that would trigger collapse. They also yield an approximately
1952:: In response, the server replies with a SYN-ACK. The acknowledgment number is set to one more than the received sequence number i.e. A+1, and the sequence number that the server chooses for the packet is another random number, B.
927:
Processes transmit data by calling on the TCP and passing buffers of data as arguments. The TCP packages the data from these buffers into segments and calls on the internet module to transmit each segment to the destination TCP.
650:
The Transmission Control Program incorporated both connection-oriented links and datagram services between hosts. In version 4, the monolithic Transmission Control Program was divided into a modular architecture consisting of the
3288:(MTP/IP) is patented proprietary software that is designed to adaptively achieve high throughput and transaction performance in a wide variety of network conditions, particularly those where TCP is perceived to be inefficient.
2394:, which can lead to packet loss and excessive retransmissions. To accomplish this, typically the MSS is announced by each side using the MSS option when the TCP connection is established. The option value is derived from the
1412:
Synchronize sequence numbers. Only the first packet sent from each end should have this flag set. Some other flags and fields change meaning based on this flag, and some are only valid when it is set, and others when it is
3311:
padding the last octet with zeros on its right to form a 16-bit word for checksum purposes. The pad is not transmitted as part of the segment. While computing the checksum, the checksum field itself is replaced with zeros.
1958:: Finally, the client sends an ACK back to the server. The sequence number is set to the received acknowledgment value i.e. A+1, and the acknowledgment number is set to one more than the received sequence number i.e. B+1.
4199:
prior to transmission onto the network or upon reception from the network for validation. This may relieve the OS from using precious CPU cycles calculating the checksum. Hence, overall network performance is increased.
5656:
2176:
3771:
Any transport or other upper-layer protocol that includes the addresses from the IP header in its checksum computation must be modified for use over IPv6, to include the 128-bit IPv6 addresses instead of 32-bit IPv4
3236:
and checksums that TCP does, but does not handle streams or retransmission, giving the application developer the ability to code them in a way suitable for the situation, or to replace them with other methods like
2076:
that may occur. The sequence number of the first byte is chosen by the transmitter for the first packet, which is flagged SYN. This number can be arbitrary, and should, in fact, be unpredictable to defend against
855:
delivery service that guarantees that all bytes received will be identical and in the same order as those sent. Since packet transfer by many networks is not reliable, TCP achieves this using a technique known as
2088:
Reliability is achieved by the sender detecting lost data and retransmitting it. TCP uses two primary techniques to identify loss. Retransmission timeout (RTO) and duplicate cumulative acknowledgments (DupAcks).
2373:
Enhancing TCP to reliably handle loss, minimize errors, manage congestion and go fast in very high-speed environments are ongoing areas of research and standards development. As a result, there are a number of
3701:
1306:
If the SYN flag is set (1), then this is the initial sequence number. The sequence number of the actual first data byte and the acknowledged number in the corresponding ACK are then this sequence number plus
2645:
TCP may be attacked in a variety of ways. The results of a thorough security assessment of TCP, along with possible mitigations for the identified issues, were published in 2009, and was pursued within the
2738:
legitimate packet is ultimately received, it is found to have the same sequence number and length as a packet already received and is silently dropped as a normal duplicate packet—the legitimate packet is
2413:. Two completely independent values of MSS are permitted for the two directions of data flow in a TCP connection, so there is no need to agree on a common MSS configuration for a bidirectional connection.
2464:, solves this problem. Once the TCP receiver detects a second duplicate packet, it sends a D-ACK to indicate that no segments were lost, allowing the TCP sender to reinstate the higher transmission rate.
777:
of the transmission medium. At the transport layer, TCP handles all handshaking and transmission details and presents an abstraction of the network connection to the application typically through a
5619:
1991:
It is also possible to terminate the connection by a 3-way handshake, when host A sends a FIN and host B replies with a FIN & ACK (combining two steps into one) and host A replies with an ACK.
2832:
TCP is a complex protocol. However, while significant enhancements have been made and proposed over the years, its most basic operation has not changed significantly since its first specification
761:
The Transmission Control Protocol provides a communication service at an intermediate level between an application program and the Internet Protocol. It provides host-to-host connectivity at the
3122:
and the congestion window size is reduced dramatically as a precaution. However, wireless links are known to experience sporadic and usually temporary losses due to fading, shadowing, hand off,
2844:, published in October 1989, clarified a number of TCP protocol implementation requirements. A list of the 8 required specifications and over 20 strongly encouraged enhancements is available in
2743:
only evidence to the receiver that something is amiss is a single duplicate packet, a normal occurrence in an IP network. The sender of the vetoed packet never sees any evidence of an attack.
2781:(IANA) and are typically used by system-level processes. Well-known applications running as servers and passively listening for connections typically use these ports. Some examples include:
6144:
3320:. The sum is then bitwise complemented and inserted as the checksum field. A pseudo-header that mimics the IPv4 packet header used in the checksum computation is shown in the table below.
3731:
3052:
onto a single TCP connection, then head-of-line blocking can cause processing of a fully-received message that was sent later to wait for delivery of a message that was sent earlier.
2226:
Sequence numbers allow receivers to discard duplicate packets and properly sequence out-of-order packets. Acknowledgments allow senders to determine when to retransmit lost packets.
2943:(TCPCT) is an extension proposed in December 2009 to secure servers against denial-of-service attacks. Unlike SYN cookies, TCPCT does not conflict with other TCP extensions such as
6059:
2903:(SSL), tcpcrypt itself does not provide authentication, but provides simple primitives down to the application to do that. The tcpcrypt RFC was published by the IETF in May 2019.
2899:
is an extension proposed in July 2010 to provide transport-level encryption directly in TCP itself. It is designed to work transparently and not require any configuration. Unlike
2467:
The SACK option is not mandatory and comes into operation only if both parties support it. This is negotiated when a connection is established. SACK uses a TCP header option (see
1361:
Congestion window reduced (CWR) flag is set by the sending host to indicate that it received a TCP segment with the ECE flag set and had responded in congestion control mechanism.
5793:
5649:
1905:
Waiting for an acknowledgment of the connection termination request previously sent to the remote TCP (which includes an acknowledgment of its connection termination request).
2390:(MSS) is the largest amount of data, specified in bytes, that TCP is willing to receive in a single segment. For best performance, the MSS should be set small enough to avoid
2072:
to identify each byte of data. The sequence number identifies the order of the bytes sent from each computer so that the data can be reconstructed in order, regardless of any
5823:
2670:
SYN packets, followed by many ACK packets, attackers can cause the server to consume large amounts of resources keeping track of the bogus connections. This is known as a
1342:
For future use and should be set to zero; senders should not set these and receivers should ignore them if set, in the absence of further specification and implementation.
2971:(TOE). The main problem of TOEs is that they are hard to integrate into computing systems, requiring extensive changes in the operating system of the computer or device.
2402:
to infer the minimum MTU along the network path between the sender and receiver, and use this to dynamically adjust the MSS to avoid IP fragmentation within the network.
581:
2618:
overrides the default 200 ms send delay. Application programs use this socket option to force output to be sent after writing a character or line of characters.
8550:
6876:
Wireshark 1.2 and above disable IP, TCP, and UDP checksum validation by default. You can disable checksum validation in each of those dissectors by hand if needed.
5054:
4986:
3751:
6802:
2909:
is an extension to speed up the opening of successive TCP connections between two endpoints. It works by skipping the three-way handshake using a cryptographic
2196:
2625:
push bit as "a message to the receiving TCP stack to send this data immediately up to the receiving application". There is no way to indicate or control it in
1734:
The remaining Option-Kind values are historical, obsolete, experimental, not yet standardized, or unassigned. Option number assignments are maintained by the
2765:, destination address, and destination port. Port numbers are used to identify different services, and to allow multiple connections between hosts. TCP uses
892:
Transmission Control Protocol accepts data from a data stream, divides it into chunks, and adds a TCP header creating a TCP segment. The TCP segment is then
341:
2562:
Recent Statistics show that the level of TCP timestamp adoption has stagnated, at ~40%, owing to Windows Server dropping support since Windows Server 2008.
2218:
the interim. TCP timestamps also resolve the retransmission ambiguity problem in setting the RTO, though they do not necessarily improve the RTT estimate.
5627:
3268:
works very well for ad-hoc environments where the data sender is not known in advance. If the environment is predictable, a timing-based protocol such as
4375:
2932:
threshold as possible. The algorithm is designed to improve the speed of recovery and is the default congestion control algorithm in Linux 3.2+ kernels.
2852:, TCP Congestion Control, one of the most important TCP-related RFCs in recent years, describes updated algorithms that avoid undue congestion. In 2001,
8322:
7977:
5844:
2709:
being erroneously accepted at one end. When the receiving host acknowledges the false segment, synchronization is lost. Hijacking may be combined with
2556:
Also, the Eifel detection algorithm uses TCP timestamps to determine if retransmissions are occurring because packets are lost or simply out of order.
2110:(SACKs) to provide explicit feedback about the segments that have been received. This greatly improves TCP's ability to retransmit the right segments.
1499:
Some options may only be sent when SYN is set; they are indicated below as . Option-Kind and standard lengths given as (Option-Kind, Option-Length).
2777:
Port numbers are categorized into three basic categories: well-known, registered, and dynamic or private. The well-known ports are assigned by the
6892:
6136:
2983:
of TCP provides significant information-gathering and modification opportunities to on-path observers, as the protocol metadata is transmitted in
2130:
1484:
field. The TCP header padding is used to ensure that the TCP header ends, and data begins, on a 32-bit boundary. The padding is composed of zeros.
880:. The internet layer software encapsulates each TCP segment into an IP packet by adding a header that includes (among other data) the destination
8555:
5596:
5769:
5686:
2298:
If a receiver is processing incoming data in small increments, it may repeatedly advertise a small receive window. This is referred to as the
1861:
Waiting for a connection termination request from the remote TCP, or an acknowledgment of the connection termination request previously sent.
1394:
Indicates that the Acknowledgment field is significant. All packets after the initial SYN packet sent by the client should have this flag set.
8498:
8479:
8458:
6778:
5974:
5753:
5724:
5082:
5030:
4730:
574:
301:
2022:
The number of sessions in the server side is limited only by memory and can grow as new connections arrive, but the client must allocate an
1946:: The active open is performed by the client sending a SYN to the server. The client sets the segment's sequence number to a random value A.
3248:
3242:
2682:
is a similar attack, that might be mitigated with system resource management. An advanced DoS attack involving the exploitation of the TCP
2570:
It is possible to interrupt or abort the queued stream instead of waiting for the stream to finish. This is done by specifying the data as
2472:
431:
426:
396:
2249:
frame. However, introduction of errors in packets between CRC-protected hops is common and the 16-bit TCP checksum catches most of these.
1310:
If the SYN flag is unset (0), then this is the accumulated sequence number of the first data byte of this segment for the current session.
5879:
2778:
1735:
256:
6736:
6089:
3676:
3217:
servers) the complexity of TCP can be a problem. Finally, some tricks such as transmitting data between two hosts that are both behind
8560:
6291:
5930:
5452:
3265:
2375:
2340:
624:
503:
446:
371:
4680:
4651:
7427:
7364:
6174:
4427:
4358:
3285:
2302:, since it is inefficient to send only a few bytes of data in a TCP segment, given the relatively large overhead of the TCP header.
513:
483:
183:
144:
4195:
Many TCP/IP software stack implementations provide options to use hardware assistance to automatically compute the checksum in the
3115:
can limit the retransmission rate and hence loss recovery or cause needless retransmissions, especially in high-loss environments.
1633:
These first two bytes are followed by a list of 1–4 blocks being selectively acknowledged, specified as 32-bit begin/end pointers.
769:. An application does not need to know the particular mechanisms for sending data via a link to another host, such as the required
1781:
A TCP connection is managed by an operating system through a resource that represents the local end-point for communications, the
6863:
5819:
5272:
3275:
3187:(VoIP) where it is generally more useful to get most of the data in a timely fashion than it is to get all of the data in order.
2857:
2752:
2586:
reliably handled. Since the feature is not frequently used, it is not well tested on some platforms and has been associated with
1371:
567:
498:
291:
2506:, is an option used to increase the maximum window size to 1 gigabyte. Scaling up to these larger window sizes is necessary for
2471:
for details). The use of SACK has become widespread—all popular TCP stacks support it. Selective acknowledgment is also used in
1850:
An open connection, data received can be delivered to the user. The normal state for the data transfer phase of the connection.
2928:(PRR) is a TCP extension developed by Google engineers. PRR ensures that the TCP window size after recovery is as close to the
861:
2398:(MTU) size of the data link layer of the networks to which the sender and receiver are directly attached. TCP senders can use
2366:
or TCP timestamps. These individual RTT samples are then averaged over time to create a smoothed round trip time (SRTT) using
8280:
7784:
Considerations around Transport Header Confidentiality, Network Operations, and the Evolution of Internet Transport Protocols
2703:
2078:
806:
801:
316:
306:
222:
191:
148:
8531:
John Kristoff's Overview of TCP (Fundamental concepts behind TCP and how it is used to transport data between two endpoints)
6830:
1454:
field is used for error-checking of the TCP header, the payload and an IP pseudo-header. The pseudo-header consists of the
5466:
1472:
If the URG flag is set, then this 16-bit field is an offset from the sequence number indicating the last urgent data byte.
436:
366:
2967:
One way to overcome the processing power requirements of TCP is to build hardware implementations of it, widely known as
2478:
Selective acknowledgements can be 'reneged', where the receiver unilaterally discards the selectively acknowledged data.
5908:
4982:
4847:
3130:) in cellular networks, or proxy-based solutions which require some changes in the network without modifying end nodes.
3123:
3087:
2198:
is the clock granularity. This guards against excessive transmission traffic due to faulty or malicious actors, such as
1433:, which specifies the number of window size units that the sender of this segment is currently willing to receive. (See
1333:
841:
356:
351:
346:
207:
3261:
that is designed to replace TCP transparently to overcome perceived inefficiencies related to wireless data transport.
3007:. Another source of ossification is the difficulty of modification of TCP functions at the endpoints, typically in the
2824:, thereby allowing many IP addresses (and their ports) on the subnet to be serviced by a single public-facing address.
159:(bytes) between applications running on hosts communicating via an IP network. Major internet applications such as the
6806:
4223:
3218:
2813:
2291:
1463:
533:
493:
361:
6761:
Muhammad Adeel & Ahmad Ali Iqbal (2007). "TCP Congestion Window Optimization for CDMA2000 Packet Data Networks".
1839:
Waiting for a confirming connection request acknowledgment after having both received and sent a connection request.
5423:
Proceedings of the conference on Applications, Technologies, Architectures, and Protocols for Computer Communication
4527:
5953:
John T. Hagen; Barry E. Mullins (2013). "TCP veto: A novel network attack and its Application to SCADA protocols".
4228:
3269:
3254:
3049:
3045:
2762:
1345:
From 2003 to 2017, the last bit (bit 103 of the header) was defined as the NS (Nonce Sum) flag by the experimental
893:
789:
5134:
Mathis; Mathew; Semke; Mahdavi; Ott (1997). "The macroscopic behavior of the TCP congestion avoidance algorithm".
8290:
7915:
NOSSDAV'17: Proceedings of the 27th Workshop on Network and Operating Systems Support for Digital Audio and Video
3158:
the ACK is received by the sender, the packet has been stored by the accelerator, not delivered to the receiver.
2925:
2587:
2107:
825:
774:
8016:
Bruyeron, Renaud; Hemon, Bruno; Zhang, Lixa (April 1998). "Experimentations with TCP selective acknowledgment".
1475:
Options (TCP Option): Variable 0–320 bits, in units of 32 bits; size(Options) == (DOffset - 5) * 32
4218:
3238:
3062:
2900:
2726:
2559:
TCP timestamps are enabled by default in Linux, and disabled by default in Windows Server 2008, 2012 and 2016.
2202:
2199:
1788:
683:
386:
326:
218:
176:
8169:. IEEE INFOCOM 2003. Twenty-second Annual Joint Conference of the IEEE Computer and Communications Societies.
5193:"An Overview of Packet Reordering in Transmission Control Protocol (TCP): Problems, Solutions, and Challenges"
4402:
3706:
2367:
7913:
Bhat, Divyashri; Rizk, Amr; Zink, Michael (June 2017). "Not so QUIC: A Performance Study of DASH over QUIC".
6237:
5555:
2262:
processing received data, the smartphone must be able to regulate the data flow so as not to be overwhelmed.
5851:
3279:
3008:
2940:
2499:
2492:
2242:
2234:
1697:
553:
543:
336:
251:
235:
132:
128:
6114:
3107:
Reducing reordering-induced spurious retransmissions trades off against speedy recovery from genuine loss.
8187:
6071:
5430:
5143:
3229:
3195:
2929:
2782:
2336:
2311:
2039:
845:
817:
421:
271:
214:
203:
4595:
8051:
3028:
2988:
2299:
2073:
797:
548:
321:
187:
164:
8525:
6888:
2059:
Congestion control: lost packets (presumed due to congestion) trigger a reduction in data delivery rate
1916:
Waiting for enough time to pass to be sure that all remaining packets on the connection have expired.
7854:
7826:
7798:
7770:
7742:
7714:
7686:
7655:
7627:
7599:
7571:
7543:
7511:
7475:
7447:
7415:
7384:
7352:
7324:
7292:
7264:
7236:
7204:
7173:
7137:
7109:
7078:
7043:
7012:
6981:
6950:
6211:
4298:
Window size is relative to the segment identified by the sequence number in the acknowledgment field.
3258:
3191:
3024:
2996:
2603:
2387:
852:
331:
152:
106:
8192:
8182:
Hesmans, Benjamin; Duchene, Fabien; Paasch, Christoph; Detal, Gregory; Bonaventure, Olivier (2013).
6076:
5588:
2650:
through 2012. Notable vulnerabilities include denial of service, connection hijacking, TCP veto and
639:, and Carl Sunshine, and published in December 1974. It contains the first attested use of the term
5716:
5435:
5148:
5068:
4848:"Change RFC 3540 "Robust Explicit Congestion Notification (ECN) Signaling with Nonces" to Historic"
4467:'Industrial Legislatures': Consensus Standardization in the Second and Third Industrial Revolutions
3127:
2691:
2663:
2363:
2321:
2258:
2214:
2124:
2030:
Both endpoints must also allocate space for unacknowledged packets and received (but unread) data.
8045:
Chen, Shan; Jero, Samuel; Jagielski, Matthew; Boldyreva, Alexandra; Nita-Rotaru, Cristina (2021).
5682:
5240:
1979:
8444:
8389:
8349:
8307:
8070:
8033:
8004:
7962:
7926:
7153:
7089:
6784:
5980:
5458:
5161:
5048:
3214:
3119:
3012:
2968:
2713:
or other routing attacks that allow an attacker to take permanent control of the TCP connection.
2399:
2317:
908:
785:
538:
266:
2951:, where servers have to handle large numbers of short-lived TCP connections. In 2016, TCPCT was
2233:
for details. The TCP checksum is a weak check by modern standards and is normally paired with a
4421:"Designed for Change: End-to-End Arguments, Internet Innovation, and the Net Neutrality Debate"
3225:
or similar systems) are far simpler without a relatively complex protocol like TCP in the way.
8494:
8475:
8454:
6774:
6287:
5970:
5787:
5749:
5720:
5448:
5078:
5036:
5026:
4726:
4354:
3791:
3334:
3118:
TCP was originally designed for wired networks. Packet loss is considered to be the result of
3099:
3032:
2046:
Ordered data transfer: the destination host rearranges segments according to a sequence number
1758:
1444:
1213:
958:
616:
466:
242:
156:
136:
8491:
TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols
5648:
David Murray; Terry Koziniec; Sebastian Zander; Michael Dixon; Polychronis Koutsakis (2017).
3003:, and difficulties caused by intermediaries have hindered the deployment of TCP Fast Open in
8425:
8399:
8339:
8331:
8299:
8265:
8238:
8197:
8170:
8147:
8117:
8060:
8025:
7994:
7986:
7954:
7918:
7899:
7889:
7844:
7816:
7788:
7760:
7732:
7704:
7676:
7645:
7638:
Cheng, Yuchung; Cardwell, Neal; Dukkipati, Nandita; Jha, Priyaranjan, eds. (February 2021).
7617:
7589:
7585:
Moving Outdated TCP Extensions and TCP-Related Documents to Historic or Informational Status
7561:
7533:
7501:
7465:
7437:
7405:
7374:
7342:
7314:
7282:
7254:
7226:
7194:
7163:
7127:
7099:
7068:
7033:
7002:
6971:
6940:
6766:
6740:
6201:
6081:
5962:
5807:
Survey of Security Hardening Methods for Transmission Control Protocol (TCP) Implementations
5708:
5440:
5204:
5153:
4577:
4496:
4394:
3777:
A pseudo-header that mimics the IPv6 header for computation of the checksum is shown below.
3317:
2651:
2630:
2575:
2395:
2391:
2286:
When a receiver advertises a window size of 0, the sender stops sending data and starts its
1349:, ECN-nonce. ECN-nonce never gained widespread use and the RFC was moved to Historic status.
770:
731:
612:
226:
8376:
Sy, Erik; Mueller, Tobias; Burkert, Christian; Federrath, Hannes; Fischer, Mathias (2020).
8161:
5806:
940:
section. The segment header contains 10 mandatory fields, and an optional extension field (
8222:
7666:
6834:
5875:
4672:
4643:
4420:
4308:
4248:
4204:
4196:
3210:
3206:
3041:
2771:
2678:
and cryptographic puzzles, though SYN cookies come with their own set of vulnerabilities.
2451:(the sequence number immediately following the last sequence number of the block), with a
2359:
2344:
1783:
920:
829:
762:
608:
407:
195:
172:
98:
6166:
5709:
3736:
8530:
2213:
specifies that implementations must not use retransmitted segments when estimating RTT.
1235:
Padded with zeroes to a multiple of 32 bits, since Data Offset counts words of 4 octets.
8469:
5072:
3167:
3084:
2944:
2817:
2806:
2667:
2634:
2611:
2266:
2181:
2049:
Retransmission of lost packets: any cumulative stream not acknowledged is retransmitted
2023:
873:
813:
778:
766:
457:
160:
38:
8535:
8047:"Secure Communication Channel Establishment: TLS 1.3 (Over TCP Fast Open) versus QUIC"
2917:, which was not widely adopted due to security issues. TCP Fast Open was published as
8544:
8448:
8074:
8008:
7554:
Cheng, Yuchung; Chu, Jerry; Radhakrishnan, Sivasankar; Jain, Arvind (December 2014).
7523:
7058:
7023:
6859:
5742:
4718:
4581:
3199:
3184:
2906:
2890:
2348:
2052:
Error-free data transfer: corrupted packets are treated as lost and are retransmitted
2006:
1787:. During the lifetime of a TCP connection, the local end-point undergoes a series of
1722:
1553:
This may be used to align option fields on 32-bit boundaries for better performance.
877:
837:
168:
8311:
8037:
7966:
7930:
5984:
4568:
Cerf, Vinton G; Cain, Edward (October 1983). "The DoD internet architecture model".
1770:
is a multi-step handshake process that establishes a connection before entering the
8353:
7491:
7054:
6788:
5462:
5165:
3233:
3138:
3066:
3053:
3004:
2880:
2786:
2710:
2325:
821:
750:
376:
135:. It originated in the initial network implementation in which it complemented the
7939:
4465:
2541:
a 4-byte echo reply timestamp value (the most recent timestamp received from you).
2038:
The Transmission Control Protocol differs in several key features compared to the
2027:
and become unable to establish new TCP connections, even from other applications.
1828:
Waiting for a matching connection request after having sent a connection request.
1466:
for the TCP protocol (6) and the length of the TCP headers and payload (in bytes).
8155:. Next Generation Teletraffic and Wired/Wireless Advanced Networking (NEW2AN'04).
4311:
for the source and destination, each of which is made up of an address and a port
1894:
Waiting for a connection termination request acknowledgment from the remote TCP.
8520:
8413:
8174:
8143:
8130:
7873:
7857:
7838:
7829:
7810:
7801:
7782:
7773:
7754:
7745:
7726:
7717:
7698:
7689:
7670:
7658:
7639:
7630:
7611:
7602:
7583:
7574:
7555:
7546:
7527:
7514:
7495:
7478:
7459:
7450:
7431:
7418:
7399:
7395:
7387:
7368:
7355:
7336:
7327:
7308:
7304:
7295:
7276:
7267:
7248:
7239:
7220:
7216:
7207:
7188:
7184:
7176:
7157:
7149:
7140:
7121:
7112:
7093:
7081:
7062:
7046:
7027:
6930:
6827:
6214:
6195:
4961:
4619:
4243:
3092:
3080:
3036:
2675:
1701:
1672:
1367:
ECN-Echo has a dual role, depending on the value of the SYN flag. It indicates:
793:
636:
199:
111:
8335:
8065:
8046:
7990:
7613:
Services Provided by IETF Transport Protocols and Congestion Control Mechanisms
7015:
6996:
6984:
6965:
6953:
6934:
5418:
5192:
4490:
4478:
Vinton G. Cerf (October 1980). "Protocols for Interconnected Packet Networks".
3141:, Veno, and Santa Cruz, have been proposed to help solve the wireless problem.
2514:
the option in their SYN segments to enable window scaling in either direction.
903:
appears in both informal and formal usage, whereas in more precise terminology
735:
8253:
8134:
8121:
7487:
6992:
6961:
5966:
4517:
4398:
4238:
4233:
2952:
2821:
2679:
2626:
2507:
2422:
881:
524:
8404:
8377:
7120:
Mathis, Matt; Mahdavi, Jamshid; Floyd, Sally; Romanow, Allyn (October 1996).
6936:
Specification of Internet Transmission Control Program, December 1974 Version
5900:
5271:
Cheng, Yuchung; Cardwell, Neal; Dukkipati, Nandita; Jha, Priyaranjan (2017).
5040:
4351:
Location-Based Information Systems Developing Real-Time Tracking Applications
3278:(UDT) has better efficiency and fairness than TCP in networks that have high
2995:') can make decisions based on that metadata or even modify it, breaking the
8218:
8201:
7922:
7904:
6926:
6085:
5845:"Some insights about the recent TCP DoS (Denial of Service) vulnerabilities"
4554:
3316:
In other words, after appropriate padding, all 16-bit words are added using
3213:, and servers that serve simple requests from huge numbers of clients (e.g.
3134:
2992:
2984:
2980:
2884:
2872:
2671:
2171:{\displaystyle {\text{smoothed RTT}}+\max(G,4\times {\text{RTT variation}})}
742:
600:
93:
56:
6137:"How Hard Can It Be? Designing and Implementing a Deployable Multipath TCP"
5208:
2820:
the flow of traffic that is passing between a public network and a private
2295:
responds by sending another acknowledgment containing the new window size.
1400:
Push function. Asks to push the buffered data to the receiving application.
8429:
8270:
8257:
8243:
8226:
8029:
7958:
7894:
7877:
7526:; Eddy, Wesley M.; Blanton, Ethan; Zimmermann, Alexander (February 2015).
6770:
6135:
Raiciu; Paasch; Barre; Ford; Honda; Duchene; Bonaventure; Handley (2012).
5444:
5157:
5020:
4521:
3110:
Selective acknowledgment can provide a significant benefit to throughput;
2816:(NAT), typically uses dynamic port numbers, on the public-facing side, to
2269:
flow control protocol. In each TCP segment, the receiver specifies in the
703:
Specification of Internetwork Transmission Control Program TCP Version 3 (
699:
8288:
Paasch, Christoph; Bonaventure, Olivier (1 April 2014). "Multipath TCP".
8258:"The Eifel algorithm: making TCP robust against spurious retransmissions"
7610:
Fairhurst, Gorry; Trammell, Brian; Kuehlewind, Mirja, eds. (March 2017).
7529:
A Roadmap for Transmission Control Protocol (TCP) Specification Documents
4983:"Transmission Control Protocol (TCP) Parameters: TCP Option Kind Numbers"
2955:
in favor of TCP Fast Open. The status of the original RFC was changed to
2896:
2876:
2868:
2725:
the impersonated IP address is down, or bring it to that condition using
2246:
1451:
746:
690:
620:
604:
210:
60:
4746:
4744:
4742:
2774:
have available, and connections break if an endpoint's address changes.
2320:. TCP uses a number of mechanisms to achieve high performance and avoid
809:
the application's communication from the underlying networking details.
17:
8367:
8103:
8088:
6233:
5242:
RACK: a time-based fast loss detection for TCP draft-cheng-tcpm-rack-00
3171:
3075:
3071:
2602:
Normally, TCP waits for 200 ms for a full packet of data to send (
2591:
2238:
686:(IEN) documents describe the evolution of TCP into the modern version:
2867:, but many alternative algorithms have since been proposed (including
2805:(80). Registered ports are typically used by end-user applications as
1971:
694:
Specification of Internet Transmission Control Program TCP Version 2 (
659:. This resulted in a networking model that became known informally as
8344:
8227:"Improving round-trip time estimates in reliable transport protocols"
7999:
7849:
7821:
7793:
7765:
7737:
7709:
7681:
7650:
7622:
7594:
7566:
7538:
7506:
7470:
7442:
7410:
7379:
7347:
7319:
7287:
7259:
7231:
7199:
7168:
7132:
7104:
7073:
7038:
7007:
6976:
6945:
6206:
4794:
4792:
4790:
4501:
4321:
2948:
2790:
2766:
2687:
812:
TCP is used extensively by many internet applications, including the
487:
381:
280:
260:
140:
8303:
6060:"Improving datacenter performance and robustness with multipath TCP"
5650:"An Analysis of Changing Enterprise Network Traffic Characteristics"
5223:
4723:
Internetworking with TCP/IP: Principles, Protocols, and Architecture
8394:
8362:
8098:
8083:
7582:
Zimmermann, Alexander; Eddy, Wesley M.; Eggert, Lars (April 2016).
7278:
Robust Explicit Congestion Notification (ECN) Signaling with Nonces
7190:
An Extension to the Selective Acknowledgement (SACK) Option for TCP
6763:
Fourth International Conference on Information Technology (ITNG'07)
6229:
4349:
Labrador, Miguel A.; Perez, Alfredo J.; Wightman, Pedro M. (2010).
2729:. This is why the initial sequence number is now chosen at random.
2370:. This SRTT value is what is used as the round-trip time estimate.
2335:
Modern implementations of TCP contain four intertwined algorithms:
896:
into an Internet Protocol (IP) datagram, and exchanged with peers.
8116:. 2019 Network Traffic Measurement and Analysis Conference (TMA).
5955:
2013 IEEE PES Innovative Smart Grid Technologies Conference (ISGT)
5655:. The 23rd Asia-Pacific Conference on Communications (APCC 2017).
5547:
3000:
2914:
2798:
2758:
2276:
1999:
1995:
1978:
1970:
1883:
Waiting for a connection termination request from the local user.
1872:
Waiting for a connection termination request from the remote TCP.
1757:
508:
286:
7187:; Mahdavi, Jamshid; Mathis, Matt; Podolsky, Matthew (July 2000).
6477:
6414:
3696:{\displaystyle {\text{Total Length}}-{\text{IPv4 Header Length}}}
3305:, the method used to compute the checksum is defined as follows:
868:
While IP handles actual delivery of the data, TCP keeps track of
6110:
5770:"Security Assessment of the Transmission Control Protocol (TCP)"
4426:. Information Technology and Innovation Foundation. p. 11.
4325:
4253:
3763:
3302:
3222:
2802:
2794:
2716:
Impersonating a different IP address was not difficult prior to
2647:
1817:
Waiting for a connection request from any remote TCP end-point.
1459:
1455:
476:
471:
441:
391:
311:
276:
8210:
6731:
6729:
3133:
A number of alternative congestion control algorithms, such as
7433:
TCP Extensions for Multipath Operation with Multiple Addresses
5025:. Keith W. Ross (7th ed.). Harlow, England. p. 286.
4249:
Transport layer § Comparison of transport layer protocols
3813:
3356:
2277:
1693:
980:
296:
8515:
8378:"Enhanced Performance and Privacy for TLS over TCP Fast Open"
8114:
A Bottom-Up Investigation of the Transport-Layer Ossification
7458:
Mathis, Matt; Dukkipati, Nandita; Cheng, Yuchung (May 2013).
6058:
Raiciu; Barre; Pluntke; Greenhalgh; Wischik; Handley (2011).
5274:
RACK: a time-based fast loss recovery draft-ietf-tcpm-rack-02
4962:"Protection of BGP Sessions via the TCP MD5 Signature Option"
4596:"The TCP/IP Guide – TCP/IP Architecture and the TCP/IP Model"
2863:
The original TCP congestion avoidance algorithm was known as
139:(IP). Therefore, the entire suite is commonly referred to as
7398:; Allman, Mark; Chu, H.K. Jerry; Sargent, Matt (June 2011).
7222:
The Addition of Explicit Congestion Notification (ECN) to IP
6501:
1778:
closes the connection and releases all allocated resources.
213:
service that prioritizes time over reliability. TCP employs
4174:
The length of the TCP header and data (measured in octets).
27:
Principal protocol used to stream data across an IP network
6612:
6588:
6461:
6459:
6357:, 2. Current Uses of Transport Headers within the Network.
1766:
TCP protocol operations may be divided into three phases.
1696:
authentication (option 19) originally designed to protect
7275:
Spring, Neil; Weatherall, David; Ely, David (June 2003).
6828:"An Analysis of AIMD Algorithm with Decreasing Increases"
6576:
6450:
2097:. TCP incurs complexity due to retransmission ambiguity.
675:. Later, it became the part of, and synonymous with, the
5959:
Innovative Smart Grid Technologies (ISGT), 2013 IEEE PES
5191:
Leung, Ka-cheong; Li, Victor O.k.; Yang, Daiqin (2007).
3264:
TCP also has issues in high-bandwidth environments. The
2229:
To assure correctness a checksum field is included; see
663:, although formally it was variously referred to as the
194:, and error detection adds to reliability but lengthens
8281:"Head-of-Line Blocking in QUIC and HTTP/3: The Details"
5301:
5299:
4256:
a proxy-based modification of TCP for wireless networks
3023:
As TCP provides applications with the abstraction of a
1388:
Indicates that the Urgent pointer field is significant.
792:, or unpredictable network behavior, IP packets may be
615:
among network nodes. The authors had been working with
217:. However, there are vulnerabilities in TCP, including
7370:
Architectural Guidelines for Multipath TCP Development
7029:
Requirements for Internet Hosts – Communication Layers
5820:"Quick Blind TCP Connection Spoofing with SYN Cookies"
3766:, the method used to compute the checksum is changed:
633:
Specification of Internet Transmission Control Program
7367:; Barre, Sebastien; Iyengar, Janardhan (March 2011).
6560:
6558:
6438:
5197:
IEEE Transactions on Parallel and Distributed Systems
4555:"Final Report of the Stanford University TCP Project"
3739:
3709:
3679:
2184:
2133:
7812:
Long-Term Viability of Protocol Extension Mechanisms
5364:
5362:
4154:
The checksum is computed over the following fields:
3641:
The checksum is computed over the following fields:
3044:. If multiple independent higher-level messages are
2093:
retransmission is being acknowledged, the so-called
1121:
Acknowledgement Number (meaningful when ACK bit set)
805:
passes them to the receiving application. Thus, TCP
8416:(5 August 1986). "Why TCP timers don't work well".
6537:
5876:"Exploiting TCP and the Persist Timer Infiniteness"
4919:
4917:
4915:
4777:
4775:
4773:
4771:
3174:is another utility that can be used for debugging.
2860:(ECN), a congestion avoidance signaling mechanism.
2674:attack. Proposed solutions to this problem include
105:
92:
84:
66:
52:
44:
8149:Resolving Acknowledgment Ambiguity in non-SACK TCP
7878:"On estimating end-to-end network path properties"
6696:
6684:
6197:Cryptographic Protection of TCP Streams (tcpcrypt)
5741:
3781:TCP pseudo-header for checksum computation (IPv6)
3745:
3725:
3695:
3324:TCP pseudo-header for checksum computation (IPv4)
3111:
2290:. The persist timer is used to protect TCP from a
2190:
2170:
1355:Contains 8 1-bit flags (control bits) as follows:
784:At the lower levels of the protocol stack, due to
7697:Trammell, Brian; Kuehlewind, Mirja (April 2019).
7672:Internet Protocol, Version 6 (IPv6) Specification
6826:Yunhong Gu, Xinwei Hong, and Robert L. Grossman.
6021:
2545:TCP timestamps are used in an algorithm known as
2447:(the first sequence number of the block) and the
8471:TCP/IP Illustrated, Volume 2: The Implementation
7940:"On making TCP more robust to packet reordering"
7494:(September 2014). Scheffenegger, Richard (ed.).
6393:, 2.3. Multi-party Interactions and Middleboxes.
5792:: CS1 maint: bot: original URL status unknown (
4813:, 3.8.5 The Communication of Urgent Information.
4378:A Protocol for Packet Network Intercommunication
2142:
2127:behavior. Typically, the initial timer value is
1963:and a full-duplex communication is established.
860:. This requires the receiver to respond with an
7809:Thomson, Martin; Pauly, Tommy (December 2021).
5124:, 4.2. Monotonically Increasing Packet Numbers.
1332:Specifies the size of the TCP header in 32-bit
1233:If present, Data Offset will be greater than 5.
7781:Fairhurst, Gorry; Perkins, Colin (July 2021).
5022:Computer networking : a top-down approach
2913:. It is similar to an earlier proposal called
2538:a 4-byte sender timestamp value (my timestamp)
1613:
1478:The length of this field is determined by the
8382:Proceedings on Privacy Enhancing Technologies
8099:"QUIC as a solution to protocol ossification"
8084:"Checksum offloads and protocol ossification"
7938:Blanton, Ethan; Allman, Mark (January 2002).
7641:The RACK-TLP Loss Detection Algorithm for TCP
7247:Ludwig, Reiner; Meyer, Michael (April 2003).
6672:
6660:
6648:
6636:
6426:
6111:"MultiPath TCP – Linux Kernel implementation"
5775:. Archived from the original on March 6, 2009
5380:
5317:
5109:
4725:. Vol. 1 (5th ed.). Prentice Hall.
3232:(UDP) is used. This provides the application
3190:For historical and performance reasons, most
3103:
1774:phase. After data transfer is completed, the
575:
8:
8468:Stevens, W. Richard; Wright, Gary R (1994).
7753:Iyengar, Jana; Swett, Ian, eds. (May 2021).
6708:
5392:
5341:
4644:"Robert E Kahn – A.M. Turing Award Laureate"
4273:
4271:
3272:(ATM) can avoid TCP's retransmits overhead.
2241:, below both TCP and IP, such as is used in
1370:If the SYN flag is set (1), the TCP peer is
1220:Urgent Pointer (meaningful when URG bit set)
858:positive acknowledgment with re-transmission
840:. For such applications, protocols like the
198:. Applications that do not require reliable
32:
8450:TCP/IP Illustrated, Volume 1: The Protocols
8323:IEEE Communications Surveys & Tutorials
7978:IEEE Communications Surveys & Tutorials
6369:, 3. Research, Development, and Deployment.
5353:
4837:, 3.4.1. Initial Sequence Number Selection.
4374:Vinton G. Cerf; Robert E. Kahn (May 1974).
3654:The destination address in the IPv4 header.
2947:. TCPCT was designed due to necessities of
2443:, where each SACK block is conveyed by the
8516:Oral history interview with Robert E. Kahn
7756:QUIC Loss Detection and Congestion Control
6465:
5683:"On the implementation of TCP urgent data"
5329:
5053:: CS1 maint: location missing publisher (
4673:"Vinton Cerf – A.M. Turing Award Laureate"
4289:Windows size units are, by default, bytes.
3065:(TLS) requires a handshake of its own for
2468:
582:
568:
231:
31:
8418:ACM SIGCOMM Computer Communication Review
8403:
8393:
8343:
8269:
8262:ACM SIGCOMM Computer Communication Review
8242:
8191:
8064:
8018:ACM SIGCOMM Computer Communication Review
7998:
7947:ACM SIGCOMM Computer Communication Review
7903:
7893:
7882:ACM SIGCOMM Computer Communication Review
7848:
7820:
7792:
7764:
7736:
7708:
7680:
7649:
7621:
7593:
7565:
7537:
7505:
7469:
7441:
7409:
7378:
7346:
7318:
7286:
7258:
7230:
7198:
7167:
7131:
7103:
7095:Defending Against Sequence Number Attacks
7072:
7037:
7006:
6975:
6944:
6205:
6075:
6064:ACM SIGCOMM Computer Communication Review
5744:TCP/IP Illustrated. Vol. 1, The protocols
5434:
5427:ACM SIGCOMM Computer Communication Review
5147:
5136:ACM SIGCOMM Computer Communication Review
4500:
4480:ACM SIGCOMM Computer Communication Review
3738:
3718:
3710:
3708:
3688:
3680:
3678:
2757:A TCP connection is identified by a four-
2230:
2183:
2160:
2134:
2132:
1647:Timestamp and echo of previous timestamp
1571:
8112:Edeline, Korian; Donnet, Benoit (2019).
6230:"TCP Fast Open: expediting web services"
5624:Technet – Windows Server 2012 Essentials
5419:"When the CRC and TCP checksum disagree"
4713:
4711:
4709:
4707:
4705:
4703:
4701:
4699:
4697:
3779:
3726:{\displaystyle {\text{200}}-{\text{20}}}
3322:
3228:Generally, where TCP is unsuitable, the
2431:To alleviate this issue TCP employs the
1793:
1504:
946:
730:TCP was standardized in January 1980 as
619:to incorporate concepts from the French
8160:Gurtov, Andrei; Ludwig, Reiner (2003).
7430:; Bonaventure, Olivier (January 2013).
7335:Simpson, William Allen (January 2011).
6600:
5748:. Addison-Wesley. pp. Chapter 20.
5548:"TCP window scaling and broken routers"
4341:
4267:
3183:media, real-time multiplayer games and
2409:but, strictly speaking, the MSS is not
848:(UDP) are usually recommended instead.
800:. TCP detects these problems, requests
753:for their foundational work on TCP/IP.
523:
456:
406:
241:
234:
8551:Computer-related introductions in 1974
8163:Responding to Spurious Timeouts in TCP
6549:
6528:, Bonus: Transport Congestion Control.
6489:
5785:
5046:
4328:is used as a transport instead of TCP.
4129:
3958:
3921:
3616:
1692:For message authentication, replacing
1262:
1231:
7250:The Eifel Detection Algorithm for TCP
5305:
4523:Comments on Internet Protocol and TCP
3648:The source address in the IPv4 header
2358:(RTO) that is based on the estimated
1983:Detailed TCP close() sequence diagram
611:protocol for sharing resources using
7:
8231:ACM Transactions on Computer Systems
8129:Ghedini, Alessandro (26 July 2018).
8097:Corbet, Jonathan (29 January 2018).
8082:Corbet, Jonathan (8 December 2015).
7837:Eddy, Wesley M., ed. (August 2022).
7700:The Wire Image of a Network Protocol
7401:Computing TCP's Retransmission Timer
7123:TCP Selective Acknowledgment Options
6846:
6720:
6624:
6564:
6525:
6513:
6402:
6390:
6378:
6366:
6354:
6342:
6330:
6318:
6306:
6269:
6257:
6045:
6033:
6009:
5997:
5740:Richard W. Stevens (November 2011).
5575:
5534:
5522:
5510:
5498:
5486:
5404:
5368:
5290:
5258:
5178:
5121:
5097:
5006:
4947:
4935:
4923:
4894:
4882:
4870:
4834:
4822:
4810:
4798:
4781:
4750:
4278:
4177:Zeroes: 24 bits; Zeroes == 0
3249:Stream Control Transmission Protocol
2991:—as any intermediate node (a '
2918:
2853:
2849:
2845:
2841:
2717:
2527:
2503:
2479:
2473:Stream Control Transmission Protocol
2461:
2436:
2405:MSS announcement may also be called
2210:
1609:Selective Acknowledgement permitted
1346:
932:A TCP segment consists of a segment
8361:Rybczyńska, Marta (13 March 2020).
8211:"HTTP/2 Frequently Asked Questions"
8184:Are TCP extensions middlebox-proof?
7840:Transmission Control Protocol (TCP)
7497:TCP Extensions for High Performance
7461:Proportional Rate Reduction for TCP
7307:; Blanton, Ethan (September 2009).
7064:TCP Extensions for High Performance
6737:"TCP performance over CDMA2000 RLP"
6284:High-performance browser networking
5662:from the original on 3 October 2017
5225:Investigate reordering in Linux TCP
4906:
4762:
4451:
4433:from the original on 29 August 2019
4419:Bennett, Richard (September 2009).
4387:IEEE Transactions on Communications
3657:Zeroes: 8 bits; Zeroes == 0
2837:
2833:
2779:Internet Assigned Numbers Authority
2547:Protection Against Wrapped Sequence
1736:Internet Assigned Numbers Authority
1689:TCP Authentication Option (TCP-AO)
1651:
1592:
1438:
628:
6933:; Sunshine, Carl (December 1974).
6286:(1. ed.). Beijing: O'Reilly.
5931:"Simple Active Attack Against TCP"
5077:(Fourth ed.). Prentice Hall.
3266:TCP congestion avoidance algorithm
3112:Bruyeron, Hemon & Zhang (1998)
2836:in 1974, and the v4 specification
2376:TCP congestion avoidance algorithm
1317:Acknowledgment Number: 32 bits
623:project into the new network. The
171:rely on TCP, which is part of the
25:
7669:; Hinden, Robert M. (July 2017).
7219:; Black, David (September 2001).
5599:from the original on 5 March 2016
5228:(MSc thesis). University of Oslo.
5100:, 4.2.2.13. Closing a Connection.
4530:from the original on May 16, 2019
4464:Russell, Andrew Lawrence (2008).
4164:Destination address: 128 bits
3286:Multipurpose Transaction Protocol
2574:. This marks the transmission as
2456:sequence numbers 2,000 to 2,999.
1630:Selective ACKnowledgement (SACK)
1434:
1339:Reserved (Rsrvd): 4 bits
6697:Bruyeron, Hemon & Zhang 1998
6685:Bruyeron, Hemon & Zhang 1998
5681:Gont, Fernando (November 2008).
5009:, 3.3.2. State Machine Overview.
4620:"Internet Experiment Note Index"
4553:Cerf, Vinton G. (1 April 1980).
3651:Destination address: 32 bits
3276:UDP-based Data Transfer Protocol
2858:Explicit Congestion Notification
2753:List of TCP and UDP port numbers
2534:There are two timestamp fields:
2316:The final main aspect of TCP is
1994:Some operating systems, such as
1614:§ Selective acknowledgments
1480:
206:(UDP) instead, which provides a
8279:Marx, Robin (3 December 2020).
7728:Transport Protocol Path Signals
7725:Hardie, Ted, ed. (April 2019).
7338:TCP Cookie Transactions (TCPCT)
6895:from the original on 2016-10-22
6866:from the original on 2017-01-31
6540:, Why just one TCP connection?.
6240:from the original on 2014-08-03
6177:from the original on 2020-02-23
6147:from the original on 2013-06-03
6117:from the original on 2013-03-27
5911:from the original on 2017-09-28
5882:from the original on 2010-01-22
5826:from the original on 2014-02-22
5689:from the original on 2019-05-16
5558:from the original on 2020-03-31
5469:from the original on 2008-05-05
4989:from the original on 2017-10-02
4960:Heffernan, Andy (August 1998).
4683:from the original on 2021-10-11
4654:from the original on 2019-07-13
4161:The address in the IPv6 header.
2840:, published in September 1981.
2433:selective acknowledgment (SACK)
2079:TCP sequence prediction attacks
1762:A Simplified TCP State Diagram.
665:DoD internet architecture model
6228:Michael Kerrisk (2012-08-01).
4186:The protocol value for TCP: 6.
3666:The protocol value for TCP: 6.
3098:TCP throughput is affected by
2761:of the source address, source
2704:TCP sequence prediction attack
2354:In addition, senders employ a
2165:
2145:
1297:Identifies the receiving port.
1:
8556:Transmission Control Protocol
6998:Transmission Control Protocol
6022:Paasch & Bonaventure 2014
5818:Jakob Lell (13 August 2013).
1749:The payload of the TCP packet
1496:) in the TCP options section.
1294:Destination Port: 16 bits
653:Transmission Control Protocol
635:), was written by Vint Cerf,
121:Transmission Control Protocol
33:Transmission Control Protocol
8489:Stevens, W. Richard (1996).
7426:Ford, Alan; Raiciu, Costin;
7363:Ford, Alan; Raiciu, Costin;
4582:10.1016/0376-5075(83)90042-9
4158:Source address: 128 bits
3088:non-interactive key exchange
2469:§ TCP segment structure
2118:Timeout-based retransmission
1927:No connection state at all.
1300:Sequence Number: 32 bits
1291:Identifies the sending port.
842:Real-time Transport Protocol
215:network congestion avoidance
88:Transmission Control Program
8175:10.1109/INFCOM.2003.1209251
7061:; Borman, Dave (May 1992).
6516:, HOL blocking in HTTP/1.1.
6167:"Multipath TCP Deployments"
5715:. Morgan Kaufmann. p.
5626:. Microsoft. Archived from
5620:"TCP timestamp is disabled"
4938:, 2. Sack-Permitted Option.
4320:As of the latest standard,
4224:Micro-bursting (networking)
3645:Source address: 32 bits
3318:ones' complement arithmetic
3104:Blanton & Allman (2002)
2975:Wire image and ossification
2926:Proportional Rate Reduction
2814:Network Address Translation
2526:TCP timestamps, defined in
2435:option, defined in 1996 in
2231:§ Checksum computation
2203:denial of service attackers
2101:Dupack-based retransmission
1572:§ Maximum segment size
1469:Urgent Pointer: 16 bits
1329: (DOffset): 4 bits
627:of the resulting protocol,
72:; 50 years ago
8577:
8453:. Addison-Wesley Pub. Co.
8336:10.1109/COMST.2016.2626780
8066:10.1007/s00145-021-09389-w
7991:10.1109/COMST.2014.2375213
6709:Bhat, Rizk & Zink 2017
5929:Laurent Joncheray (1995).
5593:Linux Kernel Documentation
5280:. IETF100. Yokohama: IETF.
5222:Johannessen, Mads (2015).
4229:TCP global synchronization
4116:
4103:
4098:
4085:
4057:
4044:
4031:
4026:
4008:
3995:
3603:
3590:
3585:
3572:
3544:
3531:
3518:
3513:
3500:
3477:
3464:
3270:Asynchronous Transfer Mode
3255:Venturi Transport Protocol
2750:
2701:
2633:; it is controlled by the
2490:
2420:
2328:allocation between flows.
2309:
2108:selective acknowledgements
1218:
1211:
1198:
1119:
1106:
1093:
1088:
179:often runs on top of TCP.
8561:Transport layer protocols
8291:Communications of the ACM
8209:IETF HTTP Working Group.
8122:10.23919/TMA.2019.8784690
6673:Blanton & Allman 2002
6661:Blanton & Allman 2002
6649:Blanton & Allman 2002
6637:Blanton & Allman 2002
6427:Edeline & Donnet 2019
6165:Bonaventure; Seo (2016).
5967:10.1109/ISGT.2013.6497785
5417:Stone; Partridge (2000).
5381:Karn & Partridge 1991
5318:Karn & Partridge 1991
5248:. IETF94. Yokohama: IETF.
5110:Karn & Partridge 1991
5019:Kurose, James F. (2017).
4399:10.1109/tcom.1974.1092259
4080:
4075:
4070:
4013:
3804:
3801:
3798:
3795:
3567:
3562:
3557:
3495:
3490:
3347:
3344:
3341:
3338:
2727:denial-of-service attacks
2417:Selective acknowledgments
2396:maximum transmission unit
2005:A connection can be in a
1137:
1132:
971:
968:
965:
962:
844:(RTP) operating over the
826:peer-to-peer file sharing
775:maximum transmission unit
37:
8405:10.2478/popets-2020-0027
6478:Papastergiou et al. 2017
6415:Papastergiou et al. 2017
5707:Peterson, Larry (2003).
5393:Allman & Paxson 1999
5342:Gurtov & Ludwig 2003
4950:, 3. Sack Option Format.
4825:, 3.4. Sequence Numbers.
4753:, 2.2. Key TCP Concepts.
4541:layered and modular way.
4307:Equivalently, a pair of
4219:Fault-tolerant messaging
4015:Next header (= Protocol)
3239:forward error correction
3063:Transport Layer Security
2963:Hardware implementations
2856:was written to describe
2095:retransmission ambiguity
1934:Connection establishment
1768:Connection establishment
1288:Source Port: 16 bits
684:Internet Experiment Note
8363:"A QUIC look at HTTP/3"
8202:10.1145/2535828.2535830
7923:10.1145/3083165.3083175
6905:network hardware later.
6860:"Wireshark: Offloading"
6723:, 4.5. More ACK Ranges.
6538:IETF HTTP Working Group
6282:Grigorik, Ilya (2013).
6086:10.1145/2043164.2018467
5354:Gurtov & Floyd 2004
5239:Cheng, Yuchung (2015).
4203:This feature may cause
4183:Next header: 8 bits
4171:TCP length: 32 bits
3669:TCP length: 16 bits
3280:bandwidth-delay product
3009:operating system kernel
2941:TCP Cookie Transactions
2666:and repeatedly sending
2500:TCP window scale option
2493:TCP window scale option
2257:TCP uses an end-to-end
1700:sessions. See RFC
1419:Last packet from sender
677:Internet Protocol Suite
236:Internet protocol suite
133:Internet protocol suite
7310:TCP Congestion Control
7159:TCP Congestion Control
7026:, ed. (October 1989).
6889:"Wireshark: Checksums"
5330:Ludwig & Katz 2000
5209:10.1109/TPDS.2007.1011
4474:Inventing the Internet
4059:Acknowledgement number
3775:
3747:
3727:
3697:
3546:Acknowledgement number
3314:
3230:User Datagram Protocol
3196:Fibre Channel Protocol
3011:or in hardware with a
2924:Proposed in May 2013,
2356:retransmission timeout
2332:congestion avoidance.
2312:TCP congestion control
2283:
2192:
2172:
2040:User Datagram Protocol
1984:
1976:
1975:Connection termination
1967:Connection termination
1776:connection termination
1763:
1718:Multipath TCP (MPTCP)
1624:N (10, 18, 26, or 34)
1460:destination IP address
930:
846:User Datagram Protocol
818:File Transfer Protocol
798:delivered out of order
204:User Datagram Protocol
8521:IANA Port Assignments
8430:10.1145/1013812.18216
8271:10.1145/505688.505692
8244:10.1145/118544.118549
8052:Journal of Cryptology
8030:10.1145/279345.279350
7959:10.1145/510726.510728
7895:10.1145/316194.316230
7215:Ramakrishnan, K. K.;
6920:Requests for Comments
6771:10.1109/ITNG.2007.190
5685:. 73rd IETF meeting.
5445:10.1145/347059.347561
5158:10.1145/263932.264023
4801:, 3.1. Header Format.
3768:
3758:TCP checksum for IPv6
3748:
3728:
3698:
3307:
3297:TCP checksum for IPv4
3192:storage area networks
3033:packets are reordered
3029:head-of-line blocking
3027:, it can suffer from
2989:protocol ossification
2848:. Among this list is
2598:Forcing data delivery
2300:silly window syndrome
2280:
2193:
2173:
2074:out-of-order delivery
2064:Reliable transmission
1982:
1974:
1761:
1652:§ TCP timestamps
1593:§ Window scaling
1567:Maximum segment size
1439:§ Window scaling
925:
888:TCP segment structure
643:, as a shorthand for
175:of the TCP/IP suite.
165:remote administration
127:) is one of the main
8186:. HotMiddlebox '13.
5901:"PUSH and ACK Flood"
5429:. pp. 309–319.
5069:Tanenbaum, Andrew S.
4852:datatracker.ietf.org
3737:
3707:
3677:
3663:Protocol: 8 bits
3292:Checksum computation
3259:proprietary protocol
3257:(VTP) is a patented
3095:used it by default.
3025:reliable byte stream
2997:end-to-end principle
2936:Deprecated proposals
2698:Connection hijacking
2694:are other variants.
2621:The RFC defines the
2388:maximum segment size
2382:Maximum segment size
2368:Jacobson's algorithm
2341:congestion avoidance
2182:
2131:
1668:User Timeout Option
1534:End of options list
1406:Reset the connection
853:reliable byte stream
223:connection hijacking
202:service may use the
8526:IANA TCP Parameters
8445:Stevens, W. Richard
7667:Deering, Stephen E.
7154:Stevens, W. Richard
7090:Bellovin, Steven M.
6502:Briscoe et al. 2016
6451:Hesmans et al. 2013
5537:, 4.4. No Reneging.
4277:Added to header by
3960:Destination address
3782:
3762:When TCP runs over
3746:{\displaystyle 180}
3733:, which results in
3479:Destination address
3325:
3301:When TCP runs over
2969:TCP offload engines
2692:PUSH and ACK floods
2668:purposely assembled
2449:Right Edge of Block
2322:congestive collapse
2237:integrity check at
2125:exponential backoff
1796:
1435:§ Flow control
1426:Window: 16 bits
949:
915:to the IP PDU, and
773:to accommodate the
184:connection-oriented
34:
8493:. Addison-Wesley.
8474:. Addison-Wesley.
8254:Katz, Randy Howard
8131:"The Road to QUIC"
7917:. pp. 13–18.
6995:(September 1981).
6964:(September 1981).
6833:2016-03-05 at the
6803:"TCP Acceleration"
6765:. pp. 31–35.
6439:Raiciu et al. 2012
6429:, p. 175-176.
5383:, p. 370-372.
4624:www.rfc-editor.org
4600:www.tcpipguide.com
4520:(15 August 1977),
3780:
3743:
3723:
3693:
3690:IPv4 Header Length
3323:
3120:network congestion
3013:TCP offload engine
2664:spoofed IP address
2445:Left Edge of Block
2400:path MTU discovery
2318:congestion control
2306:Congestion control
2284:
2188:
2168:
1985:
1977:
1924:Server and client
1902:Server and client
1891:Server and client
1880:Server and client
1869:Server and client
1858:Server and client
1847:Server and client
1795:TCP socket states
1794:
1764:
1754:Protocol operation
948:TCP header format
947:
909:protocol data unit
907:refers to the TCP
786:network congestion
8500:978-0-201-63495-2
8481:978-0-201-63354-2
8460:978-0-201-63346-7
8225:(November 1991).
8146:(February 2004).
6967:Internet Protocol
6780:978-0-7695-2776-5
6504:, pp. 29–30.
5976:978-1-4673-4896-6
5755:978-0-201-63346-7
5726:978-1-55860-832-0
5711:Computer Networks
5084:978-0-13-066102-9
5074:Computer Networks
5032:978-0-13-359414-0
4732:978-0-13-187671-2
4719:Comer, Douglas E.
4570:Computer Networks
4408:on March 4, 2016.
4191:Checksum offload
4152:
4151:
3721:
3713:
3691:
3683:
3639:
3638:
3100:packet reordering
2799:HTTP over SSL/TLS
2720:when the initial
2658:Denial of service
2604:Nagle's Algorithm
2200:man-in-the-middle
2191:{\displaystyle G}
2163:
2137:
1931:
1930:
1913:Server or client
1729:
1728:
1456:source IP address
1352:Flags: 8 bits
1303:Has a dual role:
1285:
1284:
796:, duplicated, or
657:Internet Protocol
595:Historical origin
592:
591:
243:Application layer
219:denial of service
137:Internet Protocol
117:
116:
16:(Redirected from
8568:
8536:Checksum example
8504:
8485:
8464:
8433:
8409:
8407:
8397:
8372:
8357:
8347:
8315:
8284:
8275:
8273:
8256:(January 2000).
8252:Ludwig, Reiner;
8248:
8246:
8223:Partridge, Craig
8214:
8205:
8195:
8178:
8168:
8156:
8154:
8142:Gurtov, Andrei;
8138:
8125:
8108:
8093:
8078:
8068:
8041:
8012:
8002:
7985:(3): 2149–2196.
7970:
7944:
7934:
7909:
7907:
7905:2060/20000004338
7897:
7876:(October 1999).
7861:
7852:
7850:10.17487/RFC9293
7833:
7824:
7822:10.17487/RFC9170
7805:
7796:
7794:10.17487/RFC9065
7777:
7768:
7766:10.17487/RFC9002
7749:
7740:
7738:10.17487/RFC8558
7721:
7712:
7710:10.17487/RFC8546
7693:
7684:
7682:10.17487/RFC8200
7662:
7653:
7651:10.17487/RFC8985
7634:
7625:
7623:10.17487/RFC8095
7606:
7597:
7595:10.17487/RFC7805
7578:
7569:
7567:10.17487/RFC7413
7550:
7541:
7539:10.17487/RFC7414
7518:
7509:
7507:10.17487/RFC7323
7482:
7473:
7471:10.17487/RFC6937
7454:
7445:
7443:10.17487/RFC6824
7422:
7413:
7411:10.17487/RFC6298
7391:
7382:
7380:10.17487/RFC6182
7359:
7350:
7348:10.17487/RFC6013
7331:
7322:
7320:10.17487/RFC5681
7299:
7290:
7288:10.17487/RFC3540
7271:
7262:
7260:10.17487/RFC3522
7243:
7234:
7232:10.17487/RFC3168
7211:
7202:
7200:10.17487/RFC2883
7180:
7171:
7169:10.17487/RFC2581
7144:
7135:
7133:10.17487/RFC2018
7116:
7107:
7105:10.17487/RFC1948
7085:
7076:
7074:10.17487/RFC1323
7050:
7041:
7039:10.17487/RFC1122
7019:
7010:
7008:10.17487/RFC0793
6988:
6979:
6977:10.17487/RFC0791
6957:
6948:
6946:10.17487/RFC0675
6908:
6907:
6901:
6900:
6885:
6879:
6878:
6872:
6871:
6856:
6850:
6844:
6838:
6824:
6818:
6817:
6815:
6814:
6805:. Archived from
6799:
6793:
6792:
6758:
6752:
6751:
6749:
6748:
6739:. Archived from
6733:
6724:
6718:
6712:
6706:
6700:
6694:
6688:
6682:
6676:
6670:
6664:
6658:
6652:
6646:
6640:
6634:
6628:
6622:
6616:
6613:Chen et al. 2021
6610:
6604:
6598:
6592:
6589:Chen et al. 2021
6586:
6580:
6574:
6568:
6562:
6553:
6547:
6541:
6535:
6529:
6523:
6517:
6511:
6505:
6499:
6493:
6487:
6481:
6475:
6469:
6463:
6454:
6448:
6442:
6436:
6430:
6424:
6418:
6412:
6406:
6400:
6394:
6388:
6382:
6376:
6370:
6364:
6358:
6352:
6346:
6340:
6334:
6328:
6322:
6316:
6310:
6304:
6298:
6297:
6279:
6273:
6267:
6261:
6255:
6249:
6248:
6246:
6245:
6225:
6219:
6218:
6209:
6207:10.17487/RFC8548
6192:
6186:
6185:
6183:
6182:
6162:
6156:
6155:
6153:
6152:
6132:
6126:
6125:
6123:
6122:
6107:
6101:
6100:
6098:
6097:
6088:. Archived from
6079:
6055:
6049:
6043:
6037:
6031:
6025:
6019:
6013:
6007:
6001:
5995:
5989:
5988:
5961:. pp. 1–6.
5950:
5944:
5943:
5941:
5940:
5935:
5926:
5920:
5919:
5917:
5916:
5897:
5891:
5890:
5888:
5887:
5872:
5866:
5865:
5863:
5862:
5856:
5850:. Archived from
5849:
5841:
5835:
5834:
5832:
5831:
5815:
5809:
5804:
5798:
5797:
5791:
5783:
5781:
5780:
5774:
5766:
5760:
5759:
5747:
5737:
5731:
5730:
5714:
5704:
5698:
5697:
5695:
5694:
5678:
5672:
5671:
5669:
5667:
5661:
5654:
5645:
5639:
5638:
5636:
5635:
5615:
5609:
5608:
5606:
5604:
5585:
5579:
5573:
5567:
5566:
5564:
5563:
5544:
5538:
5532:
5526:
5520:
5514:
5508:
5502:
5496:
5490:
5484:
5478:
5477:
5475:
5474:
5438:
5414:
5408:
5402:
5396:
5390:
5384:
5378:
5372:
5366:
5357:
5351:
5345:
5339:
5333:
5332:, p. 31-33.
5327:
5321:
5315:
5309:
5303:
5294:
5288:
5282:
5281:
5279:
5268:
5262:
5256:
5250:
5249:
5247:
5236:
5230:
5229:
5219:
5213:
5212:
5188:
5182:
5176:
5170:
5169:
5151:
5131:
5125:
5119:
5113:
5107:
5101:
5095:
5089:
5088:
5065:
5059:
5058:
5052:
5044:
5016:
5010:
5004:
4998:
4997:
4995:
4994:
4979:
4973:
4972:
4970:
4969:
4957:
4951:
4945:
4939:
4933:
4927:
4921:
4910:
4904:
4898:
4897:, p. 18-19.
4892:
4886:
4880:
4874:
4873:, p. 13-14.
4868:
4862:
4861:
4859:
4858:
4844:
4838:
4832:
4826:
4820:
4814:
4808:
4802:
4796:
4785:
4779:
4766:
4760:
4754:
4748:
4737:
4736:
4715:
4692:
4691:
4689:
4688:
4677:amturing.acm.org
4669:
4663:
4662:
4660:
4659:
4648:amturing.acm.org
4640:
4634:
4633:
4631:
4630:
4616:
4610:
4609:
4607:
4606:
4592:
4586:
4585:
4565:
4559:
4558:
4550:
4544:
4543:
4537:
4535:
4514:
4508:
4506:
4504:
4502:10.17487/RFC0760
4487:
4471:
4461:
4455:
4449:
4443:
4442:
4440:
4438:
4432:
4425:
4416:
4410:
4409:
4407:
4401:. Archived from
4384:
4371:
4365:
4364:
4346:
4329:
4318:
4312:
4305:
4299:
4296:
4290:
4287:
4281:
4275:
4205:packet analyzers
4033:Destination port
3783:
3752:
3750:
3749:
3744:
3732:
3730:
3729:
3724:
3722:
3719:
3714:
3711:
3702:
3700:
3699:
3694:
3692:
3689:
3684:
3681:
3520:Destination port
3326:
3207:embedded systems
2772:multihomed hosts
2686:was analyzed in
2652:TCP reset attack
2631:Berkeley sockets
2624:
2617:
2576:out-of-band data
2566:Out-of-band data
2502:, as defined in
2392:IP fragmentation
2364:Karn's Algorithm
2215:Karn's algorithm
2197:
2195:
2194:
2189:
2177:
2175:
2174:
2169:
2164:
2161:
2138:
2135:
1797:
1745:
1744:
1627:BBBB, EEEE, ...
1505:
1495:
1494:0x02 0x04 0x05B4
1491:
1429:The size of the
1328:
1327:
1195:
1188:
1181:
1174:
1167:
1160:
1153:
1146:
1095:Destination Port
950:
771:IP fragmentation
757:Network function
613:packet switching
584:
577:
570:
232:
225:, TCP veto, and
80:
78:
73:
35:
21:
8576:
8575:
8571:
8570:
8569:
8567:
8566:
8565:
8541:
8540:
8512:
8501:
8488:
8482:
8467:
8461:
8443:
8440:
8438:Further reading
8412:
8375:
8360:
8318:
8304:10.1145/2578901
8287:
8278:
8251:
8217:
8208:
8193:10.1.1.679.6364
8181:
8166:
8159:
8152:
8141:
8128:
8111:
8096:
8081:
8044:
8015:
7973:
7942:
7937:
7912:
7871:
7868:
7866:Other documents
7836:
7808:
7780:
7752:
7724:
7696:
7665:
7637:
7609:
7581:
7553:
7521:
7486:Borman, David;
7485:
7457:
7425:
7394:
7362:
7334:
7302:
7274:
7246:
7214:
7183:
7147:
7119:
7088:
7053:
7022:
6991:
6960:
6925:
6922:
6917:
6912:
6911:
6898:
6896:
6887:
6886:
6882:
6869:
6867:
6858:
6857:
6853:
6845:
6841:
6835:Wayback Machine
6825:
6821:
6812:
6810:
6801:
6800:
6796:
6781:
6760:
6759:
6755:
6746:
6744:
6735:
6734:
6727:
6719:
6715:
6707:
6703:
6695:
6691:
6683:
6679:
6671:
6667:
6659:
6655:
6647:
6643:
6635:
6631:
6623:
6619:
6611:
6607:
6599:
6595:
6587:
6583:
6575:
6571:
6563:
6556:
6548:
6544:
6536:
6532:
6524:
6520:
6512:
6508:
6500:
6496:
6488:
6484:
6476:
6472:
6466:Rybczyńska 2020
6464:
6457:
6449:
6445:
6437:
6433:
6425:
6421:
6413:
6409:
6401:
6397:
6389:
6385:
6377:
6373:
6365:
6361:
6353:
6349:
6341:
6337:
6329:
6325:
6317:
6313:
6305:
6301:
6294:
6281:
6280:
6276:
6268:
6264:
6256:
6252:
6243:
6241:
6227:
6226:
6222:
6194:
6193:
6189:
6180:
6178:
6164:
6163:
6159:
6150:
6148:
6134:
6133:
6129:
6120:
6118:
6109:
6108:
6104:
6095:
6093:
6077:10.1.1.306.3863
6057:
6056:
6052:
6044:
6040:
6032:
6028:
6020:
6016:
6008:
6004:
5996:
5992:
5977:
5952:
5951:
5947:
5938:
5936:
5933:
5928:
5927:
5923:
5914:
5912:
5899:
5898:
5894:
5885:
5883:
5874:
5873:
5869:
5860:
5858:
5854:
5847:
5843:
5842:
5838:
5829:
5827:
5817:
5816:
5812:
5805:
5801:
5784:
5778:
5776:
5772:
5768:
5767:
5763:
5756:
5739:
5738:
5734:
5727:
5706:
5705:
5701:
5692:
5690:
5680:
5679:
5675:
5665:
5663:
5659:
5652:
5647:
5646:
5642:
5633:
5631:
5617:
5616:
5612:
5602:
5600:
5587:
5586:
5582:
5574:
5570:
5561:
5559:
5546:
5545:
5541:
5533:
5529:
5521:
5517:
5509:
5505:
5497:
5493:
5485:
5481:
5472:
5470:
5455:
5416:
5415:
5411:
5403:
5399:
5391:
5387:
5379:
5375:
5367:
5360:
5352:
5348:
5340:
5336:
5328:
5324:
5316:
5312:
5304:
5297:
5289:
5285:
5277:
5270:
5269:
5265:
5257:
5253:
5245:
5238:
5237:
5233:
5221:
5220:
5216:
5190:
5189:
5185:
5177:
5173:
5133:
5132:
5128:
5120:
5116:
5108:
5104:
5096:
5092:
5085:
5067:
5066:
5062:
5045:
5033:
5018:
5017:
5013:
5005:
5001:
4992:
4990:
4981:
4980:
4976:
4967:
4965:
4959:
4958:
4954:
4946:
4942:
4934:
4930:
4922:
4913:
4905:
4901:
4893:
4889:
4881:
4877:
4869:
4865:
4856:
4854:
4846:
4845:
4841:
4833:
4829:
4821:
4817:
4809:
4805:
4797:
4788:
4780:
4769:
4765:, pp. 5–6.
4761:
4757:
4749:
4740:
4733:
4717:
4716:
4695:
4686:
4684:
4671:
4670:
4666:
4657:
4655:
4642:
4641:
4637:
4628:
4626:
4618:
4617:
4613:
4604:
4602:
4594:
4593:
4589:
4567:
4566:
4562:
4552:
4551:
4547:
4533:
4531:
4516:
4515:
4511:
4489:
4477:
4463:
4462:
4458:
4450:
4446:
4436:
4434:
4430:
4423:
4418:
4417:
4413:
4405:
4382:
4373:
4372:
4368:
4361:
4348:
4347:
4343:
4338:
4333:
4332:
4319:
4315:
4309:network sockets
4306:
4302:
4297:
4293:
4288:
4284:
4276:
4269:
4264:
4259:
4214:
4197:network adapter
4193:
4046:Sequence number
3760:
3735:
3734:
3705:
3704:
3675:
3674:
3533:Sequence number
3299:
3294:
3211:network booting
3180:
3164:
3147:
3042:network latency
3021:
2977:
2965:
2938:
2830:
2755:
2749:
2735:
2722:sequence number
2706:
2700:
2660:
2643:
2641:Vulnerabilities
2622:
2615:
2600:
2588:vulnerabilities
2568:
2524:
2495:
2489:
2460:in May 2000 in
2425:
2419:
2407:MSS negotiation
2384:
2360:round-trip time
2345:fast retransmit
2314:
2308:
2255:
2224:
2222:Error detection
2180:
2179:
2129:
2128:
2120:
2103:
2070:sequence number
2066:
2036:
2016:
1969:
1936:
1784:Internet socket
1756:
1742:
1741:
1493:
1489:
1464:protocol number
1325:
1324:
1234:
1193:
1186:
1179:
1172:
1165:
1158:
1151:
1144:
1108:Sequence Number
921:data link layer
890:
830:streaming media
802:re-transmission
763:transport layer
759:
609:internetworking
597:
588:
408:Transport layer
190:(active open),
173:Transport layer
147:, ordered, and
143:. TCP provides
99:Transport layer
76:
74:
71:
28:
23:
22:
15:
12:
11:
5:
8574:
8572:
8564:
8563:
8558:
8553:
8543:
8542:
8539:
8538:
8533:
8528:
8523:
8518:
8511:
8510:External links
8508:
8507:
8506:
8499:
8486:
8480:
8465:
8459:
8447:(1994-01-10).
8439:
8436:
8435:
8434:
8424:(3): 397–405.
8410:
8388:(2): 271–287.
8373:
8358:
8316:
8285:
8276:
8249:
8237:(4): 364–373.
8215:
8206:
8179:
8157:
8139:
8126:
8109:
8094:
8079:
8042:
8013:
7971:
7935:
7910:
7888:(4): 263–274.
7872:Allman, Mark;
7867:
7864:
7863:
7862:
7834:
7806:
7778:
7750:
7722:
7694:
7663:
7635:
7607:
7579:
7551:
7524:Braden, Robert
7522:Duke, Martin;
7519:
7483:
7455:
7423:
7392:
7360:
7332:
7303:Allman, Mark;
7300:
7272:
7244:
7212:
7181:
7156:(April 1999).
7148:Allman, Mark;
7145:
7117:
7086:
7051:
7024:Braden, Robert
7020:
6989:
6958:
6921:
6918:
6916:
6913:
6910:
6909:
6880:
6851:
6839:
6819:
6794:
6779:
6753:
6725:
6713:
6701:
6689:
6677:
6675:, p. 6-8.
6665:
6663:, p. 3-4.
6653:
6651:, p. 4-5.
6641:
6639:, p. 1-2.
6629:
6617:
6615:, p. 3-4.
6605:
6593:
6591:, p. 8-9.
6581:
6579:, p. 271.
6577:Sy et al. 2020
6569:
6554:
6542:
6530:
6518:
6506:
6494:
6482:
6480:, p. 621.
6470:
6455:
6443:
6431:
6419:
6417:, p. 620.
6407:
6395:
6383:
6371:
6359:
6347:
6335:
6323:
6311:
6299:
6293:978-1449344764
6292:
6274:
6262:
6250:
6220:
6187:
6157:
6127:
6102:
6050:
6038:
6026:
6014:
6002:
6000:, 4. Glossary.
5990:
5975:
5945:
5921:
5892:
5867:
5836:
5810:
5799:
5761:
5754:
5732:
5725:
5699:
5673:
5640:
5610:
5580:
5568:
5539:
5527:
5515:
5503:
5491:
5479:
5454:978-1581132236
5453:
5436:10.1.1.27.7611
5409:
5397:
5395:, p. 268.
5385:
5373:
5358:
5346:
5334:
5322:
5320:, p. 365.
5310:
5308:, p. 399.
5295:
5283:
5263:
5251:
5231:
5214:
5203:(4): 522–535.
5183:
5171:
5149:10.1.1.40.7002
5126:
5114:
5112:, p. 364.
5102:
5090:
5083:
5071:(2003-03-17).
5060:
5031:
5011:
4999:
4974:
4952:
4940:
4928:
4911:
4899:
4887:
4875:
4863:
4839:
4827:
4815:
4803:
4786:
4767:
4755:
4738:
4731:
4693:
4664:
4635:
4611:
4587:
4576:(5): 307–318.
4560:
4545:
4509:
4456:
4444:
4411:
4393:(5): 637–648.
4366:
4359:
4340:
4339:
4337:
4334:
4331:
4330:
4313:
4300:
4291:
4282:
4266:
4265:
4263:
4260:
4258:
4257:
4251:
4246:
4241:
4236:
4231:
4226:
4221:
4215:
4213:
4210:
4192:
4189:
4188:
4187:
4184:
4181:
4178:
4175:
4172:
4169:
4165:
4162:
4159:
4150:
4149:
4146:
4142:
4141:
4138:
4134:
4133:
4128:
4125:
4121:
4120:
4115:
4112:
4108:
4107:
4105:Urgent pointer
4102:
4097:
4094:
4090:
4089:
4084:
4079:
4074:
4069:
4066:
4062:
4061:
4056:
4053:
4049:
4048:
4043:
4040:
4036:
4035:
4030:
4025:
4022:
4018:
4017:
4012:
4007:
4004:
4000:
3999:
3994:
3991:
3987:
3986:
3983:
3979:
3978:
3975:
3971:
3970:
3967:
3963:
3962:
3957:
3954:
3950:
3949:
3946:
3942:
3941:
3938:
3934:
3933:
3930:
3926:
3925:
3923:Source address
3920:
3917:
3913:
3912:
3909:
3906:
3903:
3900:
3897:
3894:
3891:
3888:
3885:
3882:
3879:
3876:
3873:
3870:
3867:
3864:
3861:
3858:
3855:
3852:
3849:
3846:
3843:
3840:
3837:
3834:
3831:
3828:
3825:
3822:
3819:
3816:
3811:
3807:
3806:
3803:
3800:
3797:
3794:
3789:
3759:
3756:
3755:
3754:
3742:
3717:
3687:
3670:
3667:
3664:
3661:
3658:
3655:
3652:
3649:
3646:
3637:
3636:
3633:
3629:
3628:
3625:
3621:
3620:
3615:
3612:
3608:
3607:
3602:
3599:
3595:
3594:
3592:Urgent pointer
3589:
3584:
3581:
3577:
3576:
3571:
3566:
3561:
3556:
3553:
3549:
3548:
3543:
3540:
3536:
3535:
3530:
3527:
3523:
3522:
3517:
3512:
3509:
3505:
3504:
3499:
3494:
3489:
3486:
3482:
3481:
3476:
3473:
3469:
3468:
3466:Source address
3463:
3460:
3456:
3455:
3452:
3449:
3446:
3443:
3440:
3437:
3434:
3431:
3428:
3425:
3422:
3419:
3416:
3413:
3410:
3407:
3404:
3401:
3398:
3395:
3392:
3389:
3386:
3383:
3380:
3377:
3374:
3371:
3368:
3365:
3362:
3359:
3354:
3350:
3349:
3346:
3343:
3340:
3337:
3332:
3298:
3295:
3293:
3290:
3179:
3176:
3168:packet sniffer
3163:
3160:
3146:
3143:
3085:forward secure
3020:
3017:
2976:
2973:
2964:
2961:
2945:window scaling
2937:
2934:
2829:
2826:
2748:
2745:
2734:
2731:
2702:Main article:
2699:
2696:
2659:
2656:
2642:
2639:
2635:protocol stack
2599:
2596:
2594:for instance.
2567:
2564:
2543:
2542:
2539:
2531:proportional.
2523:
2522:TCP timestamps
2520:
2491:Main article:
2488:
2487:Window scaling
2485:
2418:
2415:
2383:
2380:
2310:Main article:
2307:
2304:
2271:receive window
2267:sliding window
2254:
2251:
2223:
2220:
2187:
2167:
2159:
2156:
2153:
2150:
2147:
2144:
2141:
2119:
2116:
2102:
2099:
2065:
2062:
2061:
2060:
2057:
2053:
2050:
2047:
2035:
2032:
2024:ephemeral port
2015:
2014:Resource usage
2012:
1968:
1965:
1960:
1959:
1953:
1947:
1935:
1932:
1929:
1928:
1925:
1922:
1918:
1917:
1914:
1911:
1907:
1906:
1903:
1900:
1896:
1895:
1892:
1889:
1885:
1884:
1881:
1878:
1874:
1873:
1870:
1867:
1863:
1862:
1859:
1856:
1852:
1851:
1848:
1845:
1841:
1840:
1837:
1834:
1830:
1829:
1826:
1823:
1819:
1818:
1815:
1812:
1808:
1807:
1804:
1801:
1755:
1752:
1751:
1750:
1747:
1746:: Variable
1739:
1731:
1730:
1727:
1726:
1719:
1716:
1713:
1710:
1706:
1705:
1690:
1687:
1684:
1681:
1677:
1676:
1669:
1666:
1663:
1660:
1656:
1655:
1648:
1645:
1642:
1639:
1635:
1634:
1631:
1628:
1625:
1622:
1618:
1617:
1616:for details.
1610:
1607:
1604:
1601:
1597:
1596:
1595:for details.
1589:
1586:
1583:
1580:
1576:
1575:
1574:for details.
1568:
1565:
1562:
1559:
1555:
1554:
1551:
1548:
1545:
1542:
1538:
1537:
1535:
1532:
1529:
1526:
1522:
1521:
1518:
1515:
1512:
1511:Option-Length
1509:
1501:
1500:
1497:
1485:
1476:
1473:
1470:
1467:
1448:
1442:
1431:receive window
1427:
1423:
1422:
1421:
1420:
1417:
1416:FIN: 1 bit
1414:
1410:
1409:SYN: 1 bit
1407:
1404:
1403:RST: 1 bit
1401:
1398:
1397:PSH: 1 bit
1395:
1392:
1391:ACK: 1 bit
1389:
1386:
1385:URG: 1 bit
1382:
1381:
1380:
1379:
1375:
1365:
1364:ECE: 1 bit
1362:
1359:
1358:CWR: 1 bit
1353:
1350:
1343:
1340:
1337:
1330:
1322:
1318:
1314:
1313:
1312:
1311:
1308:
1301:
1298:
1295:
1292:
1289:
1283:
1282:
1279:
1275:
1274:
1271:
1267:
1266:
1261:
1258:
1254:
1253:
1250:
1246:
1245:
1242:
1238:
1237:
1230:
1227:
1223:
1222:
1217:
1210:
1207:
1203:
1202:
1197:
1190:
1183:
1176:
1169:
1162:
1155:
1148:
1141:
1136:
1131:
1128:
1124:
1123:
1118:
1115:
1111:
1110:
1105:
1102:
1098:
1097:
1092:
1087:
1084:
1080:
1079:
1076:
1073:
1070:
1067:
1064:
1061:
1058:
1055:
1052:
1049:
1046:
1043:
1040:
1037:
1034:
1031:
1028:
1025:
1022:
1019:
1016:
1013:
1010:
1007:
1004:
1001:
998:
995:
992:
989:
986:
983:
978:
974:
973:
970:
967:
964:
961:
956:
889:
886:
874:internet layer
862:acknowledgment
816:(WWW), email,
814:World Wide Web
790:load balancing
779:network socket
767:Internet model
758:
755:
728:
727:
724:
721:
718:
715:
712:
709:
706:
705:January 1978).
697:
682:The following
671:for short) or
617:Gérard Le Lann
596:
593:
590:
589:
587:
586:
579:
572:
564:
561:
560:
559:
558:
551:
546:
541:
536:
528:
527:
521:
520:
519:
518:
511:
506:
501:
496:
491:
481:
480:
479:
474:
461:
460:
458:Internet layer
454:
453:
452:
451:
444:
439:
434:
429:
424:
419:
411:
410:
404:
403:
402:
401:
394:
389:
384:
379:
374:
369:
364:
359:
354:
349:
344:
339:
334:
329:
324:
319:
314:
309:
304:
299:
294:
289:
284:
274:
269:
264:
254:
246:
245:
239:
238:
208:connectionless
192:retransmission
161:World Wide Web
151:delivery of a
115:
114:
109:
103:
102:
96:
90:
89:
86:
82:
81:
68:
64:
63:
54:
50:
49:
46:
42:
41:
39:Protocol stack
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
8573:
8562:
8559:
8557:
8554:
8552:
8549:
8548:
8546:
8537:
8534:
8532:
8529:
8527:
8524:
8522:
8519:
8517:
8514:
8513:
8509:
8502:
8496:
8492:
8487:
8483:
8477:
8473:
8472:
8466:
8462:
8456:
8452:
8451:
8446:
8442:
8441:
8437:
8431:
8427:
8423:
8419:
8415:
8411:
8406:
8401:
8396:
8391:
8387:
8383:
8379:
8374:
8370:
8369:
8364:
8359:
8355:
8351:
8346:
8341:
8337:
8333:
8329:
8325:
8324:
8317:
8313:
8309:
8305:
8301:
8297:
8293:
8292:
8286:
8282:
8277:
8272:
8267:
8263:
8259:
8255:
8250:
8245:
8240:
8236:
8232:
8228:
8224:
8220:
8216:
8212:
8207:
8203:
8199:
8194:
8189:
8185:
8180:
8176:
8172:
8165:
8164:
8158:
8151:
8150:
8145:
8140:
8136:
8132:
8127:
8123:
8119:
8115:
8110:
8106:
8105:
8100:
8095:
8091:
8090:
8085:
8080:
8076:
8072:
8067:
8062:
8058:
8054:
8053:
8048:
8043:
8039:
8035:
8031:
8027:
8023:
8019:
8014:
8010:
8006:
8001:
7996:
7992:
7988:
7984:
7980:
7979:
7972:
7968:
7964:
7960:
7956:
7952:
7948:
7941:
7936:
7932:
7928:
7924:
7920:
7916:
7911:
7906:
7901:
7896:
7891:
7887:
7883:
7879:
7875:
7870:
7869:
7865:
7859:
7856:
7851:
7846:
7842:
7841:
7835:
7831:
7828:
7823:
7818:
7814:
7813:
7807:
7803:
7800:
7795:
7790:
7786:
7785:
7779:
7775:
7772:
7767:
7762:
7758:
7757:
7751:
7747:
7744:
7739:
7734:
7730:
7729:
7723:
7719:
7716:
7711:
7706:
7702:
7701:
7695:
7691:
7688:
7683:
7678:
7674:
7673:
7668:
7664:
7660:
7657:
7652:
7647:
7643:
7642:
7636:
7632:
7629:
7624:
7619:
7615:
7614:
7608:
7604:
7601:
7596:
7591:
7587:
7586:
7580:
7576:
7573:
7568:
7563:
7559:
7558:
7557:TCP Fast Open
7552:
7548:
7545:
7540:
7535:
7531:
7530:
7525:
7520:
7516:
7513:
7508:
7503:
7499:
7498:
7493:
7492:Jacobson, Van
7489:
7484:
7480:
7477:
7472:
7467:
7463:
7462:
7456:
7452:
7449:
7444:
7439:
7435:
7434:
7429:
7428:Handley, Mark
7424:
7420:
7417:
7412:
7407:
7403:
7402:
7397:
7393:
7389:
7386:
7381:
7376:
7372:
7371:
7366:
7365:Handley, Mark
7361:
7357:
7354:
7349:
7344:
7340:
7339:
7333:
7329:
7326:
7321:
7316:
7312:
7311:
7306:
7301:
7297:
7294:
7289:
7284:
7280:
7279:
7273:
7269:
7266:
7261:
7256:
7252:
7251:
7245:
7241:
7238:
7233:
7228:
7224:
7223:
7218:
7213:
7209:
7206:
7201:
7196:
7192:
7191:
7186:
7182:
7178:
7175:
7170:
7165:
7161:
7160:
7155:
7151:
7146:
7142:
7139:
7134:
7129:
7125:
7124:
7118:
7114:
7111:
7106:
7101:
7097:
7096:
7091:
7087:
7083:
7080:
7075:
7070:
7066:
7065:
7060:
7056:
7055:Jacobson, Van
7052:
7048:
7045:
7040:
7035:
7031:
7030:
7025:
7021:
7017:
7014:
7009:
7004:
7000:
6999:
6994:
6990:
6986:
6983:
6978:
6973:
6969:
6968:
6963:
6959:
6955:
6952:
6947:
6942:
6938:
6937:
6932:
6928:
6924:
6923:
6919:
6914:
6906:
6894:
6890:
6884:
6881:
6877:
6865:
6861:
6855:
6852:
6848:
6843:
6840:
6836:
6832:
6829:
6823:
6820:
6809:on 2024-04-22
6808:
6804:
6798:
6795:
6790:
6786:
6782:
6776:
6772:
6768:
6764:
6757:
6754:
6743:on 2011-05-03
6742:
6738:
6732:
6730:
6726:
6722:
6717:
6714:
6711:, p. 14.
6710:
6705:
6702:
6699:, p. 72.
6698:
6693:
6690:
6687:, p. 67.
6686:
6681:
6678:
6674:
6669:
6666:
6662:
6657:
6654:
6650:
6645:
6642:
6638:
6633:
6630:
6626:
6621:
6618:
6614:
6609:
6606:
6602:
6597:
6594:
6590:
6585:
6582:
6578:
6573:
6570:
6566:
6561:
6559:
6555:
6551:
6546:
6543:
6539:
6534:
6531:
6527:
6522:
6519:
6515:
6510:
6507:
6503:
6498:
6495:
6491:
6486:
6483:
6479:
6474:
6471:
6467:
6462:
6460:
6456:
6452:
6447:
6444:
6440:
6435:
6432:
6428:
6423:
6420:
6416:
6411:
6408:
6404:
6399:
6396:
6392:
6387:
6384:
6380:
6375:
6372:
6368:
6363:
6360:
6356:
6351:
6348:
6344:
6339:
6336:
6332:
6327:
6324:
6320:
6315:
6312:
6308:
6303:
6300:
6295:
6289:
6285:
6278:
6275:
6271:
6266:
6263:
6259:
6254:
6251:
6239:
6235:
6231:
6224:
6221:
6216:
6213:
6208:
6203:
6199:
6198:
6191:
6188:
6176:
6172:
6168:
6161:
6158:
6146:
6142:
6138:
6131:
6128:
6116:
6112:
6106:
6103:
6092:on 2020-04-04
6091:
6087:
6083:
6078:
6073:
6069:
6065:
6061:
6054:
6051:
6047:
6042:
6039:
6035:
6030:
6027:
6024:, p. 51.
6023:
6018:
6015:
6011:
6006:
6003:
5999:
5994:
5991:
5986:
5982:
5978:
5972:
5968:
5964:
5960:
5956:
5949:
5946:
5932:
5925:
5922:
5910:
5906:
5902:
5896:
5893:
5881:
5877:
5871:
5868:
5857:on 2013-06-18
5853:
5846:
5840:
5837:
5825:
5821:
5814:
5811:
5808:
5803:
5800:
5795:
5789:
5771:
5765:
5762:
5757:
5751:
5746:
5745:
5736:
5733:
5728:
5722:
5718:
5713:
5712:
5703:
5700:
5688:
5684:
5677:
5674:
5658:
5651:
5644:
5641:
5630:on 2018-12-15
5629:
5625:
5621:
5614:
5611:
5598:
5594:
5590:
5584:
5581:
5577:
5572:
5569:
5557:
5553:
5549:
5543:
5540:
5536:
5531:
5528:
5525:, p. 10.
5524:
5519:
5516:
5512:
5507:
5504:
5500:
5495:
5492:
5488:
5483:
5480:
5468:
5464:
5460:
5456:
5450:
5446:
5442:
5437:
5432:
5428:
5424:
5420:
5413:
5410:
5406:
5401:
5398:
5394:
5389:
5386:
5382:
5377:
5374:
5370:
5365:
5363:
5359:
5355:
5350:
5347:
5343:
5338:
5335:
5331:
5326:
5323:
5319:
5314:
5311:
5307:
5302:
5300:
5296:
5292:
5287:
5284:
5276:
5275:
5267:
5264:
5260:
5255:
5252:
5244:
5243:
5235:
5232:
5227:
5226:
5218:
5215:
5210:
5206:
5202:
5198:
5194:
5187:
5184:
5180:
5175:
5172:
5167:
5163:
5159:
5155:
5150:
5145:
5141:
5137:
5130:
5127:
5123:
5118:
5115:
5111:
5106:
5103:
5099:
5094:
5091:
5086:
5080:
5076:
5075:
5070:
5064:
5061:
5056:
5050:
5042:
5038:
5034:
5028:
5024:
5023:
5015:
5012:
5008:
5003:
5000:
4988:
4984:
4978:
4975:
4963:
4956:
4953:
4949:
4944:
4941:
4937:
4932:
4929:
4925:
4920:
4918:
4916:
4912:
4908:
4903:
4900:
4896:
4891:
4888:
4885:, p. 15.
4884:
4879:
4876:
4872:
4867:
4864:
4853:
4849:
4843:
4840:
4836:
4831:
4828:
4824:
4819:
4816:
4812:
4807:
4804:
4800:
4795:
4793:
4791:
4787:
4783:
4778:
4776:
4774:
4772:
4768:
4764:
4759:
4756:
4752:
4747:
4745:
4743:
4739:
4734:
4728:
4724:
4720:
4714:
4712:
4710:
4708:
4706:
4704:
4702:
4700:
4698:
4694:
4682:
4678:
4674:
4668:
4665:
4653:
4649:
4645:
4639:
4636:
4625:
4621:
4615:
4612:
4601:
4597:
4591:
4588:
4583:
4579:
4575:
4571:
4564:
4561:
4556:
4549:
4546:
4542:
4529:
4525:
4524:
4519:
4513:
4510:
4503:
4498:
4494:
4493:
4485:
4481:
4475:
4472:"See Abbate,
4469:
4468:
4460:
4457:
4453:
4448:
4445:
4429:
4422:
4415:
4412:
4404:
4400:
4396:
4392:
4388:
4381:
4379:
4370:
4367:
4362:
4360:9781000556803
4356:
4353:. CRC Press.
4352:
4345:
4342:
4335:
4327:
4323:
4317:
4314:
4310:
4304:
4301:
4295:
4292:
4286:
4283:
4280:
4274:
4272:
4268:
4261:
4255:
4252:
4250:
4247:
4245:
4242:
4240:
4237:
4235:
4232:
4230:
4227:
4225:
4222:
4220:
4217:
4216:
4211:
4209:
4206:
4201:
4198:
4190:
4185:
4182:
4179:
4176:
4173:
4170:
4166:
4163:
4160:
4157:
4156:
4155:
4147:
4144:
4143:
4139:
4136:
4135:
4132:
4126:
4123:
4122:
4119:
4113:
4110:
4109:
4106:
4101:
4095:
4092:
4091:
4088:
4083:
4078:
4073:
4067:
4064:
4063:
4060:
4054:
4051:
4050:
4047:
4041:
4038:
4037:
4034:
4029:
4023:
4020:
4019:
4016:
4011:
4005:
4002:
4001:
3998:
3992:
3989:
3988:
3984:
3981:
3980:
3976:
3973:
3972:
3968:
3965:
3964:
3961:
3955:
3952:
3951:
3947:
3944:
3943:
3939:
3936:
3935:
3931:
3928:
3927:
3924:
3918:
3915:
3914:
3910:
3907:
3904:
3901:
3898:
3895:
3892:
3889:
3886:
3883:
3880:
3877:
3874:
3871:
3868:
3865:
3862:
3859:
3856:
3853:
3850:
3847:
3844:
3841:
3838:
3835:
3832:
3829:
3826:
3823:
3820:
3817:
3815:
3812:
3809:
3808:
3793:
3790:
3788:
3785:
3784:
3778:
3774:
3773:
3767:
3765:
3757:
3740:
3715:
3685:
3671:
3668:
3665:
3662:
3659:
3656:
3653:
3650:
3647:
3644:
3643:
3642:
3634:
3631:
3630:
3626:
3623:
3622:
3619:
3613:
3610:
3609:
3606:
3600:
3597:
3596:
3593:
3588:
3582:
3579:
3578:
3575:
3570:
3565:
3560:
3554:
3551:
3550:
3547:
3541:
3538:
3537:
3534:
3528:
3525:
3524:
3521:
3516:
3510:
3507:
3506:
3503:
3498:
3493:
3487:
3484:
3483:
3480:
3474:
3471:
3470:
3467:
3461:
3458:
3457:
3453:
3450:
3447:
3444:
3441:
3438:
3435:
3432:
3429:
3426:
3423:
3420:
3417:
3414:
3411:
3408:
3405:
3402:
3399:
3396:
3393:
3390:
3387:
3384:
3381:
3378:
3375:
3372:
3369:
3366:
3363:
3360:
3358:
3355:
3352:
3351:
3336:
3333:
3331:
3328:
3327:
3321:
3319:
3313:
3312:
3306:
3304:
3296:
3291:
3289:
3287:
3283:
3281:
3277:
3273:
3271:
3267:
3262:
3260:
3256:
3252:
3250:
3246:
3244:
3243:interpolation
3240:
3235:
3231:
3226:
3224:
3220:
3216:
3212:
3208:
3203:
3202:connections.
3201:
3200:Fibre Channel
3197:
3193:
3188:
3186:
3185:voice over IP
3177:
3175:
3173:
3169:
3161:
3159:
3155:
3151:
3144:
3142:
3140:
3136:
3131:
3129:
3125:
3121:
3116:
3113:
3108:
3105:
3101:
3096:
3094:
3089:
3086:
3082:
3077:
3073:
3068:
3064:
3058:
3055:
3051:
3047:
3043:
3038:
3034:
3030:
3026:
3018:
3016:
3014:
3010:
3006:
3002:
2998:
2994:
2990:
2986:
2982:
2974:
2972:
2970:
2962:
2960:
2958:
2954:
2950:
2946:
2942:
2935:
2933:
2931:
2927:
2922:
2920:
2916:
2912:
2908:
2907:TCP Fast Open
2904:
2902:
2898:
2894:
2892:
2891:Multipath TCP
2888:
2886:
2882:
2878:
2874:
2870:
2866:
2861:
2859:
2855:
2851:
2847:
2843:
2839:
2835:
2827:
2825:
2823:
2819:
2815:
2811:
2808:
2804:
2800:
2796:
2792:
2788:
2785:(20 and 21),
2784:
2780:
2775:
2773:
2768:
2764:
2760:
2754:
2746:
2744:
2741:
2732:
2730:
2728:
2723:
2719:
2714:
2712:
2705:
2697:
2695:
2693:
2689:
2685:
2684:persist timer
2681:
2677:
2673:
2669:
2665:
2657:
2655:
2653:
2649:
2640:
2638:
2636:
2632:
2628:
2619:
2613:
2608:
2605:
2597:
2595:
2593:
2589:
2584:
2579:
2577:
2573:
2565:
2563:
2560:
2557:
2554:
2552:
2548:
2540:
2537:
2536:
2535:
2532:
2529:
2521:
2519:
2515:
2511:
2509:
2505:
2501:
2494:
2486:
2484:
2481:
2476:
2474:
2470:
2465:
2463:
2457:
2454:
2450:
2446:
2442:
2438:
2434:
2429:
2424:
2416:
2414:
2412:
2408:
2403:
2401:
2397:
2393:
2389:
2381:
2379:
2377:
2371:
2369:
2365:
2361:
2357:
2352:
2350:
2349:fast recovery
2346:
2342:
2338:
2333:
2329:
2327:
2323:
2319:
2313:
2305:
2303:
2301:
2296:
2293:
2289:
2288:persist timer
2279:
2275:
2272:
2268:
2263:
2260:
2252:
2250:
2248:
2244:
2240:
2236:
2232:
2227:
2221:
2219:
2216:
2212:
2206:
2204:
2201:
2185:
2162:RTT variation
2157:
2154:
2151:
2148:
2139:
2126:
2117:
2115:
2111:
2109:
2100:
2098:
2096:
2090:
2086:
2082:
2080:
2075:
2071:
2063:
2058:
2054:
2051:
2048:
2045:
2044:
2043:
2041:
2034:Data transfer
2033:
2031:
2028:
2025:
2020:
2013:
2011:
2008:
2003:
2001:
1997:
1992:
1989:
1981:
1973:
1966:
1964:
1957:
1954:
1951:
1948:
1945:
1942:
1941:
1940:
1933:
1926:
1923:
1920:
1919:
1915:
1912:
1909:
1908:
1904:
1901:
1898:
1897:
1893:
1890:
1887:
1886:
1882:
1879:
1876:
1875:
1871:
1868:
1865:
1864:
1860:
1857:
1854:
1853:
1849:
1846:
1843:
1842:
1838:
1835:
1833:SYN-RECEIVED
1832:
1831:
1827:
1824:
1821:
1820:
1816:
1813:
1810:
1809:
1805:
1802:
1799:
1798:
1792:
1790:
1786:
1785:
1779:
1777:
1773:
1772:data transfer
1769:
1760:
1753:
1748:
1740:
1737:
1733:
1732:
1725:for details.
1724:
1723:Multipath TCP
1720:
1717:
1714:
1711:
1708:
1707:
1703:
1699:
1695:
1691:
1688:
1685:
1682:
1679:
1678:
1674:
1671:See RFC
1670:
1667:
1664:
1661:
1658:
1657:
1654:for details.
1653:
1649:
1646:
1643:
1640:
1637:
1636:
1632:
1629:
1626:
1623:
1620:
1619:
1615:
1611:
1608:
1605:
1602:
1599:
1598:
1594:
1590:
1588:Window scale
1587:
1584:
1581:
1578:
1577:
1573:
1569:
1566:
1563:
1560:
1557:
1556:
1552:
1550:No operation
1549:
1546:
1543:
1540:
1539:
1536:
1533:
1530:
1527:
1524:
1523:
1519:
1516:
1513:
1510:
1507:
1506:
1503:
1502:
1498:
1492:is coded as (
1486:
1483:
1482:
1477:
1474:
1471:
1468:
1465:
1461:
1457:
1453:
1449:
1447:: 16 bits
1446:
1443:
1440:
1436:
1432:
1428:
1425:
1424:
1418:
1415:
1411:
1408:
1405:
1402:
1399:
1396:
1393:
1390:
1387:
1384:
1383:
1376:
1373:
1369:
1368:
1366:
1363:
1360:
1357:
1356:
1354:
1351:
1348:
1344:
1341:
1338:
1335:
1331:
1323:
1319:
1316:
1315:
1309:
1305:
1304:
1302:
1299:
1296:
1293:
1290:
1287:
1286:
1280:
1277:
1276:
1272:
1269:
1268:
1265:
1259:
1256:
1255:
1251:
1248:
1247:
1243:
1240:
1239:
1236:
1228:
1225:
1224:
1221:
1216:
1215:
1208:
1205:
1204:
1201:
1196:
1191:
1189:
1184:
1182:
1177:
1175:
1170:
1168:
1163:
1161:
1156:
1154:
1149:
1147:
1142:
1140:
1135:
1129:
1126:
1125:
1122:
1116:
1113:
1112:
1109:
1103:
1100:
1099:
1096:
1091:
1085:
1082:
1081:
1077:
1074:
1071:
1068:
1065:
1062:
1059:
1056:
1053:
1050:
1047:
1044:
1041:
1038:
1035:
1032:
1029:
1026:
1023:
1020:
1017:
1014:
1011:
1008:
1005:
1002:
999:
996:
993:
990:
987:
984:
982:
979:
976:
975:
960:
957:
955:
952:
951:
945:
943:
939:
935:
929:
924:
922:
918:
914:
910:
906:
902:
897:
895:
887:
885:
883:
879:
878:network stack
875:
871:
866:
863:
859:
854:
849:
847:
843:
839:
838:voice over IP
833:
831:
827:
823:
819:
815:
810:
808:
803:
799:
795:
791:
787:
782:
780:
776:
772:
768:
764:
756:
754:
752:
749:received the
748:
744:
739:
737:
733:
725:
722:
719:
716:
713:
710:
707:
704:
701:
698:
695:
692:
689:
688:
687:
685:
680:
678:
674:
670:
666:
662:
658:
654:
648:
646:
642:
638:
634:
630:
626:
625:specification
622:
618:
614:
610:
607:described an
606:
602:
599:In May 1974,
594:
585:
580:
578:
573:
571:
566:
565:
563:
562:
557:
556:
552:
550:
547:
545:
542:
540:
537:
535:
532:
531:
530:
529:
526:
522:
517:
516:
512:
510:
507:
505:
502:
500:
497:
495:
492:
489:
485:
482:
478:
475:
473:
470:
469:
468:
465:
464:
463:
462:
459:
455:
450:
449:
445:
443:
440:
438:
435:
433:
430:
428:
425:
423:
420:
418:
415:
414:
413:
412:
409:
405:
400:
399:
395:
393:
390:
388:
385:
383:
380:
378:
375:
373:
370:
368:
365:
363:
360:
358:
355:
353:
350:
348:
345:
343:
340:
338:
335:
333:
330:
328:
325:
323:
320:
318:
315:
313:
310:
308:
305:
303:
300:
298:
295:
293:
290:
288:
285:
282:
278:
275:
273:
270:
268:
265:
262:
258:
255:
253:
250:
249:
248:
247:
244:
240:
237:
233:
230:
228:
224:
220:
216:
212:
209:
205:
201:
197:
193:
189:
185:
180:
178:
174:
170:
169:file transfer
166:
162:
158:
154:
150:
149:error-checked
146:
142:
138:
134:
130:
126:
122:
113:
110:
108:
104:
100:
97:
95:
91:
87:
83:
69:
65:
62:
58:
55:
51:
47:
43:
40:
36:
30:
19:
8490:
8470:
8449:
8421:
8417:
8414:Zhang, Lixia
8385:
8381:
8366:
8327:
8321:
8298:(4): 51–57.
8295:
8289:
8261:
8234:
8230:
8183:
8162:
8148:
8144:Floyd, Sally
8113:
8102:
8087:
8056:
8050:
8024:(2): 54–77.
8021:
8017:
7982:
7976:
7950:
7946:
7914:
7885:
7881:
7874:Paxson, Vern
7839:
7811:
7783:
7755:
7727:
7699:
7671:
7640:
7612:
7584:
7556:
7528:
7496:
7460:
7432:
7400:
7396:Paxson, Vern
7369:
7337:
7309:
7305:Paxson, Vern
7277:
7249:
7221:
7217:Floyd, Sally
7189:
7185:Floyd, Sally
7158:
7150:Paxson, Vern
7122:
7094:
7092:(May 1996).
7063:
7028:
6997:
6966:
6935:
6931:Dalal, Yogen
6915:Bibliography
6903:
6897:. Retrieved
6883:
6874:
6868:. Retrieved
6854:
6842:
6822:
6811:. Retrieved
6807:the original
6797:
6762:
6756:
6745:. Retrieved
6741:the original
6716:
6704:
6692:
6680:
6668:
6656:
6644:
6632:
6627:, p. 1.
6620:
6608:
6601:Ghedini 2018
6596:
6584:
6572:
6567:, p. 3.
6545:
6533:
6521:
6509:
6497:
6485:
6473:
6453:, p. 1.
6446:
6441:, p. 1.
6434:
6422:
6410:
6398:
6386:
6381:, p. 8.
6374:
6362:
6350:
6345:, p. 3.
6338:
6333:, p. 6.
6326:
6314:
6302:
6283:
6277:
6265:
6253:
6242:. Retrieved
6223:
6200:. May 2019.
6196:
6190:
6179:. Retrieved
6171:IETF Journal
6170:
6160:
6149:. Retrieved
6140:
6130:
6119:. Retrieved
6105:
6094:. Retrieved
6090:the original
6067:
6063:
6053:
6041:
6029:
6017:
6012:, p. 6.
6005:
5993:
5958:
5954:
5948:
5937:. Retrieved
5924:
5913:. Retrieved
5904:
5895:
5884:. Retrieved
5870:
5859:. Retrieved
5852:the original
5839:
5828:. Retrieved
5813:
5802:
5777:. Retrieved
5764:
5743:
5735:
5710:
5702:
5691:. Retrieved
5676:
5664:. Retrieved
5643:
5632:. Retrieved
5628:the original
5623:
5613:
5601:. Retrieved
5592:
5583:
5571:
5560:. Retrieved
5551:
5542:
5530:
5518:
5506:
5494:
5482:
5471:. Retrieved
5426:
5422:
5412:
5407:, p. 7.
5400:
5388:
5376:
5371:, p. 4.
5356:, p. 1.
5349:
5344:, p. 2.
5337:
5325:
5313:
5293:, p. 2.
5286:
5273:
5266:
5254:
5241:
5234:
5224:
5217:
5200:
5196:
5186:
5181:, p. 4.
5174:
5142:(3): 67–82.
5139:
5135:
5129:
5117:
5105:
5093:
5073:
5063:
5021:
5014:
5002:
4991:. Retrieved
4977:
4966:. Retrieved
4955:
4943:
4931:
4902:
4890:
4878:
4866:
4855:. Retrieved
4851:
4842:
4830:
4818:
4806:
4758:
4722:
4685:. Retrieved
4676:
4667:
4656:. Retrieved
4647:
4638:
4627:. Retrieved
4623:
4614:
4603:. Retrieved
4599:
4590:
4573:
4569:
4563:
4548:
4539:
4532:, retrieved
4522:
4512:
4491:
4483:
4479:
4473:
4466:
4459:
4447:
4437:11 September
4435:. Retrieved
4414:
4403:the original
4390:
4386:
4377:
4369:
4350:
4344:
4316:
4303:
4294:
4285:
4202:
4194:
4153:
4130:
4117:
4104:
4099:
4086:
4081:
4076:
4071:
4058:
4045:
4032:
4027:
4014:
4009:
3996:
3959:
3922:
3786:
3776:
3770:
3769:
3761:
3682:Total Length
3640:
3617:
3604:
3591:
3586:
3573:
3568:
3563:
3558:
3545:
3532:
3519:
3514:
3501:
3496:
3491:
3478:
3465:
3329:
3315:
3309:
3308:
3300:
3284:
3274:
3263:
3253:
3247:
3234:multiplexing
3227:
3204:
3189:
3181:
3178:Alternatives
3165:
3156:
3152:
3148:
3145:Acceleration
3132:
3124:interference
3117:
3109:
3097:
3093:Web browsers
3067:key exchange
3059:
3054:Web browsers
3046:encapsulated
3022:
3005:web browsers
2978:
2966:
2956:
2939:
2923:
2910:
2905:
2895:
2889:
2881:TCP New Reno
2864:
2862:
2831:
2818:disambiguate
2812:
2776:
2756:
2739:
2736:
2721:
2715:
2711:ARP spoofing
2707:
2683:
2661:
2644:
2620:
2610:Setting the
2609:
2601:
2582:
2580:
2571:
2569:
2561:
2558:
2555:
2550:
2549:numbers, or
2546:
2544:
2533:
2525:
2516:
2512:
2496:
2477:
2466:
2458:
2452:
2448:
2444:
2440:
2432:
2430:
2426:
2410:
2406:
2404:
2385:
2378:variations.
2372:
2355:
2353:
2334:
2330:
2326:max-min fair
2315:
2297:
2287:
2285:
2270:
2264:
2259:flow control
2256:
2253:Flow control
2228:
2225:
2207:
2136:smoothed RTT
2121:
2112:
2104:
2094:
2091:
2087:
2083:
2069:
2067:
2037:
2029:
2021:
2017:
2004:
1993:
1990:
1986:
1961:
1955:
1949:
1943:
1937:
1844:ESTABLISHED
1806:Description
1782:
1780:
1775:
1771:
1767:
1765:
1514:Option-Data
1508:Option-Kind
1479:
1430:
1263:
1232:
1219:
1212:
1199:
1192:
1185:
1178:
1171:
1164:
1157:
1150:
1143:
1138:
1133:
1120:
1107:
1094:
1089:
953:
941:
937:
933:
931:
926:
916:
912:
904:
900:
898:
894:encapsulated
891:
869:
867:
857:
850:
834:
822:Secure Shell
811:
783:
760:
751:Turing Award
740:
729:
702:
696:March 1977).
693:
681:
676:
672:
668:
664:
660:
656:
652:
649:
645:internetwork
644:
640:
632:
598:
554:
514:
447:
416:
397:
227:reset attack
181:
124:
120:
118:
67:Introduction
53:Developer(s)
45:Abbreviation
29:
8330:: 619–639.
7488:Braden, Bob
7059:Braden, Bob
6993:Postel, Jon
6962:Postel, Jon
6550:Corbet 2018
6490:Corbet 2015
6405:, A.5. TCP.
6143:: 399–412.
6141:Usenix NSDI
5618:Wang, Eve.
5603:15 December
5589:"IP sysctl"
4518:Postel, Jon
4486:(4): 10–11.
4244:TCP Stealth
4180:All zeroes.
4072:Data offset
4028:Source port
3660:All zeroes.
3559:Data offset
3515:Source port
3198:(FCP) over
3194:(SANs) use
3081:replay-safe
3050:multiplexed
3019:Performance
2828:Development
2801:(443), and
2676:SYN cookies
2662:By using a
2616:TCP_NODELAY
2441:SACK blocks
2265:TCP uses a
2068:TCP uses a
1939:handshake:
1877:CLOSE-WAIT
1866:FIN-WAIT-2
1855:FIN-WAIT-1
1644:TTTT, EEEE
1481:Data Offset
1450:The 16-bit
1326:Data Offset
1134:Data Offset
1090:Source Port
781:interface.
673:DARPA model
637:Yogen Dalal
200:data stream
8545:Categories
8395:1905.03518
8219:Karn, Phil
8135:Cloudflare
6927:Cerf, Vint
6899:2017-02-24
6870:2017-02-24
6813:2024-04-18
6747:2010-08-30
6244:2014-07-21
6181:2017-01-03
6151:2013-03-24
6121:2013-03-24
6096:2011-06-29
6070:(4): 266.
5939:2023-06-04
5915:2017-09-27
5886:2010-01-22
5861:2010-12-23
5830:2014-02-05
5779:2010-12-23
5693:2009-01-04
5634:2018-12-15
5562:2016-07-21
5473:2008-04-28
5306:Zhang 1986
4993:2017-10-19
4968:2023-12-30
4857:2023-04-18
4687:2019-07-13
4658:2019-07-13
4629:2024-01-21
4605:2020-02-11
4476:, 129–30;
4336:References
4239:TCP pacing
4234:TCP fusion
4118:(optional)
3997:TCP length
3772:addresses.
3605:(optional)
3502:TCP length
3205:Also, for
3074:over TCP.
2953:deprecated
2930:slow start
2822:subnetwork
2751:See also:
2680:Sockstress
2627:user space
2508:TCP tuning
2423:SACK Panic
2421:See also:
2411:negotiated
2337:slow start
2056:processed.
1910:TIME-WAIT
901:TCP packet
882:IP address
788:, traffic
525:Link layer
8345:2164/8317
8188:CiteSeerX
8075:235174220
8009:206576469
8000:2164/8018
7953:: 20–30.
6526:Marx 2020
6514:Marx 2020
6072:CiteSeerX
5666:3 October
5431:CiteSeerX
5144:CiteSeerX
5049:cite book
5041:936004518
4526:, IEN 2,
4470:(Thesis).
3716:−
3686:−
3162:Debugging
2993:middlebox
2985:cleartext
2981:wire data
2921:in 2014.
2885:TCP Hybla
2873:TCP Vegas
2865:TCP Tahoe
2807:ephemeral
2747:TCP ports
2672:SYN flood
2158:×
2007:half-open
1899:LAST-ACK
1822:SYN-SENT
1803:Endpoint
1791:changes:
899:The term
851:TCP is a
807:abstracts
743:Vint Cerf
741:In 2004,
669:DoD model
601:Vint Cerf
188:handshake
163:, email,
129:protocols
94:OSI layer
57:Vint Cerf
8312:17581886
8038:15954837
7967:15305731
7931:32671949
6893:Archived
6864:Archived
6847:RFC 8200
6831:Archived
6721:RFC 9002
6625:RFC 7413
6565:RFC 7413
6403:RFC 9170
6391:RFC 9170
6379:RFC 8558
6367:RFC 9065
6355:RFC 9065
6343:RFC 8558
6331:RFC 8546
6319:RFC 7805
6307:RFC 6013
6270:RFC 6937
6258:RFC 7413
6238:Archived
6175:Archived
6145:Archived
6115:Archived
6046:RFC 6824
6034:RFC 6182
6010:RFC 8095
5998:RFC 9293
5985:25353177
5909:Archived
5880:Archived
5824:Archived
5788:cite web
5687:Archived
5657:Archived
5597:Archived
5576:RFC 3522
5556:Archived
5535:RFC 9002
5523:RFC 2018
5511:RFC 1122
5499:RFC 6298
5487:RFC 5681
5467:Archived
5405:RFC 7323
5369:RFC 6298
5291:RFC 6298
5259:RFC 8985
5179:RFC 3522
5122:RFC 9002
5098:RFC 1122
5007:RFC 9293
4987:Archived
4985:. IANA.
4948:RFC 2018
4936:RFC 2018
4924:RFC 7323
4895:RFC 3168
4883:RFC 3168
4871:RFC 3168
4835:RFC 9293
4823:RFC 9293
4811:RFC 9293
4799:RFC 9293
4782:RFC 9293
4751:RFC 9293
4721:(2006).
4681:Archived
4652:Archived
4534:June 11,
4528:archived
4428:Archived
4279:RFC 3168
4212:See also
4148:⋮
4145:⋮
4100:Checksum
4077:Reserved
3635:⋮
3632:⋮
3587:Checksum
3564:Reserved
3497:Protocol
3139:Westwood
2957:historic
2919:RFC 7413
2897:tcpcrypt
2877:FAST TCP
2869:TCP Reno
2854:RFC 3168
2850:RFC 2581
2846:RFC 7414
2842:RFC 1122
2733:TCP veto
2718:RFC 1948
2690:No. 66.
2528:RFC 1323
2504:RFC 1323
2480:RFC 2018
2475:(SCTP).
2462:RFC 2883
2437:RFC 2018
2292:deadlock
2247:Ethernet
2211:RFC 6298
2178:, where
1888:CLOSING
1517:Purpose
1452:checksum
1445:Checksum
1374:capable.
1347:RFC 3540
1281:⋮
1278:⋮
1244:⋮
1241:⋮
1214:Checksum
1139:Reserved
913:datagram
870:segments
747:Bob Kahn
655:and the
641:internet
621:CYCLADES
605:Bob Kahn
211:datagram
145:reliable
85:Based on
61:Bob Kahn
18:TCP port
8368:LWN.net
8354:1846371
8104:LWN.net
8089:LWN.net
6837:. 2004.
6789:8717768
6234:LWN.net
5552:LWN.net
5463:9547018
5166:1894993
4907:RFC 793
4763:RFC 791
4492:RFC 760
4452:RFC 675
4168:header.
3703:, i.e.
3221:(using
3172:Netstat
3076:TLS 1.3
3072:TLS 1.2
2838:RFC 793
2834:RFC 675
2614:option
2592:WinNuke
2245:or the
2239:layer 2
1950:SYN-ACK
1921:CLOSED
1836:Server
1825:Client
1814:Server
1811:LISTEN
1738:(IANA).
1378:sender.
942:Options
919:to the
911:(PDU),
905:segment
876:in the
765:of the
726:IEN 124
723:IEN 112
629:RFC 675
555:more...
539:Tunnels
515:more...
448:more...
398:more...
387:TLS/SSL
342:ONC/RPC
279: (
196:latency
182:TCP is
177:SSL/TLS
131:of the
75: (
8497:
8478:
8457:
8352:
8310:
8190:
8073:
8036:
8007:
7965:
7929:
6787:
6777:
6290:
6074:
5983:
5973:
5905:f5.com
5752:
5723:
5461:
5451:
5433:
5164:
5146:
5081:
5039:
5029:
4964:. IETF
4729:
4488:; and
4357:
4322:HTTP/3
4087:Window
4010:Zeroes
3810:Octet
3787:Offset
3753:bytes.
3574:Window
3492:Zeroes
3353:Octet
3330:Offset
2949:DNSSEC
2911:cookie
2883:, and
2797:(25),
2793:(23),
2791:TELNET
2789:(22),
2767:16-bit
2740:vetoed
2688:Phrack
2637:only.
2629:using
2612:socket
2583:urgent
2572:urgent
2347:, and
2085:data.
1800:State
1520:Notes
1490:0x05B4
1462:, the
1458:, the
1413:clear.
1200:Window
977:Octet
954:Offset
936:and a
934:header
828:, and
734:
720:IEN 81
717:IEN 55
714:IEN 44
711:IEN 40
708:IEN 27
700:IEN 21
661:TCP/IP
382:Telnet
281:HTTP/3
167:, and
157:octets
153:stream
141:TCP/IP
107:RFC(s)
8390:arXiv
8350:S2CID
8308:S2CID
8167:(PDF)
8153:(PDF)
8071:S2CID
8059:(3).
8034:S2CID
8005:S2CID
7963:S2CID
7943:(PDF)
7927:S2CID
6785:S2CID
5981:S2CID
5934:(PDF)
5855:(PDF)
5848:(PDF)
5773:(PDF)
5660:(PDF)
5653:(PDF)
5459:S2CID
5278:(PDF)
5246:(PDF)
5162:S2CID
4431:(PDF)
4424:(PDF)
4406:(PDF)
4383:(PDF)
4262:Notes
4082:Flags
3792:Octet
3569:Flags
3335:Octet
3135:Vegas
3031:: if
3001:MPTCP
2915:T/TCP
2759:tuple
2453:Block
2000:HP-UX
1996:Linux
1789:state
1334:words
1321:data.
959:Octet
923:PDU:
917:frame
691:IEN 5
509:IPsec
287:HTTPS
8495:ISBN
8476:ISBN
8455:ISBN
8386:2020
7858:9293
7830:9170
7802:9065
7774:9002
7746:8558
7718:8546
7690:8200
7659:8985
7631:8095
7603:7805
7575:7413
7547:7414
7515:7323
7479:6937
7451:6824
7419:6298
7388:6182
7356:6013
7328:5681
7296:3540
7268:3522
7240:3168
7208:2883
7177:2581
7141:2018
7113:1948
7082:1323
7047:1122
6775:ISBN
6288:ISBN
6215:8548
5971:ISBN
5794:link
5750:ISBN
5721:ISBN
5668:2017
5605:2018
5449:ISBN
5079:ISBN
5055:link
5037:OCLC
5027:ISBN
4727:ISBN
4536:2016
4439:2017
4355:ISBN
4326:QUIC
4254:WTCP
4140:544
4131:Data
4127:512
4114:480
4096:448
4068:416
4055:384
4042:352
4024:320
4006:288
3993:256
3985:224
3977:192
3969:160
3956:128
3764:IPv6
3627:320
3618:Data
3614:288
3601:256
3583:224
3555:192
3542:160
3529:128
3303:IPv4
3223:STUN
3083:and
3048:and
3037:lost
2979:The
2803:HTTP
2795:SMTP
2763:port
2648:IETF
2581:The
2551:PAWS
2386:The
1998:and
1743:Data
1721:See
1702:5925
1673:5482
1650:See
1612:See
1591:See
1570:See
1437:and
1273:512
1264:Data
1260:480
1252:448
1229:160
1209:128
938:data
794:lost
745:and
603:and
504:IGMP
484:ICMP
442:QUIC
437:RSVP
432:SCTP
427:DCCP
392:XMPP
372:SNMP
367:SMTP
352:RTSP
327:OSPF
317:NNTP
312:MQTT
307:MGCP
302:LDAP
292:IMAP
277:HTTP
257:DHCP
119:The
112:9293
77:1974
70:1974
59:and
8426:doi
8400:doi
8340:hdl
8332:doi
8300:doi
8266:doi
8239:doi
8198:doi
8171:doi
8118:doi
8061:doi
8026:doi
7995:hdl
7987:doi
7955:doi
7919:doi
7900:hdl
7890:doi
7855:RFC
7845:doi
7827:RFC
7817:doi
7799:RFC
7789:doi
7771:RFC
7761:doi
7743:RFC
7733:doi
7715:RFC
7705:doi
7687:RFC
7677:doi
7656:RFC
7646:doi
7628:RFC
7618:doi
7600:RFC
7590:doi
7572:RFC
7562:doi
7544:RFC
7534:doi
7512:RFC
7502:doi
7476:RFC
7466:doi
7448:RFC
7438:doi
7416:RFC
7406:doi
7385:RFC
7375:doi
7353:RFC
7343:doi
7325:RFC
7315:doi
7293:RFC
7283:doi
7265:RFC
7255:doi
7237:RFC
7227:doi
7205:RFC
7195:doi
7174:RFC
7164:doi
7138:RFC
7128:doi
7110:RFC
7100:doi
7079:RFC
7069:doi
7044:RFC
7034:doi
7016:793
7013:RFC
7003:doi
6985:791
6982:RFC
6972:doi
6954:675
6951:RFC
6941:doi
6767:doi
6212:RFC
6202:doi
6082:doi
5963:doi
5717:401
5441:doi
5205:doi
5154:doi
4578:doi
4497:doi
4395:doi
4137:68
4124:64
4111:60
4093:56
4065:52
4052:48
4039:44
4021:40
4003:36
3990:32
3982:28
3974:24
3966:20
3953:16
3948:96
3945:12
3940:64
3932:32
3911:31
3908:30
3905:29
3902:28
3899:27
3896:26
3893:25
3890:24
3887:23
3884:22
3881:21
3878:20
3875:19
3872:18
3869:17
3866:16
3863:15
3860:14
3857:13
3854:12
3851:11
3848:10
3814:Bit
3741:180
3712:200
3624:40
3611:36
3598:32
3580:28
3552:24
3539:20
3526:16
3511:96
3508:12
3488:64
3475:32
3454:31
3451:30
3448:29
3445:28
3442:27
3439:26
3436:25
3433:24
3430:23
3427:22
3424:21
3421:20
3418:19
3415:18
3412:17
3409:16
3406:15
3403:14
3400:13
3397:12
3394:11
3391:10
3357:Bit
3241:or
3219:NAT
3215:DNS
3128:RLP
3035:or
2901:TLS
2887:).
2787:SSH
2783:FTP
2623:PSH
2243:PPP
2235:CRC
2143:max
1956:ACK
1944:SYN
1709:30
1698:BGP
1694:MD5
1680:29
1659:28
1641:10
1564:SS
1372:ECN
1270:64
1257:60
1249:56
1226:20
1206:16
1194:FIN
1187:SYN
1180:RST
1173:PSH
1166:ACK
1159:URG
1152:ECE
1145:CWR
1130:96
1127:12
1117:64
1104:32
1078:31
1075:30
1072:29
1069:28
1066:27
1063:26
1060:25
1057:24
1054:23
1051:22
1048:21
1045:20
1042:19
1039:18
1036:17
1033:16
1030:15
1027:14
1024:13
1021:12
1018:11
1015:10
981:Bit
736:761
732:RFC
549:MAC
544:PPP
534:ARP
499:ECN
494:NDP
422:UDP
417:TCP
377:SSH
362:SIP
357:RIP
347:RTP
337:PTP
332:POP
322:NTP
297:IRC
272:FTP
267:DNS
252:BGP
155:of
125:TCP
101:(4)
48:TCP
8547::
8505:**
8422:16
8420:.
8398:.
8384:.
8380:.
8365:.
8348:.
8338:.
8328:19
8326:.
8306:.
8296:57
8294:.
8264:.
8260:.
8233:.
8229:.
8221:;
8196:.
8133:.
8101:.
8086:.
8069:.
8057:34
8055:.
8049:.
8032:.
8022:28
8020:.
8003:.
7993:.
7983:18
7981:.
7961:.
7951:32
7949:.
7945:.
7925:.
7898:.
7886:29
7884:.
7880:.
7853:.
7843:.
7825:.
7815:.
7797:.
7787:.
7769:.
7759:.
7741:.
7731:.
7713:.
7703:.
7685:.
7675:.
7654:.
7644:.
7626:.
7616:.
7598:.
7588:.
7570:.
7560:.
7542:.
7532:.
7510:.
7500:.
7490:;
7474:.
7464:.
7446:.
7436:.
7414:.
7404:.
7383:.
7373:.
7351:.
7341:.
7323:.
7313:.
7291:.
7281:.
7263:.
7253:.
7235:.
7225:.
7203:.
7193:.
7172:.
7162:.
7152:;
7136:.
7126:.
7108:.
7098:.
7077:.
7067:.
7057:;
7042:.
7032:.
7011:.
7001:.
6980:.
6970:.
6949:.
6939:.
6929:;
6902:.
6891:.
6873:.
6862:.
6783:.
6773:.
6728:^
6557:^
6458:^
6236:.
6232:.
6210:.
6173:.
6169:.
6139:.
6113:.
6080:.
6068:41
6066:.
6062:.
5979:.
5969:.
5957:.
5907:.
5903:.
5878:.
5822:.
5790:}}
5786:{{
5719:.
5622:.
5595:.
5591:.
5554:.
5550:.
5465:.
5457:.
5447:.
5439:.
5425:.
5421:.
5361:^
5298:^
5201:18
5199:.
5195:.
5160:.
5152:.
5140:27
5138:.
5051:}}
5047:{{
5035:.
4914:^
4850:.
4789:^
4770:^
4741:^
4696:^
4679:.
4675:.
4650:.
4646:.
4622:.
4598:.
4572:.
4538:,
4495:.
4484:10
4482:.
4391:22
4389:.
4385:.
4324:,
4270:^
3937:8
3929:4
3919:0
3916:0
3845:9
3842:8
3839:7
3836:6
3833:5
3830:4
3827:3
3824:2
3821:1
3818:0
3805:3
3802:2
3799:1
3796:0
3720:20
3485:8
3472:4
3462:0
3459:0
3388:9
3385:8
3382:7
3379:6
3376:5
3373:4
3370:3
3367:2
3364:1
3361:0
3348:3
3345:2
3342:1
3339:0
3282:.
3245:.
3209:,
3166:A
3137:,
3015:.
2959:.
2879:,
2875:,
2871:,
2654:.
2590:,
2510:.
2351:.
2343:,
2339:,
2282:0.
2205:.
2081:.
2042::
1715:—
1712:N
1704:.
1686:—
1683:N
1675:.
1665:—
1662:4
1638:8
1621:5
1606:—
1603:2
1600:4
1585:S
1582:3
1579:3
1561:4
1558:2
1547:—
1544:—
1541:1
1531:—
1528:—
1525:0
1441:.)
1307:1.
1114:8
1101:4
1086:0
1083:0
1012:9
1009:8
1006:7
1003:6
1000:5
997:4
994:3
991:2
988:1
985:0
972:3
969:2
966:1
963:0
832:.
824:,
820:,
738:.
679:.
647:.
488:v6
477:v6
472:v4
467:IP
261:v6
229:.
221:,
8503:.
8484:.
8463:.
8432:.
8428::
8408:.
8402::
8392::
8371:.
8356:.
8342::
8334::
8314:.
8302::
8283:.
8274:.
8268::
8247:.
8241::
8235:9
8213:.
8204:.
8200::
8177:.
8173::
8137:.
8124:.
8120::
8107:.
8092:.
8077:.
8063::
8040:.
8028::
8011:.
7997::
7989::
7969:.
7957::
7933:.
7921::
7908:.
7902::
7892::
7860:.
7847::
7832:.
7819::
7804:.
7791::
7776:.
7763::
7748:.
7735::
7720:.
7707::
7692:.
7679::
7661:.
7648::
7633:.
7620::
7605:.
7592::
7577:.
7564::
7549:.
7536::
7517:.
7504::
7481:.
7468::
7453:.
7440::
7421:.
7408::
7390:.
7377::
7358:.
7345::
7330:.
7317::
7298:.
7285::
7270:.
7257::
7242:.
7229::
7210:.
7197::
7179:.
7166::
7143:.
7130::
7115:.
7102::
7084:.
7071::
7049:.
7036::
7018:.
7005::
6987:.
6974::
6956:.
6943::
6849:.
6816:.
6791:.
6769::
6750:.
6603:.
6552:.
6492:.
6468:.
6321:.
6309:.
6296:.
6272:.
6260:.
6247:.
6217:.
6204::
6184:.
6154:.
6124:.
6099:.
6084::
6048:.
6036:.
5987:.
5965::
5942:.
5918:.
5889:.
5864:.
5833:.
5796:)
5782:.
5758:.
5729:.
5696:.
5670:.
5637:.
5607:.
5578:.
5565:.
5513:.
5501:.
5489:.
5476:.
5443::
5261:.
5211:.
5207::
5168:.
5156::
5087:.
5057:)
5043:.
4996:.
4971:.
4926:.
4909:.
4860:.
4784:.
4735:.
4690:.
4661:.
4632:.
4608:.
4584:.
4580::
4574:7
4557:.
4507:"
4505:.
4499::
4454:.
4441:.
4397::
4380:"
4376:"
4363:.
2186:G
2166:)
2155:4
2152:,
2149:G
2146:(
2140:+
667:(
631:(
583:e
576:t
569:v
490:)
486:(
283:)
263:)
259:(
123:(
79:)
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.