1) The IP Address is
used to uniquely identify the desired host we need
to contact. This information is not shown in the
above packet because it exists in the IP header
section located right above the TCP header we are
analysing. If we were to expand the IP header, we
would (certainly) find the source and destination IP
Address fields in there.
2) The
2nd important aspect, the
port number, allows us
to identify the service or application our data or
request must be sent to, as we have previously
stated. When a host, whether it be a simple computer
or a dedicated server, offers various services such
as http, ftp, telnet, all clients connecting to it
must use a port number to choose which particular
service they would like to use.
The
best way to understand the concept is through
examples and there are plenty of them below, so
let's take a look at a few, starting from a simple
one and then moving towards something slightly more
complicated.
Time
To Dive Deeper!
Let's
consider your web browser for a moment.
When
you send a http request to download a webpage, it
must be sent to the correct web server in order for
it to receive it, process it and allow you to view
the page you want. This is achieved by obtaining the
correct IP address via DNS resolution and sending
the request to the correct port number at the remote
machine (web server). The port value, in the case of
an http request, is usually
80.
Once
your request arrives at the web server, it will
check that the packet is indeed for itself. This is
done by observing the destination IP Address of the
newly received packet. Keep in mind that this
particular step is a function of the Network layer.
Once it
verifies that the packet is in fact for the local
machine, it will process the packet and see that the
destination port number is equal to
80. It then
realises it should send the data (or request) to the
http deamon that's waiting in the background to
serve clients:
Using this
neat method we are able to use the rest of the
services offered by the server. So, to use the FTP
service, our workstation generates a packet that is
directed to the server's IP address, that is
200.0.0.1, but this
time with a destination port of
21.
The
diagram that follows illustrates this process:
By now you
should understand the purpose of the destination
port and how it allows us to select the services we
require from hosts that offer them.
For those
who noticed, our captured packet at the beginning of
this page also shows the existence of another port,
the source port, which we are going to take a look
at below.
Understanding the
Source Port
The source
port serves analogues to the destination port, but
is used by the sending host to help keep track of
new incoming connections and existing data streams.
As most of
you are well aware, in TCP/UDP data communications,
a host will always provide a destination and source
port number. We have already analysed the
destination port, and how it allows the host to
select the service it requires. The source port is
provided to the remote machine, in the case of our
example, this is the Internet
Server, in order for it to reply to the
correct session initiated by the other side.
This is
achieved by reversing the destination and source
ports. When the host (in our example, Host A)
receives this packet, it will identify the packet as
a reply to the previous packet it sent:
As Host A
receives the Internet Server's
reply, the Transport
layer will notice the reversed ports and recognise
it as a response to the
previous packet it sent (the one with the
green arrow).
The
Transport and Session layers keep track of all new
connections, established connections and connections
that are in the process of being torn down, which
explains how Host A remembers that it's expecting a
reply from the Internet Server.
Of course
the captured packet that's displayed at the
beginning of the page shows different port numbers
than the ones in these diagrams. In that particular
case, the workstation sends a request to its local
http proxy server that runs on port 8080, using port
3025 as its source port.
We should
also note that TCP uses a few more mechanisms to
accurately keep track of these connections. The
pages to follow will analyse them as well, so don't
worry about missing out on any information, just
grab some brain food (hhmmm chocolate...), sit back,
relax and continue reading!
|