initiating hosts received the TCP SYN/ACK packet
from the target host and responds with a session acknowledgment
packet. This packet has the SYN bit set off and the ACK bit set
on. The acknowledgment number in this packet is generated by
incrementing the sequence number from the target host by one
(ack = y + 1). The purpose of this packet is to inform the
target host that the initiating host has received and
understood the information sent by the target host. Once the
target host has received this packet, the TCP session has been
established, and reliable data exchange can begin.
A similar process is followed at TCP connection termination,
ensuring full and complete transfer of data and the orderly
termination of processes. TCP sliding windows
TCP
sliding window is the mechanism used to implement flow control
and packet retransmission. Before discussing the operation of
TCP windows, several terms should be explained:
- Transmit window – where segmented data is sequenced
and buffered for transmission on a sending host.
- Receive window – where segments are buffered for
re-sequencing on the receiving host.
- Segment
size – The maximum size TCP will make each segment (before
transmission) when processing data from higher layers.
- Acknowledgment – A packet sent from the receiving
host to the sending host, acknowledging the receipt of
particular packets.
- Acknowledgment trigger –
An event that triggers the transmission of an acknowledgment
packet on the receiving host, such as when two sequential
segments are received or when a predefined window threshold is
reached.
- Delayed acknowledgment timer – the
amount of time a receiving host will wait for an acknowledgment
trigger before sending ‘delayed acknowledgment’.
- Delayed acknowledgment – an acknowledgment packet
triggered by the ‘delayed acknowledgment timer’.
- Retransmission timer – the amount of time the
sending host will wait for an acknowledgment before
retransmitting a packet.
Recall that TCP
receive-window sizes are exchanged between hosts as part of the
TCP connection establishment. When hosts in a TCP connection
exchange data, they follow this process: - The sending
host initiates the TCP connection establishment process, during
which, each host transmits its own receive-window size to the
other, and sets its own transmit window to the same size as the
receive window of the other host.
- TCP on the sending
host processes data from higher layer protocols into segments
(according to the configured segment size) and buffers them for
transmission in the transmit window. Segments waiting to be put
into the transmit window are buffered in the transmit buffer.
- Segments in the transmit window are copied, and the
copies are passed to the IP process for transmission. At this
point, the retransmit timer for each segment is started. When
passing the segments to IP, TCP tags each of them with a TCP
header containing a sequence number. A copy of each packet will
remain in the transmit window until an acknowledgment is
received accounting for each segment.
- The receiving
host places the received segments in its receive window in
sequence according to the sequence number of each segment and
starts a delayed acknowledgment timer for each. When two
sequential segments are received or a pre-defined window
threshold is reached, the receiving host sends an
acknowledgment packet for the received segments to the sending
host. This acknowledgment also contains the current size of the
receive window of the receiving host.
- If an
acknowledgment is not triggered on the receiving host before
the delayed acknowledgment timer for a segment expires, the
receiving host sends a delayed acknowledgment packet for that
segment.
- The sending host receives the acknowledgment
(or delayed acknowledgment) from the receiving host and
discards the acknowledged segments from its own transmit
window. The transmit window now ‘slides’ past the acknowledged
segments and accepts new segments waiting for transmission.
These new segments are passed to the IP process for
transmission (as described in Step 3).
- If the sending
host does not receive the acknowledgment (or delayed
acknowledgment) before the retransmit timer expires on a
segment (because either the data segment or the acknowledgment
was lost in transit), the sending host will resend that data
segment and reset the appropriate retransmit timer to double
its original time.
- Once all segments have been
transmitted and acknowledged, the sending host initiates the
TCP connection termination process to properly terminate the
connection and associated processes on each host.
Because TCP window size is important to the efficient operation
of the network, TCP window size is able to dynamically change
during the course of the transmission. In other words, TCP is
effectively self-tuning its efficiency according to the
conditions on the network. This self-tuning mechanism depends
on the number of TCP packets successfully received by the
receiving host over a percentage of the receive-window size. If
the receiving host is receiving a large number of sequential
data within a short period of time, it will exceed a threshold
defined as a percentage of the receive-window size. This causes
the receiving host to increase the size of its receive window
and informs the sending host of the change by putting this
information into one of the outbound acknowledgement packets.
Once the sending host receives the acknowledgement packet with
the new receive-window size for the receiving host, the sending
host increases the size of the transmit window. The
receive-window size of the receiving host will continue to get
bigger until the growth threshold of the window is the same as
the rate at which the network can support data transfer. This
process will continue until the capacity of the slowest network
link is saturated and network contention is starting to occur.
As the gap between the data transfer rate and threshold get
smaller, the rate at which the window grows gets smaller. This
explains why, when downloading large files from the Internet or
across a wide area network, the transfer rate initially
increases rapidly, but plateaus to a fairly constant transfer
rate for the remainder of the download. If the network becomes
congested from another source, packets and acknowledgements in
existing traffic flows will be lost. This will cause the same
process to operate in reverse, reducing the receive-window size
of the receiving host until there is little or no gap between
the data transfer rate and the threshold of the window. Web
Links Protocol Numbers http://www.iana.org/assignments/protocol-nu
mbers
Content 6.1 Characteristics of
Transport Layer Technologies 6.1.4 Standard
access control lists Recall that access control lists
(ACLs) can be implemented on routers to permit and deny traffic
that matches predefined profiles. Traffic profiles can be
configured to match individual hosts, parts of networks, or
entire ranges of networks, and can apply to all IP traffic, or
traffic using a specific source or destination port. Access
lists can also be used to filter traffic for other operations
on the network equipment, particularly network management
traffic destined to a network switch or router. Standard access
lists examine only the source address of packets. This means