既然如此,就再努力一次吧。别在这里愁眉不展,也不要再自欺欺人,重新来过! 收藏本站
登陆 / 注册 搜索

阅读: 23.1K   回复: 11

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

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

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

主题破百
        今天发现有人回这个贴,觉得这个坑挖得有点大。不过既然挖了,岂有不跳之理。男子汉一言既出,就什么马也难追了。) J, U& P4 N- t& f; ^) G& s5 M

" p* x% |6 ~' e  R' P1 D$ R" i  D- h; x- b+ k4 T# L+ e
        今天我们就来学习: “OSI七层模型7 u/ o, a% {. f
7 R$ j% c6 D  H
        目前全球约有40亿网民,互联网的规模已经是超乎想象般宏大。那么问题来了:) z/ G6 M0 s# c5 q* p- o
6 g0 Z" `% k4 K) T5 p( K; q
        我们怎么实现在这么多的机器之间通信呢?! c) t" d6 T4 x' @$ p6 P
        怎么能够不在这数据的迷宫里失去方向呢?
" s9 |$ J6 E7 k% _
        我们一起来学习,以期找到问题的答案。首先我们来理解互联网是怎么创建的,以及使用什么规范来很好地组织这么多信息。& j1 @& j( }, R8 x9 N! H, J9 e

) N8 K8 i$ X8 c
#f194:
" S! I1 i$ ^- W/ u$ C2 Q4 W
        设想一下,假如你可以在任何时候通信,和任何人通信,岂不是很棒。这就是互联网的初衷。
