同一网段内计算机通信流程

参考地址:https://www.processon.com/view/5d784083e4b01080c73b9ca8
网络通信教学
如上图为一个简单的同一网段内主机的示例。

如果计算机 A 向计算机 B 发送消息,那么

  1. 应用层会获取计算机 B 的 ip 地址(例如 192.168.3.98,端口号为 3456),并且将数据封装交给传输层
  2. 传输层会利用 TCP 协议将数据封装端口号(源端口号 | 目的端口号 | 数据),并交给网络层
  3. 网络层利用 ip 协议为数据封装 IP 地址(源 IP 地址 | 目的 IP 地址 | 源端口号 | 目的端口号 |
    数据),并交给数据链路层
  4. 数据链路层进行判断判断自己的 ARP 表是否存在目的 MAC 地址。

存在

利用以太网协议给数据封装 MAC 地址(源 MAC 地址 | 目的 MAC 地址 | 源 IP 地址 | 目的 IP 地址 | 源端口号 |
目的端口号 | 数据),并交付物理层。

不存在

向本网段内发送一条 ARP 广播,含义为谁是 IP 192.168.3.98,你的 MAC 地址是多少。

此时计算机 B 收到广播后,发现 IP 是找自己的则先将计算机 A 的 ip 与 MAC 记录到自己的 ARP 表里,然后给计算机 A
回复一个 ARP 响应包,告诉自己的 MAC 地址。

计算机 A 接收到回报之后利用以太网协议封包。并交付物理层

  1. 物理层顺着网线发送给主机 B。
  2. 主机 B 从物理层逐层拆包获得数据。

不同网段内计算机通信流程

参考地址:https://www.processon.com/view/5d78ab24e4b0c5c942bee050
网络通信教学

  1. 如图所示,不同网段通信。计算机 A 向计算机 E 发送消息。
  2. 在数据链路层封装的 MAC 地址是默认网关的 MAC 地址

如果主机 A 的 ARP 表内存在默认网关的 MAC 地址

封装 MAC 地址。(目的 MAC 为默认网关的 MAC)

> 如果不存在

计算机 A 将数据包暂存到缓存中,通过广播形式发送 ARP 请求包,请求默认网关 MAC 地址。

路由器 B 收到 ARP 请求后,先将 A 的 IP 与 MAC 存到自己的 ARP 表中,然后以单播形式回复其请求。

计算机 A 收到请求后进行封装。

  1. 数据首先会经过交换机 A
    交换机 A 只能将数据拆到数据链路层,获取 MAC 地址与端口,并且发送。如果 ARP 表中没有此地址则广播获取。

  2. 路由器三同理,将数据交给左边路由器。

  3. 左边路由器拿到数据后开始逐层拆包,拆到数据链路层,发现目的 MAC 是自己所以继续拆包到网络层发现目的 IP 不是自己,于是发送给目的 IP 所在网络的默认网关。但需要知道其 MAC。

> 如果 ARP 表中存在 MAC 地址

将 MAC 更换为 自己的 MAC 地址 | 默认网关的 MAC 地址 | 源 IP 地址 | 目的 IP 地址 | 源端口号 |
目的端口号 | 数据

> 不存在

通过广播获取

  1. 右边路由器获取到数据后开始逐层下发。。。

创作不易,点个赞吧!!

版权声明:如无特殊说明,文章均为本站原创,转载请注明出处
本文链接:https://blog.csdn.net/wsad861512140

相关文章:

  • 2021-10-31
猜你喜欢
  • 2021-12-07
  • 2021-08-27
  • 2022-12-23
  • 2022-02-04
  • 2021-06-24
  • 2022-01-10
相关资源
相似解决方案