如何在单张图片中解释 OSI 模型层的数据流

网络工程 网络 网络核心 奥西 联网 数据
2022-02-03 02:45:09

在此处输入图像描述以在 Web 浏览器中搜索www.example.com为例。我在每一层都有一些困惑,它们是

  1. 我们打开了一个网络浏览器并搜索了www.example.com现在,据我所知,应用层将 HTTPS GET 请求的标头附加到example.com,使用 DNS 解析 IP 地址。这意味着,IP地址在这一层本身是已知的,但为什么IP地址附加在网络层而不是应用层它是如何解析 google.com 的 IP 地址的?它是否遵循相同的 7 层模型来解析 IP 地址,或者它是一个单独的任务并遵循不同的场景。

  2. 好的...现在应用层将 PDU 传递给表示层它在这里翻译、加密和压缩 PDU。它总是在物理层执行这三个功能吗?

  3. 好吧,现在 PDU 被传递到会话层我在某处读到它在发送者和接收者之间创建会话、维护会话、验证、授权和同步。创建会话是什么意思,它如何在发送者和接收者之间创建会话,甚至没有进入下一层。

  4. 好的,PDU 不知何故到达了传输层在这里它将 PDU 分成可传输的并为每个段附加一个序列号、ACK 号、端口号等。但是,它如何知道服务器的端口号(即 HTTPS 请求的 443?)以及客户端端口号。这里的主要问题是它如何处理 TCP 3 路握手。握手意味着它需要通过一个路由向目的地发送 SYN 数据包,并且必须通过相同的路径接收 ACK。我的问题是,它如何在不到达较低层的情况下进行 3 次握手

  5. 现在它将发送方和接收方的 IP 地址以及其他一些控制信息附加到 PDU。为什么它在此处添加 IP 地址,而不是在应用层。PDU在这里在网络层称为包。

  6. 现在它会附加主机所连接的下一个设备的 MAC 地址以及其他一些信息。我的疑问是,数据链路层是否附加路由器的MAC地址以将数据传输到另一个路由器?

  7. 现在,这些帧成为信号并通过通道(LAN 电缆)传输到连接到计算机的交换机。它是一个物理层

接下来发生的事情是我的比喻如果我在任何地方错了,请纠正我。

现在,在交换机上,信号变成帧并将 MAC 地址更改为它连接的下一个设备,例如交换机连接到路由器。因此,交换机会附加路由器的 MAC 地址,并将这些帧作为信号并通过连接到交换机的通道进行传输。

现在,路由器获取数据,删除 MAC 地址,以便它可以查看 IP 地址并通过查看基于目标地址的路由表将数据转发到下一个节点(可能是路由器)。这意味着,路由器是否附加下一个路由器的 MAC 地址。

并继续,直到它到达服务器。

在接收端路由器(最后一个路由器),路由器在传输时是否附加服务器的MAC地址?好的.. 请求的数据以某种方式到达服务器。服务器本身是否删除了数据链路标头、网络层标头?

最后,通过在服务器中逐层解包标头,请求已到达服务器的应用程序层。

现在,它是否遵循相同的步骤将请求的网页发送给客户端?

3个回答

要理解的基本内容是层的分离:不要试图同时理解所有层。最好不要从 HTTPS 等复杂的开始。同样重要的是要记住,OSI 七层模型只是一个帮助解释网络过程异同的故事。它没有遵循网络的互联网模型。

首先尝试使用基本的第 2 层和第 3 层帧和数据包,然后使用简单的协议,可能是 Daytime (RFC 867),然后是 HTTP,然后是 DNS,然后是您的示例。

尽量不要考虑“附加地址”,考虑每一层的工作。当我们想到从客户端到服务器的 TCP 连接时,我们完全忽略了所有的数据包活动。当我们考虑数据包时,我们忽略了 TCP 流和以太网帧。当我们想到来自客户端的帧时,我们会忽略所有 IP 行为。

要解决您的问题,请尝试自上而下的视图:

  • 首先,客户端向其本地配置的 DNS 解析器发出 DNS 请求,它知道其 IP 地址。
  • 如果成功,它将在众所周知的端口号 443 上与服务器的 IP 地址建立 TCP 连接。
  • 如果成功,它将通过该连接开始使用 HTTPS。其中一部分是返回的网页内容。

一旦清楚了,您就可以深入了解其中的每一个是如何工作的。

首先要做的事情是:TCP/IP 协议套件不是基于 OSI 模型。因此,尝试使用该模型来描述它们是没有用的。TCP/IP 模型更接近,但即便如此,模型也是函数的抽象表示,它们并不总是与实际使用的相匹配。

你有很多问题要回答,但让我做一些一般性的评论:

我们之所以谈论层,是因为功能可以相互解耦。HTTPS 不包含 IP 地址的原因是 HTTP 不关心服务器的寻址方式。它可能是 IPv4、IPv6 或其他一些未来的协议。HTTPS 只需要一个数据流。它如何到达那里并不重要。

DNS 是一个单独的应用程序协议。它不是 HTTP 的一部分,也不是必需的。

在将 HTTPS 信息发送到服务器之前,必须先建立会话。TCP 连接(3 次握手)是在实际发送数据之前建立的。您的计算机知道使用端口 443 的原因是因为这是 HTTPS 流量的“众所周知”端口号。这与您知道在电话上拨打 911(至少在北美)请求警察、消防或救护车的原因相同。

帧的目的 MAC 地址是目的主机的地址(如果它在同一网段上)或下一跳路由器的地址。交换机 不会更改 MAC 地址。

数据流简单。

在您拥有的路由器上(从这里):

在此处输入图像描述

应用程序位于 L7 并使用完整的主机堆栈相互通信,中间有一个路由器,在 L3 的接口之间转发。如果您愿意,只需在两者之间添加更多路由器。您还可以在 L2 转发的任何位置添加交换机。