计算机网络中不同层的运作


您是否曾经想过网络的不同层如何协同工作以发送消息?在深入细节之前,让我们首先了解一些基本术语。

  • 地址解析协议 (ARP) 请求是一种将 IP 地址转换为 MAC 地址的协议。

  • 路由表是一组规则,通常以表格形式显示,用于确定通过互联网协议 (IP) 网络传输的数据包的路由位置。

在典型的网络中,主机设备或主计算机包含所有层,另一方面,路由器具有网络层、数据链路层和物理层。

示例

假设我们想向主机 2 上的接收方发送一条消息,该接收方位于不同的网络上。

主机 1 的 IP 和 MAC 地址分别为 **I1、M1**,主机 2 的 IP 和 MAC 地址分别为 **I2、M2**。

假设主机 1 的默认网关为 **路由器 1**(IP 地址为 IR1,MAC 地址为 MR1),主机 2 的默认网关为 **路由器 2**(IP 地址为 IR2,MAC 地址为 MR2)。

对于主机 1

假设应用层想要向主机 2 发送消息“M”。

  • 主机 1 的应用层将其传递给主机 1 的传输层。

  • 传输层向消息 M 添加一个报头,其中包含主机 1、主机 2 的端口号 (x、y)。因此,消息现在为 (M、x、y),并传递给主机 1 的网络层。

  • 网络层还向消息添加一个报头,其中包含主机 1 和主机 2 的 IP 地址。消息现在为 (M、x、y、I1、I2),并传递给数据链路层。

  • 数据链路层在将其传递给物理层之前也向消息添加一个报头。由于主机 2 不在同一网络中,它将输入主机 1 的 MAC 地址和默认网关的 MAC 地址(通过发送 ARP 请求来了解 MAC 地址)。消息现在为 (M、x、y、I1、I2、M1、MR1),并传递给物理层。

  • 物理层将给定消息转换为比特并将其发送到路由器 1。

在路由器 1 中

  • 路由器 1 的数据链路层看到数据包后,向主机 1 的数据链路层发送确认,并在将其转发到路由器 1 的网络层之前删除主机 1 DLL 添加的报头信息。

  • 网络层接收到的消息为 (M、x、y、I1、I2)。

  • 网络层看到目标 IP 地址。由于目标不存在于其网络中,它将决定将其转发到路由器 2。

  • 路由器 1 的网络层在查看路由器 1 的路由表后做出此决定。

  • 现在,路由器的 DLL 向消息添加一个报头。这次,源 MAC 地址为 MR1,目标 MAC 地址为 MR2(使用 Arp 查找)。

  • 通过这种方式,接收方只知道源的 IP 地址,但永远不知道源的 MAC 地址。消息现在为 (M、x、y、I1、I2、MR1、MR2),并发送到物理层。

  • 物理层将其转换为比特并将其发送到路由器 2。

对于路由器 2

  • 物理层将比特转换为消息,并通知路由器 2 的 DLL。

  • 现在,路由器 2 的 DLL 在看到消息后向路由器 1 的 DLL 发送确认。

  • 路由器 2 的 DLL 删除 MAC 地址并将其转发到网络层。

  • 网络层通过检查路由器 2 上存在的路由表发现主机 2 位于同一网络中。

  • 现在消息为 (M、x、y、I1、I2、MR2、M2),并传递给物理层,物理层将其转换为比特并将其发送到主机 2。

使用主机 2

  • 物理层将其转换为比特并将消息转发到 DLL。

  • DLL 向路由器 2 的 DLL 发送确认,并删除传递到网络层的消息中的 MAC 地址。

  • 现在,网络层删除 IP 地址并将其提供给传输层。

  • 主机 2 的传输层向主机 1 的传输层发送确认,并删除端口号并将消息提供给该位置的进程(或应用程序)。

更新于: 2022年11月21日

279 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告