WEBVTT

1
00:00.000 --> 00:06.040
Before mapping out our per-hat behaviors, we need to look at our DSCP bits.

2
00:06.040 --> 00:10.200
So our bits are going to be split into.

3
00:10.200 --> 00:13.740
We've got those first three bits that were originally set aside for IP

4
00:13.740 --> 00:14.720
precedence, and

5
00:14.720 --> 00:19.620
then we have the other three bits that were added in for DSCP, and remember, D

6
00:19.620 --> 00:20.520
SCP gets

7
00:20.520 --> 00:21.920
all of these.

8
00:21.920 --> 00:26.290
And yet IP precedence, from a backward compatibility perspective, is only going

9
00:26.290 --> 00:27.800
to look at the first

10
00:27.800 --> 00:29.040
set of three.

11
00:29.040 --> 00:33.300
They have to be able to coexist, even though IP precedence is pretty well dead
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

11
00:29.040 --> 00:33.300
They have to be able to coexist, even though IP precedence is pretty well dead

12
00:33.300 --> 00:33.800
at this

13
00:33.800 --> 00:34.800
point.

14
00:34.800 --> 00:43.070
If, for example, we have 101, 110, which, by the way, that would actually map

15
00:43.070 --> 00:43.560
out to

16
00:43.560 --> 00:48.040
DSCP of 46, which is expedited forwarding, as we've said.

17
00:48.040 --> 00:50.160
So we run the math there.

18
00:50.160 --> 00:54.660
Either way, IP precedence, a device that receives it and can only speak IP

19
00:54.660 --> 00:55.680
precedence, would

20
00:55.680 --> 00:58.480
view this as a five.

21
00:58.480 --> 01:03.370
So kind of interesting how this turns out, how we actually have two different
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

21
00:58.480 --> 01:03.370
So kind of interesting how this turns out, how we actually have two different

22
01:03.370 --> 01:03.800
numbers

23
01:03.800 --> 01:04.800
here.

24
01:04.800 --> 01:09.710
But interestingly, we might notice that because this is, we'll do our binary

25
01:09.710 --> 01:10.600
math here, the

26
01:10.600 --> 01:16.510
ones, the twos, the fours, this is the eights column here, or the eights number

27
01:16.510 --> 01:16.680
.

28
01:16.680 --> 01:23.540
IP precedence is essentially just looking at this value as a number 0 through 7

29
01:23.540 --> 01:24.040
, and from

30
01:24.040 --> 01:27.960
a DSCP perspective, it's going to multiply out by 8.

31
01:27.960 --> 01:34.320
For example, IP precedence says that we have five here, well, five times eight
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

31
01:27.960 --> 01:34.320
For example, IP precedence says that we have five here, well, five times eight

32
01:34.320 --> 01:35.400
is 40, and

33
01:35.400 --> 01:41.320
then we can see the extra six here, 110 is six, and that's how we get to 46.

34
01:41.320 --> 01:45.780
That math is going to be useful to us here in a moment when we talk about the

35
01:45.780 --> 01:47.560
class selector.

36
01:47.560 --> 01:51.240
So we're now diving into our PHBs.

37
01:51.240 --> 01:55.800
And the first PHB group that we're going to talk about is class selector.

38
01:55.800 --> 01:59.050
We're going to talk about three different groups, class selector, assured

39
01:59.050 --> 01:59.880
forwarding,

40
01:59.880 --> 02:01.040
and expedited forwarding.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

40
01:59.880 --> 02:01.040
and expedited forwarding.

41
02:01.040 --> 02:04.450
We mentioned the second two in the previous video, but we're going to start

42
02:04.450 --> 02:05.040
with class

43
02:05.040 --> 02:06.360
selector.

44
02:06.360 --> 02:13.220
Class selector defines eight different DSCP values, and it's meant to provide

45
02:13.220 --> 02:13.880
backward

46
02:13.880 --> 02:18.480
compatibility with IP precedence.

47
02:18.480 --> 02:26.920
The idea here is that I can still use DSCP PHBs, specifically these PHBs, and

48
02:26.920 --> 02:27.920
yet it's

49
02:27.920 --> 02:31.240
something that IP precedence is going to understand.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

49
02:27.920 --> 02:31.240
something that IP precedence is going to understand.

50
02:31.240 --> 02:38.090
As a result, we're essentially saying we're only going to use the first three

51
02:38.090 --> 02:38.920
bits.

52
02:38.920 --> 02:44.700
This assures the network that with some device doesn't support DSCP, then we

53
02:44.700 --> 02:46.240
can still support

54
02:46.240 --> 02:49.960
it even though we are only looking at the IP precedence bits.

55
02:49.960 --> 02:57.760
So the range for this is CS0, where CS stands for class selector, through CS7.

