OSI参考模型

1.1 OSI参考模型

OSI(Open System Interconnection,开放式系统互联),由ISO(International Organization for Standardization,国际标准化组织)收录在ISO 7489标准中并于1984年发布。OSI参考模型各层的功能见表1.1,读者可以通过"应表会,传网数物"来记忆这七层的位置。

表1.1 OSI参考模型各层的功能

|-----|-------|------------------------------------------------------|
| 层编号 | 层 名 称 | 功 能 |
| 7 | 应用层 | OSI参考模型中最靠近用户的一层,为应用程序提供网络服务 |
| 6 | 表示层 | 提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别 |
| 5 | 会话层 | 负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成 |
| 4 | 传输层 | 提供面向连接或非面向连接的数据传递以及进行重传前的差错检测 |
| 3 | 网络层 | 定义逻辑地址,供路由器确定路径,负责将数据从源网络传输到目的网络 |
| 2 | 数据链路层 | 将比特组合成字节,再将字节组合成帧,使用数据链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测 |
| 1 | 物理层 | 在设备之间传输比特流,规定了电平、速度和电缆针脚等物理特性 |

1.1.1 网络参考模型的意义

在OSI参考模型没有出现之前,我们的网络存在如下问题:

  • 网络设备是一个整体。例如,我们买了一台电脑,如果它的CPU坏掉了,我们需要更换整台电脑,因为它在设计时就是一个整体。
  • 各个厂商之间的设备不兼容。例如,一家公司买了一台思科的交换机,然后又买了一台华为的交换机,思科和华为的交换机是不能进行通信的。
  • 不利于开发和排错。由于没有统一的标准,所以开发和排错的难度相当大。

自从ISO推出了OSI参考模型,以上问题都得到了解决。如今,我们的网络具有如下优势:

  • 将网络进行分层,不再是一个整体。例如,我们买了一台电脑,如果它的CPU坏掉了,只需换掉CPU即可,不用再更换整台设备。
  • 各个厂商之间的设备相互兼容。例如,一家公司买了一台思科的交换机,它也可以再买一台华为的交换机,因为思科和华为的交换机可以进行通信了。
  • 有利于开发和排错。OSI参考模型将网络分成了七层,降低了网络的复杂度,更有利于开发和排错。

1.1.2 OSI参考模型各层的功能

1. 应用层

应用层是人类和计算机相互沟通的桥梁,计算机只能识别二进制数据,如010101,而人类能识别声音、图形、文字。应用层就相当于一个翻译,它将人类使用的语言与计算机能够识别的语言进行互译,让计算机和人类可以相互通信。常见的应用层协议见表1.2。

表1.2 常见的应用层协议

|-------|-------------------------------------|----------|
| 应用层协议 | 英文名 | 中 文 名 |
| FTP | File Transfer Protocol | 文件传输协议 |
| TFTP | Trivial File Transfer Protocol | 简单文件传输协议 |
| SNMP | Simple Network Management Protocol | 简单网络管理协议 |
| HTTP | Hyper Text Transfer Protocol | 超文本传输协议 |
| SMTP | Simple Mail Transfer Protocol | 简单邮件传输协议 |
| DNS | Domain Name System | 域名系统 |
| DHCP | Dynamic Host Configuration Protocol | 动态主机配置协议 |

2. 表示层

表示层具有如下作用:

  • 定义数据格式。如.jpg代表图像文件,.mp3代表音频文件等。
  • 加密解密。如一串数字123456,当加密算法为向后移一位时,加密后的数字为234567;当解密算法为向前移一位时,解密后的数字为123456。
  • 压缩解压缩。如常用的压缩软件WinRAR。
3. 会话层

会话层负责在表示层之间建立、管理和终止会话。例如,通过浏览器访问百度,在百度中搜索两个人名,它会自动分为两个页面,然后再关闭浏览器,在这个过程中会话层要与百度的服务器建立连接、管理连接,最后再断开连接。

4. 传输层

传输层将数据分段并重组为数据流(data stream)。TCP、UDP都工作在传输层,当采用 TCP/IP协议时,程序开发者可以在这两者之间作出选择。传输层负责为实现上层应用程序的多路复用、建立会话连接和断开虚电路提供机制。通过提供透明的数据传输,它也对高层隐藏了所有与网络有关的细节信息。

5. 网络层