$ x3 O  z2 f8 {9 p* \
& I# L: B' s  V( @/ m        平时,当我们身处一个10人小组,会感到表达自己的观点有点困难。如果是100人,就更困难。假如有1000人,那几乎就听不到你说话了。但是互联网就是要向不可能挑战,要能够做到:在任何时刻,同时和任何人通信。当然了,要达到这个目的,必须要建立一个复杂的通信系统,使得各台机器之间能够相互对话。+ ]; A! [. E. K
, |, s4 w8 C* D2 x: k# @+ x) [7 ?
        但是这样的一个通信模型如何构建呢?#362:
9 e, J/ e0 L7 u4 a' @. r7 ~% f6 X. l1 D4 f  K6 r- _
  r& @5 Q5 w4 n1 v
        我们可以从最熟悉的通信方式开始理解。来盘点一下一般的通信方式吧:
0 O; Q' B8 }' F8 A  Z6 i# Y
" K! z$ }# o2 f: j8 v$ A5 |
        说话
, q# C' O0 X) W5 Q) I        打电话
) {- m' Q: R8 O; W        邮件
3 }  m) `! A4 |) a8 p        飞鸽传书 →_→. l4 e6 Z/ Y6 p2 _# ]; E5 B$ b( H
        等等
. R5 x" F9 Z& E; T
        接下来,让我们试着来理解,在这些通信方式中,有哪些基本要素是我们通信活动所必不可少的。! v7 x( [- C. _( u( Y
' c; m7 @! Z# s: M
        说话的方式,我们需要:
- O" j& C( Q5 `5 q7 z5 Z9 [# g& c3 ~- w8 B3 x+ r- Q% ~) j
        说话者
' k& ]' K$ _& `        听话者
# C/ u7 r( {2 [  y4 P2 j        传声媒介(空气)
: J3 ~4 L  b% I; ^4 a1 k. h
        打电话的方式,跟说话是类似的,除了我们还需要一个在说话和电子学之间的中介。实际上,我们要把说话的声音转成电信号,电信号通过电话线等传播介质到达接收者那一端,然后转为声音被听见。在这里有一个信息的封装。
( m5 `0 k4 A/ G4 q
2 x$ P1 k  h& q& E9 _        我们可以举邮件的例子来看一下这个封装信息的系统,在邮件收发时我们需要:' T% y0 H) ^2 o0 A0 p4 w
4 Z, T8 _, F5 O, @$ {1 J3 }6 M
        寄件人6 S) B( j+ q9 {
        收件人% N0 x! y8 _+ E% [% M9 z
        传播介质(信): j7 ?# {* k: O8 L9 U6 K
        容器(信封)
7 P; C- p" P" u- I9 @; u) a" t' q        中介(邮局)
1 B$ k; E7 }' w, Z8 N+ H

- u$ z1 b- t) \% g$ G. o1 f  i        是不是慢慢能理解我们通信需要什么条件了?
6 c! |/ g  G% I* B& H. M' }* m8 H1 O" J+ p" s# n
, {$ y0 i: B* F" k* x" e
        问题又来了:; J* [: y% [2 d* j3 C

( ^* I; ^1 d( c3 L( m
        我们对电脑也能这样应用吗?
! [8 k; N1 P0 |+ G& y0 f  U        怎么才能让大家可以同时发出讯息呢?
% @: q. H: L: L9 Z4 y) v8 x3 s, _        我们能够即时和地球另一端的某人通信吗?  
- o3 e; B8 \+ P! }: ?
        接下来我们就看一下网络的先驱者们如何把人类通信的原理“应用”到电脑的通信中。, V# s) F- [  x( y

' @  p# [% t( P: S& W        他们把所有研究的成果重组,创立了一个标准,所有连到互联网的人都要遵守,这个标准就是:OSI七层模型。  
( ^& F4 D# [: K$ c/ f4 F% l- e' E8 d3 S2 N  ?) C$ h; J
        OSI七层模型,听上去是不是很帅?这个标准诞生在1984年,只比我早了n年出生
. @( x+ c& k0 F7 n9 d
5 _" W, ^6 [6 e, T: l, _
: P' Y, X5 i8 v        聪明的读者也许注意到了,这个标准比互联网的出现晚了很久。 : h. v3 p. E7 R% \* b7 J
0 T8 n7 t& k9 z% @7 \
        原因很简单:OSI七层模型是在人们有了不少机器之间通信的经验之后才能够诞生的。因此这个标准不仅能够适用于现有的通信,也适用于将来的通信及其可能的演进。它的目的是使通信标准化,以保证机器最大化的演进潜力和协同工作能力。
) a7 L2 C7 ~% U0 X9 m# ~' A) l0 f( c) `; Q) X6 r; L3 v
        听起来很不错,但是到底OSI七层模型是什么啊?) s" }2 r+ D8 l3 Q. Y
/ g( c- k: _2 F0 P0 K3 {3 x
        OSI七层模型是一个标准,规定了机器(主要是电脑)之间如何通信。因此假如你想要让你的洗碗机和洗衣机通信的话,就需要遵从OSI模型,或者至少从OSI模型获得启发。这意味着需要遵从分层的通信方式。
( C( c4 W9 p2 v: r
9 ^$ j5 I& C2 J. ~7 ^0 h
) y8 m4 J% W, H' b# p3 l; e4 y        这里的层又是什么呢?
& A* ?+ A" X4 e9 L1 x
. n7 n8 m- |* j
* w1 s0 L% D6 W% {" v2 j* s( P        OSI模型是一个分层的模型,就是说它分为几个部分,每一部分称为一层,每一层扮演固定的角色,就像下图所看到的:
4 d" D! u. ~3 L4 t3 H" P, c
* ~3 g/ ?8 [" d
TCP/IP网络精讲 之二 OSI七层模型 10192975.jpg

; }' r9 k) ~4 s        上图中,我们可以看到OSI有7层,每一层名字都不一样。+ Y; h9 p* A6 K/ T! T4 ]1 n

& e9 N9 h5 V3 v7 t% q3 H# I5 ^3 q8 P, q
        为什么是7层,不是14层或者250层?#358:
) O8 {3 \! l- Y% Q, N* E, e: a/ |! q# N4 S3 H3 `  Q

/ |* `4 i" I( @; o7 M$ s& }        还记得之前提到的吗?我们知道要通信,需要有固定数目的组分,比如 发送者,接收者,语言,等等。网络的先驱者们设计了用于构建通信系统的主要元素,他们发现数目定为7最合适。因此OSI的每一层都有特定的分工,这7层合起来就可以使一台机器和另一台通信。7 ~: a# ], }5 n9 N0 y
8 _& ]! b& }1 ?

% O; @  y: e/ R9 o4 k        下面我们来看一下这7层各自的细节。
7 t% {# ^, S# m& w/ |* u
/ p* i& U) X7 C2 T" o4 a5 w
6 A, \3 [9 N7 K  u& ^        第1层或者物理层
! \  O& |7 P* j* B: O) B/ M) U2 z( \1 J6 J1 |5 M5 w- d2 A
        名字: 物理层
, [6 i& z0 T+ ]+ `) }! e5 I5 h: T- v& N( P$ C
        作用:为通信提供传播媒介
% Z- Q. H! U+ f$ g% E
: B# ?# u4 S1 ^0 L1 f' c        辅助作用:没有, E* Q+ B4 e9 F- Z. u
4 S* m) V: P! v& H8 R
        相关设备:集线器(也就是常说的Hub)7 U# v* ]" T3 a% [, c, C9 W+ J

/ Z4 e# r, j& F0 w! h% o) J/ [7 O9 A. X" o3 Z# s4 t- A9 `
        第2层或者数据链路层$ z" F% ~# o2 [$ W0 q$ ~8 Z9 x# C

) M$ O, c7 P& `: z        名字: 数据链路层- p4 J" \$ Q; G) k; @4 w

0 M1 u+ n5 }; ]        作用:使局域网中的机器互相连接0 S: _! |, w1 k% w

7 r& N, P! ]9 y* }        辅助作用:侦测传输错误
6 q$ i( [8 `  j& l; n+ K$ Y6 j& R" s5 X
        相关设备:交换机(也就是常说的Switch)
0 r0 T- B# `. ]  Q" ?: _4 v, p" r9 }. r5 z$ U

0 H0 V- W7 B0 b3 S, m  h        第3层或者网络层
8 Q/ w; z2 x" ~) W2 l/ ?" O
  m: y7 A& B7 |+ p$ X8 t1 t        名字: 网络层
$ Z, W+ D8 X7 R* P$ f$ @( I
+ A3 N' x$ I8 E4 p& |3 y1 t6 z        作用:使各个网络相互连接
5 _. R; F3 k/ I# x" M8 G' u& J) i& @/ k% |$ T2 D* Y, X% f
        辅助作用:分割传输的数据包9 _& l( j4 H: s/ @* X
! k2 G( j; Z/ r" E& e3 A& ?3 v: T
        相关设备:路由器(也就是常说的Router)
# y% ~) K; ]# u/ s* @3 r# b6 `5 \# r' Q% H) k: @: P

( i; x& K  _9 Z        第4层或者传输层
& ^9 D6 m6 [( K* p. |, g" G+ U9 R) M$ E2 _4 E
        名字: 传输层
  R: X6 Q0 g3 G" d$ C
: J5 Q% }2 M/ K        作用:管理应用程序的连接
7 T, o) S% o. L) ^7 j8 C
* n* H  K( s1 v* y5 h% y+ _+ H        辅助作用:保证连接的有效建立) m& O; E0 i# G" I- J

0 s1 p, S4 c, ^$ e2 Q( S5 M        相关设备:没有
" z' g. R- w8 |6 R
, R9 s  }4 {% d2 p, c6 Y1 b' ]
        第5层或会话层
0 c) }, H4 Y4 p0 n
2 O) `$ Q) G5 t# _: G        我们不在乎!) v. U# T7 {9 A, a2 [- \; r; L

& N2 t5 J, ^- b" ~1 L3 B
) N8 O, X5 M$ u, s7 B; U- o% o        是的,你没有看错:我们不在乎第5层。
" V: _( O* p( O$ @9 p
" T" G. W* x. k: t! u$ t        在第4层以上的,除了第7层,我们都不在乎。当然了,我也有些夸大。但是第5层和第6层不在本贴考虑范围之内。
6 c$ r  W* x. h: M; r; O' d; k8 j' s" s
        原因很简单:OSI七层模型是一个理论模型,今天的互联网使用的实际模型是TCP/IP模型,而后者不使用OSI的第5层和第6层,因此我们无视它们。
7 J  T9 H4 Z* j! ?
$ K, A% s6 w1 g0 e        好,我想你应该理解了。当然了,第7层我们需要考虑。其实正是为了这第7层上的应用程序我们才大费周章,构建这个模型。是的,第7层就是老总,就得伺候着,就是这么任性 →_→
4 }& F9 `, x3 y: a$ Q, t& ?" C% w. s; m( ?

. r+ u7 c( e* e5 f/ J: t' |3 d        第7层或者应用层
' L. v0 m: s' W% `8 ?  ^7 N0 \2 f8 y) Y8 |
        名字: 应用层2 R8 ^9 [& m, `4 ]
0 v! |/ y: e% H: M0 h) Z9 x! |9 \
        作用:没有/ k' C/ p5 n0 A; u3 |0 H
3 [- \, L3 |% m8 M) p
        辅助作用:没有5 G$ a4 N$ ]0 O
% l8 r6 Y+ I; T9 w5 s
        相关设备:代理(也就是常说的Proxy)9 \# ?3 B. O4 M) J2 j" a

$ @. Q4 l* x/ r5 [
6 l* C! \; n, ]& z% w6 m+ a        什么?第七层竟然没有作用!那“伺候”它干嘛?说白了,这一层就是展示我们构建通信架构所要服务的所有应用程序。$ `& x6 U& O" M1 U2 V+ R" R  V, x

8 ?/ B) X# |! l9 w        因此,第七层我们也不多做研究,而是把重心放在提供服务和引导数据传递的第1-4层。其实,还有一种说法是把1-4层合称为“网络层”。因为正是这四层负责引导数据从一台机器传递到另一台机器,以供机器上的属于第7层的应用程序使用。' u: n# b& ~/ \8 M& G* A

7 c. s6 o5 G3 G* M7 _& h; Q
2 J8 k, t: D7 Y" X" f2 }7 S        在深入理解这四层之前,很有必要提一下使用OSI模型的两个原则:
4 I/ B& v& A: i; o. i# V1 Q
; q* m+ P; y9 h( E3 @& U( C
        1. 每一层都是相对独立的3 u* n6 @1 x+ ~' b
        2. 每一层只能和相邻的层通信
" f& R3 m$ F$ k, M- W* t+ M) `
        “每一层都是相对独立的”
0 e2 `/ O  I% n$ c- J
( o5 _) l# g  n  N0 K; r        其所产生的影响是某一层所用的信息不能被另一层使用。例如,对于某些有一定网络知识的读者来说,应该知道IP地址是属于第3层的,就不能被另外的层所使用。
; }( a% V5 G, ?) Z# x3 E3 j7 @1 n
6 }' t3 Y: J/ k5 ^9 _) g# |: v        这样规定的好处是可以方便通信方式的变革。& R6 ~3 C! i9 |5 D/ R

( X4 t, |9 [5 l) d! p8 p        想象一下,今天你使用互联网,虽然你可能并不了解它的原理,但实际上你使用的是第3层的IPv4(Internet Protocol Version 4,第四代互联网协议)这个协议。未来,我们将从IPv4演进到IPv6(第六代互联网协议,相比第四代的32位地址空间,可以达到128位地址空间)。这时,假如我们除了第3层以外,在另一些层中也用到了IPv4,那我们除了要改第3层的协议,我们也要改其他凡是用到IPv4协议的层,就会很麻烦。* t1 ]. [) W2 M3 p
3 y. y; ]" O% Y- Z6 d- y2 o
        保持各层的相对独立性可以使得我们改换一层所关联的协议时,无需更改其他的层。7 j; |# D! ]7 ]- A- [
/ ?" D! e, W; `5 y
        “每一层只能和相邻的层通信”
. i, ~3 n) ~" H2 U) k8 O! \$ l$ D; q! a# }8 Z) j! `' x  x. T" g
        为了理解这个原则,我们必须了解机器是怎么利用OSI模型来通信的。
- ]4 m6 w! W2 C/ ~! ]) G4 _9 G! ?3 V
        想象以下场景:
" U7 s* }5 Y4 b7 ^4 j+ T# I1 Z  @( O; U$ z, r
        你坐在电脑前,打开你的浏览器。你在浏览器的地址栏里输入一个网址,那个网站就出现了。
; x+ l! e3 ]( g; q
1 D7 C; R# {6 Y9 |4 W        虽然你并不知情,但其实你就在使用OSI模型。#357:
0 P: y" d$ A/ Y& w  T- Y+ i1 c0 T/ S% y. V- e- d
        大体来说,位于OSI第7层的应用程序(此处是浏览器),与第1-4层(合称“网络层”)对话,以便这4层把机器上的应用程序所要的信息从远端的机器上(比如google.com的服务器)传输过来。  U% D+ L7 e! {6 f+ N0 j

; L: c$ L; S; U9 I! T! G        在一个传输过程中,我们会跨越OSI模型的各层,从上到下。
$ r: }- q$ Y# c8 ]" q( h- I- i- V  g$ ]' k! Q* j! t
        由此可见,多亏了第2个原则,我们能保证在信息的传输过程中,OSI模型的各层都会被跨越,也就保证每一层的作用都能得到实现。当然了,差不多是这样。因为实际上对于互联网,OSI模型是一个理论模型,第7层其实是跳过5,6层而直接和底下4层通信的。所以是 7 -> 4 -> 3 -> 2 -> 1 。# Q9 b$ M4 j# T  U
( Y  b* Q8 k! `" V; `7 L/ a' Z2 T. p) R
TCP/IP网络精讲 之二 OSI七层模型 10192976.jpg
) R& k. R9 ^( f2 k2 c
        好了,今天的课程就到这里,总结一下需要记住的知识点:- |0 {. \/ d: p  n" b  j7 @; s
$ }3 m1 y) I: O0 w
        OSI七层模型是一个规范,其规定了机器之间如何通信
7 ?9 L; B* m: E  k* ]  L  g) t1 M" j' Y" S- K5 v0 T0 g2 X8 _