56
02:57.760 --> 03:02.480
And this is going to match the value that shows up here in those first three
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

56
02:57.760 --> 03:02.480
And this is going to match the value that shows up here in those first three

57
03:02.480 --> 03:03.160
bits.

58
03:03.160 --> 03:09.240
So for example, CS4 is going to be a binary of 100 because that's binary for

59
03:09.240 --> 03:10.120
four, and

60
03:10.120 --> 03:17.410
then 0, 0, 0, we're always going to have zeros here, regardless of what happens

61
03:17.410 --> 03:18.000
in the first

62
03:18.000 --> 03:19.000
three bits.

63
03:19.000 --> 03:21.760
So 0, 0, 0, there we go.

64
03:21.760 --> 03:25.790
So if we want to do a calculation to convert it to decimal, which is going to

65
03:25.790 --> 03:26.520
be a big part

66
03:26.520 --> 03:30.820
of all of these conversations, is what's the actual decimal number in here,
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

66
03:26.520 --> 03:30.820
of all of these conversations, is what's the actual decimal number in here,

67
03:30.820 --> 03:31.640
well, we're

68
03:31.640 --> 03:35.820
simply going to take the CS value and we're going to multiply it by eight for

69
03:35.820 --> 03:36.320
the reason

70
03:36.320 --> 03:41.040
that we just mentioned up here with the fact that from a six bits perspective,

71
03:41.040 --> 03:41.960
we're essentially

72
03:41.960 --> 03:45.240
only changing the eights and up.

73
03:45.240 --> 03:50.390
So for example, if I've got a CS of four, like we just said, we can say, all

74
03:50.390 --> 03:51.680
right, well,

75
03:51.680 --> 03:55.760
four times eight is equal to 32.

76
03:55.760 --> 04:01.940
And if we look at what we just said here, this is the ones to the zero power,
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

76
03:55.760 --> 04:01.940
And if we look at what we just said here, this is the ones to the zero power,

77
04:01.940 --> 04:02.800
but ones,

78
04:02.800 --> 04:07.720
two's, four's, eight's, sixteens, and yes, that is the 32's column.

79
04:07.720 --> 04:10.000
And so it happens to be 32.

80
04:10.000 --> 04:15.280
So that means that by extension, CS six is simply six times eight, which must

81
04:15.280 --> 04:16.040
be a decimal

82
04:16.040 --> 04:18.320
value of 48.

83
04:18.320 --> 04:26.670
So we can more or less use class selector to align ourselves with COS and IP

84
04:26.670 --> 04:28.560
precedence.

85
04:28.560 --> 04:30.360
That is what class selector is for.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

85
04:28.560 --> 04:30.360
That is what class selector is for.

86
04:30.360 --> 04:33.990
If we just want to use eight different values in our network and always align

87
04:33.990 --> 04:34.600
with COS and

88
04:34.600 --> 04:39.630
IP precedence, then class selector is exactly what we're going to use for our

89
04:39.630 --> 04:41.160
per hot behaviors.

90
04:41.160 --> 04:44.360
Now next up is assured forwarding.

91
04:44.360 --> 04:50.450
This is a little bit more involved of a conversation because it's going to use,

92
04:50.450 --> 04:51.720
I'll say most of

93
04:51.720 --> 04:52.720
the bits.

94
04:52.720 --> 04:55.540
It's actually going to use five of the bits, but we're going to see this here

95
04:55.540 --> 04:56.320
in a moment.

96
04:56.320 --> 04:59.200
This gives us 12 different classes.

97
04:59.200 --> 05:03.810
So class selector gave us eight classes assured forwarding gives us 12 and it
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

97
04:59.200 --> 05:03.810
So class selector gave us eight classes assured forwarding gives us 12 and it

98
05:03.810 --> 05:05.000
follows a specific

99
05:05.000 --> 05:10.880
format of a F for assured forwarding, then X and Y.

100
05:10.880 --> 05:14.520
And so X can be between one and four.

101
05:14.520 --> 05:18.200
And this indicates the priority level.

102
05:18.200 --> 05:22.730
The higher the priority, the higher the number or vice versa, maybe the higher

103
05:22.730 --> 05:23.600
the number,

104
05:23.600 --> 05:29.270
the higher the priority of priority of four should take precedence over a value

105
05:29.270 --> 05:29.880
of one.

106
05:29.880 --> 05:33.280
For a Y, this is going to be between one and three.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

106
05:29.880 --> 05:33.280
For a Y, this is going to be between one and three.

107
05:33.280 --> 05:38.680
And this indicates the drop probability.

108
05:38.680 --> 05:42.510
And again, the higher the number, the higher the drop priority, which I feel a

