Now in the definition of what a network is we're told that a computer network is used for sharing resources
between nodes which are computing devices.
In other words, we have devices that are sharing resources between each other.
And there are two main devices that you need to be aware of initially and that's a server and a client.
Now what is a server.
So let's ask the robots once again.
Alexa what is a computer server? In computing
a server is a computer program or a device that provides functionality for other programs or devices
called clients.
This architecture is called the client server model and a single overall computation is distributed
across multiple processes or devices. So notice a server is providing a service or functionality to clients
in what's called a client server model.
So servers provide functionality to clients and that begs the question what is a client?
Alexa what is a client?
A client is a piece of computer hardware or software that accesses a service made available by a server.
The server is often on another computer system in which case the client accesses the service by way
of a network.
Now listen to that that's very important to remember.
A client accesses a service provided by a server.
Typically the server is a different computer or different computing device to the client across a network.
So we are going to access a service hosted by a server across a network.
Here's an example of a server big server right here inside
here are a lot of drive base.
Here's a hard drive.
here’s another one and another one and another one
and I could continue.
The whole idea of a server is to provide resources or functionality to clients. So this server is big
because we want a lot of storage,
we want a lot of computing power and a lot of memory in a server especially if we want to scale it up.
If you've got thousands and thousands of queries from many many clients to a server you wanted to have
the capacity so memory, CPU, storage to handle those queries.
So hence big device.
It needs to have the capacity to service the requests.
So if only one or two people are requesting a web page from the server that's not a problem.
But if we've got thousands and thousands of requests one server may not even be enough.
And then we have distributed services.
So we have a service such as a web page that's distributed across multiple servers.
Google as an example will have thousands upon thousands upon thousands of servers to service the requests
from millions of clients. So they will have many many servers to service or provide a service to the
clients.
When you go to the Google Website and you type in a request that's querying databases and retrieving
information from databases to give you a answer about some query that you've made.
So the server is providing a service to a client.
Now you don't need dedicated hardware like this to have a server a client device such as a laptop can
act as a server.
So the role will determine how that device is acting.
A physical laptop such as this laptop could be a client requesting a service from a server but it could
also be hosting a service so it may be running some kind of server and then sharing a file as an example
with a another PC, so it's hosting a file sharing service.
So clients access servers to make use of a service that the server is providing. A website will serve
a web page to a client which is then displayed on your computer as an example. Later in the course, we're
going to learn about network automation and network program ability.
That's becoming really important and in that kind of scenario you'll have one application or program
providing a service to another program typically using what's called an API or Application Programming
Interface.
We're going to ignore that example for the moment.
We'll get to that later where we've got machine talking to machine basically application talking to
application 1 application interacting with another application.
Let's hold the moment concentrate on physical devices.
Now a server such as this server over here, one physical computer will be listening on different port numbers
for different protocols.
What is a protocol?
It's basically a set of rules used for communication between devices.
As an example I'm speaking English here.
Hopefully, you can hear what I'm saying and hopefully, you can understand what I'm saying because I'm
using a set of conventions in my speech.
So in English we speak a certain way.
As an example some languages will use numbers differently to English.
The protocol that we are speaking here is English so I will say 21 but in a different language like
Afrikaans I'll say een-en-twintig which is basically saying one two to denote 21.
So the way that words are pronounced or the way that numbers are pronounced is reversed in a different
language to English.
The point is you and I are using a specific protocol we are listening to English as the transmission
and you can understand what I'm saying.
But if I switched my language or my protocol and started saying goeie more uhanet fan da, you might
struggle to understand me unless you understand South African.
or should I say Afrikaans.
The point is is that a server doesn't just automatically switch like we do in our brains from one language
to another.
It has to listen on specific port numbers.
Your ears are listening on the same frequencies for both English and Afrikaans then your brain
just switches from one language to another.
A server is not as clever as that.
It has to listen on specific port numbers for specific protocols.
As an analogy here's an analogue radio.
Old technology I know but notice here I'm not receiving anything because I'm not listening on a good
port
number but as I tune to specific port number
I can pick up a transmission I have to be careful because of copyright what I transmit
here but that is a different radio station or a different protocol
to say that the radio station.
So different radio stations transmit on different frequencies.
Think of that as an analogy to what a computer server is doing. A computer server like this is listening
on specific port numbers.
If you want to get a web page your browser is automatically configured or programmed to talk to port
80 or to port for 443.
If you're using an application like FTP the application is automatically going to talk to the server
on Port 21 and the server is listening on Port 21.
So a server can run multiple services and provide multiple services to clients client-server model client
requests something from a server the server provides the file or the service to the client.