WEBVTT - The Story of Ping

0:00:04.400 --> 0:00:07.800
<v Speaker 1>Welcome to tech stuff, a production from I heart radio.

0:00:11.920 --> 0:00:14.520
<v Speaker 1>He there, and welcome to tech stuff. I'm your host,

0:00:14.600 --> 0:00:18.160
<v Speaker 1>Jonathan Strickland. I'm an executive producer with I heart radio,

0:00:18.320 --> 0:00:21.960
<v Speaker 1>and how the Tech Are you? You know, there's a

0:00:21.960 --> 0:00:27.480
<v Speaker 1>good chance you've heard the Term Ping before. If you're

0:00:27.520 --> 0:00:31.720
<v Speaker 1>a golfer, you probably associated with equipment like clubs and bags,

0:00:31.760 --> 0:00:34.839
<v Speaker 1>but that's not what I'm talking about today. If you're

0:00:34.880 --> 0:00:38.360
<v Speaker 1>a submariner, well, your concept of paying is closer to

0:00:38.520 --> 0:00:43.560
<v Speaker 1>what I'll be talking about in this episode, and specifically

0:00:43.560 --> 0:00:46.000
<v Speaker 1>in this episode, I'm talking about Ping as a way

0:00:46.040 --> 0:00:51.680
<v Speaker 1>to judge network speed between two different machines. Now, with

0:00:51.840 --> 0:00:56.280
<v Speaker 1>some stuff that you know we use in our technical world,

0:00:56.960 --> 0:00:59.800
<v Speaker 1>the history can be a little muddled or hidden. Right.

0:01:00.160 --> 0:01:03.120
<v Speaker 1>Might be one of those things where we have some

0:01:03.240 --> 0:01:06.640
<v Speaker 1>common tool that we all use, but no one really

0:01:06.720 --> 0:01:09.840
<v Speaker 1>documented where that tool came from or who first came

0:01:09.920 --> 0:01:12.080
<v Speaker 1>up with it, and so we have to use a

0:01:12.080 --> 0:01:14.759
<v Speaker 1>lot of qualifiers to talk about it. But in this

0:01:14.800 --> 0:01:18.520
<v Speaker 1>case we can point to a specific person as the

0:01:18.600 --> 0:01:24.920
<v Speaker 1>originator of the paying function, at least the first paying function,

0:01:25.400 --> 0:01:30.319
<v Speaker 1>and that person was Mike Muss sadly, must passed away

0:01:30.440 --> 0:01:34.840
<v Speaker 1>in two thousand in a car accident. So uh, that

0:01:35.000 --> 0:01:40.120
<v Speaker 1>is really a tragedy. must seemed like a really entertaining

0:01:40.319 --> 0:01:45.000
<v Speaker 1>and innovative guy, based upon the stuff I've read that

0:01:45.040 --> 0:01:49.280
<v Speaker 1>he wrote. Must had studied sonar and radar while he

0:01:49.320 --> 0:01:52.520
<v Speaker 1>was in college. He had been modeling those systems and

0:01:52.560 --> 0:01:56.440
<v Speaker 1>he worked for a while at the Ballistic Research Laboratory,

0:01:56.560 --> 0:01:59.160
<v Speaker 1>or B R L, which we also have to talk

0:01:59.200 --> 0:02:02.200
<v Speaker 1>about in the past tense. The army established the army

0:02:02.280 --> 0:02:07.240
<v Speaker 1>research laboratory in Nineteen two. That would absorb the old brl.

0:02:08.200 --> 0:02:10.640
<v Speaker 1>So the B R L is no more. It is

0:02:10.720 --> 0:02:15.200
<v Speaker 1>part of the A R L. Anyway, while must was

0:02:15.280 --> 0:02:18.560
<v Speaker 1>working at the B R l, he noticed something hinky

0:02:18.840 --> 0:02:21.239
<v Speaker 1>seemed to be going on with the I P network

0:02:21.760 --> 0:02:25.440
<v Speaker 1>within that organization. Now, this was in nineteen eighty three

0:02:26.120 --> 0:02:28.799
<v Speaker 1>and at that point, I think you're most folks had

0:02:28.880 --> 0:02:34.000
<v Speaker 1>never even heard of internet protocol, or I p. that's

0:02:34.040 --> 0:02:36.760
<v Speaker 1>what I p means in this case, not intellectual property,

0:02:36.800 --> 0:02:40.760
<v Speaker 1>but Internet Protocol. I Doun't that most people had ever

0:02:40.800 --> 0:02:42.960
<v Speaker 1>heard of that back in nineteen three. I know I

0:02:43.000 --> 0:02:46.560
<v Speaker 1>had never heard it. The concept of the Internet was

0:02:47.160 --> 0:02:50.360
<v Speaker 1>a pretty foreign one to anyone not working in a

0:02:50.400 --> 0:02:54.800
<v Speaker 1>military organization, a research institute or a number of universities

0:02:54.840 --> 0:02:59.399
<v Speaker 1>that we're doing pioneering work in the field. Computer networking

0:02:59.400 --> 0:03:03.840
<v Speaker 1>in general was something that was a pretty foreign concept

0:03:03.880 --> 0:03:08.280
<v Speaker 1>to folks. This was early on when people could actually

0:03:08.320 --> 0:03:11.519
<v Speaker 1>get access to a personal computer, let alone the thought

0:03:11.600 --> 0:03:14.239
<v Speaker 1>of how do I connect this computer to that computer?

0:03:14.760 --> 0:03:17.200
<v Speaker 1>So it would take a decade before the rest of

0:03:17.280 --> 0:03:19.840
<v Speaker 1>US would start to understand that you could actually connect

0:03:19.840 --> 0:03:23.240
<v Speaker 1>computers together and make a network and then create networks

0:03:23.240 --> 0:03:26.160
<v Speaker 1>together to create a massive interconnected system, a k a

0:03:26.560 --> 0:03:32.119
<v Speaker 1>the Internet. But must was really familiar with computer networks.

0:03:32.400 --> 0:03:35.840
<v Speaker 1>He worked on the IP network at Brl all the time,

0:03:36.320 --> 0:03:38.960
<v Speaker 1>and so when he knows things weren't quite behaving the

0:03:39.000 --> 0:03:42.480
<v Speaker 1>way they usually should, he decided to find out what

