In this lesson, we're going to discuss
the transmission control protocol.
Now, the transmission control protocol or TCP,
is a fundamental protocol within the internet protocol suite
that consists of a set of rules
that govern the exchange of data over the internet.
The transmission control protocol is widely used
due to its reliability in delivering packets of data
across the network because it can ensure
that all the data packets reach their intended destination,
in the correct order and without corruption.
Now, this is achieved through a process of error checking,
data sequencing, and acknowledgement.
TCP operates it through the transport layer of the OSI model
which conceptualizes and standardizes the functions
of a telecommunication or computing system
into seven abstraction layers.
At its core, TCP is responsible
for ensuring the reliable transmission of data
between a client and a server,
by breaking down larger messages into smaller packets,
setting them over the network,
and reassembling them at the destination.
This packetization makes the data transfer
more efficient and more manageable.
Now, when you think of TCP,
you should immediately think of the three-way handshake
that's going to be used to establish a connection
between two different systems.
This handshaking process will involve three steps,
the SYN, or synchronize step,
the SYN-ACK, or synchronize-acknowledge step,
and the ACK or acknowledge step.
Initially, the client is going to send a SYN packet
to the server to initiate a communication session.
Then, the server will respond back with a SYN-ACK packet
to acknowledge receipt of the SYN packet,
and to inform the client that the server is willing
and able to establish a session.
Finally, the client will send an ACK packet
back to the server to confirm
the establishment of that connection.
This three-way handshaking process
will ensure that both the sender and the receiver
are ready for data transmission,
and that the communication channel is reliable and secure.
Another important feature of TCP,
is its error checking and flow control mechanisms,
that ensure the reliable deliverability
of the data being transmitted,
using the transmission control protocol.
TCP will use a sequence number and acknowledgement messages
to ensure the data is being received correctly
and in the proper order.
If a packet is lost or corrupted,
the protocol will notice that,
and it will require for it to be retransmitted
by the sender.
TCP also employs flow control to prevent the center
from overwhelming the receiver with too much data at once.
This flow control is achieved
through a mechanism called, windowing.
Windowing occurs by allowing the receiver
to specify the amount of data it can handle at one time.
And during the communication session,
this window can continually be widened or narrowed,
to allow more or less data to be sent
during each transmission,
based on the current network conditions
being experienced by that client.
When sending data over the network,
the transmission control protocol will use ports
as part of its communication process.
Now, a port is a numerical identifier
inside of the TCP/IP suite,
and other networking protocols
that helps distinguish between different services
or applications running on the same physical computer.
Each TCP connection is going to be identified
by a pair of endpoint addresses,
each consisting of an IP address and a port number.
We call these, the source and destination IPs,
and the source and destination ports.
For example, when you access a secure website,
your web browser will establish a TCP connection
with the server over Port 443,
which is a standard port for HTTPS,
known as the Hyper Text Transfer Protocol Secure,
and this traffic will then use SSL or TLS
to encrypt any data being sent over this particular port.
Now, ports are important in the communication process,
because these ports allow for multiple network applications
to coexist on the same physical server,
while each application or service
gets aside a unique port number to identify its function.
So remember, the transmission control protocol
is at the heart of internet communication
by ensuring the reliability and order delivery
of data between a client and a server.
It's really important that you remember
that TCP operates at the transport layer of the OSI model,
and it uses a process of packetization,
acknowledgement, and error checking,
to ensure data integrity.
The three-way handshake here
is going to be crucial for establishing the connection,
and TCP will use ports to allow
for the logical differentiation of services
on a single physical machine.