前面我们已经和大家讲完了计算机网络里面的一些常见设备,大家有没有想过,这些设备之间是如何互相沟通的呢?它们又是怎样能够理解彼此的呢?别急,我慢慢和大家说。
网络互连模型
网络诞生之初,通常只有同一家厂商生产的计算机才能互相通信,此时只能采用 DECnet 方案或者是 IBM 的方案,但是这两个方案之间并不互通,也就是说,在那个年代,如果我们的网络已经用了 DECnet 的方案,那么整个网络就只能用 DECnet 的方案,新增设备也只能用这个方案。直到上个世纪七十年代末,国际标准化组织(ISO)开发了开放式系统互联模型,也就是 OSI 参考模型,才让不同厂商之间的设备能够通信。OSI 参考模型是理想的模型,不过现实中中还是 TCP/IP 模型使用更多。但这篇文章依旧会以 OSI 参考模型的讲述为主,大家理解其中一个模型,就能理解其他的模型了。
参考模型的优点
OSI 模型旨在以协议的形式帮助厂商生产可互相操作的网络设备和软件,让不同厂商的网络能够协同工作,也让运行不同操作系统的主机之间可以互相通信。比如说咱们办公室,有的同事电脑是 MacOS 系统,有的是 Windows 系统,还有各种手机,运行 Linux 系统的服务器,只要是网络可达,完全可以正常通信。
比如我们公司会有很多部门,并有一套执行标准,规定了每个部门的任务,比如说谁去面对客户,谁来实现客户需求,谁负责员工保障等。每个部门就相当于 OSI 参考模型中的层,每层的工作虽然不一样,但是都是为了同样的战略目标——通信。而且每个部门无法独立存在,必须和其他部门协同工作才可以完成任务。这套执行标准就是我们的 OSI 参考模型。这个模型并不是一个物理模型,而是一个逻辑模型,并不是说我们从物理上给分了七层,而是和我们公司的执行标准一样,是一组指导原则,帮助我们完成工作。
使用这样的分层模型有很多优点:每一层可以各司其职,这样有助于组件开发;并且标准化网络组件,就不会出现我们前面所说的各个厂商之间完全无法通信的情况;而且可以避免修改其中一层而影响其他层的状况。
OSI 七层模型
OSI 模型是主要的网络架构模型,分为七层:
从上到下依次为,应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。
- 应用层就是用户和计算机交流的场所,比如说文件传输和电子邮件等应用,都是应用层的工作。仅当马上需要访问网络时,这一层才会发挥作用,如果是访问本机上已保存的文件,是不需要用到应用层的。
这么说大家会不会觉得不太好理解呢?简单来说,越是上层就越靠近用户,越是底层就越接近硬件。比如说应用层就是直接和用户接触的,物理层的比特流就可以直接通过硬件传输了。OSI 参考模型是在协议前设计的,具有通用性,且概念清晰,但是过于复杂了,在 TCP/IP 网络中有更加简洁的模型。
TCP/IP 参考模型
TCP/IP 模型和 OSI 参考模型一样,都采用的是层次结构的方式,对应关系如下图,
相对于 OSI 来说是不是更简单一点呢?但是 TCP/IP 模型是有了协议再定义的模型,并不适用于非 TCP/IP 网络。
消息要经历什么才能送到你面前呢
以手机发消息为例,
- 首先要打开一个沟通软件,当我们执行打开软件这个操作的时候,就是由应用层来完成和我们的交互。
消息的发送和接受只是一瞬间,可是在这个瞬间里面它们经历过揉碎重组,还被加上了各种各样的“帽子”,不能被正确接收的消息还会被丢掉,所以说再收到消息的时候,多少看一眼吧,毕竟它历经千辛万苦才被送到你面前。
我们的数据传输原理基础部分已经结束了,大家是不是又产生了很多新的疑问呢?比如说为什么有 MAC 地址又有 IP 地址,到底以哪个为准呢?有地址是不是也要有地图才会找到目的地呢?下一篇文章会为大家讲述在 OSI 参考模型的第二层,数据是怎么找到路的。