Intro of computer network and needs of OSI model
A computer network is a collection of various computing devices. The purpose of computer networks is to enable the devices to share the data. Means, to connect the various devices - various heterogeneous and homogeneous devices.The main purpose of computer networks is to share the data. Now, in computer networks, we have one sender and one receiver. Sender is the one who is trying to send some data to the receiver. The sender and receiver can be a machine. The user sends the data through a machine. So we can say, the sender writes a program to send some data to the receiver.
Now, how will the user send the data?
It requires some kind of a connection. Connection can be a wired connection or a wireless connection. But first of all the user needs some connection. Through the connection, the packets or the data will move from the sender machine to the receiver machine. Now, the term over there is connection. Next is, the sender has sent some data. Let's say there's a message M and the sender sends this message M to the receiver. Receiver gets the data, means, the message M. Now, the next part is, sender sent the data and the receiver received the data. But whatever message is received by R, whether R is able to read it? Whether R is able to understand the data or not? The concept says the data which is sent by the sender, should be understood by the receiver also. For that, there must be protocols which must be running at the sender machine and protocols which must be running at the receiver machine.
What is the advantage of this protocol?
ANS/- A protocol is a set of instructions. When the sender sends the data, it has to follow a set of instructions. So that whatever be the data that is being sent, the receiver will be able to understand it. Let's say, I made a call. I know Punjabi but I have called a Telugu person. Whatever I speak, the other person is able to hear. He's able to listen to my voice and he knows that I'm saying something. But is he able to understand whatever I'm saying? No, he doesn't. Whatever he says, I won't understand either! But I know that I am receiving a message from him. The connection helps data to travel from sender to receiver or from receiver to sender. But whether we are able to understand the data or not? For that, there must be some kind of a protocol running on both sides. That is called a proper 'communication'. Means, connection with proper protocols or set of instructions, if they are followed, can be said as a proper 'communication' between the sender and the receiver. Now, we are saying that there is a sender, there's a receiver or in the computer networks terms, we use client and server also. So, the client and server or we can say the sender and receiver, where are they present? One scenario can be, sender and receiver or we can say client and server are both present in the same machine. Let's say there is a machine, for example our 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, whichever button I press, whenever I press, the same will be displayed on the monitor. So, what's happening there? There's some kind of process generated by the sender or generated by a person and that message is given to the receiver.
Which process is generated by the sender?
Sender is generating a process which is pressing the button, whatever button it is. What acts as the receiver here? Monitor.
What acts as the sender here?
Keyboard. But the person or user is the same! The point is, one user process is sending some kind of a message and that message is printed on the monitor. But here the concept is, "within the same machine". When a process communicates with another process within the same machine, it is called as 'inter process communication'. But does computer networks deal with inter process communication? No, computer networks doesn't deal with that.
Instead, it is Operating system which deals with that part. Operating System's kernel deals with it. It deals with how a process interacts with another process, as in, how a keyboard passes the information to the monitor or how it passes a message. That is done by the Operating System. We call this as Inter process communication. Obviously there are wires over there too. If you check your CPU or your keyboard or your laptop, there will be wires through which data travels. Concept is the same but it doesn't use the principle of computer networks.
Computer networks' principles
Computer networks' principles come into action only when the client is one machine and the server is another machine. That is, the two machines can be physically separated. That is, where the client and server are present in different machines. Let's say this is machine one and this is machine two. Here, we can say the concept of Computer Networks comes.
Example:- Now, if I talk about my machine, that is my laptop, I can easily press some button or click the mouse and the message easily appears on the screen. You can notice how smoothly the connection is made. So where do I have to implement such a smooth connection? Between this client and server. One client can be in India and the server can be in USA, UK or any other location. I'm not talking about the distance. The distance can be 1 km, the distance can be 1 meter or the distance can also be 10,000 km. Distance doesn't matter. We aren't talking about the distance here. We are just assuming that the client is on one machine and the server is on another machine.
In this case, is it possible for me to make such a smooth connection which we noticed earlier? Is it possible for me to communicate smoothly?
For bringing about such smoothness, we use the concept of Computer Networks. Let's say, this is my machine, I'm present in India and this is some other machine. It is present in USA. Now my client machine is sending some data to the server, let's say, I'm opening my facebook account. Right now I'm not going in detail into Computer Networks, I'm just starting from the basics which we use generally. We use Google and Facebook everyday. Nowadays Google is so popular that even if we just have to check whether our internet connection is working, we open Google. That is what Google is nowadays! So what do we do in Google or Facebook? We send a message from our machine to Facebook. My message goes to the server of Facebook which is present in USA . But here an environment has to be provided in which it shouldn't feel like the machines involved are two different machines. That's what happens to us generally. When we login to Facebook from our machine or use WhatsApp or use Google, we can notice that the data has reached us pretty quickly. It feels that the data was available on our own laptop. Data access is so quick just like the data on our hard disk. Let's say, I had movies in D drive in laptop and I access the drive. I click on a movie and the movie gets played on VLC player. It hardly takes 1-3 seconds.
It takes just the same amount of time to access data from Facebook or access data from Google. So what's this?
We don't say over there that we are calling data from USA or UK. We don't even know that in fact! It is a kind of abstraction for us. So what does Computer Networks do for us? Computer Networks creates such a feeling that the client's process and the server's process are present in the same machine. But in reality they are not! So what is the functionality of Computer Networks? The functionality is, the client and the server, which are physically separated, must feel that they are in the same machine. But actually they are not. This functionality is provided by Computer Networks. That's the main function. Now, we send data to the server and we call data from the server. The server can also reply. When I request that I need some data from Google or from my Facebook account, the server will also reply with data. In this two-way communication, a lot of functionalities are used.
what kind of functionalities are used generally?
There are basically two kinds of functionalities- mandatory and optional. Mandatory refers to those functions which cannot be neglected, whenever my client machine is sending some data or sending some request to the server.
The first and most important functionality is 'error control'. It checks if the same message which I send is being received by the other machine or some other message is being received there. Because nowadays, as the internet which we use is an open system, the message could be altered midway due to noise or hacking or some other factors. So, is the message M which I'm sending received by the receiver as M or M1? If I send message M, the receiver should also receive the same. But due to noise or due to some other factor, it could be changed. So according to my mechanism, there should be a lot of functionalities which should tell me that there is some kind of error. At least I would know that there's some kind of error. If I know that there is some error, I can correct it later or I can resend the data. So the first functionality is error control.
The second functionality is flow control. Flow control denotes the amount of data. That is, let's assume the sender sends some data to the receiver and fills the network with data. No, that shouldn't be done. There should be some kind of flow control. It shouldn't be the case that I fill the buffer completely or memory completely. There should be some kind of constraint over there. Only if we use this constraint, the network would flow properly. Otherwise, congestion might occur. The protocols on my system provide me these mandatory functionalities.
The third functionality is multiplexing and demultiplexing. Multiplexing and demultiplexing means let's say, in my machine a lot of programs or processes are running, that is, I'm working on a number of web browsers, browsing, downloading and uploading. Whatever I'm doing, a lot of processes are running simultaneously. But among those processes which particular process would send the data? For example, in my machine, a lot of processes are going on. Multiplexing and demultiplexing helps with deciding which process sends the data. It is a principle of transport layer. We will discuss it in detail later on in the upcoming videos. If there is a message coming to my laptop, let's say, an email. Which particular process should it go to? That is also one main point. So those kind of functionalities too are placed under the mandatory functionalities.
Thus,
there are several different functionalities under the mandatory label. Now let's see optional. Under optional, the major functionality is encryption and decryption. We call this cryptography too. That is, we don't send the data as it is. We convert it into a different form and send it so that any intruder who tries to access the data would not be able to understand it. But not all the applications require encryption and decryption. Nowadays, a lot of applications like banking applications which carry out money transactions, would definitely need encryption methods so that any intruder must not be able to hack the data. However, the complexity of the system would increase due to this because the normal algorithm is already being executed. Along with the code of mandatory functionalities, if I add the code of optional functions, the complexity of system will increase. So the time to send the data will also increase. This is a very main point. To send data through normal http, encryption is not necessary. However, in https which sends the data in encrypted form, encryption is necessary. But if we send data normally, security or cryptography is not required. We could just send the data. The next functionality is checkpoint. When we download data, we would come across a few checkpoints. That is, if I was downloading a file of 500Mb, let's say while at 301 Mb, the down load fails. So when I start downloading again, it should not start 0. It should start again from 301 or a slightly lower value. Let's say I set a checkpoint at every 100Mb. So my download would start again at 300 Mb, if it fails at 301Mb. But is this required in every application? No! Where the data is of a very small size, as in, the message we send on WhatsApp which is in bytes, we don't require a checkpoint. Over there it is better if I don't add extra functionalities because it would otherwise make the system very complex.
So why do we discuss these principles?
Because we are going to move on to the OSI Model. There are a lot of functionalities. Optional and mandatory combined, we have more than 70 functionalities. So they have organized these 70 functionalities into a standard model. Usually in Networks people discuss OSI model and TCP/IP model in the beginning.
why there is a need for OSI model?
Because it is a theoretical concept.
what's the need for that model? Why was the model implemented?
The reason behind the model is that all these functionalities were organized into a single model and it was decided that whenever data is sent from my laptop, it would go through all these standard protocols. Only after these protocols, the message would leave my machine. In the same way, as soon as the message reaches the receiver's machine, before the message reaches the user, it passes through a set of protocols. For this reason, we made a model which is known as OSI model. Open Systems Interconnection.
In OSI model, what have we done?
We have converted all these functionalities into the layers. In OSI model, we have 7 standard layers. The first is physical layer. Above that lies the data link layer. Then, network layer. Transport layer, session layer, presentation layer and application layer. These 7 layers are the heart of the OSI model. So, whatever functionalities I had, around70 optional and mandatory, are distributed among each of the 7 layers. So, whenever my message gets sent from my machine, it will pass through all these layers. This is the concept of OSI model. So whichever functionality is available here, it fulfills the OSI model. There are a few more models implemented other than OSI model like TCP/IP model and IEEE model. However, from the point of GATE or normally in other academia, we follow only these two models. In the following videos, we will take each layer one by one and discuss what their functionalities are and what their purposes are. Also, how they help on sending a message. So thank you guys.
If you liked the post please share it with your friends and colleagues and please subscribe to my blog. Thank you so much.
Comments
Post a Comment
please subscribe my blog and let me suggest how I improve this site