每个令人惊叹的魔术背后都有一只冤死的小鸟。——《致命魔术》 收藏本站
登陆 / 注册 搜索

阅读: 23.5K   回复: 11

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

仗剑天涯论坛大牛 2016-6-28 23:54 |显示全部楼层

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

主题破百
        今天发现有人回这个贴,觉得这个坑挖得有点大。不过既然挖了,岂有不跳之理。男子汉一言既出,就什么马也难追了。6 y( y- s/ ~+ J+ o) w7 B" t
( x4 y0 p- K2 h+ C
+ y2 n/ O' W: q( }
        今天我们就来学习: “OSI七层模型
" ]# u8 |2 z/ a. z" G/ o/ B( ^- Q* P3 S- e: J1 f0 \0 R
        目前全球约有40亿网民,互联网的规模已经是超乎想象般宏大。那么问题来了:2 W3 S7 {2 k1 `1 L; p$ M) F5 j

& q, w9 h. h" l6 {4 Y' o
        我们怎么实现在这么多的机器之间通信呢?9 p2 Y; }/ e0 e
        怎么能够不在这数据的迷宫里失去方向呢?

6 |7 g, j! B5 B# _4 `  J% {5 G/ t# }        我们一起来学习,以期找到问题的答案。首先我们来理解互联网是怎么创建的,以及使用什么规范来很好地组织这么多信息。
* _2 E8 g1 ]  l4 P: C: u/ z
% i4 j% S$ H, v1 k
#f194:

' U9 l, }- I8 \        设想一下,假如你可以在任何时候通信,和任何人通信,岂不是很棒。这就是互联网的初衷。
& @. {7 N1 ]+ Y0 b7 d1 _
5 I7 f5 V! Y6 \9 u9 d# V8 Y. f" B$ o        平时,当我们身处一个10人小组,会感到表达自己的观点有点困难。如果是100人,就更困难。假如有1000人,那几乎就听不到你说话了。但是互联网就是要向不可能挑战,要能够做到:在任何时刻,同时和任何人通信。当然了,要达到这个目的,必须要建立一个复杂的通信系统,使得各台机器之间能够相互对话。. L4 B; i0 C$ V2 r6 {2 R
4 Q8 W% r5 J7 h5 R/ Y; F
        但是这样的一个通信模型如何构建呢?#362:
: B# g6 V2 R% f8 L8 r6 D( L( i9 t# _; @$ i/ \+ H

; h9 V0 c9 Z2 H9 T        我们可以从最熟悉的通信方式开始理解。来盘点一下一般的通信方式吧:
  l" t* q: ^5 v* C' R7 v& f6 z! W. T. p" L, V4 t
        说话
, g: o. W1 @& h+ D* O5 _3 b        打电话( D( z. |7 L' F: }
        邮件
$ i; I* v! i0 n% v/ k4 J% j2 g        飞鸽传书 →_→3 ^6 ?6 T+ F' N3 p( D. b. ~$ x
        等等

. }9 R4 g! h9 y        接下来,让我们试着来理解,在这些通信方式中,有哪些基本要素是我们通信活动所必不可少的。
+ G; r* `- k' Y. r/ U& J& X3 Q) S
7 R3 _! Z: T& S- u  g% C        说话的方式,我们需要:
1 A! M; G+ S" b7 P
" \' z4 r+ Q2 r# q- Y: ~: P
        说话者
2 X9 g  u/ C0 S- ]+ q. G        听话者
+ u% T; N7 L* f* o. V" H7 Q        传声媒介(空气)
: {' w* s2 J2 B7 R
        打电话的方式,跟说话是类似的,除了我们还需要一个在说话和电子学之间的中介。实际上,我们要把说话的声音转成电信号,电信号通过电话线等传播介质到达接收者那一端,然后转为声音被听见。在这里有一个信息的封装。
0 p7 U1 f* W- \# v' C
" I6 b# R- z% u: w7 y! B        我们可以举邮件的例子来看一下这个封装信息的系统,在邮件收发时我们需要:/ s" P3 q' C; y
6 I; ^: \; O* C, M0 t3 @9 x
        寄件人
* a8 i3 E" i3 y* n        收件人
& l7 i' E8 Y1 e& ^% w' l- x$ v        传播介质(信)
; f, s0 `* |- w# S) K        容器(信封): E1 }; S4 p5 t3 t7 Z2 k7 ]
        中介(邮局)

! u& u  X+ ]) q% h6 {0 x+ b  c5 S3 @6 L( c1 M7 W& M& F; s5 d
        是不是慢慢能理解我们通信需要什么条件了?: y8 f' \, Y" m5 x  w. m
+ u! r- N9 l$ b
0 D0 ]$ z1 K6 Y4 I; Y- F$ g
        问题又来了:3 {7 i5 b9 D/ i9 m) P% P' d

  c  b6 h# x* e4 K4 g5 W6 D
        我们对电脑也能这样应用吗?' J7 j; a; Q3 G) |2 ~$ d
        怎么才能让大家可以同时发出讯息呢?: Q: _1 h1 _% }0 s# h
        我们能够即时和地球另一端的某人通信吗?  

5 s2 o- J: j+ |4 b. u* g        接下来我们就看一下网络的先驱者们如何把人类通信的原理“应用”到电脑的通信中。* n, y+ O( q, [& B/ }5 i  a0 h
1 t* R& w. i: k  C: [, o
        他们把所有研究的成果重组,创立了一个标准,所有连到互联网的人都要遵守,这个标准就是:OSI七层模型。  
$ @& q: X0 T1 i6 [  f2 U7 e' W* E. M# H/ y
        OSI七层模型,听上去是不是很帅?这个标准诞生在1984年,只比我早了n年出生
+ }" `0 ^& s# L7 i
/ R/ a" S+ {, y& J, k. H  c
! [( N2 E, g& g8 H2 _; n        聪明的读者也许注意到了,这个标准比互联网的出现晚了很久。
' i+ x* B. k  B& p/ l2 ]( B- `, r2 Y% `" C3 K
        原因很简单:OSI七层模型是在人们有了不少机器之间通信的经验之后才能够诞生的。因此这个标准不仅能够适用于现有的通信,也适用于将来的通信及其可能的演进。它的目的是使通信标准化,以保证机器最大化的演进潜力和协同工作能力。
+ J+ s3 o" _# y6 z5 L+ P% G. K
0 c/ \. ^1 O1 W0 q# N1 D        听起来很不错,但是到底OSI七层模型是什么啊?' v3 ^1 @. v  q- v3 ?9 J+ w

9 z) t; q# i$ ^4 r; D        OSI七层模型是一个标准,规定了机器(主要是电脑)之间如何通信。因此假如你想要让你的洗碗机和洗衣机通信的话,就需要遵从OSI模型,或者至少从OSI模型获得启发。这意味着需要遵从分层的通信方式。
5 ^1 V" G# U/ B% }! T
: ^) U2 a7 a# r) T% Q1 \6 C6 `  p5 @: A% P, ^
        这里的层又是什么呢?1 A0 j. P! v. O% k- s
2 B# S% _& G) F$ S, w/ s5 u( z

6 k6 Q0 J9 f, N3 A! f2 S9 P        OSI模型是一个分层的模型,就是说它分为几个部分,每一部分称为一层,每一层扮演固定的角色,就像下图所看到的:" ?5 Q/ l, K& ]. e6 ^' [& Z
1 }7 I, @& Z4 p8 M9 N
TCP/IP网络精讲 之二 OSI七层模型 10192975.jpg

$ h3 t/ ^- h; k        上图中,我们可以看到OSI有7层,每一层名字都不一样。5 B  q% _1 A" w
3 U* `, F# j1 Y

2 X/ Z; ?9 }# r2 |        为什么是7层,不是14层或者250层?#358:( K0 X4 e7 g5 Y" D$ z# ?6 d/ F  n
% R4 a. ~4 C3 |% ~

/ W% p% ^2 W  m        还记得之前提到的吗?我们知道要通信,需要有固定数目的组分,比如 发送者,接收者,语言,等等。网络的先驱者们设计了用于构建通信系统的主要元素,他们发现数目定为7最合适。因此OSI的每一层都有特定的分工,这7层合起来就可以使一台机器和另一台通信。
* r, {7 n' G; n/ i; u& c( f% i) D1 X/ A; }1 t% U4 X2 x
7 L8 a# J! ^& Q
        下面我们来看一下这7层各自的细节。( a. u9 u+ a" |7 \8 N
! j- n: r, S) M6 {% E# q/ G+ y0 m5 ?
6 m& w3 f6 p( W$ A
        第1层或者物理层
/ {/ Z3 ], W7 O$ S" r7 O( C& h7 ^1 O, H( n- w! `4 W
        名字: 物理层
# p; |% }3 p, t. e
# T0 c( M' _& Y; s- v        作用:为通信提供传播媒介
3 F* \8 h7 ]9 Q' F- |# `% B; W- H& x
        辅助作用:没有
- Y0 D8 G! p& d, m, A  R, q* P! V& r. r* O" i0 V+ |7 ], h! d
        相关设备:集线器(也就是常说的Hub)# S9 v, b( [) j2 I

7 ~* J) A% }% S+ r* n! G' Q+ X' z/ G' x' i3 r( t  n
        第2层或者数据链路层. i! A% \1 T5 t

& @1 j4 k4 I, a1 |1 u0 P        名字: 数据链路层6 A. u- I: l3 c. _2 N# H
8 A0 S+ h1 T$ H1 F, ~2 M; z
        作用:使局域网中的机器互相连接
5 q  r: A0 I+ z% u- |) k! r/ |4 |7 k5 R5 f+ B9 X1 i
        辅助作用:侦测传输错误" j! }7 s8 s( {
