如果聚集负的感情,世界就会陷入负的洪流;反之聚集正的感情,世界就会循着正道而行。 收藏本站
登陆 / 注册 搜索

阅读: 27.3K   回复: 11

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

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

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

主题破百
        今天发现有人回这个贴,觉得这个坑挖得有点大。不过既然挖了,岂有不跳之理。男子汉一言既出,就什么马也难追了。* a* H# V/ _/ W/ k

5 Z+ U6 ~' _( s* h: S9 C( R9 ^! x* e6 T( e5 @+ }! |
        今天我们就来学习: “OSI七层模型  R, s/ w6 c$ u
. z% x3 `( ~" V5 j
        目前全球约有40亿网民,互联网的规模已经是超乎想象般宏大。那么问题来了:
9 M* \0 ^# \; f9 z8 u  R% Q1 e
, Z& e5 ]2 U, ?/ P! y$ w
        我们怎么实现在这么多的机器之间通信呢?8 \: x' K: S1 h5 X# M; _  _
        怎么能够不在这数据的迷宫里失去方向呢?

0 T0 k# U3 {- Z: _3 ?, u1 S        我们一起来学习,以期找到问题的答案。首先我们来理解互联网是怎么创建的,以及使用什么规范来很好地组织这么多信息。
/ W* X! F# x$ M7 h1 ]9 c
5 _" y4 J& j0 Z
#f194:

6 O: j9 X$ H9 M! y; c8 M. A; F* r        设想一下,假如你可以在任何时候通信,和任何人通信,岂不是很棒。这就是互联网的初衷。
" a' W) @2 Q' ?( \/ M/ O; R! M" n0 E$ d: y
        平时,当我们身处一个10人小组,会感到表达自己的观点有点困难。如果是100人,就更困难。假如有1000人,那几乎就听不到你说话了。但是互联网就是要向不可能挑战,要能够做到:在任何时刻,同时和任何人通信。当然了,要达到这个目的,必须要建立一个复杂的通信系统,使得各台机器之间能够相互对话。
2 J( R6 A" e# N2 d7 ^" d1 M- s* q9 n2 ~* F; k* w
        但是这样的一个通信模型如何构建呢?#362:3 x3 R9 q9 {5 f+ ~
2 ]* J- G* [, }6 E# V+ t

/ w1 W2 e9 K" B        我们可以从最熟悉的通信方式开始理解。来盘点一下一般的通信方式吧:
; u( k/ j( T: r( T9 F
% k7 k+ H" s1 k( s0 ^
        说话* E8 D% A8 G" {; ~' U! ^" l
        打电话
4 @8 |1 k# |: J7 T' }+ ~$ h        邮件
* C% F4 c5 _. U7 O        飞鸽传书 →_→
  D. f: N' K; e' l: y        等等

7 V; v" R) N3 }/ b9 {& M* a' e! f        接下来,让我们试着来理解,在这些通信方式中,有哪些基本要素是我们通信活动所必不可少的。
# }$ l( O1 e8 i
1 N( z: U2 H3 g' }, ~& I& d9 |        说话的方式,我们需要:; c% o* e  j" K2 B. u

% |" ^1 X2 p7 c9 C" N+ T$ e
        说话者
6 E% l! u7 B4 T* k/ B        听话者2 E! I, f0 l1 R, i* w
        传声媒介(空气)
6 i* }# g4 G! L( G8 E8 X
        打电话的方式,跟说话是类似的,除了我们还需要一个在说话和电子学之间的中介。实际上,我们要把说话的声音转成电信号,电信号通过电话线等传播介质到达接收者那一端,然后转为声音被听见。在这里有一个信息的封装。
' k$ B9 H$ L/ ^$ }8 s! w7 n: y2 c1 n3 k* l7 s
        我们可以举邮件的例子来看一下这个封装信息的系统,在邮件收发时我们需要:' S4 T4 N3 a6 Q& I9 r

5 x: p1 ?7 R! G
        寄件人; f9 Q7 t& e( V% l4 ?# m
        收件人
+ c2 I# b7 T- Q  V) Y9 t2 U4 ]/ H        传播介质(信)
/ L4 f0 Z& H: ], f9 P/ Q        容器(信封)9 q6 i. z$ e% ^' u1 |5 j) i
        中介(邮局)
8 a1 g0 ^# g* a6 R

0 Q3 C  d. ?* a9 N3 e; i% s        是不是慢慢能理解我们通信需要什么条件了?
7 h' ^" ^! }) z
0 ~# W$ c/ A- S3 Q' f1 n8 G) V* |. v) B# R- W# ~
        问题又来了:
. V- M7 h3 B5 F) J" Y
$ ^% t+ E1 Z3 r6 Y% t5 \# D0 k
        我们对电脑也能这样应用吗?9 G  ^" x3 n1 ?
        怎么才能让大家可以同时发出讯息呢?
# K/ g& m; N/ ]        我们能够即时和地球另一端的某人通信吗?  
/ T4 ?2 W4 W1 B5 \% }/ \$ w
        接下来我们就看一下网络的先驱者们如何把人类通信的原理“应用”到电脑的通信中。
* M. {/ I: N( d0 G/ R
" H8 |( C$ d, V0 f6 \' J% g        他们把所有研究的成果重组,创立了一个标准,所有连到互联网的人都要遵守,这个标准就是:OSI七层模型。  
' ^: N- K) @: |! H- s( [
6 ^$ u, U; i7 Q0 t- G( t! ?        OSI七层模型,听上去是不是很帅?这个标准诞生在1984年,只比我早了n年出生# s0 Q( t; @) k- \; C# E8 M9 N* x
4 R- L! h$ }& G3 l& H, C
5 U; J+ y4 B6 Y9 q/ i1 P- r$ f
        聪明的读者也许注意到了,这个标准比互联网的出现晚了很久。
3 o  t! J6 K+ T: T6 W" [# m3 V! K' i4 O9 {: I" M& G# C
        原因很简单:OSI七层模型是在人们有了不少机器之间通信的经验之后才能够诞生的。因此这个标准不仅能够适用于现有的通信,也适用于将来的通信及其可能的演进。它的目的是使通信标准化,以保证机器最大化的演进潜力和协同工作能力。& Y7 D" @* u0 H( b
* v& g! j0 z  [
        听起来很不错,但是到底OSI七层模型是什么啊?: }6 S; n$ a0 Z# k

% |: D8 ]) c$ J2 Q- x0 o1 l        OSI七层模型是一个标准,规定了机器(主要是电脑)之间如何通信。因此假如你想要让你的洗碗机和洗衣机通信的话,就需要遵从OSI模型,或者至少从OSI模型获得启发。这意味着需要遵从分层的通信方式。
+ ?  m1 U8 ~( B6 c# N. R  D, g5 A+ E  B+ H

, F, e3 R, ^6 b/ m+ `        这里的层又是什么呢?6 |9 ?/ d( m7 x: U

! W! H6 w6 y, _3 W3 R: i- B- P# P, K( P% Z5 L/ W4 H
        OSI模型是一个分层的模型,就是说它分为几个部分,每一部分称为一层,每一层扮演固定的角色,就像下图所看到的:
# h  c; B: p- K' N
. K5 h1 |$ B: `6 g# q. N- a$ Y2 ^
TCP/IP网络精讲 之二 OSI七层模型 10192975.jpg

& b9 m8 m# e2 j1 T3 o$ q        上图中,我们可以看到OSI有7层,每一层名字都不一样。
1 [9 W6 x+ p, R: O* z( x: l1 N3 B4 k% O" b! f/ G6 [! f
, M7 H- U& Q6 `8 k
        为什么是7层,不是14层或者250层?#358:
) P$ X$ y* {; @2 |- S0 Q. I8 R7 I9 r4 O. Z
# m  c3 N- S7 V$ Z( k/ S) x
        还记得之前提到的吗?我们知道要通信,需要有固定数目的组分,比如 发送者,接收者,语言,等等。网络的先驱者们设计了用于构建通信系统的主要元素,他们发现数目定为7最合适。因此OSI的每一层都有特定的分工,这7层合起来就可以使一台机器和另一台通信。
/ l+ _& N( D8 Y6 F" S5 U  ^1 P! x! F) |$ K9 U" X
* Y  {% o" {) l) W% M
        下面我们来看一下这7层各自的细节。
7 A* o0 L- n5 W
' Z, s6 D- }9 j
! O8 z6 T2 J; P% @        第1层或者物理层
1 ?6 w! J0 m3 n, f# m% A) Q( [& c" Z5 q4 m
        名字: 物理层" J! M2 K! J" z) J7 `$ k
8 U! p* J& @7 `# Q
        作用:为通信提供传播媒介" k% [" g$ Z( ~

3 z4 J! |/ c% e4 ?) r- G        辅助作用:没有
/ E  ^1 _4 C) W! \) Z/ u4 N0 z# T0 w6 ]5 v" [. Z
        相关设备:集线器(也就是常说的Hub)1 C4 h( g7 a" `( Q% Y  ]6 X# ?

: f6 S) H) u' ~1 c; f- H. v0 u# _, d) W" O- L0 ~3 T- W% {
        第2层或者数据链路层6 i1 [0 O; |) m, U0 L