0:03:42.560 --> 0:03:44.600
<v Speaker 1>was going on and to do that he needed a

0:03:44.640 --> 0:03:48.440
<v Speaker 1>diagnostic tool. That didn't exist, so he had to create

0:03:48.440 --> 0:03:51.040
<v Speaker 1>a program to do it. Now he had heard about

0:03:51.520 --> 0:03:55.880
<v Speaker 1>other methods of testing things like network speed between machines

0:03:56.280 --> 0:04:00.760
<v Speaker 1>that used other methodologies, but those weren't really applicable to

0:04:01.000 --> 0:04:03.839
<v Speaker 1>his network. So he had to make the tool from

0:04:03.840 --> 0:04:09.680
<v Speaker 1>scratch and he programmed it on a UNIX system. This

0:04:09.840 --> 0:04:14.040
<v Speaker 1>is a family of operating systems that computer science scientists

0:04:14.360 --> 0:04:16.840
<v Speaker 1>at the Bell Labs Research Center of a t and

0:04:16.920 --> 0:04:21.719
<v Speaker 1>t created back in the nineteen sixties uh and then

0:04:21.960 --> 0:04:25.039
<v Speaker 1>ended up releasing it for others to use in the

0:04:25.120 --> 0:04:29.560
<v Speaker 1>nineteen seventies. So your average person would likely find vanilla

0:04:29.680 --> 0:04:33.240
<v Speaker 1>UNIX to be intimidating, because it is a system that

0:04:33.320 --> 0:04:38.000
<v Speaker 1>programmers made for other programmers for the purposes of being

0:04:38.000 --> 0:04:43.040
<v Speaker 1>able to create programs within this framework and then used

0:04:43.120 --> 0:04:46.760
<v Speaker 1>on those machines or similar machines. It is not a

0:04:46.800 --> 0:04:50.280
<v Speaker 1>particularly user friendly operating system, at least not if you're

0:04:50.400 --> 0:04:54.520
<v Speaker 1>someone who's unused to command prompts as opposed to graphical

0:04:54.640 --> 0:04:58.760
<v Speaker 1>user interfaces or Gooey's Um. Back in the day, when

0:04:58.800 --> 0:05:01.840
<v Speaker 1>I first started using muters, command prompts were the way

0:05:01.880 --> 0:05:05.919
<v Speaker 1>to go. In fact, I remember being incredibly reluctant to

0:05:06.040 --> 0:05:10.760
<v Speaker 1>move from the DOSS system that was in use on

0:05:10.839 --> 0:05:15.000
<v Speaker 1>IBM compatibles back in the day to migrating to Windows,

0:05:15.520 --> 0:05:19.600
<v Speaker 1>because I thought windows was a huge waste of resources,

0:05:19.640 --> 0:05:21.919
<v Speaker 1>that your computer had to use so many resources just

0:05:22.000 --> 0:05:25.840
<v Speaker 1>to run the operating system that it completely hindered the

0:05:25.880 --> 0:05:28.120
<v Speaker 1>sort of programs you could run on that sort of computer,

0:05:28.480 --> 0:05:30.760
<v Speaker 1>and I did not like the idea of moving from

0:05:30.800 --> 0:05:33.440
<v Speaker 1>doss to Windows. These days, if you put me in

0:05:33.480 --> 0:05:38.719
<v Speaker 1>front of a line prompt kind of of operating system,

0:05:38.760 --> 0:05:41.719
<v Speaker 1>I'm sure I would be completely lost. UH, as I

0:05:41.720 --> 0:05:45.200
<v Speaker 1>get older, it gets harder to navigate those kinds of things. Anyway,

0:05:45.680 --> 0:05:50.000
<v Speaker 1>what must wanted to do was create a small program

0:05:50.040 --> 0:05:54.760
<v Speaker 1>that could measure the quote unquote, distance between two different machines.

0:05:55.240 --> 0:06:00.720
<v Speaker 1>Except we're not really talking about physical distance here, although

0:06:00.760 --> 0:06:03.920
<v Speaker 1>that can be a factor and we'll get to it. Instead,

0:06:04.400 --> 0:06:06.839
<v Speaker 1>what we're really talking about is the amount of time

0:06:06.880 --> 0:06:09.680
<v Speaker 1>it takes for one machine to send a message to

0:06:09.839 --> 0:06:13.440
<v Speaker 1>a second machine and then receive a message from that

0:06:13.520 --> 0:06:16.000
<v Speaker 1>second machine. So how long does it take you to

0:06:16.040 --> 0:06:18.840
<v Speaker 1>send a message out and get a reply back? In

0:06:18.880 --> 0:06:22.840
<v Speaker 1>that way, it's a lot like an echo. So an

0:06:22.839 --> 0:06:26.160
<v Speaker 1>echo is when you make or you hear a sound

0:06:26.560 --> 0:06:29.800
<v Speaker 1>and then you hear that sound repeated. And it happens

0:06:29.839 --> 0:06:34.280
<v Speaker 1>when sound waves bounce off of some hard, smooth surface,

0:06:34.320 --> 0:06:37.400
<v Speaker 1>and the smoother and harder the surface, the better it

0:06:37.480 --> 0:06:40.280
<v Speaker 1>is for creating echoes. So let's say that you are

0:06:40.440 --> 0:06:44.560
<v Speaker 1>in a canyon, maybe it's a box canyon, and you

0:06:44.640 --> 0:06:46.719
<v Speaker 1>got a red base on one end and a blue

0:06:46.720 --> 0:06:49.920
<v Speaker 1>Basse on the other, and no one can explain why.

0:06:49.960 --> 0:06:53.159
<v Speaker 1>So you're in this box canyon and you decide to

0:06:53.160 --> 0:06:56.960
<v Speaker 1>shout text stuff, rules or you know something that you

0:06:56.960 --> 0:07:00.400
<v Speaker 1>would actually shout. Well, the echoes you would hear are

0:07:00.400 --> 0:07:03.640
<v Speaker 1>actually the sound waves that you generated that came from you.

0:07:04.120 --> 0:07:08.160
<v Speaker 1>Those air fluctuations originated from you and then they bounced

0:07:08.200 --> 0:07:12.480
<v Speaker 1>back to you after they hit the canyon walls. So

