手记

互联网的创立,OSI七层模型

2019 年全球有近 44 亿网民,大约每 2 人里就有一人使用互联网,互联网的规模已经是超乎想象般宏大。

你也许会问:

  • 我们怎么实现在这么多的机器之间通信呢 ?
  • 怎么才能不在这“数据的迷宫”里失去方向呢 ?

不用担心,我们一起来学习,以期待找到问题的答案。

首先我们来理解互联网是怎么创建的,以及使用什么规范来很好地组织这么多信息。

2. 如何通信

设想一下,假如你可以在任何时候和任何人通信,岂不是很棒 ?是的,这就是互联网的初衷。

平时,当我们身处一个 10 人小组,会感到表达自己的观点有些困难。如果是 100 人,就更困难。假如有 1000 人,那几乎就听不到你说话了。

但是互联网就是要向不可能挑战,要能够做到:在任何时刻,同时和任何人通信。

当然了,要达到这个目的,必须要建立一个复杂的通信系统,使得各台机器之间能够相互对话。

但是这样的一个通信模型如何构建呢?

我们可以从最熟悉的通信方式开始理解。

来盘点一下一般的通信方式吧:

  • 说话
  • 打电话
  • 邮件
  • 手机(通话、短信、微信等等)
  • 飞鸽传书( →_→ )
  • 等等

接下来,让我们试着来理解,在这些通信方式中,有哪些基本要素是我们通信活动所必不可少的。

在说话这种通信方式里,我们需要:

  • 说话者
  • 听话者
  • 传声媒介(空气)

打电话的方式,跟说话是类似的,但我们还需要一个在说话和电子学之间的中介。

实际上,我们要把说话的声音转成电信号,电信号通过电话线等传播介质到达接收者那一端,然后转为声音被听见。在这里有一个信息的封装。

我们可以举邮件的例子来看一下这个封装信息的系统,在邮件收发时我们需要:

  • 寄件人
  • 收件人
  • 传播介质(信)
  • 容器(信封)
  • 中介(邮局)

是不是慢慢能理解我们通信需要什么条件了?

那么问题又来了:

  • 我们对电脑也能这样应用吗?
  • 怎么才能让大家可以同时发出讯息呢?
  • 我们能够即时和地球另一端的某人通信吗?

接下来我们就看一下网络的先驱者们如何把人类通信的原理“应用”到电脑的通信中。

他们把所有研究的成果重组,创立了一个标准,所有连到互联网的人都要遵守,这个标准就是:OSI 七层模型

3. OSI 七层模型

OSI 七层模型,听上去是不是很帅?这个标准诞生在 1984 年,只比我早了 3 年出生(不小心暴露了自己的年龄…)。

聪明如你也许已经注意到了:这个标准比互联网的出现晚了很久。

原因很简单:
OSI 七层模型是在人们有了不少机器之间通信的经验之后才能够诞生的。因此这个标准不仅能够适用于现有的通信,也适用于将来的通信及其可能的演进。它的目的是使通信标准化,以保证机器最大化的演进潜力和协同工作能力。

听起来很不错,但是到底 OSI 七层模型是什么啊?

OSI 七层模型是一个标准,规定了机器(主要是电脑)之间如何通信。因此假如你想要让你的洗碗机和洗衣机通信的话,就需要遵从 OSI 模型,或者至少从 OSI 模型获得启发。这意味着需要遵从分层的通信方式。

这里的层(“层”的英语是 layer)又是什么呢?

OSI 模型是一个分层的模型,就是说它分为几个部分,每一部分称为一层,每一层扮演固定的角色,就如下图所示:

上图中,我们可以看到 OSI 有 7 层,每一层名字都不一样。从下到上分别是:

  1. Physical layer(物理层)
  2. Data Link layer(数据链路层)
  3. Network layer(网络层)
  4. Transport layer(传输层)
  5. Session layer(会话层)
  6. Presentation layer(表示层)
  7. Application Layer(应用层)

暂时对这些名称有点懵是正常的。但请放心,我们慢慢学习。

关于如何巧记这 7 层,有一个小口诀:

All People Seem To Need Data Processing
翻译成英语是“似乎所有人都需要数据处理”。这一句话由七个英语单词组成,每一个的首字母正好是按第 7 层到第 1 层的首字母的顺序。

当然,除了这句话,也有人想出其它有意思的小口诀来帮助记忆 OSI七层模型。刚才那句话是从第 7 层到 第 1 层的顺序,有人想出下面的这句话,是从第 1 层到第 7 层的:

Please Do Not Throw Sausage Pizza Away
翻译成英语是“请不要扔掉香肠比萨”。这一句话由七个英语单词组成,每一个的首字母正好是按第 1 层到第 7 层的首字母的顺序。

好吧,你也可以自己想出喜欢的记忆方式。我个人还是比较喜欢第一个句子,毕竟提到了 data processing(数据处理),跟我们的 OSI 模型还比较贴合。

看到这里你也许又会发问:“为什么 OSI 模型是 7 层,不是 17 层或者 250 层?”

还记得之前提到的吗?
我们知道:如果要通信,需要有固定数目的组分,比如 发送者,接收者,语言等等。
网络的先驱者们设计了用于构建通信系统的主要元素,他们发现数目定为 7 最合适(“好吧,你厉害你说什么都对…”)。OSI 的每一层都有特定的分工,这 7 层合起来就可以使一台机器和另一台通信。

