1 00:00:00,000 --> 00:00:00,060 2 00:00:00,060 --> 00:00:00,726 [VIDEO PLAYBACK] 3 00:00:00,726 --> 00:00:03,110 - Dot com and DNS does that conversion. 4 00:00:03,110 --> 00:00:04,860 Even more dynamically than the old school. 5 00:00:04,860 --> 00:00:05,050 [END PLAYBACK] 6 00:00:05,050 --> 00:00:06,060 DAVID MALAN: So these demos I love. 7 00:00:06,060 --> 00:00:08,976 But they are admittedly a little hard to do sometimes technologically. 8 00:00:08,976 --> 00:00:12,090 Using traceroute, NSLookup, Kang, or a few other command 9 00:00:12,090 --> 00:00:15,710 line tools on Linux, Mac OS, or Windows. 10 00:00:15,710 --> 00:00:19,230 Traceroute especially, I think it's just been so eye opening for myself, 11 00:00:19,230 --> 00:00:21,120 back in the day and so many students since. 12 00:00:21,120 --> 00:00:23,161 When you actually trace the route between a place 13 00:00:23,161 --> 00:00:29,400 like Harvard and maybe MIT, Stanford, or cnn.co.jp across the Pacific Ocean. 14 00:00:29,400 --> 00:00:32,670 Because you really see the increased latency in the hops 15 00:00:32,670 --> 00:00:36,670 that are actually traveling through an ocean. 16 00:00:36,670 --> 00:00:38,460 Or just down the road in this case. 17 00:00:38,460 --> 00:00:42,840 DOUG LLOYD: Yeah, it really is eye opening to actually see those hops 18 00:00:42,840 --> 00:00:43,636 and take away. 19 00:00:43,636 --> 00:00:45,510 It's not just one machine talking to another. 20 00:00:45,510 --> 00:00:48,135 It's got to go through a lot of different things along the way. 21 00:00:48,135 --> 00:00:50,910 The unfortunate thing, with an example like traceroute, 22 00:00:50,910 --> 00:00:53,450 is that it's often blocked. 23 00:00:53,450 --> 00:00:54,705 It gets shut down. 24 00:00:54,705 --> 00:00:57,330 DAVID MALAN: You either see a whole bunch of stars or asterisks 25 00:00:57,330 --> 00:00:58,140 on the screen. 26 00:00:58,140 --> 00:01:00,690 Or it just doesn't give you back correct information. 27 00:01:00,690 --> 00:01:04,260 In fact on CS50 IDE because of the cloud infrastructure is running on, 28 00:01:04,260 --> 00:01:05,190 it's not enlightening. 29 00:01:05,190 --> 00:01:08,960 So I'm doing a little bit of cooking show magic here. 30 00:01:08,960 --> 00:01:11,115 Where usually the terminal window I'm using 31 00:01:11,115 --> 00:01:13,740 is actually connected to another server where it's not blocked. 32 00:01:13,740 --> 00:01:16,022 So I can simulate what's going on. 33 00:01:16,022 --> 00:01:17,730 Just because it's so visually compelling. 34 00:01:17,730 --> 00:01:21,120 But it's a lot harder for students or teachers in their own schools 35 00:01:21,120 --> 00:01:23,890 to replicate that demo without a bit of advance prep work. 36 00:01:23,890 --> 00:01:26,854 DOUG LLOYD: But with teachers who maybe have Mac computers, 37 00:01:26,854 --> 00:01:29,020 it is something that you can do in the Mac terminal. 38 00:01:29,020 --> 00:01:30,478 DAVID MALAN: It is and Windows too. 39 00:01:30,478 --> 00:01:32,820 It's just traceRT instead of route. 40 00:01:32,820 --> 00:01:35,300 DOUG LLOYD: So it's definitely possible to do it. 41 00:01:35,300 --> 00:01:39,270 It would be cool if students could also do it pretty easily from their IDEs. 42 00:01:39,270 --> 00:01:40,170 DAVID MALAN: I agree. 43 00:01:40,170 --> 00:01:42,510 This is a minor enhancement I've done in recent years. 44 00:01:42,510 --> 00:01:45,060 Dash Q1 sends just one query instead of three. 45 00:01:45,060 --> 00:01:47,430 Because it was an FAQ as to why there are three 46 00:01:47,430 --> 00:01:49,140 numbers for every row on the screen. 47 00:01:49,140 --> 00:01:49,980 DOUG LLOYD: Over the times? 48 00:01:49,980 --> 00:01:53,220 DAVID MALAN: Yeah and it's just meant to give you a visual average of things. 49 00:01:53,220 --> 00:01:55,650 Or just a few numbers you can lump together and average. 50 00:01:55,650 --> 00:01:56,910 But it was just a distraction. 51 00:01:56,910 --> 00:01:58,680 And it also frankly, just makes the text wrap, 52 00:01:58,680 --> 00:02:00,596 especially when the fonts are a little bigger. 53 00:02:00,596 --> 00:02:02,790 So I tried to simplify it a little bit like this. 54 00:02:02,790 --> 00:02:05,240 But it's great fun because this is Harvard specific now. 55 00:02:05,240 --> 00:02:07,440 But having students at Harvard, at least, 56 00:02:07,440 --> 00:02:12,180 see familiar phrases like SC for Science Center or GW for gateway. 57 00:02:12,180 --> 00:02:13,320 Which we introduce here. 58 00:02:13,320 --> 00:02:14,970 Or NOCS for Northern crossroads. 59 00:02:14,970 --> 00:02:19,276 Or better yet, is when you start to see things. 60 00:02:19,276 --> 00:02:21,150 In this case, of course, we're not seeing it. 61 00:02:21,150 --> 00:02:24,750 Sometimes you see airport codes in the name of the domains. 62 00:02:24,750 --> 00:02:25,560 DOUG LLOYD: Yep. 63 00:02:25,560 --> 00:02:28,129 DAVID MALAN: Which hint at what city-state they're in. 64 00:02:28,129 --> 00:02:30,420 DOUG LLOYD: In fact, we have had an example in the past 65 00:02:30,420 --> 00:02:32,860 where we have spoken to Yale. 66 00:02:32,860 --> 00:02:34,130 We've tapped into Yale. 67 00:02:34,130 --> 00:02:37,410 Which I think somehow gets routed through JFK airport. 68 00:02:37,410 --> 00:02:38,430 Even though it's past-- 69 00:02:38,430 --> 00:02:40,138 DAVID MALAN: It might not be the airport. 70 00:02:40,138 --> 00:02:42,390 DOUG LLOYD: The airport for that area. 71 00:02:42,390 --> 00:02:45,012 That overshoots New Haven a little bit from Cambridge. 72 00:02:45,012 --> 00:02:47,220 DAVID MALAN: But there's good opportunities too here. 73 00:02:47,220 --> 00:02:49,553 They're pretty non-deterministic every time we run this. 74 00:02:49,553 --> 00:02:53,490 Whereby that last hop took far fewer milliseconds than the second 75 00:02:53,490 --> 00:02:54,420 to last hop. 76 00:02:54,420 --> 00:03:00,450 Even though each of these is supposed to be from point A to point I plus one, 77 00:03:00,450 --> 00:03:01,070 so to speak. 78 00:03:01,070 --> 00:03:02,370 They're not cumulative. 79 00:03:02,370 --> 00:03:05,460 But that just hints at the variability in routers, buffers, 80 00:03:05,460 --> 00:03:09,060 in any congestion there might be, or need to retransmit or so forth. 81 00:03:09,060 --> 00:03:12,676 So it captures some real world realities. 82 00:03:12,676 --> 00:03:15,300 DOUG LLOYD: Particularly dramatic when you're crossing an ocean 83 00:03:15,300 --> 00:03:17,400 and you only have a couple of cables that you can use. 84 00:03:17,400 --> 00:03:19,320 And all the traffic is trying to get through them. 85 00:03:19,320 --> 00:03:20,653 DAVID MALAN: That's my favorite. 86 00:03:20,653 --> 00:03:23,180 When you actually see a jump of 100 more milliseconds. 87 00:03:23,180 --> 00:03:25,222 Suggestive that there's something big in the way. 88 00:03:25,222 --> 00:03:26,929 DOUG LLOYD: But it's still pretty amazing 89 00:03:26,929 --> 00:03:29,280 that you can get to the other side of the world so fast. 90 00:03:29,280 --> 00:03:32,580 DAVID MALAN: I tell people that we have trans Atlantic, trans Pacific 91 00:03:32,580 --> 00:03:33,800 cables underneath the ocean. 92 00:03:33,800 --> 00:03:35,491 It still blows my mind. 93 00:03:35,491 --> 00:03:35,991