Sequence Number.
32 bits.
The sequence number of the first data byte in this segment.
If the SYN bit is set, the sequence number is the initial sequence number and the first data byte is initial sequence number + 1.

Acknowledgment Number.
32 bits.
If the ACK bit is set, this field contains the value of the next sequence number the sender of the segment is expecting to receive.
Once a connection is established this is always sent.

Data Offset.
4 bits.
The number of 32-bit words in the TCP header.
This indicates where the data begins.
The length of the TCP header is always a multiple of 32 bits.

Window.
16 bits, unsigned.
The number of data bytes beginning with the one indicated in the acknowledgment field which the sender of this segment is willing to accept.

Checksum.
16 bits.
This is computed as the 16-bit one's complement of the one's complement sum of a pseudo header of information from the IP header, the TCP header, and the data, padded as needed
with zero bytes at the end to make a multiple of two bytes.
The pseudo header contains the following fields:

00

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Source IP address

Destination IP address

0

IP Protocol

Total length

Urgent Pointer.
16 bits, unsigned.
If the URG bit is set, this field points to the sequence number of the last byte in a sequence of urgent data.

Options.
0 to 40 bytes.
Options occupy space at the end of the TCP header.
All options are included in the checksum.
An option may begin on any byte boundary.
The TCP header must be padded with zeros to make the header length a multiple of 32 bits.

ABC, Appropriate Byte Counting.
Congestion control algorithm.
A modification to the algorithm for increasing TCP's congestion window (cwnd) that improves both performance and security.
Rather than increasing a TCP's congestion window based on the number of acknowledgments (ACKs) that arrive at
the data sender, the congestion window is increased based on the number of bytes acknowledged by the arriving ACKs.
The algorithm improves performance by mitigating the impact of delayed ACKs on the growth of cwnd.
At the same time, the algorithm provides cwnd growth in direct relation to the probed capacity of a network path, therefore providing a more
measured response to ACKs that cover only small amounts of data (less than a full segment size) than ACK counting.
This more appropriate cwnd growth can improve both performance and can prevent inappropriate cwnd growth in response to a misbehaving receiver.
On the other hand, in some cases the modified cwnd growth algorithm causes larger bursts of segments to be sent into the network.
In some cases this can lead to a non-negligible increase in the drop rate and reduced performance.

active open.

AIMD, Additive Increase, Multiplicative Decrease.
Congestion control algorithm.
(RFC 2914)
In the absence of congestion, the TCP sender increases its congestion window by at most one packet per roundtrip time.
In response to a congestion indication, the TCP sender decreases its congestion window by half.
More precisely, the new congestion window is half of the minimum of the congestion window and the receiver's advertised window.

Congestion Avoidance.
Congestion control algorithm.

Connection.
A logical communication path identified by a pair of endpoints.

cwnd, congestion window.
TCP state variable.
This variable limits the amount of data a TCP can send.
At any given time, a TCP MUST NOT send data with a sequence number higher than the sum of the highest
acknowledged sequence number and the minimum of cwnd and rwnd.

TCP uses two algorithms for increasing the congestion window.
During steady-state, TCP uses the Congestion Avoidance algorithm to linearly increase the value of cwnd.
At the beginning of a transfer, after a retransmission
timeout or after a long idle period (in some implementations), TCP uses the Slow Start algorithm to increase cwnd exponentially.
Slow Start bases the cwnd increase on the number of incoming acknowledgments.
During congestion avoidance RFC 2581 allows more latitude in increasing cwnd, but traditionally
implementations have based the increase on the number of arriving ACKs.

CWV, Congestion Window Validation.
Algorithm.
This algorithm limits the amount of unused cwnd a TCP connection can accumulate.
ABC can be used in conjunction with CWV to obtain an accurate measure of the network path.

Eifel.
Algorithm.
(RFC 3522)
This algorithm allows a TCP sender to detect a posteriori whether it has entered loss recovery unnecessarily.
It requires that the TCP Timestamp option is enabled for a connection.
Eifel makes use of the fact that the TCP Timestamp option eliminates the retransmission ambiguity in TCP.
Based on the timestamp of the first acceptable ACK that arrives during loss recovery, it decides whether loss recovery was entered unnecessarily.
The Eifel detection algorithm provides a basis for future TCP enhancements.
This includes response algorithms to back out of loss recovery by restoring a TCP sender's congestion control state.