0:07:12.800 --> 0:07:15.200
<v Speaker 1>if you're in a place where there are no hard,

0:07:15.400 --> 0:07:18.360
<v Speaker 1>smooth surfaces, you're not going to get an echo. Doesn't

0:07:18.360 --> 0:07:21.960
<v Speaker 1>matter how loudly you scream. There are no surfaces for

0:07:22.080 --> 0:07:24.560
<v Speaker 1>the sound to bounce off of and come back to you.

0:07:24.640 --> 0:07:27.720
<v Speaker 1>It's just gonna travel outward until it's essentially too weak

0:07:28.320 --> 0:07:32.440
<v Speaker 1>for it to be heard by at least human ears. Now,

0:07:32.480 --> 0:07:36.040
<v Speaker 1>when we talk about stuff like sonar, we're talking about

0:07:36.120 --> 0:07:40.440
<v Speaker 1>using sound to get an idea about how far away

0:07:40.560 --> 0:07:45.480
<v Speaker 1>objects are from the sonar mechanism. And if we break

0:07:45.520 --> 0:07:50.720
<v Speaker 1>down what sonar is from a technical standpoint, essentially what

0:07:50.800 --> 0:07:55.320
<v Speaker 1>you have is a speaker that emits the sound and

0:07:55.360 --> 0:07:59.360
<v Speaker 1>a microphone that picks up echoes of the sound and

0:07:59.400 --> 0:08:02.120
<v Speaker 1>then some word of the system to calculate the amount

0:08:02.160 --> 0:08:05.240
<v Speaker 1>of time between making a sound and getting the echo.

0:08:05.400 --> 0:08:08.320
<v Speaker 1>These systems could be human powered or it could be

0:08:09.280 --> 0:08:12.560
<v Speaker 1>modern systems use computers, but in the old days it

0:08:12.560 --> 0:08:17.280
<v Speaker 1>could actually be someone with a stopwatch and very quickly

0:08:17.320 --> 0:08:20.080
<v Speaker 1>reacting in order to get an idea of how long

0:08:20.080 --> 0:08:22.160
<v Speaker 1>it took to send a sound out and to get

0:08:22.240 --> 0:08:26.560
<v Speaker 1>the echo back. This is really useful if, for example,

0:08:27.240 --> 0:08:31.080
<v Speaker 1>you're in a submarine that doesn't have windows. Those submarines

0:08:31.160 --> 0:08:34.120
<v Speaker 1>don't because windows are a point of failure and you

0:08:34.160 --> 0:08:36.840
<v Speaker 1>don't want those when you're in a metal tube that

0:08:36.880 --> 0:08:40.360
<v Speaker 1>goes under the water. So you use the sonar to

0:08:40.559 --> 0:08:44.000
<v Speaker 1>beam out a sound and you know how fast sound

0:08:44.000 --> 0:08:46.720
<v Speaker 1>travels through water. It's a standard sort of thing. It

0:08:46.760 --> 0:08:50.800
<v Speaker 1>actually travels faster through water than it does through air.

0:08:51.200 --> 0:08:54.080
<v Speaker 1>We typically say that sound travels at about three forty

0:08:54.160 --> 0:08:57.840
<v Speaker 1>three per second through the air, but in water it's

0:08:57.880 --> 0:09:02.400
<v Speaker 1>one thousand four hundred eight meters per second. So if

0:09:02.440 --> 0:09:06.080
<v Speaker 1>you send out a sound in a specific direction and

0:09:06.120 --> 0:09:08.040
<v Speaker 1>you time how long it takes for the sound to

0:09:08.080 --> 0:09:11.400
<v Speaker 1>come back to you and then you essentially divided by two,

0:09:11.760 --> 0:09:14.520
<v Speaker 1>you know how far away you are from, say, and

0:09:14.760 --> 0:09:18.679
<v Speaker 1>underwater cliff face. It's pretty common to call the sonar

0:09:18.840 --> 0:09:22.960
<v Speaker 1>sound a Ping, because that's what it sounds like. If

0:09:23.000 --> 0:09:25.800
<v Speaker 1>you've seen the film adaptation of the hunt for Red October,

0:09:26.080 --> 0:09:28.360
<v Speaker 1>you know there's a scene in which sean connery, who's

0:09:28.400 --> 0:09:33.680
<v Speaker 1>playing a Soviet Submarine Commander, tells his Sonar Operator reverify

0:09:33.760 --> 0:09:37.800
<v Speaker 1>our range to target one ping only. Now, in that

0:09:37.880 --> 0:09:42.000
<v Speaker 1>case he's using the Ping to secretly communicate with the Americans,

0:09:42.040 --> 0:09:45.160
<v Speaker 1>but he's selling his sonar operator the reason is just

0:09:45.280 --> 0:09:47.840
<v Speaker 1>to make sure they know exactly how far the Americans

0:09:47.920 --> 0:09:51.719
<v Speaker 1>are in case they need to fire upon them anyway.

0:09:51.960 --> 0:09:55.800
<v Speaker 1>That's why must called his tool a ping. It was

0:09:55.880 --> 0:09:59.679
<v Speaker 1>using a similar sort of approach. A message goes out

0:09:59.720 --> 0:10:02.960
<v Speaker 1>from on computer to a different computer and the message

0:10:03.040 --> 0:10:05.480
<v Speaker 1>essentially says hey, send us back to me, and the

0:10:05.520 --> 0:10:09.120
<v Speaker 1>target computer follows instructions and sends the message back. The

0:10:09.160 --> 0:10:12.080
<v Speaker 1>amount of time between sending the message and receiving the

0:10:12.120 --> 0:10:15.440
<v Speaker 1>reply can give you an idea about the network speed

0:10:15.520 --> 0:10:20.000
<v Speaker 1>between those two machines. If it's slower than expected, something's

0:10:20.040 --> 0:10:23.120
<v Speaker 1>going wrong. Maybe there's too much traffic on the network,

0:10:23.360 --> 0:10:26.680
<v Speaker 1>maybe there is an actual switch that's down somewhere on

0:10:26.720 --> 0:10:30.640
<v Speaker 1>the network and it necessitates traffic to route around the issue.

0:10:31.040 --> 0:10:35.679
<v Speaker 1>So it's really a diagnostic tool for measuring path latency.