+ z+ s7 C' ]- z% Z4 _& f
        相关设备:交换机(也就是常说的Switch)6 v+ `2 g, G" P: Y. y+ V& N' h

7 ~. z1 g( |: L
9 I/ }( ]: q- L; h5 p        第3层或者网络层* J: J" c2 _- g4 q

: h% Z- m% f2 m7 O3 z        名字: 网络层
4 `, s: O7 M; M, R- H" i; ~
1 ~1 g  q! q- O/ z        作用:使各个网络相互连接
3 B) g, I2 W1 j; @- E3 N2 C! v$ d  M' x: b% Z! o  R& U
        辅助作用:分割传输的数据包
" m) o: D& @8 R" m' Z+ P* [, ~: w3 C  U$ p8 Q; z: h8 t/ s, w8 h6 S1 h
        相关设备:路由器(也就是常说的Router)
8 U2 \/ T) W  t6 h% W2 q+ L3 x. X3 n: E  E# ?5 W1 t% V

7 ^/ N; i3 Y5 T1 U0 F. F        第4层或者传输层
: R! E& Q' Y% t" L: h; r! }# x) Z  n( w
        名字: 传输层
1 Z: Y4 h3 n$ p+ b5 m# f, G' w+ B
        作用:管理应用程序的连接. N! T2 g$ u6 S- Z

