create account

Computer Networks by eneismijmich

View this thread on: hive.blogpeakd.comecency.com
· @eneismijmich · (edited)
$36.05
Computer Networks
http://www.omgtop5.com/wp-content/uploads/2015/02/2-Ways-To-Transfer-Data-From-PC-To-PC-In-Windows.jpg

Between two computers, which are in some level of communication, exist one or more computer networks. A network can be described as a *connector which transfers data between the given devices*. Every computer network contains network nodes which have part in forwarding the data. 

https://puu.sh/r3czb/cbd8de66c8.png

There are two basic ways of transferring data through the network:
* using **communication tunnel** 
* using **information packages**

Communication tunnel transfer consists of 3 parts:
1. **Establishing connection** – needed network resources are reserved
2. **Exchanging information** – captured network resources are not available for other connections regardless to existing information exchange
3. **Terminating the connection** – network resources are released

Advantage of using communication tunnel is continuous flow of data in time. Communication tunnel uses **TCP** protocol (Transmission Control Protocol). 

https://puu.sh/r3cHu/fdba62ea34.png

If we are using information packages for data exchange then we are not using communication tunnel (network resources aren't captured before transporting data, they are captured during information exchange). We are getting effective usage of network resources but it is harder to keep time conditions during communication. 

For example, TCP is used to send a web page, because it is important for each bit to be correct and in right place (we don't want no weird looking stuff on our website), whereas during the Skype call, it is acceptable to send the data using UDP as it is more important for packets to arrive fast than to be sure each one has arrived. I.e. it is about *integrity vs speed*.

<h2>Network Layers</h2>

Every data transfer between two computers passes through different network layers. When we are talking about network layers we have to diversify two basic models: **OSI**(Open System Interconnection) and **TCP/IP** Model.

http://gwb.blob.core.windows.net/markpearl/Windows-Live-Writer/Networking-Standards-and-the-OSI-Model_9637/osi_model_1.jpg
*OSI Model*

http://static.thegeekstuff.com/wp-content/uploads/2011/10/tcp-ip.png 
*TCP/IP Model*

Every data transfer starts with application layer and ends with application layer of the other side. Application layer can be described as *software which offers user possibility to interact with network*. When we are transferring some kind of information between two computers which aren't physically connected, we will always be in some kind of interaction with network. Application layer offers us a graphical user interface to participate in network traffic.

https://puu.sh/r3djM/aae05ddc35.png

The main difference between those two models is that in OSI Model we have two layers (**Session** Layer i **Presentation** Layer) whereas is TCP/IP model they are included in **Application** layer. Presentation Layer is in charge for formatting information in appropriate form for recipient. Presentation layer usage can be seen in an ordinary internet communication where browser needs to know how to encode the answer from server, before displaying the web page to user. As server answers to browser request, it also sends information about the type of resource in **MIME** (Multi-Purpose Internet Mail Extensions) part of answer's header. According to MIME type, browser knows which kind of resource is returned from server (text, picture, video, audio...).

http://image.slidesharecdn.com/06-response-headers-120915143225-phpapp02/95/jsp-and-servlet-tutorial-generating-the-server-response-http-response-headers-7-728.jpg

Session Layer has the main role in controlling session between two computers which are in stateful communication process. **Session** can be viewed as a sequence of logical transactions between the client (browser) and the server (computer which data we want to fetch) in some limited period of time. Sessions can be described in a lot of ways but I chose to describe it on a social networks example.

Let's assume you login on your account on some social network. Surely you have noticed that you always see only messages, pictures, videos and notifications connected to your account. How come you don't the see messages of other users? Secret is in sessions. When you login, session between your browser and server is opened and server will always know (during session) which data can be shown. You can stop session in a lot of ways (logout from page, close your browser etc). 

Transport layer and every other layer under it, add extra information in packet's header in order to deliver network packet to correct destination.

Two protocols are characteristic for **Transport** layer, are **TCP** (Transmission Control Protocol) and **UDP** (User Datagram Protocol):
* TCP represents safer way of communication because packets have been transferred without content duplication and in the given order. For that possibility a lot of regulations (which slow down communication) are needed
* UDP is characterized as unsafe communication when it comes to duplication content and receiving it in sent order, but packages are transferred faster. 

http://books.gigatux.nl/mirror/snortids/0596006616/images/0596006616/figs/snrt_0202.gif

Transport layer adds source port, destination port (and other parameters depending on kind of protocol which is being used) to the header of original packet. On the Transport layer packets are called **segments**. 

Extended data is dropped to the lower **Network** layer. Network layer adds source and destination IP address to the packet. Every computer which is connected to internet has an IP address. On Network layer packets are called **IP-datagrams**. 

Then, extended data drops to the lower **Data Link** Layer. Data Link Layer adds source and destination **MAC address** to the packet. MAC address represents address of computer network card. On Data Link Layer packets are called **frames**. Frames are array of bits (1 and 0) and they are sent two another side of communication. 

Basically, every layer needs some kind of information to know what is happening. As we go down the layers from app to physical layer, new bits are appended to the message. As we go up the layers on the other side, from the wire to the app, we lose the information until we finally end up with the original message sent from the source device.

http://2.bp.blogspot.com/-clwCsOO9t0I/U6ptCoCo4gI/AAAAAAAAASg/5j_mkAmEmts/s1600/TcpIpServer_OSI001.png

Every layer has a few characteristic protocols (application layer – HTTP, DNS, transport layer – TCP, UDP, network layer – IP etc).


<h2>Network protocols in real life</h2>

Internet search is based on **client-server model**. In browser search box we are entering **domain name**. Every domain name represents a server. When we click the blue link in our browser, we are establishing connection with server. Server is listening to connect event (like the one when we click on blue link in our browser search). 

https://puu.sh/r3dsD/959b27dd6d.png

Connection between client and server goes through the **sockets**. Every socket must contains source and destination port, source and destination IP address and type of transport layer protocol which is being used. Server is sending answers for request and browser displays that answers in appropriate form for user.

https://microchip.wdfiles.com/local--files/tcpip:tcp-ip-five-layer-model/transmit_data.JPG

Let's go to lower abstraction level to see all used protocols during sending request for some WEB page.

Let assume we were open our browser and wrote some kind of string array (URI) in order to open Web page. That URI represents domain name of server whose data we want to acquire. Computers only *know* how to work with numbers therefore domain name must be converted to a valid IP address. To convert the domain name, browser uses **DNS** protocol. 

After browser found out IP address, **HTTP connection** between client and server is established. HTTP is application protocol which defines service of transferring web content between the computers over the Internet. For transfering data, HTTP is using TCP protocol (on Transport layer). TCP connection is also establish between client and server. For TCP connection destination and source port, destination and source IP address and the type of transport protocol must be known. 

https://puu.sh/r3dj6/bf395280ec.png

After establishing connection, client sends request to server for specific resource. Server is processing request and sends back resource to client. There can be a lot of types of resource in server answer. Type of resource is determined by MIME type which is written in header of server answer. Received answer is usually HTML document (i.e. – web page). 

<h2> The end </h2>

This was only a quick introductory overview of the topic. 
Communication networks are a complex entity and diverse cannot be explained in such a simple manner.
If you are interested in detailed explanation or discussion, leave some kind of feedback.

Thank you for reading.
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 17 others
properties (23)
authoreneismijmich
permlinkcomputer-networks
categorycomputing
json_metadata{"tags":["computing","network","programming","science","web"],"image":["http://www.omgtop5.com/wp-content/uploads/2015/02/2-Ways-To-Transfer-Data-From-PC-To-PC-In-Windows.jpg","https://puu.sh/r3czb/cbd8de66c8.png","https://puu.sh/r3cHu/fdba62ea34.png","http://gwb.blob.core.windows.net/markpearl/Windows-Live-Writer/Networking-Standards-and-the-OSI-Model_9637/osi_model_1.jpg","http://static.thegeekstuff.com/wp-content/uploads/2011/10/tcp-ip.png","https://puu.sh/r3djM/aae05ddc35.png","http://image.slidesharecdn.com/06-response-headers-120915143225-phpapp02/95/jsp-and-servlet-tutorial-generating-the-server-response-http-response-headers-7-728.jpg","http://books.gigatux.nl/mirror/snortids/0596006616/images/0596006616/figs/snrt_0202.gif","http://2.bp.blogspot.com/-clwCsOO9t0I/U6ptCoCo4gI/AAAAAAAAASg/5j_mkAmEmts/s1600/TcpIpServer_OSI001.png","https://puu.sh/r3dsD/959b27dd6d.png","https://microchip.wdfiles.com/local--files/tcpip:tcp-ip-five-layer-model/transmit_data.JPG","https://puu.sh/r3dj6/bf395280ec.png"]}
created2016-09-07 18:33:09
last_update2016-09-07 18:37:45
depth0
children4
last_payout2016-10-08 18:46:03
cashout_time1969-12-31 23:59:59
total_payout_value33.908 HBD
curator_payout_value2.142 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length9,139
author_reputation94,079,436,810,845
root_title"Computer Networks"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,162,077
net_rshares17,765,644,371,112
author_curate_reward""
vote details (81)
@lemouth ·
> Application layer offers us a graphical user interface to participate in network traffic.


What about simple terminals? Can't they be used as an application later? In this case, there is no graphical user interface, isn't it?
properties (22)
authorlemouth
permlinkre-eneismijmich-computer-networks-20160907t203852479z
categorycomputing
json_metadata{"tags":["computing"]}
created2016-09-07 20:38:48
last_update2016-09-07 20:38:48
depth1
children0
last_payout2016-10-08 18:46:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length228
author_reputation338,011,164,701,274
root_title"Computer Networks"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,163,597
net_rshares0
@mindhunter ·
Being a telco worker this was a lovely refresher course. Thanks!
👍  
properties (23)
authormindhunter
permlinkre-eneismijmich-computer-networks-20160907t184012058z
categorycomputing
json_metadata{"tags":["computing"]}
created2016-09-07 18:40:15
last_update2016-09-07 18:40:15
depth1
children0
last_payout2016-10-08 18:46:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length64
author_reputation203,929,529,404,460
root_title"Computer Networks"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,162,184
net_rshares36,101,621,036
author_curate_reward""
vote details (1)
@soomrack ·
Ethernet protocol is on physical layer and on data link layer?
What type of ethernet protocol you mean?
👍  
properties (23)
authorsoomrack
permlinkre-eneismijmich-computer-networks-20160907t191930695z
categorycomputing
json_metadata{"tags":["computing"]}
created2016-09-07 19:19:30
last_update2016-09-07 19:19:30
depth1
children1
last_payout2016-10-08 18:46:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length103
author_reputation161,181,259,611
root_title"Computer Networks"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,162,659
net_rshares36,853,738,141
author_curate_reward""
vote details (1)
@eneismijmich · (edited)
The MAC and LLC layers of IEEE 802 networks such as 802.3 Ethernet, 802.11 Wi-Fi, and 802.15.4 ZigBee, operate at the data link layer. But at the same time the Ethernet physical layer is the physical layer component of the Ethernet family of computer network standards.

That picture got you confused I guess. Thank you for pointing that out.
A careful reader. I appreciate that.
properties (22)
authoreneismijmich
permlinkre-soomrack-re-eneismijmich-computer-networks-20160907t192447926z
categorycomputing
json_metadata{"tags":["computing"]}
created2016-09-07 19:24:51
last_update2016-09-07 19:25:30
depth2
children0
last_payout2016-10-08 18:46:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length379
author_reputation94,079,436,810,845
root_title"Computer Networks"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,162,716
net_rshares0