📜  ISO-OSI 模型的工作

📅  最后修改于: 2021-09-27 22:45:59             🧑  作者: Mango

ISO-OSI(国际标准化组织 – 开放系统互连)表示将相互关联的功能组合在一起。

正确通信所需的 OSI 模型中的函数可分为两种类型:-

1. 必备功能:
这里功能的实现不是可选的,即,这意味着必须实现这些功能才能进行正确的通信。

(i) Error Control
(ii) Flow Control
(iii) Access Control
(iv) Multiplexing and De-Multiplexing
(v) Addressing, etc. 

2. 可选功能:
这里功能的实现是可选的,即表示这些功能的实现不是必须的。

(i) Encryption/ Decryption
(ii) Check Pointing.
(iii) Routing, etc. 

路由是可选的,即使使用泛洪,我们也可以在计算机网络中维持。

现在 ISO-OSI 模型说将相似的功能组合在一起的原因,在这里我们将解释为什么我们需要不同的层来实现高效路由。

  1. 每一层都可以实现类似的功能,每一层都可以执行一些特定的任务。
  2. 它甚至有助于将这些类似函数中使用的所有变量组合在一起,从而保护层中的变量,而不是分散在各层中(因此它是一种封装)。
  3. 现在因为每一层都在执行他们的一些特定任务,所以我们只关注我们的层,而不是底层是如何实现的(所以它的类型是Abstraction )。
    简单来说,我们可以说我们只关心我们从一个层得到什么函数,而不是我们如何得到它。
  4. 它有助于测试,这意味着可以单独测试每一层,因此如果存在任何错误,很容易发现错误。

现在 ISO-OSI 模型中的层:-

1. Application Layer
2. Presentation Layer
3. Session Layer
4. Transport Layer
5. Network Layer
6. Data link Layer
7. Physical Layer 

前 3 层通常是针对特定用户的。

1.物理层
它涉及如何将我们的位数据转换为各种信号,以及如何在路由器和主机之间传输这些信号。

它处理以下概念:-

  • 传输 –这意味着它处理通道是单工、半双工还是全双工。
  • 拓扑 –它决定了网络的拓扑结构。例如:总线拓扑、星形拓扑、环形拓扑等。
  • 编码 –它决定使用哪种编码将 0 和 1 转换为波并通过通道发送它们。

2.数据链路层
数据链路层的主要功能是:-

  • 流控制——基本上流控制意味着发送方发送的速率应该与接收方接收和处理数据的速率有所下降。如果不维护接收器,则数据包将丢失。这些流量控制还有助于确定我们将重复发送丢失数据包的过程的算法。
    它说明要使用哪些流量控制(S&W 或 GBN 或 SR)。
  • 错误控制——这里实现了有助于错误检测的功能。 CRC(循环冗余校验)算法在此处实现以检测错误。
  • 成帧其任务是将从上层接收到的数据包(来自网络层的数据报)放入一个帧中并发送。这些帧有一个 SFD(起始帧定界符),它会提醒路由器新的数据包即将到来。当我们使用可变长度帧表示数据包结束时,这些数据包甚至可以有一个 ED(结束分隔符)。

使用 ED 2 策略来标记此 ED:字符填充和位填充。

DLL(数据链路层)本身分为两部分:

  1. LLC(逻辑链路控制) ——主要处理流量控制和错误控制。
  2. MAC(媒体访问控制) ——它处理帧、访问控制方法、错误控制(是的,它也有)、物理寻址。

3.网络层
这一层处理主机到主机的连接,即,这一层关注如何将数据包从一个主机(发送者)无误地传输到另一个主机(接收者)。该层使用逻辑寻址,这是整个互联网中设备唯一的。

它还处理数据包的交换以到达所需的主机。数据包的交换是通过使用路由表完成的。

该层还执行拥塞控制的任务。

该层还执行的最重要的是数据包分段。分段,当数据包将通过具有较少 MTU(最大传输单元)的网络传输时。因此,数据报在这里被分段,以便它们可以通过该网络成功传输。

4.传输层
该层处理端到端连接,这意味着该层对于数据包到达主机的确切端口很重要。网络层将数据包带到主机,但传输层是帮助数据包到达指定端口的层。

传输层的其他功能是流量控制(使用 SR 协议)、错误控制、分段、复用和解复用、拥塞控制。

5.会话层
主要处理:-

  • 认证和授权
  • 检查点
  • 同步
  • 操作的逻辑分组(即,所有操作或不操作)

6.表现层
这一层主要处理:-

  • 加密和解密
  • 压缩

现在在学习了重要层的功能之后。现在让我们看看它是如何工作的。考虑我们想要使用 GfG(GeeksforGeeks) 的情况。然后当我们开始发送一些数据时,在从初始层(应用程序)传递之后,数据将到达传输层,在那里将源和目标的端口号添加到数据包中。然后将数据包提供给网络层,现在该层将添加源和目标 IP 地址,以便在发送方和接收方之间进行适当的通信。

之后,数据包被提供给数据链路层,其中添加了源和目标的 MAC 地址。

现在需要注意的一件重要事情是,最初通过对子网掩码和目标 IP 地址进行逻辑与运算,我们尝试找到目标网络的条目。如果路由表中不存在条目,则我们使用默认网关(路由器)的 mac 地址作为目标 mac 地址。现在找到路由器的 MAC 地址,主机发送 ARP 请求,以便它接收 MAC 地址。

ARP(地址解析协议)请求就像说请将您的 MAC 地址发送给我,其 IP 地址是这个(逻辑上)。

在数据链路层,有时也会执行分段,以便数据包可以适应网络的 MTU(如前所述)。

毕竟这个数据包被提供给物理层并被传输。

现在,当数据包到达路由器(其 mac 地址已写入数据包中)时,路由器接受该数据包,然后删除标头并提供给该路由器的网络层,并在那里检查数据包是为它还是其他人通过检查路由器中的目标IP。然后再次由路由器再次执行上述DLL的过程。重复此过程,直到数据包到达目标网络。

在到达目标主机时,DLL 删除标头并将数据包提供给 NL,然后 NL 发现该数据包是给它的。因此,数据被提供给主机的指定端口。因此,最终在成功接收数据包后,传输层向主机发送确认数据包已成功交付,并且该确认发回将通过上述确切步骤。

路由器的数据链路层在收到数据包后也会给出确认。