-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOSI.html
More file actions
214 lines (178 loc) · 8.1 KB
/
Copy pathOSI.html
File metadata and controls
214 lines (178 loc) · 8.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta content="IE=edge" http-equiv="X-UA-Compatible">
<meta content="width=device-width,initial-scale=1" name="viewport">
<meta content="description" name="description">
<meta name="google" content="notranslate" />
<meta content="Mashup templates have been developped by Orson.io team" name="author">
<!-- Disable tap highlight on IE -->
<meta name="msapplication-tap-highlight" content="no">
<link rel="apple-touch-icon" sizes="180x180" href="./assets/apple-icon-180x180.png">
<link href="./assets/favicon.ico" rel="icon">
<title>Rupam Joshi</title>
<link href="./main.3f6952e4.css" rel="stylesheet"></head>
<style>
body {
font-size: 13px;
}
</style>
<body class="">
<div id="site-border-left"></div>
<div id="site-border-right"></div>
<div id="site-border-top"></div>
<div id="site-border-bottom"></div>
<!-- Add your content of header -->
<header>
<nav class="navbar navbar-fixed-top navbar-default">
<div class="container">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="collapse navbar-collapse" id="navbar-collapse">
<ul class="nav navbar-nav ">
<li><a href="./index.html" title="">01 : General</a></li>
<li><a href="./programming.html" title="">02 : Computer Science</a></li>
<li><a href="./art.html" title="">03 : Art</a></li>
</ul>
<div class="nav navbar-nav navbar-right navbar-small visible-md visible-lg">
<!-- <li><a href="./index.html" title="" class="active">001</a></li>
<li><a href="./index.html" title="">002</a></li>
<li><a href="./index.html" title="">003</a></li>
<li><a href="./index.html" title="">004</a></li>
<li><a href="./index.html" title="">005</a></li>
<li><a href="./index.html" title="">006</a></li> -->
</div>
</div>
</div>
</nav>
</header>
<div class="section-container">
<div class="container">
<div class="row">
<div class="col-xs-12">
<img src="./assets/images/work001-01.jpg" class="img-responsive" alt="">
<div class="card-container">
<div class="text-center">
<h1 class="h2">OSI Model from a Developer's point of view</h1>
</div>
<h1>What is the OSI Model?</h1>
<p>
The <strong>OSI (Open Systems Interconnection) model</strong> is a conceptual framework that defines how data should be transmitted across a network in a reliable and structured way. It standardizes communication functions into seven distinct layers, each with specific responsibilities. This layered approach helps developers and network professionals understand and design systems that can communicate efficiently and securely.
</p>
<p>
Although all 7 layers are defined in the model, in real-world implementations some layers may be abstracted, combined, or omitted depending on the protocol or use case.
</p>
<h2>The 7 Layers of the OSI Model:</h2>
<h3>1. Application Layer</h3>
<ul>
<li>This is the layer closest to the end user.</li>
<li>It provides network services to applications (like web browsers or email clients).</li>
<li>Example: A browser sending a GET request to <a href="https://www.youtube.com/">https://www.youtube.com/</a>. It includes headers such as <code>Content-Type</code>, <code>User-Agent</code>, etc.</li>
</ul>
<h3>2. Presentation Layer</h3>
<ul>
<li>Responsible for data translation, encryption/decryption, and compression.</li>
<li>Example: If the request is HTTPS, this layer encrypts data using protocols like TLS.</li>
<li>Converts data into a format that the application layer can understand (e.g., JSON, XML).</li>
</ul>
<h3>3. Session Layer</h3>
<ul>
<li>Manages sessions (connections) between applications.</li>
<li>Establishes, maintains, and terminates communication sessions.</li>
<li>Example: Assigning a session ID so the server knows all requests belong to the same user session.</li>
</ul>
<h3>4. Transport Layer</h3>
<ul>
<li>Ensures reliable data transmission with error checking and flow control.</li>
<li>Breaks data into segments and attaches source and destination port numbers.</li>
<li>Examples of protocols: <code>TCP</code> (reliable), <code>UDP</code> (fast but unreliable).</li>
</ul>
<h3>5. Network Layer</h3>
<ul>
<li>Handles logical addressing and routing.</li>
<li>Adds source and destination IP addresses to packets.</li>
<li>Protocol: <code>IP</code> (Internet Protocol).</li>
</ul>
<h3>6. Data-Link Layer</h3>
<ul>
<li>Converts packets into frames and adds MAC addresses.</li>
<li>Responsible for physical addressing, error detection, and link control.</li>
<li>Uses <code>ARP</code> (Address Resolution Protocol) to map IPs to MACs.</li>
</ul>
<h3>7. Physical Layer</h3>
<ul>
<li>Converts all data into binary (1s and 0s).</li>
<li>Transmits it through the physical medium (e.g., Ethernet, Wi-Fi).</li>
<li>Handles hardware like cables, switches, and signal levels.</li>
</ul>
<h2>Additional Clarification:</h2>
<ul>
<li>Once data is converted into 1s and 0s by the Physical Layer, it is transmitted across the network.</li>
<li>Intermediate devices (like routers, switches) process only relevant layers (e.g., routers handle up to the Network Layer).</li>
<li>Tools like <strong>Wireshark</strong> can inspect packets on the network.</li>
<li>If data is unencrypted, it can be read directly. Even with encryption (like HTTPS), metadata (IP, port) remains visible.</li>
</ul>
<h2>Final Comments:</h2>
<ul>
<li>The OSI model is standardized; layers cannot be arbitrarily added or removed.</li>
<li>Real-world stacks (e.g., TCP/IP) may combine OSI layers (like Application + Presentation + Session).</li>
<li>The Presentation Layer is not always active — for plaintext protocols (like HTTP), it may do little or nothing.</li>
<li><code>ARP</code> is often considered part of the Network Layer, but functionally interacts with Layer 2 (Data-Link).</li>
</ul>
<!--
<blockquote>
<p>"Thank you for reading"</p>
<small class="pull-right">Irina Martin</small>
</blockquote> -->
</div>
</div>
<!-- <div class="col-md-8 col-md-offset-2 section-container-spacer">
<div class="row">
<div class="col-xs-12 col-md-6">
<img src="./assets/images/work001-02.jpg" class="img-responsive" alt="">
<p>Menphis skyline</p>
</div>
<div class="col-xs-12 col-md-6">
<img src="./assets/images/work001-03.jpg" class="img-responsive" alt="">
<p>Menphis skyline</p>
</div>
</div>
</div>
<div class="col-xs-12">
<img src="./assets/images/work001-04.jpg" class="img-responsive" alt="">
</div>
</div>
</div>
</div> -->
<footer class="footer-container text-center">
<div class="container">
<div class="row">
<div class="col-xs-12">
<p>© UNTITLED | Website created by Rupam Joshi</p>
</div>
</div>
</div>
</footer>
<script>
document.addEventListener("DOMContentLoaded", function (event) {
navActivePage();
});
</script>
<!-- Google Analytics: change UA-XXXXX-X to be your site's ID
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-XXXXX-X', 'auto');
ga('send', 'pageview');
</script>
--> <script type="text/javascript" src="./main.70a66962.js"></script></body>
</html>