0:10:36.080 --> 0:10:39.040
<v Speaker 1>We'll talk more about latency in just a second, but

0:10:39.160 --> 0:10:52.040
<v Speaker 1>first let's take a quick break. All right, let's talk

0:10:52.080 --> 0:10:55.120
<v Speaker 1>about latency. You can think of latency as the delay

0:10:55.200 --> 0:10:59.760
<v Speaker 1>between the cause of something and it's effect. I always

0:10:59.840 --> 0:11:02.480
<v Speaker 1>use video game examples for this, because anyone who has

0:11:02.480 --> 0:11:05.800
<v Speaker 1>played enough video games has experienced this at one point

0:11:05.920 --> 0:11:08.839
<v Speaker 1>or another. Um and it's, you know, one of the

0:11:09.640 --> 0:11:13.800
<v Speaker 1>contexts in which we really talk about paying. Anyway, in

0:11:13.840 --> 0:11:17.280
<v Speaker 1>most video games you really want the game to respond instantly,

0:11:17.559 --> 0:11:20.079
<v Speaker 1>or at least appear to be instant according to our

0:11:20.520 --> 0:11:24.520
<v Speaker 1>limitations of perception when you work the controls. So when

0:11:24.559 --> 0:11:27.760
<v Speaker 1>you push that jump button, you want that lousy little

0:11:27.760 --> 0:11:31.040
<v Speaker 1>plumber to jump and squash that Gumba Gush. Darn it

0:11:31.800 --> 0:11:34.320
<v Speaker 1>when there's a delay. So you push the jump button

0:11:34.480 --> 0:11:38.680
<v Speaker 1>but the plumber waits a second before jumping. It makes

0:11:38.720 --> 0:11:42.200
<v Speaker 1>the game way more difficult to play. Some Games do

0:11:42.240 --> 0:11:45.480
<v Speaker 1>the so on purpose. Sometimes it's up to the player

0:11:45.559 --> 0:11:48.559
<v Speaker 1>to try and learn and adjust to the timing of

0:11:48.640 --> 0:11:50.720
<v Speaker 1>the game, and it was all part of the design.

0:11:51.600 --> 0:11:54.520
<v Speaker 1>Other Games didn't do it on purpose. They're just poorly made.

0:11:54.760 --> 0:11:58.640
<v Speaker 1>Or they're running on inadequate machines, and so there's this

0:11:58.760 --> 0:12:01.880
<v Speaker 1>latency introduced in to the experience and there's a lag

0:12:02.000 --> 0:12:06.120
<v Speaker 1>between input and output. Now must decide to create his

0:12:06.200 --> 0:12:09.800
<v Speaker 1>ping tool back in nine three on a whim. He

0:12:09.840 --> 0:12:12.360
<v Speaker 1>didn't intend for it to be some sort of glorified

0:12:13.240 --> 0:12:16.400
<v Speaker 1>feature that would be put to use countless times afterwards.

0:12:16.679 --> 0:12:20.160
<v Speaker 1>He just thought it was an interesting exercise. He described

0:12:20.200 --> 0:12:25.000
<v Speaker 1>the Ping Program as a quote, thousand line hack end quote,

0:12:25.280 --> 0:12:27.960
<v Speaker 1>and he wrote it in a single evening and he

0:12:28.000 --> 0:12:29.880
<v Speaker 1>says that if he had known how much it was

0:12:29.920 --> 0:12:33.800
<v Speaker 1>going to be used moving forward, he might have spent

0:12:33.840 --> 0:12:35.840
<v Speaker 1>a little more time and effort in designing it. He

0:12:35.880 --> 0:12:42.679
<v Speaker 1>also mentions that, of course, in Classic Uh fate, by

0:12:42.720 --> 0:12:46.160
<v Speaker 1>the time he finished designing the tool, the original issue

0:12:46.400 --> 0:12:48.240
<v Speaker 1>that made him think about it in the first place

0:12:48.240 --> 0:12:50.560
<v Speaker 1>had already been fixed. Someone else had gone into the network,

0:12:50.600 --> 0:12:54.640
<v Speaker 1>discovered it and fixed the problem. But the tools usefulness

0:12:54.679 --> 0:12:59.920
<v Speaker 1>obviously went beyond the single use case that inspired must

0:13:00.000 --> 0:13:03.120
<v Speaker 1>to create it. Must also joked about how people tried

0:13:03.160 --> 0:13:06.439
<v Speaker 1>to interpret Ping, the word paying, P I N G,

0:13:07.320 --> 0:13:10.680
<v Speaker 1>as an acronym. There was a common assumption in the

0:13:10.720 --> 0:13:15.959
<v Speaker 1>network Admin field that Ping stood for packet Internet grouper,

0:13:16.640 --> 0:13:20.320
<v Speaker 1>but must dismiss that right away. It was pretty common

0:13:20.400 --> 0:13:23.880
<v Speaker 1>to create wacky acronyms and government projects. In fact, that's

0:13:23.880 --> 0:13:26.600
<v Speaker 1>still true to this day. If you look at any

0:13:26.720 --> 0:13:30.760
<v Speaker 1>law or bill that has like a cool or cool

0:13:30.960 --> 0:13:34.640
<v Speaker 1>ish name associated with it, there's a good chance that

0:13:34.760 --> 0:13:39.680
<v Speaker 1>name is said to represent a tortured acronym, and I

0:13:39.720 --> 0:13:44.079
<v Speaker 1>am positive that in the overall majority of cases lawmakers

0:13:44.120 --> 0:13:47.280
<v Speaker 1>come up with a name for the legislation. First they

0:13:47.280 --> 0:13:50.360
<v Speaker 1>come up with their cool name and then, retroactively they

0:13:50.400 --> 0:13:53.480
<v Speaker 1>try to justify the name by creating a phrase for

0:13:53.520 --> 0:13:56.880
<v Speaker 1>which the name is supposedly an acronym, and it's almost

0:13:56.920 --> 0:14:01.280
<v Speaker 1>always terrible anyway. must say that's what people were trying

0:14:01.280 --> 0:14:05.120
<v Speaker 1>to do with paying, but he was adamant pain justed

0:14:05.200 --> 0:14:10.560
<v Speaker 1>for paying, like with Sonar. Now, if you're an online Gamer,