Fast Recovery.
Congestion control algorithm.
A sender invokes the Fast Recovery after Fast Retransmit.
This algorithm allows the sender to transmit at half its previous rate
(regulating the growth of its window based on congestion avoidance), rather than having to begin a Slow Start.
This also saves time.

Fast Retransmit.
Congestion control algorithm.
(RFC 2757)
When a TCP sender receives several duplicate ACKs, fast retransmit allows it to infer that a segment was lost.
The sender retransmits what it considers to be this lost segment without waiting for the full timeout, thus saving time.

flight size.
The amount of data that has been sent but not yet acknowledged.

full sized segment.
A segment that contains the maximum number of data bytes permitted.

IW, Initial Window.
The size of the sender's congestion window after the three-way handshake is completed.

LFN, Long Fat Network.
A communications path with a large bandwidth * delay product.

LW, Loss Window.
The size of the congestion window after a TCP sender detects loss using its retransmission timer.

MSL, Maximum Segment Lifetime.
The maximum time in seconds that a segment may be held before being
discarded.

MSS, Maximum Segment Size.
When IPv4 is used as the network protocol, the MSS is calculated as the maximum size of an IPv4 datagram minus 40 bytes.

When IPv6 is used as the network protcol, the MSS is calculated as the maximum packet size minus 60 bytes.
An MSS of 65535 should be interpreted as infinity.

passive open.

PAWS, Protect Against Wrapped Sequences.
A mechanism to reject old duplicate segments that might corrupt an open TCP connection.
PAWS uses the same TCP timestamp option as the RTTM mechanism and assumes that
every received TCP segment (including data and ACK segments) contains a timestamp whose values are monotone non-decreasing in time.
The basic idea is that a segment can be discarded as an old duplicate if it is received with a
timestamp less than some timestamp recently received on this connection.

RMSS, Receiver Maximum Segment Size.
The size of the largest segment the receiver is willing to accept.
This is the value specified in the MSS option sent by the receiver during connection startup.
Or, if the MSS option is not used, 536 bytes.
The size does not include the TCP headers and options.

RTT, Round trip time.

RTTM, Round-Trip Time Measurement.
A technique for measuring the RTT by use of timestamps.
The data segments are timestamped using the TSOPT option.
The resulting ACK packets contain timestamps from the receiver.
The resulting RTT can then be determined by the difference in the timestamps.

RW, Restart Window.
The size of the congestion window after a TCP restarts transmission after an idle period.

SACK, Selective Acknowledgement.
Algorithm.
This technique allows the data receiver to inform the sender about all segments that have
arrived successfully, so the sender need retransmit only the segments that have actually been lost.
This extension uses two TCP options.
The first is an enabling option, SACK permitted, which may be
sent in a SYN segment to indicate that the SACK option can be used once the connection is established.
The other is the SACK option itself, which may be sent over an established connection once permission has been given.

segment.
A TCP data or acknowledgment packet.

Slow Start.
Congestion control algorithm.
This algorithm is used to gradually increase the size of the TCP congestion window.
It operates by observing that the rate at which new packets should be injected into the network is the rate at which the
acknowledgments are returned by the other end.

SMSS, Sender Maximum Segment Size.
The size of the largest segment that the sender can transmit.
This value can be based on the maximum transmission unit of the network, the path MTU discovery algorithm, RMSS, or other factors.
The size does not include the TCP headers and options.

SWS, Silly Window Syndrome.

TFRC, TCP Friendly Rate Control.
Algorithm.
A congestion control mechanism for unicast flows operating in a best effort Internet environment.
It is reasonably fair when competing for bandwidth with TCP flows, but has a much lower variation of throughput over time compared with
TCP, making it more suitable for applications such as telephony or streaming
media where a relatively smooth sending rate is of importance.
TFRC is designed for applications that use a fixed packet size and vary their sending rate in packets per second in response to congestion.