WEBVTT 0:00:03.580000 --> 0:00:06.840000 In this video I want to talk a little bit about web browsing and what 0:00:06.840000 --> 0:00:09.800000 happens underneath the hood of your web browser. 0:00:09.800000 --> 0:00:14.100000 Now this is not going to be a detailed look at all the ways that HTTP 0:00:14.100000 --> 0:00:18.100000 works or that Java and Flash work and all of that. 0:00:18.100000 --> 0:00:23.100000 Once again this is geared for the typical learner who knows how to open 0:00:23.100000 --> 0:00:26.920000 up their browser but has no clue as to what's happening in the background. 0:00:26.920000 --> 0:00:30.600000 And when they open up their browser and they try to go to website and 0:00:30.600000 --> 0:00:34.400000 the website is not downloading at all or maybe part of its downloading 0:00:34.400000 --> 0:00:39.280000 but an image in the website is not making it they have no idea why. 0:00:39.280000 --> 0:00:44.200000 And so this will help sort of demystify that process a little bit. 0:00:44.200000 --> 0:00:48.780000 So let's start with the basic question of what is a website right when 0:00:48.780000 --> 0:00:53.860000 I go to INE.com or CNN .com or something. 0:00:53.860000 --> 0:00:56.820000 What makes up that website? 0:00:56.820000 --> 0:00:59.440000 We can see here and you can just read this. 0:00:59.440000 --> 0:01:02.460000 It is a collection of individual components. 0:01:02.460000 --> 0:01:05.180000 So website is a whole bunch of things put together. 0:01:05.180000 --> 0:01:13.180000 Text images such as JPEGs and GIFs, sounds, colors, links and formatting 0:01:13.180000 --> 0:01:20.660000 that when providing the correct order creates a complete user experience. 0:01:20.660000 --> 0:01:22.760000 How do you like that for a definition? 0:01:22.760000 --> 0:01:28.780000 So the website has a name clearly and that name has to be resolvable to 0:01:28.780000 --> 0:01:34.120000 an IP address. So there's going to be some server that is hosting this 0:01:34.120000 --> 0:01:37.680000 website. So when we say that a server is a web server that's hosting a 0:01:37.680000 --> 0:01:42.340000 website what we basically mean is that that server if a request comes 0:01:42.340000 --> 0:01:45.780000 in saying hey I need INE.com. 0:01:45.780000 --> 0:01:51.820000 That that web server either has all of the components of INE.com and has 0:01:51.820000 --> 0:01:53.780000 all the images that go to that site. 0:01:53.780000 --> 0:01:58.260000 It helps all the text that goes to that site or it knows where those things 0:01:58.260000 --> 0:02:03.200000 are. It can go out and fetch them and then give them to the user that's 0:02:03.200000 --> 0:02:06.760000 requesting them. 0:02:06.760000 --> 0:02:12.920000 So all web starts start out as HTML which is a language indicating all 0:02:12.920000 --> 0:02:17.260000 of the elements or files of the site and how they should be displayed. 0:02:17.260000 --> 0:02:19.640000 So HTML is a formatting language. 0:02:19.640000 --> 0:02:24.040000 And I'll show you here in just an example of what HTML looks like in case 0:02:24.040000 --> 0:02:25.740000 you've never seen it before. 0:02:25.740000 --> 0:02:28.580000 For those who've never seen it looks kind of cryptic and it's kind of 0:02:28.580000 --> 0:02:29.320000 hard to figure out. 0:02:29.320000 --> 0:02:33.420000 But basically what HTML is is when you see a document written HTML it's 0:02:33.420000 --> 0:02:38.200000 saying look the text goes right here and HTML says this part of the text 0:02:38.200000 --> 0:02:41.560000 should be bolded or this part should be italicized. 0:02:41.560000 --> 0:02:45.100000 And here's where an image goes and here's the name of the image. 0:02:45.100000 --> 0:02:48.700000 Here's the location of where that image can be found. 0:02:48.700000 --> 0:02:52.700000 So HTML is sort of formatting saying where the components of the website 0:02:52.700000 --> 0:02:57.400000 would fit and how it should be displayed. 0:02:57.400000 --> 0:03:01.700000 So like I said a website is stored on a server that either contains those 0:03:01.700000 --> 0:03:08.120000 assets locally in its own memory or knows where those assets are stored. 0:03:08.120000 --> 0:03:12.160000 You might have one server that just has all of your graphics files on 0:03:12.160000 --> 0:03:15.760000 it like your pictures and your movies. 0:03:15.760000 --> 0:03:18.880000 You might have another server that has all the audio files on it, another 0:03:18.880000 --> 0:03:21.420000 server that has all the text on it. 0:03:21.420000 --> 0:03:24.600000 But the website would be stored on there would be some web server that 0:03:24.600000 --> 0:03:28.020000 would say okay I know where all those things are and I can collect them 0:03:28.020000 --> 0:03:31.640000 all and then give them to the user that's requesting them. 0:03:31.640000 --> 0:03:36.640000 Now clearly there are other languages in addition to HTML that can be 0:03:36.640000 --> 0:03:41.780000 used to build a website such as Java and Flash and PHP and all sorts of 0:03:41.780000 --> 0:03:46.240000 other stuff. But for the basic CCNA entry level person we're just going 0:03:46.240000 --> 0:03:52.500000 to focus on HTML as being the basic language to create a website. 0:03:52.500000 --> 0:03:58.380000 So when dealing with web browsing there's really sort of two main protocols 0:03:58.380000 --> 0:04:00.560000 that we need to be aware of. 0:04:00.560000 --> 0:04:06.840000 HTTP and HTML. So in the event that you've never seen these acronyms before 0:04:06.840000 --> 0:04:09.540000 let me define them for you. 0:04:09.540000 --> 0:04:14.260000 HTTP stands for the hypertext transfer protocol. 0:04:14.260000 --> 0:04:16.300000 Hypertext transfer protocol. 0:04:16.300000 --> 0:04:18.240000 What is hypertext? 0:04:18.240000 --> 0:04:21.820000 It's kind of interesting I've read several things that say hypertext is 0:04:21.820000 --> 0:04:25.520000 text about text which is kind of weird. 0:04:25.520000 --> 0:04:33.460000 It's basically if you hypertext is a language that says this is what the 0:04:33.460000 --> 0:04:34.960000 font should look like. 0:04:34.960000 --> 0:04:37.060000 This is how big something should be. 0:04:37.060000 --> 0:04:41.420000 This is where on the web page this image should be displayed. 0:04:41.420000 --> 0:04:44.620000 It should be four inches in and three inches up. 0:04:44.620000 --> 0:04:48.180000 Hypertext is the language that sort of gathers all that stuff and knows 0:04:48.180000 --> 0:04:52.260000 how to format the website into something that is pleasing for you to look 0:04:52.260000 --> 0:05:00.360000 at. So HTTP is the protocol used to transfer hypertext from the website 0:05:00.360000 --> 0:05:06.980000 to you, from the web server to your laptop, to your tablet, to your smartphone. 0:05:06.980000 --> 0:05:14.180000 HTTP is the protocol that's being carried by IP, by the internet protocol. 0:05:14.180000 --> 0:05:16.540000 And HTTP uses TCP. 0:05:16.540000 --> 0:05:20.340000 I actually didn't have that in here but that is very important to know 0:05:20.340000 --> 0:05:26.360000 that HTTP uses TCP at layer four and it has a well-known port number of 0:05:26.360000 --> 0:05:33.100000 80. There is also HTTPS which is secure HTTP. 0:05:33.100000 --> 0:05:36.600000 It's basically an encrypted form of HTTP. 0:05:36.600000 --> 0:05:43.480000 Many websites these days are moving from HTTP to HTTPS because it's more 0:05:43.480000 --> 0:05:48.000000 secure and if someone was able to sniff your packets and trans it, they 0:05:48.000000 --> 0:05:51.060000 wouldn't really be able to decode them because everything has been encrypted 0:05:51.060000 --> 0:05:54.900000 and only your laptop can decrypt it. 0:05:54.900000 --> 0:05:57.000000 And HTTPS uses a different port number. 0:05:57.000000 --> 0:05:58.620000 It's port number 443. 0:05:58.620000 --> 0:06:03.640000 This is also carried in TCP. 0:06:03.640000 --> 0:06:07.040000 And HTML is the hypertext markup language. 0:06:07.040000 --> 0:06:10.980000 So this is actually the language that you use that you type in in your 0:06:10.980000 --> 0:06:16.460000 text editor to sort of format a web page and to create a web page. 0:06:16.460000 --> 0:06:17.580000 Here's an example. 0:06:17.580000 --> 0:06:22.180000 If you've never seen HTML before, here's sort of a generic example of 0:06:22.180000 --> 0:06:23.740000 what HTML looks like. 0:06:23.740000 --> 0:06:29.240000 So different components of this, for example, head is indicating that 0:06:29.240000 --> 0:06:32.840000 what's to follow between this section and this section here. 0:06:32.840000 --> 0:06:36.780000 So all this stuff here is in a certain section of the document. 0:06:36.780000 --> 0:06:41.760000 It's up towards the header, towards the top or the beginning of the document. 0:06:41.760000 --> 0:06:44.860000 And then title is another HTML tag. 0:06:44.860000 --> 0:06:49.120000 These things are all called tags, body, H1, nav. 0:06:49.120000 --> 0:06:50.820000 These are all called HTML tags. 0:06:50.820000 --> 0:06:54.280000 And a different tag indicates a certain thing. 0:06:54.280000 --> 0:06:58.480000 A tag might indicate where on the web page this thing should be displayed 0:06:58.480000 --> 0:07:02.640000 at the top, at the bottom, in the middle, on the left, on the right. 0:07:02.640000 --> 0:07:08.740000 Or a tag might indicate that what's to follow is going to be an image 0:07:08.740000 --> 0:07:13.480000 or it's going to be a line of text or it's going to be an audio file. 0:07:13.480000 --> 0:07:18.340000 Or a tag might indicate formatting such as bold what I'm about to type 0:07:18.340000 --> 0:07:21.880000 or apply a certain color to what I'm about to type. 0:07:21.880000 --> 0:07:26.380000 So HTML is the process of applying all of these tags, creating a document 0:07:26.380000 --> 0:07:34.160000 of tags that format the site so it looks the way you want to look like. 0:07:34.160000 --> 0:07:38.340000 Because you and your head, you know, well, I want a picture to show up 0:07:38.340000 --> 0:07:40.720000 in this section here and I want to be so big. 0:07:40.720000 --> 0:07:43.900000 And I want text to show up down here and I want to be this certain color 0:07:43.900000 --> 0:07:44.960000 and this certain font. 0:07:44.960000 --> 0:07:49.840000 But you need to use these HTML tags to take what's in your head and make 0:07:49.840000 --> 0:07:52.000000 it reality into a website. 0:07:52.000000 --> 0:07:53.960000 So that's what HTML is. 0:07:53.960000 --> 0:08:00.020000 And then HTTP takes all of this stuff, wraps it into an IP header and 0:08:00.020000 --> 0:08:05.060000 transports it from the web server over to the browser in your laptop or 0:08:05.060000 --> 0:08:08.620000 tablet. So how does HTTP work? 0:08:08.620000 --> 0:08:12.600000 Well, number one, you know, within your browser, you type a URL like I 0:08:12.600000 --> 0:08:17.140000 &E.com or CNN.com. 0:08:17.140000 --> 0:08:21.740000 It actually used to be that you would have to proceed your URL, which 0:08:21.740000 --> 0:08:26.200000 is a uniform universal resource locator with www. 0:08:26.200000 --> 0:08:29.040000 So those of you who have been working with the internet for any specific 0:08:29.040000 --> 0:08:35.140000 period of time are probably used to typing in www.iony.com or www.google 0:08:35.140000 --> 0:08:41.420000 .com. But most browsers these days, if you don't type in www, which stands 0:08:41.420000 --> 0:08:44.360000 for World Wide Web, just assume it. 0:08:44.360000 --> 0:08:46.740000 So that's why most of these days you can just go to your browser and in 0:08:46.740000 --> 0:08:53.760000 the URL bar, just type in INE.com or CNN.com and leave off the www because 0:08:53.760000 --> 0:08:57.520000 it's so common it's just assumed. 0:08:57.520000 --> 0:09:00.580000 And then DNS is involved. 0:09:00.580000 --> 0:09:04.740000 So DNS is invoked as we saw in the previous video to resolve whatever 0:09:04.740000 --> 0:09:07.760000 that name is that you typed in into an IP address. 0:09:07.760000 --> 0:09:12.120000 From that point on, your laptop now invokes the TCP three-way handshake 0:09:12.120000 --> 0:09:19.160000 on port 80 or port 443 to contact that destination web server that you've 0:09:19.160000 --> 0:09:22.260000 just received the IP you addressed for via DNS. 0:09:22.260000 --> 0:09:28.740000 After successful completion of the three-way handshake, now your local 0:09:28.740000 --> 0:09:37.140000 browser will send its first HTTP message which is an HTTP get message. 0:09:37.140000 --> 0:09:41.140000 And the get message you can see here, it'll specify things like a particular 0:09:41.140000 --> 0:09:46.740000 directory where the web server website lives, the version of HTTP that 0:09:46.740000 --> 0:09:51.580000 your client would prefer, some headers saying okay I would prefer the 0:09:51.580000 --> 0:10:00.760000 website in English, I can support audio and video protocols, so headers 0:10:00.760000 --> 0:10:07.240000 specifying the language and encoding that the client browser can prefer. 0:10:07.240000 --> 0:10:13.320000 So just to give you an example of this, what I'm going to do is I'm going 0:10:13.320000 --> 0:10:18.420000 to shut down my browsers here for just a moment. 0:10:18.420000 --> 0:10:20.820000 So for those of you on the live stream I will not be able to see your 0:10:20.820000 --> 0:10:23.760000 questions here for a moment. 0:10:23.760000 --> 0:10:27.700000 Alright so I'm just going to bring this over here. 0:10:27.700000 --> 0:10:34.680000 I'm going to start up a sniffer trace using wire shark. 0:10:34.680000 --> 0:10:38.240000 And you know if you guys have never used wire shark, I would definitely 0:10:38.240000 --> 0:10:41.860000 recommend you play around with it, it's free, you don't have to pay for 0:10:41.860000 --> 0:10:48.440000 it, just go to wire shark.org and then you can download it. 0:10:48.440000 --> 0:10:52.180000 And then I'm going to select my Wi-Fi adapter because that's the one I'm 0:10:52.180000 --> 0:10:54.460000 using that's got most of my stuff right here, so here it is, wireless 0:10:54.460000 --> 0:10:56.400000 network connection. 0:10:56.400000 --> 0:11:01.060000 I'm going to create just some basic filters right now. 0:11:01.060000 --> 0:11:06.920000 Let's see here, because I'm on the Wi-Fi there's all sorts of other IP 0:11:06.920000 --> 0:11:12.780000 addresses here. So I don't want to see everybody at work, so I am 1071 0:11:12.780000 --> 0:11:26.580000 .96. So I just want to see this, I'll say IP.address equals 10.7.1.96. 0:11:26.580000 --> 0:11:32.080000 So that will only show stuff coming to or going from my laptop. 0:11:32.080000 --> 0:11:35.580000 So let's implement that. 0:11:35.580000 --> 0:11:40.400000 Alright great. And then in addition to that, okay that looks pretty good. 0:11:40.400000 --> 0:11:51.560000 So now what I'm going to do is I'm going to type in a URL of some website. 0:11:51.560000 --> 0:11:57.400000 Let's see here, what's a website that we can use? 0:11:57.400000 --> 0:12:02.760000 Let's go to something I haven't tried before. 0:12:02.760000 --> 0:12:07.380000 The challenge here is that I want to show you HTTP and I want to show 0:12:07.380000 --> 0:12:11.160000 you the types of messages are exchanged from my laptop when it's requesting 0:12:11.160000 --> 0:12:13.980000 something and the information I get back. 0:12:13.980000 --> 0:12:18.580000 The problem is a lot of websites these days revert to HTTPS. 0:12:18.580000 --> 0:12:23.240000 And so even if you try to go to them via HTTP, all by itself it will revert 0:12:23.240000 --> 0:12:28.720000 to HTTPS and why that is not good for this demonstration is that HTTPS, 0:12:28.720000 --> 0:12:29.920000 everything is encrypted. 0:12:29.920000 --> 0:12:33.440000 So you can't see any of those HTTP messages because they're encrypted. 0:12:33.440000 --> 0:12:37.380000 So I'm just going to try to go to one or two websites that I hope are 0:12:37.380000 --> 0:12:41.180000 using normal HTTP and not HTTPS. 0:12:41.180000 --> 0:12:43.720000 So let's just pick something random here. 0:12:43.720000 --> 0:12:47.280000 Let's go to, let's do this. 0:12:47.280000 --> 0:12:52.940000 Basic HTML example. 0:12:52.940000 --> 0:13:00.860000 Okay. So let's try this one right here. 0:13:00.860000 --> 0:13:02.680000 SheldonBrown.com. 0:13:02.680000 --> 0:13:06.480000 So I'm going to go ahead and start up my sniffer. 0:13:06.480000 --> 0:13:14.800000 Paste and go. There we go. 0:13:14.800000 --> 0:13:17.260000 Let's stop the sniffer. 0:13:17.260000 --> 0:13:25.300000 Okay so what we should see here is somewhere in here we should see a DNS 0:13:25.300000 --> 0:13:32.260000 resolution. Here we go. 0:13:32.260000 --> 0:13:34.860000 Doing a standard query for an A record. 0:13:34.860000 --> 0:13:36.860000 Let me open this up a little bit. 0:13:36.860000 --> 0:13:41.020000 So here's UDP port 53 which is DNS. 0:13:41.020000 --> 0:13:43.440000 It's a DNS query. 0:13:43.440000 --> 0:13:48.100000 And here in the query I'm saying I would like the A record which is an 0:13:48.100000 --> 0:13:55.500000 IPv4 address for the website of SheldonBrown.com. 0:13:55.500000 --> 0:14:00.980000 And then at some point I should get a response back. 0:14:00.980000 --> 0:14:08.260000 Here it is. So frame number 50 is a response back. 0:14:08.260000 --> 0:14:11.000000 And it says here is the answer. 0:14:11.000000 --> 0:14:14.740000 It says actually that IP address, that website maps to several different 0:14:14.740000 --> 0:14:20.860000 IP addresses. So it must be hosted on more than one server. 0:14:20.860000 --> 0:14:26.740000 All right so that is the DNS response. 0:14:26.740000 --> 0:14:30.900000 And so then I start right here. 0:14:30.900000 --> 0:14:32.580000 I start my TCP process. 0:14:32.580000 --> 0:14:37.920000 So what I'm going to do is I'm going to select that frame and then I'm 0:14:37.920000 --> 0:14:42.860000 going to right click and I'm going to do follow TCP stream. 0:14:42.860000 --> 0:14:44.420000 Follow TCP stream. 0:14:44.420000 --> 0:14:48.160000 That way I can only see that TCP stream and it will preclude all the other 0:14:48.160000 --> 0:14:51.780000 jubilant. That wire sharp happened to pick up while I was doing that sniffer 0:14:51.780000 --> 0:15:00.620000 capture. Okay. Well we see the sync, the syn, the TCP syn. 0:15:00.620000 --> 0:15:02.380000 So this is a three way handshake right here. 0:15:02.380000 --> 0:15:05.860000 The syn, the syn, ACK and the ACK. 0:15:05.860000 --> 0:15:07.280000 But then we don't see the rest of it. 0:15:07.280000 --> 0:15:11.500000 So I'm guessing that it probably changed over to HTTPS. 0:15:11.500000 --> 0:15:16.140000 Let's find out. So the third step in the TCP three way handshake was frame 0:15:16.140000 --> 0:15:23.940000 number 60. So let's go back to viewing all of it. 0:15:23.940000 --> 0:15:35.820000 Let's see here. So that was number 60. 0:15:35.820000 --> 0:15:48.000000 It's 196. Okay. Here is frame 62. 0:15:48.000000 --> 0:15:55.980000 Okay. Well no, it's port number 80. 0:15:55.980000 --> 0:15:57.900000 So that is HTTP. 0:15:57.900000 --> 0:16:04.160000 Okay. But this is just a syn. 0:16:04.160000 --> 0:16:11.640000 So this is still just a, looks like I tried to reach it via several different 0:16:11.640000 --> 0:16:16.400000 ways. So DNS standard query response that's frame number 68. 0:16:16.400000 --> 0:16:18.340000 Oh, where are we? 0:16:18.340000 --> 0:16:22.140000 We want to get some HTTP going here. 0:16:22.140000 --> 0:16:30.940000 Well, this is as I, okay, well here's one. 0:16:30.940000 --> 0:16:34.120000 Here's an HTTP message. 0:16:34.120000 --> 0:16:38.100000 So underneath my TCP is the hypertext transfer protocol. 0:16:38.100000 --> 0:16:43.000000 If I open that up, you can see I'm sending a get request and saying, please 0:16:43.000000 --> 0:16:48.040000 give, give me the web page that has this name, web underscore sample one 0:16:48.040000 --> 0:16:54.560000 dot HTML. And it says, I prefer to use HTTP version one dot one and a 0:16:54.560000 --> 0:17:00.780000 slash R and a slash N indicates a new line saying, I'm done. 0:17:00.780000 --> 0:17:02.180000 I'm going to give you a new line. 0:17:02.180000 --> 0:17:06.400000 And then the new line is, okay, I want Sheldon Brown dot com. 0:17:06.400000 --> 0:17:08.260000 I want to keep alive. 0:17:08.260000 --> 0:17:10.960000 And so you can see in my get request, there's a whole bunch of stuff here 0:17:10.960000 --> 0:17:14.580000 that HTTP is indicating to the server saying, this is how I'd like to 0:17:14.580000 --> 0:17:26.940000 talk to you. Response and frame 162. 0:17:26.940000 --> 0:17:38.820000 All right. And we can see this is pretty small, right? 0:17:38.820000 --> 0:17:40.340000 It's only 74 bytes. 0:17:40.340000 --> 0:17:41.480000 You're under length. 0:17:41.480000 --> 0:17:43.160000 But the next one. 0:17:43.160000 --> 0:17:46.480000 So this is from 104 dot 18. 0:17:46.480000 --> 0:17:51.040000 Where's the next one from that? 0:17:51.040000 --> 0:18:02.420000 Here we go. So here frame number 183, 104 dot 18. 0:18:02.420000 --> 0:18:06.520000 So this is from the server coming back to me much larger. 0:18:06.520000 --> 0:18:08.620000 Well, no, it's only 54 bytes. 0:18:08.620000 --> 0:18:10.240000 Not a whole lot in here. 0:18:10.240000 --> 0:18:13.620000 This is only an ACK. 0:18:13.620000 --> 0:18:20.740000 Well, unfortunately, this isn't HTTP get HTTP. 0:18:20.740000 --> 0:18:31.260000 All right. Well, this isn't showing us as much as I had hoped. 0:18:31.260000 --> 0:18:36.600000 But you get the general idea, which is that we had to do DNS first to 0:18:36.600000 --> 0:18:39.000000 resolve the name to an IP address. 0:18:39.000000 --> 0:18:42.920000 And then we're using HTTP to send a get message to the server saying, 0:18:42.920000 --> 0:18:44.280000 this is what I want. 0:18:44.280000 --> 0:18:50.680000 And then the server sends an OK message back. 0:18:50.680000 --> 0:18:52.140000 And OK, here's an example. 0:18:52.140000 --> 0:18:55.040000 So here in the response from the server, he's saying, OK, I'm giving you 0:18:55.040000 --> 0:18:58.520000 a GIF. Here's a GIF image. 0:18:58.520000 --> 0:19:03.160000 And here in it's giving us all sorts of information about the size of 0:19:03.160000 --> 0:19:08.860000 the GIF, some of the background colors, the color map that's being used, 0:19:08.860000 --> 0:19:13.920000 the position of where it's going to be on the website itself. 0:19:13.920000 --> 0:19:19.920000 So all of this is being contained within HTTP to transfer this information 0:19:19.920000 --> 0:19:24.540000 about the website back to me. 0:19:24.540000 --> 0:19:27.880000 So some basic troubleshooting of HTTP. 0:19:27.880000 --> 0:19:31.120000 Clearly, if you don't have any internet connectivity at all, you're not 0:19:31.120000 --> 0:19:33.260000 going to be able to reach any websites. 0:19:33.260000 --> 0:19:38.140000 Possibly the DNS server is unreachable. 0:19:38.140000 --> 0:19:44.140000 An indication of this would be, you know, when you do a DNS resolution, 0:19:44.140000 --> 0:19:47.160000 your laptop actually caches that information. 0:19:47.160000 --> 0:19:51.460000 So if your laptop is open for several hours today and you go back to Google 0:19:51.460000 --> 0:19:56.760000 .com, you are not going to have to do a DNS resolution every single time, 0:19:56.760000 --> 0:19:58.540000 you type in Google.com. 0:19:58.540000 --> 0:20:01.700000 You'll do a DNS resolution the first time and then your laptop will probably 0:20:01.700000 --> 0:20:04.440000 cache that for several hours. 0:20:04.440000 --> 0:20:09.140000 And so if the DNS server becomes unreachable, an indication of that might 0:20:09.140000 --> 0:20:13.460000 be that some of the websites you can get to, which are websites that you 0:20:13.460000 --> 0:20:17.360000 were already looking at earlier today, that you already had cached in 0:20:17.360000 --> 0:20:21.640000 your laptop, but new websites you're trying to bring up are unreachable 0:20:21.640000 --> 0:20:27.200000 because you can't resolve those because the DNS server itself is unreachable. 0:20:27.200000 --> 0:20:31.120000 Maybe the DNS server is unable to resolve the name, meaning, you know, 0:20:31.120000 --> 0:20:34.920000 you mistyped in the name or you're typing the name of a web server that 0:20:34.920000 --> 0:20:36.580000 no longer exists. 0:20:36.580000 --> 0:20:40.160000 Maybe the actual website is unreachable. 0:20:40.160000 --> 0:20:44.500000 The server that's hosting that website is, you know, we can't get to it. 0:20:44.500000 --> 0:20:47.660000 Maybe the server itself is alive, but there's some router or switch or 0:20:47.660000 --> 0:20:53.440000 something in between in the internet that is down or broken or not working 0:20:53.440000 --> 0:20:58.800000 correctly. Or maybe the remote server itself is actually just down. 0:20:58.800000 --> 0:21:04.080000 So these are all examples of some basic troubleshooting you can do with 0:21:04.080000 --> 0:21:07.460000 websites and web browsing. 0:21:07.460000 --> 0:21:11.000000 So that concludes this particular section. 0:21:11.000000 --> 0:21:14.740000 And in the last video, I'm going to talk about how Telnet works.