隐约雷鸣,阴霾天空,但盼风雨来,能留你在此。 收藏本站
登陆 / 注册 搜索

阅读: 28.4K   回复: 11

[# 网络基础] TCP/IP网络精讲 之二 OSI七层模型

[复制链接]
仗剑天涯论坛大牛 2016-6-28 23:54 |显示全部楼层

今生相逢便是缘分,何苦去怨恨,何苦去仇视。

主题破百
        今天发现有人回这个贴,觉得这个坑挖得有点大。不过既然挖了,岂有不跳之理。男子汉一言既出,就什么马也难追了。
9 i- q  s* s, e4 @- d8 Z
* P+ F( e7 o+ q. T& s: w; H9 [* O6 c$ w9 j3 M# e8 f" `$ |
        今天我们就来学习: “OSI七层模型
" J# ~& R6 Y/ J7 A4 V; @% A. d
" b/ m* u$ d' _- c  c4 L2 ^4 n* w        目前全球约有40亿网民,互联网的规模已经是超乎想象般宏大。那么问题来了:
$ h( {1 o( y1 y) r" E2 T
* W( }/ G$ b2 }4 c, Q8 ?
        我们怎么实现在这么多的机器之间通信呢?
# B8 P2 S2 ^7 G' p  d2 |        怎么能够不在这数据的迷宫里失去方向呢?
4 m7 Y7 d6 O) A8 ^: s
        我们一起来学习,以期找到问题的答案。首先我们来理解互联网是怎么创建的,以及使用什么规范来很好地组织这么多信息。' E8 p9 e5 S% Y* M% N2 S( A' M3 _0 E. y

# r: K7 Q- A; H' V+ [" g& P0 d6 e
#f194:

* b  g: g. f. i7 a6 d        设想一下,假如你可以在任何时候通信,和任何人通信,岂不是很棒。这就是互联网的初衷。
5 I& _/ ]$ W( e% J- }1 {
0 t% I$ _9 o( d. P7 d        平时,当我们身处一个10人小组,会感到表达自己的观点有点困难。如果是100人,就更困难。假如有1000人,那几乎就听不到你说话了。但是互联网就是要向不可能挑战,要能够做到:在任何时刻,同时和任何人通信。当然了,要达到这个目的,必须要建立一个复杂的通信系统,使得各台机器之间能够相互对话。
. a- v" A" m5 Y, s4 i: Y2 `) K0 e9 u% `% D; e
        但是这样的一个通信模型如何构建呢?#362:6 h9 @; C0 @" e. I

  m# H; o7 q0 o/ S% ]7 K% J3 s! K) \8 ~; m
        我们可以从最熟悉的通信方式开始理解。来盘点一下一般的通信方式吧:+ o8 |& G3 {+ v- A( ?' p; `

9 b9 D9 _, x! k& k- B7 j" z
        说话
; |1 `1 v6 s; s6 N7 Q! H        打电话6 B8 o* ?; q) [) H0 z
        邮件+ j0 B; [8 K: n
        飞鸽传书 →_→/ M; ^/ X0 F; F9 P+ w% \1 |6 n/ K
        等等
- m( Y, ~3 F$ W( S8 X7 S
        接下来,让我们试着来理解,在这些通信方式中,有哪些基本要素是我们通信活动所必不可少的。* l1 \2 M7 M5 ~1 m2 M9 c9 A% ~  O# a

6 X8 w+ D3 J& ?        说话的方式,我们需要:6 G& B; s8 |  B3 }. M

* [( Q) C6 g2 s; \6 N
        说话者) w; ]/ J! r* k+ `! Q$ z
        听话者4 e, }5 x+ a5 C( E; Z
        传声媒介(空气)
. t. H' [7 e; L5 ~0 b. I
        打电话的方式,跟说话是类似的,除了我们还需要一个在说话和电子学之间的中介。实际上,我们要把说话的声音转成电信号,电信号通过电话线等传播介质到达接收者那一端,然后转为声音被听见。在这里有一个信息的封装。 $ S' T5 {0 q, P& l. H
6 f2 I) c9 p  p
        我们可以举邮件的例子来看一下这个封装信息的系统,在邮件收发时我们需要:' H) T- J0 ~, K' [% o

: }6 q% ]' B4 r
        寄件人
! @5 j1 L  D1 B        收件人
3 r  ^& v" ^6 c: A# m5 k# |        传播介质(信)
! P, I' e0 M) y& r0 G3 S        容器(信封)8 N' o4 [, ^  j2 f0 \& k
        中介(邮局)
$ R5 V' |# {: W3 \% J
2 i8 [6 W& O9 f+ X6 G2 j$ P/ U' r
        是不是慢慢能理解我们通信需要什么条件了?
+ n5 u- V- p/ r5 V  S9 D; X6 _" r* \/ f% e/ W
& n9 v! p/ L; F/ i- k
        问题又来了:# W! X5 Z  Y8 W' ~, t3 X& o

/ _5 m7 M7 V" D/ @0 T3 h3 N; `. m5 P
        我们对电脑也能这样应用吗?( @, A# Q" M4 p5 ~, O  G. c7 b
        怎么才能让大家可以同时发出讯息呢?8 e- u+ H! `: K0 H7 \$ ~5 _# |
        我们能够即时和地球另一端的某人通信吗?  

8 P2 s6 D9 ?5 w4 A        接下来我们就看一下网络的先驱者们如何把人类通信的原理“应用”到电脑的通信中。
: h5 z# r: T2 s( T8 v; V7 F0 s, l; O
        他们把所有研究的成果重组,创立了一个标准,所有连到互联网的人都要遵守,这个标准就是:OSI七层模型。  1 M4 _' M* S2 x6 a1 d, K, _
+ h) J0 ]% I% O0 k& O  F& w  o
        OSI七层模型,听上去是不是很帅?这个标准诞生在1984年,只比我早了n年出生' K) {; k/ [) s; Q7 W# D

/ Z$ V( ~& X1 g) _2 M
+ Y/ ^; H9 C# n0 C3 n) N+ d        聪明的读者也许注意到了,这个标准比互联网的出现晚了很久。 8 ]. `. `* w- v$ d3 _
1 Q! t" R  o% u$ O* }) R7 V
        原因很简单:OSI七层模型是在人们有了不少机器之间通信的经验之后才能够诞生的。因此这个标准不仅能够适用于现有的通信,也适用于将来的通信及其可能的演进。它的目的是使通信标准化,以保证机器最大化的演进潜力和协同工作能力。. m' T! y# X: b3 f! m1 Z6 x9 `, [  m
( ?4 E6 |8 T3 r4 ~7 T
        听起来很不错,但是到底OSI七层模型是什么啊?
$ Q9 x0 W9 n2 s3 K( Z2 I: O5 r' }) ^
        OSI七层模型是一个标准,规定了机器(主要是电脑)之间如何通信。因此假如你想要让你的洗碗机和洗衣机通信的话,就需要遵从OSI模型,或者至少从OSI模型获得启发。这意味着需要遵从分层的通信方式。4 s, ]. T; C! A9 F: [

/ T* B8 R4 h9 C) _( w
$ A. d$ {7 T: }7 L        这里的层又是什么呢?1 C& s4 d6 f& r0 T$ n
3 |9 Q: O* [0 N' k) v+ O* _( n1 u

! l, P5 O( u% e4 r3 c6 I7 [        OSI模型是一个分层的模型,就是说它分为几个部分,每一部分称为一层,每一层扮演固定的角色,就像下图所看到的:
& h2 O2 q1 s9 c% ~: K2 H, U: Z$ I. h3 a0 i3 ~; o0 V
TCP/IP网络精讲 之二 OSI七层模型 10192975.jpg

' Q4 h0 U% l; g# r: ~- Q        上图中,我们可以看到OSI有7层,每一层名字都不一样。
4 [& J/ T2 n5 H6 a/ F! G9 v& ~: U: G7 y2 t! k" c2 P# h5 j

# _# ]- F8 s6 k7 {2 q. m        为什么是7层,不是14层或者250层?#358:
, C8 [) b) u( O6 V
# `  D; A( o7 C6 {5 `6 J7 p2 X
- n5 K3 }7 \* D% c) [        还记得之前提到的吗?我们知道要通信,需要有固定数目的组分,比如 发送者,接收者,语言,等等。网络的先驱者们设计了用于构建通信系统的主要元素,他们发现数目定为7最合适。因此OSI的每一层都有特定的分工,这7层合起来就可以使一台机器和另一台通信。$ c  W: d7 H5 H" R% _

. Q6 N! B7 R. ?* R, c4 ^" ~, T
. p9 v: l; O8 N7 N        下面我们来看一下这7层各自的细节。
5 t) x$ Z* \! s
* G& z, x3 z. D* H1 W( \- E% t" S. t# Y5 z0 i7 l, Q, @
        第1层或者物理层
/ I7 L  W4 g: S/ A0 L3 g5 k* h6 q% p' y) d4 l$ V5 F
        名字: 物理层
) J* S( P& T9 [( G2 O# }7 S; X
6 [; }/ F* |- r9 W/ d# w        作用:为通信提供传播媒介% B+ d7 ]2 w! C5 Z$ ]3 n
# F0 Q$ L0 c% j/ |  a! D: e
        辅助作用:没有0 c9 F" H! u1 F
1 k! V' c  v2 w- k4 i3 A
        相关设备:集线器(也就是常说的Hub)/ d$ X; }+ ^5 h/ D( j9 U# }$ m

, V( @( Q& Z; Q1 F3 l  H
. [* v" L" v4 C4 f        第2层或者数据链路层
, b; i# b  b2 O7 b
* P  |  N$ @8 s- s6 V        名字: 数据链路层% q$ t$ t; |* R2 y: r7 |
  w1 x& Z6 v8 ]
        作用:使局域网中的机器互相连接
; K6 H6 H0 |; H3 z5 `- a: M
, ]$ k: [/ ^1 M6 f        辅助作用:侦测传输错误, Z5 X% S( E' x" ^9 p
% r. J" w" r' R1 i4 s
        相关设备:交换机(也就是常说的Switch)
' L8 X5 f% \' O" a. t' F$ y4 K2 v1 d3 \8 v
, O8 q+ F8 c' O" f
        第3层或者网络层
; I0 b, }* b6 G: Y- X# c
% O" F# X$ q& i# o, `        名字: 网络层
4 v/ t% A) ~* y3 D# R
9 L* `; @* G: Y% x/ h        作用:使各个网络相互连接# W) t' @! ?3 W# b
, @$ c+ {" J- M! K) [  E7 o3 j
        辅助作用:分割传输的数据包
& ]5 e2 A" I7 {& I! x( b( V
: a. @5 o) l$ N- O& F        相关设备:路由器(也就是常说的Router)
/ ]  m3 Q/ |: J% T7 r% n0 T
1 S& o! R- [& n$ L- m+ r
( W" G7 ^8 }! m" H" Q# z7 `        第4层或者传输层
- c3 H$ _! W; t- v
+ [% g1 r$ U3 z3 r7 b- u        名字: 传输层+ W, J6 y& v# f" p

5 ^$ N( @+ V; d( D        作用:管理应用程序的连接
1 F* o! _: _/ q& o1 o# M2 X7 l8 U
0 b( T% q( W; f4 s        辅助作用:保证连接的有效建立9 `+ P& ~7 j5 {8 D! G6 A
% b9 \+ _9 c, O* i) M  C
        相关设备:没有  g; M6 b2 g4 ^

( q$ ^8 z2 h$ u: ]8 \5 q; z
$ {) x' G& O1 Y. H        第5层或会话层. \+ y% G$ S9 A; f' q
" H5 m: m# H7 ]! j$ q7 f% T
        我们不在乎!
, c- Q% O. d% m% W' V3 ^, E8 a
1 E; O2 P6 o+ X2 h" k) a  c; F7 t/ a0 z9 B3 z& g
        是的,你没有看错:我们不在乎第5层。5 p/ f8 J, ]2 n7 N8 @3 _; ^9 i
+ B4 |# c1 e8 H2 a
        在第4层以上的,除了第7层,我们都不在乎。当然了,我也有些夸大。但是第5层和第6层不在本贴考虑范围之内。4 D' i4 K! `- |2 k2 N+ k8 y. d

2 F2 C/ E. e& U2 D& _        原因很简单:OSI七层模型是一个理论模型,今天的互联网使用的实际模型是TCP/IP模型,而后者不使用OSI的第5层和第6层,因此我们无视它们。3 ^+ }0 c6 {( h9 H( E- V& D
" |/ \! C" S6 U# N8 O: r
        好,我想你应该理解了。当然了,第7层我们需要考虑。其实正是为了这第7层上的应用程序我们才大费周章,构建这个模型。是的,第7层就是老总,就得伺候着,就是这么任性 →_→6 U" P3 \$ u+ b7 i* F
+ H) |2 @4 y$ b
) v/ v: T  V5 R' t# L- N( z
        第7层或者应用层1 D% w) `( g8 ~

* {# M( Y/ z; `! N+ _/ o        名字: 应用层: K; C) T0 }# R2 g) T, h8 h
! W3 u/ I4 }! h. S/ \7 S' Q
        作用:没有
6 S% Z6 ], }5 m2 r
' b# z4 ]; M6 i5 m: {" L        辅助作用:没有
8 ]2 e3 \' }, p7 [$ m' P7 f2 {9 O+ v& i4 `1 }
        相关设备:代理(也就是常说的Proxy)
! o1 @) U2 j: {+ N6 \& E' j  N& V5 s8 e' x$ G

- o. d( \* b" G' m2 y9 I        什么?第七层竟然没有作用!那“伺候”它干嘛?说白了,这一层就是展示我们构建通信架构所要服务的所有应用程序。
, S+ ^& q& _7 D3 T9 s
9 K5 ?) K8 \- D; S2 X: p        因此,第七层我们也不多做研究,而是把重心放在提供服务和引导数据传递的第1-4层。其实,还有一种说法是把1-4层合称为“网络层”。因为正是这四层负责引导数据从一台机器传递到另一台机器,以供机器上的属于第7层的应用程序使用。' t+ @% X9 Q; d1 G* A- [+ l, }
1 m8 S/ c, K+ J
8 G$ w/ T  s( ?7 O0 @; N
        在深入理解这四层之前,很有必要提一下使用OSI模型的两个原则:9 m, f, Y  m9 }  |: s8 }/ c3 N
' j+ G) K7 H$ B3 I# D- m2 ^
        1. 每一层都是相对独立的
- C( Q: b1 ~7 Q4 j. T. @        2. 每一层只能和相邻的层通信

- Q8 d$ V7 U; S9 o        “每一层都是相对独立的”
' r8 Y5 V' `# h$ ?! z0 y2 D8 N/ I% o9 x! d3 k# T! x. m# g
        其所产生的影响是某一层所用的信息不能被另一层使用。例如,对于某些有一定网络知识的读者来说,应该知道IP地址是属于第3层的,就不能被另外的层所使用。
1 k( a( V4 o. _5 ^( e7 ~( [& L" i/ b' U" a
5 O8 u1 a% H4 D. S) R4 I# N/ v        这样规定的好处是可以方便通信方式的变革。2 h: x8 K5 V7 c( k3 m& r
2 m$ N7 W4 @5 s# I& X: j* N: L  |
        想象一下,今天你使用互联网,虽然你可能并不了解它的原理,但实际上你使用的是第3层的IPv4(Internet Protocol Version 4,第四代互联网协议)这个协议。未来,我们将从IPv4演进到IPv6(第六代互联网协议,相比第四代的32位地址空间,可以达到128位地址空间)。这时,假如我们除了第3层以外,在另一些层中也用到了IPv4,那我们除了要改第3层的协议,我们也要改其他凡是用到IPv4协议的层,就会很麻烦。( E9 B4 F& H  p# \% p, ~
6 |- ]; |- p# J, K
        保持各层的相对独立性可以使得我们改换一层所关联的协议时,无需更改其他的层。
! e. g1 [6 d+ l. I8 ?' {' ~3 O. M9 D: O- h5 g
        “每一层只能和相邻的层通信”
" ?. o6 S6 @1 u* K# R1 [4 T7 x! h2 G& T& d$ P  D+ Q( k5 P6 E) L) v
        为了理解这个原则,我们必须了解机器是怎么利用OSI模型来通信的。
5 ^9 j0 m4 C. b6 P2 ]9 z2 L4 O" ?7 L, y4 k; J6 x
        想象以下场景:* \6 c. V9 |: N9 o
7 Y9 ^) a4 x" c- i$ }6 K! J
        你坐在电脑前,打开你的浏览器。你在浏览器的地址栏里输入一个网址,那个网站就出现了。$ i, s2 V5 y/ }  Z8 r/ a  A0 N
* v  J% o& s& U& n. l
        虽然你并不知情,但其实你就在使用OSI模型。#357:
( \& I4 M" O" X* e
# o% Q% X: e( x2 g7 @4 c' j) q        大体来说,位于OSI第7层的应用程序(此处是浏览器),与第1-4层(合称“网络层”)对话,以便这4层把机器上的应用程序所要的信息从远端的机器上(比如google.com的服务器)传输过来。: v/ R5 t/ g! s2 o$ x: u

& E. H6 U" o& p) ~- [        在一个传输过程中,我们会跨越OSI模型的各层,从上到下。2 N! n" c- x0 @9 r

! {7 ~5 \" i+ m1 }/ ~+ p# N* ]6 s1 F        由此可见,多亏了第2个原则,我们能保证在信息的传输过程中,OSI模型的各层都会被跨越,也就保证每一层的作用都能得到实现。当然了,差不多是这样。因为实际上对于互联网,OSI模型是一个理论模型,第7层其实是跳过5,6层而直接和底下4层通信的。所以是 7 -> 4 -> 3 -> 2 -> 1 。
/ J7 \3 D# [9 ^, w  G: j# u+ I1 o2 o  J" I
TCP/IP网络精讲 之二 OSI七层模型 10192976.jpg

/ i  [2 p, R; b2 d3 @4 Q        好了,今天的课程就到这里,总结一下需要记住的知识点:$ u- I3 y6 `, U
# Y: J" X" C' J9 D3 W$ J2 _, U, \; i( G
        OSI七层模型是一个规范,其规定了机器之间如何通信
1 \' t& t0 u* Z% @$ p& S
7 x) E6 ^6 q7 h( o) u

8 i; w4 p1 A9 T* H' Z& c" A1 c        OSI模型是一个理论模型,互联网实际使用的是TCP/IP模型. r, w2 x+ ~$ f
5 o/ q$ c6 ^1 C. z1 h
% r5 R# q5 n2 w+ B* X
        OSI模型有7层
' g$ M3 h! @; N& B# O9 R! @! g' E7 P2 J& l  g9 ~+ M

9 F$ B5 M0 [  v        每一层都有一个特定的作用
3 B* j) E0 \5 h5 H- Y* _  e
5 {& u, z7 u) Z- G5 P0 e! m1 [

3 F1 s9 H; W/ J* `        第1-4层合称为“网络层”8 W3 e8 D& O* m8 l. B: V' @
( G% K5 i( x0 ~; N# X( j
, P5 W) D2 a" }" z
        每一层相对独立
  Q- R1 h/ z6 m% {' U4 E% _
2 ]4 m$ g2 S  G, u2 |
6 u' |6 p$ x. w2 q" T. z4 t$ V
        每一层只能和相邻的层通信
+ v7 v' F' v/ A6 |; d+ k. s
3 ]5 V# f, E0 e
9 d# j3 N4 [* O3 X2 T9 O
        当传输数据时,我们从OSI的最上层遍历到最下层,在另一个机器那里,曾是相反的方向,从最下层到最上层。
  g/ d* o* R- F5 f' v( O2 c7 {
3 P* ~% n2 Y8 ?5 Q
上一篇
下一篇

评分

参与人数 2成长值 +2 金币 +2 展开 理由
Sunglassescat + 1 + 1 很给力!
sirius + 1 + 1

查看全部评分

帖子热度 5.1万 ℃

sirius 「初入古黑」 2016-6-29 06:17 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

在这里明白了要多学基础 正好昨天在啃tcipip协议的书似懂非懂 希望这帖能继续下去
胡雅亦林 「初入古黑」 2016-7-5 12:42 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

鼓励鼓励。支持支持。为你点赞!
hanschin 「初入古黑」 2016-7-14 17:06 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

学通信原理时都是死记硬背,你的这套 HUB-Switch-Router-Proxy比喻很生动形象,利于记忆
hanschin被钱袋砸中进医院,看病花了 2 个 金币.
灵芝sama 「初入古黑」 2016-12-9 18:24 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

顶楼主,非常有用的讲解w
Sunglassescat 「龙战于野」 2017-7-27 22:59 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

大大,我百度了一下,为啥上面说PROXY代理的工作主要在会话层
Sunglassescat殷勤地给楼主揉揉肩捶捶背,楼主奖励2 个 金币.
Sunglassescat 「龙战于野」 2017-7-27 23:06 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

给大佬点赞。都记住了#365:
Sunglassescat在电影院邂逅美女,请美女吃大餐,花掉2 个 金币.
微雨黄昏 「出类拔萃」 2018-5-5 10:02 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

网络安全不能一直靠司法政策压制,技术对抗才是保证安全的本源。
巴黎环抱的花海 「龙战于野」 2018-5-7 09:22 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

珍爱生命,果断回帖。
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

快速回复 返回列表