网络模型:七层、五层、四层概念及功能分析

如题所述

第1个回答  2022-06-11
网络开发过程中,经常遇到各种协议,如:TCP、UDP、HTTP、FTP、IP等。这些协议差别很大、用途不同。为了更好理解这些协议,需先掌握网络分层模型。

当前,网络模型存在三种划分方式:

如果互联网只有一个协议统筹,某个地方需要改变设计时,就必须把所有部分整体换掉。分层之后只需把变动的层替换掉即可。把各层之间的接口部分规划好之后,每个层内部的设计就能够自由改动了。

层次化之后,设计也变得相对简单了。处于应用层之上的应用,只考虑分配给自己的任务,而不需要弄清楚对方在地球上哪个地方,对方的传输路线是怎样的,是否能确保传输送达等问题。

下面分别介绍各种划分方式。

OSI 模型由国际标准化组织在 1984 年提出,试图使各种计算机在世界范围内互联为网络的标准框架。

OSI 模型是一个七层体系结构,每层都有特定功能。七层协同工作,将数据从一个设备传输到另一个设备。

OSI 参考模型最底层是物理层,物理层负责在设备和物理传输介质之间传输、接收非结构化数据,它将数字 bits 转换为电、无线电或光信号。规范定义了如电压、电压变化时间、物理速率、最大传输距离等。

物理层负责将单个 bits 从一个节点传输到下一个节点。当接收数据时,物理层接收信号、将其转换为0和1,并发送给数据链路层,链路层将 frame 组合为原始状态。

物理层功能如下:

数据链路层(Data Link Layer,缩写 DLL)负责节点到节点的消息传递,该层的主要功能是确保在物理层上从一个节点到另一个节点正确传输数据。当数据包到达时,DDL 使用 MAC 地址传输给目标主机。

数据链路层被划分为两个子层:

从网络层接收的数据包(packet)根据网卡(Network Interface Card,缩写为NIC)的帧大小进一步分割。DLL 在发送方、接收方的 header 中封装了 MAC 地址。

通过地址解析协议(Address Resolution Protocol,缩写为ARP),可以获取拥有指定 IP 地址目标主机的 MAC 地址。

数据链路层功能如下:

网络层用于将数据从一台主机传输到位于不同网络中的另一台主机。它还负责分组路由,即从多条路线中选取路径最短的。Network layer 会把发送者、接收者的 IP 地址放到 header 中。

网络层功能如下:

传输层从网络层获取服务,并向应用层提供服务。Transport layer 提供端到端的消息传递服务,发送成功后返回确认、数据出错后重发的功能。Transport layer 中的数据称为 segments。

Transport layer 从上层接收格式化数据,对数据进行分片,流量、错误控制,确保正确的数据传输。还会将源、目标主机端口号添加到 header,并将 segment 数据转发给 network layer。

Transport layer 从 header 读取端口号,并将数据转发给对应 app,还会对分段数据进行排序和重组。

Transport layer 提供以下功能:

Transport layer 有两个性质不同的协议:

会话层负责建立连接,维护会话、认证,并确保安全。

Session layer 功能如下:

表示层也称为转换层(translation layer)。在表示层提取应用层的数据,并根据需要转换格式,以便通过网络传输。

表示层功能如下:

OSI 模型的最顶层是应用层,应用层是 app 访问网络、向用户显示接收到信息的窗口。

应用层功能如下:

OSI 模型是一个参考/逻辑模型,它旨在通过将通信过程分为更小、更简单的组件来描述通信系统的功能。TCP/IP 是 Transmission Control Protocol/Internet Protocol 协议的缩写,包含以下四层:

TCP/IP 模型中的 network interface 对应 OSI model 中的 data link 和 physical。网络接口层进行硬件寻址、物理传输数据。

TCP/IP模型中的网络层与 OSI 模型中的网络层对应,定义了数据逻辑传输的协议。网络层主要协议有:

TCP/IP 模型中的 transport layer 对应 OSI 模型中的 transport layer,负责端到端数据传输和错误控制。Transport layer 主要协议有面向连接的 TCP 协议、无链接的 UDP 协议。

TCP/IP 模型中的应用层对应 OSI 模型中的 application layer、presentation layer、session layer 三层。负责节点到节点的通信,并控制用户界面。

应用层协议有:HTTP、HTTPS、FTP、TFTP、Telnet、SSH、SMTP、SNMP、DNS等。

虽然 OSI 模型由国际标准组织制定,但其实现过于复杂、制定周期过长,在其整套标准推出之前,TCP/IP 模型已经在全球范围内被广泛使用,因此,TCP/IP 模型才是事实上的标准。

TCP/IP 模型定义了应用层、传输层、网际层、网络接口层共四层,但并没有给出接口层的具体实现。因此,通常将网络接口层替换为 OSI 七层模型中的数据链路层和物理层,这就是五层网络模型:

在分层系统中,层之间使用不同格式交换数据,被称为协议数据单元(Protocol data unit,缩写为 PDU)。下图显示了不同层之间 PDU:

例如,当用户请求访问网站时,服务器把请求的数据传递给 application layer。此时,从上层至下层各层根据约定执行相应操作,数据通过物理层传递给接收者。接收者收到数据后,从底层向上传输,每层执行相应功能,直到发送给对应 app。

从上层向下层传输过程中,每层会为 PDU 添加 header、footer,用以指导、标记 packet,这个过程称为封装。Header、footer 和 data 共同构成下一层的 PDU。整个过程持续到最底层,即 physical layer 或 network access layer,数据从这一层传输给接收者。接收者处理过程相反,每层根据 header、footer 解封装数据,直到所有数据接收、处理完毕。

有了分层概念,当连接失败时更容易检查故障。每一层都为上一层服务,检查时应从底层开始。例如,当计算机无法连接到网络时,应先检查是否接入了网线,或路由器是否连接到了网线,RJ45 引脚是否完好等。

尽管仍然经常引用 OSI 模型,但 Internet protocol 组件已经成为网络协议的标准。TCP/IP 简洁的实现方式、相互独立的协议,使其成为现实中的标准。

HTTP 建立连接的过程中需要三次握手,如果你对握手过程不了解,可以查看我的另一篇文章 三次握手、七次握手、四次挥手 。

参考资料:

欢迎更多指正: https://github.com/pro648/tips

本文地址: https://github.com/pro648/tips/blob/master/sources/网络模型:七层、五层、四层概念及功能分析.md
相似回答
大家正在搜