网络层的主要功能是通过逻辑寻址,跟踪设备在网络中的位置并依靠路径选择算法确定节点间的传递路径;使数据分组从源端选择一条最佳路径传递到目的端;寻找最佳路径的同时还要解决网际互联的问题。工作在网络层的协议有很多,如IP、IPX、CLNP和Appletalk等。目前网络层的通信协议是IP协议;IP协议有两个版本,分别是IPv4和IPv6。

6. 数据链路层

数据链路层主要对来自物理层的未经加工的原始位流进行处理,通过校验、确认和重发等方式将原始的不可靠的物理连接改为无差错的数据链路。

7. 物理层

物理层定义了通信网络之间物理链路的电气或机械特性,以及激活、维护和关闭这条链路的各项操作。物理层的特征参数包括电压、数据传输率、最大传输距离、物理连接媒体等。

在网络传输过程中,通常使用的物理层传输介质如下:

  • 有线介质。如电话线、双绞线、同轴电缆、光导纤维。
  • 无线介质。如卫星、微波、IR、RF。

1.1.3 PDU

PDU(Protocol Data Unit,协议数据单元)就是每一层的通信数据,我们用不同的术语来指明所提到的层级,各层PDU的名称见表1.3。

表1.3 各层PDU的名称

|---------|---------|--------|
| OSI参考模型 | PDU英文名 | PDU中文名 |
| 应用层 | data | 数据 |
| 表示层 | data | 数据 |
| 会话层 | data | 数据 |
| 传输层 | segment | 数据段 |
| 网络层 | packet | 数据包 |
| 数据链路层 | frame | 帧 |
| 物理层 | bit | 比特 |

1.1.4 封装与解封装

数据发送者在发送数据时就好像给快递打包一样,将数据从上层向下层进行数据封装,每经过一层就封装一个包头,到达数据链路层后,不仅要封装一个包头,还要追加一个FCS的尾部,目的是检测数据的完整性。OSI参考模型的数据封装过程如图1.1所示。

图1.1 数据封装过程

接收方接收到数据后,首先要对数据帧头进行校验,以查看数据帧在传递过程中是否失去完整性,若检验结果不完整,则立即丢弃该数据帧;若校验数据帧无破损,则对数据进行解封装,解封装的顺序由下层向上层进行。OSI参考模型的数据解封装过程如图1.2所示。

图1.2 数据解封装过程

1.1.5 OSI参考模型与TCP/IP模型对比

因为OSI参考模型的协议栈比较复杂,且TCP和IP两大协议在业界被广泛使用,所以TCP/IP模型成了互联网的主流参考模型。TCP/IP模型在结构上与OSI参考模型类似,采用分层架构,同时层与层之间联系紧密。TCP/IP标准模型将OSI参考模型中的数据链路层和物理层合并为网络接入层,这种划分方式其实是有悖于现实协议制定规则的,故融合了TCP/IP标准模型和OSI参考模型的TCP/IP对等模型被提了出来,本书后面的讲解也都将基于这种模型。它们之间的关系如图1.3所示。

图1.3 各种参考模型之间的关系

相关推荐
道长没有道观9 分钟前
ubuntu学习day2
服务器·学习·ubuntu
庸子22 分钟前
Active Directory域服务管理与高级应用技术白皮书
运维·服务器·网络·windows·ad
开发者工具分享1 小时前
项目后期发现重大漏洞,如何紧急修复
网络·安全·web安全
搬码临时工1 小时前
路由器端口映射的意思、使用场景、及内网ip让公网访问常见问题和解决方法
运维·服务器·网络·物联网·tcp/ip·计算机网络·智能路由器
小徐Chao努力1 小时前
【计网】SSL/TLS核心原理
网络·网络协议·ssl
maomi_95263 小时前
数据库学习通期末复习二
服务器·数据库
努力努力再努力wz3 小时前
【Linux实践系列】:用c/c++制作一个简易的进程池
linux·运维·数据库·c++·c
liyongjun63164 小时前
CentOS 下 Zookeeper 常用命令与完整命令列表
linux·服务器·zookeeper·centos
facaixxx20245 小时前
什么是巨型帧Jumbo Frames?云服务器开启巨型帧有什么用?
运维·服务器
巨可爱熊7 小时前
高并发内存池(定长内存池基础)
linux·运维·服务器·c++·算法