WEBVTT 0:00:04.600000 --> 0:00:10.740000 In this next section we're going to dive into the details of CSMA CD. 0:00:10.740000 --> 0:00:14.720000 So to begin with, before we go into that I have to explain what the difference 0:00:14.720000 --> 0:00:18.960000 is between two terms of half duplex versus full duplex. 0:00:18.960000 --> 0:00:25.060000 So this concept of duplex is not necessarily just something relevant to 0:00:25.060000 --> 0:00:31.120000 ethernet. It's really a high level concept of how can devices communicate. 0:00:31.120000 --> 0:00:38.960000 For example, if you and I are speaking and I say, well I'm going to use 0:00:38.960000 --> 0:00:41.000000 simplex communication. 0:00:41.000000 --> 0:00:41.820000 That's not on here. 0:00:41.820000 --> 0:00:45.260000 Simplex. Simplex means I'm the only one talking. 0:00:45.260000 --> 0:00:49.400000 Sort of like, I'm the dad, you're the child, you be quiet, you don't say 0:00:49.400000 --> 0:00:51.220000 anything, I'm going to talk to you. 0:00:51.220000 --> 0:00:54.200000 That's simplex, right? 0:00:54.200000 --> 0:00:57.480000 Or to put it more technically, you're in your car, you're listening to 0:00:57.480000 --> 0:00:58.640000 the radio, right? 0:00:58.640000 --> 0:01:02.260000 That's simplex. Your radio is not transmitting back to the radio station, 0:01:02.260000 --> 0:01:06.500000 it's just listening to stuff coming down from the radio station. 0:01:06.500000 --> 0:01:10.320000 That's simplex. Now if we're going to have bidirectional communication, 0:01:10.320000 --> 0:01:13.660000 both people talking back and forth, then we have to answer the question 0:01:13.660000 --> 0:01:16.540000 of can they both talk at the same time? 0:01:16.540000 --> 0:01:20.160000 Or does one person talk and then the other person talks? 0:01:20.160000 --> 0:01:24.760000 Well, in human terminology, it's probably better if we take turns, right? 0:01:24.760000 --> 0:01:27.680000 So we can not get each other irritated. 0:01:27.680000 --> 0:01:29.640000 So that's called half duplex. 0:01:29.640000 --> 0:01:33.700000 Half duplex means when I'm talking, you graciously listen, then when I'm 0:01:33.700000 --> 0:01:35.360000 done, you talk, right? 0:01:35.360000 --> 0:01:36.520000 We're in a therapist's office. 0:01:36.520000 --> 0:01:37.840000 Here, I'll give you the talking stick. 0:01:37.840000 --> 0:01:38.960000 Now you can talk now. 0:01:38.960000 --> 0:01:42.640000 Mm-hmm. Okay, great, I heard you, I get the talking stick back, my turn. 0:01:42.640000 --> 0:01:44.640000 So that's half duplex, right? 0:01:44.640000 --> 0:01:48.040000 Full duplex is like a really bad therapy session where you and your wife 0:01:48.040000 --> 0:01:51.760000 go, you're yelling at each other at the same time and nobody can hear 0:01:51.760000 --> 0:01:53.980000 anybody else. That's full duplex. 0:01:53.980000 --> 0:01:55.920000 Now you might think, oh, full duplex is bad. 0:01:55.920000 --> 0:01:58.780000 Well, certainly if you're in a therapy session with someone that you're 0:01:58.780000 --> 0:02:02.360000 not having a good time with, yes, full duplex would be bad. 0:02:02.360000 --> 0:02:07.440000 In the concept of Ethernet or any kind of computing technology, full duplex 0:02:07.440000 --> 0:02:10.600000 just simply means that we have some way that the two devices can talk 0:02:10.600000 --> 0:02:14.180000 to each other at the same time and they're not stepping on each other's 0:02:14.180000 --> 0:02:17.420000 toes. A can talk to B, B can hear that. 0:02:17.420000 --> 0:02:22.460000 He can receive it at the exact same time, B is talking to A, that is full 0:02:22.460000 --> 0:02:24.680000 duplex communication. 0:02:24.680000 --> 0:02:29.180000 Now, when Ethernet first came out back in the late 1970s here, it was 0:02:29.180000 --> 0:02:34.940000 half duplex. Now remember, Ethernet was based on this old Aloha network, 0:02:34.940000 --> 0:02:38.560000 this wireless network communicating across the Hawaiian Islands and that 0:02:38.560000 --> 0:02:41.400000 was based on the concept of half duplex. 0:02:41.400000 --> 0:02:45.000000 That only one person could talk and if two people talked at the same time, 0:02:45.000000 --> 0:02:46.420000 you didn't get an acknowledgement. 0:02:46.420000 --> 0:02:48.300000 So you had to retransmit. 0:02:48.300000 --> 0:02:52.240000 So the original CSMA CD, the original Ethernet was sort of based on that. 0:02:52.240000 --> 0:02:55.780000 Only one person can use the cable at a time. 0:02:55.780000 --> 0:02:59.960000 So Dr. Robert Metcalf said, okay, well, how are we going to do this in 0:02:59.960000 --> 0:03:02.380000 a way that's fair? 0:03:02.380000 --> 0:03:05.920000 And I want to make it a little bit better than the Aloha network. 0:03:05.920000 --> 0:03:09.680000 I want to make it where the utilization of the channel is a little bit 0:03:09.680000 --> 0:03:14.620000 more efficient than just anybody jumping on whenever they want to. 0:03:14.620000 --> 0:03:18.360000 So he came up with CSMA CD and that's what we're going to jump into right 0:03:18.360000 --> 0:03:23.460000 now. So the CS portion of it stands for carrier sense. 0:03:23.460000 --> 0:03:25.180000 What is the carrier? 0:03:25.180000 --> 0:03:29.900000 The carrier is that electrical signal that's going across the wire that's 0:03:29.900000 --> 0:03:33.520000 transmitting the ones and zeros, that fluctuation, that change in electrical 0:03:33.520000 --> 0:03:36.400000 voltage that's carrying ones and zeros. 0:03:36.400000 --> 0:03:40.460000 So when an Ethernet adapter or an Ethernet NIC card is performing carrier 0:03:40.460000 --> 0:03:45.940000 sense, basically it means it's in receive mode, it's listening to see 0:03:45.940000 --> 0:03:48.920000 if somebody's talking, to see if there's any energy on that cable, see 0:03:48.920000 --> 0:03:51.560000 if anyone's talking right now and sending ones and zeros. 0:03:51.560000 --> 0:03:53.960000 So that's carrier sense. 0:03:53.960000 --> 0:03:57.220000 Now in the way that Ethernet works, and we're going to go into this in 0:03:57.220000 --> 0:04:00.800000 a little bit more detail, is that let's say that I'm an Ethernet adapter 0:04:00.800000 --> 0:04:07.020000 and the IP process within the CPU has given me some data. 0:04:07.020000 --> 0:04:12.000000 I put that into an Ethernet frame and we haven't looked at and now I want 0:04:12.000000 --> 0:04:15.020000 to transmit all those bits as ones and zeros out of the wire. 0:04:15.020000 --> 0:04:17.980000 So step number one, perform carrier sense. 0:04:17.980000 --> 0:04:21.480000 In other words, listen to the wire, see if I can get detect any electrical 0:04:21.480000 --> 0:04:23.200000 energy if someone's talking. 0:04:23.200000 --> 0:04:29.140000 Now what if they're not, what if the wire is free, nobody's talking? 0:04:29.140000 --> 0:04:34.440000 Well the way Ethernet works is it says okay, if the moment I perform carrier 0:04:34.440000 --> 0:04:39.220000 sense it's free, I have to wait a little bit of time. 0:04:39.220000 --> 0:04:42.440000 There's a little bit of time called the inter-frame gap. 0:04:42.440000 --> 0:04:44.540000 You'll see that as IFG. 0:04:44.540000 --> 0:04:47.680000 Sometimes people call the inter-packet gap. 0:04:47.680000 --> 0:04:53.340000 Same thing. It's a little bit of time in microseconds that you wait and 0:04:53.340000 --> 0:04:56.960000 then if nobody's talking by the time you're done with that time period, 0:04:56.960000 --> 0:05:00.540000 then I can start putting my bits on the wire. 0:05:00.540000 --> 0:05:06.860000 Now back with 10 megabit per second Ethernet back in the early 1980s when 0:05:06.860000 --> 0:05:12.180000 that came out, that period of time was 9.6 microseconds. 0:05:12.180000 --> 0:05:15.780000 Real short. So as humans we can't even detect that. 0:05:15.780000 --> 0:05:20.220000 9.6 microseconds was the inter -frame gap, then you could go. 0:05:20.220000 --> 0:05:25.060000 Now when they came out with fast Ethernet, 100 megabit per second Ethernet, 0:05:25.060000 --> 0:05:28.980000 they said all right let's wait one tenth that time. 0:05:28.980000 --> 0:05:35.540000 So instead of 9.6 microseconds, let's only wait 0.96 microseconds. 0:05:35.540000 --> 0:05:39.520000 Not even one microsecond, just slightly less than one microsecond and 0:05:39.520000 --> 0:05:41.880000 that's how they were able to get 10 times the speed. 0:05:41.880000 --> 0:05:43.380000 Now they did some other things as well. 0:05:43.380000 --> 0:05:47.180000 They sort of changed the way that ones and zeros were represented electrically 0:05:47.180000 --> 0:05:49.300000 but that was also one of the fundamental things they did. 0:05:49.300000 --> 0:05:52.520000 They shrink that inter-frame gap. 0:05:52.520000 --> 0:05:56.420000 Now you might be thinking okay but what if I listen to the wire and it's 0:05:56.420000 --> 0:05:58.660000 busy? Then what do I do? 0:05:58.660000 --> 0:05:59.660000 We'll talk about that. 0:05:59.660000 --> 0:06:02.500000 We'll get there in just a second. 0:06:02.500000 --> 0:06:08.920000 All right so CSMA so the MA stands for multiple access. 0:06:08.920000 --> 0:06:13.180000 So what this means is that Ethernet is the type of technology that says 0:06:13.180000 --> 0:06:19.400000 okay if I have multiple units of data to send, multiple frames are so 0:06:19.400000 --> 0:06:21.100000 stacked up in my memory. 0:06:21.100000 --> 0:06:24.880000 Once I'm done transmitting frame number one, I can go ahead and transmit 0:06:24.880000 --> 0:06:27.560000 frame number two, frame number three, frame number four. 0:06:27.560000 --> 0:06:31.980000 In other words I can transmit multiple frames one after the other. 0:06:31.980000 --> 0:06:36.400000 I might be thinking well don't all networking technologies do that? 0:06:36.400000 --> 0:06:38.660000 Most of them do but not all. 0:06:38.660000 --> 0:06:43.960000 For example if you would study networking oh I don't know 15 years ago 0:06:43.960000 --> 0:06:47.720000 or something and you would learn about token ring as an example. 0:06:47.720000 --> 0:06:52.560000 With token ring and older technology that I don't think anybody uses anymore, 0:06:52.560000 --> 0:06:57.780000 the idea was once I put my frame on the wire then I had to wait for the 0:06:57.780000 --> 0:07:00.820000 special little electrical, I had to wait for the frame to come back to 0:07:00.820000 --> 0:07:06.240000 me and strip it off the wire and then release a little electrical pulse 0:07:06.240000 --> 0:07:11.660000 called a token. So I couldn't immediately transmit my second frame, my 0:07:11.660000 --> 0:07:12.900000 third frame, my fourth frame. 0:07:12.900000 --> 0:07:16.240000 After every single frame the frame would go around the circle it was a 0:07:16.240000 --> 0:07:20.540000 ring. You took your frame off the circle, you released this pulse and 0:07:20.540000 --> 0:07:23.740000 then if you were lucky enough to get that pulse when it came back to you 0:07:23.740000 --> 0:07:27.220000 you could transmit your next frame but you couldn't transmit one frame 0:07:27.220000 --> 0:07:27.980000 after the other. 0:07:27.980000 --> 0:07:32.040000 You couldn't do multiple access but with ethernet there's nothing like 0:07:32.040000 --> 0:07:35.140000 that. There's nothing that you have to do between when you transmit frame 0:07:35.140000 --> 0:07:38.040000 one and frame two and frame three. 0:07:38.040000 --> 0:07:41.460000 That's why they call it multiple access. 0:07:41.460000 --> 0:07:44.380000 And then ethernet performs collision detect. 0:07:44.380000 --> 0:07:48.620000 So the idea is is that when a NIC card an adapter is transmitting on an 0:07:48.620000 --> 0:07:52.040000 ethernet cable it owns that cable. 0:07:52.040000 --> 0:07:56.040000 Nobody else should be talking, it has the full bandwidth, the full electrical 0:07:56.040000 --> 0:07:58.280000 energy of that cable. 0:07:58.280000 --> 0:08:02.260000 Now there are other technologies that don't do that. 0:08:02.260000 --> 0:08:08.480000 For example think about, well think about your cable TV, right? 0:08:08.480000 --> 0:08:13.100000 In cable TV you've got one cable but you've got different frequencies 0:08:13.100000 --> 0:08:19.280000 on that cable which are like your radio in your car, right? 0:08:19.280000 --> 0:08:22.160000 You've got all these different radio waves coming to you at the exact 0:08:22.160000 --> 0:08:26.160000 same time right now and your cranium, your skull is being bombarded with 0:08:26.160000 --> 0:08:30.760000 probably hundreds if not thousands of radio frequencies but if you're 0:08:30.760000 --> 0:08:35.540000 a radio in a car you tune in to a particular frequency but just because 0:08:35.540000 --> 0:08:38.800000 you're tuned into it doesn't mean those other ones stop. 0:08:38.800000 --> 0:08:41.240000 They're still coming in you're just not paying attention to those you're 0:08:41.240000 --> 0:08:44.800000 filtering them out and only listening to the one that you want to listen 0:08:44.800000 --> 0:08:48.380000 to. But ethernet's not like that. 0:08:48.380000 --> 0:08:51.660000 ethernet says okay only one person can go at a time you own the cable 0:08:51.660000 --> 0:08:57.760000 it's all yours. And so when a device is transmitting remember the Aloha 0:08:57.760000 --> 0:09:00.560000 network the Aloha network said okay when I'm transmitting I'm basically 0:09:00.560000 --> 0:09:05.340000 deaf I can't hear anything I'm just talking and then once I'm done transmitting 0:09:05.340000 --> 0:09:07.780000 I'll listen for an acknowledgement. 0:09:07.780000 --> 0:09:12.500000 If I get an acknowledgement great my transmission made it. 0:09:12.500000 --> 0:09:16.220000 Well Dr. Robert Metcalf said it's kind of inefficient I don't like that 0:09:16.220000 --> 0:09:17.540000 so here's what he did. 0:09:17.540000 --> 0:09:22.760000 He said okay when I'm speaking I'm listening at the same time and the 0:09:22.760000 --> 0:09:28.100000 idea is as I'm talking I shouldn't hear anything maybe myself you know 0:09:28.100000 --> 0:09:31.320000 if the electrical energy bounces back to me which hopefully it wouldn't 0:09:31.320000 --> 0:09:37.140000 but I shouldn't hear any other bit sequences if I'm sending out 1011 I 0:09:37.140000 --> 0:09:42.560000 shouldn't see anything coming back to me if I do that means a collision 0:09:42.560000 --> 0:09:46.920000 has happened that means that my electrical energy has collided with somebody 0:09:46.920000 --> 0:09:51.220000 else's electrical energy and what I was in the process of sending is now 0:09:51.220000 --> 0:09:55.440000 meaningless garbage so that is called collision detect. 0:09:55.440000 --> 0:10:03.340000 So let's look I'm going to go ahead and expand this so you can see a little 0:10:03.340000 --> 0:10:08.860000 bit better. So in this particular environment we've got three PCs now 0:10:08.860000 --> 0:10:15.480000 at the moment PCB is the PC that's transmitting and you can see here that 0:10:15.480000 --> 0:10:18.480000 that device in the middle is a hub so he's transmitting into an Ethernet 0:10:18.480000 --> 0:10:22.420000 hub and a hub's job is to simply take in though the electrical energy 0:10:22.420000 --> 0:10:27.220000 the ones and zeros and they're just replicated out all other ports and 0:10:27.220000 --> 0:10:32.760000 PCA and C would like to speak but they can't right now they have to hold 0:10:32.760000 --> 0:10:35.740000 on to their frame because PCB is transmitting. 0:10:35.740000 --> 0:10:39.540000 All right so both want to transmit a frame at the same time but they can't 0:10:39.540000 --> 0:10:42.300000 because PCB is transmitting. 0:10:42.300000 --> 0:10:51.400000 At some point PCB will be done and PCA and PCC will realize the PCB is 0:10:51.400000 --> 0:10:55.680000 done they will receive the last bit and you might be wondering well how 0:10:55.680000 --> 0:10:59.340000 do they necessarily know if they've received the last bit. 0:10:59.340000 --> 0:11:02.560000 First of all when these bits are transformed on the wire there's very 0:11:02.560000 --> 0:11:07.340000 specific rules about the the spacing of time between each bit. 0:11:07.340000 --> 0:11:12.680000 I can't send a bit wait a microsecond send a bit wait 15 microseconds 0:11:12.680000 --> 0:11:16.220000 send another bit again you can't do that so the rule one of the rules 0:11:16.220000 --> 0:11:19.520000 of Ethernet is you know how long you can hold the voltage to a certain 0:11:19.520000 --> 0:11:23.680000 level to represent a one or zero and how much time spacer is between the 0:11:23.680000 --> 0:11:26.860000 next voltage change that represents a one or a zero. 0:11:26.860000 --> 0:11:30.740000 So Ethernet knows that if a certain amount of time has elapsed the frame 0:11:30.740000 --> 0:11:36.960000 must be done. Also if we're talking about 802.3 the IEEE version of Ethernet 0:11:36.960000 --> 0:11:39.760000 there's actually a field in there that we're going to see that says how 0:11:39.760000 --> 0:11:42.680000 long is this frame so when you actually send your frame to somebody you 0:11:42.680000 --> 0:11:47.260000 tell them how long it is so they explicitly know when it's finished but 0:11:47.260000 --> 0:11:50.180000 either way whether you get that field that length field or whether you 0:11:50.180000 --> 0:11:53.920000 see a certain amount of time elapsed you know when transmission from that 0:11:53.920000 --> 0:11:57.000000 other guy is finished and the cable is free. 0:11:57.000000 --> 0:12:05.040000 Okay so at this point PCB is finished PCA and C have been sensing the 0:12:05.040000 --> 0:12:10.480000 cable and now they say oh the cable is free okay great. 0:12:10.480000 --> 0:12:15.660000 Now at this point remember I said earlier I said okay during carrier sense 0:12:15.660000 --> 0:12:20.500000 the first time you sense the carrier you see if it's free or not if it's 0:12:20.500000 --> 0:12:23.120000 free you wait this period of time. 0:12:23.120000 --> 0:12:25.380000 Do you remember what that period of time was called? 0:12:25.380000 --> 0:12:31.280000 That was called the inter-frame gap or the IFG the inter-frame gap and 0:12:31.280000 --> 0:12:35.220000 I said but what if you sense the cable and it's currently busy then what 0:12:35.220000 --> 0:12:38.360000 do you do and I said we'll get to that that's what's happening right here 0:12:38.360000 --> 0:12:44.980000 so PCA and C sense the cable and it was busy so they just listen listen 0:12:44.980000 --> 0:12:48.320000 listen listen and the way the ethernet is designed is that once that cable 0:12:48.320000 --> 0:12:51.640000 is free because they were already listening they were in that they were 0:12:51.640000 --> 0:12:54.980000 holding a frame back and they were listening as soon as that cable becomes 0:12:54.980000 --> 0:12:57.600000 free they instantly go. 0:12:57.600000 --> 0:13:01.540000 Now you might say wait a second isn't that going to guarantee a collision 0:13:01.540000 --> 0:13:03.740000 between A and C? 0:13:03.740000 --> 0:13:06.800000 Yes it will but we'll see how that's dealt with in just a moment so that's 0:13:06.800000 --> 0:13:08.220000 what's happening right here. 0:13:08.220000 --> 0:13:12.140000 Not sure what happened with the vertical line connecting PC sort of floating 0:13:12.140000 --> 0:13:15.400000 out there in the clouds but he is connected to that cable they both transmit 0:13:15.400000 --> 0:13:20.940000 their frames at the same time and then what's going to happen within a 0:13:20.940000 --> 0:13:25.680000 few microseconds is as those frames come into the hub or somewhere on 0:13:25.680000 --> 0:13:29.600000 the wire between the hub the electrical energy is going to run into itself 0:13:29.600000 --> 0:13:33.580000 and it's sort of like a wave of the ocean right if I have two waves that 0:13:33.580000 --> 0:13:38.040000 merge what happens they get bigger they produce a bigger wave so if I 0:13:38.040000 --> 0:13:42.500000 was saying well a wave of this height equals a one what's a wave of this 0:13:42.500000 --> 0:13:46.960000 height I don't know it's not a one it's not a zero I don't know what that 0:13:46.960000 --> 0:13:50.520000 is that's what's happening right here now this well-defined electrical 0:13:50.520000 --> 0:13:54.720000 energy that met ones and zeros has now just become meaningless electromagnetic 0:13:54.720000 --> 0:14:01.320000 interferences meaningless garbage and so PC A and C recognize that that 0:14:01.320000 --> 0:14:06.160000 is a collision so what do they do as a result of that well they are in 0:14:06.160000 --> 0:14:10.060000 the process of transmitting a frame when that collision occurred so when 0:14:10.060000 --> 0:14:15.060000 that happens they transmit what's called a jam signal what is a jam signal 0:14:15.060000 --> 0:14:19.160000 all a jam signal is it says however far you were into that frame maybe 0:14:19.160000 --> 0:14:23.040000 I was five percent into transmitting it maybe it has 90 percent of the 0:14:23.040000 --> 0:14:28.320000 way done however far I was whatever bits are remaining I throw those away 0:14:28.320000 --> 0:14:34.740000 and I fill it in with 10101010 and that's called a jam sequence so jam 0:14:34.740000 --> 0:14:40.160000 sequence is just populating the remaining portion of the frame with 10101010 0:14:40.160000 --> 0:14:45.480000 and that everybody on the cable recognizes that as indicating there has 0:14:45.480000 --> 0:14:51.760000 been a collision now as far as PCB is concerned he could care less I mean 0:14:51.760000 --> 0:14:56.320000 he was listening that transmission but if it wasn't for him he doesn't 0:14:56.320000 --> 0:15:02.080000 really care but A and C now they recognize okay there's a collision I'm 0:15:02.080000 --> 0:15:08.220000 sending a jam signal so what do they do so at this point once a frame 0:15:08.220000 --> 0:15:13.580000 has collided and you've completed your jam signal now what you have to 0:15:13.580000 --> 0:15:18.120000 do is you have to stand back and you have to wait again but now because 0:15:18.120000 --> 0:15:21.180000 you're waiting because you experienced a collision you're not going to 0:15:21.180000 --> 0:15:25.760000 wait that nice tidy little inner frame gap that we talked about now what 0:15:25.760000 --> 0:15:30.740000 happens is you're going to use what's called a random back-off timer and 0:15:30.740000 --> 0:15:35.720000 the random back-off timer dictates how long will I wait after a collision 0:15:35.720000 --> 0:15:40.580000 has occurred so you can see here it uses something now you're probably 0:15:40.580000 --> 0:15:43.800000 never going to be tested on this but it's called the truncated binary 0:15:43.800000 --> 0:15:50.120000 exponential back-off algorithm try saying that 10 times fast so basically 0:15:50.120000 --> 0:15:55.540000 what does it says okay Ethernet at the physical layer has this concept 0:15:55.540000 --> 0:16:00.860000 of something called a slot time and a slot time is basically okay if I 0:16:00.860000 --> 0:16:05.880000 put one bit on the wire how long would it take to get all the way to the 0:16:05.880000 --> 0:16:11.500000 end and all the way back to me again that is called a slot time now in 0:16:11.500000 --> 0:16:18.060000 the case of 100 megabit per second Ethernet that's 5.12 microseconds don't 0:16:18.060000 --> 0:16:20.840000 have to write that down by just giving you an idea of how short that is 0:16:20.840000 --> 0:16:28.820000 5.12 microseconds is the slot time well what slot time have to do with 0:16:28.820000 --> 0:16:35.620000 this slot time plays a factor into the random back-off because when I 0:16:35.620000 --> 0:16:40.860000 detect a collision I say okay before I try to retransmit that frame I'm 0:16:40.860000 --> 0:16:46.260000 going to have to pause and wait a certain amount of slot times how many 0:16:46.260000 --> 0:16:51.040000 slot times should I wait that's where this algorithm comes into play so 0:16:51.040000 --> 0:16:57.860000 the algorithm says you'll take 2 to the power of C in this case C is which 0:16:57.860000 --> 0:17:01.360000 attempt is this is this your first attempt of the frame is this your eighth 0:17:01.360000 --> 0:17:05.060000 attempt of the frame your fourth attempt so whatever a temp number it 0:17:05.060000 --> 0:17:11.640000 is you put that where the C is minus one and then you randomly pick some 0:17:11.640000 --> 0:17:16.940000 number between zero and whatever your calculation was so for example PCA 0:17:16.940000 --> 0:17:22.020000 over here let me expand this a little bit this was PCA's very first attempt 0:17:22.020000 --> 0:17:27.400000 at sending that frame so he plugs the number one in for C so 2 to the 0:17:27.400000 --> 0:17:33.280000 power of 1 is 2 2 minus 1 is 1 and so he says okay I can pick from 0 to 0:17:33.280000 --> 0:17:37.680000 1 slot times to wait as my random back -off interval I'll just randomly 0:17:37.680000 --> 0:17:42.680000 pick 0 bam I'm going to start going I'm going to start transmitting now 0:17:42.680000 --> 0:17:48.720000 PCC that was his third attempt at sending his frame to the power of 3 0:17:48.720000 --> 0:17:54.280000 is 8 8 minus 1 is 7 so he says okay I'm going to randomly pick some number 0:17:54.280000 --> 0:17:59.040000 between 0 and 7 slot times to wait for my random back-off timer he says 0:17:59.040000 --> 0:18:04.440000 okay I'm just going to randomly select 5 so now even though they both 0:18:04.440000 --> 0:18:10.380000 ran into each other on that last attempt now because A has randomly selected 0:18:10.380000 --> 0:18:15.000000 a random back-off timer that is a shorter interval than C he gets to go 0:18:15.000000 --> 0:18:20.340000 and you can see here that if a frame repeatedly gets collisions collisions 0:18:20.340000 --> 0:18:24.140000 that number of C is going to increase your second time your third time 0:18:24.140000 --> 0:18:27.360000 your fourth time so the amount of time you're waiting the slot times that 0:18:27.360000 --> 0:18:31.100000 you're waiting gets bigger and bigger and bigger and the ethernet standard 0:18:31.100000 --> 0:18:36.580000 says that that number of C can be no bigger than the number 10 so if I've 0:18:36.580000 --> 0:18:45.220000 tried 10 times and to the power of 10 is 1024 1024 minus 1 is 1023 so 0:18:45.220000 --> 0:18:52.120000 if I've if I've now if this has been my 10th time and it collided I'm 0:18:52.120000 --> 0:18:56.580000 done at this point the ethernet nigg card gives up it tosses the frame 0:18:56.580000 --> 0:19:00.940000 it throws it away in memory and it has to uh I don't even think it's going 0:19:00.940000 --> 0:19:04.980000 to report back upstream to the CPU hey it might it depends on the implementation 0:19:04.980000 --> 0:19:08.920000 but basically that frame is done so something at a higher level like TCP 0:19:08.920000 --> 0:19:13.040000 or something will have to realize hey never gone acknowledgement from 0:19:13.040000 --> 0:19:18.380000 my TCP segment maybe I should send it back down the stack again so that