1 00:00:05,250 --> 00:00:12,100 Now in the definition of what a network is we're told that a computer network is used for sharing resources 2 00:00:12,100 --> 00:00:16,030 between nodes which are computing devices. 3 00:00:16,030 --> 00:00:20,320 In other words, we have devices that are sharing resources between each other. 4 00:00:20,440 --> 00:00:26,470 And there are two main devices that you need to be aware of initially and that's a server and a client. 5 00:00:26,470 --> 00:00:28,570 Now what is a server. 6 00:00:28,570 --> 00:00:31,170 So let's ask the robots once again. 7 00:00:31,330 --> 00:00:36,210 Alexa what is a computer server? In computing 8 00:00:36,240 --> 00:00:42,150 a server is a computer program or a device that provides functionality for other programs or devices 9 00:00:42,360 --> 00:00:43,820 called clients. 10 00:00:43,830 --> 00:00:49,470 This architecture is called the client server model and a single overall computation is distributed 11 00:00:49,470 --> 00:01:00,400 across multiple processes or devices. So notice a server is providing a service or functionality to clients 12 00:01:00,430 --> 00:01:03,260 in what's called a client server model. 13 00:01:03,370 --> 00:01:09,720 So servers provide functionality to clients and that begs the question what is a client? 14 00:01:09,970 --> 00:01:11,880 Alexa what is a client? 15 00:01:13,910 --> 00:01:20,110 A client is a piece of computer hardware or software that accesses a service made available by a server. 16 00:01:20,270 --> 00:01:25,820 The server is often on another computer system in which case the client accesses the service by way 17 00:01:25,820 --> 00:01:27,560 of a network. 18 00:01:27,590 --> 00:01:30,730 Now listen to that that's very important to remember. 19 00:01:31,060 --> 00:01:35,540 A client accesses a service provided by a server. 20 00:01:35,540 --> 00:01:43,350 Typically the server is a different computer or different computing device to the client across a network. 21 00:01:43,400 --> 00:01:48,470 So we are going to access a service hosted by a server across a network. 22 00:01:48,470 --> 00:01:52,510 Here's an example of a server big server right here inside 23 00:01:52,620 --> 00:01:55,000 here are a lot of drive base. 24 00:01:55,120 --> 00:01:57,720 Here's a hard drive. 25 00:01:57,720 --> 00:02:07,760 here’s another one and another one and another one 26 00:02:07,760 --> 00:02:08,840 and I could continue. 27 00:02:12,440 --> 00:02:20,480 The whole idea of a server is to provide resources or functionality to clients. So this server is big 28 00:02:20,570 --> 00:02:22,430 because we want a lot of storage, 29 00:02:22,430 --> 00:02:28,220 we want a lot of computing power and a lot of memory in a server especially if we want to scale it up. 30 00:02:28,250 --> 00:02:33,740 If you've got thousands and thousands of queries from many many clients to a server you wanted to have 31 00:02:33,740 --> 00:02:39,800 the capacity so memory, CPU, storage to handle those queries. 32 00:02:39,800 --> 00:02:42,130 So hence big device. 33 00:02:42,350 --> 00:02:46,390 It needs to have the capacity to service the requests. 34 00:02:46,490 --> 00:02:52,040 So if only one or two people are requesting a web page from the server that's not a problem. 35 00:02:52,130 --> 00:02:56,560 But if we've got thousands and thousands of requests one server may not even be enough. 36 00:02:56,810 --> 00:02:58,930 And then we have distributed services. 37 00:02:59,000 --> 00:03:04,040 So we have a service such as a web page that's distributed across multiple servers. 38 00:03:04,040 --> 00:03:09,800 Google as an example will have thousands upon thousands upon thousands of servers to service the requests 39 00:03:09,800 --> 00:03:15,500 from millions of clients. So they will have many many servers to service or provide a service to the 40 00:03:15,500 --> 00:03:16,640 clients. 41 00:03:16,640 --> 00:03:23,300 When you go to the Google Website and you type in a request that's querying databases and retrieving 42 00:03:23,300 --> 00:03:29,140 information from databases to give you a answer about some query that you've made. 43 00:03:29,330 --> 00:03:33,170 So the server is providing a service to a client. 44 00:03:33,170 --> 00:03:40,190 Now you don't need dedicated hardware like this to have a server a client device such as a laptop can 45 00:03:40,280 --> 00:03:41,880 act as a server. 46 00:03:41,930 --> 00:03:46,310 So the role will determine how that device is acting. 47 00:03:46,310 --> 00:03:52,070 A physical laptop such as this laptop could be a client requesting a service from a server but it could 48 00:03:52,130 --> 00:03:58,880 also be hosting a service so it may be running some kind of server and then sharing a file as an example 49 00:03:59,150 --> 00:04:03,050 with a another PC, so it's hosting a file sharing service. 50 00:04:03,290 --> 00:04:10,700 So clients access servers to make use of a service that the server is providing. A website will serve 51 00:04:10,730 --> 00:04:16,899 a web page to a client which is then displayed on your computer as an example. Later in the course, we're 52 00:04:16,920 --> 00:04:20,120 going to learn about network automation and network program ability. 53 00:04:20,120 --> 00:04:26,060 That's becoming really important and in that kind of scenario you'll have one application or program 54 00:04:26,390 --> 00:04:33,080 providing a service to another program typically using what's called an API or Application Programming 55 00:04:33,080 --> 00:04:33,970 Interface. 56 00:04:33,980 --> 00:04:37,150 We're going to ignore that example for the moment. 57 00:04:37,280 --> 00:04:42,320 We'll get to that later where we've got machine talking to machine basically application talking to 58 00:04:42,320 --> 00:04:46,380 application 1 application interacting with another application. 59 00:04:46,470 --> 00:04:50,090 Let's hold the moment concentrate on physical devices. 60 00:04:50,090 --> 00:04:58,340 Now a server such as this server over here, one physical computer will be listening on different port numbers 61 00:04:58,400 --> 00:05:00,410 for different protocols. 62 00:05:00,410 --> 00:05:01,360 What is a protocol? 63 00:05:01,360 --> 00:05:06,350 It's basically a set of rules used for communication between devices. 64 00:05:06,350 --> 00:05:09,210 As an example I'm speaking English here. 65 00:05:09,260 --> 00:05:14,330 Hopefully, you can hear what I'm saying and hopefully, you can understand what I'm saying because I'm 66 00:05:14,330 --> 00:05:17,540 using a set of conventions in my speech. 67 00:05:17,540 --> 00:05:19,880 So in English we speak a certain way. 68 00:05:19,880 --> 00:05:24,970 As an example some languages will use numbers differently to English. 69 00:05:25,160 --> 00:05:32,330 The protocol that we are speaking here is English so I will say 21 but in a different language like 70 00:05:32,360 --> 00:05:39,050 Afrikaans I'll say een-en-twintig which is basically saying one two to denote 21. 71 00:05:39,050 --> 00:05:45,410 So the way that words are pronounced or the way that numbers are pronounced is reversed in a different 72 00:05:45,530 --> 00:05:47,290 language to English. 73 00:05:47,300 --> 00:05:54,290 The point is you and I are using a specific protocol we are listening to English as the transmission 74 00:05:55,490 --> 00:05:57,020 and you can understand what I'm saying. 75 00:05:57,230 --> 00:06:05,300 But if I switched my language or my protocol and started saying goeie more uhanet fan da, you might 76 00:06:05,300 --> 00:06:08,620 struggle to understand me unless you understand South African. 77 00:06:08,630 --> 00:06:10,590 or should I say Afrikaans. 78 00:06:10,700 --> 00:06:16,040 The point is is that a server doesn't just automatically switch like we do in our brains from one language 79 00:06:16,040 --> 00:06:16,750 to another. 80 00:06:16,850 --> 00:06:19,700 It has to listen on specific port numbers. 81 00:06:19,820 --> 00:06:23,690 Your ears are listening on the same frequencies for both English and Afrikaans then your brain 82 00:06:23,680 --> 00:06:26,290 just switches from one language to another. 83 00:06:26,300 --> 00:06:28,370 A server is not as clever as that. 84 00:06:28,460 --> 00:06:32,940 It has to listen on specific port numbers for specific protocols. 85 00:06:33,140 --> 00:06:37,040 As an analogy here's an analogue radio. 86 00:06:37,040 --> 00:06:42,560 Old technology I know but notice here I'm not receiving anything because I'm not listening on a good 87 00:06:42,560 --> 00:06:42,890 port 88 00:06:42,890 --> 00:06:46,010 number but as I tune to specific port number 89 00:07:00,490 --> 00:07:04,420 I can pick up a transmission I have to be careful because of copyright what I transmit 90 00:07:04,420 --> 00:07:10,910 here but that is a different radio station or a different protocol 91 00:07:11,710 --> 00:07:13,650 to say that the radio station. 92 00:07:13,840 --> 00:07:17,130 So different radio stations transmit on different frequencies. 93 00:07:17,140 --> 00:07:24,280 Think of that as an analogy to what a computer server is doing. A computer server like this is listening 94 00:07:24,280 --> 00:07:26,080 on specific port numbers. 95 00:07:26,080 --> 00:07:33,130 If you want to get a web page your browser is automatically configured or programmed to talk to port 96 00:07:33,190 --> 00:07:35,380 80 or to port for 443. 97 00:07:35,500 --> 00:07:40,660 If you're using an application like FTP the application is automatically going to talk to the server 98 00:07:40,660 --> 00:07:43,770 on Port 21 and the server is listening on Port 21. 99 00:07:43,990 --> 00:07:51,880 So a server can run multiple services and provide multiple services to clients client-server model client 100 00:07:51,880 --> 00:07:56,920 requests something from a server the server provides the file or the service to the client.