[Forward Content] OSI(Open Systems Interconnection)开放系统互联参考模型简介
Tofloor
poster avatar
流浪的加菲
deepin
2024-06-13 14:34
Author

简介

OSI开放系统互联参考模型(Open Systems Interconnection)把复杂的网络通信过程分成了七个不同的层次,每一层都有其特定的功能和角色。

七层模型一般指开放系统互连参考模型,开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

image.png

OSI参考模型定义了开放系统的层次结构和各层所提供的服务。OSI参考模型的一个成功之处在于,它清晰地分开了服务、接口和协议这3个容易混淆的概念。服务描述了每一层的功能,接口定义了某层提供的服务如何被高层访问,而协议是每一层功能的实现方法。通过区分这些抽象概念,OSI参考模型将功能定义与实现细节区分开来,概括性高,使它具有普遍的适应能力。

OSI的每一层都有自己的头数据,在封装和解封的时候需要处理每一层的头部,通常头部定义了发送源和目标的一些信息,比如数据链路层,数据链路层的头部封装了源MAC和目标MAC等信息。

image.png

物理层

简单点说,物理层就是负责传输“1”和“0”的地方。比如我们家里上网用的网线、光纤、WiFi信号,这些都属于物理层的范畴。它主要管的是“怎么把电信号或者光信号从一个地方传到另一个地方”。所以,网线里传的其实就是一串串的电信号,你可以理解成一堆小电流在网线里“跑步”,这些小电流的组合就形成了数据。

image.png

在物理层,我们不用考虑数据是什么,只需要保证这些信号能准确地传输过去。就像我们打电话的时候,电话线传的只是声音的振动,不关心你说的具体内容是什么。所以,物理层的任务就是把这些“振动”准确地传到对方那里,不管这个“振动”是用来干什么的。
WiFi信号其实就是一种电磁波,电脑和路由器通过这些电磁波来传输数据。这里的电磁波就是物理层的“工作工具”。另外,你家里网线插到电脑上,那根网线也是物理层的一部分。再比如光纤宽带,光纤里传输的就是光信号,这也是物理层在工作。

数据链路层

数据链路层就像是网络通信中的“邮递员”。它负责把数据打包成一个个“包裹”(我们叫做“帧”),然后负责把这些“包裹”送到正确的地方,同时还要确保这些“包裹”在传输过程中不出错。

image.png

帧概念

想象一下,你要寄一个包裹,你需要把东西装进一个盒子里,写上收件人的地址,然后交给快递员。数据链路层的工作也是类似的,它把数据装进一个“框架”里,这个框架里包括了收件地址(MAC地址)和发送地址,还有一些用于检测错误的东西,就像包裹里的防震材料一样,确保东西安全送达。

MAC地址

数据链路层用的是MAC地址,这有点像每个设备的身份证号码。每个网卡都有一个独一无二的MAC地址,网络中的交换机就是根据这些地址来判断数据应该送到哪里。

交换机

交换机是数据链路层中一个重要的设备。它会根据设备的MAC地址,把数据转发到正确的设备上。可以想象一下交换机是一座大楼里的前台,所有的信件先送到前台,然后前台根据收件人的名字和房间号,把信件分发到各个房间。

网络层

网络层就像是“导航系统”。它负责决定数据包要走哪条路,从发送方到接收方。这个过程叫做“路由选择”。网络层最重要的概念之一就是IP地址。你可以把IP地址想象成网络中的“地址”,每个设备都有一个唯一的IP地址,就像每栋房子都有一个唯一的门牌号一样。当你在网上发信息,数据包就像邮件一样,要根据IP地址找到收件人。

image.png

路由器

在网络层中,有一个重要的设备叫做路由器。路由器的作用就像是高速公路上的路标,指引数据包从一台设备走到另一台设备。如果有多条路可以到达目的地,路由器会选择最快的一条。这就像你开车时,GPS会帮你选择最短时间到达目的地的路线一样。

数据包

在网络层,数据被称为数据包。数据包包含了发送地址和接收地址,就像邮寄包裹上的寄件人和收件人地址。网络层负责把这些数据包从发送方的IP地址送到接收方的IP地址,中间可能经过很多路由器,就像包裹在寄送过程中经过很多中转站一样。