109
05:42.510 --> 05:43.120
little bit

110
05:43.120 --> 05:48.040
backwards, because that means one actually has the least drop priority.

111
05:48.040 --> 05:51.160
So in theory, it is treated better than a three.

112
05:51.160 --> 05:56.020
So keep that in mind that Y sort of is a little bit of reversed of what we

113
05:56.020 --> 05:57.360
might expect.

114
05:57.360 --> 06:02.200
So let's look at something like AF31.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

114
05:57.360 --> 06:02.200
So let's look at something like AF31.

115
06:02.200 --> 06:04.680
So remember, the first digit can be from one to four.

116
06:04.680 --> 06:07.160
The second one can be from one to three.

117
06:07.160 --> 06:13.720
When we're looking at this, we see that three indicates a high priority.

118
06:13.720 --> 06:19.520
And the one indicates a low drop probability.

119
06:19.520 --> 06:21.840
That is how we interpret this.

120
06:21.840 --> 06:25.200
And because of this, because we've got these 12 different classes, like we said

121
06:25.200 --> 06:25.600
, we can

122
06:25.600 --> 06:32.610
simply look at a particular value like AF31, and we can compare it to an AF33,
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

122
06:25.600 --> 06:32.610
simply look at a particular value like AF31, and we can compare it to an AF33,

123
06:32.610 --> 06:33.880
and we can

124
06:33.880 --> 06:38.680
understand how this traffic should be treated relative to one another.

125
06:38.680 --> 06:43.790
Specifically, they should have the same priority values, but this AF33 should

126
06:43.790 --> 06:45.120
get dropped before

127
06:45.120 --> 06:49.480
AF31 traffic, because it has a higher drop probability.

128
06:49.480 --> 06:54.580
Likewise, we could look at AF41 and say that, all right, this actually should

129
06:54.580 --> 06:55.440
out prioritize

130
06:55.440 --> 06:58.400
both of these other assured forwarding classes.

131
06:58.400 --> 07:02.880
Again, we're giving names, so to speak, if you want to call this a name, AF31,
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

131
06:58.400 --> 07:02.880
Again, we're giving names, so to speak, if you want to call this a name, AF31,

132
07:02.880 --> 07:03.360
we're

133
07:03.360 --> 07:08.900
giving names to DSCP values so that we as humans can look at it and understand

134
07:08.900 --> 07:09.360
how we're

135
07:09.360 --> 07:11.160
supposed to treat it.

136
07:11.160 --> 07:12.960
So here's the question, though.

137
07:12.960 --> 07:18.320
These have to translate to DSCP values and ultimately binary bits.

138
07:18.320 --> 07:20.040
So what values are used?

139
07:20.040 --> 07:24.720
Well, when we break it down, let's just draw it out over here again.

140
07:24.720 --> 07:27.720
So we've got our first three bits.

141
07:27.720 --> 07:29.880
We've got our second three bits.

142
07:29.880 --> 07:34.640
What we're going to do is assured forwarding is always going to set zero here
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

142
07:29.880 --> 07:34.640
What we're going to do is assured forwarding is always going to set zero here

143
07:34.640 --> 07:35.560
at the end.

144
07:35.560 --> 07:40.330
We can use this value for any, you know, we can set a one or a zero there

145
07:40.330 --> 07:41.200
normally if

146
07:41.200 --> 07:44.000
we're just using raw DSCP values.

147
07:44.000 --> 07:47.120
But for assured forwarding, we just always set a zero there.

148
07:47.120 --> 07:52.020
X is therefore going to be these first three bits and Y is simply going to be

149
07:52.020 --> 07:52.600
the next

150
07:52.600 --> 07:54.120
two bits.

151
07:54.120 --> 07:56.920
So how do we calculate out the value?

152
07:56.920 --> 08:02.680
Well, let's say that we have AF31 like we just said.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

152
07:56.920 --> 08:02.680
Well, let's say that we have AF31 like we just said.

153
08:02.680 --> 08:10.960
So AF31 would be a three here, 011, and then a one over here, 01.

154
08:10.960 --> 08:15.680
So then we have to remember that it still ends with a zero.

155
08:15.680 --> 08:17.200
Now what if we want to work backwards?

156
08:17.200 --> 08:20.240
What if we have something like 010, 010?

157
08:20.240 --> 08:23.960
I guess it's the same thing at the end.

158
08:23.960 --> 08:27.530
But either way, when we work our way backwards, we'd say, okay, this is binary

159
08:27.530 --> 08:28.040
for two.

160
08:28.040 --> 08:30.200
So that'd be AF2.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

160
08:28.040 --> 08:30.200
So that'd be AF2.

161
08:30.200 --> 08:31.400
What's the second value?

