Computer network model - A lasagne 
Tags: internet, networking, computerscience, informationtechnology
Published: 2021-01-22 00:53:12

---
title: Computer network model - A lasagne 
published: true
description: TCP/IP Computer Network Model
tags: #internet, #networking, #computerscience, #informationtechnology 
//cover_image: https://direct_url_to_image.jpg
---
So, now you have a vague idea of how the internet works **(If you don't it's okay, I'll wait till you go [find it.](https://dev.to/type404_/how-does-the-internet-work-1nnl))**, let's dig deeper and see how computer networks are so much like lasagne but more wires than cheese. 

##What is a computer network model and why do we need it?##
For users behind a screen to communicate we need a way to transmit data in a way that is efficient and orderly and for that, we need a systematic approach. This is where a network model comes into play. The main purpose of a model is to divide a big process of transmitting data into small tasks, this way the layers are interconnected and each layer transfers data to its immediate higher and lower layer. 

##What are the types of computer network models?##
**OSI (Open Systems Interconnect) Model** and **TCP/IP Model**

![OSI vs TCP/IP Model Layers](https://dev-to-uploads.s3.amazonaws.com/i/6irgfnptxdsovqo4fzh9.jpg)

The OSI Model was more of a concept and developed before implementation. The OSI model has 7 layers and makes a clear distinction which became a problem when it came to implementation as it didn't correspond well to reality because the internet is fuzzier. The standards for OSI made it complex and harder to implement whereas the simple layering of TCP/IP made it easier to implement. 

##Digging deeper into TCP/IP Model##
###1. Link/Network Interface Layer###
This is the lowest layer and operates within the scope of the local network connection where the host is attached. It combines the work for the physical layer which is responsible for the electrical, mechanical aspects of the transmission media and the data link layer which ensures data synchronisation, error detection etc. *Ethernet* and *WiFi* are examples for this. 

###2. Network/Internet Layer###
This is the layer that is responsible for establishing a connection to send or receive data packets between multiple devices. The packets contain data along with a 'to' and 'from' address. This layer hands the packet to the link-layer below to send it over one link and on the top is the router that accepts the packet and then transports it to the next router as per the destination address. This layer uses the IP address to perform routing. 

###3. Transport Layer###
This provides end to end data transfer by making sure that data sent by an application at one end of the internet is delivered in the right order at the other end of the internet. The two main protocols in this layer are:

**Transmission Control Protocol (TCP)** - It is connection-oriented and provides reliable and error-free communication, this is done by providing acknowledgement feature which makes sure that an error-free message is transported through by allowing re-transmission in case of missing packets. 

**User Datagram Protocol (UDP)** - It is connectionless and isn't as reliable as TCP. *You might wonder, why use it then? Well because for things like video-calls we require speed more than reliability and UDP provides cost-efficient and faster communication*

###4. Application Layer###
This is the layer which is responsible for covering user-interface specifications. This is the layer that interacts with the end-user interacts with via the various software applications they use. Some protocols in this layer include HTTP (Hypertext transfer protocol) which is used to interact with the world wide web (aka the websites you visit) and SMTP (Simple Mail Transfer Protocol) which is used for email services.  

##One Hugeeee Lasagne##
So as you can see communication on the internet is kinda somewhat like a messy lasagne with quite a few layers in between and well this is just an overview of how it looks and to show you how complicated that seemingly simple google search could be (*But it is still a better option than texting people on insta, 'how can you learn to code?'*)

*Anyway, thanks for reading! Go enjoy a lasagne now while you appreciate the messiness of an internet model!*