2 E7 {3 e# h: i& L        辅助作用:保证连接的有效建立( e  q' ?/ \% ]. s! r

$ c( t% t) ?7 r        相关设备:没有
0 P( E, v6 O. ~2 r; T. g! v+ D' b( Q; g

/ ]: i3 Q; o: p+ a; c. g" b, W/ i        第5层或会话层
* B+ w& F3 E; ~- z6 a; j5 o7 T
* N6 U3 s" [/ I$ M        我们不在乎!1 A8 l2 b* A5 p. U0 I1 s
1 `6 a1 F% ~+ r) N& @8 h. L  ^

9 p; X" w0 Q+ A" a        是的,你没有看错:我们不在乎第5层。
) R$ O, l7 H2 p- @3 L( Q
. v5 j7 P+ T% E3 f( L& F( o* m: q        在第4层以上的,除了第7层,我们都不在乎。当然了,我也有些夸大。但是第5层和第6层不在本贴考虑范围之内。
) J6 F, e8 ?( p2 S. w
, F: w3 s$ @  S; X        原因很简单:OSI七层模型是一个理论模型,今天的互联网使用的实际模型是TCP/IP模型,而后者不使用OSI的第5层和第6层,因此我们无视它们。
. _) {" g) \; W4 z$ C) B0 [
& c9 \8 d: O. m- l0 O        好,我想你应该理解了。当然了,第7层我们需要考虑。其实正是为了这第7层上的应用程序我们才大费周章,构建这个模型。是的,第7层就是老总,就得伺候着,就是这么任性 →_→
$ t) S. p% T* m" ?4 l( b( G( j, U' P+ B: \0 B( |* [: q

: x8 ^* f% E$ Q" K" W2 G        第7层或者应用层! b3 b% q; ?3 |; S, a# m$ A. z

, I% t0 {0 {$ ~        名字: 应用层$ a  S2 |' I2 @. \% i. H% C
- M3 m2 F2 o1 {
        作用:没有# z; J! M* R3 ~
) V, ], n# K5 t" ]' y& g
        辅助作用:没有. m) r8 ?7 }# U3 k, k4 N
8 T% \# r3 A, x% E6 u4 X1 F4 d
        相关设备:代理(也就是常说的Proxy)$ a! [0 v! u  E5 ]
- a* ?( M  g& O* ]* `5 j# I+ j9 O

, I$ _+ F! h, b) {- J2 a$ N. l        什么?第七层竟然没有作用!那“伺候”它干嘛?说白了,这一层就是展示我们构建通信架构所要服务的所有应用程序。. s- }, ?5 H% i0 s/ @5 J