$ i% @# K% j. H' W  m7 y3 I        名字: 数据链路层+ b4 K' G, F* o7 T0 Y

' \; }' A5 ~' y  P4 l1 ^- @        作用:使局域网中的机器互相连接
7 ]" `% J" T. j/ J
% |+ N9 W6 s, o% d2 W        辅助作用:侦测传输错误3 }) u4 t. i/ y& P( p$ B

( C" X8 v+ `5 {: B/ e( o" N2 D- k/ q        相关设备:交换机(也就是常说的Switch)/ M& I0 c' M+ H5 w4 \
+ |) V( m: t) c/ \; v3 U

2 F0 h2 g; E0 X5 g+ P        第3层或者网络层
. q; s3 @: j5 ?+ }* @7 x" a0 y. ]9 D; `0 z0 Z: k5 g/ K0 M
        名字: 网络层/ j5 T7 W6 k) I. |; m

  r" W: I% j* G! b9 c/ ]        作用:使各个网络相互连接) P" C0 B4 n9 G2 ]. @
8 V$ }+ {4 \2 S9 T+ z
        辅助作用:分割传输的数据包: S. G& u2 A" t, m
* f1 }4 O. j- a+ ~+ |% c
        相关设备:路由器(也就是常说的Router)
1 y( D( w9 m, {- l0 h, E0 j' S( t! H( w. y6 F2 s. L# c
9 |4 y; Z, I# B
        第4层或者传输层
& Z; o, a. A" S4 O
- H2 ^1 |: H: x6 u+ v/ a5 j' m        名字: 传输层
8 i0 T3 }+ }) t* A9 m# _3 i; _4 m3 l8 N6 A
        作用:管理应用程序的连接* ?) w& Q* t( J. Q
9 }" @1 i2 a" D1 V0 D- b( z
        辅助作用:保证连接的有效建立) J5 J- l  r+ u' V: `, ?