0:14:10.600 --> 0:14:13.360
<v Speaker 1>you're likely very aware of the importance of paying. With

0:14:13.480 --> 0:14:16.959
<v Speaker 1>online multiplayer games, each player is connecting to a game

0:14:17.080 --> 0:14:22.280
<v Speaker 1>server and to be clear, multiplayer games have lots of servers. Right.

0:14:22.560 --> 0:14:25.360
<v Speaker 1>Each game has tons of servers, and it's just that

0:14:25.400 --> 0:14:29.480
<v Speaker 1>a player logs into a single server into which lots

0:14:29.520 --> 0:14:32.600
<v Speaker 1>of other players are also logged, and once a server

0:14:32.680 --> 0:14:36.720
<v Speaker 1>reaches capacity, players will have to connect to other servers. Well,

0:14:36.760 --> 0:14:39.720
<v Speaker 1>it's pretty common practice to try and log into servers

0:14:39.760 --> 0:14:43.680
<v Speaker 1>that are geographically close to the player, because that helps

0:14:43.720 --> 0:14:47.560
<v Speaker 1>cut back on latency. Now, it's not always true that

0:14:47.640 --> 0:14:51.960
<v Speaker 1>the closest server provides the fastest data speeds between the

0:14:52.040 --> 0:14:55.960
<v Speaker 1>client machine, in other words the Gamer's rig, and the

0:14:56.080 --> 0:15:00.560
<v Speaker 1>server itself, but it's usually the case. If you log

0:15:00.600 --> 0:15:03.000
<v Speaker 1>into a server that's halfway across the world from you,

0:15:03.320 --> 0:15:06.120
<v Speaker 1>that means the messages coming from your machine and going

0:15:06.160 --> 0:15:09.480
<v Speaker 1>to your machine have to travel halfway across the world

0:15:09.880 --> 0:15:13.520
<v Speaker 1>and while data moves very, very fast, it's not instantaneous,

0:15:13.960 --> 0:15:17.920
<v Speaker 1>so you start to encounter a bit of latency. That

0:15:18.160 --> 0:15:21.400
<v Speaker 1>latency or lag means there is a delay between when

0:15:21.480 --> 0:15:24.800
<v Speaker 1>a Gamer does something in their game on their machine

0:15:25.360 --> 0:15:28.520
<v Speaker 1>and when the server finds out about it, and sometimes

0:15:28.600 --> 0:15:31.960
<v Speaker 1>that lag is enough to cause problems in gameplay. In fact,

0:15:32.200 --> 0:15:35.040
<v Speaker 1>the LAG does not have to be very long for

0:15:35.120 --> 0:15:38.840
<v Speaker 1>issues to pop up. Well, less than a second in fact.

0:15:39.360 --> 0:15:41.800
<v Speaker 1>I'll give you an example. So let's say you and

0:15:41.840 --> 0:15:44.640
<v Speaker 1>I are playing in a one on one first person

0:15:44.760 --> 0:15:47.840
<v Speaker 1>shooter game. It's me versus you, and you've got me

0:15:47.880 --> 0:15:50.960
<v Speaker 1>in your sights. You're clear across the map. You've spotted me.

0:15:51.280 --> 0:15:53.440
<v Speaker 1>You've got a sniper rifle, so you take aim at

0:15:53.440 --> 0:15:56.200
<v Speaker 1>me and you shoot from your perspective. You've got a

0:15:56.200 --> 0:15:58.960
<v Speaker 1>clear shot. There's no way you can miss. But then

0:15:59.520 --> 0:16:03.800
<v Speaker 1>there's the latency. Let's say my connection is lagging just

0:16:03.920 --> 0:16:06.280
<v Speaker 1>a bit, that I've got a very high ping rate

0:16:06.560 --> 0:16:10.360
<v Speaker 1>to the game server and in fact, while you appear

0:16:10.760 --> 0:16:13.880
<v Speaker 1>to be aiming straight at me, because from your side

0:16:14.000 --> 0:16:17.840
<v Speaker 1>the game server thinks that is where I'm at, on

0:16:17.880 --> 0:16:21.000
<v Speaker 1>my side I was doing the old Serpentinam and the

0:16:21.040 --> 0:16:24.760
<v Speaker 1>server gets my input commands and the game essentially decides

0:16:24.800 --> 0:16:28.000
<v Speaker 1>that your shots don't connect because it turns out I

0:16:28.040 --> 0:16:31.320
<v Speaker 1>wasn't really in the spot where you were aiming the

0:16:31.360 --> 0:16:34.680
<v Speaker 1>whole time. There are some gamers who use this kind

0:16:34.760 --> 0:16:38.120
<v Speaker 1>of thing to cheat at Games. So back in the

0:16:38.160 --> 0:16:42.040
<v Speaker 1>early days of Halo, to Multiplayer, there was a tactic

0:16:42.120 --> 0:16:46.120
<v Speaker 1>called stand by. A lot of modems had a standby

0:16:46.160 --> 0:16:50.240
<v Speaker 1>feature that would let you temporarily pause a connection to

0:16:50.320 --> 0:16:54.120
<v Speaker 1>a server. So it's like disconnecting, but it was just

0:16:54.200 --> 0:16:58.320
<v Speaker 1>doing it for a moment. so by using it strategically Halo,

0:16:58.400 --> 0:17:01.080
<v Speaker 1>two players could appear to be in one place in

0:17:01.120 --> 0:17:05.320
<v Speaker 1>the game because the game server couldn't verify where the

0:17:05.359 --> 0:17:09.399
<v Speaker 1>player was and so would just essentially keep the player

0:17:09.760 --> 0:17:13.960
<v Speaker 1>on the course that they were on before the connection severed,

0:17:14.119 --> 0:17:16.840
<v Speaker 1>but it would hold off on dropping the player entirely

0:17:16.880 --> 0:17:21.000
<v Speaker 1>in case the connection repaired itself. And so that meant

0:17:21.000 --> 0:17:23.520
<v Speaker 1>that if other players were trying to do damage to

0:17:23.720 --> 0:17:28.480
<v Speaker 1>that character, nothing would happen and once the connection reestablished,

0:17:28.480 --> 0:17:32.639
<v Speaker 1>the game would reconcile the players actual position. So to

0:17:32.720 --> 0:17:35.359
<v Speaker 1>someone else it would look like your opponent had gone