2 Y+ \' }" T  u$ W( C  }  i+ l        OSI模型是一个理论模型,互联网实际使用的是TCP/IP模型
; Q& p( ^1 h6 s: a
2 n, z+ w* N) A% S3 u% s3 Z

$ K/ \" s. n& b        OSI模型有7层
. n# }- Y. L% G1 C! |' ^: j' B5 w4 N* D* L- l' K7 v8 y/ \; g+ _/ O: K) `

9 m1 y4 j+ @  ?6 o" Q4 d5 ~" z5 f. l: t        每一层都有一个特定的作用0 A0 t- @3 W, K! A* r- L* W4 q

' \7 {% H: t2 l2 ~/ D

3 G9 v) L) N- i7 q5 V. N        第1-4层合称为“网络层”
  w/ M! a: I; q5 P: k9 r+ J* S9 P7 L# V' i% i: ~
* g6 ^( g( k6 U; I2 l  I/ Z; a
        每一层相对独立5 z3 r4 J9 P, d" P

: W  s7 D& E7 p. c4 [/ q
% U. w- J7 v9 t  y
        每一层只能和相邻的层通信
  y' b& a( G3 s+ }# L, w4 k" {) V+ z& S. b$ V* ~

$ |% z/ R# Q4 Q0 P        当传输数据时,我们从OSI的最上层遍历到最下层,在另一个机器那里,曾是相反的方向,从最下层到最上层。
% G8 V; L6 X2 j  E/ R) U: @( o6 Q8 _

评分

参与人数 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, 2020-9-28 08:19 , Processed in 0.045268 second(s), 21 queries , Redis On.

© 2015-2020 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表