% ^) o+ e1 K+ @+ m* \2 l: T" E2 D' T        相关设备:没有8 j( y% B7 f; x% L* Q  P& ]

6 Y2 D/ f7 K- a' y5 @; i, H
1 N5 K" v1 R+ \9 w        第5层或会话层
) M. S. I1 j: o; G
; S2 }- ]. b5 R! Z: _. E        我们不在乎!
4 l5 `* d+ U6 V$ h
4 a: G0 H2 h1 W" L( F5 `! [9 o& ]7 x9 e
        是的,你没有看错:我们不在乎第5层。. T+ `% B% X& Y, k& _
# n& }9 ?2 n! S) }5 k
        在第4层以上的,除了第7层,我们都不在乎。当然了,我也有些夸大。但是第5层和第6层不在本贴考虑范围之内。* u1 \1 C: U5 W  P8 j

5 f9 a, s0 t6 n( B3 {9 p+ K        原因很简单:OSI七层模型是一个理论模型,今天的互联网使用的实际模型是TCP/IP模型,而后者不使用OSI的第5层和第6层,因此我们无视它们。2 K. E. B6 u& f; N% w$ W6 }/ T

0 `; G7 Z' y8 N$ _' O5 ~        好,我想你应该理解了。当然了,第7层我们需要考虑。其实正是为了这第7层上的应用程序我们才大费周章,构建这个模型。是的,第7层就是老总,就得伺候着,就是这么任性 →_→/ u. c6 R' @% y5 f; I7 t# p