0:17:35.400 --> 0:17:39.000
<v Speaker 1>invincible for a few seconds and then would suddenly teleport

0:17:39.080 --> 0:17:42.080
<v Speaker 1>to a different location. And this got to be a

0:17:42.119 --> 0:17:44.320
<v Speaker 1>real problem because people were using it to get an

0:17:44.400 --> 0:17:49.199
<v Speaker 1>unfair advantage over others. But generally these days players do

0:17:49.240 --> 0:17:52.600
<v Speaker 1>not want a High Ping rate. It makes playing the

0:17:52.640 --> 0:17:55.879
<v Speaker 1>game very difficult and if you're a really competitive player,

0:17:56.200 --> 0:17:59.280
<v Speaker 1>like you're in the elite echelons, you really want to

0:17:59.320 --> 0:18:03.520
<v Speaker 1>minimize all the external factors that could make a game harder.

0:18:03.920 --> 0:18:06.440
<v Speaker 1>You want things to be a nice level playing field

0:18:06.440 --> 0:18:10.399
<v Speaker 1>for everyone. So it really is skill versus skill, maybe

0:18:10.440 --> 0:18:13.920
<v Speaker 1>some luck thrown in, but it's not some external factor

0:18:14.000 --> 0:18:17.200
<v Speaker 1>that you have no control over. Giving one party and

0:18:17.280 --> 0:18:19.920
<v Speaker 1>advantage over the other. So you really want that Ping

0:18:19.960 --> 0:18:23.919
<v Speaker 1>to be low, and by low I'm talking about milliseconds.

0:18:24.240 --> 0:18:28.560
<v Speaker 1>Competitive gamers really want a super low ping, like if

0:18:28.600 --> 0:18:31.200
<v Speaker 1>you managed to log into a server and you find

0:18:31.200 --> 0:18:34.280
<v Speaker 1>out that Your Ping rate is fifteen milliseconds or less,

0:18:35.040 --> 0:18:38.640
<v Speaker 1>that would be amazing. It would also mean you're probably

0:18:38.720 --> 0:18:41.919
<v Speaker 1>living like a mile away from the game server and

0:18:41.960 --> 0:18:46.080
<v Speaker 1>you're connecting straight to it. A Ping between fifteen and

0:18:46.119 --> 0:18:50.240
<v Speaker 1>forty five milliseconds is really good and it's not ideal,

0:18:50.520 --> 0:18:52.879
<v Speaker 1>but it's not enough of a delay to measurably impact

0:18:52.960 --> 0:18:57.080
<v Speaker 1>the game. Between forty five and one hundred milliseconds, you

0:18:57.200 --> 0:19:01.200
<v Speaker 1>start to get into an area where the lag can

0:19:01.200 --> 0:19:06.199
<v Speaker 1>be noticeable. Not necessarily a game breaking mechanic, but you

0:19:06.240 --> 0:19:10.439
<v Speaker 1>can start to notice little issues. Between one hundred and

0:19:10.440 --> 0:19:13.159
<v Speaker 1>two hundred fifty milliseconds, you've gotten experience that can make

0:19:13.200 --> 0:19:16.119
<v Speaker 1>a game unplayable, and beyond two fifty you might as

0:19:16.160 --> 0:19:19.480
<v Speaker 1>well just disconnect and try a different server. But it

0:19:19.520 --> 0:19:21.800
<v Speaker 1>also depends on what type of game you're playing. Right

0:19:21.880 --> 0:19:24.720
<v Speaker 1>not all games are equal. If you're playing a turn

0:19:24.800 --> 0:19:28.680
<v Speaker 1>based game, that's not nearly as sensitive to paying issues,

0:19:28.760 --> 0:19:30.359
<v Speaker 1>like if one player gets to go and then the

0:19:30.400 --> 0:19:34.080
<v Speaker 1>other player gets to go and you're not simultaneously battling

0:19:34.680 --> 0:19:37.639
<v Speaker 1>um at every moment, then a little delay is not

0:19:37.680 --> 0:19:39.440
<v Speaker 1>going to be a big problem. It might make the

0:19:40.119 --> 0:19:43.600
<v Speaker 1>game play a little irritating, but it's still totally playable.

0:19:43.880 --> 0:19:47.560
<v Speaker 1>But if you're talking about a twitch based first person

0:19:47.640 --> 0:19:51.159
<v Speaker 1>shooter style game, Players Need Really Low Ping for the

0:19:51.160 --> 0:19:54.600
<v Speaker 1>game to run smoothly, particularly if you're talking about those

0:19:54.640 --> 0:19:58.199
<v Speaker 1>elite levels of play. As an example of how this

0:19:58.280 --> 0:20:01.240
<v Speaker 1>can give one player an edge over or another, imagine

0:20:01.240 --> 0:20:04.040
<v Speaker 1>a scenario in which two players are about to come

0:20:04.080 --> 0:20:07.280
<v Speaker 1>into view of each other. Both of them are going

0:20:07.320 --> 0:20:09.520
<v Speaker 1>to have line of sight to the other players, so

0:20:09.600 --> 0:20:13.760
<v Speaker 1>like they're both cresting a hill or something. But let's

0:20:13.800 --> 0:20:18.800
<v Speaker 1>say player one's Ping is much lower than player two's Ping.

0:20:19.000 --> 0:20:22.240
<v Speaker 1>That means player one has much less path latency to

0:20:22.240 --> 0:20:25.720
<v Speaker 1>the game server. That could mean that player one will

0:20:25.760 --> 0:20:29.120
<v Speaker 1>be able to see player to a moment earlier, which

0:20:29.160 --> 0:20:32.239
<v Speaker 1>can give player one an advantage in the encounter. If

0:20:32.280 --> 0:20:35.720
<v Speaker 1>you've got two players of similar skill, that could push

0:20:35.880 --> 0:20:40.880
<v Speaker 1>a fair fight into unfair territory. All right, we're gonna

0:20:41.000 --> 0:20:43.960
<v Speaker 1>take another quick break. When we come back we'll wrap

0:20:44.080 --> 0:20:56.600
<v Speaker 1>up this discussion about paying. Okay, so now we understand

0:20:56.680 --> 0:21:00.520
<v Speaker 1>that ping is a way to measure the latency between