" z- @4 O, u1 v# N0 L, }9 M' ~, q$ b        因此,第七层我们也不多做研究,而是把重心放在提供服务和引导数据传递的第1-4层。其实,还有一种说法是把1-4层合称为“网络层”。因为正是这四层负责引导数据从一台机器传递到另一台机器,以供机器上的属于第7层的应用程序使用。' x# t! f1 e: v) O( F# V1 I
: Q( W6 @( E3 k8 E* W8 J

1 }1 K- y+ H, ^0 g" A* X5 S3 r        在深入理解这四层之前,很有必要提一下使用OSI模型的两个原则:
* N# N2 C) F+ r8 d3 X* m6 O
0 ~' q. a: ?) i8 q
        1. 每一层都是相对独立的
6 q' L" D0 [2 I0 t' G+ Z8 H$ O        2. 每一层只能和相邻的层通信

" S) s8 u4 D2 I$ b/ t        “每一层都是相对独立的”6 }9 V% ]- K- N% Q0 v6 z) A
" @7 K) U: ?1 ]6 G; S
        其所产生的影响是某一层所用的信息不能被另一层使用。例如,对于某些有一定网络知识的读者来说,应该知道IP地址是属于第3层的,就不能被另外的层所使用。8 W* S1 j! y( k; r5 t: ~+ ~
; U! R+ Z8 o/ K8 R" ^1 ~
        这样规定的好处是可以方便通信方式的变革。
" A/ i: Y1 [+ ~7 A# `! j5 q4 g3 s0 o/ S" \6 s- _5 C2 Q
        想象一下,今天你使用互联网,虽然你可能并不了解它的原理,但实际上你使用的是第3层的IPv4(Internet Protocol Version 4,第四代互联网协议)这个协议。未来,我们将从IPv4演进到IPv6(第六代互联网协议,相比第四代的32位地址空间,可以达到128位地址空间)。这时,假如我们除了第3层以外,在另一些层中也用到了IPv4,那我们除了要改第3层的协议,我们也要改其他凡是用到IPv4协议的层,就会很麻烦。
; o& g0 n, u% ^* O8 E. |- u
' W; \9 D# j$ ?0 s        保持各层的相对独立性可以使得我们改换一层所关联的协议时,无需更改其他的层。  g- X: w# U. B0 z

" b/ s7 X9 n0 [' b9 o$ l        “每一层只能和相邻的层通信”' ^6 g6 F+ A" \1 N8 l

/ `$ C6 I- W2 H+ t% D0 u        为了理解这个原则,我们必须了解机器是怎么利用OSI模型来通信的。
( E* L+ z1 I8 f4 ^6 y8 n8 [/ I( _; W" \7 K3 D0 Z* b9 w6 U# n
        想象以下场景:: O3 }/ X* V3 H( g

7 I4 }! n2 I) J' ?        你坐在电脑前,打开你的浏览器。你在浏览器的地址栏里输入一个网址,那个网站就出现了。
8 t% B6 |( e4 e" G: [# u
" c+ W4 _7 V8 N# Y) Y        虽然你并不知情,但其实你就在使用OSI模型。#357:# z: S2 N3 H/ c
5 G5 t4 w4 G8 K. a
        大体来说,位于OSI第7层的应用程序(此处是浏览器),与第1-4层(合称“网络层”)对话,以便这4层把机器上的应用程序所要的信息从远端的机器上(比如google.com的服务器)传输过来。
. m% W) t6 p- m3 ]& l( s6 o5 P/ C1 Z4 C/ R! W" {/ a
        在一个传输过程中,我们会跨越OSI模型的各层,从上到下。8 k) I3 f: ~# n2 D1 p- l
! y7 U2 X1 r4 Z2 U: Y. d
        由此可见,多亏了第2个原则,我们能保证在信息的传输过程中,OSI模型的各层都会被跨越,也就保证每一层的作用都能得到实现。当然了,差不多是这样。因为实际上对于互联网,OSI模型是一个理论模型,第7层其实是跳过5,6层而直接和底下4层通信的。所以是 7 -> 4 -> 3 -> 2 -> 1 。0 Y, b) W1 v6 n  _

4 f) D& w' S5 l" {) c
TCP/IP网络精讲 之二 OSI七层模型 10192976.jpg

# f1 B) g  g$ S9 y( C* W+ b' D        好了,今天的课程就到这里,总结一下需要记住的知识点:3 ]# o  r- ?3 O  y* h

* Z! ^8 J% C+ ~% O" m: m, C3 c        OSI七层模型是一个规范,其规定了机器之间如何通信
4 {& J$ n, [$ x* {* U9 W; r9 `* A; c  i& R
$ q5 |1 W: k: h: W
        OSI模型是一个理论模型,互联网实际使用的是TCP/IP模型4 d' H# f# i& w/ n4 F

, x" a" e) e5 U5 [' `; z! u

6 d3 C) f) L8 Q        OSI模型有7层
: ]! R: _/ G  `. u( p. w
7 Q; v; J) C  f2 p5 ~

& a1 b1 J. r& ]* A, ^1 r8 z        每一层都有一个特定的作用7 I/ x' d3 G5 z
/ u5 k! f9 q, m" y; d6 J* {' K) x6 S' `
$ R# j$ k; u! g6 v9 [
        第1-4层合称为“网络层”