162
08:31.400 --> 08:35.600
Well, if we look at this, we might say that the value is two because this is

163
08:35.600 --> 08:36.320
binary for

164
08:36.320 --> 08:37.320
two.

165
08:37.320 --> 08:41.720
However, again, we ignore the fact that that zero is there.

166
08:41.720 --> 08:45.920
We're only looking here at these first two digits.

167
08:45.920 --> 08:52.160
So 01 is simply binary for one, and therefore it's AF21.

168
08:52.160 --> 08:56.720
Now we can do the math on this to figure out what exactly these decimal values

169
08:56.720 --> 08:57.240
are.

170
08:57.240 --> 09:05.850
But fortunately, there's a very simple calculation that we can use, and it is 8
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

170
08:57.240 --> 09:05.850
But fortunately, there's a very simple calculation that we can use, and it is 8

171
09:05.850 --> 09:07.480
X plus 2Y.

172
09:07.480 --> 09:13.000
In other words, if I take these two numbers and I plug them into here and here,

173
09:13.000 --> 09:13.360
I can

174
09:13.360 --> 09:16.800
figure out what the decimal value is.

175
09:16.800 --> 09:22.680
So AF31 would be 8X3 plus 2X1.

176
09:22.680 --> 09:27.610
Again the 8 and the 2 are from our formula, the 3 and the 1 are taken from AF31

177
09:27.610 --> 09:27.680
.

178
09:27.680 --> 09:32.840
And so that would be 24 plus 2, and this is 26.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

178
09:27.680 --> 09:32.840
And so that would be 24 plus 2, and this is 26.

179
09:32.840 --> 09:38.360
So a DSCP value of 26 is equivalent to AF31.

180
09:38.360 --> 09:39.680
Same thing with AF21.

181
09:39.680 --> 09:47.800
We could say it's 8X2 plus 2X1, and so that'd be 16 plus 2, and this is 18.

182
09:47.800 --> 09:51.480
So a DSCP value of 18 aligns with AF21.

183
09:51.480 --> 09:55.480
Now from a human perspective, we care more about this up here.

184
09:55.480 --> 09:58.440
As humans, we want to look at what we're trying to say.

185
09:58.440 --> 10:04.200
How does AF31 compare to AF21, and how do we execute that in our network?
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

185
09:58.440 --> 10:04.200
How does AF31 compare to AF21, and how do we execute that in our network?

186
10:04.200 --> 10:09.120
So that's what we care about is the name and the AFXY part.

187
10:09.120 --> 10:13.510
But from a computer perspective, at some point, it has to look at the binary

188
10:13.510 --> 10:14.520
numbers, and

189
10:14.520 --> 10:19.640
hey, we might be asked something on an exam, let's say, about what decimal

190
10:19.640 --> 10:21.080
value is equivalent

191
10:21.080 --> 10:25.080
to specific assured forwarding values, and so we need to make sure we can go

192
10:25.080 --> 10:25.840
back and forth

193
10:25.840 --> 10:27.520
between these.

194
10:27.520 --> 10:31.360
Now last but not least, we have what we already called out a couple of times,
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

194
10:27.520 --> 10:31.360
Now last but not least, we have what we already called out a couple of times,

195
10:31.360 --> 10:32.400
which is expedited

196
10:32.400 --> 10:34.560
forwarding.

197
10:34.560 --> 10:38.900
Expedited forwarding is a whole lot more simple than assured forwarding and

198
10:38.900 --> 10:41.520
even class selector,

199
10:41.520 --> 10:47.040
because expedited forwarding is exactly one class.

200
10:47.040 --> 10:54.310
And that one class is a DSCP value of 46, which is known as EF or expedited

201
10:54.310 --> 10:55.880
forwarding.

202
10:55.880 --> 10:59.040
This is intended for voiceover IP traffic.

203
10:59.040 --> 11:02.940
That is pretty much the only time wherever we're going to see it and use it,
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

203
10:59.040 --> 11:02.940
That is pretty much the only time wherever we're going to see it and use it,

204
11:02.940 --> 11:03.240
but it's

205
11:03.240 --> 11:07.460
very intentionally set aside so that we can recognize the highest priority

206
11:07.460 --> 11:08.120
traffic on

207
11:08.120 --> 11:13.040
the network, place it into a priority queue and reserve network bandwidth.

208
11:13.040 --> 11:17.890
So these three different classes of PHBs are going to need to be familiar with

209
11:17.890 --> 11:18.440
them,

210
11:18.440 --> 11:22.480
how they're used, what they're used for, and how to ultimately calculate out

211
11:22.480 --> 11:23.240
the decimal

212
11:23.240 --> 11:25.240
and binary values behind each one.
