Copy Transcript
Copied
WEBVTT 00:00:00.240 --> 00:00:05.040 You type a website into a browser you hit enter 00:00:05.040 --> 00:00:09.619 and in like a second and a half pixels show up 00:00:09.619 --> 00:00:14.259 That one second is your laptop Asking a bunch 00:00:14.259 --> 00:00:17.679 of strangers a bunch of questions very politely 00:00:17.679 --> 00:00:20.719 while your data gets chopped into tiny pieces 00:00:20.719 --> 00:00:23.920 routed through multiple networks and Reassembled 00:00:23.920 --> 00:00:27.480 at the other end like a high -speed jigsaw puzzle 00:00:27.480 --> 00:00:32.390 So today what actually happens when you type 00:00:32.390 --> 00:00:36.549 a URL, why it sometimes fails in weird ways, 00:00:36.630 --> 00:00:40.369 and how to think about internet problems like 00:00:40.369 --> 00:00:44.590 a sane person. Hey friends, welcome back to the 00:00:44.590 --> 00:00:47.530 Tyler Woodward Project. I'm Tyler, I'm a broadcast 00:00:47.530 --> 00:00:50.850 engineer by trade, a Linux nerd by choice, and 00:00:50.850 --> 00:00:55.969 I enjoy demystifying tech that's supposedly too 00:00:55.969 --> 00:01:00.170 complicated for everyday people. Today we're 00:01:00.170 --> 00:01:04.590 talking about a deceptively simple question. 00:01:05.090 --> 00:01:10.950 How does the internet work? But we're not doing 00:01:10.950 --> 00:01:15.230 the vague hand wavy version. We're doing the 00:01:15.230 --> 00:01:18.590 practical version. You type a website URL like 00:01:18.590 --> 00:01:21.650 example .com and we're gonna follow the chain 00:01:21.650 --> 00:01:25.969 reaction. Why this matters? Well, once you understand 00:01:25.969 --> 00:01:28.980 the basic moving parts, You can hopefully fix 00:01:28.980 --> 00:01:32.079 the problems faster, spot sketchy behavior sooner, 00:01:32.659 --> 00:01:35.680 and make smarter choices about your home Wi -Fi, 00:01:36.140 --> 00:01:40.359 your phone plan, and even your privacy settings. 00:01:40.680 --> 00:01:44.140 And yes, there will be a couple of wait, it does 00:01:44.140 --> 00:01:47.980 what? Moments along the way, because of course 00:01:47.980 --> 00:01:50.780 there will be. This is tech. Nothing in tech 00:01:50.780 --> 00:02:03.709 is ever simple. Alright, let's build the internet 00:02:03.709 --> 00:02:07.469 from the ground up, but only the parts that you 00:02:07.469 --> 00:02:12.710 need. First, a quick glossary in plain English, 00:02:13.069 --> 00:02:16.349 because the internet is basically a pile of acronyms 00:02:16.349 --> 00:02:21.770 in a trench coat. An IP address is a numeric 00:02:21.770 --> 00:02:25.810 address for a device on a network, kind of like 00:02:25.810 --> 00:02:30.780 a phone number. DNS, the domain name system, 00:02:31.580 --> 00:02:34.020 is the internet's phonebook. It turns example 00:02:34.020 --> 00:02:41.819 .com into an IP address. TCP, transmission control 00:02:41.819 --> 00:02:47.960 protocol, is a way to send data reliably in a 00:02:47.960 --> 00:02:52.000 particular order and, well, resend it if it's 00:02:52.000 --> 00:02:55.699 not in the right order or if it's lost. UDP, 00:02:56.379 --> 00:03:01.650 user datagram protocol is a faster, looser way 00:03:01.650 --> 00:03:04.830 great for things like video calls where late 00:03:04.830 --> 00:03:12.689 equals useless and HTTPS is HTTP plus encryption 00:03:12.689 --> 00:03:19.129 usually using TLS transport layer security so 00:03:19.129 --> 00:03:22.870 other people can't casually read what you're 00:03:22.870 --> 00:03:27.879 doing online Now let's do the play -by -play 00:03:27.879 --> 00:03:33.560 You type a URL into Firefox or Chrome or Edge 00:03:33.560 --> 00:03:38.759 and you hit enter step one Your computer checks 00:03:38.759 --> 00:03:44.439 if it already knows the answer It looks in a 00:03:44.439 --> 00:03:49.960 few Caches basically recent memory your browser 00:03:49.960 --> 00:03:53.479 has one your operating system has one and your 00:03:53.479 --> 00:03:57.270 router might have one too. If you've visited 00:03:57.270 --> 00:04:01.169 that particular site recently, you might skip 00:04:01.169 --> 00:04:05.870 a bunch of work. If it's not cached, step two 00:04:05.870 --> 00:04:11.949 is DNS. Hey, what IP address is example .com 00:04:11.949 --> 00:04:18.250 or msn .com or facebook .com or instagram .com? 00:04:19.189 --> 00:04:23.810 Your device usually asks a dns resolver provided 00:04:23.810 --> 00:04:27.470 by your internet service provider or whatever 00:04:27.470 --> 00:04:30.550 you've configured like google dns or cloud flare 00:04:30.550 --> 00:04:34.709 dns or level 3 dns doesn't matter whatever dns 00:04:34.709 --> 00:04:39.610 you're using here's the part that most people 00:04:39.610 --> 00:04:46.730 miss dns is not the website dns is just how you 00:04:46.730 --> 00:04:50.930 find the address to the website so when people 00:04:50.930 --> 00:04:55.860 say the internet is down a lot of times the internet 00:04:55.860 --> 00:05:00.259 is fine dns is just having a bad day and suddenly 00:05:00.259 --> 00:05:03.420 every site looks like it's broken because it 00:05:03.420 --> 00:05:07.180 can't translate that domain name into an actual 00:05:07.180 --> 00:05:14.300 ip address once dns gives you an ip address step 00:05:14.300 --> 00:05:17.939 three is well your device starts a connection 00:05:17.939 --> 00:05:22.980 to that server if it's https and almost everything 00:05:22.980 --> 00:05:27.379 is nowadays, it'll do a TLS handshake. That's 00:05:27.379 --> 00:05:31.920 a little negotiation where they agree on encryption 00:05:31.920 --> 00:05:34.980 keys and prove that the server is who it claims 00:05:34.980 --> 00:05:41.420 to be using certificates. That's why you can 00:05:41.420 --> 00:05:45.139 usually log into your bank at a coffee shop. 00:05:45.819 --> 00:05:50.220 Mostly. The encryption protects the content of 00:05:50.220 --> 00:05:52.959 what you're sending. It doesn't magically make 00:05:52.959 --> 00:05:58.480 you invisible, but it's a big deal. Then step 00:05:58.480 --> 00:06:03.339 four, the browser sends an HTTP request, something 00:06:03.339 --> 00:06:08.399 like git slash, which means please send me the 00:06:08.399 --> 00:06:12.060 homepage, plus a bunch of headers that say what 00:06:12.060 --> 00:06:16.160 kind of browser you are, what formats you support, 00:06:16.540 --> 00:06:19.279 and sometimes a cookie that identifies your session. 00:06:21.240 --> 00:06:27.379 Now step five is the part everyone imagines wrong. 00:06:28.360 --> 00:06:32.040 Your data doesn't travel as one continuous stream 00:06:32.040 --> 00:06:36.680 like water in a pipe. It gets chopped into packets, 00:06:37.000 --> 00:06:39.399 little chunks, little bite -sized chunks. Each 00:06:39.399 --> 00:06:43.819 packet has a dressing info so routers can forward 00:06:43.819 --> 00:06:50.019 it toward the destination. Routers are the traffic 00:06:50.019 --> 00:06:55.339 cops. of the internet. They don't care what your 00:06:55.339 --> 00:06:59.980 packet means. They mostly care about where does 00:06:59.980 --> 00:07:05.660 this need to go next. So your packet takes a 00:07:05.660 --> 00:07:09.639 little trip from your laptop, to your wifi access 00:07:09.639 --> 00:07:13.660 point, to your router, to your modem or fiber 00:07:13.660 --> 00:07:19.139 ONT, out to your ISP, across one or More big 00:07:19.139 --> 00:07:22.660 backbone networks and eventually into the network 00:07:22.660 --> 00:07:27.480 where the website lives And here's the cool part 00:07:27.480 --> 00:07:31.639 Packets from the same page load can take different 00:07:31.639 --> 00:07:36.879 paths and still arrive TCP can put them all back 00:07:36.879 --> 00:07:39.939 together in the correct order and ask for resends 00:07:39.939 --> 00:07:44.259 if something gets lost in transit That's why 00:07:44.259 --> 00:07:48.060 you can lose a little bit of network quality 00:07:48.060 --> 00:07:51.420 and still load a webpage, even if it feels a 00:07:51.420 --> 00:07:56.560 little slower. So what comes back from the server? 00:07:57.819 --> 00:08:01.480 Usually, it's HTML. First, the structure of the 00:08:01.480 --> 00:08:05.579 page, then your browser sees references to other 00:08:05.579 --> 00:08:09.740 stuff like images, CSS for styling, JavaScript 00:08:09.740 --> 00:08:13.540 for behavior, fonts, maybe some ads, analytics, 00:08:13.779 --> 00:08:18.069 video. It starts fetching all that too. One page 00:08:18.069 --> 00:08:22.110 load can trigger dozens or hundreds of additional 00:08:22.110 --> 00:08:28.470 requests, and those requests might go to totally 00:08:28.470 --> 00:08:31.430 different companies, on totally different servers, 00:08:31.610 --> 00:08:35.049 and totally different regions. This is where 00:08:35.049 --> 00:08:41.149 CDNs come in. Content Delivery Networks. A CDN 00:08:41.149 --> 00:08:45.789 is a system that stores copies of content closer 00:08:45.789 --> 00:08:49.830 to you geographically. So instead of pulling 00:08:49.830 --> 00:08:53.070 an image from one server at one city, say you're 00:08:53.070 --> 00:08:55.629 in Los Angeles, but it's coming from Chicago, 00:08:56.250 --> 00:08:58.850 you can pull it from a nearby edge server, say 00:08:58.850 --> 00:09:03.509 in San Diego. Faster for you, less load for the 00:09:03.509 --> 00:09:08.610 origin website. That's why a site can work, but 00:09:08.610 --> 00:09:12.509 still feel slow. Maybe the main page loads, but 00:09:12.809 --> 00:09:16.549 a third party script host is crawling and the 00:09:16.549 --> 00:09:22.029 whole page sort of gets stuck. Now, one more 00:09:22.029 --> 00:09:28.409 piece for the home network crowd, NAT. NAT is 00:09:28.409 --> 00:09:32.730 Network Address Translation. Most homes have 00:09:32.730 --> 00:09:35.610 one public IP address from your internet service 00:09:35.610 --> 00:09:39.129 provider and your router shares it among your 00:09:39.129 --> 00:09:43.110 devices using private addresses like your 192 00:09:43.110 --> 00:09:48.529 .168 .x .x. Your router keeps a little translation 00:09:48.529 --> 00:09:52.950 table, so the replies go back to the right device. 00:09:54.730 --> 00:09:58.549 That's also why rebooting the router sometimes 00:09:58.549 --> 00:10:02.169 can fix things. You're clearing tables, refreshing 00:10:02.169 --> 00:10:07.389 connections, and forcing a clean start. Broadcast 00:10:07.389 --> 00:10:10.809 engineering hat on for a second. Troubleshooting 00:10:10.809 --> 00:10:14.370 networks feels a lot like troubleshooting live 00:10:14.370 --> 00:10:22.009 audio. You don't guess, you isolate. You check 00:10:22.009 --> 00:10:25.570 each link in the chain one hop at a time because 00:10:25.570 --> 00:10:30.809 the failure is usually boring, a bad resolver, 00:10:31.230 --> 00:10:34.210 a flaky Wi -Fi channel, a saturated uplink, or 00:10:34.210 --> 00:10:39.740 one device spewing nonsense. And that's Well, 00:10:40.039 --> 00:10:43.980 that's sort of how it works. Typing a URL kicks 00:10:43.980 --> 00:10:50.960 off name lookup or DNS, secure setup, TLS, data 00:10:50.960 --> 00:10:56.100 transfer, HTTP over TCP or UDP, and packets routing 00:10:56.100 --> 00:11:00.539 through multiple networks, often with caching 00:11:00.539 --> 00:11:07.529 and CDNs all in the mix. Let's connect this to 00:11:07.529 --> 00:11:11.669 real life with a story you've probably lived 00:11:11.669 --> 00:11:17.490 through. Why is the internet weird today? You 00:11:17.490 --> 00:11:20.909 open a site and it just spins. Another site might 00:11:20.909 --> 00:11:24.409 load instantly. Your streaming app works, but 00:11:24.409 --> 00:11:29.429 your work tools are broken. This is not you being 00:11:29.429 --> 00:11:33.610 cursed. That's how modern internet is built. 00:11:34.730 --> 00:11:39.289 because quote -unquote a website is rarely one 00:11:39.289 --> 00:11:43.129 server anymore. It's usually your request hitting 00:11:43.129 --> 00:11:47.350 a front door, maybe a CDN, then bouncing to an 00:11:47.350 --> 00:11:50.210 application server, then to a database, then 00:11:50.210 --> 00:11:54.169 to an authentication provider, then to some sort 00:11:54.169 --> 00:11:58.269 of analytics, then to a payment processor, then 00:11:58.269 --> 00:12:02.549 to an ad network, and yeah, any one of those. 00:12:02.720 --> 00:12:06.519 could be having a bad day. Here's a common failure 00:12:06.519 --> 00:12:12.960 mode, DNS outage or misconfiguration. If your 00:12:12.960 --> 00:12:17.460 DNS resolver can't answer, your browser can't 00:12:17.460 --> 00:12:21.639 even find the IP address. It feels like the whole 00:12:21.639 --> 00:12:25.100 Internet is down. But if you try a different 00:12:25.100 --> 00:12:30.639 DNS resolver like Google or Cloudflare or Quad9, 00:12:31.059 --> 00:12:34.200 your phone Maybe you switch your phone over to 00:12:34.200 --> 00:12:36.000 the cellular network all the sudden it starts 00:12:36.000 --> 00:12:41.120 working Another failure mode is routing problems 00:12:41.120 --> 00:12:46.820 between networks the internet is a network of 00:12:46.820 --> 00:12:50.600 Networks and they share routes using systems 00:12:50.600 --> 00:12:56.399 like BGP the border gateway protocol You don't 00:12:56.399 --> 00:13:00.080 need to memorize that name, but you should know 00:13:00.080 --> 00:13:05.710 that It's how large networks tell each other 00:13:05.710 --> 00:13:10.029 hey to reach these IP addresses over here send 00:13:10.029 --> 00:13:14.730 traffic this way Sometimes a bad route announcement 00:13:14.730 --> 00:13:21.529 happens accidentally or rarely, you know maliciously 00:13:21.529 --> 00:13:25.909 and traffic takes a wrong turn From your perspective. 00:13:25.909 --> 00:13:31.289 It looks like that one side is just down or Everything 00:13:31.289 --> 00:13:34.980 hosted on X is down even though your wifi appears 00:13:34.980 --> 00:13:38.960 to be fine. That's why arguing with your router 00:13:38.960 --> 00:13:42.039 for an hour can be pointless if the real problem 00:13:42.039 --> 00:13:45.019 is upstream. Your house can be perfect and the 00:13:45.019 --> 00:13:47.259 internet can still be on fire somewhere else. 00:13:48.220 --> 00:13:53.419 Let's also talk about the physical reality because 00:13:53.419 --> 00:14:00.519 people picture the cloud like it's a fog bank. 00:14:01.360 --> 00:14:06.389 The internet fiber optic cables switches routers 00:14:06.389 --> 00:14:10.250 data centers and yes undersea cables lots of 00:14:10.250 --> 00:14:14.750 them if you've ever wondered why international 00:14:14.750 --> 00:14:18.870 traffic can be fast but not instant remember 00:14:18.870 --> 00:14:23.230 you're still limited by physics light and fiber 00:14:23.230 --> 00:14:27.649 is fast but it's not teleportation and then there's 00:14:27.649 --> 00:14:34.559 the cultural piece We've optimized society around 00:14:34.559 --> 00:14:39.080 it'll probably work Banking healthcare portals 00:14:39.080 --> 00:14:42.620 school assignments job applications so much a 00:14:42.620 --> 00:14:47.019 life assumes a working connection Which makes 00:14:47.019 --> 00:14:50.259 internet reliability not just a tech problem, 00:14:50.360 --> 00:14:54.740 but an access problem That's why you'll see libraries 00:14:54.740 --> 00:14:59.299 offering hot spots schools lending devices and 00:14:59.299 --> 00:15:02.820 people treating Wi -Fi like a utility, not a 00:15:02.820 --> 00:15:07.820 luxury. And it's also why just use your phone 00:15:07.820 --> 00:15:13.039 as a hotspot isn't a universal solution. Coverage, 00:15:13.440 --> 00:15:17.960 cost, and throttling are real constraints. One 00:15:17.960 --> 00:15:24.279 last real -world angle though. Why do pages feel 00:15:24.279 --> 00:15:29.649 heavier than they used to? Well, because modern 00:15:29.649 --> 00:15:32.629 sites often ship a lot of JavaScript and third 00:15:32.629 --> 00:15:36.370 -party trackers. Even on a fast connection, your 00:15:36.370 --> 00:15:40.070 device still has to download it, verify it, and 00:15:40.070 --> 00:15:43.570 run it. Sometimes the bottleneck is your CPU, 00:15:44.070 --> 00:15:47.889 not your internet service provider. So if the 00:15:47.889 --> 00:15:51.289 beginning was how the pipeline works, this part 00:15:51.289 --> 00:15:55.190 was why it breaks in messy, non -obvious ways, 00:15:55.190 --> 00:16:00.409 I guess. And now, let's... Let's make these these 00:16:00.409 --> 00:16:03.789 issues or these takeaways into actionable items 00:16:03.789 --> 00:16:07.389 that you can hopefully learn from. Here are a 00:16:07.389 --> 00:16:10.169 few practical takeaways you can use the next 00:16:10.169 --> 00:16:13.710 time your Internet acts up and you don't need 00:16:13.710 --> 00:16:18.970 a computer science degree to do this. Separate 00:16:18.970 --> 00:16:24.789 Wi -Fi from the Internet. If your phone on cellular 00:16:24.789 --> 00:16:29.240 loads the site, but your laptop on Wi -Fi doesn't. 00:16:29.240 --> 00:16:33.080 That's a whole network problem. Now, if both 00:16:33.080 --> 00:16:36.659 fail, it's likely an upstream or a site, you 00:16:36.659 --> 00:16:41.019 know, the site itself. Try a different DNS. Do 00:16:41.019 --> 00:16:43.539 the DNS reality check. If everything can't be 00:16:43.539 --> 00:16:47.399 found, switch DNS temporarily to a known good 00:16:47.399 --> 00:16:51.879 resolver like Cloudflare's 1 .1 .1 .1 or Google's 00:16:51.879 --> 00:16:56.950 8 .8 .8 .8 and see if it improves. If you're 00:16:56.950 --> 00:17:00.129 not sure how, searching change DNS on Windows 00:17:00.129 --> 00:17:04.049 slash Mac OS slash iPhone is usually a two minute 00:17:04.049 --> 00:17:08.950 fix. Reboot in the right order when you must 00:17:08.950 --> 00:17:12.250 reboot. Yes, turning it off and on again does 00:17:12.250 --> 00:17:17.089 work. Your modem, your ONT, power cycle those 00:17:17.089 --> 00:17:21.349 first, then the router, then your device. Give 00:17:21.349 --> 00:17:24.960 each step about... I don't know 30 to 60 seconds 00:17:24.960 --> 00:17:28.900 so it can actually fully come back up. Use one 00:17:28.900 --> 00:17:32.960 simple test site plus one real site. A speed 00:17:32.960 --> 00:17:35.819 test can tell you the bandwidth but it doesn't 00:17:35.819 --> 00:17:39.640 always reveal DNS or routing weirdness. Test 00:17:39.640 --> 00:17:43.519 one known stable site and then the specific site 00:17:43.519 --> 00:17:48.000 or app that's failing. Watch for third -party 00:17:48.000 --> 00:17:51.660 drag. If a page half loads and then sort of hangs 00:17:52.000 --> 00:17:55.000 It might be waiting on ads, analytics, or embedded 00:17:55.000 --> 00:17:59.700 content. Trying a private browser window or a 00:17:59.700 --> 00:18:02.200 different browser altogether can help you confirm 00:18:02.200 --> 00:18:07.279 it's not just a bad extension or a bad cache 00:18:07.279 --> 00:18:12.400 script. If you only remember one thing, remember 00:18:12.400 --> 00:18:17.180 this. When you type in a URL, you're not just 00:18:17.180 --> 00:18:20.599 connecting to a website. You're coordinating 00:18:20.599 --> 00:18:23.660 a chain of services. DNS, routing, encryption, 00:18:23.940 --> 00:18:28.380 servers, and caches, and any weak link can change 00:18:28.380 --> 00:18:32.980 what you experience. So the next time you hit 00:18:32.980 --> 00:18:36.819 enter and a page pops up like magic, now you 00:18:36.819 --> 00:18:40.759 know it's not really magic. It's packets, phone 00:18:40.759 --> 00:18:42.880 books, routers, and a whole lot of engineering 00:18:42.880 --> 00:18:46.559 duct tape in the most respectable way possible. 00:18:47.579 --> 00:18:50.759 If you want more episodes like this, visit tylerwoodward 00:18:50.759 --> 00:18:54.039 .me. follow at tylerwoodward .me on instagram 00:18:54.039 --> 00:18:57.740 and threads and subscribe and like the show on 00:18:57.740 --> 00:18:59.400 your favorite podcast platform.