+ Q; e' U: {7 L( k6 {( M' W! \7 F9 C; [% B6 D2 M$ c: U
" n* R0 n5 V8 U: F) q, F3 P
        每一层相对独立
4 k4 q2 T: n" ?) i  R
. `4 M& Y% f8 v# Y4 m- k* F- H

' J. e; A8 B! {) g( G        每一层只能和相邻的层通信
  ]6 i" A4 H8 p  b. w* U( {
6 @6 r5 E, F4 @
5 v; q# T% h7 A2 C0 B3 ~( @+ L
        当传输数据时,我们从OSI的最上层遍历到最下层,在另一个机器那里,曾是相反的方向,从最下层到最上层。% D5 r/ R3 M' a6 _

/ u8 S4 B$ i5 }! N+ ^% s/ n  ?

评分

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

查看全部评分


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

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

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

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

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

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

学通信原理时都是死记硬背,你的这套 HUB-Switch-Router-Proxy比喻很生动形象,利于记忆
灵芝sama 「初入古黑」 2016-12-9 18:24 |显示全部楼层

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

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

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

大大,我百度了一下,为啥上面说PROXY代理的工作主要在会话层
Sunglassescat 「龙战于野」 2017-7-27 23:06 |显示全部楼层

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

给大佬点赞。都记住了#365:
微雨黄昏 「出类拔萃」 2018-5-5 10:02 |显示全部楼层

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

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

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

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

本版积分规则

关于本站|大事记|小黑屋|古黑论 网站统计

GMT+8, 2021-1-19 17:14 , Processed in 0.041333 second(s), 21 queries , Redis On.

© 2015-2020 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表