[0:00]A computer network is a collection of various computing devices. The purpose of computer network is so that the devices can share the data.
[0:10]Means we have to connect the various devices, various heterogeneous, homogeneous kind of devices. The purpose of computer network is, they can share something.
[0:20]The main part of the computer network is to share the data. Now, in the computer network, we are having
[0:29]one sender and one receiver. The sender is what? It is trying to send some data to the receiver.
[0:39]So, sender and receiver, it can be a machine. Means, it can be a user.
[0:46]So user, how user will be sending the data through a machine? So, we can say sender is writing a program.
[0:55]To send some data to the receiver. Now, how it will send the data? It needs some kind of connection.
[1:05]It needs some kind of connection. Connection can be like we have wired connection also, we have wireless connections also.
[1:12]So, whatever connection it is, whether it is wired or wireless, but first of all, we need some connection.
[1:18]So, through the connection, the packets, the data will move from the sender machine to the receiver machine.
[1:25]Now, the term over there is connection. Next is, like sender has sent some data. Let's say
[1:33]there is a message M, and sender is sending this message M to receiver. Receiver get the data, means the message M.
[1:44]Now, the next part is, okay, sender send the data, receiver receives the data. But the next part is, whatever message received by R,
[1:54]whether R is able to read the data, understand the data or not?
[2:00]Whether R is able to understanding the data or not? The concept says, that the data which is sent by the sender, it must be understood by the receiver also.
[2:10]For that, there must be some kind of protocol, protocol which must be running at the sender machine and the protocols which must be running at the receiver machine.
[2:24]What is the advantage of this protocol? Protocol is what a kind of set of instructions. Means sender will send the data, but it will follow some kind of instructions.
[2:37]So that whatever data it is sending, the receiver must be able to understand it.
[2:41]Let's say, that if I, let's say, that if I make a call. Call, Let's say, I know Punjabi, so I called a Telugu person.
[2:51]So, whatever I am speaking, that person is able to hear that. Meaning, he is able to get the voice, that, okay, I am saying something.
[3:02]He knows that I am saying something. But whatever I am speaking, does he understand it? No, he will not understand it. And whatever he is speaking, I will not understand it.
[3:10]But I know that his message is coming. So, connection makes connection makes what? That data will be traveled from sender to receiver, or we can say receiver to sender also.
[3:24]But whether we are able to understand the data or not? For that, there must be some kind of protocol which must be running on both side.
[3:34]That is called the proper communication. Means connection with the following with the proper protocols, set of instructions, if they are followed, then we can say there is a proper communication between the sender and the receiver.
[3:53]Now, like we are saying that there is a sender, there is a receiver, or in the computer network terms, we use the client and server also. Means there is some kind of client and there is some kind of receiver.
[4:05]So, whatever client or server or we can say sender or receiver, where they are present? They are located somewhere.
[4:15]The scenario can be, one scenario can be, sender and receiver, or we can say client and server
[4:26]are both present in the same machine. Let's say there is a machine. Machine can be your, like your laptop.
[4:39]In your laptop, a process like generated by a client or generated by a sender is sending some message to the receiver.
[4:47]Let's say, if I press a button from the keyboard. I pressed some button from the keyboard. Whenever I press a button, the same, whatever I entered, that will be printed or that will be visible on the monitor.
[5:01]So, what is there? Meaning, I have a process, there is some kind of process generated by the sender or generated by a person.
[5:11]And that message is given to the receiver. Receiver also has a process. What process is the sender generating? The sender is generating a process, pressing a button.
[5:24]Whatever button it is. And receiver, who is the receiver here? Monitor. Who is the sender? Keyboard. But the person is the same, the user is the same, right?
[5:35]The point is that a user process is sending some kind of message and that message is printed on the monitor. But here, the concept is what? Within the same machine.
[5:46]Meaning, we are talking inside the same machine. Now, inside the same machine, when one process communicates with another process, that is called inter-process communication.
[5:59]But that inter-process communication is reeling with the computer network, meaning, computer network deals with that part? No.
[6:07]Computer network is not dealing with that part. This part is dealt with by the operating system. The kernel in our operating system deals with this part, how one process communicates with another process.
[6:19]Like, how a keyboard passes instructions to another monitor, how it passes a message, that is done by the operating system. We call this inter-process communication.
[6:30]Even there are obviously some wires. If you check your CPU, check your keyboard, or check your laptop, there will be wires at the backend through which data travels.
[6:40]The concept is the same, but here, the computer network's fundamental is not there. Where is the computer network's fundamental coming from?
[6:48]When the client is some other machine and the server is some other machine. Meaning, they can be physically separated. Meaning, they are different entities.
[7:11]Meaning, they are different machines. Here, we can say the concept of computer network comes. Now, like in machine, if I talk about my machine, that is my laptop, there I can easily, when I press any button or click the mouse, that message appears on the monitor.
[7:28]So, how smoothly the connection is made there? So, I have to make that smooth connection where? Between this client and server.
[7:37]And one client can be in India, the server can be in USA, UK, some other location. And I am not talking about distance. Distance can be 1 kilometer, distance can be 1 meter also, distance can be 10,000 kilometers also. Distance doesn't matter here.
[7:54]We are saying that client is present on some other machine, server is present on some other machine. In that case, can I make such a smooth connection? Can I communicate so smoothly?
[8:08]For making that smoothness, we use the concept of computer network. Meaning, I have to make a client and a server. Let's say this is my machine. I am present in India.
[8:24]And this is some other machine, it is present in USA. Now, my client machine is sending some data to the server.
[8:33]Let's say, for example, I am opening my Facebook account. So, if I opened my Facebook account, it's very simple. I'm not going into the details of computer network yet.
[8:42]I am starting from a very basic level, which we generally use. Daily we use, daily we open Google, we open Facebook.
[8:51]Even nowadays, Google is so famous that even if we want to check if our internet is working or not, we open Google for that also. That is Google's magic.
[9:03]So, in Google, what are we basically checking here? Or on Facebook, what are we doing? We are sending a message from our machine to Facebook.
[9:12]So, there is some server of Facebook which is present in USA, so my message is going there. But here, I am the user. We have to give an environment to this machine and this machine.
[9:25]Meaning, we have to provide such an environment that they don't even feel that they are two different machines. And generally, that's what happens to us.
[9:34]When I log in to Facebook from my machine or use WhatsApp or use Google, it feels like the data came so quickly. The data feels like it's stored right on our laptop. Data access is so fast.
[9:50]Meaning, like we have movies stored in our hard drive, in our C drive, D drive. I access my D drive. I play a movie on VLC, and the movie runs. How much time does it take? One second, two seconds, three seconds.
[10:07]And it takes the same amount of time to access data from Facebook or Google. So, what is this? We are trying to make some scenario. There, we are not talking about calling data from USA or UK, because we don't know this thing. This is a kind of abstraction for us.
[10:21]So, for us, what is computer network doing? Computer network is making my process and the server's process feel that both are present in the same machine. But actually, they are not.
[10:33]So, what is the functionality of computer network? The functionality is that client and server, which are physically separated, they should feel that they are present in the same machine.
[10:47]Both processes should feel that, yes, we are inside the same machine, but they are actually not. So, computer network provides this functionality. That is the main function.
[10:57]Now, this data that we are sending to the server or calling data from the server, the server can also reply. Obviously, when I have requested that I need some data from Google or from my Facebook account, then obviously the server will also respond to me with the data.
[11:15]So, this two-way communication is using a lot of functionalities. A lot of functionalities are used.
[11:44]Let's say, there are basically two kind of functionalities. Some are mandatory and some are optional. Mandatory means that whenever my client machine is sending some data or sending some request to the server, what are the mandatory functions?
[12:06]That we cannot neglect those functions. Example of that functions can be, let's say, the one and very important is error control.
[12:20]Error control. Means, the message that I am sending to the receiver, is the same message being received there, or is some other message being received there?
[12:33]Because nowadays, the internet that we use is an open system. So, there, in the middle, there might be some problem with the message due to some noise or due to some hacking, whatever the factor.
[12:44]So, the message that is going here, whatever message, which is which I am sending, is M being received at the receiver, or is M1 being received? Obviously, if I have sent an M message, then the receiver should also receive the M message.
[13:03]But due to noise or due to some other factor, it can be changed. So, my mechanism, in my mechanism, there should be a lot of functionalities which should tell me that there is some kind of error.
[13:15]Meaning, at least I should know that there is some kind of error. And if I know the error, then I can correct it later or I can resend the data. So, that is some other thing. So, one kind of functionality is error control. Another kind of functionality is flow control.
[13:38]Flow control means amount of data. Meaning, I am sender, as a sender, I am sending some data to the receiver, and I have filled the entire network with data. No, there is some kind of flow control.
[13:52]Meaning, it should not happen that I have filled the entire buffer, filled its entire memory. There is some kind of constraint over there. If we are using that constraint, only then my network will flow properly. Otherwise, there may be chances of congestion.
[14:10]Meaning, the protocols running on my system will provide me these functionalities. These mandatory functionalities will be provided to me. Another can be, let's say, one more. Let's say multiplexing and demultiplexing.
[14:29]Multiplexing demultiplexing means, let's say, that in my machine, a lot of functions, a lot of programs are running. Meaning, a lot of processes are going on. Meaning, I am doing something on the web browser. I am downloading something on different web browsing, uploading something, whatever I am doing, a lot of different different processes are going on.
[14:46]Now, among all those processes, whichever process is sending the data, that thing helps me with multiplexing demultiplexing there. This is basically the fundamental of the transport layer, which we will discuss in detail later.
[15:12]And similarly, if I receive a message on my machine, I receive a message on my laptop, like an email has come. So, to which particular process should it go?
[15:21]That is also the main point. So, for that kind of functionality, we have also kept it mandatory here. Similarly, let's say, a lot of functionalities are there in the mandatory.
[15:37]Let's say now, optional. In optional, the major functionality comes is encryption. Encryption, decryption.
[15:49]Which we also call cryptography. Cryptography. Meaning, we are not sending the data as it is. We are trying to send it in some other form.
[15:58]So that any intruder in the middle cannot understand that data. But not all the applications require encryption decryption.
[16:05]Nowadays, a lot of applications, like banking applications, wherever I talk about money transfer, there, definitely, we need some kind of encryption method so that no intruder can hack the data in the middle. But obviously, this increases the complexity of the system.
[16:22]Because normal algorithms are running. These are all algorithms. Their coding is already present in our kernel, in our operating system. It provides all these mandatory functions. Along with this, if I also do the coding of optional functions, then obviously the complexity of the system will increase.
[16:40]So, the time will also increase to send the data. So, this is a very important point. But yes, where I need it. Meaning, normal HTTP is used to send data, not required. But HTTPS, it sends encrypted data.
[16:55]So, there, I definitely need encryption. So, if I am sending data normally, simply, where I don't need any security, I don't need any cryptography, then I can simply send the data.
[17:11]Similarly, let's say, checkpoint. Checkpoint means that when we are downloading data, then there, after some time, I need a checkpoint.
[17:23]For example, if I have a file of 500 MB, I am downloading that data. Let's say that file, when it is downloaded 301 MB, the downloading failed.
[17:40]So, next time when I download again, it should not start from zero. It should start again from 301. Or some lower value. Let's say, I set a checkpoint after every 100 MB. After every 100 MB, I set a checkpoint. So, as soon as my download fails here, it will start again from 300.
[18:07]But is this required for all applications? No. Where we are calling very small amount of data, like we are sending messages on WhatsApp. Now, the messages that we are sending on WhatsApp are sent in bytes. There, I don't even need a checkpoint. So, there, if I don't apply extra functionalities, it is better because the system will become more complex.
[18:29]So, basically, why are we discussing this here? Because we are going to the next OSI level, OSI model. So, these are a lot of functionalities, optional or mandatory functionalities. There are more than 70 functionalities.
[18:47]So, what did they basically do with all these functionalities? They created a standard model. Meaning, here, we generally discuss OSI model in networks from the beginning.
[18:59]TCP/IP model also comes, OSI model also comes, and you will find a lot of videos about it, a lot of material will also be available. But there, no one tells us why there is a need for the OSI model. Because it is a theoretical model.
[19:15]But what is the need for that model? Why is that model implemented? The reason behind that model is this: all these functionalities that we are providing, all those functionalities in a model have been decided that, yes, whenever data is sent from my laptop, it will pass through this model, this model is a standardized model.
[19:37]Meaning, I will follow a standard, I will follow protocols, after following those protocols, my message will go out of my machine. And similarly, the receiver's machine, when the message enters the receiver's machine, before reaching the user, it will follow those same protocols.
[20:00]So, for this, we make a model here, that is a very standard model, that is OSI. Open system interconnect. That is the model, OSI model. Now, in this OSI model, what have we done? We have converted all these functionalities into layers. How?
[20:22]The standard layers of the OSI model are seven layers. One is the physical layer, data link layer, then network layer, transport layer, session layer, presentation layer and application layer. So, these seven layers are the heart of the OSI model.
[21:00]Meaning, whatever functionalities I had, around 70, optional or mandatory functionalities, they simply divide in each of the layers. So, here now, whenever my message is sent, whenever they send the message, whenever I send the message, it will pass through all the layers. This concept is, this is the concept of the OSI model.
[21:23]So, here, whatever functionalities are there, all of them are fulfilled by the OSI model. So, besides this, there are many other models like TCP/IP model which is also very important. IEEE model is also very important. But from the point of view of our GATE or normal academia, we follow these two layers. Sorry, these two protocols. So, in the next videos, we will take each layer one by one. What are their functionalities and what is their purpose in our system? And how do they help in sending the message?
[22:01]So, thank you guys. If you like the video, please share it with your friends and colleagues and please subscribe my channel. Thank you so much.