数据包分组和重组

因为网络中的数据传输效率问题,有时候一个大的数据会被分成多个小的数据包传输。网络层负责把这些小数据包分开发送,到达目的地后再重新组合起来,就像拼图一样。

网络层的重要性

网络层在网络通信中起着至关重要的作用。它确保数据能够找到最优路径,从一个设备传输到另一个设备。如果没有网络层,我们的数据就像没有导航系统的车辆,很容易迷路,无法到达目的地。

传输层

传输层就像是网络通信中的“可靠搬运工”。它的主要任务是确保数据能够从一个地方安全、完整、准确地搬运到另一个地方。

端口

传输层有一个很重要的概念叫做端口号。你可以把端口号理解为“房间号”。在一个IP地址下,端口号帮助确定具体是哪一个应用程序要接收数据。比如你的电脑有一个IP地址,但你同时在用浏览器上网、用QQ聊天、用邮件客户端收邮件,这些应用程序通过不同的端口号来区分接收到的数据。端口范围0-65535,0-1023为系统占用端口。

传输层为相互通信的应用进程提供了逻辑通信
image.png

TCP和UDP

在传输层中,有两个主要的协议,分别是TCP(传输控制协议)和UDP(用户数据报协议)。这两个协议就像是两种不同的搬运工,有着不同的工作方式。

TCP

TCP可以理解为“讲究的搬运工”。它在搬运数据时非常仔细,确保每一块数据都能准确无误地送到目的地。如果在搬运过程中有任何数据丢失或者出错,它会重新搬运。这就像你寄包裹时选择了带有追踪和保险的快递服务,确保包裹安全送达。
一个TCP连接通常经历以下几个阶段:
建立连接(SYN-SYN/ACK):客户端发送SYN包,服务器回应SYN-ACK包,客户端再发送ACK包,完成三次握手。**
数据传输**:双方开始交换数据。
断开连接(FIN-ACK):当一方准备结束连接时,发送FIN包,对方回应ACK包,然后等待对方也发送FIN包。**
等待关闭(TIME-WAIT)**:在双方发送完FIN包并确认对方已接收后,发起关闭的一方进入Time-Wait状态。

UDP

UDP可以理解为“随意的搬运工”。它在搬运数据时不做过多检查,直接把数据发出去,不管对方有没有收到、有没有出错。这样做的好处是速度快,缺点是可靠性低。它就像你寄包裹时选择了普通的平信,没有追踪和保险,只能祈祷包裹顺利到达。
UDP适用于那些对速度要求高、对可靠性要求不那么高的应用,比如视频直播、在线游戏等。

会话层

话的建立和结束,在分开的计算机上的两种应用程序之间建立一种虚拟链接,这种虚拟链接称为会话(session)。会话层通过在数据流中设置检查点而保持应用程序之间的同步。允许应用程序进行通信的名称识别和安全性的工作就由会话层完成。

表示层

数据的表示、压缩和加密。定义由应用程序用来交换数据的格式,该层负责协议转换、数据编码和数据压缩。转发程序在该层进行服务操作。

应用层

用户接口、应用程序。 应用层向应用进程展示所有的网络服务。当一个应用进程访问网络时,通过该层执行所有的动作。

常见协议

image.png

原文转自:博客园

原文链接:网络世界的脊柱——OSI七层模型

Reply Favorite View the author
All Replies
zoufuxing
deepin
2024-06-13 14:57
#1

😄 ,很形象,比起当年枯燥的文字舒服多了

Reply View the author
sweetyfish
deepin
2024-06-13 16:49
#2

网络的 OSI 七层模型和 TCP/IP 的四层模型~

其实如果你后面深入学习一些网络的话,会发现这些模型也只是模型,模型和真实网络会有一些出入。

七层和四层模型只是抽象的,真实网络是具体的。所以也有人说,应该多学学具体的真实的网络,而不只是这些模型。

Reply View the author
兆兆嘟嘟嘟
deepin
2024-06-14 01:19
#3

感谢分享。

Reply View the author
绍贝格尔
deepin
2024-06-14 09:17
#4

我觉得这个图更直观
image.png

Reply View the author