8 u. l% K5 a1 g; v& K" ?$ T0 E# C* n' z: j+ l; ~
        第7层或者应用层
; x3 j; Z9 ]4 X& Z4 @. w
. ^1 Q' D# ?" g7 a  J8 M        名字: 应用层
  `; p. u! R# a3 `' W* M) M
  s0 R: e  P) Z+ a# F( [- I- d        作用:没有& V: V) D7 y" O# S1 d4 u
2 [; l2 }0 ~$ l( e: ^- M5 `& r) w
        辅助作用:没有
) X3 p9 ~( g8 \8 ~0 o
' t) d! R# z1 z) T- a8 a3 Y        相关设备:代理(也就是常说的Proxy)
  O" d+ R9 X. u, v2 _/ h9 f8 `( K1 h! n) x7 i

' j  g/ y1 Z# V        什么?第七层竟然没有作用!那“伺候”它干嘛?说白了,这一层就是展示我们构建通信架构所要服务的所有应用程序。
9 }  I: d7 ]( |9 e- X0 n, Y& @' H$ p) Z& S
        因此,第七层我们也不多做研究,而是把重心放在提供服务和引导数据传递的第1-4层。其实,还有一种说法是把1-4层合称为“网络层”。因为正是这四层负责引导数据从一台机器传递到另一台机器,以供机器上的属于第7层的应用程序使用。8 `' r8 {/ y2 N0 T0 \

* @0 z) _6 }5 y; Y* E) f8 N& i7 V2 X- s; t/ R& z* N
        在深入理解这四层之前,很有必要提一下使用OSI模型的两个原则:
; z4 i4 L) l0 w5 }' f2 P. a7 L' h
  v4 j4 k4 S$ Z/ ]+ K& r
        1. 每一层都是相对独立的9 @3 k8 R  J/ W
        2. 每一层只能和相邻的层通信
9 a+ }" }( R4 w3 U8 g; N/ A
        “每一层都是相对独立的”  i' H' x1 D- z. d$ Q" V, s
) X; f* K4 _. R' v$ Y% D$ B
        其所产生的影响是某一层所用的信息不能被另一层使用。例如,对于某些有一定网络知识的读者来说,应该知道IP地址是属于第3层的,就不能被另外的层所使用。
/ k( t* n& z1 m8 K5 v9 {; \; m1 Z/ A# N+ T+ ~
        这样规定的好处是可以方便通信方式的变革。5 @4 E# {9 |) n% D  n

3 i, ^7 s' J' z' l( x, |) v        想象一下,今天你使用互联网,虽然你可能并不了解它的原理,但实际上你使用的是第3层的IPv4(Internet Protocol Version 4,第四代互联网协议)这个协议。未来,我们将从IPv4演进到IPv6(第六代互联网协议,相比第四代的32位地址空间,可以达到128位地址空间)。这时,假如我们除了第3层以外,在另一些层中也用到了IPv4,那我们除了要改第3层的协议,我们也要改其他凡是用到IPv4协议的层,就会很麻烦。( v/ x) W" P: q2 D6 i
% J( K+ L9 A. w
        保持各层的相对独立性可以使得我们改换一层所关联的协议时,无需更改其他的层。" A8 D% m) X* N' x& R7 r: Z9 ~

" c( `( ?% D  s( f: `        “每一层只能和相邻的层通信”
" ?# v) p0 s6 C& j0 F* e' q
& b6 E) F" D; }8 a        为了理解这个原则,我们必须了解机器是怎么利用OSI模型来通信的。' d  V0 ~& w+ I
6 M) b0 [& [% J6 ^5 @0 T
        想象以下场景:
- A( ?6 b$ J/ a, `8 {) W5 f; K; d% m& m  R" q& P) G4 `6 q! f
        你坐在电脑前,打开你的浏览器。你在浏览器的地址栏里输入一个网址,那个网站就出现了。
% G$ T7 O- G: F
. o& b' P* O* x, u        虽然你并不知情,但其实你就在使用OSI模型。#357:. J( y! m/ T; D# H

  n3 a! |+ U& ~, I; s; i$ \( h        大体来说,位于OSI第7层的应用程序(此处是浏览器),与第1-4层(合称“网络层”)对话,以便这4层把机器上的应用程序所要的信息从远端的机器上(比如google.com的服务器)传输过来。/ r; c* v5 s6 A( |) c# \/ F9 z3 T

( I  k7 l" k. y        在一个传输过程中,我们会跨越OSI模型的各层,从上到下。+ ?# b/ y0 t, o

5 w  z9 p/ s9 X0 |! t        由此可见,多亏了第2个原则,我们能保证在信息的传输过程中,OSI模型的各层都会被跨越,也就保证每一层的作用都能得到实现。当然了,差不多是这样。因为实际上对于互联网,OSI模型是一个理论模型,第7层其实是跳过5,6层而直接和底下4层通信的。所以是 7 -> 4 -> 3 -> 2 -> 1 。
2 i  F9 S8 h7 m4 q' u) j, c. I2 m7 c* K4 j! m
TCP/IP网络精讲 之二 OSI七层模型 10192976.jpg
) f: i* @0 W3 i% T0 z1 D2 O5 o5 `
        好了,今天的课程就到这里,总结一下需要记住的知识点:
. Y& J% [* x+ K3 v+ v- p! s
4 _; f8 K# S& p! R# ?3 }5 [" ~7 r        OSI七层模型是一个规范,其规定了机器之间如何通信2 k" C1 _& ?, ]$ R, n

% f* X" [7 \7 j+ i  F' ~' N
- N* r, O5 Q, Q7 U' _
        OSI模型是一个理论模型,互联网实际使用的是TCP/IP模型
- P' R9 U# Q& _6 M8 Q
5 `- |: v1 e( a; O* l
% R" q5 e/ C# {) q7 C1 v6 i
        OSI模型有7层
$ o/ a% L' P+ {: \+ E& s& e
4 N3 n4 O% r6 O5 W/ b
5 ?* P: p/ x5 O- f$ g
        每一层都有一个特定的作用2 |9 i( e& L  Z7 H; i
( s5 _  R# m- L  |9 i, C  p
6 _1 c' l; j* i
        第1-4层合称为“网络层”# P6 z' \, N- N

' }% o& H# t, T6 \+ }+ Z

! P) d: q7 }5 I9 Y! f* u        每一层相对独立
8 B, F5 Y$ ]5 ^2 o: b* O5 @  U! M4 L$ B" _9 X# u% `; F$ ~

% D; n1 j0 H( x        每一层只能和相邻的层通信
1 r7 d) l! l/ F# y- f% r6 c* H- {! S8 y) W- T" Z! r( O* o
( M+ @2 G- P. [$ A6 f
        当传输数据时,我们从OSI的最上层遍历到最下层,在另一个机器那里,曾是相反的方向,从最下层到最上层。$ z, v& n" F, M- F, D9 R

+ C- F9 M& Q# a; k4 p& P
上一篇
下一篇

评分

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

查看全部评分


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

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

在这里明白了要多学基础 正好昨天在啃tcipip协议的书似懂非懂 希望这帖能继续下去 来自: iPhone客户端
胡雅亦林 「初入古黑」 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 来自手机 |显示全部楼层

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

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

本版积分规则

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

GMT+8, 2021-9-18 22:23 , Processed in 0.034959 second(s), 29 queries , Redis On.

© 2015-2021 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表