in

OSI模型:完整解释

如果您正在创建需要与网络通信的软件 – 无论是公司内部还是全球互联网 – 熟悉数据传输过程中网络通信的每个步骤对您很有帮助。

许多开发人员使用tcp/ip模型来指导他们在这方面的知识,但还有另一种网络通信模型:osi模型。

但在我们深入研究osi模型之前,以下是一个比较,展示了这两种网络模型之间的区别:

osi模型与tcp/ip模型

层次 tcp/ip osi
7 应用层
6 表示层
5 会话层
4 应用层 传输层
3 传输层 网络层
2 互联网层 数据链路层
1 网络访问层 物理层

osi模型:概述

osi模型(开放系统互联)于1984年推出,旨在展示网络如何相互通信。尽管现代互联网不是基于该模型,但许多主要公司在iso于1984年正式宣布后采用了这个标准。

如果您对网络中的osi模型不熟悉,不用担心。我们将以通俗易懂的方式解析它,一旦您阅读完本文,您将对计算机网络有更深入的了解。

即使您不是计算机专家,拥有这种基础知识也会使您在只是想了解一切如何工作时受益匪浅。

osi模型由7个层次组成。它解释了数据如何在互联网上从一个应用程序传输到另一个应用程序。

©tee11/shutterstock.com

第7层 – 应用层

我们从最后一层开始,因为这是模型的使用开始的地方。在本文中,我们将以一家虚构的b2b电子商务公司为例,该公司向其他批发公司销售t恤,这些批发公司又将这些t恤销售给其零售客户的实体店。

通信从哪里开始?它始于应用层,这是a公司(零售公司)的一名员工向b公司(批发t恤公司)下订单,因为他们的库存不足。

订单是在b公司给a公司授权后让a公司访问的一个网站上开始的。员工将需要订购的所有物品放入购物车,然后点击“发送”以完成订单。

该“发送”按钮附有一个称为http的网络协议 – 超文本传输协议,这是您在想要访问网站时与网络服务器进行通信时使用的网络协议。

无论用例如何,所有通过网络进行通信的软件都需要一个协议,以发送或检索来自作为网络服务器运行的另一台计算机的信息。

第6层 – 表示层

这一层决定了如何对订单进行编码、加密和/或压缩,以便下一层可以解释接收到的数据。这三个操作有不同的作用,让我们分别看看每个操作的意义,这样您就可以理解在表现层中所做的工作。

编码数据

当数据被编码时,意味着它被以一种接收计算机可以理解的方式进行翻译。因此,当这个订单被编码时,它会带上一些对方服务器可以理解的详细信息发送到b公司的web服务器。

例如,他们的web服务器希望看到需要订购的商品、数量、颜色、尺寸等。

加密数据

当数据被加密时,它会以一种保护敏感数据不被未经授权的人访问的方式进行更改。在这个例子中,需要加密的一个重要事项是a公司的支付信息。

表现层将具有告诉发送计算机如何加密这些数据的模块,接收计算机将具有一个解密密钥,用于解释加密数据,以便成功处理订单。

压缩数据

为了使网络运行得尽可能顺畅,数据在发送之前也会进行压缩。简单来说,压缩数据是将数据减小尺寸,以确保资源可以轻松访问,并且数据以最小可能的格式发送。

在我们的电子商务示例中,如果不传输大文件,则可能不需要压缩数据。然而,如果需要上传大的图像文件以制作定制t恤,那么仍然可以使用这个功能。

为了避免网络拥堵,数据在osi模型的这一层进行压缩。

©777 bond vector/shutterstock.com

第5层 – 会话层

这一层将为两台计算机之间的对话打开一条通信线路。会话层有一个重要的责任,即在数据从一台计算机传输到另一台计算机时保持会话开启。

因此,在我们的示例中,只要订单还在传输,b公司的服务器就会保持开放以接收信息。

通过设置检查点,会话层确保在关闭通信线路之前接收到整个订单。如果这些检查点未通过,接收服务器将告诉会话层返回到上一个成功检查点并重新发送剩下的数据。这个检查点过程确保没有中断或发送错误的数据到b公司的服务器。

然而,如果会话失败,a公司的员工将收到一个错误提示消息,提示他们重新发送订单,因为发送不成功。b公司的服务器还将记录错误,以便在发生重复错误时进行故障排除调查。

第4层 – 传输层

这一层接收a公司发送的订单,并将其分成称为数据包的段,以便更容易在网络上发送。

