A computer network is a collection of various computing devices The purpose of a computer network is so that the devices can share data Means, we have to connect the various homogeneous, heterogeneous kind of devices The purpose of a computer network is that they can share something, the main part of a computer network is to share the data Now, In the computer network, we are having... One sender and one receiver The sender is trying to send some data to the receiver, so sender and receiver can be a machine, means it can be a user who'll be sending the data through a machine So we can say the sender is writing a program To send some data to the receiver... Now how it'll send the data? It needs some kind of connection It needs some kind of connection... Connection can be like we have wire connection, wireless connections also So whatever connection it is, whether it is wired or wireless... But first of all, we need some connection So through the connection, the packets, the data will move from the sender machine to the receiver machine Now, the term over there is the connection... Next is, like sender has sent some data, let's say There's a message "M" and the sender is sending this message "M" to the receiver Receiver gets the data, means the message "M" Now the next part is... Sender sends the data and the receiver receives the data But the next part is, whatever message is received by "R", Check whether "R" is able to read or understand the data or not? The concept says that the data which sent by the sender, it must be understood by the receiver also For that, there must be some kind of protocol that must be running at the sender's machine and the protocol which must be running at the receiver's machine What is the advantage of this protocol?... The protocol is like a set of instructions, Means the sender will send the data but it'll follow some kind of instruction so that whatever data it is sending, the receiver must be able to understand it. Let's say if I make a call Let's say I know Punjabi and I called a Telegu person So whatever I'm speaking, that person is able to hear that, he can understand that I'm saying something But is he able to understand whatever I'm speaking No, he's not able to understand, and I can't understand whatever he's speaking, but I can recognize that he's sending some message So what connection makes is, that data will be travelled from sender to receiver, or we can say receiver to sender also, But check whether we are able to understand the data or not, For that, there must be some kind of protocol that must be running on both sides and that's called the proper communication Means, connection with proper protocol and set of instructions, if they are followed, then we can say there's proper communication between the sender and the receiver Now we are saying there's a sender, there's a receiver or in the computer network terms we use the client and server also, means there's some kind of client and there's some kind of receiver, so whatever client or server, or we can say sender or receiver Where they are present? One scenario can be... Sender or receiver or we can say client or server are both present in the same machine, let's say there's a machine... The Machine can be your laptop... Let's say your laptop. In your laptop, a process generated by a client or generated by a sender is sending some message to the receiver Let's say if I press a button from the keyboard Whenever I press a button, the same whatever I entered... That will be printed or will be visible on the monitor So there's some kind of process generated by the sender or a person and that message is given to the receiver The sender is generating a process of pressing a button, whatever button it is And the receiver... The receiver here is the monitor Who is the sender? keyboard But there is a single person and that same user, but the point is that there's a user process sending some kind of message And that message is printed on the monitor But here the concept is within the same machine, means we are talking in one machine only Now when a process communicates with another process in the same machine then that is called the inter-process communication But that inter-process communication is dealing with the computer network?? No The Computer network is not dealing with that part... This part is dealt with by the operating system The kernal in our operating system deals with this part that how a process is passing instructions or message to another process, or how a keyboard is passing instructions or messages to the monitor that is done by the operating system, we call it interprocess communication There also obviously there are some wires, If you'll check your CPU or Keyboard or your laptop, then there'll be wires at the backend through which data travels, the concept is the same, but there's no concept of computer network, The concept of computer network comes when the client is some other machine and the server is some other machine, Means they can be physically separated, means they are different people or machines, where the client and server is present on different machines, Let's say this is machine one and this is machine two Here we can say, the concept of computer network comes Now, if I would talk about my machine or my laptop, there if I'd easily press some button or click the mouse then that message is coming on the monitor easily, then it means there is a very smooth connection, So, that same smooth connection I have to make between this client and server And it may be possible that one client could be in India and the server can be in the USA, UK, or some other location And I'm not talking about distance... distance can be 1km or even 1m or maybe 10,000km also So distance doesn't matter, we are not talking about the distance here We are saying that the client is present on some other machine, and the server is present on some other machine In that case, can I make a smooth connection like that and can communicate smoothly? For making that smooth, we use the concept of computer networks Means, let's say this is my machine and I'm present in India And this is some other machine and it is present in USA Now my client's machine is sending some data to the server, Let's say I'm opening my Facebook account So if I opened my Facebook account... I'm not going into much detail about computer networks for now I'm starting with the very basic level that we generally use daily We open Google, Facebook, daily... Even at present time, Google is that much famous that even if we want to check if our internet is working or not, for that too we open Google That's the fame of Google... So what we are checking in Google or Facebook? We are sending a message from our machine to the Facebook So there's a server of Facebook which is present in the USA and my message is reaching there But here, me who is the user... We have to give an environment to both of these machines Means we have to provide such an environment that they won't get feel that they are two different machines And this is what we generally feel... When I log in to Facebook through my machine Or when I use WhatsApp or Google, we feel like how fast the data has arrived... I mean we feel like the data is already on our laptop This is how fast the data get accessed... Like if there are movies in hard disk in C drive, D drive etc. Now if I access movies in the D drive... I clicked play on movie and the movie started running through VLC, it takes hardly a few seconds And same time it takes to access data from Facebook or Google So what is this? We are trying to make some scenario, there we are not saying that we are calling data from the USA or UK, because we don't know this thing, this is a kind of abstraction for us, so at that point, the computer network is making my process and server's process feel that both are present in the same machine But actually, they are not present So the functionality of a computer network is that the client and server which are physically separated should feel that they are present in the same machine., Both processes should feel that they are in the same machine, but they are actually not So the computer network provides this functionality and that is the main function Now this data that we are sending to the server, calling the data from the server, the server can also reply, Obviously, if I have requested that I need some data from Google or from my Facebook account, then obviously, server will also respond to me with the data, so we use a lot of functionalities in this two way communication Generally, what kind of functionalities are used? Let's say There are basically two kinds of functionalities One is the mandatory And some are optional Mandatory... Mandatory means that whenever my client machine is sending some data or request to the server, then what are the mandatory functions... That we can't neglect those functions An example of that function can be... Let's say, the one and very important is an error control Error control means the message that I'm sending to the receiver or to some other machine Is the same message being sent there or some other message is being sent there because, at present time, the lot internet that we are using is an open system so it's possible that there could be some problem in the message in between, due to some noise or hacking... Whatever the factor So my message that's going here which I'm sending, whatever message i.e. "M" Which I'm sending... the receiver is receiving "M" or "M1" Obviously, if I've sent "M" messages then the receiver should also receive an "M' message But due to noise or some other factor, it can be changed... Means at least I can know that there is some kind of error So in my mechanism, there should be a lot of functionalities that should tell me that there's some kind of error Means at least I can find out that there's some kind of error Or if I'll find the error then later I can make it correct also or I can also resend the data, so that is some other thing So, one kind of functionality is error control and another kind of functionality is flow control Flow control means the amount of data, means as a sender I'm sending some data to the receiver and I filled the whole network with data... No, there is some kind of flow control Means it shouldn't be like that I filled the whole buffer and filled its all memory There is some kind of constraint over there, if we are using that constraint, only then my network will flow properly otherwise there could be chances of congestion Means, the protocols of my system running will provide me with these mandatory functionalities Another can be, let's say one more... Let's say multiplexing and demultiplexing Multiplexing-Demultiplexing means, let's say a lot of programs are running in my machine... Means a lot of processes are going on Means if I'm working on some web browsers or downloading something on different web browsers or whatever I'm doing A lot of different processes are going on Now out of all those processes, which process is sending the data Like in my machine, a lot of processes are going on Out of those, whichever process is sending the data, that helps me in multiplexing and demultiplexing This is basically a transport layer funda which we will discuss in detail later and the same way if a message is coming on my machine like if I'm getting a message on my laptop, like if got an Email, then, to which particular process it should go That is also the main point, so we have kept that kind of functionality as mandatory also Same way, let's say a lot of functionalities are there in the mandatory Let's say now, optional... In optional the major functionality comes is encryption-decryption which we call cryptography also... Cryptography means we are not sending the data as it is, we are trying to send it in some other form so that any intruder in the middle cannot understand that data But, not all application requires the encryption-decryption Nowadays, there are a lot of applications like a banking application, wherever I'd talk about money transfer There we definitely need some kind of encryption method, so that no intruder can hack the data in the middle But obviously this increase system's complexity Because normal algorithms are working fine, these all are algorithms, Coding of all of these are already present in our kernal or operating system and it provides all these mandatory functions Along with that If I'd do coding of optional functions also in the middle then obviously the system's complexity will increase Then my time to send the data will also increase So this is a very main point, but wherever I'd feel the need Means if we send data on normal http then not required... But https, that encrypts the data and then sends it, then there I'll definitely need encryption So if we are sending the data normally where we don't need any security or cryptography, then I can simply send the data Same way... Let's say checkpoint Checkpoint means that when we are downloading the data, then there are checkpoints after a certain amount of time Let's say I have a 500MB file and I'm downloading that data, let's say when that file downloaded 301MB, downloading is still going on but it got failed at 301MB So next time I'll do download again, then it should not start from zero It should start again from 301... or maybe some lower value, let's say I'm putting checkpoint after every 100MB So the moment my downloading will get failed then it'll start again from 300 But, is it required for all applications? No If we are calling very small amount of data at some place like we are sending message on WhatsApp so we are sending messages on WhatsApp in bites only, so I don't need checkpoint there So it's much better if I won't add extra functionalities there, because it'll make the system much more complex So here we are discussing this concept because we are moving to next OSI model So there are a lot of functionalities in optional and mandatory which are more than 70 More than 70 functionalities are there So they made a standard model of all these functionalities We generally discuss in networks, the concept of OSI model comes in starting TCP IP model and OSI model both are there... And you may have its a lot of videos & material available also But there, no one tell us that why there is a need of OSI model because it is a theoretical model But what is the need of that model? Why we are implementing that model and what is its need? The reason behind that model is this... That all these functionalities that we are providing, we decided all these functionalities in a model that whenever data will be sent in my laptop, it will be those this model This is the standardised model.... It means I'll follow a standard or protocols and after following those protocols my message will go out of my machine And same way , when that message is entering in the receiver's machine, then it'll follow those protocols before reaching to the user so for all this we make a model here and it's a very standard model i.e. OSI (Open system Interconnect) That's an OSI model... Now what we did in an OSI model, we converted all these functionalities in layers.. How? Standard layers of OSI model are... There are 7 layers First one is the physical layer Above physical layer comes the data link layer then network layer Transport layer Session layer Presentation and application So these 7 layers are the heart of the OSI model So all the functionalities I have... Around 70 functionalities are there They simply divide in each of the layer So whenever my message will be sent by my machine Whenever I'll send a message then it'll pass through all the layers This is the concept of the OSI model So the OSI model is fulfilling all the functionalities that are there There are many more models other than this, like the TCP IP model which is also very important IEEE model is also very important... But from our GATE point of view or normal academically, we follow only these two protocols So in the next videos, we'll take each layer one by one that what are their functionalities and what is their purpose in our system and how they help in sending the message So thank you guys, if you liked the video then please share with your friends and colleagues And please subscribe my channel... Thank you so much!