0:21:00.560 --> 0:21:03.440
<v Speaker 1>a client machine and a server machine. You could also

0:21:03.520 --> 0:21:06.000
<v Speaker 1>do it between servers. You know, it's it's really between

0:21:06.040 --> 0:21:08.919
<v Speaker 1>any two machines that are connected on a network. But

0:21:09.040 --> 0:21:14.160
<v Speaker 1>what Affects Ping? What makes ping go from low to high? Well,

0:21:14.200 --> 0:21:18.399
<v Speaker 1>as I mentioned earlier, physical distance between the client and

0:21:18.440 --> 0:21:22.760
<v Speaker 1>the server is one thing that can certainly affect Ping.

0:21:22.880 --> 0:21:25.879
<v Speaker 1>The further your information needs to travel to get to

0:21:25.920 --> 0:21:29.399
<v Speaker 1>a server and then return to get to you, the

0:21:29.480 --> 0:21:32.200
<v Speaker 1>more latency you're going to encounter. That just makes sense, right.

0:21:32.560 --> 0:21:35.200
<v Speaker 1>So if you're in the United States then you're connecting

0:21:35.200 --> 0:21:38.760
<v Speaker 1>to game servers that are located in Europe, chances are

0:21:39.119 --> 0:21:41.280
<v Speaker 1>Your Ping is going to be on the higher side

0:21:41.600 --> 0:21:44.359
<v Speaker 1>compared to Europeans who are connecting to that same server.

0:21:45.040 --> 0:21:48.400
<v Speaker 1>The other big factor is the amount of traffic that's

0:21:48.400 --> 0:21:52.760
<v Speaker 1>on your personal network. Just like with roadways, more traffic

0:21:53.040 --> 0:21:57.160
<v Speaker 1>leads to congestion and it slows things down. So if

0:21:57.200 --> 0:22:00.280
<v Speaker 1>you want to jump into war zone while you're house

0:22:00.320 --> 0:22:03.600
<v Speaker 1>made is busy downloading a ton of four K films,

0:22:04.480 --> 0:22:06.600
<v Speaker 1>chances are you're paying is going to suffer because your

0:22:06.640 --> 0:22:11.000
<v Speaker 1>network bandwidth is finite. It's a limited resource. There's only

0:22:11.040 --> 0:22:13.640
<v Speaker 1>so much of it and if the game is having

0:22:13.640 --> 0:22:16.560
<v Speaker 1>to fight for some of that bandwidth compared to the

0:22:16.640 --> 0:22:20.520
<v Speaker 1>downloading of these massive files, that means you're paying is

0:22:20.560 --> 0:22:23.639
<v Speaker 1>probably going to go up as a result. For that reason,

0:22:23.640 --> 0:22:25.760
<v Speaker 1>there are a lot of pro gamers out there who

0:22:25.920 --> 0:22:29.360
<v Speaker 1>will have to dedicated network connections, one just for their

0:22:29.400 --> 0:22:33.520
<v Speaker 1>gaming and the other for everything else, which to me

0:22:33.640 --> 0:22:36.359
<v Speaker 1>is crazy. But everything about pro gaming is crazy to

0:22:36.400 --> 0:22:40.879
<v Speaker 1>me because I'm a casual Gamer right I can't imagine

0:22:41.040 --> 0:22:46.359
<v Speaker 1>dedicating eight hours or more per day to playing, streaming,

0:22:46.760 --> 0:22:51.359
<v Speaker 1>you know, cutting together videos of my gameplay. That just is.

0:22:52.000 --> 0:22:55.960
<v Speaker 1>It's daunting to me anyway. Other things that can affect

0:22:56.000 --> 0:22:59.600
<v Speaker 1>paying can include the type of connection that you're using.

0:22:59.720 --> 0:23:03.360
<v Speaker 1>If you've got a hardwired connection, they go straight from

0:23:03.400 --> 0:23:06.640
<v Speaker 1>your computer to your router. That is going to Minimize

0:23:06.920 --> 0:23:10.120
<v Speaker 1>Ping on your end, at least as far as connectivity

0:23:10.200 --> 0:23:14.159
<v Speaker 1>between router and machine goes. Uh, if your housemaid is

0:23:14.160 --> 0:23:17.760
<v Speaker 1>still downloading the complete works of the fairly brothers, you're

0:23:17.760 --> 0:23:21.160
<v Speaker 1>still gonna have issues with paying. If if you're sharing

0:23:21.280 --> 0:23:26.480
<v Speaker 1>a network connection, if you're relying on Wifi. Then things

0:23:26.520 --> 0:23:30.359
<v Speaker 1>like your distance between your computer and the Wifi router

0:23:31.000 --> 0:23:33.600
<v Speaker 1>or the fact that there may be walls or ceilings

0:23:33.680 --> 0:23:36.160
<v Speaker 1>or floors between you and the router. All of that

0:23:36.560 --> 0:23:40.520
<v Speaker 1>can have an effect on paying. So general rule is

0:23:40.560 --> 0:23:43.840
<v Speaker 1>you want to be closer to the router rather than

0:23:43.880 --> 0:23:47.960
<v Speaker 1>further away, and if you can have a hardwired connection

0:23:48.440 --> 0:23:52.440
<v Speaker 1>it's better. Again, these really have more of an impact

0:23:52.800 --> 0:23:56.760
<v Speaker 1>at the higher levels of Gameplay. If you're a casual player,

0:23:57.359 --> 0:24:00.879
<v Speaker 1>it can still be something that might you might notice,

0:24:00.960 --> 0:24:04.320
<v Speaker 1>but it's not likely to have as critical and impact

0:24:04.440 --> 0:24:08.080
<v Speaker 1>on your level of play. It's also possible for there

0:24:08.119 --> 0:24:11.240
<v Speaker 1>to be issues beyond your own network that you have

0:24:11.320 --> 0:24:16.360
<v Speaker 1>no control over. So perhaps your Internet service providers network

0:24:16.520 --> 0:24:20.399
<v Speaker 1>is having an issue, or a network that your I

0:24:20.640 --> 0:24:24.359
<v Speaker 1>s P connects to Um that might have an issue

0:24:24.440 --> 0:24:26.600
<v Speaker 1>and there's not much you can do about that other

0:24:26.720 --> 0:24:29.480
<v Speaker 1>than maybe you can try and switch to a different

