Vous êtes sur la page 1sur 3

Transport Control Protocol (TCP)

TCP is one of the original protocols designed in the TCP/IP suite and hence the name of the model.
When the application layer needs to send large amount of data, it sends the data down to the transport
layer for TCP or UDP to transport it across the network. TCP first sets up a virtual-circuit between the
source and the destination in a process called three-way handshake. Then it breaks down the data into
chunks called segments, adds a header to each segment and sends them to the Internet layer.

The TCP header is 20 to 24 bytes in size and the format is shown in Figure 1-11. It is not necessary to
remember all fields or their size but most of the fields are discussed below.

Figure 1-11 TCP header

When the Application layer sends data to the transport layer, TCP sends the data across using the
following sequence:

Connection Establishment – TCP uses a process called three-way handshake to establish a connection
or virtual-circuit with the destination. The three-way handshake uses the SYN and ACK flags in the Code
Bits section of the header. This process is necessary to initialize the sequence and acknowledgement
number fields. These fields are important for TCP and will be discussed below.

Figure 1-12 TCP three-way handshake


As shown in Figure 1-12, the source starts the three-way handshake by sending a TCP header to the
destination with the SYN flag set. The destination responds back with the SYN and ACK flag sent. Notice
in the figure that destination uses the received sequence number plus 1 as the Acknowledgement
number. This is because it is assumed that 1 byte of data was contained in the exchange. In the final
step, the source responds back with only the ACK bit set. After this, the data flow can commence.

Data Segmentation – The size of data that can be sent across in a single Internet layer PDU is limited by
the protocol used in that layer. This limit is called the maximum transmission unit (MTU). The
application layer may send data much larger than this limit; hence TCP has to break down the data into
smaller chucks called segments. Each segment is limited to the MTU in size. Sequence numbers are
used to identify each byte of data. The sequence number in each header signifies the byte number of the
first byte in that segment.

Flow Control – The source starts sending data in groups of segments. The Window bit in the header
determines the number of segments that can be sent at a time. This is done to avoid overwhelming the
destination. At the start of the session the window in small but it increases over time. The destination host
can also decrease the window to slow down the flow. Hence the window is called the sliding window.
When the source has sent the number of segments allowed by the window, it cannot send any further
segments till an acknowledgement is received from the destination. Figure 1-13 shows how the window
increases during the session. Notice the Destination host increasing the Window from 1000 to 1100 and
then to 1200 when it sends an ACK back to the source.

Figure 1-13 TCP Sliding Window and Reliable delivery

Reliable Delivery with Error recovery – When the destination receives the last segment in the agreed
window, it has to send an acknowledgement to the source. It sets the ACK flag in the header and the
acknowledgement number is set as the sequence number of the next byte expected. If the destination
does not receive a segment, it does not send an acknowledgement back. This tells the source that some
segments have been lost and it will retransmit the segments. Figure 1-13 shows how windowing and
acknowledgement is used by TCP. Notice that when source does not receive acknowledgement for the
segment with sequence number 2000, it retransmits the data. Once it receives the acknowledgement, it
sends the next sequence according to the window size.
Ordered Delivery – TCP transmits data in the order it is received from the application layer and uses
sequence number to mark the order. The data may be received at the destination in the wrong order due
to network conditions. Thus TCP at the destination orders the data according to the sequence number
before sending it to the application layer at its end. This order delivery is part of the benefit of TCP and
one of the purposes of the Sequence Number.

Connection Termination – After all data has been transferred, the source initiates a four-way handshake
to close the session. To close the session, the FIN and ACK flags are used.

Exam Alert: TCP is one of the most important protocols you will learn about while preparing for the CCNA exam.
Understanding how TCP works is very important and you will more than likely see an ACK question on the exam!

User Datagram Protocol (UDP)


The only thing common between TCP and UDP is that they use port numbers to transport traffic. Unlike
TCP, UDP neither establishes a connection nor does it provide reliable delivery. UDP
is connectionless and unreliable protocol that delivers data without overheads associated with TCP.
The UDP header contains only four parameters (Source port, Destination Port, Length and Checksum)
and is 8 bytes in size.

At this stage you might think that TCP is a better protocol than UDP since it is reliable. However you
have to consider that networks now are far more stable than when these protocols where conceived. TCP
has a higher overhead with a larger header and acknowledgements. The source also holds data till it
receives acknowledgement. This creates a delay. Some applications, especially those that deal with voice
and video, require fast transport and take care of the reliability themselves at the application layer. Hence
in lot of cases UDP is a better choice than TCP.

Vous aimerez peut-être aussi