这一层执行错误控制,以确保b公司的服务器完整接收订单。如果没有接收完整,b公司的服务器将要求发送计算机重新发送数据,以便接收所有需要完成订单的数据包。

一旦错误控制通过,它可以以对b公司服务器有意义的方式重新组装包。这种错误控制使用所谓的校验和来向接收计算机发出信号,以表示数据未被损坏。

它使用一种哈希算法,将发送的数据转换为一串数字和字母,始终具有相同的长度。这与软件应用程序将密码转换为数据库中的哈希值的方式相同。因此,除了创建它的用户外,任何人都无法知道这些敏感数据。

如果校验和不匹配,这就表示数据以某种方式发生了变化,通信将失败。服务器将要求重新发送数据包,并且会一直这样做,直到哈希码彼此匹配。

第3层 – 网络层

网络层与传输层配合工作,以确保数据成功传输到服务器

首先,它通过将数据包分成段进行传输。然后,它还确保这些数据包在传输完成后重新组装。

然而,网络层还有另一个重要的任务要完成 – 使用称为ip地址的网络地址找到从a公司到b公司的最佳路由。

例如,互联网上的每台计算机都有一个唯一的ip地址。这与您家中的地址类似,因为世界上没有其他地址可以拥有这个地址。

通过分析起始和目标地址,网络层找到传输所有这些信息的最佳路由。它将找到最少障碍的路径,以最快的方式发送信息。

网络层分解数据包并将其发送到服务器。

©metamorworks/shutterstock.com

第2层 – 数据链路层

数据链路层也以与网络层类似的方式参与网络通信。然而,这一层特别处理两台物理连接在一起的网络上的计算机。

在我们与a公司和b公司之间的通信示例中,发送计算机与目的地计算机没有物理连接。因此,在这两个节点之间的通信中,数据链路层不会参与。

然而,假设在订单传输完成后,接收订单的网络服务器需要将信息发送到仓库。由于它们与网络服务器位于同一个校园内,它们很可能通过b公司的内部网络物理连接在一起。

当订单传输到仓库进行处理时,数据链路层通过进一步分解数据包将消息发送为帧。这一切都是无缝进行的,这要归功于数据链路层的两个方面:逻辑链路控制(llc)和介质访问控制(mac)。

llc组件首先识别用于传输消息的网络协议,以便在整个传输过程中使用相同的协议。然后它执行错误检查并将帧和数据包重新组装。

如果你之前接触过计算机硬件,你可能已经听说过mac这个术语。除了ip地址,你的计算机还有一个mac地址,用于在物理网络上物理地识别你的特定计算机。

数据链路层使用这些地址连接设备,并定义什么设备可以访问在物理网络上发送的数据的权限。

第1层 – 物理层

最后,我们有osi网络模型中的物理层。顾名思义,这一层处理网络的物理组件:

  • 连接器
  • 物理电缆
  • 路由器
  • 无线网卡和技术

这是源和目标上的计算机硬件,负责将原始数据从一台计算机传输到另一台计算机。

因此,公司a的物理层组件可能是员工计算机上连接到互联网的无线网卡,以及指导他们出站流量的任何路由器或防火墙。

而在公司b的网络上,这将包括他们与互联网的物理连接,以及允许他们与公司a通信的任何其他硬件。

在这一层传输的数据被翻译成二进制代码 – 计算机理解的1和0,以便服务器的中央处理器理解它需要做什么。这是任何需要执行一些操作的计算机的基础,因为它是计算机唯一理解的语言。

总结

了解osi模型、其七个层次以及这些层次之间的交互对于任何开发人员、网络工程师或热衷于掌握网络通信细节的爱好者来说都是至关重要的。

尽管现代互联网可能并不完全遵循这个模型,但osi模型的原则和结构仍然具有价值。虽然有更新的模型,但了解这个模型可以为设计、理解和故障排除网络系统提供一个良好的知识基础。

在我们对电子商务交易的旅程中,我们探索了每个层次在确保不同网络实体之间成功、安全和高效的通信中的独特角色。

从应用层,交互开始的地方,到物理层将数据转化为二进制代码的地方,osi模型为理解数据传输的复杂性提供了一个全面的框架。

Written by 小竞 (编辑)

他们称呼我为小竞, 做作为河小马的助理有5年时间了,作为jingzhengli.com的编辑,我关注每天的科技新闻,帮你归纳一些现有科技以及AI产品来提升你的生产力,拥抱AI,让科技和AI为我们服务!