0:24:29.520 --> 0:24:33.440
<v Speaker 1>server to see if the routing between you and that

0:24:33.520 --> 0:24:36.199
<v Speaker 1>server is better. But if it's a problem with your

0:24:36.200 --> 0:24:39.399
<v Speaker 1>I s P, if it's between like if it's in

0:24:39.440 --> 0:24:42.359
<v Speaker 1>that last mile, there's really nothing you can do because

0:24:43.080 --> 0:24:47.600
<v Speaker 1>everything is funneling through that last mile connection to your

0:24:47.920 --> 0:24:51.800
<v Speaker 1>home and you can't step around that, at least not

0:24:51.880 --> 0:24:55.359
<v Speaker 1>without somehow magically switching to a different I s p. obviously,

0:24:55.960 --> 0:25:01.000
<v Speaker 1>if you are reliant on something like satellite networking, then

0:25:01.280 --> 0:25:05.960
<v Speaker 1>that's going to introduce enormous paying. In fact, with satellite

0:25:06.000 --> 0:25:11.000
<v Speaker 1>connectivity really aren't going to be able to compete in

0:25:11.040 --> 0:25:16.880
<v Speaker 1>things like first person shooters because of the latency between messages.

0:25:16.880 --> 0:25:21.320
<v Speaker 1>I mean these satellites are in outer space, so it

0:25:21.359 --> 0:25:24.040
<v Speaker 1>does take a little bit longer for the data to

0:25:24.119 --> 0:25:27.879
<v Speaker 1>get between you and the satellite then if you were using,

0:25:28.240 --> 0:25:31.440
<v Speaker 1>you know, fiber optic cable, for example, and that can

0:25:31.480 --> 0:25:33.760
<v Speaker 1>be enough to make it impossible for you to play

0:25:33.920 --> 0:25:37.200
<v Speaker 1>the very fast paced twitch based games. You can still

0:25:37.240 --> 0:25:41.160
<v Speaker 1>play things like, uh, turn based Games, maybe even mmos

0:25:41.240 --> 0:25:44.440
<v Speaker 1>that kind of thing. But yeah, for the stuff that's

0:25:44.480 --> 0:25:48.400
<v Speaker 1>reliant on a very fast connection, uh, you really wouldn't

0:25:48.440 --> 0:25:53.560
<v Speaker 1>be able to to manage that. Anyway, that's the story

0:25:53.720 --> 0:25:57.040
<v Speaker 1>of paying. Maybe someday I'll do the story of Pong.

0:25:57.720 --> 0:25:59.840
<v Speaker 1>That was a terrible joke. Also, I have kind of

0:26:00.080 --> 0:26:02.200
<v Speaker 1>covered the story upon when I talked about the history

0:26:02.240 --> 0:26:05.320
<v Speaker 1>of Arcade Games. So it was a terrible dad joke

0:26:05.440 --> 0:26:08.199
<v Speaker 1>and it was moot so I apologize to each and

0:26:08.359 --> 0:26:10.880
<v Speaker 1>every one of you, but I hope you enjoyed this episode.

0:26:10.920 --> 0:26:13.880
<v Speaker 1>This look at what Ping is, where it came from,

0:26:13.920 --> 0:26:17.560
<v Speaker 1>why it has that name and what it means Um

0:26:17.600 --> 0:26:20.200
<v Speaker 1>just the one thing to keep in mind is that

0:26:20.240 --> 0:26:22.879
<v Speaker 1>you want the number to be low. The higher the number,

0:26:23.160 --> 0:26:26.720
<v Speaker 1>the greater the latency between you and the machine when

0:26:26.720 --> 0:26:29.840
<v Speaker 1>you do speed tests on your device, like if you've

0:26:29.840 --> 0:26:33.439
<v Speaker 1>ever wondered if there's an issue with your network and

0:26:33.520 --> 0:26:36.000
<v Speaker 1>you're you know, maybe things are taking a long time

0:26:36.040 --> 0:26:38.159
<v Speaker 1>to download or you're getting a lot of buffering and

0:26:38.280 --> 0:26:42.480
<v Speaker 1>streaming video and you do a speed test, it's essentially

0:26:42.520 --> 0:26:46.200
<v Speaker 1>a ping. Is What's going on. It's it's although there

0:26:46.200 --> 0:26:50.360
<v Speaker 1>are more involved speed tests that actually have a they

0:26:50.400 --> 0:26:55.040
<v Speaker 1>maintain a connection in order to get essentially an average

0:26:55.680 --> 0:27:01.080
<v Speaker 1>of network throughput, how how much data is being able

0:27:01.160 --> 0:27:04.240
<v Speaker 1>to pass between your computer and the network over a

0:27:04.240 --> 0:27:07.440
<v Speaker 1>given amount of time. But it's an extension of this

0:27:07.600 --> 0:27:11.200
<v Speaker 1>paying concept. Al Right, if you have suggestions for topics

0:27:11.240 --> 0:27:13.520
<v Speaker 1>I should tackle in future episodes of tech stuff, please

0:27:13.520 --> 0:27:15.440
<v Speaker 1>reach out to me. One Way to do that is

0:27:15.480 --> 0:27:18.639
<v Speaker 1>to download the I heart radio APP, navigate over to

0:27:18.760 --> 0:27:22.040
<v Speaker 1>the text stuff page on that APP and Click on

0:27:22.040 --> 0:27:24.879
<v Speaker 1>that little microphone icon that will let you leave a

0:27:24.960 --> 0:27:27.080
<v Speaker 1>voice message up to thirty seconds in linked for me.

0:27:27.720 --> 0:27:30.480
<v Speaker 1>Or you can pop on over to twitter and use

0:27:30.560 --> 0:27:34.000
<v Speaker 1>the handle text stuff hsw to. Send me a message

0:27:34.320 --> 0:27:43.560
<v Speaker 1>and I'll talk to you again really soon. Text stuff

0:27:43.680 --> 0:27:46.840
<v Speaker 1>is an I heart radio production. For more podcasts from

0:27:46.840 --> 0:27:49.919
<v Speaker 1>my heart radio, visit the I heart radio APP, apple

0:27:49.960 --> 0:27:52.720
<v Speaker 1>podcasts or wherever you listen to your favorite shows.