📜  计算机网络中不同层的工作

📅  最后修改于: 2022-05-13 01:57:02.758000             🧑  作者: Mango

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

有没有想过不同层的网络如何协同工作来发送消息。在详细介绍之前,让我们先了解一些基本术语。

  • 默认网关用作接入点或 IP 路由器,联网计算机使用它向另一个网络或 Internet 中的计算机发送信息。
  • 地址解析协议 (ARP) 请求是一种将 IP 地址转换为 MAC 地址的协议。
  • 路由表是一组规则,通常以表格格式查看,用于确定通过 Internet 协议 (IP) 网络传输的数据包将被定向到何处。

通常,主机或计算机具有所有层(从应用层到物理层),路由器具有网络、数据链路层和物理层。

现在让我们借助一个示例来了解不同层的工作。

假设您想向 host2 上的应用程序发送消息(假设它存在于不同的网络中)。
设 host1 的 IP 和 MAC 地址为 I1 , M1 ,而 host2 的 IP 和 MAC 地址为 I2 , M2 。假设host1的默认网关为router1(IP地址为IR1,Mac地址为MR1),host2的默认网关为router2(IP地址为IR2,Mac地址为MR2)。

在主机 1:
假设应用层想向host2发送消息M。 host1的应用层把它交给host1的传输层。传输层会在消息 M 中添加 header,其中包含 host1 的端口号 host2(x,y)。因此,现在消息将是 (M,x,y),这将被提供给 host1 的网络层。网络层还为消息添加了一个标头,其中包含主机 1 和主机 2 的 IP 地址。

现在消息将是 (M,x,y,I1,I2),它将被提供给 DataLink 层。数据链路层还在将消息提供给物理层之前为消息添加标头。由于 host2 不在同一个网络中,它会将 host1 的 mac 地址和默认网关的 mac 地址放入(它会通过发送 ARP 请求知道 mac 地址)。现在消息将是(M,x,y,I1,I2,M1,MR1),这将被提供给物理层。物理层将给定的消息转换为比特并将其发送到 router1。

在路由器 1:
物理层将比特转换为消息,并在看到路由器1的Mac地址后通知数据链路层应该处理该数据包。在看到数据包后,router1 的数据链路层将向数据链路层 host1 发送确认,并在将 host1 的 DLL 中添加的标头信息删除之前,将其提供给 router1 的网络层。网络层得到的消息是(M,x,y,I1,I2)。

网络层看到目标 IP 地址,由于目标不在其网络中,它将决定将其转发给 router2。 router1 的网络层在看到router1 的路由表后决定它并决定它。现在router 的DLL 将header 添加到消息中。这次源 MAC 地址将是 MR1,目标 MAC 地址将是 MR2(使用 Arp 找到)。这样接收方只知道源的IP地址,永远不会知道源的mac地址。现在消息将是 (M,x,y,I1,I2,MR1,MR2) 并将被提供给物理层。物理层将其转换为比特并发送给 router2。

在路由器 2:
物理层将这些比特转换为消息并通知router2的DLL。现在router2的DLL在看到消息后会向router1的DLL发送一个确认。 router2 的 DLL 将删除 MAC 地址并将其提供给网络层。

现在网络层发现host2在router2所连接的网络中,所以它会将消息发送给host2。网络层在看到router2的路由表后发现host2在同一个网络中)。现在消息将是 (M,x,y,I1,I2,MR2,M2) 并将被提供给物理层,物理层将其转换为比特并发送给主机 2。

在主机 2:
物理层将其转换为位并将消息提供给 DLL。 DLL 向路由器 2 的 DLL 发送确认并删除消息中的 MAC 地址,该地址将提供给 NL。现在网络层将删除 IP 地址并为其提供传输层。

现在传输层将向 host1 的传输层发送一个确认(在 TCP 的情况下,因为它具有 host1 的 IP 地址。消息将是 (M,y,x,I2,I1))并删除端口号并给出给存在于 y 的进程(或应用程序)的消息。

笔记:

  1. 由于传输层负责端到端的连接,因此host2的传输层向host1的传输层发送一个确认。
  2. 数据链路层负责跳到跳的连接,每次路由器/主机收到数据包确认时,都会将其发送到相应的数据链路层。
  3. 网络层处理比特级错误,传输层处理数据包错误。
  4. 路由器的 MAC 地址是临时的,因为 ISP 通常会更改包含 MAC 地址的 NIC(网络接口卡)。因此,默认网关 IP 地址与主机和其他路由器共享,而不是 MAC 地址。

这就是来自一个主机的消息如何传递到不同网络上的另一台主机的方式。