下面我们来看一下这 7 层各自的细节:

第 1 层或者物理层(Physical layer):

  • 名字:物理层
  • 作用:为通信提供传播媒介
  • 辅助作用:没有
  • 相关设备:集线器(也就是常说的 Hub)

第 2 层或者数据链路层(Data Link layer):

  • 名字:数据链路层
  • 作用:使局域网中的机器互相连接
  • 辅助作用:侦测传输错误
  • 相关设备:交换机(也就是常说的 Switch)

第 3 层或者网络层(Network layer):

  • 名字:网络层
  • 作用:使各个网络相互连接
  • 辅助作用:分割传输的数据包
  • 相关设备:路由器(也就是常说的 Router)

第 4 层或者传输层(Transport layer):

  • 名字:传输层
  • 作用:管理应用程序的连接
  • 辅助作用:保证连接的有效建立
  • 相关设备:没有

第 5 层或会话层(Session layer):

  • 我们不在乎!

是的,你没有看错:我们不在乎第 5 层。

在第 4 层以上的,除了第 7 层,我们都不在乎。当然了,我也有些夸大。但是第 5 层和第 6 层不在本课程考虑范围之内。

原因很简单:
OSI 七层模型是一个理论模型,今天的互联网使用的实际模型是 TCP/IP 模型,而后者不使用 OSI 的第 5 层和第 6 层,因此我们无视它们。

好,我想你应该理解了。当然了,第 7 层我们需要考虑。其实正是为了这第 7 层上的应用程序我们才大费周章,构建这个模型。

是的,第 7 层就是“老大”,是“终极 Boss”,就得伺候着,就是这么任性…

第 7 层或者应用层(Application layer):

  • 名字:应用层
  • 作用:没有
  • 辅助作用:没有
  • 相关设备:代理(也就是常说的 Proxy)

什么?第 7 层竟然没有作用!那“伺候”它干嘛?说白了,这一层就是展示我们构建通信架构所要服务的所有应用程序。

因此,我们会把重心放在提供服务和引导数据传递的第 1 - 4 层,当然第 7 层也会花时间去讲。其实,还有一种说法是把 1 - 4 层合称为“网络层”。因为正是这 4 层负责引导数据从一台机器传递到另一台机器,以供机器上的属于第 7 层的应用程序使用。

在深入理解这 4 层之前,很有必要提一下使用 OSI 模型的两个原则:

  1. 每一层都是相对独立的;
  2. 每一层只能和相邻的层通信。

1. 每一层都是相对独立的

其所产生的影响是某一层所用的信息不能被另一层使用。例如,对于某些有一定网络知识的读者来说,应该知道 IP 地址是属于第 3 层的,就不能被另外的层所使用。

这样规定的好处是可以方便通信方式的变革。

想象一下,今天你使用互联网,虽然你可能并不了解它的原理,但实际上你使用的是第 3 层的 IPv4(Internet Protocol Version 4,互联网协议第四版)这个协议。未来,我们将从 IPv4 演进到 IPv6(互联网协议第六版。相比第四版的 32 位地址空间,可以达到 128 位地址空间)。这时,假如我们除了第 3 层以外,在另一些层中也用到了 IPv4,那我们除了要改第 3 层的协议,我们也要改其它凡是用到 IPv4 协议的层,就会很麻烦。

保持各层的相对独立性可以使得我们改换一层所关联的协议时,无需更改其它的层。

2. 每一层只能和相邻的层通信

为了理解这个原则,我们必须了解机器是怎么利用 OSI 模型来通信的。

想象以下场景:

你坐在电脑前,打开你的浏览器。你在浏览器的地址栏里输入一个网址,按下回车键,那个网站就出现了。

虽然你并不知情,但其实你就在使用 OSI 模型。

大体来说,位于 OSI 第 7 层的应用程序(此处是浏览器),与第 1 - 4 层(合称“网络层”)对话,以便这 4 层把机器上的应用程序所要的信息从远端的机器上(比如 google.com 的服务器)传输过来。

在一个传输过程中,我们会跨越 OSI 模型的各层,从上到下:

由此可见,多亏了第 2 个原则,我们能保证在信息的传输过程中,OSI 模型的各层都会被跨越,也就保证每一层的作用都能得到实现。当然了,差不多是这样。因为实际上对于互联网,OSI 模型是一个理论模型,第 7 层其实是跳过 5、6 层而直接和底下 4 层通信的。所以是 7 -> 4 -> 3 -> 2 -> 1

4. 总结

  1. OSI 七层模型是一个规范,其规定了机器之间如何通信;

  2. OSI 模型是一个理论模型,互联网实际使用的是 TCP/IP 模型;

  3. OSI 模型有 7 层;

  4. 每一层都有一个特定的作用;

  5. 第 1 - 4 层合称为“网络层”;

  6. 每一层相对独立;

  7. 每一层只能和相邻的层通信;

  8. 当传输数据时,我们从 OSI 的最上层遍历到最下层;在另一个机器那里,则是相反的方向,从最下层到最上层。

0人推荐
随时随地看视频
慕课网APP