WEBVTT

00:00:00.940 --> 00:00:05.570
Network communications have required a lot of thought and engineering,

00:00:05.740 --> 00:00:10.680
and how can we send data between two different systems and ensure that

00:00:10.680 --> 00:00:16.680
it's properly understood? When we talk as people we use analog types of

00:00:16.680 --> 00:00:22.740
communications. Our voice varies by frequency and amplitude, frequency

00:00:22.740 --> 00:00:27.500
being then the number of cycles per second, and amplitude being the

00:00:27.500 --> 00:00:28.890
strength of the signal.

00:00:29.480 --> 00:00:34.590
But when we talk in a computer, we're using digital signals,

00:00:34.600 --> 00:00:39.340
which means there's only two values, 1 or 0, for the most part.

00:00:40.000 --> 00:00:44.340
So, if I'm going to send a million 1s and 0s to a

00:00:44.340 --> 00:00:47.240
destination device in the next few seconds,

00:00:48.130 --> 00:00:51.910
that destination device needs to know, what does that 1

00:00:51.910 --> 00:00:57.500
mean in this place? So that is why they developed models

00:00:57.500 --> 00:00:59.860
and protocols for communication.

00:01:00.910 --> 00:01:05.140
The first of these that was really developed as the international standard

00:01:05.150 --> 00:01:10.830
was the ISO 7498, the Open Systems Interconnect Model.

00:01:11.810 --> 00:01:17.240
It also had a ‑2, or a second part, to the standard, which talked

00:01:17.240 --> 00:01:21.170
about how to put security into the OSI Model.

00:01:21.940 --> 00:01:27.130
We don't actually really use the OSI standard for communication.

00:01:27.140 --> 00:01:32.580
Instead, we use it as a reference to describe how communications work.

00:01:32.960 --> 00:01:34.540
So let's take a look at that.

00:01:35.510 --> 00:01:40.040
There are seven layers to the OSI stack, as we call it. Starting

00:01:40.040 --> 00:01:43.390
at the top with the Application, Presentation,

00:01:43.390 --> 00:01:48.210
Session, Transport, Network, Data Link, and Physical.

00:01:49.010 --> 00:01:55.470
The application layer is used to interface between the user's

00:01:55.470 --> 00:02:00.680
application and the communication system. Let's say a user writes an

00:02:00.690 --> 00:02:04.640
email using some type of email application.

00:02:05.020 --> 00:02:08.979
So that user application now has the content of that

00:02:08.979 --> 00:02:14.380
email, and the user hits Send. They want to send this data

00:02:14.390 --> 00:02:17.130
across to a destination device.

00:02:18.170 --> 00:02:21.890
The data itself contains the content of the email.

00:02:23.260 --> 00:02:25.900
When this Send button is pressed,

00:02:26.520 --> 00:02:32.560
this piece of data passes down to the application layer of the OSI stack.

00:02:33.160 --> 00:02:34.930
The application layer says,

00:02:34.930 --> 00:02:41.870
well, eventually this email is going to get to a destination device,

00:02:42.310 --> 00:02:46.380
and that destination device will need to know what to do with it, so

00:02:46.380 --> 00:02:48.610
I'll put a header on there, then I'll say,

00:02:48.610 --> 00:02:50.160
hey, this is an email.

00:02:50.490 --> 00:02:54.300
So when it's received by the application layer at the far end,

00:02:54.400 --> 00:03:00.170
it knows to pass it to the destination email's application,

00:03:00.280 --> 00:03:05.700
not to their web browser or their FTP server, or some other communication.

00:03:06.560 --> 00:03:11.010
So this header that is put on by the application layer is

00:03:11.010 --> 00:03:14.750
intended for the application layer at the far end.

00:03:15.810 --> 00:03:20.990
It's kind of an interesting thing to point out here, that the application

00:03:20.990 --> 00:03:24.470
layer of the OSI stack is not really the application,

00:03:24.510 --> 00:03:29.360
it's the interface to the application that the user is using.

00:03:30.430 --> 00:03:32.900
So the purpose of this header, as we said,

00:03:33.080 --> 00:03:38.650
is so that when the sender uses their user application to send traffic

00:03:38.660 --> 00:03:43.220
down through the application, presentation, and so on, down finally to

00:03:43.220 --> 00:03:49.360
the physical layer, it traverses across some type of physical media,

00:03:49.480 --> 00:03:54.380
and that data now reaches the receiver's machine. The receiver's

00:03:54.380 --> 00:03:59.960
machine then passes the data back up those seven layers of the OSI

00:03:59.960 --> 00:04:03.040
stack, and of course, as we said,

00:04:03.040 --> 00:04:07.220
in order for the application layer on the receiver's machine to know

00:04:07.220 --> 00:04:13.360
what to do with it, it then reads the header that was provided by its

00:04:13.360 --> 00:04:18.600
corresponding or peer level on the sender's machine, and it knows to

00:04:18.600 --> 00:04:21.550
send it to the correct user application.

00:04:22.280 --> 00:04:25.680
If you looked at the traffic going over the physical media,

00:04:25.710 --> 00:04:31.400
you would see the application header that indicates it's an email, and the data,

00:04:31.400 --> 00:04:33.820
the content, of the email itself.

00:04:34.790 --> 00:04:39.710
We can actually encrypt emails, which would mean we'd encrypt that data

00:04:39.710 --> 00:04:44.430
that's being sent, maybe using products like PGP or S/MIME,

00:04:44.430 --> 00:04:49.150
for example. When we go down to the presentation layer,

00:04:49.360 --> 00:04:52.830
this is where we deal with things like formatting and compression.

00:04:53.220 --> 00:04:57.580
If I'm going to compress some type of traffic to save space,

00:04:58.330 --> 00:05:03.240
then, I will use the presentation layer to do that. I'll put a

00:05:03.240 --> 00:05:07.430
header on there, the presentation header, that will tell the

00:05:07.430 --> 00:05:10.290
presentation layer at the far end, oh, by the way,

00:05:10.490 --> 00:05:14.730
this is compressed so you need to expand it back before you give it to the

00:05:14.730 --> 00:05:19.910
application layer or it won't know what to do with it. At the session

00:05:19.910 --> 00:05:23.160
layer, this is where we log in to a remote device.

00:05:23.860 --> 00:05:26.000
This is where we do session management.

00:05:26.150 --> 00:05:28.890
So if you're doing something like online banking,

00:05:28.930 --> 00:05:33.670
we put in here some type of indication which session this

00:05:33.670 --> 00:05:37.260
communication belongs to, so your traffic goes to your

00:05:37.260 --> 00:05:39.240
session and not to somebody else's.

00:05:39.760 --> 00:05:43.970
And here we see a number of different protocols used, things like

00:05:43.980 --> 00:05:48.550
Layer 2 Tunneling Protocol, or Point‑to‑Point Tunneling Protocol,

00:05:48.800 --> 00:05:50.900
that help us manage the session.

00:05:51.910 --> 00:05:57.280
We can also encrypt at this layer using things like Secure Shell.
